{"version":3,"sources":["webpack:///./issuable/components/issue_assignees.vue","webpack:///./issuable/components/issue_assignees.vue?30e3","webpack:///issuable/components/issue_assignees.vue","webpack:///./issuable/components/issue_assignees.vue?8e0e","webpack:////build/source/node_modules/lodash/invert.js","webpack:///./work_items/components/shared/work_item_link_child_contents.vue","webpack:///./work_items/components/shared/work_item_link_child_metadata.vue?9e92","webpack:///work_items/components/shared/work_item_link_child_metadata.vue","webpack:///./work_items/components/shared/work_item_link_child_metadata.vue?ae7c","webpack:///./work_items/components/shared/work_item_link_child_metadata.vue","webpack:////build/source/ee/app/assets/javascripts/work_items/components/shared/work_item_link_child_metadata.vue?3193","webpack:///../../../ee/app/assets/javascripts/work_items/components/shared/work_item_link_child_metadata.vue","webpack:////build/source/ee/app/assets/javascripts/work_items/components/shared/work_item_link_child_metadata.vue?6c71","webpack:////build/source/ee/app/assets/javascripts/work_items/components/shared/work_item_link_child_metadata.vue","webpack:///./work_items/components/rich_timestamp_tooltip.vue?3b48","webpack:///work_items/components/rich_timestamp_tooltip.vue","webpack:///./work_items/components/rich_timestamp_tooltip.vue?f4d5","webpack:///./work_items/components/rich_timestamp_tooltip.vue","webpack:///./work_items/components/shared/work_item_link_child_contents.vue?f16d","webpack:///work_items/components/shared/work_item_link_child_contents.vue","webpack:///./work_items/components/shared/work_item_link_child_contents.vue?3c0f","webpack:///./sidebar/components/labels/labels_select_widget/label_item.vue","webpack:///./sidebar/components/labels/labels_select_widget/label_item.vue?8ba5","webpack:///sidebar/components/labels/labels_select_widget/label_item.vue","webpack:///./sidebar/components/labels/labels_select_widget/label_item.vue?1f7e","webpack:///./batch_comments/utils.js","webpack:////build/source/node_modules/lodash/_baseIntersection.js","webpack:///./sidebar/queries/get_issue_participants.query.graphql","webpack:///./work_items/graphql/typedefs.graphql","webpack:///./graphql_shared/fragments/issuable_timelogs.fragment.graphql","webpack:///./lib/utils/resize_observer.js","webpack:///./vue_shared/components/user_avatar/user_avatar_image.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_image.vue?5b71","webpack:///vue_shared/components/user_avatar/user_avatar_image.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_image.vue?7c05","webpack:///./sortable/utils.js","webpack:///./work_items/graphql/namespace_projects_for_links_widget.query.graphql","webpack:///./graphql_shared/queries/workspace_autocomplete_users.query.graphql","webpack:///./issues/list/utils.js","webpack:////build/source/node_modules/@gitlab/ui/dist/utils/number_utils.js","webpack:///./issuable/components/issue_milestone.vue","webpack:///./issuable/components/issue_milestone.vue?7849","webpack:///issuable/components/issue_milestone.vue","webpack:///./issuable/components/issue_milestone.vue?11e1","webpack:///./vue_shared/components/markdown/constants.js","webpack:///./work_items/components/work_item_links/work_item_projects_listbox.vue","webpack:///./work_items/components/work_item_links/work_item_projects_listbox.vue?610c","webpack:///work_items/components/work_item_links/work_item_projects_listbox.vue","webpack:///./work_items/components/work_item_links/work_item_projects_listbox.vue?da76","webpack:////build/source/node_modules/lodash/_baseClone.js","webpack:///./awards_handler.js","webpack:///./emoji/awards_app/store/mutation_types.js","webpack:///./emoji/awards_app/store/actions.js","webpack:///./emoji/awards_app/store/mutations.js","webpack:///./emoji/awards_app/store/index.js","webpack:///./emoji/awards_app/index.js","webpack:///./diffs/store/utils.js","webpack:////build/source/node_modules/lodash/template.js","webpack:///./sidebar/components/labels/labels_select_widget/graphql/epic_labels.query.graphql","webpack:///./notes/components/toggle_replies_widget.vue","webpack:///./notes/components/toggle_replies_widget.vue?559e","webpack:///notes/components/toggle_replies_widget.vue","webpack:///./notes/components/toggle_replies_widget.vue?39c2","webpack:///./vue_shared/components/markdown/eventhub.js","webpack:///./sidebar/components/assignees/uncollapsed_assignee_list.vue","webpack:///sidebar/components/assignees/uncollapsed_assignee_list.vue","webpack:///./sidebar/components/assignees/uncollapsed_assignee_list.vue?1b85","webpack:///./sidebar/components/assignees/uncollapsed_assignee_list.vue?7d66","webpack:///./sidebar/queries/get_merge_request_reviewers.query.graphql","webpack:///./confidential_merge_request/index.js","webpack:///./filtered_search/droplab/plugins/input_setter.js","webpack:///./issues/create_merge_request_dropdown.js","webpack:///./issues/issue.js","webpack:///./issues/new/components/type_popover.vue?1f07","webpack:///issues/new/components/type_popover.vue","webpack:///./issues/new/components/type_popover.vue?87ef","webpack:///./issues/new/components/type_popover.vue","webpack:///./issues/new/components/type_select.vue?eb13","webpack:///issues/new/components/type_select.vue","webpack:///./issues/new/components/type_select.vue?3b3c","webpack:///./issues/new/components/type_select.vue","webpack:///./issues/related_merge_requests/components/related_merge_requests.vue","webpack:///./issues/related_merge_requests/components/related_merge_requests.vue?b5e2","webpack:///issues/related_merge_requests/components/related_merge_requests.vue","webpack:///./issues/related_merge_requests/components/related_merge_requests.vue?e440","webpack:////build/source/ee/app/assets/javascripts/linked_resources/constants.js","webpack:////build/source/ee/app/assets/javascripts/linked_resources/components/utils.js","webpack:////build/source/ee/app/assets/javascripts/linked_resources/components/add_issuable_resource_link_form.vue?4f8b","webpack:///../../../ee/app/assets/javascripts/linked_resources/components/add_issuable_resource_link_form.vue","webpack:////build/source/ee/app/assets/javascripts/linked_resources/components/add_issuable_resource_link_form.vue?d5e0","webpack:////build/source/ee/app/assets/javascripts/linked_resources/components/add_issuable_resource_link_form.vue","webpack:////build/source/ee/app/assets/javascripts/linked_resources/components/resource_links_list_item.vue?6769","webpack:///../../../ee/app/assets/javascripts/linked_resources/components/resource_links_list_item.vue","webpack:////build/source/ee/app/assets/javascripts/linked_resources/components/resource_links_list.vue?68ed","webpack:///../../../ee/app/assets/javascripts/linked_resources/components/resource_links_list.vue","webpack:////build/source/ee/app/assets/javascripts/linked_resources/components/resource_links_list_item.vue?4546","webpack:////build/source/ee/app/assets/javascripts/linked_resources/components/resource_links_list_item.vue","webpack:////build/source/ee/app/assets/javascripts/linked_resources/components/resource_links_block.vue?4632","webpack:///../../../ee/app/assets/javascripts/linked_resources/components/resource_links_block.vue","webpack:////build/source/ee/app/assets/javascripts/linked_resources/components/resource_links_list.vue?e639","webpack:////build/source/ee/app/assets/javascripts/linked_resources/components/resource_links_list.vue","webpack:////build/source/ee/app/assets/javascripts/linked_resources/components/resource_links_block.vue?de36","webpack:////build/source/ee/app/assets/javascripts/linked_resources/components/resource_links_block.vue","webpack:///./linked_resources/index.js","webpack:///./issues/show/components/incidents/highlight_bar.vue?62e2","webpack:///issues/show/components/incidents/highlight_bar.vue","webpack:///./issues/show/components/incidents/highlight_bar.vue?d193","webpack:///./issues/show/components/incidents/highlight_bar.vue","webpack:///./issues/show/components/incidents/utils.js","webpack:///./issues/show/components/incidents/constants.js","webpack:///./issues/show/components/incidents/create_timeline_event.vue","webpack:///./issues/show/components/incidents/timeline_events_tags_popover.vue?79a9","webpack:///issues/show/components/incidents/timeline_events_tags_popover.vue","webpack:///./issues/show/components/incidents/timeline_events_tags_popover.vue?51f4","webpack:///./issues/show/components/incidents/timeline_events_tags_popover.vue","webpack:///./issues/show/components/incidents/timeline_events_form.vue?b7bc","webpack:///issues/show/components/incidents/timeline_events_form.vue","webpack:///./issues/show/components/incidents/timeline_events_form.vue?f5ed","webpack:///./issues/show/components/incidents/timeline_events_form.vue","webpack:///./issues/show/components/incidents/create_timeline_event.vue?8892","webpack:///issues/show/components/incidents/create_timeline_event.vue","webpack:///./issues/show/components/incidents/create_timeline_event.vue?d62e","webpack:///./issues/show/components/incidents/timeline_events_item.vue?2cda","webpack:///issues/show/components/incidents/timeline_events_item.vue","webpack:///./issues/show/components/incidents/timeline_events_item.vue?0481","webpack:///./issues/show/components/incidents/timeline_events_item.vue","webpack:///./issues/show/components/incidents/edit_timeline_event.vue?8c93","webpack:///issues/show/components/incidents/edit_timeline_event.vue","webpack:///./issues/show/components/incidents/edit_timeline_event.vue?fc35","webpack:///./issues/show/components/incidents/edit_timeline_event.vue","webpack:///./issues/show/components/incidents/timeline_events_list.vue?bf4e","webpack:///issues/show/components/incidents/timeline_events_list.vue","webpack:///./issues/show/components/incidents/timeline_events_list.vue?efbf","webpack:///./issues/show/components/incidents/timeline_events_list.vue","webpack:///./issues/show/components/incidents/timeline_events_tab.vue?97c0","webpack:///issues/show/components/incidents/timeline_events_tab.vue","webpack:///./issues/show/components/incidents/timeline_events_tab.vue?1994","webpack:///./issues/show/components/incidents/timeline_events_tab.vue","webpack:///issues/show/components/incidents/incident_tabs.vue","webpack:///./issues/show/components/incidents/incident_tabs.vue?ddda","webpack:///./issues/show/components/incidents/incident_tabs.vue?e07b","webpack:///./issues/show/components/incidents/incident_tabs.vue","webpack:///./issues/show/components/sentry_error_stack_trace.vue?b5f7","webpack:///issues/show/components/sentry_error_stack_trace.vue","webpack:///./issues/show/components/sentry_error_stack_trace.vue?f711","webpack:///./issues/show/components/sentry_error_stack_trace.vue","webpack:///./issues/show/components/incidents/router.js","webpack:///./issues/show/index.js","webpack:///./work_items/components/work_item_links/work_item_links.vue?c6e8","webpack:///work_items/components/work_item_links/work_item_links.vue","webpack:///./work_items/components/work_item_links/work_item_links.vue?1c08","webpack:///./work_items/components/work_item_links/work_item_links.vue","webpack:///./work_items/components/work_item_links/index.js","webpack:///./issues/index.js","webpack:///./issues/new/index.js","webpack:///./related_issues/index.js","webpack:///./issues/related_merge_requests/index.js","webpack:////build/source/ee/app/assets/javascripts/linked_resources/components/graphql/queries/delete_issuable_resource_link.mutation.graphql","webpack:////build/source/node_modules/lodash/_stringSize.js","webpack:///./performance/constants.js","webpack:///./issues/show/components/delete_issue_modal.vue","webpack:///./issues/show/components/delete_issue_modal.vue?56ea","webpack:///issues/show/components/delete_issue_modal.vue","webpack:///./issues/show/components/delete_issue_modal.vue?2dd6","webpack:///./vue_shared/components/work_item_attribute.vue","webpack:///./vue_shared/components/work_item_attribute.vue?cd7f","webpack:///vue_shared/components/work_item_attribute.vue","webpack:///./vue_shared/components/work_item_attribute.vue?aa8c","webpack:///./work_items/graphql/milestone.fragment.graphql","webpack:////build/source/node_modules/lodash/snakeCase.js","webpack:///./work_items/graphql/move_work_item.mutation.graphql","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/reviewer_applicable_approval_rules.fragment.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/button_group/button_group.js","webpack:////build/source/ee/app/assets/javascripts/issues/list/components/new_issue_dropdown.vue?0492","webpack:///../../../ee/app/assets/javascripts/issues/list/components/new_issue_dropdown.vue","webpack:////build/source/ee/app/assets/javascripts/issues/list/components/new_issue_dropdown.vue?4d44","webpack:////build/source/ee/app/assets/javascripts/issues/list/components/new_issue_dropdown.vue","webpack:///../../../ee/app/assets/javascripts/issues/list/components/issues_list_app.vue","webpack:////build/source/ee/app/assets/javascripts/issues/list/components/issues_list_app.vue?c032","webpack:////build/source/ee/app/assets/javascripts/issues/list/components/issues_list_app.vue?2953","webpack:////build/source/ee/app/assets/javascripts/issues/list/components/issues_list_app.vue","webpack:///./issues/list/components/jira_issues_import_status_app.vue?47b4","webpack:///issues/list/components/jira_issues_import_status_app.vue","webpack:///./issues/list/components/jira_issues_import_status_app.vue?a645","webpack:///./issues/list/components/jira_issues_import_status_app.vue","webpack:///./issues/list/index.js","webpack:///./work_items/components/design_management/graphql/destroy_note.mutation.graphql","webpack:///./sidebar/queries/milestone.fragment.graphql","webpack:////build/source/ee/app/assets/javascripts/work_items/components/work_item_links/work_item_rolled_up_health_status.vue","webpack:////build/source/ee/app/assets/javascripts/work_items/components/work_item_links/work_item_rolled_up_health_status.vue?48aa","webpack:///../../../ee/app/assets/javascripts/work_items/components/work_item_links/work_item_rolled_up_health_status.vue","webpack:////build/source/ee/app/assets/javascripts/work_items/components/work_item_links/work_item_rolled_up_health_status.vue?99da","webpack:///./vue_shared/alert_details/constants.js","webpack:///./sidebar/queries/todo_mark_done.mutation.graphql","webpack:////build/source/node_modules/sortablejs/modular/sortable.esm.js","webpack:///./vue_shared/components/markdown/editor_mode_switcher.vue","webpack:///./vue_shared/components/markdown/editor_mode_switcher.vue?b7b1","webpack:///vue_shared/components/markdown/editor_mode_switcher.vue","webpack:///./vue_shared/components/markdown/editor_mode_switcher.vue?2bb3","webpack:///./vue_shared/issuable/show/components/issuable_header.vue","webpack:///./vue_shared/issuable/show/components/issuable_header.vue?014d","webpack:///vue_shared/issuable/show/components/issuable_header.vue","webpack:///./vue_shared/issuable/show/components/issuable_header.vue?052d","webpack:///./sidebar/queries/update_epic_confidential.mutation.graphql","webpack:////build/source/node_modules/lodash/isSet.js","webpack:///./work_items/components/design_management/graphql/reposition_image_diff_note.mutation.graphql","webpack:///./graphql_shared/fragments/label.fragment.graphql","webpack:///./notes/graphql/promote_timeline_event.mutation.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/shared_components/clear_icon_button/clear_icon_button.js","webpack:///./issues/new/components/title_suggestions.vue","webpack:///./issues/new/components/title_suggestions_item.vue?f407","webpack:///issues/new/components/title_suggestions_item.vue","webpack:///./issues/new/components/title_suggestions_item.vue?133a","webpack:///./issues/new/components/title_suggestions_item.vue","webpack:///./issues/new/components/title_suggestions.vue?1898","webpack:///issues/new/components/title_suggestions.vue","webpack:///./issues/new/components/title_suggestions.vue?d8cd","webpack:///./sidebar/queries/merge_request_todo.subscription.graphql","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/update_issue_weight.mutation.graphql","webpack:///./sidebar/queries/get_issue_crm_contacts.query.graphql","webpack:///./work_items/graphql/work_item_linked_items.fragment.graphql","webpack:////build/source/ee/app/assets/javascripts/boards/graphql/client/active_board_item.query.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/utils.js","webpack:////build/source/ee/app/assets/javascripts/iterations/utils.js","webpack:///./vue_shared/components/project_avatar.vue","webpack:///./vue_shared/components/project_avatar.vue?dc9d","webpack:///vue_shared/components/project_avatar.vue","webpack:///./vue_shared/components/project_avatar.vue?5b42","webpack:///./sidebar/queries/get_issue_timelogs.query.graphql","webpack:///./boards/graphql/issue_create.mutation.graphql","webpack:///./sidebar/queries/escalation_status.query.graphql","webpack:///./vue_shared/issuable/create/components/issuable_label_selector.vue?077d","webpack:///vue_shared/issuable/create/components/issuable_label_selector.vue","webpack:///./vue_shared/issuable/create/components/issuable_label_selector.vue?c086","webpack:///./vue_shared/issuable/create/components/issuable_label_selector.vue","webpack:///./issuable/issuable_label_selector.js","webpack:///./sidebar/queries/issue_crm_contacts.subscription.graphql","webpack:///./lib/utils/autosave.js","webpack:///./diffs/components/diff_row_utils.js","webpack:///./sidebar/queries/project_milestones.query.graphql","webpack:///./work_items/graphql/work_item_linked_items.query.graphql","webpack:///./work_items/components/design_management/graphql/fragments/note_permissions.fragment.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/form-radio/form-radio-group.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/form/form_radio_group/form_radio_group.js","webpack:///./graphql_shared/constants.js","webpack:///./sidebar/queries/merge_request_time_tracking.query.graphql","webpack:///./work_items/components/shared/work_item_token_input.vue","webpack:///./work_items/components/shared/work_item_token_input.vue?b7a9","webpack:///work_items/components/shared/work_item_token_input.vue","webpack:///./work_items/components/shared/work_item_token_input.vue?1354","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_footer.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_footer.vue?15fa","webpack:///sidebar/components/labels/labels_select_widget/dropdown_footer.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_footer.vue?85ba","webpack:///./work_items/components/work_item_state_badge.vue","webpack:///./work_items/components/work_item_state_badge.vue?95bc","webpack:///work_items/components/work_item_state_badge.vue","webpack:///./work_items/components/work_item_state_badge.vue?5a4b","webpack:////build/source/node_modules/deckar01-task_list/dist/task_list.js","webpack:////build/source/node_modules/lodash/isNil.js","webpack:///./graphql_shared/fragments/author.fragment.graphql","webpack:///./vue_shared/mixins/timeago.js","webpack:///./sidebar/queries/get_alert_assignees.query.graphql","webpack:///./sidebar/components/time_tracking/time_tracking_report.vue","webpack:///./sidebar/components/time_tracking/time_tracking_report.vue?aabb","webpack:///sidebar/components/time_tracking/time_tracking_report.vue","webpack:///./sidebar/components/time_tracking/time_tracking_report.vue?2bd9","webpack:///./graphql_shared/fragments/page_info.fragment.graphql","webpack:////build/source/node_modules/lodash/_unicodeSize.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/work_item_parents.query.graphql","webpack:///./notes/stores/index.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/directives/toggle/toggle.js","webpack:////build/source/ee/app/assets/javascripts/graphql_shared/fragments/epic.fragment.graphql","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_header.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_header.vue?c429","webpack:///sidebar/components/labels/labels_select_widget/dropdown_header.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_header.vue?135b","webpack:///./sidebar/components/assignees/assignee_avatar_link.vue","webpack:///./sidebar/components/assignees/assignee_avatar_link.vue?4850","webpack:///sidebar/components/assignees/assignee_avatar_link.vue","webpack:///./sidebar/components/assignees/assignee_avatar_link.vue?5f77","webpack:///./graphql_shared/fragments/user_availability.fragment.graphql","webpack:///./sidebar/queries/update_epic_subscription.mutation.graphql","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/project_issue_epic.query.graphql","webpack:///./sidebar/queries/update_issue_due_date.mutation.graphql","webpack:///./boards/constants.js","webpack:///./sidebar/queries/update_status.mutation.graphql","webpack:////build/source/node_modules/lodash/_compareMultiple.js","webpack:///./abuse_reports/components/constants.js","webpack:///./notes/constants.js","webpack:///./sidebar/components/reviewers/uncollapsed_reviewer_list.vue","webpack:///./sidebar/components/reviewers/reviewer_avatar.vue?d0ec","webpack:///sidebar/components/reviewers/reviewer_avatar.vue","webpack:///./sidebar/components/reviewers/reviewer_avatar_link.vue?4c40","webpack:///sidebar/components/reviewers/reviewer_avatar_link.vue","webpack:///./sidebar/components/reviewers/reviewer_avatar.vue?f444","webpack:///./sidebar/components/reviewers/reviewer_avatar.vue","webpack:///./sidebar/components/reviewers/reviewer_avatar_link.vue?f001","webpack:///./sidebar/components/reviewers/reviewer_avatar_link.vue","webpack:///sidebar/components/reviewers/uncollapsed_reviewer_list.vue","webpack:///./sidebar/components/reviewers/uncollapsed_reviewer_list.vue?8101","webpack:///./sidebar/components/reviewers/uncollapsed_reviewer_list.vue?0ff4","webpack:///./sidebar/queries/issue_time_tracking.query.graphql","webpack:///./sidebar/queries/update_test_case_confidential.mutation.graphql","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/project_issue_iteration.query.graphql","webpack:///./sidebar/queries/issue_subscribed.query.graphql","webpack:///./work_items/graphql/work_items_by_references.query.graphql","webpack:////build/source/node_modules/lodash/_escapeStringChar.js","webpack:///./sidebar/components/assignees/sidebar_participant.vue","webpack:///sidebar/components/assignees/sidebar_participant.vue","webpack:///./sidebar/components/assignees/sidebar_participant.vue?780d","webpack:///./sidebar/components/assignees/sidebar_participant.vue?4c31","webpack:///./sidebar/components/participants/participants.vue","webpack:///./sidebar/components/participants/participants.vue?54f4","webpack:///sidebar/components/participants/participants.vue","webpack:///./sidebar/components/participants/participants.vue?b8fb","webpack:///./helpers/event_hub_factory.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/utils.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/health_status/health_status_dropdown.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/health_status/health_status_dropdown.vue?e58e","webpack:///../../../ee/app/assets/javascripts/sidebar/components/health_status/health_status_dropdown.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/health_status/health_status_dropdown.vue?7f9a","webpack:////build/source/node_modules/lodash/assignInWith.js","webpack:///./lib/logger/index.js","webpack:///./boards/graphql/board_lists_deferred.query.graphql","webpack:///./super_sidebar/user_counts_fetch.js","webpack:///./graphql_shared/fragments/ci_icon.fragment.graphql","webpack:///./sidebar/components/labels/labels_select_widget/graphql/issue_labels.query.graphql","webpack:///./boards/graphql/lists_issues.query.graphql","webpack:////build/source/node_modules/lodash/_initCloneByTag.js","webpack:////build/source/node_modules/lodash/_baseOrderBy.js","webpack:////build/source/node_modules/visibilityjs/index.js","webpack:////build/source/node_modules/@gitlab/svgs/src/file_icon_map.js","webpack:///./issuable/issuable_bulk_update_sidebar.js","webpack:///./issuable/issuable_context.js","webpack:///./issuable/index.js","webpack:///./vue_shared/components/file_icon.vue","webpack:///./vue_shared/components/file_icon.vue?6a90","webpack:///vue_shared/components/file_icon.vue","webpack:///./vue_shared/components/file_icon.vue?7152","webpack:////build/source/node_modules/scrollparent/scrollparent.js","webpack:///./sidebar/queries/issue_reference.query.graphql","webpack:////build/source/node_modules/lodash/_baseIsSet.js","webpack:///./invite_members/event_hub.js","webpack:///./vue_shared/components/user_access_role_badge.vue","webpack:///./vue_shared/components/user_access_role_badge.vue?59b5","webpack:///vue_shared/components/user_access_role_badge.vue","webpack:///./vue_shared/components/user_access_role_badge.vue?6d9e","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/scorer.js","webpack:///./issues/show/components/incidents/graphql/queries/create_timeline_event.mutation.graphql","webpack:///./vue_shared/components/modal_copy_button.vue","webpack:///./vue_shared/components/modal_copy_button.vue?eab4","webpack:///vue_shared/components/modal_copy_button.vue","webpack:///./vue_shared/components/modal_copy_button.vue?ef3f","webpack:///./drawio/constants.js","webpack:///./drawio/drawio_editor.js","webpack:////build/source/node_modules/lodash/chunk.js","webpack:///./sidebar/queries/test_case_confidential.query.graphql","webpack:///./vue_shared/components/imported_badge.vue","webpack:///vue_shared/components/imported_badge.vue","webpack:///./vue_shared/components/imported_badge.vue?8b64","webpack:///./vue_shared/components/imported_badge.vue?c532","webpack:///./vue_shared/components/markdown/tracking.js","webpack:///./ide/constants.js","webpack:///./work_items/graphql/work_item_hierarchy.fragment.graphql","webpack:////build/source/node_modules/lodash/_compareAscending.js","webpack:///./sidebar/queries/epic_due_date.query.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/constants.js","webpack:////build/source/node_modules/lodash/groupBy.js","webpack:///./work_items/components/shared/todos_toggle.vue","webpack:///./work_items/components/shared/todos_toggle.vue?2fb9","webpack:///work_items/components/shared/todos_toggle.vue","webpack:///./work_items/components/shared/todos_toggle.vue?3133","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown.js","webpack:///./issues/show/components/app.vue","webpack:///./issues/show/utils/update_description.js","webpack:///./issues/show/services/index.js","webpack:///./issues/show/mixins/update.js","webpack:///issues/show/components/edit_actions.vue","webpack:///./issues/show/components/edit_actions.vue?8b96","webpack:///./issues/show/components/edit_actions.vue?a527","webpack:///./issues/show/components/edit_actions.vue","webpack:///./issues/show/components/fields/description.vue?7d01","webpack:///issues/show/components/fields/description.vue","webpack:///./issues/show/components/fields/description.vue?0526","webpack:///./issues/show/components/fields/description.vue","webpack:///./issues/show/components/fields/description_template.vue?bf2c","webpack:///issues/show/components/fields/description_template.vue","webpack:///./issues/show/components/fields/description_template.vue?cc37","webpack:///./issues/show/components/fields/description_template.vue","webpack:///./issues/show/components/fields/title.vue?a9e7","webpack:///issues/show/components/fields/title.vue","webpack:///./issues/show/components/fields/title.vue?7158","webpack:///./issues/show/components/fields/title.vue","webpack:///issues/show/components/fields/type.vue","webpack:///./issues/show/components/fields/type.vue?0ea3","webpack:///./issues/show/components/fields/type.vue?0840","webpack:///./issues/show/components/fields/type.vue","webpack:///issues/show/components/locked_warning.vue","webpack:///./issues/show/components/locked_warning.vue?a987","webpack:///./issues/show/components/locked_warning.vue?c8f1","webpack:///./issues/show/components/locked_warning.vue","webpack:///./issues/show/components/form.vue?a0e9","webpack:///issues/show/components/form.vue","webpack:///./issues/show/components/form.vue?bef5","webpack:///./issues/show/components/form.vue","webpack:///./issues/show/components/header_actions_confidentiality_toggle.vue?e565","webpack:///issues/show/components/header_actions_confidentiality_toggle.vue","webpack:///./issues/show/components/header_actions_confidentiality_toggle.vue?e86f","webpack:///./issues/show/components/header_actions_confidentiality_toggle.vue","webpack:///issues/show/components/header_actions.vue","webpack:///./issues/show/components/header_actions.vue?f20a","webpack:///./issues/show/components/header_actions.vue?c956","webpack:///./issues/show/components/header_actions.vue","webpack:///./issues/show/components/issue_header.vue?f623","webpack:///issues/show/components/issue_header.vue","webpack:///./issues/show/components/issue_header.vue?b9b7","webpack:///./issues/show/components/issue_header.vue","webpack:///./issues/show/components/pinned_links.vue?388f","webpack:///issues/show/components/pinned_links.vue","webpack:///./issues/show/components/pinned_links.vue?477b","webpack:///./issues/show/components/pinned_links.vue","webpack:///./issues/show/components/sticky_header.vue?a4f9","webpack:///issues/show/components/sticky_header.vue","webpack:///./issues/show/components/sticky_header.vue?584f","webpack:///./issues/show/components/sticky_header.vue","webpack:///./issues/show/components/title.vue?8068","webpack:///issues/show/components/title.vue","webpack:///./issues/show/components/title.vue?6717","webpack:///./issues/show/components/title.vue","webpack:///issues/show/components/app.vue","webpack:///./issues/show/components/app.vue?badb","webpack:///./issues/show/components/app.vue?9381","webpack:///./boards/graphql/board_list_destroy.mutation.graphql","webpack:///./sidebar/components/reviewers/sidebar_reviewers.vue","webpack:///./merge_requests/components/reviewers/reviewer_drawer.vue?eb57","webpack:///merge_requests/components/reviewers/reviewer_drawer.vue","webpack:///./merge_requests/components/reviewers/reviewer_drawer.vue?4c1a","webpack:///./merge_requests/components/reviewers/reviewer_drawer.vue","webpack:///./sidebar/components/reviewers/reviewer_title.vue?0de8","webpack:///sidebar/components/reviewers/reviewer_title.vue","webpack:///./sidebar/components/reviewers/reviewer_title.vue?205e","webpack:///./sidebar/components/reviewers/reviewer_title.vue","webpack:///./sidebar/components/reviewers/reviewers.vue?27b8","webpack:///sidebar/components/reviewers/reviewers.vue","webpack:///./sidebar/components/reviewers/reviewers.vue?a753","webpack:///./sidebar/components/reviewers/reviewers.vue","webpack:///sidebar/components/reviewers/sidebar_reviewers.vue","webpack:///./sidebar/components/reviewers/sidebar_reviewers.vue?26dc","webpack:///./sidebar/components/reviewers/sidebar_reviewers.vue?1507","webpack:////build/source/ee/app/assets/javascripts/sidebar/constants.js","webpack:///./sidebar/queries/update_issuable_severity.mutation.graphql","webpack:///./batch_comments/mixins/resolved_status.js","webpack:///./issues/show/components/incidents/graphql/queries/delete_timeline_event.mutation.graphql","webpack:///./issues/related_merge_requests/queries/related_merge_requests.query.graphql","webpack:///./vue_shared/components/content_viewer/viewers/download_viewer.vue","webpack:///./vue_shared/components/content_viewer/viewers/download_viewer.vue?d7cb","webpack:///vue_shared/components/content_viewer/viewers/download_viewer.vue","webpack:///./vue_shared/components/content_viewer/viewers/download_viewer.vue?858c","webpack:////build/source/node_modules/dropzone/dist/dropzone.js","webpack:///./vue_shared/components/local_storage_sync.vue?a4c7","webpack:///vue_shared/components/local_storage_sync.vue","webpack:///./vue_shared/components/local_storage_sync.vue","webpack:///./issues/list/eventhub.js","webpack:///./notes/utils/get_notes_filter_data.js","webpack:////build/source/node_modules/lodash/set.js","webpack:////build/source/node_modules/lodash/_createCompounder.js","webpack:///./issuable/components/issuable_by_email.vue","webpack:///./issuable/components/issuable_by_email.vue?0ec9","webpack:///issuable/components/issuable_by_email.vue","webpack:///./issuable/components/issuable_by_email.vue?603b","webpack:///./sidebar/queries/update_merge_request_labels.mutation.graphql","webpack:///./boards/graphql/issue_move_list.mutation.graphql","webpack:///./issuable/issuable_bulk_update_actions.js","webpack:///./sidebar/queries/todo_create.mutation.graphql","webpack:///./vue_shared/components/markdown/header_divider.vue","webpack:///./vue_shared/components/markdown/header_divider.vue?0527","webpack:///vue_shared/components/markdown/header_divider.vue","webpack:///./vue_shared/components/markdown/header_divider.vue?4146","webpack:///./work_items/graphql/group_work_items.query.graphql","webpack:///./sidebar/components/lock/issuable_lock_form.vue","webpack:///./sidebar/components/lock/issuable_lock_form.vue?518e","webpack:///sidebar/components/lock/issuable_lock_form.vue","webpack:///./sidebar/components/lock/issuable_lock_form.vue?3012","webpack:////build/source/node_modules/@gitlab/svgs/dist/illustrations/empty-state/empty-activity-md.svg","webpack:///./diffs/components/image_diff_overlay.vue","webpack:////build/source/ee/app/assets/javascripts/diffs/mixins/image_diff.js","webpack:///diffs/components/image_diff_overlay.vue","webpack:///./diffs/components/image_diff_overlay.vue?2f3e","webpack:///./diffs/components/image_diff_overlay.vue?3a14","webpack:///./work_items/graphql/timelog.fragment.graphql","webpack:///./issues/show/components/edited.vue","webpack:///./issues/show/components/edited.vue?c384","webpack:///issues/show/components/edited.vue","webpack:///./issues/show/components/edited.vue?96cd","webpack:///./behaviors/markdown/paste_markdown_table.js","webpack:///./dropzone_input.js","webpack:///./gl_form.js","webpack:///./work_items/components/design_management/constants.js","webpack:///./work_items/graphql/work_item_by_iid.query.graphql","webpack:///./vue_shared/components/time_ago_tooltip.vue","webpack:///./vue_shared/components/time_ago_tooltip.vue?3039","webpack:///vue_shared/components/time_ago_tooltip.vue","webpack:///./vue_shared/components/time_ago_tooltip.vue?f6d8","webpack:///./graphql_shared/utils.js","webpack:///./notes/mixins/resolvable.js","webpack:////build/source/node_modules/lodash/_arrayIncludesWith.js","webpack:///./boards/graphql/issue_set_labels.mutation.graphql","webpack:///./sidebar/sidebar_bundle.js","webpack:///./lib/utils/ajax_cache.js","webpack:///./diffs/utils/diff_file.js","webpack:///./related_issues/constants.js","webpack:///./work_items/components/design_management/design_preview/design_details.vue","webpack:///./work_items/components/design_management/design_notes/design_reply_form.vue?66b1","webpack:///work_items/components/design_management/design_notes/design_reply_form.vue","webpack:///./work_items/components/design_management/design_notes/design_reply_form.vue?c2cf","webpack:///./work_items/components/design_management/design_notes/design_reply_form.vue","webpack:///./work_items/components/design_management/design_preview/image.vue?f658","webpack:///work_items/components/design_management/design_preview/image.vue","webpack:///./work_items/components/design_management/design_preview/image.vue?0757","webpack:///./work_items/components/design_management/design_preview/image.vue","webpack:///./work_items/components/design_management/design_preview/design_overlay.vue?4f35","webpack:///work_items/components/design_management/design_preview/design_overlay.vue","webpack:///./work_items/components/design_management/design_preview/design_overlay.vue?a6fb","webpack:///./work_items/components/design_management/design_preview/design_overlay.vue","webpack:///work_items/components/design_management/design_preview/design_presentation.vue","webpack:///./work_items/components/design_management/design_preview/design_presentation.vue?8b52","webpack:///./work_items/components/design_management/design_preview/design_presentation.vue?4c6e","webpack:///./work_items/components/design_management/design_preview/design_presentation.vue","webpack:///./work_items/components/design_management/design_preview/close_button.vue?ec63","webpack:///work_items/components/design_management/design_preview/close_button.vue","webpack:///./work_items/components/design_management/design_preview/close_button.vue?2a8d","webpack:///./work_items/components/design_management/design_preview/close_button.vue","webpack:///./work_items/components/design_management/design_preview/design_navigation.vue?4351","webpack:///work_items/components/design_management/design_preview/design_navigation.vue","webpack:///./work_items/components/design_management/design_preview/design_navigation.vue?0bfb","webpack:///./work_items/components/design_management/design_preview/design_navigation.vue","webpack:///./work_items/components/design_management/design_preview/design_toolbar.vue?6dfa","webpack:///work_items/components/design_management/design_preview/design_toolbar.vue","webpack:///./work_items/components/design_management/design_preview/design_toolbar.vue?b9ce","webpack:///./work_items/components/design_management/design_preview/design_toolbar.vue","webpack:///./work_items/components/design_management/design_notes/design_note_signed_out.vue?6a34","webpack:///work_items/components/design_management/design_notes/design_note_signed_out.vue","webpack:///./work_items/components/design_management/design_notes/design_note_signed_out.vue?e5b5","webpack:///./work_items/components/design_management/design_notes/design_note_signed_out.vue","webpack:///./work_items/components/design_management/design_notes/discussion_reply_placeholder.vue?0aeb","webpack:///work_items/components/design_management/design_notes/discussion_reply_placeholder.vue","webpack:///./work_items/components/design_management/design_notes/discussion_reply_placeholder.vue?324d","webpack:///./work_items/components/design_management/design_notes/discussion_reply_placeholder.vue","webpack:///./work_items/components/design_management/design_notes/design_note.vue?b9d4","webpack:///work_items/components/design_management/design_notes/design_note.vue","webpack:///./work_items/components/design_management/design_notes/design_note.vue?ecef","webpack:///./work_items/components/design_management/design_notes/design_note.vue","webpack:///./work_items/components/design_management/design_notes/toggle_replies_widget.vue?7e30","webpack:///work_items/components/design_management/design_notes/toggle_replies_widget.vue","webpack:///./work_items/components/design_management/design_notes/toggle_replies_widget.vue?d203","webpack:///./work_items/components/design_management/design_notes/toggle_replies_widget.vue","webpack:///./work_items/components/design_management/design_notes/design_discussion.vue?dbeb","webpack:///work_items/components/design_management/design_notes/design_discussion.vue","webpack:///./work_items/components/design_management/design_notes/design_discussion.vue?90f8","webpack:///./work_items/components/design_management/design_notes/design_discussion.vue","webpack:///work_items/components/design_management/design_preview/design_description.vue","webpack:///./work_items/components/design_management/design_preview/design_description.vue?deb9","webpack:///./work_items/components/design_management/design_preview/design_description.vue?347e","webpack:///./work_items/components/design_management/design_preview/design_description.vue","webpack:///./work_items/components/design_management/design_preview/design_sidebar.vue?a1c9","webpack:///work_items/components/design_management/design_preview/design_sidebar.vue","webpack:///./work_items/components/design_management/design_preview/design_sidebar.vue?518a","webpack:///./work_items/components/design_management/design_preview/design_sidebar.vue","webpack:///work_items/components/design_management/design_preview/design_scaler.vue","webpack:///./work_items/components/design_management/design_preview/design_scaler.vue?616c","webpack:///./work_items/components/design_management/design_preview/design_scaler.vue?9547","webpack:///./work_items/components/design_management/design_preview/design_scaler.vue","webpack:///work_items/components/design_management/design_preview/design_details.vue","webpack:///./work_items/components/design_management/design_preview/design_details.vue?c85c","webpack:///./work_items/components/design_management/design_preview/design_details.vue?928c","webpack:///./sidebar/constants.js","webpack:////build/source/node_modules/lodash/flattenDeep.js","webpack:///./work_items/components/design_management/graphql/fragments/version.fragment.graphql","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/issuable_labels.subscription.graphql","webpack:////build/source/node_modules/lodash/difference.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/animated_icon/animated_notifications_icon.js","webpack:///./work_items/graphql/client/is_expanded_hierarchy_tree_child.query.graphql","webpack:///./work_items/graphql/work_item_tree.query.graphql","webpack:///./sidebar/queries/epic_confidential.query.graphql","webpack:///./import/constants.js","webpack:///./vue_shared/components/markdown/comment_templates_modal.vue","webpack:////build/source/ee/app/assets/javascripts/vue_shared/components/markdown/constants.js","webpack:///vue_shared/components/markdown/comment_templates_modal.vue","webpack:///./vue_shared/components/markdown/comment_templates_modal.vue?5d69","webpack:///./vue_shared/components/markdown/comment_templates_modal.vue?8b2f","webpack:///./sidebar/queries/update_epic_start_date.mutation.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/animated_icon/animated_todo_icon.js","webpack:///./sidebar/queries/update_issue_lock.mutation.graphql","webpack:////build/source/ee/app/assets/javascripts/related_items_tree/components/issue_health_status.vue","webpack:////build/source/ee/app/assets/javascripts/related_items_tree/components/issue_health_status.vue?6a70","webpack:///../../../ee/app/assets/javascripts/related_items_tree/components/issue_health_status.vue","webpack:////build/source/ee/app/assets/javascripts/related_items_tree/components/issue_health_status.vue?ce73","webpack:////build/source/node_modules/lodash/_deburrLetter.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/project_issue_epic.mutation.graphql","webpack:////build/source/node_modules/@apollo/client/utilities/policies/pagination.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/avatars_inline/avatars_inline.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/group_iterations.query.graphql","webpack:///./sidebar/queries/issue_confidential.query.graphql","webpack:///../images/no_avatar.png","webpack:///./work_items/graphql/work_item.fragment.graphql","webpack:///./work_items/components/design_management/graphql/client/update_active_design_discussion.mutation.graphql","webpack:////build/source/node_modules/lodash/union.js","webpack:///./vue_shared/components/markdown/field.vue","webpack:///./vue_shared/components/markdown/toolbar_button.vue?8f46","webpack:///vue_shared/components/markdown/toolbar_button.vue","webpack:///./vue_shared/components/markdown/toolbar_button.vue?d610","webpack:///./vue_shared/components/markdown/toolbar_button.vue","webpack:///./drawio/markdown_field_editor_facade.js","webpack:///vue_shared/components/markdown/drawio_toolbar_button.vue","webpack:///./vue_shared/components/markdown/drawio_toolbar_button.vue?12ea","webpack:///./vue_shared/components/markdown/drawio_toolbar_button.vue?fb5a","webpack:///./vue_shared/components/markdown/drawio_toolbar_button.vue","webpack:///./vue_shared/components/markdown/header.vue?4500","webpack:///vue_shared/components/markdown/header.vue","webpack:///./vue_shared/components/markdown/header.vue?e780","webpack:///./vue_shared/components/markdown/header.vue","webpack:///./vue_shared/components/markdown/toolbar.vue?73e6","webpack:///vue_shared/components/markdown/toolbar.vue","webpack:///vue_shared/components/markdown/field.vue","webpack:///./vue_shared/components/markdown/field.vue?8bf3","webpack:///./vue_shared/components/markdown/toolbar.vue?5435","webpack:///./vue_shared/components/markdown/toolbar.vue","webpack:///./vue_shared/components/markdown/field.vue?421b","webpack:///./boards/graphql/board_list.fragment.graphql","webpack:///./notes/index.js","webpack:///./notes/mixins/issuable_state.js","webpack:///./notes/mixins/diff_line_note_form.js","webpack:////build/source/node_modules/lodash/words.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/progress_bar/progress_bar.js","webpack:///./work_items/utils.js","webpack:///./work_items/components/design_management/graphql/fragments/discussion_resolved_status.fragment.graphql","webpack:///./notes/event_hub.js","webpack:///./vue_shared/components/content_viewer/viewers/image_viewer.vue","webpack:///vue_shared/components/content_viewer/viewers/image_viewer.vue","webpack:///./vue_shared/components/content_viewer/viewers/image_viewer.vue?b6bc","webpack:///./vue_shared/components/content_viewer/viewers/image_viewer.vue?3b92","webpack:////build/source/node_modules/lodash/_asciiWords.js","webpack:///./vue_shared/components/markdown/markdown_editor.vue","webpack:///vue_shared/components/markdown/markdown_editor.vue","webpack:///./vue_shared/components/markdown/markdown_editor.vue?d0a9","webpack:///./vue_shared/components/markdown/markdown_editor.vue?00ed","webpack:////build/source/node_modules/core-js/modules/esnext.string.at.js","webpack:///./gfm_auto_complete.js","webpack:///./sidebar/queries/merge_request_milestone.query.graphql","webpack:///./vue_shared/components/markdown/suggestions.vue","webpack:///./vue_shared/components/lib/utils/diff_utils.js","webpack:///./vue_shared/components/markdown/suggestion_diff_header.vue","webpack:///./vue_shared/components/markdown/apply_suggestion.vue?1b9d","webpack:///vue_shared/components/markdown/apply_suggestion.vue","webpack:///./vue_shared/components/markdown/apply_suggestion.vue?490c","webpack:///./vue_shared/components/markdown/apply_suggestion.vue","webpack:///vue_shared/components/markdown/suggestion_diff_header.vue","webpack:///./vue_shared/components/markdown/suggestion_diff_header.vue?1a96","webpack:///./vue_shared/components/markdown/suggestion_diff_header.vue?d1a4","webpack:///./vue_shared/components/markdown/suggestion_diff_row.vue?e55a","webpack:///vue_shared/components/markdown/suggestion_diff_row.vue","webpack:///./vue_shared/components/markdown/suggestion_diff.vue?ae27","webpack:///vue_shared/components/markdown/suggestion_diff.vue","webpack:///./vue_shared/components/markdown/suggestion_diff_row.vue?1f35","webpack:///./vue_shared/components/markdown/suggestion_diff_row.vue","webpack:///./vue_shared/components/markdown/suggestion_diff.vue?e1f0","webpack:///./vue_shared/components/markdown/suggestion_diff.vue","webpack:///./vue_shared/components/markdown/suggestions.vue?c520","webpack:///vue_shared/components/markdown/suggestions.vue","webpack:///./vue_shared/components/markdown/suggestions.vue?a617","webpack:///./vue_shared/components/user_select/user_select.vue","webpack:///./vue_shared/components/user_select/user_select.vue?8112","webpack:///vue_shared/components/user_select/user_select.vue","webpack:///./vue_shared/components/user_select/user_select.vue?7ada","webpack:///./smart_interval.js","webpack:////build/source/node_modules/lodash/_reInterpolate.js","webpack:///./diffs/i18n.js","webpack:///./sidebar/components/labels/labels_select_widget/graphql/update_test_case_labels.mutation.graphql","webpack:////build/source/node_modules/lodash/_baseAssign.js","webpack:///./error_tracking/components/stacktrace.vue","webpack:///./error_tracking/components/stacktrace_entry.vue?4fd1","webpack:///error_tracking/components/stacktrace_entry.vue","webpack:///./error_tracking/components/stacktrace.vue?cff8","webpack:///error_tracking/components/stacktrace.vue","webpack:///./error_tracking/components/stacktrace_entry.vue?2d4b","webpack:///./error_tracking/components/stacktrace_entry.vue","webpack:///./error_tracking/components/stacktrace.vue?58d8","webpack:///./sidebar/queries/epic_participants.query.graphql","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents_create_view.vue","webpack:///sidebar/components/labels/labels_select_widget/dropdown_contents_create_view.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents_create_view.vue?c8b4","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents_create_view.vue?e23e","webpack:///./sidebar/queries/update_merge_request_lock.mutation.graphql","webpack:///./sidebar/components/todo_toggle/sidebar_todo_widget.vue","webpack:///sidebar/components/todo_toggle/sidebar_todo_widget.vue","webpack:///./sidebar/components/todo_toggle/sidebar_todo_widget.vue?60df","webpack:///./sidebar/components/todo_toggle/sidebar_todo_widget.vue?a263","webpack:///./invite_members/components/invite_members_trigger.vue","webpack:///./invite_members/components/invite_members_trigger.vue?f47d","webpack:///invite_members/components/invite_members_trigger.vue","webpack:///./invite_members/components/invite_members_trigger.vue?c527","webpack:///./work_items/graphql/create_work_item_todos.mutation.graphql","webpack:///./work_items/components/shared/work_item_children_load_more.vue","webpack:///./work_items/components/shared/work_item_children_load_more.vue?22af","webpack:///work_items/components/shared/work_item_children_load_more.vue","webpack:///./work_items/components/shared/work_item_children_load_more.vue?07f4","webpack:///./work_items/components/design_management/graphql/fragments/design_note.fragment.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/dropdown/dropdown_text.js","webpack:///./diffs/utils/merge_request.js","webpack:///./vue_shared/issuable/list/constants.js","webpack:///./work_items/components/design_management/graphql/create_note.mutation.graphql","webpack:////build/source/node_modules/lodash/isError.js","webpack:///./work_items/components/design_management/graphql/fragments/design_todo_item.fragment.graphql","webpack:///./work_items/components/work_item_type_icon.vue","webpack:///./work_items/components/work_item_type_icon.vue?4fe7","webpack:///work_items/components/work_item_type_icon.vue","webpack:///./work_items/components/work_item_type_icon.vue?1c28","webpack:///./sidebar/queries/move_issue.mutation.graphql","webpack:///./related_issues/components/related_issuable_input.vue","webpack:///./related_issues/components/issue_token.vue?0468","webpack:///related_issues/components/issue_token.vue","webpack:///./related_issues/components/issue_token.vue?f828","webpack:///./related_issues/components/issue_token.vue","webpack:///related_issues/components/related_issuable_input.vue","webpack:///./related_issues/components/related_issuable_input.vue?6e5c","webpack:///./related_issues/components/related_issuable_input.vue?e50f","webpack:///./issuable/components/status_badge.vue","webpack:///issuable/components/status_badge.vue","webpack:///./issuable/components/status_badge.vue?ad5e","webpack:///./issuable/components/status_badge.vue?6071","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/directives/modal/modal.js","webpack:////build/source/node_modules/modern-screenshot/dist/index.js","webpack:///./graphql_shared/fragments/alert_note.fragment.graphql","webpack:///./issuable/issuable_form.js","webpack:////build/source/ee/app/assets/javascripts/issuable/issuable_form.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/drawer/drawer.js","webpack:///./work_items/components/design_management/graphql/archive_design.mutation.graphql","webpack:////build/source/node_modules/visibilityjs/lib/visibility.timers.js","webpack:///./issues/show/components/task_list_item_actions.vue","webpack:///issues/show/components/task_list_item_actions.vue","webpack:///./issues/show/components/task_list_item_actions.vue?38cc","webpack:///./issues/show/components/task_list_item_actions.vue?edbf","webpack:///./sidebar/components/labels/labels_select_widget/graphql/project_labels.query.graphql","webpack:///./behaviors/markdown/utils.js","webpack:///./vue_shared/components/awards_list.vue","webpack:///vue_shared/components/awards_list.vue","webpack:///./vue_shared/components/awards_list.vue?64a6","webpack:///./vue_shared/components/awards_list.vue?1c2c","webpack:///./graphql_shared/fragments/merge_request_time_tracking.fragment.graphql","webpack:///./lib/utils/file_upload.js","webpack:///./boards/graphql/board_list_shared.fragment.graphql","webpack:///./admin/abuse_report/graphql/abuse_report_labels.query.graphql","webpack:///./notes/components/note_actions/reply_button.vue","webpack:///./notes/components/note_actions/reply_button.vue?fa85","webpack:///notes/components/note_actions/reply_button.vue","webpack:///./notes/components/note_actions/reply_button.vue?ca2e","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/form/form_radio/form_radio.js","webpack:///./notes/stores/utils.js","webpack:///./notes/stores/actions.js","webpack:///./notes/stores/mutation_types.js","webpack:///./notes/stores/collapse_utils.js","webpack:///./notes/stores/getters.js","webpack:///./notes/stores/mutations.js","webpack:///./notes/stores/state.js","webpack:///./notes/stores/modules/index.js","webpack:///./vue_shared/components/notes/timeline_entry_item.vue","webpack:///./vue_shared/components/notes/timeline_entry_item.vue?95e9","webpack:////build/source/node_modules/lodash/clone.js","webpack:///./issues/show/components/incidents/graphql/queries/get_alert.graphql","webpack:///./sidebar/event_hub.js","webpack:///./notes/components/note_form.vue","webpack:///./notes/components/note_form.vue?e4f3","webpack:///notes/components/note_form.vue","webpack:///./notes/components/note_form.vue?ef8a","webpack:///./issues/list/graphql.js","webpack:///./sidebar/queries/get_mr_timelogs.query.graphql","webpack:///./confidential_merge_request/state.js","webpack:///./sidebar/components/sidebar_dropdown.vue","webpack:///./sidebar/components/sidebar_dropdown.vue?3b8c","webpack:///sidebar/components/sidebar_dropdown.vue","webpack:///./sidebar/components/sidebar_dropdown.vue?709d","webpack:///./lib/utils/grammar.js","webpack:////build/source/ee/app/assets/javascripts/work_items/graphql/work_item_widgets.fragment.graphql","webpack:///./batch_comments/components/draft_note.vue","webpack:///./batch_comments/components/draft_note.vue?4e5e","webpack:///batch_comments/components/draft_note.vue","webpack:///./batch_comments/components/draft_note.vue?c989","webpack:///./sidebar/components/time_tracking/create_timelog_form.vue","webpack:///./sidebar/components/time_tracking/create_timelog_form.vue?c8fa","webpack:///sidebar/components/time_tracking/create_timelog_form.vue","webpack:///./sidebar/components/time_tracking/create_timelog_form.vue?ceeb","webpack:///./sidebar/queries/update_mr_assignees.mutation.graphql","webpack:////build/source/node_modules/lodash/_baseInverter.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/fuzzaldrin.js","webpack:///./related_issues/components/add_issuable_form.vue","webpack:///./related_issues/components/add_issuable_form.vue?b91b","webpack:///related_issues/components/add_issuable_form.vue","webpack:///./related_issues/components/add_issuable_form.vue?b71a","webpack:///./task_list.js","webpack:////build/source/node_modules/lodash/_createSet.js","webpack:///./vue_shared/mixins/gl_abilities_mixin.js","webpack:///./sidebar/components/severity/severity.vue","webpack:///./sidebar/components/severity/severity.vue?64b6","webpack:///sidebar/components/severity/severity.vue","webpack:///./sidebar/components/severity/severity.vue?f682","webpack:///./sidebar/components/assignees/assignee_avatar.vue","webpack:///./sidebar/components/assignees/assignee_avatar.vue?19b2","webpack:///sidebar/components/assignees/assignee_avatar.vue","webpack:///./sidebar/components/assignees/assignee_avatar.vue?0237","webpack:///./issues/show/utils.js","webpack:///./super_sidebar/utils.js","webpack:///./lib/utils/http_status.js","webpack:////build/source/node_modules/lodash/_baseMap.js","webpack:///./work_items/components/shared/work_item_more_actions.vue","webpack:///./work_items/components/shared/work_item_more_actions.vue?9af5","webpack:///work_items/components/shared/work_item_more_actions.vue","webpack:///./work_items/components/shared/work_item_more_actions.vue?d04c","webpack:////build/source/ee/app/assets/javascripts/linked_resources/components/graphql/queries/get_issuable_resource_links.query.graphql","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/health_status/sidebar_health_status_widget.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/health_status/sidebar_health_status_widget.vue?47be","webpack:///../../../ee/app/assets/javascripts/sidebar/components/health_status/sidebar_health_status_widget.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/health_status/sidebar_health_status_widget.vue?5d31","webpack:///./sidebar/queries/issuable_assignees.subscription.graphql","webpack:///./notes/i18n.js","webpack:///./work_items/components/work_item_abuse_modal.vue","webpack:///./work_items/components/work_item_abuse_modal.vue?321e","webpack:///work_items/components/work_item_abuse_modal.vue","webpack:///./work_items/components/work_item_abuse_modal.vue?d5cb","webpack:///./sidebar/queries/reviewer_rereview.mutation.graphql","webpack:////build/source/node_modules/lodash/_castArrayLikeObject.js","webpack:////build/source/ee/app/assets/javascripts/work_items/graphql/get_issue_details.query.graphql","webpack:///./lib/utils/number_utils.js","webpack:////build/source/node_modules/lodash/truncate.js","webpack:///./notes/utils.js","webpack:///./sidebar/queries/update_merge_request_subscription.mutation.graphql","webpack:///./work_items/graphql/namespace_work_item_types.query.graphql","webpack:///./vue_merge_request_widget/event_hub.js","webpack:///./work_items/components/design_management/graphql/fragments/diff_refs.fragment.graphql","webpack:///./issues/show/queries/promote_to_epic.mutation.graphql","webpack:////build/source/node_modules/vue-virtual-scroll-list/dist/index.js","webpack:///./behaviors/shortcuts/shortcuts_issuable.js","webpack:////build/source/node_modules/lodash/differenceBy.js","webpack:////build/source/node_modules/lodash/sortBy.js","webpack:////build/source/ee/app/assets/javascripts/boards/graphql/board_lists.query.graphql","webpack:///./notes/components/note_header.vue","webpack:///./notes/components/note_header.vue?4b13","webpack:///notes/components/note_header.vue","webpack:///./notes/components/note_header.vue?0c8b","webpack:////build/source/node_modules/lodash/_baseDifference.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/utils/stable-sort.js","webpack:////build/source/node_modules/mousetrap/plugins/pause/mousetrap-pause.js","webpack:///./notes/components/comment_field_layout.vue","webpack:///vue_shared/components/notes/noteable_warning.vue","webpack:///./vue_shared/components/notes/noteable_warning.vue?e124","webpack:///./vue_shared/components/notes/noteable_warning.vue?2f53","webpack:///./vue_shared/components/notes/noteable_warning.vue","webpack:///./notes/components/email_participants_warning.vue?a204","webpack:///notes/components/email_participants_warning.vue","webpack:///./notes/components/email_participants_warning.vue?3a17","webpack:///./notes/components/email_participants_warning.vue","webpack:///notes/components/comment_field_layout.vue","webpack:///./notes/components/comment_field_layout.vue?fbea","webpack:///./notes/components/comment_field_layout.vue?36e9","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/accordion/accordion.js","webpack:///./vue_shared/components/confidentiality_badge.vue","webpack:///./vue_shared/components/confidentiality_badge.vue?d1d1","webpack:///vue_shared/components/confidentiality_badge.vue","webpack:///./vue_shared/components/confidentiality_badge.vue?05af","webpack:///./work_items/graphql/update_work_item.mutation.graphql","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/issue_health_status.query.graphql","webpack:///./sidebar/queries/update_epic_due_date.mutation.graphql","webpack:///./work_items/components/design_management/cache_updates.js","webpack:///./work_items/graphql/delete_work_item.mutation.graphql","webpack:///./sortable/constants.js","webpack:///./work_items/components/work_item_detail_modal.vue","webpack:///./work_items/components/work_item_detail_modal.vue?f3aa","webpack:///work_items/components/work_item_detail_modal.vue","webpack:///./work_items/components/work_item_detail_modal.vue?d370","webpack:///./work_items/components/work_item_detail_modal.vue?c669","webpack:///./issues/show/components/description.vue","webpack:///issues/show/components/description.vue","webpack:///./issues/show/components/description.vue?d4cd","webpack:///./issues/show/components/description.vue?ca3b","webpack:///./sidebar/queries/merge_request_todo.query.graphql","webpack:///./abuse_reports/components/abuse_category_selector.vue","webpack:///./abuse_reports/components/abuse_category_selector.vue?5b67","webpack:///abuse_reports/components/abuse_category_selector.vue","webpack:///./abuse_reports/components/abuse_category_selector.vue?54dd","webpack:////build/source/node_modules/lodash/_cloneSymbol.js","webpack:///./work_items/components/design_management/graphql/design_details.query.graphql","webpack:///./notes/graphql/note.query.graphql","webpack:///./vue_shared/components/design_management/design_note_pin.vue","webpack:///./vue_shared/components/design_management/design_note_pin.vue?0aca","webpack:///vue_shared/components/design_management/design_note_pin.vue","webpack:///./vue_shared/components/design_management/design_note_pin.vue?84f7","webpack:///./sidebar/queries/update_issue_subscription.mutation.graphql","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/project_issue_update_parent.mutation.graphql","webpack:///./vue_shared/components/filtered_search_bar/constants.js","webpack:////build/source/node_modules/lodash/findLastIndex.js","webpack:///./sidebar/queries/merge_request_set_time_estimate.mutation.graphql","webpack:///./merge_requests/components/merge_request_header.vue","webpack:///merge_requests/components/merge_request_header.vue","webpack:///./merge_requests/components/merge_request_header.vue?cc29","webpack:///./merge_requests/components/merge_request_header.vue?5fc4","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/iteration/sidebar_iteration_widget.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/iteration/sidebar_iteration_widget.vue?ac44","webpack:///../../../ee/app/assets/javascripts/sidebar/components/iteration/sidebar_iteration_widget.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/iteration/sidebar_iteration_widget.vue?a955","webpack:///./sidebar/components/time_tracking/set_time_estimate_form.vue","webpack:///sidebar/components/time_tracking/set_time_estimate_form.vue","webpack:///./sidebar/components/time_tracking/set_time_estimate_form.vue?d78d","webpack:///./sidebar/components/time_tracking/set_time_estimate_form.vue?04a0","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/animated_icon/animated_smile_icon.js","webpack:////build/source/node_modules/lodash/templateSettings.js","webpack:////build/source/node_modules/lodash/escapeRegExp.js","webpack:///./sidebar/queries/update_issue_assignees.mutation.graphql","webpack:////build/source/ee/app/assets/javascripts/boards/graphql/epic_detailed.fragment.graphql","webpack:///./issues/list/queries/issue.fragment.graphql","webpack:///./sidebar/components/labels/labels_select_widget/graphql/group_labels.query.graphql","webpack:///./diffs/components/diff_file_header.vue","webpack:///./diffs/components/diff_file_header.vue?59cd","webpack:///diffs/components/diff_file_header.vue","webpack:///./diffs/components/diff_file_header.vue?0186","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/escalation_policy.fragment.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js","webpack:///./issuable/components/csv_import_export_buttons.vue","webpack:///./issuable/components/csv_export_modal.vue?ca45","webpack:///issuable/components/csv_export_modal.vue","webpack:///./issuable/components/csv_export_modal.vue?09d3","webpack:///./issuable/components/csv_export_modal.vue","webpack:///./issuable/components/csv_import_modal.vue?9736","webpack:///issuable/components/csv_import_modal.vue","webpack:///./issuable/components/csv_import_modal.vue?0e79","webpack:///./issuable/components/csv_import_modal.vue","webpack:///./issuable/components/csv_import_export_buttons.vue?2b71","webpack:///issuable/components/csv_import_export_buttons.vue","webpack:///./issuable/components/csv_import_export_buttons.vue?01a0","webpack:////build/source/ee/app/assets/javascripts/issues/list/queries/get_issues.query.graphql","webpack:///./emoji/components/picker.vue","webpack:///./emoji/components/emoji_group.vue?71ed","webpack:///emoji/components/emoji_group.vue","webpack:///./emoji/components/emoji_group.vue?7c4f","webpack:///./emoji/components/emoji_group.vue","webpack:///./emoji/components/category.vue?c038","webpack:///emoji/components/category.vue","webpack:///./emoji/components/category.vue?b389","webpack:///./emoji/components/category.vue","webpack:///./emoji/components/utils.js","webpack:///emoji/components/emoji_list.vue","webpack:///./emoji/components/emoji_list.vue?f199","webpack:///./emoji/components/emoji_list.vue?eb83","webpack:///./emoji/components/emoji_list.vue","webpack:///./emoji/components/picker.vue?a521","webpack:///emoji/components/picker.vue","webpack:///./emoji/components/picker.vue?9b50","webpack:///./issues/show/constants.js","webpack:///./batch_comments/stores/modules/batch_comments/mutation_types.js","webpack:///./zen_mode.js","webpack:///./deprecated_jquery_dropdown/gl_dropdown_filter.js","webpack:///./deprecated_jquery_dropdown/gl_dropdown_input.js","webpack:///./deprecated_jquery_dropdown/gl_dropdown_remote.js","webpack:///./deprecated_jquery_dropdown/render.js","webpack:///./deprecated_jquery_dropdown/gl_dropdown.js","webpack:////build/source/node_modules/lodash/uniqBy.js","webpack:///./vue_shared/components/alert_details_table.vue","webpack:///vue_shared/components/alert_details_table.vue","webpack:///./vue_shared/components/alert_details_table.vue?db07","webpack:///./vue_shared/components/alert_details_table.vue?1cd3","webpack:////build/source/node_modules/lodash/isNull.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/epic_ancestors.query.graphql","webpack:////build/source/ee/app/assets/javascripts/boards/graphql/board_scope.fragment.graphql","webpack:///./notes/components/comment_type_dropdown.vue","webpack:///./notes/components/comment_type_dropdown.vue?30de","webpack:///notes/components/comment_type_dropdown.vue","webpack:///./notes/components/comment_type_dropdown.vue?fa53","webpack:///./sidebar/queries/merge_request_subscribed.query.graphql","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue?c50c","webpack:///vue_shared/components/user_avatar/user_avatar_link.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue?d6b5","webpack:///./sidebar/components/labels/labels_select_widget/labels_select_root.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents_labels_view.vue?9ca6","webpack:///sidebar/components/labels/labels_select_widget/dropdown_contents_labels_view.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents_labels_view.vue?1e44","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents_labels_view.vue","webpack:///./sidebar/components/labels/labels_select_widget/utils.js","webpack:///sidebar/components/labels/labels_select_widget/dropdown_contents.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents.vue?f68a","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents.vue?fcbc","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents.vue","webpack:///./sidebar/components/labels/labels_select_widget/embedded_labels_list.vue?8b9d","webpack:///sidebar/components/labels/labels_select_widget/embedded_labels_list.vue","webpack:///./sidebar/components/labels/labels_select_widget/embedded_labels_list.vue?5075","webpack:///./sidebar/components/labels/labels_select_widget/embedded_labels_list.vue","webpack:///./sidebar/components/labels/labels_select_widget/labels_select_root.vue?d5a3","webpack:///sidebar/components/labels/labels_select_widget/labels_select_root.vue","webpack:///./sidebar/components/labels/labels_select_widget/labels_select_root.vue?3d0f","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/cve_id_request/cve_id_request.vue?0155","webpack:///../../../ee/app/assets/javascripts/sidebar/components/cve_id_request/cve_id_request.vue","webpack:///./helpers/cve_id_request_helper.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/cve_id_request/cve_id_request.vue?445d","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/cve_id_request/cve_id_request.vue","webpack:///../../../ee/app/assets/javascripts/sidebar/components/iteration/iteration_dropdown.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/iteration/iteration_dropdown.vue?842a","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/iteration/iteration_dropdown.vue?961f","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/iteration/iteration_dropdown.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policy_help_state.vue?24d6","webpack:///../../../ee/app/assets/javascripts/sidebar/components/incidents/escalation_policy_help_state.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policy_help_state.vue?4e19","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policy_help_state.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policy_collapsed_state.vue?75e8","webpack:///../../../ee/app/assets/javascripts/sidebar/components/incidents/escalation_policy_collapsed_state.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policy_collapsed_state.vue?7010","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policy_collapsed_state.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policies_empty_state.vue?5abf","webpack:///../../../ee/app/assets/javascripts/sidebar/components/incidents/escalation_policies_empty_state.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policies_empty_state.vue?6ad6","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policies_empty_state.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/sidebar_escalation_policy.vue?2279","webpack:///../../../ee/app/assets/javascripts/sidebar/components/incidents/sidebar_escalation_policy.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/sidebar_escalation_policy.vue?ecfc","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/sidebar_escalation_policy.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/mount_sidebar.js","webpack:///./notes/components/noteable_note.vue","webpack:///./notes/components/note_actions/timeline_event_button.vue?039f","webpack:///notes/components/note_actions/timeline_event_button.vue","webpack:///./notes/components/note_actions/timeline_event_button.vue?e00b","webpack:///./notes/components/note_actions/timeline_event_button.vue","webpack:///./notes/components/note_actions.vue?0a41","webpack:///notes/components/note_actions.vue","webpack:///./notes/components/note_actions.vue?f82a","webpack:///./notes/components/note_actions.vue","webpack:///./notes/components/note_attachment.vue?9e90","webpack:///notes/components/note_attachment.vue","webpack:///./notes/components/note_attachment.vue?3be3","webpack:///./notes/components/note_attachment.vue","webpack:///./notes/components/note_awards_list.vue?bce5","webpack:///notes/components/note_awards_list.vue","webpack:///./notes/components/note_awards_list.vue?39f2","webpack:///./notes/components/note_awards_list.vue","webpack:///./notes/components/note_body.vue?efe9","webpack:///notes/components/note_body.vue","webpack:///./notes/components/note_body.vue?522c","webpack:///./notes/components/note_body.vue","webpack:///./notes/components/noteable_note.vue?af54","webpack:///notes/components/noteable_note.vue","webpack:///./notes/components/noteable_note.vue?8bfa","webpack:///./sidebar/queries/merge_request_reference.query.graphql","webpack:///./sidebar/queries/update_issue_confidential.mutation.graphql","webpack:///./graphql_shared/fragments/user.fragment.graphql","webpack:///./error_tracking/services/index.js","webpack:///./error_tracking/store/mutation_types.js","webpack:///./error_tracking/store/actions.js","webpack:///./error_tracking/store/details/actions.js","webpack:///./error_tracking/store/details/mutation_types.js","webpack:///./error_tracking/store/details/getters.js","webpack:///./error_tracking/store/details/mutations.js","webpack:///./error_tracking/store/list/actions.js","webpack:///./error_tracking/store/list/mutation_types.js","webpack:///./error_tracking/store/list/mutations.js","webpack:///./error_tracking/store/mutations.js","webpack:///./error_tracking/store/index.js","webpack:///./error_tracking/store/list/state.js","webpack:///./error_tracking/store/details/state.js","webpack:///./vue_shared/directives/autofocusonshow.js","webpack:///./graphql_shared/subscriptions/work_item_dates.subscription.graphql","webpack:////build/source/node_modules/lodash/_customDefaultsAssignIn.js","webpack:////build/source/node_modules/lodash/_initCloneArray.js","webpack:///./work_items/graphql/work_item_ancestors.fragment.graphql","webpack:///./sidebar/queries/get_mr_assignees.query.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/dropdown/dropdown_section_header.js","webpack:///./loading_icon_for_legacy_js.js","webpack:///./sidebar/queries/create_timelog.mutation.graphql","webpack:///./work_items/graphql/namespace_groups_for_links_widget.query.graphql","webpack:////build/source/node_modules/immer/dist/immer.esm.js","webpack:///./sidebar/queries/update_escalation_status.mutation.graphql","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/issue_weight.query.graphql","webpack:///./issuable/mixins/related_issuable_mixin.js","webpack:///notes/components/discussion_notes_replies_wrapper.vue","webpack:///./notes/components/discussion_notes_replies_wrapper.vue?2484","webpack:///./lib/utils/vue3compat/normalize_children.js","webpack:///./notes/components/discussion_notes_replies_wrapper.vue","webpack:///./sidebar/queries/epic_subscribed.query.graphql","webpack:///./notes/components/note_signed_out_widget.vue","webpack:///./notes/components/note_signed_out_widget.vue?5189","webpack:///notes/components/note_signed_out_widget.vue","webpack:///./notes/components/note_signed_out_widget.vue?69f8","webpack:///./issues/list/constants.js","webpack:////build/source/ee/app/assets/javascripts/linked_resources/components/graphql/fragments/resource_link_fields.fragment.graphql","webpack:////build/source/ee/app/assets/javascripts/work_items/graphql/work_item_type.fragment.graphql","webpack:///./vue_shared/components/notes/skeleton_note.vue","webpack:///./vue_shared/components/notes/skeleton_note.vue?f249","webpack:///vue_shared/components/notes/skeleton_note.vue","webpack:///./vue_shared/components/notes/skeleton_note.vue?55c3","webpack:///./issuable/constants.js","webpack:///./work_items/graphql/update_work_item_hierarchy.mutation.graphql","webpack:///./notes/mixins/noteable.js","webpack:///./sidebar/queries/epic_todo.query.graphql","webpack:////build/source/ee/app/assets/javascripts/iterations/components/iteration_title.vue","webpack:////build/source/ee/app/assets/javascripts/iterations/components/iteration_title.vue?94c9","webpack:///../../../ee/app/assets/javascripts/iterations/components/iteration_title.vue","webpack:////build/source/ee/app/assets/javascripts/iterations/components/iteration_title.vue?b170","webpack:///./notes/components/note_edited_text.vue","webpack:///./notes/components/note_edited_text.vue?42f6","webpack:///notes/components/note_edited_text.vue","webpack:///./notes/components/note_edited_text.vue?7674","webpack:///./sidebar/queries/update_merge_request_milestone.mutation.graphql","webpack:////build/source/node_modules/lodash/_reEvaluate.js","webpack:///./work_items/components/design_management/graphql/create_image_diff_note.mutation.graphql","webpack:///./sidebar/queries/get_mr_participants.query.graphql","webpack:///./boards/graphql/client/board_toggle_collapsed.mutation.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_search_input.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_group.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox.js","webpack:///./issues/show/queries/update_issue.mutation.graphql","webpack:///./notes/components/notes_app.vue","webpack:///./notes/components/note_preview.vue?6047","webpack:///notes/components/note_preview.vue","webpack:///./notes/components/note_preview.vue?2d16","webpack:///./notes/components/note_preview.vue","webpack:///./notes/components/comment_form.vue?efb9","webpack:///notes/components/comment_form.vue","webpack:///./notes/components/comment_form.vue?74ee","webpack:///./notes/components/comment_form.vue","webpack:///./notes/components/discussion_filter_note.vue?3b85","webpack:///notes/components/discussion_filter_note.vue","webpack:///./notes/components/discussion_filter_note.vue?f4a4","webpack:///./notes/components/discussion_filter_note.vue","webpack:///./notes/components/ordered_layout.vue?a400","webpack:///notes/components/ordered_layout.vue","webpack:///./notes/components/ordered_layout.vue","webpack:///./notes/components/sidebar_subscription.vue?b9f5","webpack:///notes/components/sidebar_subscription.vue","webpack:///./notes/components/sidebar_subscription.vue","webpack:///notes/components/discussion_filter.vue","webpack:///./notes/components/discussion_filter.vue?3dbe","webpack:///./notes/components/notes_activity_header.vue?2f16","webpack:///notes/components/notes_activity_header.vue","webpack:///./notes/components/discussion_filter.vue?7ea1","webpack:///./notes/components/discussion_filter.vue","webpack:///./notes/components/notes_app.vue?584c","webpack:///notes/components/notes_app.vue","webpack:///./notes/components/notes_activity_header.vue?d0c9","webpack:///./notes/components/notes_activity_header.vue","webpack:///./notes/components/notes_app.vue?da28","webpack:////build/source/node_modules/lodash/uniq.js","webpack:///./boards/graphql/board_list_create.mutation.graphql","webpack:///./sidebar/queries/constants.js","webpack:////build/source/node_modules/lodash/_baseUniq.js","webpack:///./filtered_search/droplab/constants.js","webpack:///./filtered_search/droplab/utils.js","webpack:///./filtered_search/droplab/drop_down.js","webpack:///./filtered_search/droplab/hook.js","webpack:///./filtered_search/droplab/hook_button.js","webpack:///./filtered_search/droplab/hook_input.js","webpack:///./filtered_search/droplab/keyboard.js","webpack:///./filtered_search/droplab/drop_lab_deprecated.js","webpack:////build/source/node_modules/lodash/isMap.js","webpack:///./issues/show/mixins/animate.js","webpack:///./sidebar/components/confidential/sidebar_confidentiality_widget.vue","webpack:///./sidebar/components/confidential/sidebar_confidentiality_content.vue?05e7","webpack:///sidebar/components/confidential/sidebar_confidentiality_content.vue","webpack:///./sidebar/components/confidential/sidebar_confidentiality_content.vue?a60c","webpack:///./sidebar/components/confidential/sidebar_confidentiality_content.vue","webpack:///./sidebar/components/confidential/sidebar_confidentiality_form.vue?78e9","webpack:///sidebar/components/confidential/sidebar_confidentiality_form.vue","webpack:///./sidebar/components/confidential/sidebar_confidentiality_form.vue?f31e","webpack:///./sidebar/components/confidential/sidebar_confidentiality_form.vue","webpack:///sidebar/components/confidential/sidebar_confidentiality_widget.vue","webpack:///./sidebar/components/confidential/sidebar_confidentiality_widget.vue?249e","webpack:///./sidebar/components/confidential/sidebar_confidentiality_widget.vue?c4ed","webpack:////build/source/ee/app/assets/javascripts/vue_shared/components/filtered_search_bar/constants.js","webpack:////build/source/ee/app/assets/javascripts/issues/list/queries/iteration.fragment.graphql","webpack:///./related_issues/components/related_issues_root.vue","webpack:///./related_issues/services/related_issues_service.js","webpack:///./related_issues/components/related_issues_root.vue?3dfe","webpack:///related_issues/components/related_issues_root.vue","webpack:///./related_issues/components/related_issues_root.vue?199e","webpack:///./work_items/graphql/cache_utils.js","webpack:///./work_items/components/work_item_links/work_item_links_form.vue","webpack:///./work_items/components/work_item_links/work_item_groups_listbox.vue?b256","webpack:///work_items/components/work_item_links/work_item_groups_listbox.vue","webpack:///./work_items/components/work_item_links/work_item_groups_listbox.vue?45be","webpack:///./work_items/components/work_item_links/work_item_groups_listbox.vue","webpack:///./work_items/components/work_item_links/work_item_links_form.vue?3e9f","webpack:///work_items/components/work_item_links/work_item_links_form.vue","webpack:///./work_items/components/work_item_links/work_item_links_form.vue?e9df","webpack:////build/source/node_modules/@gitlab/ui/dist/components/regions/empty_state/empty_state.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/query.js","webpack:///./work_items/graphql/client/toggle_hierarchy_tree_child.mutation.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/token_selector/helpers.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/token_selector/token_container.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/token_selector/token_selector_dropdown.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/token_selector/token_selector.js","webpack:///./lib/utils/secret_detection_patterns.js","webpack:///./lib/utils/secret_detection.js","webpack:///./sidebar/components/move/issuable_move_dropdown.vue","webpack:///./sidebar/components/move/issuable_move_dropdown.vue?7f83","webpack:///sidebar/components/move/issuable_move_dropdown.vue","webpack:///./sidebar/components/move/issuable_move_dropdown.vue?ce92","webpack:////build/source/node_modules/lodash/_createInverter.js","webpack:///./work_items/components/design_management/archive_design_button.vue","webpack:///./work_items/components/design_management/archive_design_button.vue?5786","webpack:///work_items/components/design_management/archive_design_button.vue","webpack:///./work_items/components/design_management/archive_design_button.vue?97b9","webpack:///./work_items/components/work_item_detail_modal.vue?4278","webpack:///./issues/new/queries/issues.query.graphql","webpack:///./vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue","webpack:///vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue","webpack:///./vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue?bc46","webpack:///./vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue?b534","webpack:////build/source/node_modules/lodash/_reEscape.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/utilities/intersection_observer/intersection_observer.js","webpack:///./boards/graphql/board_list_update.mutation.graphql","webpack:///./work_items/components/design_management/utils.js","webpack:///./jira_import/utils/constants.js","webpack:///./graphql_shared/fragments/user_with_type.fragment.graphql","webpack:///./issues/show/utils/parse_data.js","webpack:///./notes/components/discussion_resolve_button.vue","webpack:///./notes/components/discussion_resolve_button.vue?c7be","webpack:///notes/components/discussion_resolve_button.vue","webpack:///./notes/components/discussion_resolve_button.vue?b5ab","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.js","webpack:///./issuable/components/related_issuable_item.vue","webpack:///./issuable/components/related_issuable_item.vue?fc2a","webpack:///issuable/components/related_issuable_item.vue","webpack:///./issuable/components/related_issuable_item.vue?a710","webpack:///./notes/components/noteable_discussion.vue","webpack:///./notes/components/diff_discussion_header.vue?00cb","webpack:///notes/components/diff_discussion_header.vue","webpack:///./notes/components/diff_discussion_header.vue?71f7","webpack:///./notes/components/diff_discussion_header.vue","webpack:///notes/components/diff_with_note.vue","webpack:///./notes/components/diff_with_note.vue?2cbc","webpack:///./notes/components/diff_with_note.vue?969c","webpack:///./notes/components/diff_with_note.vue","webpack:///./notes/components/discussion_resolve_with_issue_button.vue?aa9d","webpack:///notes/components/discussion_resolve_with_issue_button.vue","webpack:///./notes/components/discussion_resolve_with_issue_button.vue?814e","webpack:///./notes/components/discussion_resolve_with_issue_button.vue","webpack:///./notes/components/discussion_actions.vue?78e2","webpack:///notes/components/discussion_actions.vue","webpack:///./notes/components/discussion_actions.vue?9023","webpack:///./notes/components/discussion_actions.vue","webpack:///./notes/components/discussion_notes.vue?d80d","webpack:///notes/components/discussion_notes.vue","webpack:///./notes/components/discussion_notes.vue?e01a","webpack:///./notes/components/discussion_notes.vue","webpack:///./notes/components/noteable_discussion.vue?70dc","webpack:///notes/components/noteable_discussion.vue","webpack:///./notes/components/noteable_discussion.vue?719c","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/issuable_epic.subscription.graphql","webpack:///./vue_shared/components/crud_component.vue","webpack:///./vue_shared/components/crud_component.vue?0a0d","webpack:///vue_shared/components/crud_component.vue","webpack:///./vue_shared/components/crud_component.vue?18b8","webpack:////build/source/node_modules/lodash/last.js","webpack:///./work_items/components/design_management/graphql/client/active_design_discussion.query.graphql","webpack:////build/source/node_modules/lodash/_copySymbols.js","webpack:///./issues/list/queries/get_issues_list_details.query.graphql","webpack:///./sidebar/queries/issue_set_time_estimate.mutation.graphql","webpack:////build/source/ee/app/assets/javascripts/issues/list/queries/get_issues_counts.query.graphql","webpack:///./labels/create_label_dropdown.js","webpack:///./labels/labels_select.js","webpack:///./vue_shared/components/notes/system_note.vue","webpack:////build/source/ee/app/assets/javascripts/notes/mixins/description_version_history.js","webpack:///vue_shared/components/notes/system_note.vue","webpack:///./vue_shared/components/notes/system_note.vue?a7df","webpack:///./vue_shared/components/notes/system_note.vue?dbb7","webpack:///./notes/components/discussion_reply_placeholder.vue","webpack:///./notes/components/discussion_reply_placeholder.vue?cbcc","webpack:///notes/components/discussion_reply_placeholder.vue","webpack:///./notes/components/discussion_reply_placeholder.vue?656a","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/iteration.fragment.graphql","webpack:///./incidents/constants.js","webpack:///./lib/utils/poll.js","webpack:///./sidebar/components/copy/copyable_field.vue","webpack:///./sidebar/components/copy/copyable_field.vue?079c","webpack:///sidebar/components/copy/copyable_field.vue","webpack:///./sidebar/components/copy/copyable_field.vue?df3a","webpack:///./sidebar/components/todo_toggle/todo_button.vue","webpack:///./sidebar/components/todo_toggle/todo_button.vue?b16f","webpack:///sidebar/components/todo_toggle/todo_button.vue","webpack:///./sidebar/components/todo_toggle/todo_button.vue?7910","webpack:///./diffs/utils/file_reviews.js","webpack:///./right_sidebar.js","webpack:///./boards/graphql/client/selected_board_items.query.graphql","webpack:///./invite_members/constants.js","webpack:///./issuable/issuable_template_selector.js","webpack:///./blob/legacy_template_selector.js","webpack:///./issuable/issuable_template_selectors.js","webpack:///./graphql_shared/fragments/issue_time_tracking.fragment.graphql","webpack:///./lib/utils/file_utility.js","webpack:///./sidebar/components/participants/sidebar_participants_widget.vue","webpack:///./sidebar/components/participants/sidebar_participants.vue?8f90","webpack:///sidebar/components/participants/sidebar_participants.vue","webpack:///./sidebar/components/participants/sidebar_participants.vue?ffee","webpack:///./sidebar/components/participants/sidebar_participants.vue","webpack:///./sidebar/components/participants/sidebar_participants_widget.vue?676a","webpack:///sidebar/components/participants/sidebar_participants_widget.vue","webpack:///./sidebar/components/participants/sidebar_participants_widget.vue?f368","webpack:///./vue_shared/components/ci_icon/ci_icon.vue","webpack:///./vue_shared/components/ci_icon/ci_icon.vue?b66d","webpack:///vue_shared/components/ci_icon/ci_icon.vue","webpack:///./vue_shared/components/ci_icon/ci_icon.vue?9e67","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/search_box_by_type/search_box_by_type.js","webpack:///./issues/show/queries/update_issue_state.mutation.graphql","webpack:///./sidebar/components/severity/sidebar_severity_widget.vue","webpack:///./sidebar/components/severity/sidebar_severity_widget.vue?6d30","webpack:///sidebar/components/severity/sidebar_severity_widget.vue","webpack:///./sidebar/components/severity/sidebar_severity_widget.vue?a42c","webpack:///./work_items/graphql/project_work_items.query.graphql","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/escalation_status.fragment.graphql","webpack:///./behaviors/shortcuts/shortcuts_work_items.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/project_escalation_policies.query.graphql","webpack:///./work_items/components/design_management/graphql/toggle_resolve_discussion.mutation.graphql","webpack:///./issues/show/event_hub.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/toggle/toggle.js","webpack:////build/source/node_modules/lodash/map.js","webpack:///./confidential_merge_request/components/project_form_group.vue","webpack:///./confidential_merge_request/components/dropdown.vue?ba59","webpack:///confidential_merge_request/components/dropdown.vue","webpack:///./confidential_merge_request/components/dropdown.vue?bcf4","webpack:///./confidential_merge_request/components/dropdown.vue","webpack:///./confidential_merge_request/components/project_form_group.vue?bc1b","webpack:///confidential_merge_request/components/project_form_group.vue","webpack:///./confidential_merge_request/components/project_form_group.vue?c500","webpack:///./sidebar/queries/issue_todo.query.graphql","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/pathScorer.js","webpack:///./jira_import/utils/jira_import_utils.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/label/label.js","webpack:///./sidebar/components/labels/labels_select_widget/graphql/epic_update_labels.mutation.graphql","webpack:///./sidebar/stores/sidebar_store.js","webpack:///./sidebar/components/sidebar_editable_item.vue","webpack:///./sidebar/components/sidebar_editable_item.vue?0348","webpack:///sidebar/components/sidebar_editable_item.vue","webpack:///./sidebar/components/sidebar_editable_item.vue?6457","webpack:///./boards/components/issue_due_date.vue","webpack:///./boards/components/issue_due_date.vue?41c1","webpack:///boards/components/issue_due_date.vue","webpack:///./boards/components/issue_due_date.vue?75d4","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/collapse/helpers/bv-collapse.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/collapse/collapse.js","webpack:///./lib/utils/regexp.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/project_issue_parent.query.graphql","webpack:////build/source/ee/app/assets/javascripts/boards/graphql/board_list.fragment.graphql","webpack:///./issues/show/queries/get_issue_state.query.graphql","webpack:///./diffs/components/diff_stats.vue","webpack:///./diffs/components/diff_stats.vue?9cf2","webpack:///diffs/components/diff_stats.vue","webpack:///./diffs/components/diff_stats.vue?a622","webpack:////build/source/node_modules/lodash/cloneDeep.js","webpack:///./work_items/graphql/work_item_ancestors.query.graphql","webpack:///./graphql_shared/fragments/issue.fragment.graphql","webpack:////build/source/node_modules/visibilityjs/lib/visibility.core.js","webpack:////build/source/node_modules/vue-router/dist/vue-router.esm.js","webpack:///./sidebar/components/assignees/sidebar_assignees_widget.vue","webpack:///./sidebar/components/assignees/assignees_realtime.vue?4bc8","webpack:///sidebar/components/assignees/assignees_realtime.vue","webpack:///./sidebar/components/assignees/assignees_realtime.vue","webpack:///./sidebar/components/assignees/issuable_assignees.vue?6926","webpack:///sidebar/components/assignees/issuable_assignees.vue","webpack:///./sidebar/components/assignees/issuable_assignees.vue?cb0e","webpack:///./sidebar/components/assignees/issuable_assignees.vue","webpack:///./sidebar/components/assignees/sidebar_invite_members.vue?a559","webpack:///sidebar/components/assignees/sidebar_invite_members.vue","webpack:///./sidebar/components/assignees/sidebar_invite_members.vue?0e62","webpack:///./sidebar/components/assignees/sidebar_invite_members.vue","webpack:///sidebar/components/assignees/sidebar_assignees_widget.vue","webpack:///./sidebar/components/assignees/sidebar_assignees_widget.vue?e4e9","webpack:///./sidebar/components/assignees/sidebar_assignees_widget.vue?c10d","webpack:///./performance/utils.js","webpack:////build/source/node_modules/lodash/isRegExp.js","webpack:///./graphql_shared/queries/project_autocomplete_users_with_mr_permissions.query.graphql","webpack:////build/source/node_modules/lodash/_hasUnicodeWord.js","webpack:///./deprecated_jquery_dropdown/index.js","webpack:///./work_items/components/design_management/graphql/update_design_description.mutation.graphql","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue","webpack:///../../../ee/app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue?d7a9","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue?8fb0","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/avatar_link/avatar_link.js","webpack:///./merge_requests/components/reviewers/reviewer_dropdown.vue","webpack:///./merge_requests/components/reviewers/update_reviewers.vue?199e","webpack:///merge_requests/components/reviewers/update_reviewers.vue","webpack:///./merge_requests/components/reviewers/update_reviewers.vue","webpack:///./merge_requests/components/reviewers/reviewer_dropdown.vue?d87f","webpack:///merge_requests/components/reviewers/reviewer_dropdown.vue","webpack:///./merge_requests/components/reviewers/reviewer_dropdown.vue?4a6a","webpack:///./render_vue_component_for_legacy_js.js","webpack:///./sidebar/components/labels/labels_select_widget/graphql/merge_request_labels.query.graphql","webpack:////build/source/node_modules/lodash/_asciiSize.js","webpack:////build/source/node_modules/lodash/_copySymbolsIn.js","webpack:///./admin/abuse_report/graphql/create_abuse_report_label.mutation.graphql","webpack:////build/source/node_modules/lodash/_baseWhile.js","webpack:///./sidebar/components/date/sidebar_date_widget.vue","webpack:///./sidebar/components/date/sidebar_formatted_date.vue?8561","webpack:///sidebar/components/date/sidebar_formatted_date.vue","webpack:///./sidebar/components/date/sidebar_formatted_date.vue?4339","webpack:///./sidebar/components/date/sidebar_formatted_date.vue","webpack:///./sidebar/components/date/sidebar_inherit_date.vue?c544","webpack:///sidebar/components/date/sidebar_inherit_date.vue","webpack:///./sidebar/components/date/sidebar_inherit_date.vue?f165","webpack:///./sidebar/components/date/sidebar_inherit_date.vue","webpack:///sidebar/components/date/sidebar_date_widget.vue","webpack:///./sidebar/components/date/sidebar_date_widget.vue?c7e5","webpack:///./sidebar/components/date/sidebar_date_widget.vue?dc1e","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/work_item_parent.subscription.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/animated_icon/animated_chevron_right_down_icon.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/accordion/accordion_item.js","webpack:////build/source/ee/app/assets/javascripts/work_items/graphql/work_item_metadata_widgets_extras.fragment.graphql","webpack:////build/source/ee/app/assets/javascripts/linked_resources/components/graphql/queries/create_issuable_resource_link.mutation.graphql","webpack:///./sidebar/components/sidebar_color_picker.vue","webpack:///./sidebar/components/sidebar_color_picker.vue?4216","webpack:///sidebar/components/sidebar_color_picker.vue","webpack:///./sidebar/components/sidebar_color_picker.vue?ccd4","webpack:////build/source/node_modules/portal-vue/dist/portal-vue.common.js","webpack:///./issues/show/components/incidents/graphql/queries/edit_timeline_event.mutation.graphql","webpack:////build/source/node_modules/lodash/_cloneDataView.js","webpack:///./lib/utils/vector.js","webpack:///./lib/utils/image_utils.js","webpack:///./boards/graphql/issue_set_subscription.mutation.graphql","webpack:///./sidebar/queries/epic_start_date.query.graphql","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_value.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_value.vue?1090","webpack:///sidebar/components/labels/labels_select_widget/dropdown_value.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_value.vue?9943","webpack:///./diffs/constants.js","webpack:///./sidebar/queries/get_issue_assignees.query.graphql","webpack:///./vue_shared/alert_details/graphql/mutations/alert_set_assignees.mutation.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/nav/nav.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/tabs/tabs.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/tabs/tabs/tabs.js","webpack:///./sidebar/utils.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/issue_escalation_policy.query.graphql","webpack:///./related_issues/stores/related_issues_store.js","webpack:///./merge_requests/components/reviewers/queries/user_permissions.query.graphql","webpack:///./issuable/components/locked_badge.vue","webpack:///./issuable/components/locked_badge.vue?7fc0","webpack:///issuable/components/locked_badge.vue","webpack:///./issuable/components/locked_badge.vue?3234","webpack:///./sidebar/components/assignees/collapsed_assignee.vue?875d","webpack:///sidebar/components/assignees/collapsed_assignee.vue","webpack:///./sidebar/components/assignees/collapsed_assignee.vue?649a","webpack:///./sidebar/components/assignees/collapsed_assignee.vue","webpack:///sidebar/components/assignees/collapsed_assignee_list.vue","webpack:///./sidebar/components/assignees/collapsed_assignee_list.vue?8f5b","webpack:///./sidebar/components/assignees/collapsed_assignee_list.vue?8f8f","webpack:///./sidebar/components/assignees/collapsed_assignee_list.vue","webpack:///./sidebar/components/copy/copy_email_to_clipboard.vue?a2cc","webpack:///sidebar/components/copy/copy_email_to_clipboard.vue","webpack:///./sidebar/components/copy/copy_email_to_clipboard.vue?9f25","webpack:///./sidebar/components/copy/copy_email_to_clipboard.vue","webpack:///sidebar/components/incidents/escalation_status.vue","webpack:///./sidebar/components/incidents/escalation_status.vue?5e0f","webpack:///./sidebar/components/incidents/escalation_status.vue?9b66","webpack:///./sidebar/components/incidents/escalation_status.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_status.vue?df5d","webpack:///../../../ee/app/assets/javascripts/sidebar/components/incidents/escalation_status.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_status.vue?6e63","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_status.vue","webpack:///./sidebar/components/incidents/sidebar_escalation_status.vue?bd8f","webpack:///sidebar/components/incidents/sidebar_escalation_status.vue","webpack:///./sidebar/components/incidents/sidebar_escalation_status.vue?e7fe","webpack:///./sidebar/components/incidents/sidebar_escalation_status.vue","webpack:///sidebar/components/milestone/milestone_dropdown.vue","webpack:///./sidebar/components/milestone/milestone_dropdown.vue?1044","webpack:///./sidebar/components/milestone/milestone_dropdown.vue?0894","webpack:///./sidebar/components/milestone/milestone_dropdown.vue","webpack:///./sidebar/components/move/move_issues_button.vue?9526","webpack:///sidebar/components/move/move_issues_button.vue","webpack:///./sidebar/components/move/move_issues_button.vue?bb2a","webpack:///./sidebar/components/move/move_issues_button.vue","webpack:///./sidebar/components/copy/sidebar_reference_widget.vue?2390","webpack:///sidebar/components/copy/sidebar_reference_widget.vue","webpack:///./sidebar/components/copy/sidebar_reference_widget.vue?439a","webpack:///./sidebar/components/copy/sidebar_reference_widget.vue","webpack:///./sidebar/components/reviewers/sidebar_reviewers_inputs.vue?1448","webpack:///sidebar/components/reviewers/sidebar_reviewers_inputs.vue","webpack:///./sidebar/components/reviewers/sidebar_reviewers_inputs.vue?8ee8","webpack:///./sidebar/components/reviewers/sidebar_reviewers_inputs.vue","webpack:///./sidebar/components/status/status_dropdown.vue?a6d1","webpack:///sidebar/components/status/status_dropdown.vue","webpack:///./sidebar/components/status/status_dropdown.vue?6e3e","webpack:///./sidebar/components/status/status_dropdown.vue","webpack:///./sidebar/components/subscriptions/subscriptions_dropdown.vue?7133","webpack:///sidebar/components/subscriptions/subscriptions_dropdown.vue","webpack:///./sidebar/components/subscriptions/subscriptions_dropdown.vue?2ddf","webpack:///./sidebar/components/subscriptions/subscriptions_dropdown.vue","webpack:///./sidebar/components/time_tracking/sidebar_time_tracking.vue?7e16","webpack:///sidebar/components/time_tracking/sidebar_time_tracking.vue","webpack:///./sidebar/components/time_tracking/sidebar_time_tracking.vue?11f8","webpack:///./sidebar/components/time_tracking/sidebar_time_tracking.vue","webpack:///./sidebar/components/crm_contacts/crm_contacts.vue?a876","webpack:///sidebar/components/crm_contacts/crm_contacts.vue","webpack:///./sidebar/components/crm_contacts/crm_contacts.vue?bc8c","webpack:///./sidebar/components/crm_contacts/crm_contacts.vue","webpack:///./sidebar/components/move/move_issue_button.vue","webpack:///./sidebar/components/move/move_issue_button.vue?2755","webpack:///sidebar/components/move/move_issue_button.vue","webpack:///./sidebar/components/move/move_issue_button.vue?5de6","webpack:///./sidebar/components/confidential/confidentiality_dropdown.vue?8ff8","webpack:///sidebar/components/confidential/confidentiality_dropdown.vue","webpack:///./sidebar/components/confidential/confidentiality_dropdown.vue?391b","webpack:///./sidebar/components/confidential/confidentiality_dropdown.vue","webpack:///./sidebar/mount_sidebar.js","webpack:///./sidebar/track_invite_members.js","webpack:////build/source/node_modules/lodash/_baseIsRegExp.js","webpack:///./notes/components/discussion_locked_widget.vue","webpack:///./notes/components/discussion_locked_widget.vue?d8e1","webpack:///notes/components/discussion_locked_widget.vue","webpack:///./notes/components/discussion_locked_widget.vue?c4cb","webpack:///./graphql_shared/client/is_showing_labels.query.graphql","webpack:////build/source/node_modules/lodash/_baseAssignIn.js","webpack:////build/source/node_modules/lodash/_unicodeWords.js","webpack:////build/source/node_modules/core-js/internals/string-multibyte.js","webpack:///./boards/graphql/group_board.query.graphql","webpack:///./related_issues/components/related_issues_block.vue","webpack:///./related_issues/components/related_issues_list.vue?bea9","webpack:///related_issues/components/related_issues_list.vue","webpack:///./related_issues/components/related_issues_list.vue?579a","webpack:///./related_issues/components/related_issues_list.vue","webpack:///./related_issues/components/related_issues_block.vue?da2e","webpack:///related_issues/components/related_issues_block.vue","webpack:///./related_issues/components/related_issues_block.vue?a02f","webpack:///./users_select/constants.js","webpack:///./sidebar/queries/project_issue_milestone.query.graphql","webpack:///./sidebar/components/assignees/user_name_with_status.vue","webpack:///./sidebar/components/assignees/user_name_with_status.vue?acc0","webpack:///sidebar/components/assignees/user_name_with_status.vue","webpack:///./sidebar/components/assignees/user_name_with_status.vue?c45c","webpack:////build/source/node_modules/lodash/deburr.js","webpack:////build/source/node_modules/lodash/takeRightWhile.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/matcher.js","webpack:///./boards/graphql/project_board.query.graphql","webpack:////build/source/node_modules/lodash/intersection.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/tabs/tab.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/tabs/tab/tab.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/tabs/constants.js","webpack:///./vue_shared/components/notes/placeholder_note.vue","webpack:///./vue_shared/components/notes/placeholder_note.vue?d8fc","webpack:///vue_shared/components/notes/placeholder_note.vue","webpack:///./vue_shared/components/notes/placeholder_note.vue?cb3a","webpack:////build/source/ee/app/assets/javascripts/vue_shared/components/markdown/saved_replies.query.graphql","webpack:///./sidebar/queries/epic_reference.query.graphql","webpack:///./sidebar/components/sidebar_dropdown_widget.vue","webpack:///./sidebar/components/sidebar_dropdown_widget.vue?f2e5","webpack:///sidebar/components/sidebar_dropdown_widget.vue","webpack:///./sidebar/components/sidebar_dropdown_widget.vue?c2a7","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/project_issue_iteration.mutation.graphql","webpack:////build/source/ee/app/assets/javascripts/boards/graphql/issue.fragment.graphql","webpack:///./autosave.js","webpack:///./vue_shared/mixins/modal_keyboard_navigation_mixin.js","webpack:///./lib/utils/text_markdown.js","webpack:///./boards/graphql/issue_set_title.mutation.graphql","webpack:///./merge_requests/components/reviewers/queries/set_reviewers.mutation.graphql","webpack:///./sidebar/components/time_tracking/time_tracker.vue","webpack:///./sidebar/components/time_tracking/collapsed_state.vue?494b","webpack:///sidebar/components/time_tracking/collapsed_state.vue","webpack:///./sidebar/components/time_tracking/collapsed_state.vue?b7dc","webpack:///./sidebar/components/time_tracking/collapsed_state.vue","webpack:///./sidebar/components/time_tracking/comparison_pane.vue?b1ae","webpack:///sidebar/components/time_tracking/comparison_pane.vue","webpack:///./sidebar/components/time_tracking/comparison_pane.vue?0cd7","webpack:///./sidebar/components/time_tracking/comparison_pane.vue","webpack:///sidebar/components/time_tracking/spent_only_pane.vue","webpack:///./sidebar/components/time_tracking/spent_only_pane.vue?e3e5","webpack:///./sidebar/components/time_tracking/spent_only_pane.vue?7fb1","webpack:///./sidebar/components/time_tracking/spent_only_pane.vue","webpack:///./sidebar/components/time_tracking/time_tracker.vue?3a0a","webpack:///sidebar/components/time_tracking/time_tracker.vue","webpack:///./sidebar/components/time_tracking/time_tracker.vue?94b5","webpack:///./graphql_shared/fragments/milestone.fragment.graphql","webpack:///./sidebar/queries/merge_request_reviewers.subscription.graphql","webpack:////build/source/ee/app/assets/javascripts/issues/list/queries/search_iterations.query.graphql","webpack:///./work_items/components/design_management/graphql/design_note_award_emoji_toggle.mutation.graphql","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/issue_escalation_policy.mutation.graphql","webpack:////build/source/node_modules/lodash/_baseSortBy.js","webpack:///./lib/utils/jquery_at_who.js","webpack:///./work_items/graphql/create_work_item.mutation.graphql","webpack:///./sidebar/components/subscriptions/sidebar_subscriptions_widget.vue","webpack:///sidebar/components/subscriptions/sidebar_subscriptions_widget.vue","webpack:///./sidebar/components/subscriptions/sidebar_subscriptions_widget.vue?b3ae","webpack:///./sidebar/components/subscriptions/sidebar_subscriptions_widget.vue?af29","webpack:///./work_items/components/design_management/graphql/design_collection.query.graphql","webpack:///./vue_shared/plugins/global_toast.js","webpack:////build/source/ee/app/assets/javascripts/gfm_auto_complete.js","webpack:///./sidebar/services/sidebar_service.js","webpack:///./sidebar/sidebar_mediator.js","webpack:///./behaviors/shortcuts/shortcuts.js","webpack:///./sidebar/queries/project_issue_milestone.mutation.graphql","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/group_epics.query.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/dropdown/dropdown_form.js","webpack:////build/source/ee/app/assets/javascripts/work_items/graphql/work_item_metadata_widgets.fragment.graphql","webpack:///./boards/graphql/client/error.query.graphql","webpack:///./work_items/components/work_item_links/work_item_children_wrapper.vue","webpack:///./work_items/components/work_item_links/work_item_link_child.vue?4435","webpack:///work_items/components/work_item_links/work_item_link_child.vue","webpack:///./work_items/components/work_item_links/work_item_children_wrapper.vue?e909","webpack:///work_items/components/work_item_links/work_item_children_wrapper.vue","webpack:///./work_items/components/work_item_links/work_item_link_child.vue?aae2","webpack:///./work_items/components/work_item_links/work_item_link_child.vue","webpack:///./work_items/components/work_item_links/work_item_children_wrapper.vue?5c97","webpack:///./vue_shared/components/design_management/design_disclosure.vue","webpack:///./vue_shared/components/design_management/design_disclosure.vue?4cac","webpack:///vue_shared/components/design_management/design_disclosure.vue","webpack:///./vue_shared/components/design_management/design_disclosure.vue?d580","webpack:////build/source/node_modules/lodash/_castSlice.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/epic.fragment.graphql","webpack:///./work_items/graphql/resolvers.js","webpack:///./graphql_shared/issuable_client.js","webpack:////build/source/node_modules/lodash/_baseIsMap.js","webpack:////build/source/node_modules/vuedraggable/dist/vuedraggable.common.js","webpack:////build/source/node_modules/lodash/kebabCase.js","webpack:///./sidebar/queries/update_epic_title.mutation.graphql","webpack:///./behaviors/shortcuts/shortcuts_toggle.js","webpack:///./work_items/components/shared/work_item_relationship_icons.vue","webpack:///./work_items/components/shared/work_item_relationship_popover_metadata.vue?a166","webpack:///work_items/components/shared/work_item_relationship_popover_metadata.vue","webpack:///./work_items/components/shared/work_item_relationship_popover_metadata.vue?b84d","webpack:///./work_items/components/shared/work_item_relationship_popover_metadata.vue","webpack:////build/source/ee/app/assets/javascripts/work_items/components/shared/work_item_relationship_popover_metadata.vue?e1d3","webpack:///../../../ee/app/assets/javascripts/work_items/components/shared/work_item_relationship_popover_metadata.vue","webpack:////build/source/ee/app/assets/javascripts/work_items/components/shared/work_item_relationship_popover_metadata.vue?e452","webpack:////build/source/ee/app/assets/javascripts/work_items/components/shared/work_item_relationship_popover_metadata.vue","webpack:///work_items/components/shared/work_item_relationship_popover.vue","webpack:///./work_items/components/shared/work_item_relationship_popover.vue?ac8e","webpack:///./work_items/components/shared/work_item_relationship_popover.vue?61e4","webpack:///./work_items/components/shared/work_item_relationship_popover.vue","webpack:///./work_items/components/shared/work_item_relationship_icons.vue?584c","webpack:///work_items/components/shared/work_item_relationship_icons.vue","webpack:///./work_items/components/shared/work_item_relationship_icons.vue?fe8c","webpack:///./work_items/graphql/work_item_by_id.query.graphql","webpack:///./vue_shared/components/diff_viewer/diff_viewer.vue","webpack:///./vue_shared/components/diff_viewer/constants.js","webpack:///vue_shared/components/diff_viewer/viewers/download_diff_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/download_diff_viewer.vue?5ec3","webpack:///./vue_shared/components/diff_viewer/viewers/download_diff_viewer.vue?2c71","webpack:///./vue_shared/components/diff_viewer/viewers/download_diff_viewer.vue","webpack:///./vue_shared/components/lib/utils/dom_utils.js","webpack:///vue_shared/components/diff_viewer/viewers/image_diff/onion_skin_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/onion_skin_viewer.vue?3f50","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/onion_skin_viewer.vue?3783","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/onion_skin_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/swipe_viewer.vue?cf76","webpack:///vue_shared/components/diff_viewer/viewers/image_diff/swipe_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/swipe_viewer.vue?ea67","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/swipe_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/two_up_viewer.vue?6924","webpack:///vue_shared/components/diff_viewer/viewers/image_diff/two_up_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/two_up_viewer.vue?b1ff","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/two_up_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff_viewer.vue?4672","webpack:///vue_shared/components/diff_viewer/viewers/image_diff_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff_viewer.vue?578e","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/mode_changed.vue?2136","webpack:///vue_shared/components/diff_viewer/viewers/mode_changed.vue","webpack:///./vue_shared/components/diff_viewer/viewers/mode_changed.vue?dc05","webpack:///./vue_shared/components/diff_viewer/viewers/mode_changed.vue","webpack:///vue_shared/components/diff_viewer/viewers/renamed.vue","webpack:///./vue_shared/components/diff_viewer/viewers/renamed.vue?21bd","webpack:///./vue_shared/components/diff_viewer/utils.js","webpack:///./vue_shared/components/diff_viewer/viewers/renamed.vue?3d25","webpack:///./vue_shared/components/diff_viewer/viewers/renamed.vue","webpack:///./vue_shared/components/diff_viewer/diff_viewer.vue?e812","webpack:///vue_shared/components/diff_viewer/diff_viewer.vue","webpack:///./vue_shared/components/diff_viewer/diff_viewer.vue?3c42","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/constants.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/table-lite.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/table_lite/table_lite.js","webpack:///./work_items/components/work_item_links/work_item_rolled_up_count.vue","webpack:///./work_items/components/work_item_links/work_item_rolled_up_count_info.vue?eaf6","webpack:///work_items/components/work_item_links/work_item_rolled_up_count_info.vue","webpack:///./work_items/components/work_item_links/work_item_rolled_up_count_info.vue?207d","webpack:///./work_items/components/work_item_links/work_item_rolled_up_count_info.vue","webpack:///./work_items/components/work_item_links/work_item_rolled_up_count.vue?f284","webpack:///work_items/components/work_item_links/work_item_rolled_up_count.vue","webpack:///./work_items/components/work_item_links/work_item_rolled_up_count.vue?9a01","webpack:///./work_items/graphql/mark_done_work_item_todos.mutation.graphql","webpack:///./sidebar/queries/delete_timelog.mutation.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/toast/toaster.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/toast/toast.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/toast/helpers/bv-toast.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/toast/index.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/toast/toast.js","webpack:///./users_select/utils.js","webpack:///./users_select/index.js","webpack:///./sidebar/components/time_tracking/constants.js","webpack:///./sidebar/queries/issue_crm_contacts.fragment.graphql","webpack:///./sidebar/queries/group_milestones.query.graphql","webpack:///./sidebar/components/labels/labels_select_widget/graphql/create_label.mutation.graphql","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/weight/sidebar_weight_widget.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/weight/sidebar_weight_widget.vue?ef44","webpack:///../../../ee/app/assets/javascripts/sidebar/components/weight/sidebar_weight_widget.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/weight/sidebar_weight_widget.vue?1f0e","webpack:///./notes/components/multiline_comment_utils.js","webpack:///./issuable/components/hidden_badge.vue","webpack:///./issuable/components/hidden_badge.vue?d89a","webpack:///issuable/components/hidden_badge.vue","webpack:///./issuable/components/hidden_badge.vue?8c0c","webpack:///./sidebar/queries/issue_due_date.query.graphql","webpack:///./work_items/components/design_management/graphql/update_note.mutation.graphql","webpack:////build/source/node_modules/lodash/_cloneRegExp.js","webpack:///./issues/show/components/incidents/graphql/queries/get_timeline_events.query.graphql","webpack:////build/source/ee/app/assets/javascripts/graphql_shared/subscriptions/issuable_weight.subscription.graphql","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/filter.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_item.js","webpack:///./vue_shared/components/notes/placeholder_system_note.vue","webpack:///./vue_shared/components/notes/placeholder_system_note.vue?2f47","webpack:///vue_shared/components/notes/placeholder_system_note.vue","webpack:///./vue_shared/components/notes/placeholder_system_note.vue?e5c8","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-bottom-row.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/utils/stringify-object-values.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/sanitize-row.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-filtering.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/stringify-record-values.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/default-sort-compare.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-top-row.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/table.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/table/constants.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/table/table.js","webpack:////build/source/node_modules/lodash/_baseSlice.js","webpack:////build/source/node_modules/lodash/attempt.js"],"names":["components","UserAvatarLink","directives","GlTooltip","GlTooltipDirective","props","assignees","type","Array","required","iconSize","Number","default","imgCssClasses","String","maxVisible","data","maxAssignees","computed","assigneesToShow","numShownAssignees","length","numHiddenAssignees","slice","assigneesCounterTooltip","sprintf","__","count","assigneeCounterLabel","methods","avatarUrlTitle","assignee","assigneeName","name","assigneeHref","web_path","webPath","avatarUrl","avatar_url","component","_vm","this","_c","_self","_l","key","id","staticClass","attrs","_v","_s","s__","username","_e","rawName","modifiers","constant","createInverter","identity","nativeObjectToString","Object","prototype","toString","invert","result","value","call","module","exports","ItemMilestone","WorkItemRolledUpCount","iid","reference","metadataWidgets","milestone","_this$metadataWidgets","WIDGET_TYPE_MILESTONE","hierarchyWidget","WIDGET_TYPE_HIERARCHY","showRolledUpCounts","rolledUpCountsByType","_this$hierarchyWidget","_t","GlIcon","IssueHealthStatus","WorkItemLinkChildMetadata","WorkItemRolledUpHealthStatus","WorkItemAttribute","mixins","timeagoMixin","showWeight","Boolean","workItemType","isChildItemOpen","progress","WIDGET_TYPE_PROGRESS","progressLastUpdatedAtInWords","_this$metadataWidgets2","getTimestampInWords","updatedAt","progressLastUpdatedAtTimestamp","_this$metadataWidgets3","getTimestamp","healthStatus","_this$metadataWidgets4","WIDGET_TYPE_HEALTH_STATUS","rolledUpHealthStatus","_this$metadataWidgets5","hasProgress","isInteger","isWeightRollup","_this$metadataWidgets6","WIDGET_TYPE_WEIGHT","widgetDefinition","rollUp","weight","_this$metadataWidgets7","rolledUpWeight","_this$metadataWidgets8","workItemWeight","shouldShowWeight","iteration","_this$metadataWidgets9","WIDGET_TYPE_ITERATION","iterationTitle","_this$metadataWidgets10","title","iterationCadenceTitle","_this$metadataWidgets11","iterationCadence","iterationPeriod","getIterationPeriod","startDate","_this$metadataWidgets12","WIDGET_TYPE_START_AND_DUE_DATE","dueDate","_this$metadataWidgets13","showDate","workItemTimeframe","humanTimeframe","newDate","weightTooltip","WORK_ITEM_TYPE_VALUE_EPIC","isOverdue","isInPast","overdueText","datesIcon","rawTimestamp","localeDateFormat","asDateTimeFull","format","timeFormatted","scopedSlots","_u","fn","proxy","ref","$refs","iterationData","progressTooltip","target","HTMLElement","SVGElement","Function","timestampTypeText","timestampInWords","timestamp","i18n","confidential","created","closed","remove","GlLabel","GlLink","GlButton","GlAvatar","GlAvatarLink","GlAvatarsInline","RichTimestampTooltip","WorkItemTypeIcon","WorkItemStateBadge","WorkItemRelationshipIcons","glFeatureFlagMixin","inject","preventRouterNav","from","INJECTION_LINK_CHILD_PREVENT_ROUTER_NAVIGATION","isGroup","childItem","canUpdate","workItemFullPath","showLabels","labels","WIDGET_TYPE_LABELS","nodes","_this$childItem$widge","widgets","reduce","widget","WIDGET_TYPE_ASSIGNEES","assigneesCollapsedTooltip","allowsScopedLabels","state","STATE_OPEN","childItemType","childItemIid","childItemWebUrl","webUrl","childItemFullPath","_this$childItem$names","namespace","fullPath","stateTimestamp","createdAt","closedAt","stateTimestampTypeText","$options","childItemTypeIconVariant","displayLabels","displayReference","getDisplayReference","filteredLinkedChildItems","_findLinkedItemsWidge","findLinkedItemsWidget","linkedItems","filter","item","linkType","LINKED_CATEGORIES_MAP","RELATES_TO","issueAsWorkItem","glFeatures","workItemsViewPreference","gon","current_user_use_work_items_view","childItemUniqueId","getIdFromGraphQLId","showScopedLabel","label","isScopedLabel","handleTitleClick","e","workItem","metaKey","ctrlKey","canRouterNav","$emit","preventDefault","$router","push","params","stateIcon","class","on","$event","shiftKey","altKey","stopPropagation","apply","arguments","avatar","color","description","style","getDraftReplyFormData","endpoint","notesData","draftsPath","getDraftFormData","getFormData","parallelLineKey","line","side","line_code","showDraftOnSide","otherSide","thisCode","otherCode","SetCache","arrayIncludes","arrayIncludesWith","arrayMap","baseUnary","cacheHas","nativeMin","Math","min","arrays","iteratee","comparator","includes","othLength","othIndex","caches","maxLength","Infinity","array","undefined","index","seen","outer","cache","doc","loc","source","names","unique","defs","def","kind","definitions","concat","definitionRefs","findOperation","i","element","forEach","refs","Set","collectFragmentReferences","node","add","selectionSet","selections","selection","variableDefinitions","operationName","newDoc","hasOwnProperty","opRefs","allRefs","newRefs","refName","size","prevRefs","has","childRef","op","oneQuery","interactionEvents","scrollToTargetOnResize","targetId","window","location","hash","container","scrollContainer","ScrollParent","document","getElementById","documentElement","scrollContainerIsDocument","ro","ResizeObserver","entries","entry","dispatchEvent","CustomEvent","detail","containerEl","querySelector","interactionListenersAdded","keepTargetAtTop","anchorEl","top","getBoundingClientRect","scrollY","contentTop","scrollTo","event","addEventListener","removeListeners","removeEventListener","unobserve","observe","lazy","imgSrc","defaultAvatarUrl","cssClasses","imgAlt","tooltipText","tooltipPlacement","pseudo","sanitizedSource","baseSrc","indexOf","maximumSize","_isObject","max","values","resultantSrcAttribute","placeholderImage","backgroundImage","$scopedSlots","userAvatar","sortableStart","body","classList","DRAG_CLASS","sortableEnd","isDragging","contains","getSortableDefaultOptions","options","touchEnabled","DocumentTouch","defaultSortableOptions","delay","scrollSensitivity","scrollSpeed","onStart","onEnd","getDefaultWorkItemTypes","WORK_ITEM_TYPE_ENUM_ISSUE","WORK_ITEM_TYPE_ENUM_INCIDENT","WORK_ITEM_TYPE_ENUM_TASK","getTypeTokenOptions","icon","getInitialPageParams","pageSize","firstPageSize","DEFAULT_PAGE_SIZE","lastPageSize","afterCursor","beforeCursor","deriveSortKey","sort","sortMap","STATUS_OPEN","defaultSortKey","STATUS_CLOSED","UPDATED_DESC","CREATED_DESC","legacySortKey","urlSortParams","keys","find","getSortKey","graphQLSortKey","isSortKey","toUpperCase","getSortOptions","hasBlockedIssuesFeature","hasIssuableHealthStatusFeature","hasIssueWeightsFeature","hasManualSort","hasMergedDate","sortOptions","sortDirection","ascending","PRIORITY_ASC","descending","PRIORITY_DESC","CREATED_ASC","UPDATED_ASC","CLOSED_AT_ASC","CLOSED_AT_DESC","MILESTONE_DUE_ASC","MILESTONE_DUE_DESC","DUE_DATE_ASC","DUE_DATE_DESC","POPULARITY_ASC","POPULARITY_DESC","LABEL_PRIORITY_ASC","LABEL_PRIORITY_DESC","RELATIVE_POSITION_ASC","TITLE_ASC","TITLE_DESC","MERGED_AT_ASC","MERGED_AT_DESC","HEALTH_STATUS_ASC","HEALTH_STATUS_DESC","WEIGHT_ASC","WEIGHT_DESC","BLOCKING_ISSUES_ASC","BLOCKING_ISSUES_DESC","x","tokenTypes","filtersMap","getUrlParams","tokenType","URL_PARAM","flatMap","filterObj","urlParamKeys","getFilterTokens","locationSearch","URLSearchParams","map","urlParamKey","operator","getOperatorFromUrlParamKey","groupMultiSelectFilterTokens","filterTokensToGroup","tokenDefs","groupedTokens","multiSelectTokenTypes","t","multiSelect","token","OPERATORS_TO_GROUP","existingToken","isNotEmptySearchToken","FILTERED_SEARCH_TERM","isAssigneeIdParam","TOKEN_TYPE_ASSIGNEE","isPositiveInteger","getParameterByName","PARAM_ASSIGNEE_ID","isIterationCadenceIdParam","TOKEN_TYPE_ITERATION","getFilterType","isUnionedAuthor","TOKEN_TYPE_AUTHOR","OPERATOR_OR","isUnionedLabel","TOKEN_TYPE_LABEL","isAfter","OPERATOR_AFTER","ALTERNATIVE_FILTER","wildcardFilterValues","WILDCARD_FILTER","NORMAL_FILTER","wildcardTokens","TOKEN_TYPE_EPIC","TOKEN_TYPE_HEALTH","TOKEN_TYPE_MILESTONE","TOKEN_TYPE_RELEASE","TOKEN_TYPE_REVIEWER","TOKEN_TYPE_WEIGHT","requiresUpperCaseValue","TOKEN_TYPE_TYPE","isWildcardValue","convertToApiParams","filterTokens","Map","not","or","filterType","apiField","API_PARAM","obj","OPERATOR_NOT","TOKEN_TYPE_CONFIDENTIAL","TOKEN_TYPE_DRAFT","formatData","cadence","split","cadenceId","convertToGraphQLId","TYPENAME_ITERATIONS_CADENCE","iterationWildCardId","set","get","flat","secondApiField","fromEntries","convertToUrlParams","urlParamsMap","acc","_filtersMap$token$typ","urlParam","convertToSearchQuery","join","findWidget","_workItem$widgets","mapWorkItemWidgetsToIssuableFields","list","isBoard","BoardType","project","listType","produce","draftData","_workItem$workItemTyp","activeItem","board","lists","TYPE_EPIC","WORK_ITEM_TO_ISSUABLE_MAP","widgetType","currentWidget","property","__persist","updateUpvotesCount","WIDGET_TYPE_AWARD_EMOJI","_currentWidget$proper","_currentWidget$proper2","_currentWidget$proper3","_currentWidget$proper4","issues","issue","upvotesCount","emoji","EMOJI_THUMBS_UP","downvotesCount","EMOJI_THUMBS_DOWN","upvotes","downvotes","addition","a","b","sum","_len","numbers","_key","average","modulo","n","divisor","engineeringNotation","precision","invalidValues","NaN","num","allYourBase","0","3","6","9","12","15","18","21","24","exponentialNotation","toExponential","power","scaledPower","floor","scaledMantissa","toFixed","replace","_","fractionalDigits","formatNumberToLocale","locales","isNaN","Intl","NumberFormat","toFloat","defaultValue","float","parseFloat","milestoneDue","due_date","milestoneStart","start_date","isMilestoneStarted","Date","now","isMilestonePastDue","milestoneDatesAbsolute","asDate","milestoneDatesHuman","timeFor","expiredOn","startsIn","TRACKING_SAVED_REPLIES_USE","TRACKING_SAVED_REPLIES_USE_IN_MR","TRACKING_SAVED_REPLIES_USE_IN_OTHER","COMMENT_TEMPLATES_KEYS","COMMENT_TEMPLATES_TITLES","currentUser","RESTRICTED_TOOLBAR_ITEMS_BASIC_EDITING_ONLY","GlCollapsibleListbox","ProjectAvatar","model","prop","currentProjectName","selectedProjectFullPath","projects","frequentProjects","searchKey","selectedProject","apollo","query","namespaceProjectsForLinksWidgetQuery","variables","projectSearch","update","_data$namespace","findSelectedProject","projectsLoading","$apollo","queries","loading","dropdownToggleText","nameWithNamespace","listItems","items","frequent","text","startsWith","substring","frequentFullPaths","freq","allProjects","_project$namespace","textSrOnly","debouncedSearch","_debounce","handleSearch","SEARCH_DEBOUNCE","beforeDestroy","_this$debouncedSearch","cancel","keyword","setFrequentProjects","handleSelect","projectFullPath","proj","_this$$refs$searchInp","_this$$refs$searchInp2","$nextTick","searchInputField","focusInput","searchTerm","_this","current_username","currentUsername","storageKey","STORAGE_KEY","AccessorUtilities","canUseLocalStorage","storedRawItems","localStorage","getItem","storedFrequentProjects","JSON","parse","_item$webUrl","groupPath","lastIndexOf","fuzzaldrinPlus","getTopFrequentItems","MAX_FREQUENT_PROJECTS","web_url","handleFrequentProjectSelection","handleDropdownShow","Stack","arrayEach","assignValue","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","getTag","initCloneArray","initCloneByTag","initCloneObject","isArray","isBuffer","isMap","isObject","isSet","keysIn","cloneableTags","baseClone","bitmask","customizer","object","stack","isDeep","isFlat","isFull","isArr","tag","isFunc","stacked","subValue","transitionEndEventString","FROM_SENTENCE_REGEX","categoryLabelMap","activity","people","nature","food","travel","objects","symbols","flags","AwardsHandler","constructor","eventListeners","toggleButtonSelector","menuClass","bindEvents","$parentEl","targetContainerEl","$","registerEventListener","requestAnimationFrame","createEmojiMenu","showEmojiMenu","currentTarget","closest","removeClass","is","hideMenuElement","emojiButtonSelector","$target","$glEmojiElement","$spriteIconElement","emojiName","addClass","addAward","getVotesBlock","getAwardUrl","method","args","$addBtn","_this2","hasClass","$menu","blur","positionMenu","showMenuElement","focus","$createdMenu","setTimeout","callback","isCreatingEmojiMenu","categoryMap","getEmojiCategoryMap","categoryNameKey","emojisInCategory","firstCategory","renderCategory","frequentlyUsedEmojis","getFrequentlyUsedEmojis","frequentlyUsedCatgegory","frequentEmojis","emojiMenuMarkup","insertAdjacentHTML","addRemainingEmojiMenuCategories","setupSearch","_this3","isAddingRemainingEmojiMenuCategories","menu","emojiContentElement","promiseChain","then","Promise","resolve","categoryMarkup","catch","err","Error","message","emojiList","opts","_this4","_escape","glEmojiTag","sprite","css","outerHeight","position","offset","bp","getBreakpointSize","left","outerWidth","votesBlock","awardUrl","_this5","isMainAwardsBlock","isInVueNoteablePage","attr","toggleAwardEvent","awardName","noteId","normalizedEmoji","normalizeEmojiName","$emojiButton","findEmojiIcon","postEmoji","addAwardToEmojiBar","addEmojiToFrequentlyUsedList","isActive","decrementCounter","counter","parseInt","addYouToUserList","animateEmoji","createEmoji","$el","currentBlock","resultantVotesBlock","eq","counterNumber","removeYouFromUserList","dispose","parents","removeEmoji","$votesBlock","getAwardTooltip","$awardBlock","toSentence","sentence","awardBlock","authors","splice","removeData","removeAttr","fixTitle","origTitle","users","trim","unshift","createAwardButtonForVotesBlock","buttonHtml","insertBefore","$emoji","_this6","axios","post","ok","createAlert","scrollToAwards","scrollToElement","isEmojiNameValid","_uniq","setItem","FREQUENTLY_USED_EMOJIS_STORAGE_KEY","_this7","inputName","_this8","$search","term","val","searchEmojis","h5","foundEmojis","findMatchingEmojiElements","show","ul","append","hide","children","getEmojiScore","emojis","elem","dataset","score","sortEmojiElements","$elements","_this9","scores","WeakMap","aScore","bScore","matchingEmoji","searchEmoji","getEmojiScoreWithIntent","matchingEmojiNames","$matchingElements","elm","clone","$emojiMenu","off","destroy","awardsHandlerPromise","loadAwardsHandler","reload","Emoji","awardsHandler","setInitialData","commit","fetchAwards","async","dispatch","page","headers","joinPaths","relative_url_root","path","per_page","nextPage","normalizeHeaders","error","Sentry","toggleAward","award","awards","user","currentUserId","delete","optimisticAward","MAX_SAFE_INTEGER","current_user_id","current_user_fullname","newOptimisticAward","finally","canAwardEmoji","awardId","Vue","use","Vuex","el","newCustomEmojiPath","parseBoolean","showDefaultAwardEmojis","store","Store","awardPath","actions","mutations","provide","mapState","mounted","mapActions","render","createElement","AwardsList","defaultAwards","selectedClass","isAdded","isRemoved","isUnchanged","isMeta","EXPANDED_LINE_TYPE","isConflictMarker","CONFLICT_MARKER_OUR","CONFLICT_MARKER_THEIR","isConflictSeperator","CONFLICT_MARKER","isConflictOur","CONFLICT_OUR","isConflictTheir","CONFLICT_THEIR","parallelizeDiffLines","diffLines","inline","freeRightIndex","conflictStartIndex","lines","chunk","diffLinesLength","LINE_POSITION_LEFT","LINE_POSITION_RIGHT","right","nextFreeRightIndex","findDiffFile","files","match","matchKey","file","note","noteableType","noteableData","diffFile","noteTargetLine","diffViewType","linePosition","positionType","lineRange","showWhitespace","stringify","base_sha","diff_refs","start_sha","head_sha","old_path","new_path","position_type","TEXT_DIFF_POSITION_TYPE","old_line","new_line","y","width","height","line_range","ignore_whitespace_change","whitespaceOnlyChange","view","line_type","NEW_LINE_TYPE","OLD_LINE_TYPE","merge_request_diff_head_sha","in_reply_to_discussion_id","note_project_id","target_type","targetType","target_id","return_discussion","noteable_type","noteable_id","commit_id","DIFF_NOTE_TYPE","LEGACY_DIFF_NOTE_TYPE","getNoteFormData","create_note_path","findIndexInInlineLines","lineNumbers","oldLineNumber","newLineNumber","findIndex","getPreviousLineIndex","INLINE_DIFF_LINES_KEY","removeMatchLine","bottom","indexForInline","factor","addLineReferences","isExpandDown","nextLineNumbers","lineCount","matchLineIndex","linesWithNumbers","l","MATCH_LINE_TYPE","assign","targetLine","meta_data","old_pos","new_pos","addContextLines","inlineLines","contextLines","inlineIndex","addInlineContextLines","trimFirstCharOfLineContent","parsedLine","rich_text","firstChar","charAt","mergeTwoFiles","originalInline","missingInline","parallel_diff_lines","collapsed","ensureBasicDiffFileLines","prepareLine","problems","brokenSymlink","brokenLineCode","fileOnlyMoved","renamed_file","added_lines","removed_lines","alreadyPrepared","commentsDisabled","discussionsExpanded","discussions","hasForm","prepareLineForRenamedFile","lineNumber","cleanLine","file_hash","prepareDiffFileLines","finalizeDiffFile","_file$viewer","isShowingFullFile","isLoadingFullFile","renderingLines","viewer","whitespace_only","prepareDiffData","diff","priorFiles","meta","updatePosition","transformersChain","allFiles","prepareRawDiffFile","dedupedFiles","newList","content_sha","diffFileUniqueId","existingFile","deduplicateFilesList","diff_files","fileResult","transformer","getDiffPositionByLineCode","diffFiles","isDiscussionApplicableToLine","discussion","diffPosition","latestDiff","dp","dpNotUsed","diffPositionCopy","original_position","removeLineRange","pNotUsed","positionNoLineRange","positions","some","_isEqual","active","getDiffMode","_diffFile$viewer","_diffFile$viewer2","diffModeKey","diffModes","diffViewerModes","mode_changed","no_preview","replaced","convertExpandLines","typeKey","oldLineKey","newLineKey","mapLine","dataLength","_property","beforeLine","afterLine","newLineProperty","beforeLineIndex","afterLineIndex","oldLine","newLine","idleCallback","cb","requestIdleCallback","updateLineInFile","selectedFile","lineCode","updateFn","getLinesFromFileByLineCode","isUrlHashNoteLink","urlHash","parseUrlHashAsFileHash","currentDiffFileId","hashless","isNoteLink","extractedSha1","extractFileHash","input","isUrlHashFileHeader","markTreeEntriesLoaded","priorEntries","loadedFiles","newEntries","newFile","diffLoaded","diffLoading","assignInWith","attempt","baseValues","customDefaultsAssignIn","escapeStringChar","isError","isIterateeCall","reInterpolate","templateSettings","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reForbiddenIdentifierChars","reEsTemplate","reNoMatch","reUnescapedString","string","guard","settings","imports","isEscaping","isEvaluating","importsKeys","importsValues","interpolate","reDelimiters","RegExp","escape","evaluate","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","variable","test","collapseReplies","expandReplies","lastReplyBy","GlSprintf","TimeAgoTooltip","replies","lastReply","uniqueAuthors","reply","author","_uniqBy","buttonIcon","buttonLabel","ariaState","toggle","n__","created_at","createEventHub","AssigneeAvatarLink","UserNameWithStatus","glFeatureFlagsMixin","issuableType","TYPE_ISSUE","showLess","firstUser","hiddenAssigneesLabel","numberOfHiddenAssignees","renderShowMoreSection","uncollapsedUsers","uncollapsedLength","isMergeRequest","TYPE_MERGE_REQUEST","toggleShowLess","userAvailability","u","_u$status","availability","status","isConfidentialIssue","isConfidential","canCreateConfidentialMergeRequest","InputSetter","init","hook","destroyed","config","eventWrapper","addEvents","setInputs","bind","removeEvents","selectedItem","selected","setInput","trigger","newValue","getAttribute","valueAttribute","inputAttribute","hasAttribute","setAttribute","tagName","textContent","ISetter","createEndpoint","projectPath","confidentialMergeRequestState","pathWithNamespace","CreateMergeRequestDropdown","wrapperEl","availableButton","branchInput","branchMessage","createMergeRequestButton","createMergeRequestLoading","createTargetButton","dropdownList","dropdownToggle","refInput","refMessage","unavailableButton","unavailableButtonSpinner","unavailableButtonText","branchCreated","branchIsValid","canCreatePath","createBranchPath","createMrPath","droplabInitialized","isCreatingBranch","isCreatingMergeRequest","isGettingRef","refCancelToken","mergeRequestCreated","refDebounce","getRef","refIsValid","refsPath","suggestedRef","projectId","regexps","branch","dropdownTrigger","h","ProjectFormGroup","namespacePath","newForkPath","helpPagePath","initConfidentialMergeRequest","available","onClickCreateMergeRequestButton","onChangeInput","onClickSetFocusOnBranchNameInput","processTab","checkAbilityToCreateBranch","setUnavailableButtonState","can_create_branch","enable","updateBranchName","suggested_branch_name","initDroplab","unavailable","disable","createBranch","navigateToBranch","mergeUrlParams","branch_name","confidential_issue_project_id","href","url","createMergeRequest","api","trackRedisHllUserEvent","disableCreateAction","setLoading","removeAttribute","returnFirstMatch","getDroplabConfig","addActiveClassToDropdownButton","hideOnClick","start","selectionStart","end","selectionEnd","substr","CancelToken","encodeURIComponent","cancelToken","branches","tags","findByValue","updateInputState","thrown","isCancel","getTargetData","droplab","DropLab","inputsAreValid","isBusy","NON_INPUT_KEYS","keyCode","activeElement","click","showCheckingMessage","showAvailableMessage","xhr","action","hooks","getInputSelectedText","caretPositionEnd","setSelectionRange","removeMessage","cssClass","display","isLoading","showNotAvailableMessage","validationType","inputValue","invalidChars","findInvalidBranchNameCharacters","humanizeBranchValidationErrors","getValidationError","suggestedBranchName","updateTargetBranchInput","updateRefInput","isInvalidString","Issue","initIssueMovedFromServiceDeskDismissHandler","initRelatedBranches","createMrDropdownWrap","createMergeRequestDropdown","issuableVueAppChangeHandler","updateTopState","isClosed","EVENT_ISSUABLE_VUE_APP_CHANGE","issueFailMessage","projectIssuesCounter","numProjectIssues","first","addDelimiter","alertMovedFromServiceDeskWarning","trimmedPathname","pathname","alertMovedFromServiceDeskDismissedKey","stopImmediatePropagation","$container","html","issueTypes","incident","issueHelpText","incidentHelpText","HelpIcon","GlPopover","selectType","TYPE_INCIDENT","Tracking","mixin","selectedType","isIssueAllowed","isIncidentAllowed","issuePath","incidentPath","toggleText","dropdownItems","tracking","track","visitUrl","$$v","expression","mergeRequests","relatedMergeRequestsQuery","d","_d$project","relatedMergeRequests","_data$project","_data$project2","pageInfo","totalCount","hasNextPage","fetchMore","after","endCursor","updateQuery","previousResult","fetchMoreResult","newMergeRequests","prevMergeRequests","CrudComponent","RelatedIssuableItem","hasClosingMergeRequest","isFetchingMergeRequests","closingMergeRequestsText","mrText","idKey","mergeRequest","mr","mergedAt","headPipeline","detailedStatus","resourceLinksI18n","freeze","headerText","helpText","addButtonText","fetchingLinkedResourcesText","fetchError","deleteError","deleteErrorGeneric","createError","createErrorGeneric","resourceLinksFormI18n","linkTextLabel","linkValueLabel","submitButtonText","cancelButtonText","resourceLinksListI18n","linkRemoveText","zoomRegex","slackRegex","pagerdutyRegex","LINK_TYPE_ICON_MAP","general","zoom","GlFormGroup","GlFormInput","autofocusonshow","isSubmitting","linkTextValue","linkValue","isSubmitButtonDisabled","onFormCancel","createRequest","link","linkText","iconName","canRemove","isRemoveDisabled","iconClasses","getLinkIcon","_LINK_TYPE_ICON_MAP$t","trackResourceLinkClick","handleRemove","ResourceLinkItem","canAdmin","resourceLinks","AddIssuableResourceLinkForm","ResourceLinksList","ariaControlsId","issuableId","helpPath","canAddResourceLinks","getIssuableResourceLinks","incidentId","TYPENAME_ISSUE","_data$issue","issuableResourceLinks","captureError","displayAndLogError","resourceCount","hasResourceLinks","isFetching","hideResourceLinkForm","resourceLinksCrud","hideForm","linkToRemove","mutate","mutation","deleteIssuableRsourceLink","errors","issuableResourceLinkDestroy","errorMessage","errorObj","updateCache","issuableResourceLink","resourceLink","issuableResourceLinkCreate","sourceData","readQuery","newData","draftLinkList","writeQuery","onCreateResourceLink","createIssuableResourceLink","_data$issuableResourc","resourceLinkForm","onResourceLinkRemoveRequest","VueApollo","IncidentSla","alert","childHasData","startTime","formatDate","startedAt","showHighlightBar","hasData","detailsUrl","eventCount","EVENT_ICONS","comment","getUtcShiftedDate","ISOString","date","setMinutes","getMinutes","getTimezoneOffset","getPreviousEventTags","timelineEventTagsNodes","timelineTabI18n","emptyDescription","addEventButton","timelineFormI18n","areaPlaceholder","areaDefaultMessage","selectTags","tagsLabel","save","hint","textRemaining","saveAndAdd","areaLabel","timelineListI18n","deleteButton","deleteModal","editError","editErrorGeneric","timelineItemI18n","edit","moreActions","timeUTC","timelineEventTagsI18n","impactDetected","responseInitiated","impactMitigated","causeIdentified","endTime","timelineEventTagsPopover","TIMELINE_EVENT_TAGS","learnMoreLink","anchor","restrictedToolBarItems","MarkdownField","TimelineEventsTagsPopover","GlDatepicker","GlFormTextarea","MAX_TEXT_LENGTH","showSaveAndAdd","isEditing","isEventProcessed","previousOccurredAt","previousNote","previousTags","placeholderDate","timelineText","timelineTextIsDirty","hourPickerInput","getHours","minutePickerInput","datePickerInput","selectedTags","isTimelineTextValid","timelineTextCount","timelineTextRemainingCount","occurredAtString","year","getFullYear","month","getMonth","day","getDate","UTC","toISOString","listboxText","numberOfSelectedTags","focusDate","clear","newPlaceholderDate","_this$$refs$datepicke","datepicker","setTimelineTextDirty","onTagsChange","tagValue","generateTimelineTextFromTags","tagsMessage","toLocaleLowerCase","handleSave","addAnotherEvent","occurredAt","timelineEventTags","TimelineEventsForm","hasTimelineEvents","createTimelineEventActive","clearForm","eventForm","timelineEvent","timelineEventCreate","getTimelineEvents","draftEventList","incidentManagementTimelineEvents","sortedEvents","_sortBy","createIncidentTimelineEvent","eventDetails","CreateTimelineEvent","timelineEventTagNames","_data$timelineEventCr","GlDisclosureDropdown","GlBadge","SafeHtml","noteHtml","eventTags","time","canEditEvent","getEventIcon","actionName","_EVENT_ICONS$actionNa","canUpdateTimelineEvent","validator","every","editTimelineEventActive","saveEvent","IncidentTimelineEventItem","EditTimelineEvent","timelineEventLoading","timelineEvents","eventToEdit","dateGroupedEvents","groupedEvents","handleEditSelection","hideEdit","handleDelete","ignoreWhilePending","msg","confirmAction","primaryBtnVariant","primaryBtnText","deleteTimelineEvent","cacheId","identify","evict","timelineEventDestroy","handleSaveEdit","editTimelineEvent","_data$timelineEventUp","timelineEventUpdate","eventDate","events","eventIndex","refInFor","GlLoadingIcon","IncidentTimelineEventsList","isEventFormVisible","fetchPolicy","fetchPolicies","CACHE_AND_NETWORK","showEmptyState","notesEventHub","$on","refreshTimelineEvents","$off","refetch","hideEventForm","showEventForm","incidentTabsI18n","summaryTitle","metricsTitle","alertsTitle","timelineTitle","TAB_NAMES","SUMMARY","ALERTS","METRICS","TIMELINE","AlertDetailsTable","DescriptionComponent","GlTab","GlTabs","HighlightBar","TimelineTab","IncidentMetricTab","getAlert","alertManagementAlert","activeTabIndex","tabId","$route","tabMapping","tabNamesToIndex","availableTabs","uploadMetricsFeatureAvailable","hasLinkedAlerts","tabIndexToName","currentTabIndex","newPath","updateJsIssueWidgets","trackPageViews","category","trackIncidentDetailsViewsOptions","tabIndex","parent","itemsToHide","querySelectorAll","lineSeparator","editButton","isSummaryTab","_g","_b","$attrs","$listeners","Stacktrace","issueStackTracePath","mapGetters","startPollingStacktrace","loadingStacktrace","stacktrace","VueRouter","currentPath","currentTab","base","router","mode","routes","initIssuableApp","issuableData","parseIssuableData","headerActionsData","convertObjectPropsToCamelCase","authorId","authorName","authorUsername","authorWebUrl","canCreateIncident","issueType","hasIterationsFeature","imported","registerPath","signInPath","slaFeatureAvailable","issueProvideData","incidentProvideData","apolloProvider","clients","defaultClient","getIssueStateQuery","issueState","bootstrapApollo","linkedResourcesRootElement","createDefaultClient","ResourceLinksBlock","initLinkedResources","createRouter","canCreateIssue","canDestroyIssue","canPromoteToEpic","canReopenIssue","canReportSpam","canUpdateIssue","isIssueAuthor","newIssuePath","reportAbusePath","reportedUserId","reportedFromUrl","submitAsSpamPath","issuableEmailAddress","_this$getNoteableData","_this$getNoteableData2","_this$getNoteableData3","_this$getNoteableData4","_this$getNoteableData5","IssueApp","descriptionComponent","IncidentTabs","getNoteableData","isLocked","discussion_locked","isImported","issuableStatus","issueId","issueIid","showTitleBorder","GlAlert","GlDisclosureDropdownItem","WorkItemLinksForm","WorkItemDetailModal","WorkItemAbuseModal","WorkItemChildrenWrapper","WorkItemChildrenLoadMore","WorkItemMoreActions","issuableIid","getWorkItemTreeQuery","issuableGid","DEFAULT_PAGE_SIZE_CHILD_ITEMS","_data$workItem","skip","_this$children$find","DETAIL_VIEW_QUERY_PARAM_NAME","activeChild","child","_isEmpty","updateQueryParam","fetchNextPage","modal","parentIssue","getIssueDetailsQuery","formType","isReportModalOpen","reportedUrl","widgetName","TASKS_ANCHOR","showClosed","fetchNextPageInProgress","disableContent","showLabelsLocalStorageKey","WORKITEM_LINKS_SHOWLABELS_LOCALSTORAGEKEY","showClosedLocalStorageKey","WORKITEM_TREE_SHOWCLOSED_LOCALSTORAGEKEY","_this$parentIssue","_this$workItem","issuableIteration","_this$parentIssue2","issuableMilestone","_this$parentIssue3","findHierarchyWidgets","_this$workItem2","userPermissions","updateWorkItem","canAddTask","_this$workItem3","adminParentLink","isChildrenEmpty","_this$children","TYPENAME_WORK_ITEM","childrenIds","c","childrenCountLabel","activeChildNamespaceFullPath","_this$activeChild$nam","_this$hierarchyWidget2","_this$pageInfo","_this$pageInfo2","_this$workItem4","hasAllChildItemsHidden","getItems","filterClosed","getToggleFromLocalStorage","showAddForm","workItemsLinks","showForm","_this$$refs$wiLinksFo","wiLinksForm","wiTitleInput","hideAddForm","openChild","handleWorkItemDeleted","provider","removeHierarchyChild","$toast","updateHistory","setUrlParams","toggleReportAbuseModal","isOpen","openReportAbuseModal","toggleShowLabels","saveToggleToLocalStorage","toggleShowClosed","setShowLabelsFromLocalStorage","emptyStateMessage","addChildButtonLabel","addChildOptionLabel","createChildOptionLabel","noChildItemsOpen","WIDGET_TYPE_TASK_ICON","WIDGET_ICONS","TASK","WORK_ITEM_STATUS_TEXT","FORM_TYPES","create","fullName","closeModal","GlToast","initForm","IssuableForm","IssuableLabelSelector","LabelsSelect","addShortcutsExtension","ShortcutsNavigation","issueTitle","search","TitleSuggestions","initTitleSuggestions","TypePopover","initTypePopover","TypeSelect","initTypeSelect","mountMilestoneDropdown","features","initWorkItemsFeedback","initShow","ShortcutsIssuable","ZenMode","initAwardsApp","initIssuableSidebar","initNotesApp","canAdminLabel","wiCanAdminLabel","wiGroupPath","issuesListPath","wiIssuesListPath","labelsManagePath","wiLabelsManagePath","wiReportAbusePath","RelatedIssuesRoot","canAddRelatedIssues","showCategorizedIssues","autoCompleteEpics","initRelatedIssues","RelatedMergeRequests","initRelatedMergeRequests","errorTrackingStore","SentryErrorStackTrace","initSentryErrorStackTrace","initSidebarBundle","workItemLinksRoot","wiHasIssueWeightsFeature","wiHasIterationsFeature","wiHasIssuableHealthStatusFeature","wiNewCommentTemplatePaths","hasLinkedItemsEpicsFeature","newCommentTemplatePaths","WorkItemLinks","initWorkItemLinks","asciiSize","hasUnicode","unicodeSize","PERFORMANCE_TYPE_MARK","PERFORMANCE_TYPE_MEASURE","SNIPPET_MARK_VIEW_APP_START","SNIPPET_MARK_EDIT_APP_START","SNIPPET_MARK_BLOBS_CONTENT","SNIPPET_MEASURE_BLOBS_CONTENT","WEBIDE_MARK_APP_START","WEBIDE_MARK_FILE_CLICKED","WEBIDE_MARK_FILE_FINISH","WEBIDE_MARK_REPO_EDITOR_START","WEBIDE_MARK_REPO_EDITOR_FINISH","WEBIDE_MARK_FETCH_BRANCH_DATA_START","WEBIDE_MARK_FETCH_BRANCH_DATA_FINISH","WEBIDE_MARK_FETCH_FILE_DATA_START","WEBIDE_MARK_FETCH_FILE_DATA_FINISH","WEBIDE_MARK_FETCH_FILES_START","WEBIDE_MARK_FETCH_FILES_FINISH","WEBIDE_MARK_FETCH_PROJECT_DATA_START","WEBIDE_MARK_FETCH_PROJECT_DATA_FINISH","WEBIDE_MEASURE_FILE_AFTER_INTERACTION","WEBIDE_MEASURE_FETCH_PROJECT_DATA","WEBIDE_MEASURE_FETCH_BRANCH_DATA","WEBIDE_MEASURE_FETCH_FILE_DATA","WEBIDE_MEASURE_BEFORE_VUE","WEBIDE_MEASURE_REPO_EDITOR","WEBIDE_MEASURE_FETCH_FILES","MR_DIFFS_MARK_FILE_TREE_START","MR_DIFFS_MARK_FILE_TREE_END","MR_DIFFS_MARK_DIFF_FILES_START","MR_DIFFS_MARK_FIRST_DIFF_FILE_SHOWN","MR_DIFFS_MARK_DIFF_FILES_END","MR_DIFFS_MEASURE_FILE_TREE_DONE","MR_DIFFS_MEASURE_DIFF_FILES_DONE","PIPELINES_DETAIL_LINKS_MARK_CALCULATE_START","PIPELINES_DETAIL_LINKS_MARK_CALCULATE_END","PIPELINES_DETAIL_LINKS_MEASURE_CALCULATION","PIPELINES_DETAIL_LINK_DURATION","PIPELINES_DETAIL_LINKS_TOTAL","PIPELINES_DETAIL_LINKS_JOB_RATIO","REPO_BLOB_LOAD_VIEWER_START","REPO_BLOB_SWITCH_TO_VIEWER_START","REPO_BLOB_LOAD_VIEWER_FINISH","REPO_BLOB_LOAD_VIEWER","REPO_BLOB_SWITCH_VIEWER","DESIGN_MARK_APP_START","DESIGN_MEASURE_BEFORE_APP","DESIGN_MAIN_IMAGE_OUTPUT","actionCancel","csrf","GlModal","modalId","actionPrimary","attributes","variant","bodyText","toLowerCase","capitalizeFirstCharacter","submitForm","form","submit","domProps","anchorId","wrapperComponent","wrapperComponentClass","titleComponentClass","iconClass","isLink","wrapperRef","snakeCase","createCompounder","word","__vue_script__","vertical","__vue_component__","_h","$createElement","staticRenderFns","WORK_ITEM_TYPE_ENUM_OBJECTIVE","newIssueLabel","toggleSrText","newObjectiveLabel","sprintfWorkItem","GlButtonGroup","CreateWorkItemModal","newIssueItem","EpicToken","IterationToken","WeightToken","HealthToken","IssuesListApp","NewIssueDropdown","ChildEpicIssueIndicator","isProject","WORKSPACE_PROJECT","WORKSPACE_GROUP","isOkrsEnabled","hasOkrsFeature","okrsMvc","searchTokens","tokens","TOKEN_TITLE_ITERATION","fetchIterations","recentSuggestionsStorageKey","TOKEN_TITLE_EPIC","symbol","idProperty","useIdValue","TOKEN_TITLE_WEIGHT","TOKEN_TITLE_HEALTH","refetchIssuables","issuesListApp","issuesCounts","searchIterationsQuery","_data$_this$namespace","iterations","hasFilteredEpicId","apiFilterParams","epicId","getFilteredEpicId","TYPENAME_EPIC","issuable","canEdit","isJiraConfigured","issuesPath","jiraImport","getIssuesListDetailsQuery","_last2","calculateJiraImportLabel","jiraImports","importedIssuesCount","_last","shouldShowFinishedAlert","jiraImportStatus","shouldShowInProgressAlert","isInProgress","finishedMessage","labelTarget","shouldRender","hideFinishedAlert","setFinishedAlertHideMap","hideInProgressAlert","issuesClient","issuesListClient","_gon$features","frontendCaching","createApolloClientWithCaching","resolvers","localCacheKey","mountJiraIssuesListApp","gqlClient","createComponent","JiraIssuesImportStatusApp","mountIssuesListApp","ShortcutsWorkItems","autocompleteAwardEmojisPath","calendarPath","canBulkUpdate","canCreateProjects","canImportIssues","canReadCrmContact","canReadCrmOrganization","email","emailsHelpPagePath","exportCsvPath","groupId","hasAnyIssues","hasAnyProjects","hasIssueDateFilterFeature","hasQualityManagementFeature","hasScopedLabelsFeature","importCsvIssuesPath","initialEmail","initialSort","isIssueRepositioningDisabled","isPublicVisibilityRestricted","isSignedIn","markdownHelpPath","maxAttachmentSize","newProjectPath","projectImportJiraPath","quickActionsHelpPath","releasesPath","resetPath","rssPath","showNewIssueLink","ROUTES","design","DesignDetail","beforeEnter","next","showExportButton","showImportButton","showLabel","hasSubepicsFeature","healthStatusLabel","atRiskLabel","onTrackLabel","attentionLabel","healthStatusVisible","rolledUpOnTrackWorkItems","_this$rolledUpHealthS","HEALTH_STATUS_ON_TRACK","rolledUpAtRiskWorkItems","_this$rolledUpHealthS2","HEALTH_STATUS_AT_RISK","rolledUpNeedsAttentionWorkItems","_this$rolledUpHealthS3","HEALTH_STATUS_NEEDS_ATTENTION","showRolledUpHealthStatus","_this$rolledUpOnTrack","_this$rolledUpAtRiskW","_this$rolledUpNeedsAt","getItemLabel","getNeedLabel","statusClass","healthStatusColorMap","statusIcon","healthStatusIconMap","statusColor","healthStatusRollUp","SEVERITY_LEVELS","CRITICAL","HIGH","MEDIUM","LOW","INFO","UNKNOWN","PAGE_CONFIG","OPERATIONS","TITLE","STATUSES","TRIGGERED","ACKNOWLEDGED","RESOLVED","TRACK_ALERTS_DETAILS_VIEWS_OPTIONS","TRACK_ALERT_STATUS_UPDATE_OPTIONS","_typeof","Symbol","iterator","_defineProperty","defineProperty","enumerable","configurable","writable","_extends","_objectSpread","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_toConsumableArray","arr","arr2","_arrayWithoutHoles","iter","_iterableToArray","TypeError","_nonIterableSpread","userAgent","pattern","navigator","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","matches","selector","msMatchesSelector","webkitMatchesSelector","getParentOrHost","host","nodeType","parentNode","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","className","defaultView","getComputedStyle","currentStyle","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","getElementsByTagName","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","innerHeight","innerWidth","containerRect","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","Sortable","ghost","dragged","draggable","lastChild","last","lastElementChild","previousElementSibling","nodeName","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","includeSelf","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","isRectEqual","rect1","rect2","round","throttle","ms","scrollBy","Polymer","jQuery","Zepto","dom","cloneNode","setRect","rect","unsetRect","expando","getTime","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","animation","fromRect","thisAnimationDuration","childMatrix","f","addAnimationState","removeAnimationState","indexOfObject","animateAll","clearTimeout","animating","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","pow","calculateRealTime","animate","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","offsetWidth","repaint","easing","animated","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","pluginEvent","eventName","sortable","evt","eventCanceled","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","_ref","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","createEvent","initEvent","bubbles","cancelable","to","pullMode","lastPutMode","allEventProperties","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","disabled","handle","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","setData","dataTransfer","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_generateId","str","src","charCodeAt","_nextTick","_cancelNextTick","_getDirection","touch","pointerType","originalTarget","shadowRoot","composedPath","root","inputs","idx","checked","_saveInputCheckedState","button","isContentEditable","criteria","_prepareDragStart","dragStartFn","ownerDocument","nextSibling","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","abs","_onTouchMove","_onDragStart","empty","getSelection","removeAllRanges","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","appendChild","_hideClone","cloneId","_loopId","setInterval","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","_ghostIsLast","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","_getInsertDirection","_getSwapDirection","dragIndex","nextElementSibling","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","removeChild","handleEvent","dropEffect","_globalDragOver","toArray","order","utils","extend","dst","nextTick","cancelNextTick","detectDirection","version","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","lastSwapEl","isFallback","scroll","scrollCustomFn","sens","speed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","drop","toSortable","changedTouches","onSpill","Revert","Remove","SwapPlugin","Swap","swapClass","dragStart","dragOverValid","_ref2","swap","prevSwapEl","_ref3","n1","n2","i1","i2","p1","p2","isEqualNode","swapNodes","nulling","swapItem","startIndex","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","MultiDragPlugin","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","removeMultiDragElements","dragOver","_ref8","_ref9","clonesInserted","insertMultiDragElements","dragOverCompleted","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","lastIndex","currentIndex","multiDragIndex","nullingGlobal","destroyGlobal","shift","select","deselect","oldIndicies","newIndicies","clones","elementsInserted","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverBubble","ogElemScroller","newElem","markdownEditorSelected","richTextEditorButtonId","ConfidentialityBadge","HiddenBadge","LockedBadge","ImportedBadge","issuableState","statusIconClass","blocked","isFirstContribution","isHidden","serviceDeskReplyTo","showWorkItemTypeIcon","taskCompletionStatus","workspaceType","badgeText","issuableStatusText","badgeVariant","STATUS_REOPENED","shouldShowWorkItemTypeIcon","createdMessage","isAuthorExternal","_this$author$webUrl","isExternal","taskStatusString","completedCount","hasTasks","toggleSidebarButtonEl","handleRightSidebarToggleClick","Event","baseIsSet","nodeUtil","nodeIsSet","tooltipContainer","UserAvatarImage","TimeagoTooltip","timeago","suggestion","counts","_uniqueId","tooltipTitle","userNotesCount","stateIconClass","stateIconName","stateTitle","closedOrCreatedDate","hasUpdated","TitleSuggestionsItem","debounce","isSearchEmpty","_data$project$issues$","edges","showSuggestions","helpIconTitle","suggestionsTitle","watch","_m","isOption","hasNoDuplicates","flattenedOptions","itemsValidator","isAllOptionsOrAllGroups","hasUniqueValues","hasUniqueGroups","formatRange","sortCadences","cadences","sortBy","titleA","titleB","localeCompare","groupByIterationCadences","cadenceIteration","period","groupOptionsByIterationCadences","isGid","projectName","projectAvatarUrl","alt","avatarAlt","_this$alt","entityId","AVATAR_SHAPE_OPTION_RECT","selectedLabels","initialLabels","handleUpdateSelectedLabels","handleLabelRemove","labelId","fieldLabel","dropdownButtonText","listTitle","createTitle","manageTitle","emptySelection","selectedLabel","fieldName","allowLabelRemove","attrWorkspacePath","labelsFilterBasePath","labelType","issuableSupportsLockOnMerge","supportsLockOnMerge","allowLabelCreate","allowLabelEdit","allowScopedLabels","VARIANT_EMBEDDED","toggleAttrs","normalizeKey","autosaveKey","normalizedKey","_isString","lockVersionKey","clearDraft","removeItem","console","getDraft","getLockVersion","updateDraft","lockVersion","getAutoSaveKeyFromDiscussion","notes","discussionId","isHighlighted","highlightedRow","isCommented","isContextLine","CONTEXT_LINE_TYPE","isMatchLine","isMetaLine","OLD_NO_NEW_LINE_TYPE","NEW_NO_NEW_LINE_TYPE","EMPTY_CELL_TYPE","hasDiscussions","_line$discussions","fileContentsId","createDiffUrl","URL","searchParams","createFileUrl","lineHref","_line$left","_line$right","classNameMapCell","highlighted","commented","isLoggedIn","isHover","classes","hll","LINE_HOVER_CLASS_NAME","addCommentTooltip","tooltip","wasSymbolic","isSymbolic","wasReal","isReal","parallelViewLeftLineType","_line$right2","mapParallel","hasParallelDraftLeft","hasParallelDraftRight","draftsForLine","_left","_left2","_right","_right2","_left3","_right3","_left4","_right4","_left5","_right5","_left6","_right6","_left7","_right7","hasExpandedDiscussionOnLeft","hasExpandedDiscussionOnRight","renderCommentRow","_line$right3","_line$left2","renderDiscussion","hasDraft","lineDrafts","hasCommentForm","emptyCellClassMap","conflict_our","conflict_their","isMatchLineLeft","isMatchLineRight","isContextLineLeft","isContextLineRight","hasDiscussionsLeft","hasDiscussionsRight","lineHrefOld","lineHrefNew","isMetaLineLeft","isMetaLineRight","draftRowClasses","commentRowClasses","BFormRadioGroup","getBvRadioGroup","isRadioGroup","GlFormRadio","inheritAttrs","onInput","onChange","MINIMUM_SEARCH_LENGTH","TYPENAME_BOARD","TYPENAME_CI_BUILD","TYPENAME_CI_RUNNER","TYPENAME_CI_PIPELINE","TYPENAME_CI_STAGE","TYPENAME_CI_TRIGGER","TYPENAME_CI_VARIABLE","TYPENAME_COMMIT_STATUS","TYPENAME_CONTAINER_REPOSITORY","TYPENAME_CRM_CONTACT","TYPENAME_CRM_ORGANIZATION","TYPENAME_DESIGN_VERSION","TYPENAME_DISCUSSION","TYPENAME_DISCUSSION_NOTE","TYPENAME_EPIC_BOARD","TYPENAME_FEATURE_FLAG","TYPENAME_GROUP","TYPENAME_ITERATION","TYPENAME_LABEL","TYPENAME_MEMBER_ROLE","TYPENAME_MERGE_REQUEST","TYPENAME_MILESTONE","TYPENAME_NOTE","TYPENAME_PACKAGES_PACKAGE","TYPENAME_PROJECT","TYPENAME_SCANNER_PROFILE","TYPENAME_SITE_PROFILE","TYPENAME_TODO","TYPENAME_USER","TYPENAME_VULNERABILITY","TYPENAME_WORK_ITEM_RELATED_BRANCH","TYPE_ORGANIZATION","TYPE_USERS_SAVED_REPLY","TYPE_WORKSPACE","TYPE_COMPLIANCE_FRAMEWORK","QUERY_PARAM_START_CURSOR","QUERY_PARAM_END_CURSOR","GlTokenSelector","childrenType","parentWorkItemId","areWorkItemsToAddValid","workspaceWorkItems","groupWorkItemsQuery","projectWorkItemsQuery","queryVariables","searchStarted","isSearchingByReference","_data$workspace$workI","_data$workspace$workI2","filterItems","workspace","workItemsByIid","workItems","I18N_WORK_ITEM_SEARCH_ERROR","childrenTypeName","workItemsByReference","workItemsByReferencesQuery","contextNamespacePath","ancestorIds","workItemAncestorsQuery","formatAncestors","ancestor","textInputAttrs","I18N_WORK_ITEM_SEARCH_INPUT_PLACEHOLDER","availableWorkItems","isReference","isValidURL","workItemsToAdd","_WORK_ITEMS_TYPE_MAP$","WORK_ITEMS_TYPE_MAP","tokenSelectorContainerClass","types","in","isNumeric","searchByIid","searchByText","includeAncestors","includeDescendants","debouncedSearchKeyUpdate","setSearchKey","DEFAULT_DEBOUNCE_AND_THROTTLE_MS","handleFocus","handleMouseOver","timeout","handleMouseOut","handleBlur","focusInputText","tokenSelector","focusTextInput","formatResults","escapedInput","highlighter","unsetError","wi","noMatchesFoundMessage","I18N_WORK_ITEM_NO_MATCHES_FOUND","addInputPlaceholder","safeHtmlConfig","ADD_TAGS","nativeOn","dropdownItem","arg","GlDropdownItem","footerCreateLabelTitle","footerManageLabelTitle","showManageLabelsItem","workItemState","showIcon","isWorkItemOpen","stateText","workItemStateIcon","workItemStateVariant","r","m","o","toStringTag","__esModule","p","s","initCustomEvent","field","updateTaskList","defaultPrevented","lineSource","updateSource","parentElement","_updateSourcePosition","_updateSourceRegex","incompletePattern","complete","completePattern","incomplete","itemsInParasPattern","endFencesPattern","startFencesPattern","itemPattern","escapePattern","taskList","each","getTimeago","timeagoLanguageCode","deleteButtonText","GlTableLite","limitToHours","timelogs","workItemIid","_this$timelogs","report","removingIds","timelogQueries","_data$issuable","spentAt","workItemByIidQuery","totalTimeSpent","seconds","timeSpent","formatTimeSpent","isDeletingTimelog","timelogId","formatShortDate","getSummary","summary","stringifyTime","parseSeconds","deleteTimelog","deleteTimelogMutation","draftState","timeTrackingWidget","WIDGET_TYPE_TIME_TRACKING","timelog","_data$timelogDelete","timelogDelete","fields","tdClass","adminTimelog","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsSeq","rsSymbol","reUnicode","notesStore","notesModule","ROOT_ACTION_EVENT_NAME_TOGGLE","ROOT_EVENT_NAME_STATE","ROOT_EVENT_NAME_SYNC_STATE","ROOT_ACTION_EVENT_NAME_REQUEST_STATE","KEYDOWN_KEY_CODES","isNonStandardTag","removeClickListener","handler","removeRootListeners","instance","setToggleState","resetProp","handleUpdate","binding","vnode","targets","getTargets","addClickListener","VBToggle","addRootListeners","componentUpdated","updated","GlSearchBoxByType","labelsCreateTitle","labelsListTitle","showDropdownContentsCreateView","labelsFetchInProgress","isStandalone","dropdownTitle","searchInput","_k","AssigneeAvatar","cannotMerge","_this$user$mergeReque","canMerge","mergeRequestInteraction","can_merge","assigneeUrl","assigneeId","ListType","backlog","ListTypeTitles","new","INCIDENT","flashAnimationDuration","boardQuery","groupBoardQuery","projectBoardQuery","titleQueries","boardListsQuery","listDeferredQuery","createBoardListMutation","updateBoardListMutation","toggleListCollapsedMutation","destroyBoardListMutation","issueSetTitleMutation","updateEpicTitleMutation","FilterFields","issueSetSubscriptionMutation","updateEpicSubscriptionMutation","listIssuesQuery","issueMoveListMutation","issueCreateMutation","AssigneeFilterType","any","none","MilestoneFilterType","started","upcoming","DraggableItemTypes","card","DEFAULT_BOARD_LIST_ITEMS_SIZE","BOARD_CARD_MOVE_TO_POSITIONS_START_OPTION","BOARD_CARD_MOVE_TO_POSITIONS_END_OPTION","BOARD_CARD_MOVE_TO_POSITIONS_OPTIONS","compareAscending","other","orders","objCriteria","othCriteria","ordersLength","CATEGORY_OPTIONS","DISCUSSION_NOTE","DIFF_NOTE","DISCUSSION","NOTE","SYSTEM_NOTE","COMMENT","ISSUE_NOTEABLE_TYPE","EPIC_NOTEABLE_TYPE","MERGE_REQUEST_NOTEABLE_TYPE","SNIPPET_NOTEABLE_TYPE","DESIGN_NOTEABLE_TYPE","COMMIT_NOTEABLE_TYPE","INCIDENT_NOTEABLE_TYPE","UNRESOLVE_NOTE_METHOD_NAME","RESOLVE_NOTE_METHOD_NAME","DESCRIPTION_TYPE","DISCUSSION_FILTERS_DEFAULT_VALUE","COMMENTS_ONLY_FILTER_VALUE","HISTORY_ONLY_FILTER_VALUE","DISCUSSION_TAB_LABEL","NOTE_UNDERSCORE","TIME_DIFFERENCE_VALUE","ASC","DESC","DISCUSSION_FETCH_TIMEOUT","FETCH_UPDATED_NOTES_DEBOUNCE_TIMEOUT","NOTEABLE_TYPE_MAPPING","MergeRequest","Epic","Incident","DISCUSSION_FILTER_TYPES","ALL","COMMENTS","HISTORY","toggleStateErrorMessage","MR_FILTER_OPTIONS","systemNoteIcons","noteText","bot","noteType","individualNote","MR_FILTER_TRACKING_OPENED","MR_FILTER_TRACKING_USER_COMMENTS","MR_FILTER_TRACKING_BOT_COMMENTS","imgSize","reviewerAlt","userName","default_avatar_url","hasMergeIcon","ReviewerAvatar","rootPath","reviewerId","reviewerUrl","REVIEW_STATE_ICONS","APPROVED","REQUESTED_CHANGES","REVIEWED","UNREVIEWED","REVIEW_STARTED","reRequestReview","removeReviewer","ReviewerAvatarLink","isEditable","loadingStates","previousUsers","userPreviousState","approved","showApprovalAnimation","immediate","userId","reviewedButNotApprovedTooltip","requestReviewComplete","done","requestRemovalComplete","success","reviewStateIcon","reviewState","showRequestReviewButton","LOADING_STATE","SUCCESS_STATE","stringEscapes","chr","AVAILABILITY_STATUS","GlAvatarLabeled","_this$user","hasCannotMergeIcon","busy","participants","numberOfLessParticipants","showParticipantLabel","isShowingMoreParticipants","lessParticipants","visibleParticipants","hasMoreParticipants","toggleLabel","moreCount","participantLabel","participantCount","toggleMoreParticipants","getParticipantId","participantId","participant","EventHub","$_all","handlers","newHandlers","$once","wrapHandler","isItem","_item$text","itemValidator","hasOnlyListItemsVue2","defaultSlot","vNode","_vNode$componentOptio","componentOptions","isValidSlotTagVue2","hasOnlyListItemsVue3","fragment","_vNode$type","isValidSlotTagVue3","hasOnlyListItems","HEALTH_STATUS_I18N_ASSIGN_HEALTH_STATUS","HEALTH_STATUS_I18N_NO_STATUS","HEALTH_STATUS_I18N_SELECT_HEALTH_STATUS","healthStatusDropdownOptions","dropdownText","healthStatusTextMap","onSelect","dropdown","open","copyObject","createAssigner","srcIndex","logError","fetchUserCounts","cloneArrayBuffer","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","Ctor","baseGet","baseIteratee","baseMap","baseSortBy","compareMultiple","collection","iteratees","fileExtensionIcons","htm","html_vm","asp","jade","pug","md","markdown","mdown","mkd","mkdn","rst","blink","scss","sass","less","json","yaml","yml","xml","plist","xsd","dtd","xsl","xslt","resx","iml","xquery","tmLanguage","manifest","png","jpeg","jpg","gif","svg","ico","tif","tiff","psd","psb","ami","apx","bmp","bpg","brk","cur","dds","dng","exr","fpx","gbr","img","jbig2","jb2","jng","jxr","pbm","pgf","pic","raw","webp","js","cjs","ejs","esx","mjs","jsx","tsx","ini","dlc","dll","conf","properties","toml","prefs","ts","cts","mts","marko","pdf","xlsx","xls","ods","csv","tsv","vscodeignore","vsixmanifest","vsix","suo","sln","csproj","vb","pdb","sql","pks","pkb","accdb","mdb","sqlite","cs","zip","tar","gz","xz","bzip2","gzip","rar","tgz","exe","msi","java","jar","jsp","cc","cpp","mm","cxx","hpp","go","py","sh","ksh","csh","tcsh","zsh","bash","bat","cmd","ps1","psm1","psd1","ps1xml","psc1","pssc","gradle","docx","odt","rtf","cer","cert","crt","pub","pem","asc","gpg","woff","woff2","ttf","eot","suit","otf","bmap","fnt","odttf","ttc","font","fonts","sui","ntf","mrf","lib","bib","rb","erb","fs","fsx","fsi","fsproj","swift","ino","dockerignore","dockerfile","tex","cls","sty","pptx","ppt","pptm","potx","pot","potm","ppsx","ppsm","pps","ppam","ppa","odp","webm","mkv","flv","vob","ogv","ogg","gifv","avi","mov","qt","wmv","yuv","rm","rmvb","mp4","m4v","mpg","mp2","mpeg","mpe","mpv","m2v","vdi","vbox","ics","mp3","flac","m4a","wma","aiff","coffee","txt","graphql","rs","raml","xaml","hs","kt","kts","patch","lua","clj","cljs","groovy","rmd","dart","as","mxml","ahk","swf","swc","cmake","asm","a51","inc","nasm","agc","ags","aea","argus","mitigus","binsource","vue","ml","mli","cmx","lock","hbs","mustache","pl","pm","hx","pp","ex","exs","ls","erl","twig","jl","pure","tpl","styl","re","rei","cmj","merlin","v","vhd","sv","svh","nb","wl","wls","njk","nunjucks","robot","sol","au3","haml","yang","tf","tfvars","tfstate","applescript","cake","feature","nim","nimble","apib","apiblueprint","vfl","kl","pcss","sss","todo","cfml","cfc","lucee","cabal","nix","slim","http","rest","rql","restql","kv","graphcool","sbt","cr","cu","cuh","log","twoFileExtensionIcons","fileNameIcons","makefile","gradlew","COPYING","LICENSE","LICENCE","changelog","CREDITS","procfile","jenkinsfile","Rakefile","browserslist","getIconForFile","pop","IssuableBulkUpdateSidebar","initDomElements","initDropdowns","setupBulkUpdateActions","$page","$sidebar","$sidebarInnerContainer","$bulkEditCancelBtn","$bulkEditSubmitBtn","$bulkUpdateEnableBtn","$otherFilters","$checkAllContainer","$issueChecks","$issuesList","$issuableIdsInput","toggleBulkEdit","selectAll","updateFormState","prepForSubmit","issuableEventHub","toggleSubmitButtonDisabled","mountMoveIssuesButton","mountStatusDropdown","mountSubscriptionsDropdown","mountAssigneesDropdown","mountConfidentialityDropdown","IS_EE","mountEpicDropdown","mountHealthStatusDropdown","mountIterationDropdown","IssuableBulkUpdateActions","setOriginalDropdownData","noCheckedIssues","updateSelectedIssuableIds","toggleSidebarDisplay","toggleBulkEditButtonDisabled","toggleOtherFiltersDisabled","toggleCheckboxDisplay","getCheckedIssueIds","checkAllButtonState","$checkedIssues","IssuableContext","reviewersSelect","UsersSelect","dropdowns","glDropdownInstance","jQueryWrapper","domElement","content","loader","spinner","realParent","filterInput","$block","$selectbox","bpBreakpoint","setCookie","initBulkUpdateSidebar","prefixId","issuableBulkUpdateActions","initCsvImportExportButtons","issuableCount","CsvImportExportButtons","initIssuableByEmail","IssuableByEmail","sidebarOptions","getSidebarOptions","Sidebar","initialize","fileName","fileMode","folder","submodule","opened","isSymlink","FILE_SYMLINK_MODE","spriteHref","sprite_file_icons","folderIconName","iconSizeClass","regex","ps","getPropertyValue","overflow","isObjectLike","AcronymResult","computeScore","emptyAcronymResult","isAcronymFullWord","isMatch","isSeparator","isWordEnd","isWordStart","scoreAcronyms","scoreCharacter","scoreConsecutives","scoreExact","scoreExactMatch","scorePattern","scorePosition","scoreSize","preparedQuery","string_lw","allowErrors","core_lw","core_up","ceil","subject","query_lw","query_up","j","qj_lw","qj_up","si","subject_lw","acro","acro_score","align","csc_diag","csc_row","csc_score","csc_should_rebuild","miss_budget","miss_left","pos","record_miss","score_diag","score_row","score_up","si_lw","sz","charCodes","curr_s","prev_s","len","next_s","sc","quality","sameCase","bonus","posBonus","startOfWord","k","mi","nj","pos2","fullWord","sepCount","sumPos","nbAcronymInQuery","modalDomId","clipboard","ClipboardJS","$root","BV_HIDE_TOOLTIP","clearSelection","placement","DRAWIO_PARAMS","ui","noSaveBtn","saveAndExit","keepmodified","spin","embed","libraries","configure","proto","toSvg","updateDrawioEditorState","drawIOEditorState","postMessageToDrawioEditor","origin","drawioUrl","iframe","contentWindow","postMessage","disposeDrawioEditor","disposeEventListener","saveDiagram","editorFacade","newDiagram","diagramMarkdown","filename","diagramSvg","filenameWithExt","endsWith","messageKey","uploadResults","uploadDiagram","insertDiagram","updateDiagram","VARIANT_SUCCESS","fadeTransition","titleKey","buttonKey","promptName","errKey","okKey","sendLoadDiagramMessage","border","background","dark","prepareEditor","cursor","diagram","getDiagram","contentType","diagramURL","resolvedURL","diagramSvgSize","Blob","loadExistingDiagram","visibility","onDrawIOEditorMessage","_isNil","darkColor","settingsName","colorSchemeMeta","configureDrawIOEditor","base64DecodeUnicode","launchDrawioEditor","diagramsnet_url","darkModeEnabled","createDrawioEditorState","evtHandler","attachDrawioIFrameMessageListener","setAttributes","createEditorIFrame","baseSlice","toInteger","nativeCeil","nativeMax","resIndex","importableTypeText","TYPE_ACTIVITY","TYPE_COMMENT","TYPE_DESIGN","TYPE_SNIPPET","importableType","textOnly","importable","MARKDOWN_EDITOR_TRACKING_LABEL","TOOLBAR_CONTROL_TRACKING_ACTION","trackSavedUsingEditor","isRichText","MAX_WINDOW_HEIGHT_COMPACT","MAX_TITLE_LENGTH","MAX_BODY_LENGTH","SIDEBAR_INIT_WIDTH","SIDEBAR_MIN_WIDTH","SIDEBAR_NAV_WIDTH","FILE_VIEW_MODE_EDITOR","FILE_VIEW_MODE_PREVIEW","PERMISSION_CREATE_MR","PERMISSION_READ_MR","PERMISSION_PUSH_CODE","PUSH_RULE_REJECT_UNSIGNED_COMMITS","DEFAULT_PERMISSIONS","viewerTypes","deleted","renamed","not_diffable","added","image","diffViewerErrors","too_large","stored_externally","leftSidebarViews","review","rightSidebarViews","pipelines","keepAlive","jobsDetail","mergeRequestInfo","terminal","stageKeys","unstaged","staged","commitItemIconMap","modalTypes","rename","tree","blob","commitActionTypes","move","SIDE_LEFT","SIDE_RIGHT","MAX_MR_FILES_AUTO_OPEN","DEFAULT_BRANCH","GITLAB_WEB_IDE_FEEDBACK_ISSUE","IDE_ELEMENT_ID","IDE_PATH","WEB_IDE_OAUTH_CALLBACK_URL_PATH","isSymbol","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","DISCLOSURE_DROPDOWN_ITEM_NAME","DISCLOSURE_DROPDOWN_GROUP_NAME","DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS","baseAssignValue","createAggregator","groupBy","addATodo","markAsDone","GlAnimatedTodoIcon","itemId","currentUserTodos","todosButtonType","todoId","_this$currentUserTodo","pendingTodo","TODO_DONE_ICON","TODO_ADD_ICON","onToggle","createWorkItemTodosMutation","inputVariables","markDoneWorkItemTodosMutation","optimisticResponse","todoMutation","TODO_DONE_STATE","TODO_PENDING_STATE","todos","__typename","updateGlobalTodoCount","DROPDOWN_SELECTOR","ITEM_SELECTOR","GL_DROPDOWN_SHOWN","GL_DROPDOWN_HIDDEN","GL_DROPDOWN_BEFORE_CLOSE","GL_DROPDOWN_FOCUS_CONTENT","GlBaseDropdown","GlDisclosureDropdownGroup","primary","toggleId","noCaret","toggleAriaLabelledBy","listAriaLabelledBy","block","dropdownOffset","fluidWidth","autoClose","positioningStrategy","strategy","startOpened","disclosureId","nextFocusedItemIndex","_this$items","$slots","baseDropdown","close","code","elements","getFocusableListItemElements","stop","focusItem","focusNextItem","handleAutoClose","_this$$refs$content","nextIndex","_elements$index","closeAndFocus","uniqueItemId","GL_DROPDOWN_CONTENTS_CLASS","_d","onShow","onHide","onBeforeClose","onKeydown","disclosureTag","handleAction","groupItem","updateDescription","descriptionHtml","details","detailNodes","placeholder","innerHTML","newDetails","Service","realtimeEndpoint","getData","deleteIssuable","payload","updateIssuable","loadTemplates","templateNamesEndpoint","eventHub","trackingMixin","updateMixin","formState","deleteLoading","skipApollo","isSubmitEnabled","closeForm","updateLoading","MarkdownEditor","markdownPreviewPath","markdownDocsPath","canAttachFile","enableAutocomplete","formFieldProps","autocompleteDataSources","_gl$GfmAutoComplete","gl","GfmAutoComplete","dataSources","_this$$refs$textarea","textarea","saveIssuable","markdownEditor","isContentEditorActive","issuableTemplates","projectNamespace","issuableTemplatesJson","editor","setValue","getValue","issuableTemplate","IssuableTemplateSelectors","$dropdowns","issuableTypes","selectedIssueType","shouldShowIncident","updateIssueType","updateIssueStateMutation","isDirty","isShown","alertMessage","TYPE_ALERT","TYPE_TEST_CASE","DescriptionField","DescriptionTemplateField","EditActions","IssuableTitleField","IssuableTypeField","LockedWarning","initialDescriptionText","descriptionAutosaveKey","titleAutosaveKey","autosaveReset","formData","showOutdatedDescriptionWarning","hasIssuableTemplates","showLockedWarning","lockedWarningVisible","showTypeField","deep","resetAutosave","initAutosave","savedLockVersion","lock_version","keepAutosave","discardAutosave","updateTitleDraft","updateDescriptionDraft","$set","enableConfidentiality","confidentialityEnabled","disableConfidentiality","confidentialityDisabled","confidentialityQueries","_data$workspace","issueTypeText","_issuableTypeText$iss","issuableTypeText","confidentialItem","confidentialityText","handleToggleWorkItemConfidentiality","issuableSetConfidential","deleteModalId","editTitleAndDescription","promoteErrorMessage","promoteSuccessMessage","reportAbuse","referenceFetchError","copyReferenceText","DeleteIssueModal","GlDropdownDivider","AbuseCategorySelector","SidebarSubscriptionsWidget","IssuableLockForm","HeaderActionsConfidentialityToggle","GlModalDirective","isReportAbuseDrawerOpen","isUserSignedIn","isDesktopDropdownVisible","issuableReference","issueReferenceQuery","openState","buttonText","testId","newIssueTypeText","showToggleIssueStateButton","canClose","canReopen","hasDesktopDropdown","hasMobileDropdown","copyMailAddressText","showLockIssueOption","showMovedSidebarOptions","submitSpamItem","editShortcutKey","shouldDisableShortcuts","keysFor","ISSUABLE_EDIT_DESCRIPTION","editTooltip","sanitize","showDropdownTooltip","promoteToEpicItem","extraAttrs","isToggleStateButtonLoading","showConfidentialityToggle","toggleIssueState","_this$getBlockedByIss","getBlockedByIssues","blockedByIssuesModal","closeActionsDropdown","invokeUpdateIssueMutation","toggleReportAbuseDrawer","toggleStateButtonLoading","updateIssueMutation","stateEvent","ISSUE_STATE_EVENT_REOPEN","ISSUE_STATE_EVENT_CLOSE","updateIssue","promoteToEpic","promoteToEpicMutation","epic","issuesEventHub","copyReference","toast","copyEmailAddress","_this$$refs$issuableA","_this$$refs$issuableA2","issuableActionsDropdownMobile","issuableActionsDropdownDesktop","showDesktopDropdown","hideDesktopDropdown","notificationsTodosButtons","IssuableHeader","duplicatedToIssueUrl","movedToIssueUrl","promotedToEpicUrl","closedStatusLink","closedStatusText","statusText","zoomMeetingUrl","publishedIncidentUrl","pinnedLinks","links","STATUS_PAGE_PUBLISHED","JOIN_ZOOM_MEETING","needsPaddingClass","GlIntersectionObserver","statusVariant","animateMixin","issuableRef","titleHtml","titleText","preAnimation","pulseAnimation","titleEl","setPageTitle","animateChange","currentPageTitleScope","innerText","stripClientState","HeaderActions","IssueHeader","TitleComponent","EditedComponent","FormComponent","PinnedLinks","StickyHeader","updateEndpoint","initialTitleHtml","initialTitleText","initialDescriptionHtml","initialTaskCompletionStatus","updatedByName","updatedByPath","issuableTemplateNamesPath","descriptionText","templatesRequested","isStickyHeaderShowing","headerClasses","issueChanged","defaultErrorMessage","pinnedLinkClasses","shouldShowStickyHeader","service","poll","Poll","resource","successCallback","res","updateState","errorCallback","Visibility","hidden","makeDelayedRequest","POLLING_DELAY","change","restart","handleBeforeUnloadEvent","openForm","hideStickyHeader","returnValue","title_text","description_text","descriptionSection","newDescriptionHtml","oldDesc","newDesc","refetchData","setFormState","templates","updateAndShowForm","requestTemplatesAndShowForm","_this$alert","issuablePayload","issue_type","dismiss","detectAndConfirmSensitiveTokens","CONTENT_TYPE","DESCRIPTION","URI","ISSUE_TYPE_PATH","INCIDENT_TYPE_PATH","response","errMsg","_document$body$classL","showStickyHeader","_document$body$classL2","pageYOffset","handleSaveDescription","taskListUpdateStarted","taskListUpdateSucceeded","taskListUpdateFailed","reviewers","getMergeRequestReviewers","GlDrawer","ApprovalSummary","ApprovalRulesWrapper","getDrawerHeaderHeight","getContentWrapperHeight","loadingReviewers","DRAWER_Z_INDEX","ReviewerDropdown","Tooltip","numberOfReviewers","editable","reviewerTitle","changeReviewer","UncollapsedReviewerList","hasNoUsers","sortedReviewers","_user$mergeRequestInt","_user$mergeRequestInt2","assignSelf","requestReview","observable","initialLoading","drawerOpen","MountingPortal","ReviewerTitle","Reviewers","ReviewerDrawer","mediator","getMergeRequestReviewersQuery","subscribeToMore","mergeRequestReviewersUpdatedSubscription","_this$issuable","_this$issuable2","subscriptionData","mergeRequestReviewersUpdated","setReviewersFromRealtime","relativeUrlRoot","_gon$relative_url_roo","_this$issuable$review","graphqlFetching","_this$issuable$userPe","adminMergeRequest","addReviewer","removeAllReviewers","saveReviewers","toggleDrawerOpen","reviewBySelf","addSelfReview","removeReviewerById","HEALTH_STATUS_I18N_FETCH_ERROR","HEALTH_STATUS_I18N_HEALTH_STATUS","HEALTH_STATUS_I18N_NONE","HEALTH_STATUS_I18N_UPDATE_ERROR","HEALTH_STATUS_OPEN_DROPDOWN_DELAY","healthStatusVariantMap","healthStatusForRestApi","NO_STATUS","healthStatusTracking","editEvent","rightSidebarLabel","iterationSelectTextMap","noIteration","assignIteration","iterationSelectFail","currentIterationFetchError","iterationsFetchError","noIterationsFound","noAttributeId","noEpic","placeholderEpic","SIDEBAR_ESCALATION_POLICY_TITLE","MAX_DISPLAY_WEIGHT","CVE_ID_REQUEST_SIDEBAR_I18N","whyRequest","whyText1","whyText2","learnMore","IssuableAttributeType","IssuableAttributeTypeFoss","Iteration","EscalationPolicy","Parent","LocalizedIssuableAttributeType","LocalizedIssuableAttributeTypeFoss","IssuableAttributeTypeKeyMap","_invert","IssuableAttributeState","IssuableAttributeStateFoss","dropdowni18nText","issuableAttribute","noAttributesFound","dropdowni18nTextFoss","i18nHelpText","i18nPolicyText","paged","i18nStatusHeaderText","STOPS_PAGING","STATUS_SUBTEXTS","STATUS_TRIGGERED","STATUS_ACKNOWLEDGED","STATUS_RESOLVED","resolveDiscussion","isDraft","resolvedStatusMessage","discussionResolved","isDiscussionResolved","draft","discussion_id","discussionToBeResolved","resolve_discussion","showStaysResolved","componentClasses","resolveButtonTitle","resolvedBy","filePath","fileSize","fileSizeReadable","numberToHumanSize","Dropzone","Emitter","camelize","contentLoaded","detectVerticalSquash","drawImageIOSFix","noop","without","__slice","__hasProp","_callbacks","emit","callbacks","_i","removeListener","removeAllListeners","_super","resolveOption","elementOptions","defaultOptions","previewTemplate","clickableElements","listeners","dropzone","instances","optionsForElement","isBrowserSupported","acceptedFiles","acceptedMimeTypes","getExistingFallback","previewsContainer","getElement","clickable","getElements","ctor","__super__","__extends","withCredentials","parallelUploads","uploadMultiple","maxFilesize","paramName","createImageThumbnails","maxThumbnailFilesize","thumbnailWidth","thumbnailHeight","filesizeBase","maxFiles","ignoreHiddenFiles","autoProcessQueue","autoQueue","addRemoveLinks","hiddenInputContainer","dictDefaultMessage","dictFallbackMessage","dictFallbackText","dictFileTooBig","dictInvalidFileType","dictResponseError","dictCancelUpload","dictCancelUploadConfirmation","dictRemoveFile","dictRemoveFileConfirmation","dictMaxFilesExceeded","accept","messageElement","span","getFallbackForm","resize","srcRatio","trgRatio","srcX","srcY","srcWidth","srcHeight","optWidth","optHeight","trgHeight","trgWidth","dragstart","dragend","dragenter","dragover","dragleave","paste","reset","addedfile","removeFileEvent","removeLink","_j","_len1","_len2","_ref1","_results","previewElement","filesize","_removeLink","UPLOADING","confirm","removeFile","removedfile","_updateMaxFilesReachedClass","thumbnail","dataUrl","thumbnailElement","errormultiple","processing","processingmultiple","uploadprogress","bytesSent","totaluploadprogress","sending","sendingmultiple","successmultiple","canceled","canceledmultiple","completemultiple","maxfilesexceeded","maxfilesreached","queuecomplete","addedfiles","getAcceptedFiles","accepted","getRejectedFiles","getFilesWithStatus","getQueuedFiles","QUEUED","getUploadingFiles","getAddedFiles","ADDED","getActiveFiles","noPropagation","setupHiddenFileInput","hiddenFileInput","addFile","webkitURL","updateTotalUploadProgress","efct","_error","clickableElement","elementInside","removeAllFiles","totalBytes","totalBytesSent","totalUploadProgress","upload","total","_getParamName","existingFallback","fieldsString","getFallback","setupEventListeners","elementListeners","listener","_results1","removeEventListeners","cancelUpload","selectedSize","selectedUnit","unit","units","webkitGetAsEntry","_addFilesFromItems","handleFiles","clipboardData","isFile","getAsFile","isDirectory","_addFilesFromDirectory","directory","dirReader","entriesReader","createReader","readEntries","isValidFile","_enqueueThumbnail","_errorProcessing","enqueueFile","enqueueFiles","processQueue","_thumbnailQueue","_processingThumbnail","_processThumbnailQueue","createThumbnail","cancelIfNecessary","fileReader","FileReader","onload","createThumbnailFromUrl","readAsDataURL","imageUrl","crossOrigin","canvas","resizeInfo","getContext","trgX","trgY","toDataURL","onerror","processingLength","queuedFiles","processFiles","processFile","uploadFiles","_getFilesWithXhr","groupedFile","groupedFiles","CANCELED","abort","uploadFile","handleError","headerName","headerValue","inputType","updateProgress","_len3","XMLHttpRequest","allFilesFinished","loaded","readyState","responseText","getResponseHeader","_finished","onprogress","setRequestHeader","FormData","submitRequest","send","SUCCESS","ERROR","forElement","autoDiscover","discover","checkElements","dropzones","blacklistedBrowsers","capableBrowser","File","FileList","rejectedItem","div","childNodes","els","question","rejected","baseMimeType","mimeType","validType","ACCEPTED","PROCESSING","ey","ih","ratio","sy","naturalWidth","naturalHeight","drawImage","getImageData","sx","sw","dw","dh","vertSquashRatio","win","pre","rem","doScroll","createEventObject","frameElement","_autoDiscoverFunction","asString","persist","newVal","saveValue","serialize","exists","getStorageValue","deserialize","warn","_this$$scopedSlots$de","_this$$scopedSlots","getNotesFilterData","notesFilterValue","valueData","notesFilters","filtersData","filtersParsed","baseSet","arrayReduce","deburr","words","reApos","sendEmail","GlFormInputGroup","ModalCopyButton","issuableName","mailToLink","new_address","newAddress","cancelHandler","resetIncomingEmailToken","$labelDropdown","willUpdateLabels","onFormSubmit","getFormDataAsObject","onFormSubmitFailure","assigneeIds","state_event","milestone_id","issuable_ids","subscription_event","health_status","epic_id","sprint_id","add_label_ids","remove_label_ids","assignee_ids","$labelSelect","userCheckedIds","userUncheckedIds","checkedIdsToShow","_difference","_union","getOriginalCommonIds","indeterminateIdsToShow","getOriginalIndeterminateIds","labelIds","_intersection","uniqueIds","issuableLabels","scopeEl","locked","displayText","unlocked","Outside","issueCapitalized","mergeRequestCapitalized","lockingMergeRequest","unlockingMergeRequest","lockMergeRequest","unlockMergeRequest","lockedMessage","unlockedMessage","isLockDialogOpen","isIssuable","issuableDisplayName","issuableDisplayNameCapitalized","lockStatus","lockToggleInProgressText","unlockingMergeRequestText","lockingMergeRequestText","lockToggleText","unlockMergeRequestText","lockMergeRequestText","lockedMessageText","unlockedMessageText","toggleForm","toggleLocked","updateLockedAttribute","diffFileDiscussions","allDiscussions","clickedToggle","toggleDiscussion","calcPercent","renderedSize","DesignNotePin","imageDiffMixin","fileHash","canComment","showCommentIcon","badgeClass","shouldToggleDiscussion","renderedWidth","renderedHeight","currentCommentForm","getCommentFormForDiffFile","_isArray","getImageDimensions","$parent","getPositionForObject","getPosition","clickedImage","xPercent","yPercent","openDiffFileCommentForm","offsetX","offsetY","resolved","_this$taskCompletionS","completed_count","hasUpdatedBy","showCheck","taskStatus","PasteMarkdownTable","columnWidths","rows","tableFound","parseTable","isTable","convertToTableMarkdown","calculateColumnWidths","markdownRows","row","column","formatColumn","generateHeaderBreak","htmlData","DOMParser","parseFromString","splitRows","normalizeRows","columnCountsMatch","rowLengths","_column","columnIndex","maxColumnWidth","textColumnCount","htmlColumnCount","cells","dropzoneInput","_form$get$querySelect","iconPaperclip","spriteIcon","$attachingFileMessage","$cancelButton","$retryLink","$uploadProgress","$uploadingErrorContainer","$uploadingErrorMessage","$uploadingProgressContainer","uploadsPath","uploads_path","maxFileSize","max_file_size","formTextarea","handlePaste","pasteText","addFileToForm","updateAttachingMessage","hasPlainText","wrap","$mdArea","$formDropzone","previewContainer","header","shouldPad","dropzoneInstance","failedFiles","failedFile","pasteEvent","converter","MAX_FILE_NAME_LENGTH","getFilename","truncateFilename","truncate","formattedText","caretStart","caretEnd","textEnd","beforeSelection","afterSelection","closeSpinner","handleAttachFile","getRetinaDimensions","$child","insertToTextArea","messageContainer","filesCount","attachingMessage","$attachFileButton","GLForm","enableGFM","forceNew","gfmDataSources","defaultAutocompleteConfig","setupForm","clearEventListeners","autoComplete","formDropzone","isNewForm","disableButtonIfEmptyField","setup","autosize","addEventListeners","addMarkdownListeners","isAutosizeable","setupAutosize","updateAutocompleteDataSources","updateDataSources","setHeightData","destroyAutosize","removeMarkdownListeners","DESIGN_DETAIL_LAYOUT_CLASSLIST","ACTIVE_DISCUSSION_SOURCE_TYPES","pin","ALERT_VARIANTS","danger","VALID_DESIGN_FILE_MIMETYPE","mimetype","MAXIMUM_FILE_UPLOAD_LIMIT","MAXIMUM_FILE_UPLOAD_LIMIT_REACHED","upload_limit","DESIGN_NOT_FOUND_ERROR","DESIGN_VERSION_NOT_EXIST_ERROR","DESIGN_SINGLE_ARCHIVE_ERROR","DESIGN_UPLOAD_SKIPPED_MESSAGE","UPDATE_DESCRIPTION_ERROR","UPLOAD_DESIGN_ERROR_MESSAGE","ADD_DISCUSSION_COMMENT_ERROR","ADD_IMAGE_DIFF_NOTE_ERROR","UPDATE_IMAGE_DIFF_NOTE_ERROR","UPDATE_NOTE_ERROR","DELETE_NOTE_ERROR","RESOLVE_NOTE_ERROR","AWARD_EMOJI_TO_NOTE_ERROR","MOVE_DESIGN_ERROR","designUploadSkippedWarning","uploadedDesigns","skippedFiles","uploadSkippedReason","reason","skippedFilesList","someDesignsSkippedMessage","designArchiveError","designsCount","GlTruncate","dateTimeFormat","DEFAULT_DATE_TIME_FORMAT","timeFormat","DATE_TIME_FORMATS","enableTruncation","timeAgo","parseGid","gid","rawId","getTypeFromGraphQLId","mutationOperationMode","convertToGraphQLIds","ids","convertNodeIdsFromGraphQLIds","getNodesOrDefault","queryData","nodesField","_queryData$nodesField","toggleQueryPollingByVisibility","queryRef","interval","stopStartQuery","stopPolling","startPolling","etagQueryHeaders","featureCorrelation","etagResource","fetchOptions","calculateGraphQLPaginationQueryParams","startCursor","routeQuery","start_cursor","end_cursor","resolveHandler","resolvedState","isResolving","isResolved","resolveAsThread","resolve_path","discussionResolvePath","toggleResolveNote","Mediator","fetch","mountSidebar","AjaxCache","Cache","super","pendingRequests","override","internalStorage","retrieve","forceRetrieve","pendingRequest","textStatus","fileSymlinkInformation","fileList","duplicates","iteratedFile","includesSymlink","a_mode","b_mode","DIFF_FILE_SYMLINK_MODE","DIFF_FILE_DELETED_MODE","automaticallyCollapsed","manuallyCollapsed","forceOpen","isNotDiffable","viewerModes","_file$blob2","additionalProperties","drafts","load_collapsed_diff_url","_file$blob","getDerivedMergeRequestInformation","uuids","seeds","file_identifier_hash","identifier","collapsedType","_file$viewer2","DIFF_FILE_MANUAL_COLLAPSE","DIFF_FILE_AUTOMATIC_COLLAPSE","isCollapsed","_file$viewer3","_file$viewer4","getShortShaFromFile","truncateSha","fileA","fileB","universal","stats","valid","sign","percent","changeInPercent","old_size","new_size","countLinesInBetween","prev","findClosestMatchLine","prevLine","lineExists","linkedIssueTypesMap","BLOCKS","IS_BLOCKED_BY","linkedIssueTypesTextMap","autoCompleteTextMap","true","emphasisStart","emphasisEnd","false","inputPlaceholderTextMap","inputPlaceholderConfidentialTextMap","relatedIssuesRemoveErrorMap","pathIndeterminateErrorMap","itemAddFailureTypesMap","NOT_FOUND","MAX_NUMBER_OF_CHILD_EPICS","addRelatedIssueErrorMap","addRelatedItemErrorMap","issuableIconMap","PathIdSeparator","issuablesBlockHeaderTextMap","issuablesBlockHelpTextMap","issuablesBlockAddButtonTextMap","issuablesFormCategoryHeaderTextMap","issuablesFormInputTextMap","primaryBtn","cancelBtnCreate","cancelBtnUpdate","cancelCreate","cancelUpdate","newCommentButton","updateCommentButton","designNoteMutation","mutationVariables","isNewComment","isDiscussion","noteableId","saving","noteUpdateDirty","hasValue","shortDiscussionId","hasDirtyFreshComment","markdownEditorEventHub","CLEAR_AUTOSAVE_ENTRY_EVENT","handleInput","afterNoteMutation","getErrorMessage","cancelComment","confirmCancelCommentModal","cancelBtn","cancelBtnText","scale","baseImageSize","imageStyle","imageError","resizeThrottled","onImgLoad","_throttle","setBaseImageSize","setImageNaturalScale","performanceMarkAndMeasure","measures","onImgError","contentImg","offsetHeight","onResize","amount","dimensions","disableCommenting","resolvedDiscussionsExpanded","disableNotes","activeDesignDiscussion","activeDiscussionQuery","movingNoteNewPosition","movingNoteStartPosition","overlayStyle","isMovingCurrentComment","currentCommentPositionStyle","getNotePositionStyle","visibleNotes","setNewNoteCoordinates","getNoteRelativePosition","widthRatio","heightRatio","getMovingNotePositionDelta","deltaX","deltaY","isMovingNote","_this$movingNoteStart","movingNoteId","canMoveNote","repositionNote","isPositionInOverlay","onNewNoteMove","onNewNoteMouseup","onExistingNoteMove","onExistingNoteMouseup","updateActiveDesignDiscussion","coordinates","onNoteMousedown","onOverlayMousemove","onNoteMouseup","onAddCommentMouseup","updateActiveDiscussionMutation","isNoteInactive","discussionNotes","newCommentButtonLabel","DesignImage","DesignOverlay","imageName","isAnnotating","isSidebarOpen","overlayDimensions","overlayPosition","currentAnnotationPosition","zoomFocalPoint","initialLoad","lastDragPosition","isDraggingDesign","discussionStartingNotes","presentationStyle","presentationViewport","scrollThrottled","shiftZoomFocalPoint","syncCurrentAnnotationPosition","getAnnotationPosition","setOverlayDimensions","setOverlayPosition","getViewportCenter","scrollBarWidth","scrollBarHeight","xScrollRatio","yScrollRatio","xScrollOffset","yScrollOffset","scrollToFocalPoint","scrollX","scaleZoomFocalPoint","onImageResize","imageDimensions","openCommentForm","closeCommentForm","moveNote","onPresentationMousedown","isDesignOverflowing","getDragDelta","exceedsDragThreshold","shouldDragDesign","onPresentationMousemove","onPresentationMouseup","nextButton","previousButton","allDesigns","paginationText","designs_count","previousDesign","nextDesign","Mousetrap","ISSUE_PREVIOUS_DESIGN","navigateToDesign","ISSUE_NEXT_DESIGN","unbind","downloadButtonLabel","hideCommentsButtonLabel","showCommentsButtonLabel","archiveButtonLabel","GlSkeletonLoader","CloseButton","DesignNavigation","TodosToggle","ArchiveDesignButton","workItemTitle","designFilename","isLatestVersion","currentUserDesignTodos","toggleCommentsButtonLabel","isAddDiscussion","signedOutText","placeholderText","labelText","editCommentLabel","moreActionsLabel","deleteCommentText","copyCommentLink","TimelineEntryItem","DesignReplyForm","EmojiPicker","designVariables","hasAuthor","noteAnchorId","findNoteId","_window$gon","currentUserFullName","_window$gon2","awardEmoji","adminPermissions","adminNote","hasPermissions","setUrlFragment","onDone","hasErrors","updateNote","isEmojiPresentForCurrentUser","getAwardEmojiNodes","toggledOn","newEmoji","designNoteAwardEmojiToggleMutation","awardableId","awardEmojiToggle","getDesignQuery","designManagement","designAtVersion","updateNoteMutation","handleAwardEmoji","bodyHtml","status_tooltip_html","toggleTextColor","authorCollapsedTooltip","expanded","deleteNote","confirmationText","primaryModalBtnText","DesignNote","DiscussionReplyPlaceholder","DesignNoteSignedOut","GlFormCheckbox","ToggleRepliesWidget","discussionWithOpenForm","shouldScrollToDiscussion","scrollIntoView","behavior","isFormRendered","noteToDelete","shouldChangeResolvedStatus","areRepliesCollapsed","resolveCheckboxText","firstNote","discussionReplies","areRepliesShown","resolveIconName","isRepliesWidgetVisible","isDiscussionActive","_getLocationHash","getLocationHash","isReplyPlaceholderVisible","isFormVisible","designsVersion","highlightCurrentUser","onSubmitComplete","createNote","toggleResolvedStatus","ALLOWED_ACTIVE_DISCUSSION_SOURCES","_currentDesign$curren","client","prevTodoCount","toggleResolveDiscussionMutation","_data$errors","_data$discussionToggl","newTodoCount","discussionToggleResolve","noteable","_note$discussion","isLast","destroyNoteMutation","destroyNote","objectToIdentify","modify","DELETE","gc","createNoteMutation","showDeleteNoteConfirmationModal","resolvable","resolvedAt","editDescription","descriptionLabel","addDescriptionLabel","cancelEdit","primaryModalButton","cancelModalButton","quickActionsDocsPath","showEditor","_this$design$issue","updateDesign","showAddDescriptionButton","_this$design$issue2","oldDescriptionHtml","renderGFM","startEditing","enableCheckboxes","checkbox","setDescriptionText","newText","descriptionInput","updateDesignDescriptionMutation","toggleCheckboxes","isCheckbox","sourcepos","toggleMarkCheckboxes","rawMarkdown","checkboxChecked","updateDesignDescription","cancelDescription","DesignDescription","DesignDisclosure","DesignDiscussion","GlAccordion","GlAccordionItem","GlEmptyState","isCommentFormPresent","showDescriptionForm","_this$design","extractDiscussions","unresolvedDiscussions","unresolvedDiscussionsCount","resolvedDiscussions","hasResolvedDiscussions","resolvedDiscussionsTitle","resolveCommentsToggleText","isResolvedDiscussionsExpanded","isExpanded","handleSidebarClick","updateDiscussionWithOpenForm","newDiscussionText","EMPTY_DISCUSSION_URL","maxScale","disableDecrease","disableIncrease","stepSize","scaleLabel","scaleValue","setScale","incrementScale","decrementScale","DesignPresentation","DesignSidebar","DesignToolbar","DesignScaler","beforeRouteUpdate","beforeRouteEnter","pageEl","getPageLayoutElement","beforeRouteLeave","allVersions","annotationCoordinates","prevCurrentUserTodos","workItemId","imageV432x230","_data$designManagemen","hasValidVersion","onQueryError","designId","versionId","latestVersionId","headSha","diffRefs","baseSha","startSha","paths","designCollectionQueryBody","getWorkItemDesignListQuery","atVersion","latestVersion","findVersionId","ISSUE_CLOSE_DESIGN","closeDesign","addImageDiffNoteToStore","createImageDiffNote","updateStoreAfterAddImageDiffNote","currentDiscussion","repositionImageDiffNoteMutation","repositionImageDiffNoteOptimisticResponse","afterDesignMove","repositionImageDiffNote","updateStoreAfterRepositionImageDiffNote","onError","onDeleteNoteError","onResolveDiscussionError","setMaxScale","toggleSidebar","toggleResolvedComments","updateWorkItemDesignCurrentTodosWidgetCache","updateWorkItemDesignCurrentTodosWidget","archiveDesignMutation","filenames","afterArchiveDesign","designManagementDelete","updateStoreAfterDesignsArchive","_isNull","createImageDiffNoteMutation","onArchiveDesign","onMoveNote","defaultEpicSort","epicIidPattern","dateTypes","due","dateFields","isDateFixed","dateFixed","dateFromMilestones","Milestone","todoMutationTypes","markDone","noAttribute","assignAttribute","updateError","listFetchError","currentFetchError","noPermissionToView","editConfirmation","editConfirmationCta","editConfirmationCancel","statusDropdownOptions","subscriptionsDropdownOptions","INCIDENT_SEVERITY","MILESTONE_STATE","ACTIVE","CLOSED","SEVERITY_I18N","UPDATE_SEVERITY_ERROR","TRY_AGAIN","EDIT","SEVERITY","SEVERITY_VALUE","STATUS_TRIGGERED_LABEL","STATUS_ACKNOWLEDGED_LABEL","STATUS_RESOLVED_LABEL","STATUS_LABELS","INCIDENTS_I18N","baseFlatten","baseDifference","baseRest","isArrayLikeObject","difference","extends","iconStateClass","ariaLabel","BULK_IMPORT_STATIC_ITEMS","badges","boards","epics","iterations_cadences","members","merge_requests","milestones","namespace_settings","self","auto_devops","ci_pipelines","container_expiration_policy","project_feature","protected_branches","push_rule","repository","service_desk_setting","vulnerabilities","commit_notes","STATISTIC_ITEMS","diff_note","issue_attachment","issue_event","lfs_object","merge_request_attachment","note_attachment","protected_branch","collaborator","pull_request","pull_request_merged_by","pull_request_review","pull_request_review_request","release","release_attachment","COMMENT_TEMPLATES_KEYS_FOSS","COMMENT_TEMPLATES_TITLES_FOSS","savedReplies","savedRepliesQuery","manual","groupFullPath","hideGroup","hideProject","shouldFetchCommentTemplates","InternalEvents","modalKeyboardNavigationMixin","commentTemplateSearch","loadingSavedReplies","allSavedReplies","_this$savedReplies$ke","filteredSavedReplies","savedReply","isInMr","trackEvent","toggleModal","commentTemplateGroup","displayAsText","textSize","disableTooltip","textSizeClass","deburrLetter","basePropertyOf","concatPagination","keyArgs","merge","existing","incoming","relayStylePagination","read","_a","canRead","readField","firstEdgeCursor","lastEdgeCursor","edge","getExtras","hasPreviousPage","incomingEdges","pageInfo_1","firstEdge","lastEdge","firstCursor","lastCursor","prefix","suffix","before","extras","notExtras","avatars","avatarSize","badgeSrOnlyText","badgeTooltipProp","badgeTooltipMaxChars","hiddenAvatars","16","32","badgeSize","collapsable","badge","badgeTooltipTitle","badgeLabel","baseUniq","union","buttonTitle","tagBlock","tagSelect","prepend","tagContent","cursorOffset","command","shortcuts","trackingProperty","shortcutsString","shortcutArray","trackingProps","textArea","resolveSelectedImage","imageURL","imageMarkdown","responseType","selectedMD","insertMarkdownText","getTextArea","ToolbarButton","DrawioToolbarButton","CommentTemplatesModal","AiActionsDropdown","HeaderDivider","SummarizeCodeChanges","editorAiActions","mrGeneratedContent","canSummarizeChanges","previewMarkdown","lineContent","canSuggest","showSuggestPopover","suggestionStartIndex","enablePreview","drawioEnabled","supportsQuickActions","modifierKey","getModifierKey","suggestPopoverVisible","shouldShowFindAndReplaceBar","findAndReplace","mdTable","divider","repeat","cell","mdSuggestion","codeblockChars","repeatCodeBackticks","mdCollapsibleSection","hideDividerBeforeTable","newCommentTemplatePath","showFindAndReplaceButton","updateSuggestPopoverVisibility","showMarkdownPreview","hideMarkdownPreview","showFindAndReplaceBar","isValid","handleSuggestDismissed","handleQuote","documentFragment","getSelectedFragment","transformed","CopyAsGFM","transformGFMSelection","area","nodeToGFM","gfm","insertPastedText","quoted","insertIntoTextarea","_this$$el$closest","updateText","replaceTextarea","descriptionForSha","addendum","revision","setGeneratedContent","showWarning","switchPreview","insertAIAction","insertSavedReply","_this$$el$closest2","handleKeyDown","bold","BOLD_TEXT","italic","ITALIC_TEXT","strikethrough","STRIKETHROUGH_TEXT","LINK_TEXT","indent","INDENT_LINE","outdent","OUTDENT_LINE","FIND_AND_REPLACE","hidePreview","preview","previewTabTitle","suggestButton","EditorModeSwitcher","showCommentToolBar","showContentEditorSwitcher","showEditorModeSwitcher","cleanUpLine","_unescape","stripHtml","MarkdownHeader","MarkdownToolbar","Suggestions","textareaValue","addSpacingClasses","removeBorder","glForm","markdownPreview","referencedCommands","referencedUsers","hasSuggestion","markdownPreviewLoading","suggestions","debouncedFetchMarkdownLoading","shouldShowReferencedUsers","richText","lineType","addMultipleToDiscussionWarning","usersTag","suggestionsStartIndex","mediaInPreview","media","pause","oldVal","all","hasAll","hadAll","justRemovedAll","debouncedFetchMarkdown","newDataSources","oldDataSources","snippets","contacts","MARKDOWN_EDITOR_READY_EVENT","showPreview","fetchMarkdown","renderMarkdown","references","_references$suggestio","commands","notesFilterProps","showTimelineViewToggle","notesDataset","parsedUserData","currentUserData","avatar_path","can_add_timeline_events","canAddTimelineEvents","NotesApp","resourceGlobalId","factory","userData","isProjectArchived","getNoteableDataByProp","archivedProjectDocsPath","lockedIssueDocsPath","withBatchComments","_state$batchComments","batchComments","addReplyToReview","postData","reply_id","draft_note","for_commit","project_id","saveDraft","isReplying","handleClearForm","_response$data","SAVING_THE_COMMENT_FAILED","SOMETHING_WENT_WRONG","addToReview","_diffFile$diff_refs","commentLineStart","formatLineRange","diffFileCommentForm","IMAGE_DIFF_POSITION_TYPE","diffFileHeadSha","_this2$line","closeDiffFileCommentForm","diffFileHash","FILE_DIFF_POSITION_TYPE","toggleFileCommentForm","file_path","_response$data2","cancelCommentForm","resetAutoSave","showDraft","replyId","shouldRenderDraftRowInDiscussion","asciiWords","hasUnicodeWord","unicodeWords","backgroundClasses","warning","computedValue","computedMax","isAssigneesWidget","isHealthStatusWidget","isLabelsWidget","isMilestoneWidget","isNotesWidget","WIDGET_TYPE_NOTES","isStartAndDueDateWidget","isWeightWidget","WIDGET_TYPE_LINKED_ITEMS","findStartAndDueDateWidget","_workItem$widgets2","findAwardEmojiWidget","_workItem$widgets3","findHierarchyWidgetChildren","_findHierarchyWidgets","findDesignWidget","WIDGET_TYPE_DESIGNS","getDefaultHierarchyChildrenCount","children_count","queryToObject","_findHierarchyWidgets2","ancestors","findHierarchyWidgetAncestors","_ancestor$workItemTyp","ISSUABLE_EPIC","WORK_ITEM_TYPE_ENUM_EPIC","findHierarchyWidgetDefinition","widgetDefinitions","autocompleteSourcesPath","autocompleteType","workItemTypeId","NEW_WORK_ITEM_IID","newWorkItemPath","workItemTypeName","routeParamName","WORK_ITEM_TYPE_ROUTE_WORK_ITEM","workitemReference","sortNameAlphabetically","workItemRoadmapPath","newWorkItemFullPath","isWorkItemItemValidEnum","WORK_ITEM_TYPE_ENUM_TEST_CASE","WORK_ITEM_TYPE_ENUM_KEY_RESULT","WORK_ITEM_TYPE_ENUM_REQUIREMENTS","newWorkItemId","workItemTypeLowercase","NEW_WORK_ITEM_GID","_localStorage$getItem","makeDrawerItemFullPath","_activeItem$namespace","delimiter","referencePath","makeDrawerUrlParam","btoa","full_path","getNewWorkItemAutoSaveKey","isItemDisplayable","STATE_CLOSED","escapedFullPath","_escapeRegExp","groupRegex","projectRegex","canGroupNavigate","canProjectNavigate","createBranchMRApiPathHelper","canCreateBranch","sourceBranch","targetBranch","createMR","getRefs","renderInfo","innerCssClasses","hasFileSize","hasDimensions","safePath","encodeSaferUrl","calculateImgSize","reAsciiWord","waitFor","getEl","sleep","LocalStorageSync","ContentEditor","setFacade","renderMarkdownPath","enableContentEditor","autofocus","disableAttachments","codeSuggestionsConfig","restoreFromAutosave","editingMode","text_editor","EDITING_MODE_CONTENT_EDITOR","EDITING_MODE_MARKDOWN_FIELD","EDITING_MODE_KEY","autosaveValue","autofocused","contentEditorAutofocused","markdownFieldRestrictedToolBarItems","restrictAttachments","isDefaultEditorEnabled","_this$setFacade","autofocusTextarea","updateValue","autosizeTextarea","setTemplate","template","force","applyTemplateAlert","primaryButtonText","secondaryButtonText","primaryAction","secondaryAction","updateMarkdownFromContentEditor","updateMarkdownFromMarkdownField","render_quick_actions","otherData","onEditingModeChange","notifyEditingModeChange","onEditingModeRestored","componentToFocus","contentEditor","setEditorAsAutofocused","togglePreview","markdownField","Autosize","showPopover","requireObjectCoercible","toIntegerOrInfinity","forced","at","S","relativeIndex","busyBadge","_memoize","renderVueComponentForLegacyJS","outerHTML","encodedString","decodedString","decodeURIComponent","showAndHideHelper","$input","alias","createMemberSearchString","member","membersBeforeSave","mentionsDisabled","autoCompleteAvatar","rectAvatarClass","imgAvatar","txtAvatar","avatarIcon","avatarTag","li","escapedQuery","regexp","$1","$2","$3","setupSubcommands","atwho","maxLen","displayTpl","wikis","cachedData","isLoadingData","previousQuery","currentBackendFilterRequestController","enableMap","setupLifecycle","setupAtWho","clearCache","setupEmoji","setupMembers","setupIssues","setupMilestones","setupMergeRequests","setupLabels","setupSnippets","setupContacts","setupWikis","limit","skipSpecialCharacterTest","skipMarkdownCharacterTest","defaultLoadingData","Loading","aliases","_template","insertTpl","referencePrefix","exec","getDefaultCallbacks","beforeSave","matcher","flag","subtext","setSubmitReviewStates","REVIEW_STATES","reviewed","approve","requested_changes","fetchData","templateFunction","insertTemplateFunction","unicodeLetters","$inputor","sorter","setting","highlightFirst","alwaysHighlightFirst","MEMBER_COMMAND","ASSIGN","UNASSIGN","ASSIGN_REVIEWER","UNASSIGN_REVIEWER","REASSIGN","CC","REQUEST_REVIEW","tmpl","Members","availabilityStatus","isUserBusy","_SidebarMediator$sing","_state$issuable","subtextNodes","regexSubtext","SidebarMediator","singleton","defaultMatcher","app","controllers","Issues","icon_name","Milestones","expired","parsedMilestones","mA","mB","merges","LABEL_COMMAND","LABEL","LABELS","UNLABEL","RELABEL","Labels","lastCandidate","Wikis","beforeInsert","slug","Contacts","firstName","first_name","lastName","last_name","contact","isTypeWithBackendFiltering","withoutAt","dataSource","atTypeMap","_this$cachedData$at","loadData","AbortController","signal","loadEmojiData","loadSubcommands","dataToInspect","loadingState","atSymbolsWithBar","atSymbolsWithoutBar","targetSubtext","resultantFlag","accentAChar","decodeURI","accentYChar","typesWithBackendFiltering","escapedFieldValue","fieldValue","nameOrUsernameStartsWith","nameOrUsernameIncludes","lowercaseQuery","mappedIconName","slugSpan","loadingSpinner","loadingIconForLegacyJS","selectDiffLines","cleanSuggestionLine","GlForm","defaultCommitMessage","batchSuggestionsCount","helperText","onApply","focusCommitMessageInput","commitMessage","APPLY_SUGGESTION_ERROR_MESSAGE","ApplySuggestion","canApply","isApplied","isBatched","isApplyingBatch","inapplicableReason","suggestionsCount","failedToLoadMetadata","isApplyingSingle","isApplying","tooltipMessage","isDisableButton","applyingSuggestionsMessage","showApplySuggestion","applySuggestionErrorMessage","applySuggestionBatch","applySuggestion","applySuggestionCallback","addSuggestionToBatch","removeSuggestionFromBatch","displayAsCell","SuggestionDiffHeader","SuggestionDiffRow","batchSuggestionsInfo","suggestionId","diff_lines","appliable","current_user","can_apply","applied","is_applying_batch","inapplicable_reason","isRendered","renderSuggestions","suggestionsWatch","defaultCommitMessageWatch","suggestionElements","suggestionEl","suggestionParentEl","generateDiff","$mount","suggestionIndex","suggestionDiff","SuggestionDiff","propsData","$watch","flashContainer","unassigned","GlDropdownForm","GlDropdown","SidebarParticipant","allowMultipleAssignees","issuableAuthor","searchUsers","isSearching","participantsQueries","skipQuery","getStatus","userSearchQueries","searchUsersVariables","_data$workspace2","mergeRequestId","_this$participants","filteredParticipants","mergedSearchResults","current","moveCurrentUserAndAuthorToStart","shouldShowParticipants","isCurrentUserInList","noUsersFound","showCurrentUser","showAuthor","selectedFiltered","foundUsernames","filtered","selectedUserNames","unselectedFiltered","_this$users","selectedIsEmpty","selectAssignee","clearAndFocusSearch","unassign","unselect","focusSearch","showDropdown","showDivider","sortedUsers","_this5$issuableAuthor","unselectedUser","SmartInterval","cfg","startingInterval","maxInterval","hiddenInterval","incrementByFactorOf","lazyStart","immediateExecution","intervalId","currentInterval","pagevisibile","initInterval","triggerCallback","getCurrentInterval","incrementInterval","resume","setCurrentInterval","stopTimer","onVisibilityHidden","onVisibilityVisible","onVisibilityChange","onWindowVisibilityChange","initVisibilityChangeHandling","initPageUnloadHandling","handleVisibilityChange","visibilityState","isPageVisible","newInterval","nextInterval","DISCUSSION_SINGLE_DIFF_FAILED","DIFF_FILE_HEADER","optionsDropdownTitle","fileReviewLabel","fileReviewTooltip","DIFF_FILE","tooLarge","blobView","editInFork","fork","autoCollapsed","autoCollapsedGenerated","expand","START_THREAD","SETTINGS_DROPDOWN","whitespace","fileByFile","preferences","CONFLICT_TEXT","both_modified","modified_source_removed_target","modified_target_removed_source","renamed_same_file","removed_source_renamed_target","removed_target_renamed_source","both_added","HIDE_COMMENTS","BUILDING_YOUR_MR","ERROR_LOADING_FULL_DIFF","ERROR_DISMISSING_SUGESTION_POPOVER","ENCODED_FILE_PATHS_TITLE","ENCODED_FILE_PATHS_MESSAGE","ClipboardButton","FileIcon","errorFn","errorLine","errorColumn","hasCode","collapseIcon","lineNum","userColorScheme","user_color_scheme","StackTraceEntry","old","isFirstEntry","context","abs_path","lineNo","function","colNo","SidebarColorPicker","labelCreateType","labelTitle","selectedColor","DEFAULT_LABEL_COLOR","labelCreateInProgress","disableCreate","suggestedColors","colorsMap","suggested_label_colors","attributePath","updateLabelsInCache","dataPath","workspaceLabelsQueries","collator","Collator","_get","compare","labelCreate","workspaceCreateLabelMutation","createLabel","TodoButton","isClassicSidebar","todoQueries","_data$workspace$issua","_currentUserTodos$","subscription","todoIdQuery","todoIdQueryVariables","_this$$apollo$queries","hasTodo","todoMutationType","tootltipTitle","todoLabel","isNotificationsTodosButtons","toggleTodo","todoMutations","queryProps","triggerSource","triggerElement","componentAttributes","isButtonTrigger","TRIGGER_ELEMENT_BUTTON","isWithEmojiTrigger","TRIGGER_ELEMENT_WITH_EMOJI","isDropdownWithEmojiTrigger","TRIGGER_ELEMENT_DROPDOWN_WITH_EMOJI","isDisclosureTrigger","TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN","openModal","handleDisclosureDropdownAction","textClass","BDropdownText","functional","role","endpointRE","SHA1RE","updateChangesTabCount","ZERO_CHANGES_ALT_DISPLAY","mrPath","diffId","endpointUrl","diff_id","getVersionInfo","issuableListTabs","titleTooltip","STATUS_ALL","mergeRequestListTabs","STATUS_MERGED","availableSortOptions","DEFAULT_SKELETON_COUNT","PAGE_SIZE_STORAGE_KEY","baseGetTag","isPlainObject","showText","workItemIconName","showTooltipOnHover","iconVariant","workItemTypeUppercase","_WORK_ITEMS_TYPE_MAP$2","workItemTooltipTitle","relatedIssuableMixin","isCondensed","removeButtonLabel","innerComponentType","computedLinkElementType","computedPath","hasTitle","hasState","removeDisabled","onRemoveRequest","IssueToken","inputId","pathIdSeparator","focusOnMount","autoCompleteSources","autoCompleteOptions","isInputFocused","isAutoCompleteOpen","areEventsAssigned","inputPlaceholder","allowAutoComplete","inputPlaceholderMapping","allowAutoCompleteText","setupAutoComplete","beforeUpdate","onAutoCompleteToggled","caretPos","rawRefs","touchedReference","untouchedRawRefs","isTouched","untouchedRawReferences","onBlur","relatedTarget","onFocus","gfmAutoComplete","onIssuableFormWrapperClick","badgePropertiesMap","STATUS_LOCKED","badgeProperties","ROOT_ACTION_EVENT_NAME_SHOW","PROPERTY","getTarget","reverse","getTriggerElement","setRole","oldProp","VBModal","inserted","Ue","Qt","Zt","defineProperties","er","getOwnPropertyDescriptors","Z","Le","Me","Oe","Be","C","T","D","L","E","N","M","z","R","W","O","throw","Int32Array","ae","Uint8Array","ee","F","ze","se","Xe","te","ie","X","q","ce","V","Qe","G","le","A","lt","ne","ue","protocol","Y","implementation","createHTMLDocument","head","J","fe","createElementNS","setAttributeNS","de","XMLSerializer","serializeToString","ut","toBlob","atob","ft","me","onabort","readAsArrayBuffer","dt","U","decoding","currentSrc","poster","once","baseVal","decode","originalSrc","ge","he","random","we","gt","it","timeEnd","ct","ht","Ge","pe","autoDestruct","w","g","workerUrl","workerNumber","debug","backgroundColor","maximumCanvasSize","requestInit","bypassingCache","fetchFn","drawImageInterval","onCloneNode","onEmbedNode","onCreateForeignObjectSvg","includeStyleProperties","__CONTEXT__","ownerWindow","dpi","svgStyleElement","ye","svgDefsElement","svgStyles","defaultComputedStyles","workers","Worker","onmessage","P","Q","$e","I","reject","onmessageerror","fontFamilies","fontCssTexts","acceptOfImage","requests","drawImageCount","tasks","isEnable","wt","createTextNode","pt","context2d","fillStyle","fillRect","yt","bt","St","be","sandbox","write","namespaceURI","Se","getPropertyPriority","Et","Ct","Ee","putImageData","xt","et","st","contentDocument","oe","Nt","srcset","currentTime","It","Ce","Te","rt","nt","currentParentNodeStyle","currentNodeStyle","translateSelf","Dt","ve","firstChild","assignedNodes","Pt","Ze","getAttributeNames","setProperty","At","Rt","Tt","tt","ot","vt","Ae","Ft","We","cause","H","requestType","imageDom","rawUrl","Ne","Ie","ke","Ut","$t","De","styleSheets","cssRules","Je","Bt","xe","Lt","insertRule","rule","Ye","parentStyleSheet","Mt","Ot","preferredFormat","jt","Re","Wt","Ke","Vt","Pe","Ht","K","B","He","fromCharCode","Fe","createContext","destroyContext","domToBlob","mt","domToCanvas","domToDataUrl","domToForeignObjectSvg","domToImage","domToJpeg","domToPixel","domToPng","domToSvg","domToWebp","loadMedia","waitUntilLoad","MR_SOURCE_BRANCH","isFallbackKey","organizeQueryObject","organizeQuery","legacySpacesDecode","objectToQuery","fallbackKey","Autosave","handleSubmit","draftRegex","usersSelect","zenMode","getSearchTerm","getFallbackKey","titleField","descriptionField","submitButton","draftCheck","autosaves","initDraft","$issuableDueDate","calendar","Pikaday","theme","dateString","toISODateFormat","dateText","firstDay","first_day_of_week","setDate","autosaveMap","addAutosave","autosaveItem","writeDraftStatus","readDraftStatus","isMarkedDraft","addDraft","removeDraft","IssuableFormEE","autoSaveMap","headerHeight","headerSticky","zIndex","styles","positionFromTop","maxHeight","footer","handleEscape","emitOpened","variantClass","shouldRenderFooter","lastTimer","install","_time","number","_timers","visible","_run","isSupported","_listen","_stop","_timed","_wasHidden","_stopRun","runNow","timer","runner","wasHidden","allowedTypes","WORK_ITEM_TYPE_VALUE_ISSUE","showConvertToTaskItem","convertToTask","eventPayload","deleteTaskListItem","startRange","startRow","isMenuOpen","groupedDefaultAwards","groupedAwards","thumbsup","thumbsdown","_groupBy","createAwardList","isAuthoredByMe","noteAuthorId","virtualScrollerItem","getAwardClassBindings","awardList","hasReactionByCurrentUser","getAwardListTitle","awardsList","currentUserIndex","TOOLTIP_NAME_COUNT","namesToShow","insertYou","remainingAwardList","listToShow","awardsListLength","sliced","handleAward","setIsMenuOpen","menuOpen","buttonSelector","fileSelector","btn","fileInput","validateImageName","validateFileFromAllowList","allowList","parts","ext","BFormRadio","findNoteObjectById","getQuickActionText","executedCommands","commandDescription","prepareDiffLines","gqClient","createGqClient","NO_CACHE","getters","updateIssueLockMutation","updateMergeRequestLockMutation","discussionLocked","issueSetLocked","mergeRequestSetLocked","expandDiscussion","collapseDiscussion","setNotesData","setNoteableData","setConfidentiality","setUserData","setLastFetchedAt","setInitialNotes","setTargetNoteHash","setNotesFetchedState","toggleAllDiscussions","allDiscussionsExpanded","fetchDiscussions","persistFilter","notes_filter","persist_filter","constants","perPage","fetchNotes","getFetchDiscussionsConfig","initPolling","isPollingInitialized","getNotesDataByProp","debouncedFetchUpdatedNotes","actionCable","subscriptions","channel","group_id","connected","received","fetchDiscussionsBatch","_config$params","nextConfig","updateDiscussion","setDiscussionSortDirection","setTimelineView","enabled","setSelectedCommentPosition","setSelectedCommentPositionHover","removeNote","isInMRPage","updateOrCreateNotes","notesById","base_discussion","currentlyFetchingDiscussions","discussionsPath","promoteCommentToTimelineEvent","addError","addGenericError","promoteTimelineEvent","_data$timelineEventPr","timelineEventPromoteFromNote","replyToDiscussion","createNewNote","removePlaceholderNotes","mutationType","closeIssuable","closePath","reopenIssuable","reopenPath","emitStateChangedEvent","toggleIssueLocalState","newState","saveNote","noteData","hasQuickActions","methodToDispatch","noteBody","isSystemNote","quick_actions_status","messages","command_names","commandNames","confidentialWidget","VARIANT_INFO","commands_changes","commandsChanges","emoji_award","emojiAward","spend_time","spendTime","time_estimate","timeEstimate","sidebarTimeTrackingEventHub","setFetchingState","fetchingState","fetchUpdatedNotes","notesPath","lastFetchedAt","getFetchDataParams","resp","_resp$notes","isResolvingDiscussion","last_fetched_at","pollSuccessCallBack","toggleAwardRequest","fetchDiscussionDiffLines","truncated_diff_lines_path","truncated_diff_lines","updateMergeRequestWidget","mrWidgetEventHub","setLoadingState","filterDiscussion","setCommentsDisabled","startTaskList","TaskList","dataType","onSuccess","updateResolvableDiscussionsCounts","submitSuggestion","Api","_err$response$data","defaultMessage","submitSuggestionBatch","suggestionIds","suggestionInfo","_err$response$data2","addSuggestionInfoToBatch","removeSuggestionInfoFromBatch","convertToDiscussion","removeConvertedDiscussion","setCurrentDiscussionId","fetchDescriptionVersion","startingVersion","requestUrl","start_version_id","descriptionVersion","requestDescriptionVersion","receiveDescriptionVersion","receiveDescriptionVersionError","softDeleteDescriptionVersion","requestDeleteDescriptionVersion","receiveDeleteDescriptionVersion","receiveDeleteDescriptionVersionError","updateAssignees","updateDiscussionPosition","updatedPosition","updateMergeRequestFilters","newFilters","collapseSystemNotes","lastDescriptionSystemNote","lastDescriptionSystemNoteIndex","currentNote","system","isDescriptionSystemNote","noteBeggining","noteEnd","descriptionNoteBegin","timeDifferenceMinutes","getTimeDifferenceMinutes","description_version_deleted","start_description_version_id","description_version_id","rootState","discussionsInState","_clone","filters","hidingFilters","_filter$systemNoteIco","_filter$noteType","_firstNote$author","_filter$noteText","_firstNote$author2","_firstNote$author3","system_note_icon_name","individual_note","hideActivity","mergeRequestFilters","isTimelineEnabled","transformedToIndividualNotes","getDraftComments","discussionSortOrder","convertedDisscussionIds","targetNoteHash","getNotesData","isNotesFetched","persistSortOrder","timelineEnabled","blocked_by_issues","userCanReply","can_create_note","badgeState","getUserData","getUserDataByProp","descriptionVersions","canUserAddIncidentTimelineEvents","_state$userData","merge_params","reverseNotes","isLastNote","getCurrentUserLastNote","_flattenDeep","getDiscussionLastNote","resolvableDiscussionsCount","showJumpToNextDiscussion","unresolvedDiscussionsIdsByDiff","unresolvedDiscussionsIdsByDate","resolvedDiscussionsById","allResolvableDiscussions","aDate","bDate","allState","authoritativeFiles","diffs","diff_file","authoritativeA","authoritativeB","aLines","bLines","resolvedDiscussionCount","resolvedMap","discussionTabCounter","unresolvedDiscussionsIdsOrdered","diffOrder","isLastUnresolvedDiscussion","idsOrdered","findUnresolvedDiscussionIdNeighbor","step","diffIds","dateIds","nextUnresolvedDiscussionId","previousUnresolvedDiscussionId","firstUnresolvedDiscussionId","getDiscussion","_n$suggestions","hasDrafts","rootGetters","getSuggestionsFilePaths","_discussion$diff_file","defaultConfig","currentFilter","doesHashExistInUrl","resolve_with_issue_path","diff_discussion","existingNote","noteObj","isPlaceholderNote","discussionsData","diffData","newDiscussion","oldDiscussion","existingDiscussion","fetchedAt","notesArr","placeholderType","hasEmojiAwardedByCurrentUser","award_emoji","forceExpanded","discussionIds","resolved_at","resolved_by","resolved_by_push","selectedDiscussion","disc","selectedCommentPosition","selectedCommentPositionHover","currentDiscussionId","isLoadingDescriptionVersion","doneFetchingBatchDiscussions","isPromoteCommentToTimelineEventInProgress","createState","preview_note_path","emitSidebarEvent","COMMENT_FORM","CommentFieldLayout","CommentTemperature","issuableStateMixin","glAbilitiesMixin","saveButtonTitle","updatedNoteBody","conflictWhileEditing","isMeasuringCommentTemperature","isUnresolving","onSaveHandler","isSubmittingWithKeydown","bodyPlaceholder","showBatchCommentsActions","showResolveDiscussionToggle","_this$discussion","_this$discussion2","_n$current_user","can_resolve_discussion","noteHash","diffParams","notable","previewSuggestions","preview_suggestions","isDisabled","isInternalNote","discussionNote","internal","can_receive_suggestion","changedCommentText","shouldDisableField","shouldMeasureNoteTemperature","isSlashCommand","glAbilities","measureCommentTemperature","updatePlaceholder","shouldToggleResolved","beforeSubmitDiscussionState","newResolvedState","editMyLastNote","lastNoteInDiscussion","shouldConfirm","_this$$refs$markdownE","_this$discussionNote","bodyPlaceholderInternal","handleKeySubmit","forceUpdate","handleAddToReview","runCommentTemperatureMeasurement","commentTemperature","shouldMeasureTemperature","editNoteForm","clickType","shouldResolve","hasEmailParticipants","issue_email_participants","Mutation","reorderIssues","serializedVariables","getIssuesQuery","issueToMove","GlDropdownText","issuableAttributesQueries","issuableAttributesState","widgetTitleText","currentAttribute","showWorkItemEpics","attributesList","isEpic","issuableAttributeQuery","iidStartsWith","groups","_data$workspace$attri","attributeTypeTitle","_this$currentAttribut","emptyPropsList","localizedAttribute","formatIssuableAttribute","kebab","_kebabCase","snake","_snakeCase","isAttributeChecked","attributeId","_this$currentAttribut2","_this$currentAttribut3","isAttributeOverdue","attribute","handleShow","setFocus","_this$$refs","updateAttribute","attrItem","toNounSeriesText","onlyCommas","nextItem","lastItem","firstItem","NoteableNote","draftCommands","autosaveDraftKey","scrollToDraft","mapMutations","setDraftEditing","publishNow","publishSingleDraft","handleEditing","draftId","handleNotEditing","handleMouseEnter","handleMouseLeave","deleteDraft","toggleResolveDiscussion","saveError","modalText","issuableTypeName","submitDisabled","_this$timeSpent","primaryProps","cancelProps","timeTrackingDocsPath","createTimelogModalId","CREATE_TIMELOG_MODAL_ID","resetModal","registerTimeSpent","_this$timeSpent2","updateWorkItemMutation","workItemUpdate","createTimelogMutation","getIssuableId","_data$timelogCreate","timelogCreate","getGraphQLEntityType","updateSpentAtDate","baseForOwn","setter","accumulator","Query","defaultPathSeparator","parseOptions","pathScorer","preparedQueryCache","scorer","process","platform","candidates","usePathScoring","prepareQuery","useExtensionBonus","pathSeparator","optCharRegEx","GlFormRadioGroup","RelatedIssuableInput","pendingReferences","hasError","itemAddFailureType","itemAddFailureMessage","autoCompleteIssues","linkedIssueType","linkedIssueTypes","addRelatedErrorMessage","transformedAutocompleteSources","_this$autoCompleteSou","_this$autoCompleteSou2","confidential_only","issuableCategoryHeaderText","issuableInputText","onPendingIssuableRemoveRequest","relatedIssuableInput","onAddIssuableFormInput","onAddIssuableFormBlur","taskListContainerSelector","updateHandler","onUpdate","errorMessages","taskListField","getTaskListTarget","disableNonMarkdownTaskListItems","updateInapplicableTaskListItems","disableTaskListItems","enableTaskListItems","patchData","update_task","line_number","line_source","setToArray","createSet","TooltipOnTruncate","severity","iconOnly","assigneeAlt","getSourceposRows","endRange","HYPHEN","COLON","endRow","convertDescriptionWithNewSort","descriptionLines","NEWLINE","startIndexOfList","newSourcePositions","listItem","getNewSourcePositions","lineIndex","bulletTaskListItemRegex","numericalTaskListItemRegex","codeMarkdownRegex","imageOrLinkMarkdownRegex","endIndex","firstLine","firstLineIndentation","trimStart","taskTitle","taskDescription","indentation","linesToDelete","reduceIndentation","currentLine","newDescription","extractTaskTitleAndDescription","TITLE_LENGTH_MAX","insertNextToTaskListItemText","paragraph","insertAdjacentElement","sortItemsByFrequencyAndLastAccess","itemA","itemB","frequency","lastAccessedOn","maxCount","frequentItems","FREQUENT_ITEMS","ELIGIBLE_FREQUENCY","updateItemAccess","contextItem","trackVisitsPath","shouldUpdate","FIFTEEN_MINUTES_IN_MS","trackContextAccess","storedItems","existingItemIndex","cachedItem","newItem","MAX_COUNT","ariaCurrent","formatAsyncCount","isValidNumber","numberToMetricPrefix","HTTP_STATUS_ABORTED","HTTP_STATUS_OK","HTTP_STATUS_CREATED","HTTP_STATUS_NO_CONTENT","HTTP_STATUS_BAD_REQUEST","HTTP_STATUS_UNAUTHORIZED","HTTP_STATUS_FORBIDDEN","HTTP_STATUS_NOT_FOUND","HTTP_STATUS_CONFLICT","HTTP_STATUS_GONE","HTTP_STATUS_PAYLOAD_TOO_LARGE","HTTP_STATUS_UNPROCESSABLE_ENTITY","HTTP_STATUS_TOO_MANY_REQUESTS","HTTP_STATUS_INTERNAL_SERVER_ERROR","successCodes","baseEach","isArrayLike","GlToggle","showViewRoadmapAction","isDropdownVisible","workItemRoadmapPathHref","viewOnARoadmap","shouldShowViewRoadmapAction","hideDropdown","HealthStatusDropdown","SidebarEditableItem","isUpdating","healthStatusQueries","healthStatusText","healthStatusTooltip","_this$issuable3","expandSidebar","updateHealthStatus","collapse","GENERIC_UNSUBMITTABLE_NETWORK","wiki","internalComment","startThread","startInternalThread","internalVisibility","discussionThatNeedsResolution","internalDiscussionThatNeedsResolution","internalDiscussion","actionButtonWithNote","actionButton","withNote","reopen","withoutNote","commentHelp","internalCommentHelp","addToReviewButton","saveThread","saveComment","startReview","addCommentNow","addThreadNow","EDITED_TEXT","actionWithAuthor","actionWithoutAuthor","UPDATE_COMMENT_FORM","defaultError","actionSecondary","showModal","selectedOption","bytesToMiB","BYTES_IN_KIB","bytesToGiB","numberToHumanSizeSplit","digits","locale","digitsOptions","minimumFractionDigits","maximumFractionDigits","formatNumberWithLocaleAndDigits","formatNumber","humanSize","uppercase","THOUSAND","MILLION","median","middle","sorted","firstY","lastY","formattedChangeInPercent","nonFiniteResult","isFinite","numberRegex","countFloatingPointDigits","decimal","integer","splitDecimalNumber","baseToString","castSlice","isRegExp","stringSize","stringToArray","reFlags","omission","separator","strLength","strSymbols","global","newEnd","trackToggleTimelineView","marked","markedBidi","markdownConfig","createNoteErrorMessages","_data$quick_actions_s","error_messages","updateNoteErrorMessage","_e$response","trimmedMessage","func","wait","later","callNow","remain","rtag","wtag","wclass","wstyle","pagemode","scrollelement","bench","totop","tobottom","onscroll","istable","itemcount","itemprops","changeProp","itemModeForceRender","newScrollelement","oldScrollelement","removeScrollListener","addScrollListener","keeps","delta","offsetAll","paddingTop","paddingBottom","varCache","varAverSize","varLastCalcIndex","getZone","setScrollTop","getVarOffset","calcstart","zone","forceRender","scrollHandler","onScroll","vsl","scrollelementRect","_elemRect","updateZone","param","fireEvent","overs","getVarOvers","shouldRenderNextZone","lastStart","$forceUpdate","low","middleOffset","high","nocache","getVarSize","slot","$children","$vnode","shm","getVarPaddingTop","getVarPaddingBottom","getVarAllHeight","updateVariable","allHeight","slots","hasPadding","renders","dbc","_this$delta","renderList","branchInMemoryButton","branchClipboardInstance","refInMemoryButton","refClipboardInstance","addAll","ISSUE_MR_CHANGE_ASSIGNEE","openSidebarDropdown","ISSUE_MR_CHANGE_MILESTONE","ISSUABLE_CHANGE_LABEL","editIssue","MR_COPY_SOURCE_BRANCH_NAME","copyBranchName","ISSUABLE_COPY_REF","copyIssuableRef","openDropdown","DEBOUNCE_DROPDOWN_DELAY","branchName","clipboardText","refButton","copiedRef","differenceBy","baseOrderBy","actionText","showSpinner","noteUrl","emailParticipant","isUsernameLinkHovered","authorHref","noteTimestampLink","isServiceDeskEmailParticipant","authorLinkClasses","hover","internalNoteTooltip","updateTargetNoteHash","$store","handleUsernameMouseEnter","authorNameLink","handleUsernameMouseLeave","isCommon","valuesLength","valuesIndex","stableSort","compareFn","_originalStopCallback","stopCallback","combo","paused","unpause","noteableTypeText","Task","KeyResult","Objective","lockedNoteableDocsPath","confidentialNoteableDocsPath","warningIcon","isLockedAndConfidential","confidentialContextText","lockedContextText","emails","moreParticipantsAvailable","moreLabel","showMoreParticipants","ATTACHMENT_REGEXP","attachmentWarning","confidentialAttachmentWarning","EmailParticipantsWarning","NoteableWarning","withAlertContainer","containsLink","hasWarningAbove","hasWarningBelow","showConfidentialAttachmentWarning","showAttachmentWarning","showEmailParticipantsWarning","emailParticipants","_this$noteableData$is","locked_discussion_docs_path","confidential_issues_docs_path","accordionId","defaultHeaderLevel","headerLevel","accordionSetId","autoCollapse","hideTextInSmallScreens","confidentialTooltip","confidentialityInfoText","confidentialTextClass","updateStoreAfterUploadDesign","designManagementUpload","designWidget","currentDesigns","designCollection","designs","_differenceBy","newDesigns","newVersionNode","findNewVersions","versions","findNewVersionsNodes","updatedDesigns","copyState","addNewDesignToStore","selectedDesigns","changedDesigns","designWidgetOf","deleteDesignsFromStore","addNewVersionToStore","currentDesign","notesCount","extractCurrentDiscussion","updateImageDiffNoteInStore","updateDesignsOnStoreAfterReorder","designManagementMove","moveDesignInStore","DRAG_DELAY","WORK_ITEM_DETAIL_MODAL_ID","modalTitle","WorkItemDetail","parentId","emits","updatedWorkItemIid","updatedWorkItemId","isModalShown","displayedWorkItemIid","displayedWorkItemId","deleteWorkItem","deleteWorkItemMutation","_data$workItemDelete$","workItemDelete","setErrorMessage","updateModal","onModalShow","locals","updateUrl","hasTaskListItemActions","initialUpdate","issueDetails","workItemTypes","namespaceWorkItemTypesQuery","taskWorkItemTypeId","_this$workItemTypes$f","WORK_ITEM_TYPE_VALUE_TASK","issueGid","oldDescription","convertTaskListItem","removeAllPointerEventListeners","taskListUpdateError","renderSortableLists","renderTaskListItemActions","_this$$el$querySelect","_this$$el","createDragIconElement","addPointerEventListeners","sprite_icons","elementSelector","pointeroverListener","pointeroutListener","pointerEventListeners","concatenatedEvents","_this$pointerEventLis","createTaskListItemActions","TaskListItemActions","createTask","_this$$el$querySelect2","_this$$el2","taskListItems","replaceAll","_this$issueDetails$it","_this$issueDetails$it2","_this$issueDetails$mi","_this$issueDetails$mi2","iterationInput","iterationWidget","iterationId","createWorkItemMutation","milestoneWidget","milestoneId","workItemCreate","addHierarchyChild","onClick","undoCreateTask","showAlert","I18N_WORK_ITEM_ERROR_CREATING","I18N_WORK_ITEM_ERROR_DELETING","showDrawer","closeDrawer","symbolProto","symbolValueOf","valueOf","isInactive","isOnImage","isNewNote","pinLabel","inactive","small","DEBOUNCE_DELAY","MAX_RECENT_TOKENS_SIZE","FILTER_NONE","FILTER_ANY","FILTER_CURRENT","FILTER_UPCOMING","FILTER_STARTED","FILTERS_NONE_ANY","OPERATOR_IS","OPERATOR_IS_TEXT","OPERATOR_NOT_TEXT","OPERATOR_OR_TEXT","OPERATOR_AFTER_TEXT","OPERATOR_BEFORE","OPERATOR_BEFORE_TEXT","OPERATORS_IS","OPERATORS_NOT","OPERATORS_OR","OPERATORS_AFTER","OPERATORS_BEFORE","OPERATORS_IS_NOT","OPERATORS_IS_NOT_OR","OPERATORS_AFTER_BEFORE","OPTION_NONE","OPTION_ANY","OPTION_CURRENT","OPTION_STARTED","OPTION_UPCOMING","OPTIONS_NONE_ANY","DEFAULT_MILESTONES","SORT_DIRECTION","TOKEN_EMPTY_SEARCH_TERM","TOKEN_TITLE_APPROVED_BY","TOKEN_TITLE_MERGE_USER","TOKEN_TITLE_APPROVER","TOKEN_TITLE_ASSIGNEE","TOKEN_TITLE_AUTHOR","TOKEN_TITLE_CONFIDENTIAL","TOKEN_TITLE_CONTACT","TOKEN_TITLE_DRAFT","TOKEN_TITLE_GROUP","TOKEN_TITLE_LABEL","TOKEN_TITLE_PROJECT","TOKEN_TITLE_MILESTONE","TOKEN_TITLE_MY_REACTION","TOKEN_TITLE_ORGANIZATION","TOKEN_TITLE_RELEASE","TOKEN_TITLE_REVIEWER","TOKEN_TITLE_SOURCE_BRANCH","TOKEN_TITLE_STATUS","TOKEN_TITLE_JOBS_RUNNER_TYPE","TOKEN_TITLE_TARGET_BRANCH","TOKEN_TITLE_TYPE","TOKEN_TITLE_VERSION","TOKEN_TITLE_SEARCH_WITHIN","TOKEN_TITLE_CREATED","TOKEN_TITLE_CLOSED","TOKEN_TITLE_DEPLOYED_BEFORE","TOKEN_TITLE_DEPLOYED_AFTER","TOKEN_TITLE_ASSIGNED_SEAT","TOKEN_TITLE_ENVIRONMENT","TOKEN_TYPE_APPROVER","TOKEN_TYPE_APPROVED_BY","TOKEN_TYPE_MERGE_USER","TOKEN_TYPE_CONTACT","TOKEN_TYPE_GROUP","TOKEN_TYPE_GROUP_INVITE","TOKEN_TYPE_ASSIGNED_SEAT","TOKEN_TYPE_PROJECT","TOKEN_TYPE_MY_REACTION","TOKEN_TYPE_ORGANIZATION","TOKEN_TYPE_SOURCE_BRANCH","TOKEN_TYPE_STATUS","TOKEN_TYPE_JOBS_RUNNER_TYPE","TOKEN_TYPE_TARGET_BRANCH","TOKEN_TYPE_VERSION","TOKEN_TYPE_SEARCH_WITHIN","TOKEN_TYPE_CREATED","TOKEN_TYPE_CLOSED","TOKEN_TYPE_DEPLOYED_BEFORE","TOKEN_TYPE_DEPLOYED_AFTER","TOKEN_TYPE_ENVIRONMENT","ENTITY_TYPES","USER","AUTHOR","GROUP","PROJECT","baseFindIndex","predicate","fromIndex","updateStatus","StatusBadge","initialState","fetchState","GlDropdownSectionHeader","SidebarDropdownWidget","IterationTitle","workspacePath","getCadenceTitle","currentIteration","_currentIteration$ite","attributeUrl","MUTATIONS","issueSetTimeEstimateMutation","mergeRequestSetTimeEstimateMutation","timeTracking","_this$timeTracking$ti","_this$timeTracking$hu","currentEstimate","humanTimeEstimate","isSaving","isResetting","resetDisabled","secondaryProps","setTimeEstimateModalId","SET_TIME_ESTIMATE_MODAL_ID","_this$timeTracking$ti2","_this$timeTracking$hu2","saveTimeEstimate","updateEstimatedTime","resetTimeEstimate","_data$issuableSetTime","issuableSetTimeEstimate","reRegExpChar","reHasRegExpChar","DiffStats","compareButtonLabel","fileModeTooltip","discussionPath","collapsible","addMergeRequestButtons","canCurrentUserFork","viewDiffsFileByFile","showLocalFileReviews","diffContentIDSelector","diffUrl","titleLink","submodule_tree_url","submodule_link","submoduleDiffCompareLinkText","submodule_compare","truncatedOldSha","old_sha","truncatedNewSha","new_sha","oldCommitId","newCommitId","deleted_file","isUsingLfs","external_storage","viewFileButtonText","truncatedContentSha","commitId","viewReplacedFileButtonText","truncatedBaseSha","gfmCopyText","isFileRenamed","isModeChanged","expandDiffToFullFileTitle","showEditButton","_this$diffFile$blob","readable_text","edit_path","ide_edit_path","isReviewable","reviewable","externalUrlLabel","formatted_external_url","labelToggleFile","showCommentButton","handleToggleFile","setFileForcedOpen","showForkMessage","can_modify_blob","handleFileNameClick","setCurrentFileHash","toggleReview","newReviewedStatus","reviewFile","setFileCollapsedByUser","old_path_html","new_path_html","external_url","view_path","replaced_view_path","is_fully_expanded","diffHasDiscussions","toggleFileDiscussionWrappers","diffHasExpandedDiscussions","toggleFullDiff","ITEM_CLASS","BLink","_this$item","_this$item2","_item$action","_this$item3","_this$item3$extraAttr","_this$item4","_this$item4$extraAttr","_this$item$wrapperCla","_this$item5","wrapperClass","keydown","isCustomContent","MouseEvent","_this$$refs$item","listIndex","wrapperListeners","itemComponent","componentIndex","exportText","dataTrackLabel","isIssue","issuableCountText","maximumFileSizeText","importIssuesText","uploadCsvFileText","mainText","maxFileSizeText","CsvExportModal","CsvImportModal","trackImportClick","exportAsCSV","importCSV","importFromJIRA","exportModalId","importModalId","renderGroup","clickEmoji","EmojiGroup","categoryTitle","humanize","categoryAppeared","emojiGroup","generateCategoryHeight","emojisLength","EMOJI_ROW_HEIGHT","CATEGORY_ROW_HEIGHT","savedEmojis","savedEmojisfromCookie","getCookie","cookieContent","removeCookie","swapCookieToLocalStorage","possibleEmojiNames","getEmojisForCategory","getAllEmoji","_chunk","frequently_used","getEmojiCategories","initEmojiMap","categories","FREQUENTLY_USED_KEY","EMOJIS_PER_ROW","newAcc","searchValue","filteredCategories","GlAnimatedSmileIcon","VirtualList","Category","EmojiList","dropdownClass","isVisible","isHovered","isFocused","currentCategory","categoryNames","CATEGORY_NAMES","hasFrequentlyUsedEmojis","custom","CATEGORY_ICON_MAP","newCustomEmoji","smileIcon","categoryName","virtualScoller","selectEmoji","addToFrequentlyUsed","onSearchInput","_findLastIndex","onButtonHovered","onButtonHoverLeave","onButtonFocused","onButtonFocusLeave","addReaction","scrollToCategory","categoryKey","ADD_NEW_DRAFT","DELETE_DRAFT","SET_BATCH_COMMENTS_DRAFTS","REQUEST_PUBLISH_DRAFT","RECEIVE_PUBLISH_DRAFT_SUCCESS","RECEIVE_PUBLISH_DRAFT_ERROR","REQUEST_PUBLISH_REVIEW","RECEIVE_PUBLISH_REVIEW_SUCCESS","RECEIVE_PUBLISH_REVIEW_ERROR","RECEIVE_DRAFT_UPDATE_SUCCESS","TOGGLE_RESOLVE_DISCUSSION","CLEAR_DRAFTS","SET_REVIEW_BAR_RENDERED","SET_DRAFT_EDITING","active_backdrop","active_textarea","storedStyle","enter","exit","backdrop","$dropzone","BLUR_KEYCODES","GitLabDropdownFilter","filterInputBlur","$inputContainer","$clearButton","filterRemoteDebounced","which","elIsInput","remote","searchText","results","tmp","onFilter","filterByText","GitLabDropdownInput","inputFieldName","GitLabDropdownRemote","dataEndpoint","execute","beforeSend","renderersByType","getPropertyWithDefault","getHighlightTextBuilder","highlight","highlightTemplate","highlightText","getIconTextBuilder","wrappedText","getOptionValue","renderRow","assignTextToLink","getLinkText","renderLink","trackSuggestionClickedLabel","trackAction","trackLabel","trackValue","trackProperty","slugify","createLink","checkSelected","renderer","getOptionRenderer","getRenderer","hideRow","shouldHide","SELECTABLE_CLASSES","mouseEventListenersAdded","mousedownTarget","mouseupTarget","GitLabDropdown","el1","updateLabel","shouldPropagate","noFilterInput","searchFields","toggleLoading","fullData","parseData","filterable","plainInput","addInput","filterRemote","$dropdownMenu","$relatedTarget","togglePage","selectable","rowClicked","selectedObj","isMarking","clicked","groupData","renderedData","noResults","renderItem","renderData","fullHtml","renderMenu","appendMenu","filteredFullData","resetRows","addArrowKeyEvent","hasFilterBulkUpdate","shouldRefreshOnOpen","hasMultiSelect","processData","contentHtml","showMenuAbove","positionMenuAbove","preserveContext","isIn","$possibleContainer","mousedownInsideDropdown","mouseupOutsideDropdown","removeArrowKeyEvent","clearMenu","containerSelector","highlightTextMatches","occurrences","character","groupName","selectedIndex","selectedObject","isInput","isSelectable","clearField","initialScrollTop","single","inputMeta","selectRowAtIndex","ARROW_KEY_CODES","$listItems","PREV_INDEX","currentKeyCode","highlightRowAtIndex","$listItem","$dropdownContent","dropdownScrollTop","dropdownContentHeight","dropdownContentTop","dropdownContentBottom","listItemHeight","listItemTop","listItemBottom","allowedFields","GlTable","statuses","formatter","convertToSentenceCase","splitCamelCase","thClass","_reduce","allowedItems","isAllowed","isValidLink","trackingLabel","discussionsRequireResolution","noteableDisplayName","isReviewDropdown","isNoteTypeComment","isNoteTypeDiscussion","dropdownCommentButtonTitle","dropdownStartThreadButtonTitle","commentButtonTitle","startDiscussionDescription","commentDescription","testid","handleClick","setNoteType","linkHref","imgCssWrapperClasses","popoverUserId","popoverUsername","shouldShowUsername","avatarTooltipText","LabelItem","allowMultiselect","localSelectedLabels","localSelectedLabelsIds","visibleLabels","showNoMatchingResultsMessage","shouldHighlightFirstItem","isLabelSelected","scrollIntoViewIfNeeded","highlightedLabel","labelsListContainer","updateSelectedLabels","handleLabelClick","onDropdownAppear","selectFirstItem","_event$target$parentN","isDropdownVariantSidebar","VARIANT_SIDEBAR","isDropdownVariantStandalone","VARIANT_STANDALONE","isDropdownVariantEmbedded","DropdownContentsLabelsView","DropdownContentsCreateView","DropdownHeader","DropdownFooter","dropdownContentsView","firstLabelName","remainingLabelCount","showDropdownFooter","isSidebar","setLabels","toggleDropdownContentsCreateView","toggleDropdownContent","_this$$refs$dropdown","$_popper","scheduleUpdate","handleDropdownHide","clearSearch","handleNewLabel","labelsFilterParam","sortedSelectedLabels","buildFilterUrl","basePath","filterParam","scopedLabel","isLabelLocked","lock_on_merge","showCloseButton","removeLabel","DropdownValue","DropdownContents","EmbeddedLabelsList","showEmbeddedLabelsList","contentIsOnViewport","labelsSelectInProgress","oldIid","sidebarExpandedOnClick","issuableLabelIds","isRealtimeEnabled","realtimeLabels","isLabelListEnabled","isLockOnMergeSupported","labelShortcutDescription","labelShortcutKey","labelTooltip","issuableLabelsQueries","issuableQuery","issuableLabelsSubscription","issuableLabelsUpdated","handleCollapsedValueClick","handleDropdownClose","getUpdateVariables","collapseEditableItem","_this$$refs$editable","dropdownContents","currentIid","updateVariables","operationMode","addLabelIds","removeLabelIds","_data$updateIssuableL","_data$updateIssuableL2","_data$updateIssuableL3","updateIssuableLabels","getRemoveVariables","removeVariables","showHelp","helpHref","showHelpState","newCveIdRequestUrl","currUrl","newUrl","toggleHelpState","groupIterationsQuery","shouldFetch","currentIterationId","_this$currentIteratio","iterationCadences","iterationCadencesListBoxItems","dropdownSelectedText","_this$currentIteratio2","dropdownHeaderText","setSearchTerm","_this$iterationCadenc","onDropdownShow","POLICIES_PATH","policyText","policyName","EscalationPolicyCollapsedState","EscalationPolicyHelpState","INDEX_PATH","EscalationPoliciesEmptyState","escalationsPossible","policiesPath","attributeTitle","healthStatusFormInput","handleChange","epicFormInput","SidebarDropdown","iterationFormInput","getIdForIteration","handleIterationSelect","IterationDropdown","onIterationSelect","CEMountSidebar","SidebarWeightWidget","mountSidebarWeightWidget","SidebarHealthStatusWidget","mountSidebarHealthStatusWidget","workItemEpics","mountSidebarEpicWidget","SidebarIterationWidget","mountSidebarIterationWidget","hasEscalationPolicies","SidebarEscalationPolicy","mountSidebarEscalationPolicy","CveIdRequest","mountSidebarCveIdRequest","isPromotionInProgress","handleButtonClick","deleteCommentLabel","ReplyButton","TimelineEventButton","UserAccessRoleBadge","resolvedStatusMixin","accessLevel","isAuthor","isContributor","showReply","canDelete","canResolve","canReportAsAbuse","shouldShowActionsDropdown","showDeleteAction","isUserAssigned","displayAssignUserText","canAssign","can_set_issue_metadata","displayAuthorBadgeText","displayMemberBadgeText","access","displayContributorBadgeText","resolveIcon","onEdit","onDelete","onResolve","onAbuse","onCopyUrl","handleAssigneeUpdate","assignUser","setAwardEmoji","attachment","toggleAwardPath","NoteEditedText","NoteAwardsList","NoteAttachment","NoteForm","DuoCodeReviewFeedback","batchFilePaths","filePaths","coAuthoredByTrailer","suggestionCommitMessage","file_paths","suggestions_count","files_count","co_authored_by","handleFormUpdate","formCancelHandler","note_html","user_type","composing","last_edited_at","last_edited_by","toggle_award_path","can_award_emoji","NoteHeader","NoteActions","NoteBody","discussionFile","showReplyButton","discussionRoot","isOverviewTab","shouldScrollToNote","isEditingLocal","isDeleting","isRequesting","_this$note$isEditing","commentType","classNameBindings","isTarget","_this$note$current_us","_this$note$current_us2","_this$note$current_us3","_this$note$current_us4","can_edit","commitLink","_this$note$current_us5","_this$note$position","startLineNumber","getStartLineNumber","endLineNumber","getEndLineNumber","showMultiLineComment","commentLineOptions","fileResolvedFromAvailableSource","getDiffFileByHash","isMRDiffView","_this$note$position2","isFileComment","_this$note$position3","editHandler","updateSuccess","oldContent","handleUpdateError","recoverNoteContent","secondaryBtnVariant","secondaryBtnText","hideCancel","getLineClasses","assigneesUpdate","external_author","noteable_note_url","human_access","is_contributor","is_noteable_author","project_name","deleteHandler","formUpdateHandler","getSentryData","updateErrorStatus","setStatus","redirectUrl","updateResolveStatus","updateIgnoreStatus","stackTracePoll","makeRequest","stacktraceData","stack_trace_entries","eTagPoll","search_term","searchQuery","sortField","issue_status","statusFilter","pagination","restartPolling","setIndexPath","loadRecentSearches","addRecentSearch","clearRecentSearches","searchByQuery","filterByStatus","sortByField","setEndpoint","fetchPaginatedResults","removeIgnoredResolvedErrors","indexPath","recentSearches","AccessorUtils","updating","updatingIgnoreStatus","updatingResolveStatus","errorStatus","createStore","modules","namespaced","listActions","listMutations","detailsActions","detailsMutations","detailsGetters","visibilityObserver","IntersectionObserver","intersectionRatio","offsetParent","disconnect","objectProto","objValue","srcValue","BDropdownHeader","_GlLoadingIcon$props$","getPrototypeOf","nn","rn","isFrozen","tn","en","Proxy","revocable","revoke","Reflect","for","getOwnPropertyNames","deleteProperty","setPrototypeOf","an","produceWithPatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","eventNamespace","pipelineStatus","hasPipeline","isMerged","hasAssignees","hasMilestone","itemPath","createdAtInWords","createdAtTimestamp","mergedAtTimestamp","mergedAtInWords","closedAtInWords","closedAtTimestamp","stateTimeInWords","namespacePrefix","isDiffDiscussion","normalizeChildren","registerLink","signInLink","startTagRegister","startTagSignIn","endRegisterTag","endSignInTag","ISSUE_REFERENCE","MAX_LIST_SIZE","PARAM_FIRST_PAGE_SIZE","PARAM_LAST_PAGE_SIZE","PARAM_PAGE_AFTER","PARAM_PAGE_BEFORE","PARAM_SORT","PARAM_STATE","ISSUES_VIEW_TYPE_KEY","ISSUES_LIST_VIEW_KEY","ISSUES_GRID_VIEW_KEY","CLOSED_MOVED","actionsLabel","closedMoved","confidentialNo","confidentialYes","errorFetchingCounts","errorFetchingIssues","issueRepositioningMessage","titles","descriptions","actionDetailText","editedAt","editedBy","GlClearIconButton","inputListeners","clearInput","nameId","GROUP_TOP_BORDER_CLASSES","HEADER_ITEMS_BORDER_CLASSES","GlListboxItem","GlListboxGroup","GlListboxSearchInput","multiple","isCheckCentered","searchable","searching","infiniteScroll","totalItems","infiniteScrollLoading","noResultsText","searchPlaceholder","resetButtonLabel","showSelectAllButtonLabel","srOnlyResultsLabel","selectedValues","listboxId","searchStr","topBoundaryVisible","bottomBoundaryVisible","hasItems","listboxTag","_this$flattenedOption","showNoResultsText","showSelectAllButton","toggleClasses","hasSelection","newSelected","observeScroll","_this$scrollObserver","scrollObserver","groupClasses","_this$selectedIndices","focusSearchInput","selectedIndices","isSearchInput","_this$$refs$list","searchBox","isSelected","onMultiSelect","onSingleSelect","selectedValue","_this$scrollObserver2","rootMargin","observer","_entry$target","$__visibilityProp","isIntersecting","topBoundary","bottomBoundary","listboxToggleText","toggleButtonClasses","headerId","onResetButtonClicked","onSelectAllButtonClicked","listboxClasses","itemTag","hasHeader","listboxItemMoreItemsAriaAttributes","onIntersectionObserverAppear","hasFooter","showNote","isSyntheticNote","showEdited","_this$noteId","_this$note","body_html","noteQuery","_data$note$last_edite","_result$errors","_result$data","NoteSignedOutWidget","DiscussionLockedWidget","CommentTypeDropdown","noteIsInternal","canCreateNote","canSetInternalNote","can_create_confidential_note","issueActionButtonTitle","openOrClose","actionButtonClassNames","canToggleIssueState","can_update","closedAndLocked","draftEndpoint","slugifyWithUnderscore","disableSubmitButton","convertToCamelCase","handleSaveError","handleSaveDraft","withIssueAction","diff_head_sha","saveNoteParams","discard","handleEnter","_badgeState$updateSta","editCurrentUserLastNote","lastNote","dismissError","information","selectFilter","slotKeys","watchQuery","CACHE_ONLY","subscribe","_res$data","SORT_OPTIONS","currentValue","displayFilters","selectedSortOption","sortStorageKey","mrTabs","toggleFilters","handleLocationHash","toggleCommentsForm","tab","fetchSortedDiscussions","isSortDropdownItemActive","sortDir","TimelineToggle","DiscussionFilter","AiSummarizeNotes","MrDiscussionFilter","mrFilter","aiLoading","showAiActions","summarizeComments","NotePreview","NotesActivityHeader","NoteableDiscussion","SystemNote","CommentForm","PlaceholderNote","PlaceholderSystemNote","SkeletonLoadingContainer","DiscussionFilterNote","OrderedLayout","SidebarSubscription","DraftNote","AiSummary","summarizeClientSubscriptionId","uuidv4","shouldShow","renderSkeleton","isInitialEventTriggered","sortDirDesc","previewNoteId","_this$targetNoteHash","skeletonNotes","prerenderedNotesCount","fill","isSkeletonNote","previewNote","isPreviewNote","canReply","isAppReady","checkLocationHash","isReady","_window$mrTabs","handleReviewTracking","handleHashChanged","ISSUABLE_COMMENT_OR_REPLY","quoteReply","getDiscussionInSelection","rangeCount","getRangeAt","startContainer","Node","TEXT_NODE","discussionEl","selectionToGfm","showReplyForm","replyInMainEditor","commentForm","discussionIsIndividualNoteAndNotConverted","startReplying","setAiLoading","noteFormStartReview","noteFormAddToReview","autoSaveKey","systemNote","assigneesQueries","getIssueAssignees","issuableAssigneesSubscription","updateIssueAssigneesMutation","getMergeRequestAssignees","updateMergeRequestAssigneesMutation","getAlertAssignees","updateAlertAssigneesMutation","issueParticipantsQuery","getMergeRequestParticipants","epicParticipantsQuery","userAutocompleteQuery","userAutocompleteWithMRPermissionsQuery","issueConfidentialQuery","updateIssueConfidentialMutation","epicConfidentialQuery","updateEpicConfidentialMutation","testCaseConfidentialQuery","updateTestCaseConfidentialMutation","referenceQueries","mergeRequestReferenceQuery","epicReferenceQuery","projectLabelsQuery","groupLabelsQuery","abuseReport","abuseReportLabelsQuery","createGroupOrProjectLabelMutation","createAbuseReportLabelMutation","issueLabelsQuery","updateIssueLabelsMutation","mutationName","mergeRequestLabelsQuery","updateMergeRequestLabelsMutation","epicLabelsQuery","updateEpicLabelsMutation","updateTestCaseLabelsMutation","subscribedQueries","issueSubscribedQuery","updateIssueSubscriptionMutation","epicSubscribedQuery","mergeRequestSubscribed","updateMergeRequestSubscriptionMutation","timeTrackingQueries","issueTimeTrackingQuery","mergeRequestTimeTrackingQuery","dueDateQueries","issueDueDateQuery","updateIssueDueDateMutation","issuableDatesUpdatedSubscription","epicDueDateQuery","updateEpicDueDateMutation","startDateQueries","epicStartDateQuery","updateEpicStartDateMutation","getIssueTimelogsQuery","getMrTimelogsQuery","issuableMilestoneQueries","projectIssueMilestoneQuery","projectIssueMilestoneMutation","mergeRequestMilestone","mergeRequestMilestoneMutation","milestonesQueries","groupMilestonesQuery","projectMilestonesQuery","epicTodoQuery","issueTodoQuery","mergeRequestTodoQuery","mergeRequestTodoSubscription","todoCreateMutation","todoMarkDoneMutation","escalationStatusQuery","getEscalationStatusQuery","escalationStatusMutation","updateEscalationStatusMutation","seenIndex","TEMPLATE_REGEX","toCamelCase","templateString","_template2","letter","thisTag","stopTag","isDropDownParts","DropDown","initTemplateString","clickEvent","addSelectedClass","listEvent","removeSelectedClasses","closeDropdown","addData","renderChildren","setImagesSrc","droplab_hidden","Hook","HookButton","addPlugins","buttonEvent","restoreInitialState","removePlugins","HookInput","mousedown","keyup","hasRemovedEvents","inputEvent","mouseEvent","keyEvent","Keyboard","currentKey","isUpArrow","isDownArrow","removeHighlight","itemElements","selectItem","currentItem","filterDropdownEl","filterDropdownBottom","elOffsetTop","setMenuForArrows","ready","queuedData","loadStatic","dropdownTriggers","addHooks","applyArgs","methodName","processAddData","processSetData","documentClicked","closestUl","changeHookList","availableTrigger","aHook","dropdownActive","addHook","availableHook","availableList","Element","HookObject","setConfig","fireReady","readyEvent","baseIsMap","nodeIsMap","confidentialBodyText","confidentialIcon","tooltipLabel","confidentialityOnWarning","confidentialityOffWarning","toggleButtonText","warningMessage","isTestCase","isIssueOrTestCase","permissions","commentText","hideDropdownEvent","SidebarConfidentialityContent","SidebarConfidentialityForm","WEIGHT_TOKEN_SUGGESTIONS_SIZE","DEFAULT_ITERATIONS","DEFAULT_CADENCES","DEFAULT_HEALTH_STATUSES","HEALTH_SUGGESTIONS","RelatedIssuesService","fetchRelatedIssues","addRelatedIssues","newIssueReferences","issuable_references","link_type","move_before_id","move_after_id","RelatedIssuesBlock","canReorder","RelatedIssuesStore","findRelatedIssueById","relatedIssues","onRelatedIssueRemoveRequest","idToRemove","deletedId","issueToRemove","relationPath","setRelatedIssues","issuables","onToggleAddRelatedIssuesForm","onPendingIssueRemoveRequest","indexToRemove","removePendingRelatedIssue","onPendingFormSubmit","processAllReferences","setPendingReferences","onPendingFormCancel","saveIssueOrder","beforeId","afterId","issueToReorder","saveOrder","updateIssueOrder","addPendingReferences","formatInput","rawReferences","getNotesWidgetFromSourceData","_draftData$workspace","updateNotesWidgetDataInDraftData","notesWidget","noteWidgetIndex","updateCacheAfterCreatingNote","currentNotes","_subscriptionData$dat","workItemNoteCreated","newNote","updateCacheAfterDeletingNote","_subscriptionData$dat2","workItemNoteDeleted","deletedNote","lastDiscussionNote","discussionIndex","deletedThreadDiscussion","deletedThreadIndex","updateNoteAwardEmojiCache","updateCacheAfterAddingAwardEmojiToNote","updateCacheAfterRemovingAwardEmojiFromNote","atIndex","queryArgs","hasChildren","addHierarchyChildren","newChildren","existingChildren","childrenToAdd","updateParent","_draftState$workspace","updateWorkItemCurrentTodosWidget","WIDGET_TYPE_CURRENT_USER_TODOS","setNewWorkItemCache","workItemTypeIconName","_gon","_draftData$workspace2","_draftData$workspace3","_draftData$workspace4","_gon2","_gon3","_gon4","_gon5","_gon6","workItemAttributesWrapperOrder","WIDGET_TYPE_COLOR","WIDGET_TYPE_PARTICIPANTS","WIDGET_TYPE_CRM_CONTACTS","workItemTitleCase","convertEachWordToTitleCase","availableWidgets","baseURL","getBaseURL","WIDGET_TYPE_DESCRIPTION","lastEditedAt","lastEditedBy","assigneesWidgetData","definition","allowsMultipleAssignees","canInviteMembers","labelsWidgetData","weightWidgetData","rolledUpCompletedWeight","isFixed","textColor","hasParent","depthLimitReachedByType","issuesListApolloProvider","cacheProvider","getStorageDraftString","draftDataWidgetTypes","_map","freshWidgetTypes","draftWidgetsAreSameAsCacheDigits","isValidDraftData","archived","createNoteEmail","current_user_avatar_url","setWorkItemMetadata","adminWorkItemLink","markNoteAsInternal","optimisticUserPermissions","updateCountsForParent","isClosing","workItemByIdQuery","updatedParent","countsByState","currentGroupName","selectedGroupFullPath","namespaceGroupsForLinksWidgetQuery","groupSearch","filteredGroups","searchMatchesGroup","descendantGroups","groupsLoading","selectedGroup","WorkItemTokenInput","WorkItemProjectsListbox","WorkItemGroupsListbox","parentConfidential","parentIteration","parentMilestone","parentWorkItemType","isInputValid","childToCreateTitle","submitInProgress","workItemChildIsEpic","childrenTypeValue","workItemInput","_this$search","childWorkItemType","parentMilestoneId","associateIteration","parentIterationId","isCreateForm","addOrCreateButtonLabel","I18N_WORK_ITEM_CREATE_BUTTON_LABEL","I18N_WORK_ITEM_ADD_MULTIPLE_BUTTON_LABEL","I18N_WORK_ITEM_ADD_BUTTON_LABEL","confidentialityCheckboxLabel","I18N_WORK_ITEM_CONFIDENTIALITY_CHECKBOX_LABEL","confidentialityCheckboxTooltip","I18N_WORK_ITEM_CONFIDENTIALITY_CHECKBOX_TOOLTIP","showConfidentialityTooltip","addOrCreateMethod","createChild","addChild","_this$parentIteration","_this$parentMilestone","canCreateGroupLevelWorkItems","createGroupLevelWorkItems","hasSuppliedNewItemName","hasSelectedProject","canSubmitForm","invalidWorkItemsToAdd","areWorkItemsToAddWithinLimit","showWorkItemsToAddInvalidMessage","workItemsToAddInvalidMessage","invalidWorkItemsList","MAX_WORK_ITEMS","getConfidentialityTooltipTarget","_this$$refs$confident","confidentialityCheckbox","markFormSubmitInProgress","updateWorkItemHierarchyMutation","_data$workItemUpdate","addChildErrorMessage","_data$workItemCreate","createChildErrorMessage","titleInputLabel","projectInputLabel","groupInputLabel","titleInputPlaceholder","projectInputPlaceholder","groupInputPlaceholder","titleInputValidationMessage","maxItemsErrorMessage","I18N_MAX_WORK_ITEMS_ERROR_MESSAGE","groupValidationMessage","projectValidationMessage","svgPath","svgHeight","primaryButtonLink","secondaryButtonLink","compact","invertInDarkMode","contentClass","shouldPreventImageReflow","contentClasses","coreChars","countDir","getCharCodes","getExtension","opt_char_re","truncatedUpperCase","_arg","core","depth","upper","tokensValidator","GlToken","registerFocusOnToken","viewOnly","showClearAllButton","bindFocusEvent","focusedTokenIndex","_this$$refs$tokens","tokenRef","tokenId","focusOnToken","focusLastToken","focusPrevToken","focusFirstToken","focusNextToken","focusedToken","tokenIndex","handleLeftArrow","handleRightArrow","handleHome","handleEnd","handleTab","handleTokenFocus","handleClose","inputText","userDefinedTokenCanBeAdded","componentId","registerDropdownEventHandlers","registerResetFocusedDropdownItem","focusedDropdownItemIndex","dropdownLength","focusedLastDropdownItem","focusedUserDefinedToken","userDefinedToken","oldValue","dropdownItemRef","getDropdownItemRef","handleUpArrow","handleDownArrow","handleHomeKey","handleEndKey","resetFocusedDropdownItem","focusedDropdownItem","focusPrevDropdownItem","focusNextDropdownItem","focusFirstDropdownItem","focusLastDropdownItem","_this$$refs$dropdownI","dropdownItemIdAttribute","dropdownItemIsFocused","handleDropdownItemClick","handleMousedown","GlTokenContainer","GlTokenSelectorDropdown","allowUserDefinedTokens","showAddNewAlways","hideDropdownWithNoItems","containerClass","autocomplete","ariaLabelledby","selectedTokens","allowClearAll","inputFocused","dropdownIsOpen","triggerTokenFocusNextBackspace","rootElClasses","dropdownEventHandlers","filteredDropdownItems","dropdownHasNoItems","hasSelectedTokens","_event$relatedTarget","_event$relatedTarget$","addToken","textInput","selectedToken","stateClass","handleContainerClick","removeToken","cancelTokenFocus","clearAll","handleBackspace","handleInputClick","sensitiveDataPatterns","patPrefix","pat_prefix","defaultContentType","documentationHref","promptMessage","helpString","formatMessage","findings","patternName","matchedString","redactedString","inputString","redactLength","redactString","sensitiveTokens","containsSensitiveToken","modalHtmlMessage","confirmed","confirmSensitiveAction","projectsFetchPath","dropdownButtonTitle","dropdownHeaderTitle","moveInProgress","projectsList","selectedProjects","fetchProjects","triggerSearch","name_with_namespace","handleProjectSelect","handleMoveClick","baseInverter","toIteratee","hasSelectedDesigns","buttonCategory","buttonClass","buttonSize","GlResizeObserver","GlResizeObserverDirective","boundary","truncateTarget","tooltipDisabled","updateTooltip","updateTooltipDebounced","selectTarget","_isFunction","hasHorizontalOverflow","getObserver","$_gl_intersectionHandler","$_gl_intersectionObserver","designUploadOptimisticResponse","sha","skippedDesigns","moveDesignOptimisticResponse","JIRA_IMPORT_SUCCESS_ALERT_HIDE_MAP_KEY","debounceWait","dropdownLabel","previousImportsMessage","tableConfig","userMappingMessage","userMappingsPageSize","cachedParsedData","parsedData","initial","BORDER_CLASSES","bordered","borderPosition","_this$group","showHeader","borderClass","groupLabeledBy","IssueMilestone","IssueAssignees","CiIcon","IssueWeight","IssueDueDate","isReportDrawerOpen","timeInWords","isModifierKey","openReportAbuseDrawer","iconElement","resolvedText","lastUpdatedBy","lastUpdatedAt","linkStart","discussion_path","commitDisplay","isForCommit","linkEnd","toggleDiscussionHandler","FIRST_CHAR_REGEX","DiffFileHeader","DiffViewer","ImageDiffOverlay","diffMode","diffViewerMode","_this$discussion$diff","fileDiffRefs","isTextFile","hasTruncatedDiffLines","_this$discussion$posi","isFileDiscussion","backfilledDiffFile","fetchDiff","trimChar","userColorSchemeClass","ResolveDiscussionButton","ResolveWithIssueButton","resolveWithIssuePath","shouldShowJumpToNextDiscussion","resolvableNotes","userCanResolveDiscussion","_note$current_user","DiscussionNotesRepliesWrapper","diffLine","shouldGroupReplies","hasReplies","isDiscussionInternal","_this$discussion$note","componentName","componentData","DiffDiscussionHeader","DiscussionNotes","DiscussionActions","diffLineNoteFormMixin","renderDiffFile","alwaysExpanded","discussionsByDiffOrder","newNotePath","shouldRenderDiffs","DiffWithNote","wrapperComponentProps","shouldHideDiscussionBody","canShowReplyActions","_this$discussion$orig","_this$discussion$orig2","discussionHolderClass","onStartReplying","noteForm","cancelReplyForm","replyData","showReplies","draftForDiscussion","saveReply","toggleAriaLabel","isCollapsible","headerClass","titleClass","bodyClass","persistCollapsedState","getLocalStorageKeyName","isContentVisible","toggleIcon","ariaExpandedAttr","displayedCount","isFormUsedAndVisible","toggleCollapse","getSymbols","CreateLabelDropdown","$dropdownBack","$newLabelField","$newColorField","$colorPreview","$addList","$newLabelError","$newLabelErrorContent","$newLabelCreateButton","$colorSuggestions","addListDefault","cleanBinding","addBinding","$this","addColorValue","enableLabelCreateButton","updateColorPreview","updateColorPickerPreview","resetForm","saveLabel","previewColor","newLabel","addNewList","$els","$dropdown","$dropdownContainer","issueUpdateURL","showNo","showAny","defaultLabel","abilityName","$form","$sidebarCollapsedValue","$value","$loading","initialSelected","scopedLabels","saveLabelData","label_ids","labelCount","getLabelTemplate","enableScopedLabels","toRemoveIds","initDeprecatedJQueryDropdown","labelUrl","extraData","isAny","colorEl","removesAll","indeterminate","dropdownValue","linkEl","selectedLayoutClasses","listItemEl","$dropdownParent","$dropdownInputField","firstLabel","isIssueIndex","isMRIndex","Issuable","filterResults","enableBulkLabelDropdown","setDropdownData","tplData","linkOpenTag","labelTemplate","labelTextClass","escapeStr","text_color","scopedLabelTemplate","tooltipTitleTemplate","rightLabelTextClass","onSelectCheckboxIssue","isDescriptionVersionExpanded","deleteInProgress","canSeeDescriptionVersion","description_diff_path","displayDeleteButton","can_delete_description_version","shouldShowDescriptionVersion","descriptionVersionToggleIcon","toggleDescriptionVersion","_this$descriptionVers","deleteDescriptionVersion","delete_description_version_path","ICON_COLORS","check","deleteButtonLabel","descriptionVersionHistoryMixin","showLines","loadingDiff","isAllowedIcon","isTargetNote","actionTextHtml","unwrap","hasMoreCommits","singleLineDescription","deleteButtonClasses","iconBgClass","systemNoteIconName","outdated_line_change_path","toggleDiff","I18N","errorMsg","noIncidents","createIncidentBtnLabel","unPublished","noEscalationStatus","emptyState","emptyClosedTabTitle","cannotCreateIncidentDescription","INCIDENT_STATUS_TABS","ESCALATION_STATUSES","TH_CREATED_AT_TEST_ID","TH_SEVERITY_TEST_ID","TH_ESCALATION_STATUS_TEST_ID","TH_INCIDENT_SLA_TEST_ID","TH_PUBLISHED_TEST_ID","INCIDENT_DETAILS_PATH","trackIncidentCreateNewOptions","trackIncidentListViewsOptions","notificationCallback","intervalHeader","timeoutID","canPoll","checkConditions","pollInterval","clipboardTooltipText","clipboardProps","tooltipBoundary","clipboardTooltip","loadingIconLabel","templateText","isTodo","isIconButton","incrementGlobalTodoCount","decrementGlobalTodoCount","getFileReviewsKey","isFileReviewed","reviews","fileReviews","reviewStatuses","getReviewsForMergeRequest","reviewsForMr","setReviewsForMergeRequest","markFileReview","usableReviews","updatedReviews","updateSidebarClasses","layoutPage","rightSidebar","windowSize","sidebar","isMR","$document","sidebarCollapseClicked","onSidebarDropdownHidden","sidebarToggleClicked","contentRect","triggered","$toggleButtons","$collapseIcon","$expandIcon","$toggleContainer","blockOrName","getBlock","setCollapseAfterUpdate","sidebarDropdownHidden","triggerOpenSidebar","PROJECT_SELECT_LABEL_ID","SEARCH_DELAY","VALID_TOKEN_BACKGROUND","WARNING_TOKEN_BACKGROUND","INVALID_TOKEN_BACKGROUND","TOAST_MESSAGE_LOCALSTORAGE_KEY","MEMBERS_WITH_QUEUED_STATUS_LOCALSTORAGE_KEY","GROUP_FILTERS","DESCENDANT_GROUPS","USERS_FILTER_ALL","USERS_FILTER_SAML_PROVIDER_ID","TOP_NAV_INVITE_MEMBERS_COMPONENT","INVITE_MEMBER_MODAL_TRACKING_CATEGORY","IMPORT_PROJECT_MEMBERS_MODAL_TRACKING_CATEGORY","IMPORT_PROJECT_MEMBERS_MODAL_TRACKING_LABEL","MEMBERS_MODAL_DEFAULT_TITLE","MEMBERS_MODAL_CELEBRATE_TITLE","MEMBERS_MODAL_CELEBRATE_INTRO","MEMBERS_TO_GROUP_DEFAULT_INTRO_TEXT","MEMBERS_TO_PROJECT_DEFAULT_INTRO_TEXT","MEMBERS_TO_PROJECT_CELEBRATE_INTRO_TEXT","MEMBERS_SEARCH_FIELD","MEMBERS_PLACEHOLDER","GROUP_MODAL_DEFAULT_TITLE","GROUP_MODAL_TO_GROUP_DEFAULT_INTRO_TEXT","GROUP_MODAL_TO_PROJECT_DEFAULT_INTRO_TEXT","GROUP_MODAL_TO_GROUP_ALERT_BODY","GROUP_MODAL_TO_GROUP_ALERT_LINK","GROUP_MODAL_TO_PROJECT_ALERT_BODY","GROUP_MODAL_TO_PROJECT_ALERT_LINK","GROUP_SEARCH_FIELD","GROUP_PLACEHOLDER","ACCESS_LEVEL","ACCESS_EXPIRE_DATE","TOAST_MESSAGE_SUCCESSFUL","QUEUED_MESSAGE_SUCCESSFUL","INVALID_FEEDBACK_MESSAGE_DEFAULT","READ_MORE_TEXT","READ_MORE_ACCESS_EXPIRATION_TEXT","INVITE_BUTTON_TEXT","INVITE_BUTTON_TEXT_DISABLED","CANCEL_BUTTON_TEXT","HEADER_CLOSE_LABEL","MEMBER_ERROR_LIST_TEXT","COLLAPSED_ERRORS","EXPANDED_ERRORS","EMPTY_INVITES_ALERT_TEXT","MEMBER_MODAL_LABELS","celebrate","intro","toGroup","introText","toProject","searchField","placeHolder","toastMessageSuccessful","memberErrorListText","collapsedErrors","expandedErrors","emptyInvitesAlertText","GROUP_MODAL_LABELS","notificationText","notificationLink","ON_SHOW_TRACK_LABEL","ON_CELEBRATION_TRACK_LABEL","WARNING_ALERT_TITLE","DANGER_ALERT_TITLE","REACHED_LIMIT_VARIANT","CLOSE_TO_LIMIT_VARIANT","REACHED_LIMIT_UPGRADE_SUGGESTION_MESSAGE","CLOSE_TO_LIMIT_MESSAGE","BLOCKED_SEAT_OVERAGES_BODY","BLOCKED_SEAT_OVERAGES_CTA","BLOCKED_SEAT_OVERAGES_CTA_DOCS","BLOCKED_SEAT_OVERAGES_ERROR_REASON","IssuableTemplateSelector","wrapper","$filenameInput","dropdownIcon","loadingIcon","initDropdown","listenForFilenameInput","renderMatchedDropdown","initAutosizeUpdateEvent","onDropdownClicked","fetchFileTemplate","autosizeUpdateEvent","requestFile","setEditorContent","skipFocus","urlParams","getEditorContent","startLoadingSpinner","stopLoadingSpinner","titleInput","templateWarningEl","warnTemplateOverride","initialQuery","setToggleText","setInputValueToTemplateContent","previousSelectedIndex","overridingTemplate","setSelectedIndex","currentTemplate","issuable_template","isContentUnchanged","projectTemplate","source_template_project_id","_this2$currentTemplat","initEditor","readFileAsDataURL","reader","Participants","fetchingError","SidebarParticipants","showStatusText","showTooltip","useLink","componentType","_this$status","_this$status2","detailsPath","details_path","borderless","clearButtonTitle","focusin","onFocusin","focusout","onFocusout","_this$$refs$input","_this$$refs$clearButt","clearButton","isInputOrClearButton","inputAttributes","showClearButton","SeverityToken","initialSeverity","severitiesList","updateSeverity","updateIssuableSeverity","issueSetSeverity","ShortcutsWorkItem","replyWithSelectedText","handleMarkdownFieldFocus","lastFocusedReplyField","shortcutSelector","editBtn","refSelector","gfmSelector","replyField","isElementVisible","foundMessage","originalNodes","blockquoteEl","uuid","help","labelPosition","isVerticalLayout","shouldRenderDescription","shouldRenderHelp","isChecked","helpId","toggleFeature","selectedProjectValue","_this$selectedProject","_this$selectedProject2","listboxItems","selectProject","Dropdown","createBtn","warningText","namespaceFullPath","normalizeProjectData","path_with_namespace","namespaceFullpath","projectForks","with_merge_requests_enabled","min_access_level","privateForkSelected","noForks","forkTheProject","readMore","getExtensionScore","scorePath","fullPathScore","alpha","basePathScore","basePos","extAdjust","fileLength","candidate","startPos","endPos","maxDepth","matched","IMPORT_STATE","FAILED","FINISHED","NONE","SCHEDULED","STARTED","extractJiraProjectsOptions","calculateJiraImportLabelColor","_labels$find","mostRecentJiraProjectKey","jiraProjectKey","jiraProjectImportCount","calculateJiraImportLabelTitle","importStatus","finishedAlertHideMap","scoped","splitScopedLabelIndex","textColorVariant","light","labelComponent","scopedKey","scopedValue","onClose","tooltipTarget","SidebarStore","initSingleton","timeTrackingLimitToHours","humanTimeSpent","autocompleteProjects","moveToProjectId","projectEmailsEnabled","subscribeDisabledDescription","subscribed","changing","setAssigneeData","setReviewerData","resetChanging","setTimeTrackingData","total_time_spent","human_time_estimate","humanTotalTimeSpent","human_total_time_spent","addAssignee","findAssignee","reviewer","findReviewer","updateAssignee","stateKey","updateReviewer","overwrite","removeAssignee","removeAllAssignees","setAssigneesFromRealtime","setAutocompleteProjects","setSubscribedState","setMoveToProjectId","buttonId","shouldShowConfirmationPopover","editAriaLabel","editKeyshortcuts","editButtonText","editTooltipText","editAriaLabelText","editKeyshortcutsText","collapseWhenOffClick","collapseOnEscape","emitEvent","timeDifference","standardDateFormat","formattedDate","issueDueDate","dateFormat","today","getDayDifference","asDateWithoutYear","TRANSITION_PROPS","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","TRANSITION_HANDLERS","afterEnter","leave","afterLeave","appear","BVCollapse","ROOT_EVENT_NAME_ACCORDION","modelMixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","accordion","BCollapse","transitioning","emitState","listenOnRoot","handleToggleEvent","handleAccordionEvent","safeId","emitSync","emitOnRoot","openedId","openAccordion","isThis","$content","classObject","normalizeSlot","slotScope","onEnter","onAfterEnter","onLeave","onAfterLeave","semverRegex","noSpacesRegex","containsPotentialRegex","addedLines","removedLines","diffsCount","diffFilesLength","filesText","isCompareVersionsHeader","hasDiffFiles","_isNumber","notDiffable","fileStats","CLONE_DEEP_FLAG","lastId","onVisible","support","afterPrerendering","_doc","webkitHidden","webkitVisibilityState","_change","_init","attachEvent","encodeReserveRE","encodeReserveReplacer","commaRE","encode","castQueryParamValue","parseQuery","stringifyQuery","val2","trailingSlashRE","createRoute","record","redirectedFrom","route","getFullPath","formatMatch","START","_stringifyQuery","isSameRoute","onlyPath","isObjectEqual","aKeys","bKeys","aVal","bVal","handleRouteEntered","cbs","enteredCbs","i$1","_isBeingDestroyed","View","routerView","_routerViewCache","_routerRoot","vnodeData","_directInactive","_inactive","routerViewDepth","cachedComponent","configProps","fillPropsinData","registerRouteInstance","vm","prepatch","componentInstance","propsToPass","resolveProps","resolvePath","relative","segments","segment","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","tokensToFunction","tokensToFunction_1","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","defaultDelimiter","escaped","modifier","asterisk","partial","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","pretty","attachKeys","sensitive","strict","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","compile","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","_normalized","params$1","rawPath","parsedPath","hashIndex","queryIndex","parsePath","extraQuery","_parseQuery","parsedQuery","resolveQuery","_Vue","Link","exact","exactPath","activeClass","exactActiveClass","ariaCurrentValue","this$1$1","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","queryIncludes","isIncludedRoute","guardEvent","scopedSlot","$hasNormal","navigate","isExactActive","findAnchor","isStatic","aData","handler$1","event$1","aAttrs","inBrowser","createRouteMap","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","compileRouteRegex","redirect","childMatchAs","aliasRoute","createMatcher","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","aliasedMatch","aliasedRecord","addRoute","parentOrRoute","getRoutes","addRoutes","Time","performance","genStateKey","getStateKey","setStateKey","positionStore","setupScroll","history","scrollRestoration","protocolAndPath","absolutePath","stateCopy","replaceState","handlePopState","handleScroll","isPop","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","saveScrollPosition","pageXOffset","isValidPosition","isNumber","normalizePosition","hashStartsWithNumberRE","docRect","getElementPosition","ua","supportsPushState","pushState","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","propertiesToLog","createNavigationCancelledError","_isRouter","isNavigationFailure","errorType","runQueue","queue","resolveAsyncComponents","hasAsync","pending","flatMapComponents","cid","resolvedDef","hasSymbol","comp","flatten","called","History","baseEl","normalizeBase","readyCbs","readyErrorCbs","errorCbs","extractGuards","records","guards","extractGuard","bindGuard","listen","onReady","errorCb","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","afterHooks","lastRouteIndex","lastCurrentIndex","activated","deactivated","resolveQueue","extractLeaveGuards","beforeHooks","extractUpdateHooks","createNavigationAbortedError","bindEnterGuard","extractEnterGuards","resolveHooks","setupListeners","teardown","cleanupListener","HTML5History","_startLocation","getLocation","__proto__","expectScroll","supportsScroll","handleRoutingEvent","fromRoute","getCurrentLocation","pathLowerCase","baseLowerCase","HashHistory","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","apps","prototypeAccessors","routeOrError","handleInitialScroll","_route","beforeEach","registerHook","beforeResolve","afterEach","back","forward","getMatchedComponents","createHref","normalizedTo","VueRouter$1","installed","isDef","registerInstance","callVal","_parentVnode","beforeCreate","_router","util","defineReactive","strats","optionMergeStrategies","START_LOCATION","issuableAssigneesUpdated","handleFetchResult","UncollapsedAssigneeList","signedIn","assigneesText","emptyUsers","InviteMembersTrigger","assigneesWidget","assignTo","IssuableAssignees","SidebarInviteMembers","SidebarAssigneesRealtime","UserSelect","directlyInviteMembers","initialAssignees","isSettingAssignees","oldSelected","_node$mergeRequestInt","shouldEnableRealtime","assigneeText","isAssigneesLoading","assigneeShortcutDescription","assigneeShortcutKey","assigneeTooltip","assigneeUsernames","issuableSetAssignees","saveAssignees","usernames","collapseWidget","expandWidget","userSelect","showError","setDirtyState","mark","getEntriesByName","measure","baseIsRegExp","nodeIsRegExp","reHasUnicodeWord","GitLabDropdownInstance","hasWorkItemParent","_data$workspace3","setParentData","skipRealTimeWorkItemParentUpdates","_response$data$issuab","issuableSetAttribute","slotData","selectedReviewers","setReviewersMutation","reviewerUsernames","updateReviewers","userPermissionsQuery","UpdateReviewers","visibleReviewers","fetchedUsers","currentSelectedReviewers","mappedUsers","selectedReviewersToShow","mapUser","gqlUser","debouncedFetchAutocompleteUsers","fetchAutocompleteUsers","secondaryText","shownDropdown","selectReviewer","Component","$destroy","baseProperty","getSymbolsIn","isDrop","fromRight","hasDate","resetText","SidebarFormattedDate","dateType","dateIsFixed","fixed","hasFixedDate","formattedFixedDate","noDate","formattedInheritedDate","inherited","SidebarInheritDate","canInherit","minDate","maxDate","dateQueries","skipIssueDueDateSubscription","dateLabel","removeDateLabel","removeStartDate","removeDueDate","dateValue","parsedDate","dataTestId","epicDatePopoverEl","epicDatePopover","openDatePicker","datePicker","setFixedDate","issuableSetDate","dateHelpValidMessage","dateHelpUrl","GlAnimatedChevronRightDownIcon","GlCollapseToggle","titleVisible","accordionItemId","headerComponent","handleColorClick","validColor","getColorCode","getColorName","getStyle","pick","transports","sources","wormhole","trackInstances","transport","passengers","_transport$order","newTransport","$_getTransportIndex","newTransports","registerTarget","unregisterTarget","$delete","registerSource","unregisterSource","hasTarget","hasSource","hasContentFor","_id","Portal","slotProps","sendUpdate","closer","normalizeSlots","normalizeOwnChildren","slotContent","Tag","PortalTarget","transition","firstRender","ownTransports","temp","newPassengers","combinePassengers","noWrapper","_id$1","portalProps","targetProps","bail","mountTo","targetSlim","targetSlotProps","targetTag","$props","portalTarget","mountEl","_props","Vue$$1","portalName","portalTargetName","MountingPortalName","Wormhole","dataView","buffer","byteOffset","byteLength","Vector","x1","y1","neq","gte","lte","mul","scalar","sub","toSize","vector","stringToUInt32","char","pngFile","pngImage","fileToPngImage","pixelsPerInch","physPosition","phys","getPixelsPerInch","ihdrPosition","ihdr","domElementToBlob","disableLabels","labelsList","labelsString","labelFilterUrl","lockOnMerge","handleCollapsedClick","INLINE_DIFF_VIEW_TYPE","PARALLEL_DIFF_VIEW_TYPE","DIFF_VIEW_COOKIE_NAME","DIFF_WHITESPACE_COOKIE_NAME","UNFOLD_COUNT","COUNT_OF_AVATARS_IN_GUTTER","LENGTH_OF_AVATAR_TOOLTIP","MR_TREE_SHOW_KEY","TREE_TYPE","TREE_LIST_STORAGE_KEY","TREE_LIST_WIDTH_STORAGE_KEY","INITIAL_TREE_WIDTH","MIN_TREE_WIDTH","TREE_HIDE_STATS_WIDTH","OLD_LINE_KEY","NEW_LINE_KEY","TYPE_KEY","MAX_RENDERING_DIFF_LINES","MAX_RENDERING_BULK_ROWS","MIN_RENDERING_MS","START_RENDERING_INDEX","DIFF_COMPARE_BASE_VERSION_INDEX","DIFF_COMPARE_HEAD_VERSION_INDEX","ALERT_OVERFLOW_HIDDEN","ALERT_MERGE_CONFLICT","ALERT_COLLAPSED_FILES","STATE_IDLING","STATE_LOADING","STATE_ERRORED","TRANSITION_LOAD_START","TRANSITION_LOAD_ERROR","TRANSITION_LOAD_SUCCEED","TRANSITION_ACKNOWLEDGE_ERROR","RENAMED_DIFF_TRANSITIONS","EVT_MR_DIFF_GENERATED","EVT_MR_PREPARED","EVT_EXPAND_ALL_FILES","EVT_DISCUSSIONS_ASSIGNED","EVT_PERF_MARK_FILE_TREE_START","EVT_PERF_MARK_FILE_TREE_END","EVT_PERF_MARK_DIFF_FILES_START","EVT_PERF_MARK_FIRST_DIFF_FILE_SHOWN","EVT_PERF_MARK_DIFF_FILES_END","DEFER_DURATION","TRACKING_CAP_KEY","TRACKING_CAP_LENGTH","TRACKING_CLICK_DIFF_VIEW_SETTING","TRACKING_DIFF_VIEW_INLINE","TRACKING_DIFF_VIEW_PARALLEL","TRACKING_CLICK_FILE_BROWSER_SETTING","TRACKING_FILE_BROWSER_TREE","TRACKING_FILE_BROWSER_LIST","TRACKING_CLICK_WHITESPACE_SETTING","TRACKING_WHITESPACE_SHOW","TRACKING_WHITESPACE_HIDE","TRACKING_CLICK_SINGLE_FILE_SETTING","TRACKING_SINGLE_FILE_MODE","TRACKING_MULTIPLE_FILES_MODE","SAST_FINDING_DISMISSED","cardHeader","justified","pills","tabs","BNav","notDisabled","BVTabButton","getBvTabs","controls","noKeyNav","posInSet","setSize","localActive","titleItemClass","titleLinkClass","titleLinkAttributes","$link","bvTabs","activeNavItemClass","tabindex","navProps","activeTabClass","navClass","navWrapperClass","noFade","noNavStyle","BTabs","registeredTabs","$tab","activateTab","previousTab","nextTab","updateTabs","$_observer","setObserver","childList","subtree","attributeFilter","$tabs","getTabs","buttons","$btn","$button","getButtonForTab","tabEvent","vueTarget","emitTabClick","focusButton","math","firstTab","lastTab","$activeTab","$fallbackTab","$buttons","controlledBy","clickTab","$nav","$empty","validatorHelper","actionTertiary","syncActiveTabWithQueryParams","queryParamName","syncActiveTabFromQueryParams","buttonBinding","queryParamValue","getQueryParamValue","tabIndexToActivate","getTabQueryParamValue","bTabs","currentQueryParamValue","newQueryParamValue","setQueryParamValueIfNecessary","secondary","tertiary","getStatusLabel","_STATUS_LABELS$status","removeRelatedIssue","updatedIssue","CollapsedAssignee","hasMoreThanOneAssignee","hasMoreThanTwoAssignees","allAssigneesCanMerge","sidebarAvatarCounter","collapsedUsers","collapsedLength","tooltipTitleMergeStatus","mergeLength","_u$mergeRequestIntera","usersLength","maxRender","renderUsers","allUsers","generateCollapsedAssigneeTooltip","tooltipOptions","CopyableField","issueEmailAddress","STATUS_LIST","statusSubtexts","currentStatusLabel","EscalationStatus","escalationPoliciesEnabled","escalationPolicies","escalationStatus","closeSidebar","issueSetEscalationStatus","noMilestone","placeholderMilestone","canAdminMilestone","milestoneTitle","projectMilestonesPath","footerItemText","IssuableMoveDropdown","selectedIssuables","cannotMoveTasksWarningTitle","tasksSelected","testCasesSelected","issuesSelected","incidentsSelected","handleIssuableChecked","moveIssues","targetProject","iids","issueData","promises","moveIssue","promisesResult","foundError","promiseResult","_promiseResult$data$i","issueMove","refetchQueries","include","getIssuesCountQuery","moveIssueMutation","moveIssueInput","targetProjectPath","defaultDropdownText","handleReset","IssuableTimeTracker","canAddTimeEntries","canSetTimeEstimate","listenForQuickActions","quickActionListened","changedCommands","crmDocsLink","DOCS_URL_IN_EE_DIR","groupIssuesPath","getIssueCrmContactsQuery","customerRelationsContacts","issueCrmContactsSubscription","issueCrmContactsUpdated","shouldShowContacts","_this$contacts","contactsLabel","contactCount","_this$contacts2","shouldShowPopover","popOverData","_contact$organization","organization","phone","getIssuesPath","contactId","ProjectSelect","titleInProgress","moveErrorMessage","_data$issueMove","projectsAutocompleteEndpoint","dropdownOptions","sidebarOptEl","mountSidebarReviewers","multipleApprovalRulesAvailable","SidebarReviewers","isInIssuePage","isInDesignPage","reviewersInputEl","SidebarReviewersInputs","reviewerDropdown","userDropdown","trackShowInviteMemberLink","MilestoneDropdown","mountSidebarLabelsWidget","LabelsSelectWidget","projectIssuesPath","isInIncidentPage","MoveIssuesButton","StatusDropdown","SubscriptionsDropdown","ConfidentialityDropdown","mountMoveIssueButton","MoveIssueButton","assigneeIdsInput","selectedUserName","onSelectedUnassigned","onSelected","SidebarTodoWidget","mountSidebarTodoWidget","SidebarAssigneesWidget","CollapsedAssigneeList","mountSidebarAssigneesWidget","CrmContacts","mountSidebarCrmContacts","mountSidebarMilestoneWidget","SidebarDueDateWidget","mountSidebarDueDateWidget","SidebarReferenceWidget","mountSidebarReferenceWidget","mountIssuableLockForm","SidebarParticipantsWidget","mountSidebarParticipantsWidget","mountSidebarSubscriptionsWidget","CopyEmailToClipboard","mountCopyEmailToClipboard","canCreateTimelogs","SidebarTimeTracking","mountSidebarTimeTracking","SidebarSeverityWidget","mountSidebarSeverityWidget","SidebarEscalationStatus","mountSidebarEscalationStatus","Translate","projectArchivedWarning","lockedIssueWarning","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsModifier","rsEmoji","reUnicodeWord","uncurryThis","stringSlice","createMethod","CONVERT_TO_STRING","second","codeAt","listLinkType","heading","addDraggingCursor","reordered","getBeforeAfterId","itemEl","prevItemEl","nextItemEl","orderingId","removeDraggingCursor","issuableOrderingId","epicIssueId","lockIssueRemoval","AddIssuableForm","RelatedIssuesList","hasRelatedIssues","categorisedIssues","shouldShowTokenBody","headerTextDisplay","addButtonTextDisplay","helpLinkText","addIssuableButtonText","hasHelpPath","issuableTypeIcon","emptyItemsPremium","emptyItemsFree","relatedIssuesWidget","handleFormSubmit","handleFormCancel","AJAX_USERS_SELECT_PARAMS_MAP","todo_filter","todo_state_filter","author_id","states","ACTIVE_AND_BLOCKED_USER_STATES","containerClasses","pronouns","hasPronouns","reLatin","reComboMark","baseWhile","basenameMatch","computeMatch","mergeMatches","baseMatches","matchIndex","matchPos","matchPositions","output","strPos","tagClass","tagClose","tagOpen","ai","bj","out","backtrack","trace","baseIntersection","castArrayLikeObject","intersection","mapped","MODEL_EVENT_NAME_ACTIVE","noBody","BTab","_isTab","fade","activate","deactivate","registerTab","updateButton","hasNormalizedSlot","unregisterTab","deactivateTab","tabClasses","computedLazy","computedNoFade","linkClass","internalNote","renderedNote","internalNoteClass","isEpicAttribute","issuableParent","_this$glFeatures","epicWidgetEditConfirmation","hasCurrentAttribute","hasEpic","shouldSkipRealTimeEpicLinkUpdates","selectedTitle","_this$issuableParent","attributeTypeIcon","_this$glFeatures2","_this$currentAttribut4","_data$issuableSetAttr","handlePopoverClose","popover","handlePopoverConfirm","handleEditConfirmation","isLocalStorageAvailable","restore","saveAction","$autosave","fallbackText","originalValue","triggerInputEvents","changeEvent","getSavedLockVersion","getFocusableOptions","_this$$refs$resultsLi","resultsList","HOME_KEY","END_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","ESC_KEY","NUMPAD_ENTER_KEY","_event$target","_clamp","LIST_LINE_HEAD_PATTERN","HR_PATTERN","compositioningNoteText","addBlockTags","blockTag","lineAfterSelection","linesFromSelection","setNewSelectionRange","lineStart","firstLineChange","totalChanged","newStart","getEditorSelectionRange","sel","startColumn","endColumn","editorSelectionStart","editorSelectionEnd","lastNewLine","textToInsert","removedLastNewLine","removedFirstNewLine","currentLineEmpty","selectionRange","selectedSplit","isBeginning","startChar","lastLine","rangeWithBlockTags","Range","editorBlockTagText","lineBefore","lineBeforeSelection","blockTagText","replaceSelectedText","insertText","positionBetweenTags","startPosition","endPosition","selectWithinSelection","moveCursor","$textArea","selectedText","handleContinueList","markdown_automatic_lists","selectedLines","firstSelectedLine","listLineMatch","leader","isOl","emptyListItem","prefixLength","itemToInsert","nextLineMatch","_nextLineMatch$groups","nextIndent","nextIsOl","numStr","postfix","incrementBy","continueOlText","keypressNoteText","_$$atwho","_$","markdown_surround_selection","handleSurroundSelectedText","compositionStartNoteText","compositionEndNoteText","updateTextForToolbarBtn","$toolbarBtn","shiftedLines","totalAdded","indentLines","totalRemoved","removedFromFirstline","removedFromLine","outdentLines","Shortcuts","initMarkdownEditorShortcuts","addEditorMarkdownListeners","mdTag","mdBlock","mdPrepend","mdSelect","getSelectedText","removeMarkdownEditorShortcuts","selectedLine","lineSelectionStart","preExlm","postClose","_content$match","numBackticks","showComparisonState","showSpentOnlyState","showEstimateOnlyState","showNoTimeTrackingState","timeSpentHumanReadable","timeEstimateHumanReadable","divClass","spanClass","timeTrackedTooltipText","GlProgressBar","parsedTimeRemaining","diffSeconds","timeRemainingHumanReadable","timeRemainingTooltip","timeRemainingMinutes","timeRemainingPercent","timeRemainingStatusClass","progressBarVariant","noTimeTrackingText","estimatedOnlyText","TimeTrackingCollapsedState","TimeTrackingSpentOnlyPane","TimeTrackingComparisonPane","TimeTrackingReport","CreateTimelogForm","SetTimeEstimateForm","initialTimeTracking","showCollapsed","issuableTimeTracking","isTimeTrackingInfoLoading","_this$$apollo","_this$timeTracking","_this$timeTracking2","_this$timeTracking3","_this$timeTracking4","hasTotalTimeSpent","hasTimeEstimate","isTimeReportSupported","timeEstimateTooltip","refresh","openRegisterTimeSpentModal","BV_SHOW_MODAL","comparer","GlAnimatedNotificationIcon","showInDropdown","emailsDisabled","_data$workspace4","parentIsGroup","notificationTooltip","labelOn","labelOff","notificationIcon","canSubscribe","setSubscribed","subscribedState","updateIssuableSubscription","toggleSubscribed","notifications","showGlobalToast","Q_ISSUE_SUB_COMMANDS","dev","Q_MERGE_REQUEST_SUB_COMMANDS","fix","Q_MERGE_REQUEST_CAN_SUGGEST_SUB_COMMANDS","Iterations","GfmAutoCompleteEE","defaultCallbacks","setupAutoCompleteEpics","setupAutoCompleteIterations","setupAutoCompleteVulnerabilities","getQSubCommands","SidebarService","endpointMap","moveIssueEndpoint","getProjectsAutocomplete","move_to_project_id","reviewerRereviewMutation","assignYourself","selectedIds","suggestedSelectedIds","suggested","reviewer_ids","suggested_reviewer_ids","processFetchedData","fetchAutocompleteProjects","LOCAL_MOUSETRAP_DATA_KEY","getToolbarBtnToShortcutsMap","$textarea","$allToolbarBtns","keyboardShortcuts","extensions","onToggleHelp","helpModalElement","helpModalVueInstance","TOGGLE_KEYBOARD_SHORTCUTS_DIALOG","START_SEARCH_PROJECT_FILE","focusSearchFile","START_SEARCH","FOCUS_FILTER_BAR","focusFilter","TOGGLE_PERFORMANCE_BAR","onTogglePerfBar","HIDE_APPEARING_CONTENT","hideAppearingContent","TOGGLE_CANARY","onToggleCanary","GO_TO_YOUR_TODO_LIST","findAndFollowLink","GO_TO_ACTIVITY_FEED","GO_TO_YOUR_ISSUES","GO_TO_YOUR_MERGE_REQUESTS","GO_TO_YOUR_REVIEW_REQUESTS","GO_TO_YOUR_PROJECTS","GO_TO_YOUR_GROUPS","GO_TO_MILESTONE_LIST","GO_TO_YOUR_SNIPPETS","TOGGLE_MARKDOWN_PREVIEW","toggleMarkdownPreview","addStopCallback","toggleFindAndReplaceBar","disableShortcuts","addExtension","Extension","extensionsCurrentlyLoading","Dep","_Extension$dependenci","dependencies","commandsAndCallbacks","commandAndCallback","ShortcutsHelp","refreshCurrentPage","expires","triggerHandler","_document$querySelect","_document$querySelect2","_document$querySelect3","FIND_FILE_SHORTCUT_CLICK","waitForElement","toolbarBtnToShortcutsMap","localMousetrap","allShortcuts","_flatten","originalStopCallback","formClass","BDropdownForm","WorkItemLinkChildContents","hasIndirectChildren","isTopLevel","draggedItemType","showTaskWeight","allowedChildrenByType","activeChildItemId","isLoadingChildren","childItemId","isExpandedHierarchyTreeChildQuery","_data$isExpandedHiera","_data$isExpandedHiera2","isExpandedHierarchyTreeChild","shouldExpandChildren","nrOpenChildren","isItemOpen","chevronType","chevronTooltip","childItemClass","allowedChildTypes","_this$allowedChildren","draggedItemTypeIsAllowed","showChildrenDropzone","displayableChildren","toggleItem","toggleHierarchyTreeChildMutation","WorkItemLinkChild","prefetchedWorkItem","updateInProgress","currentClientX","currentClientY","childrenWorkItems","toParent","dragCancelled","treeRootWrapper","Draggable","treeRootOptions","disableList","apolloClient","handleDocumentKeyup","handleKeyUp","undoChildRemoval","addWorkItemQuery","addSmartQuery","prefetchWorkItem","WORK_ITEM_TYPE_VALUE_OBJECTIVE","prefetch","clearPrefetching","getReorderParams","relativePosition","adjacentWorkItemId","toParentId","_this$childrenWorkIte","fetchChildren","handleDragOnStart","childType","toggleTimer","fromParentId","toParentTitle","parentTitle","targetItem","hierarchyWidgetParams","updatedChildren","toParentHasChildren","_cloneDeep","getMoveItemParams","currentPageSize","moveWorkItem","workItemsHierarchyReorder","parentWorkItem","relatedContext","handleDragOnEnd","updateNewWorkItemCache","_newData$workspace","rolledUpDates","crmContacts","nodePath","_set","updateWidget","dates","updateDatesWidget","typeDefs","cacheConfig","typePolicies","isShowingLabels","currentState","selectedBoardItems","boardList","epicBoardList","toReference","DesignManagement","WorkItemDescriptionTemplateConnection","Project","projectMembers","WorkItemWidgetNotes","WorkItemWidgetAwardEmoji","WorkItemWidgetProgress","DescriptionVersion","startVersionId","WorkItemWidgetHierarchy","WorkItem","existingWidget","_incomingWidget$child","incomingWidget","MemberInterfaceConnection","Group","ProjectConnection","GroupConnection","MergeRequestApprovalState","WorkItemType","updateIssueState","setActiveBoardItem","boardItem","listId","activeBoardItemQuery","activeBoardItem","setSelectedBoardItems","selectedBoardItemsQuery","unsetSelectedBoardItems","_variables","setError","errorQuery","boardsAppError","clientToggleListCollapsed","clientToggleEpicListCollapsed","setIsShowingLabels","isShowingLabelsQuery","updateNewWorkItem","localWorkItemBulkUpdate","updatedIssueCount","workItemBulkEdit","toggleHierarchyTreeChild","installedModules","__webpack_require__","moduleId","getter","ns","defined","TO_STRING","that","unicode","anObject","ignoreCase","multiline","sticky","$at","iterated","point","$export","$defineProperty","createDesc","redefine","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","arg2","forceStringMethod","strfn","rxfn","cof","TAG","ARG","tryGet","callee","SRC","$toString","TPL","inspectSource","safe","isFunction","uid","USE_SYMBOL","searchString","LIBRARY","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","returnThis","Base","NAME","Constructor","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","toObject","$keys","dP","IObject","ArrayProto","stat","bitmap","SAFE_CLOSING","riter","skipClosing","MATCH","re1","re2","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","IE_PROTO","ObjectProto","isArrayIter","toLength","createProperty","getIterFn","arrayLike","aLen","mapfn","mapping","iterFn","copyright","shared","__e","toIObject","toAbsoluteIndex","IS_INCLUDES","own","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","classof","builtinExec","px","IS_WRAP","virtual","$includes","TO_STRING_TAG","DOMIterables","Collection","__g","getIteratorMethod","getIterator","getKeys","Properties","IE8_DOM_DEFINE","toPrimitive","Attributes","descriptor","gOPS","pIE","$assign","isEnum","isIterable","aFunction","UNSCOPABLES","dPs","enumBugKeys","Empty","createDict","iframeDocument","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","$replace","maybeCallNative","replaceValue","rx","functionalReplace","fullUnicode","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","ch","addToUnscopables","Arguments","__webpack_exports__","insertNodeAt","removeNode","F_source_vuedraggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1__","F_source_vuedraggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1___default","fatherNode","refNode","$Object","arrayIndexOf","$startsWith","setPublicPath_i","currentScript","object_assign","assign_default","keys_default","is_array","is_array_default","get_iterator","get_iterator_default","_slicedToArray","_arrayWithHoles","_arr","_n","_iterableToArrayLimit","_nonIterableRest","from_default","is_iterable","is_iterable_default","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","helper","evtName","evtData","delegateAndEmit","realList","isTransitionName","getSlot","eventsListened","eventsToEmit","readonlyProperties","draggingElement","draggableComponent","noTransitionOnDrag","original","transitionMode","noneFunctionalComponentMode","vuedraggable_isTransition","_computeChildrenAndOf","headerOffset","footerOffset","computeChildrenAndOffsets","propName","buildAttribute","componentDataAttrs","getComponentAttributes","getIsFunctional","optionsAdded","elt","onDragMove","_sortable","rootContainer","computeIndexes","newOptionValue","updateOptions","fnOptions","_vnode","getChildrenNodes","rawNodes","visibleIndexes","isTransition","elmFromNodes","footerIndex","rawIndexes","ind","_computeIndexes","getUnderlyingVm","htmlElt","vnodes","computeVmIndex","getUnderlyingPotencialDraggableComponent","__vue__","_componentTag","emitChanges","alterList","onList","spliceList","_arguments","getRelatedContextFromMoveEvent","destination","getVmIndex","domIndex","indexes","numberIndexes","getComponent","resetTransitionData","transitionContainer","kept","onDragStart","_underlying_vm_","onDragAdd","onDragRemove","removed","onDragUpdate","updateProperty","propertyName","computeFutureIndex","domChildren","currentDOMIndex","draggedContext","futureIndex","onDragEnd","vuedraggable","kebabCase","keyboard_shortcuts_enabled","assigneesDisplayLimit","workItemAssignees","_findWidget","workItemMilestone","_findWidget2","fullReference","directNamespaceReference","WorkItemRelationshipPopoverMetadata","workItemIteration","workItemStartDate","_findWidget3","workItemDueDate","_findWidget4","_this$workItemIterati","_this$workItemIterati2","iterationInfo","linkedWorkItems","workItemWebUrl","defaultDisplayLimit","atLinkedItemsDisplayLimit","displayedIssuablesCount","moreItemsText","linkedItemsToDisplay","moreItemsLink","WorkItemRelationshipPopover","childItemLinkedItems","workItemLinkedItemsQuery","itemsBlockedBy","itemsBlocks","itemsBlockedByIconId","itemsBlocksIconId","blockedByLabel","itemCount","blocksLabel","childBlockedByItems","childBlocksItems","imageViewMode","twoup","swipe","onion","DownloadViewer","oldPath","pixeliseValue","ImageViewer","onionMaxWidth","onionMaxHeight","onionOldImgInfo","onionNewImgInfo","onionDraggerPos","onionOpacity","dragging","onionMaxPixelWidth","onionMaxPixelHeight","onionDraggerPixelPos","stopDrag","dragMove","pageX","dragTrack","dragTrackWidth","dragger","leftValue","startDrag","prepareOnionSkin","onionNewImgLoaded","imgInfo","onionOldImgLoaded","opacity","swipeOldImgInfo","swipeNewImgInfo","swipeMaxWidth","swipeMaxHeight","swipeBarPos","swipeWrapWidth","swipeMaxPixelWidth","swipeMaxPixelHeight","swipeWrapPixelWidth","swipeBarPixelPos","swipeFrame","prepareSwipe","swipeNewImgLoaded","swipeOldImgLoaded","newSize","oldSize","imageViewComponent","TwoUpViewer","SwipeViewer","OnionSkinViewer","isNew","isRenamed","imagePath","changeMode","newMode","aMode","bMode","outputText","uiText","showLink","loadError","shortSha","canLoadFullDiff","alternate_viewer","switchToFull","transitionState","switchToFullDiffFromRenamedFile","transitionEvent","clickLink","newSha","oldSha","RenamedFile","ModeChanged","ImageDiffViewer","DownloadDiffViewer","fullOldPath","fullNewPath","issuableIterationQueries","projectIssueIterationQuery","projectIssueIterationMutation","iterationsQueries","issuableEpicQueries","projectIssueEpicQuery","projectIssueEpicMutation","epicsQueries","groupEpicsQuery","parentsQueries","workItemParentsQuery","issuableEscalationPolicyQueries","issueEscalationPolicyQuery","issueEscalationPolicyMutation","escalationPoliciesQueries","projectEscalationPoliciesQuery","parentQueries","workItemParent","updateWorkItemParent","issuableAttributesQueriesFoss","issuableEpicSubscription","workItemParentSubscription","ancestorsQueries","epicAncestorsQuery","weightQueries","issueWeightQuery","updateIssueWeightMutation","issuableWeightSubscription","updateStatusMutation","issueHealthStatusQuery","BTableLite","tableClass","stickyHeader","stickyHeaderClass","localTableClass","scope","filteredRollUpCountsByType","getItemsClosedLabel","rolledUpCount","countPermissionText","noChildItemsText","WorkItemRolledUpCountInfo","infoType","hideCountWhenZero","totalCountAllByType","rollUpCounts","showDetailedCount","rollUpCount","rolledUpCountExists","showRolledUpCount","workItemTypeCount","_rollUpCount$workItem","_rolledUpCount$counts","countBadge","DefaultTransition","ariaAtomic","ariaLive","BToaster","doRender","dead","staticName","$toaster","linkProps","appendToast","autoHideDelay","headerTag","isStatus","noAutoHide","noHoverPause","solid","static","toastClass","toaster","BToast","isMounted","localShow","isTransitioning","isHiding","dismissStarted","resumeDismiss","onBeforeEnter","beforeLeave","onBeforeLeave","bvAttrs","ensureToaster","$_dismissTimer","computedToaster","clearDismissTimer","showEvent","buildEvent","hideEvent","setHoverHandler","bvEvent","bvEventRoot","computedDuration","onPause","onUnPause","passed","startDismissTimer","hiddenEvent","$headerContent","$title","$header","$body","onLinkClick","computedAttrs","toastClasses","scopedStyleAttrs","transitionHandlers","makeToast","BASE_PROPS","propsToSlots","toastContent","filterOptions","memo","BVToastPlugin","BVToastPop","handleDestroy","bvParent","BvToast","_root","ToastPlugin","DEFAULT_OPTIONS","toastsCount","renderTitle","showToast","$bvToast","toastHiddenCallback","updatedAutoHideDelay","getAjaxUsersSelectParams","paramsMap","paramKey","optionKey","elsClassName","usersPath","todoFilter","todoStateFilter","showSuggested","showNullUser","defaultNullUser","showAnyUser","issueURL","$assignToMeLink","$collapsedSidebar","selectedIdDefault","assigneeTemplate","collapsedAssigneeTemplate","selectedId","suggestedReviewersHelpPath","suggestedReviewersHeaderTemplate","unassignedSelected","currentUserInfo","inputHtmlString","getSelectedUserInputs","getSelected","checkMaxSelect","maxSelect","firstSelectedId","getMultiSelectDropdownTitle","selectedUser","selectedUsers","otherSelected","assignee_id","openingTag","closingTag","dataArg","anyUser","selectedInputs","beforeDivider","suggestedUsers","deprecatedJQueryDropdown","previouslySelected","isSelecting","highlightSelected","buildUrl","isEditMergeRequest","isNewMergeRequest","merge_request_iid","approval_rules","show_suggested","target_branch","linkClasses","tooltipAttributes","dataUserSuggested","renderRowAvatar","renderApprovalRules","applicable_approval_rules","approvalRules","countText","renderApprovalRulesCount","ruleName","rule_type","localWeight","previousWeight","skipIssueWeightSubscription","_this$issuable$weight","hasWeight","weightLabel","noWeightLabel","collapsedWeightLabel","setWeight","shouldRemoveWeight","issuableSetWeight","_issuableSetWeight$er","_issuableSetWeight$is","_issuableSetWeight$is2","removeWeight","maxDisplayWeight","getSymbol","getLineNumber","_lineRange$otherKey","otherLineType","startingLine","preferredSide","fallbackSide","linesCopy","startingLineCode","upToSelected","_takeRightWhile","extractProps","getCommentedLines","startLine","endLine","findLineCodeIndex","_position$left","_position$right","pluckCandidates","sortCandidates","bKey","maxInners","maxResults","scoreProvider","scoredCandidates","spotLeft","toggleSelection","checkedClasses","bottomRowMixin","computedFields","tbodyTrClass","tbodyTrAttr","columns","MODEL_EVENT_NAME_BUSY","busyMixin","localBusy","computedBusy","colspan","emptyFilteredHtml","emptyFilteredText","emptyHtml","emptyText","showEmpty","emptyMixin","computedItems","isFiltered","stringifyObjectValues","sanitizeRow","ignoreFields","includeFields","fieldsObj","formattedRow","filterByFormatted","allowedKeys","filterDebounce","filterFunction","filterIgnoredFields","filterIncludedFields","filteringMixin","localFilter","filterSanitize","hasProvider","noProviderFiltering","filteredItems","localItems","filterFn","localFiltering","filterFnFactory","localFilterFn","defaultFilterFnFactory","$_filterTimer","clearFilterTimer","newCriteria","computedFilterDebounce","regExp","computedFilterIgnored","computedFilterIncluded","computedFieldsObj","currentPage","paginationMixin","noProviderPaging","sortedItems","localPaging","ROOT_EVENT_NAME_REFRESHED","ROOT_ACTION_EVENT_NAME_REFRESH","apiUrl","noProviderSorting","providerMixin","sortDesc","localSortBy","localSortDesc","_providerUpdate","clearSelected","_providerSetLocal","SELECT_MODES","noSelectOnClick","selectMode","selectedVariant","selectableMixin","selectedRows","selectedLastRow","supportsSelectableRows","selectableHasSelection","hasSelectableRowClick","selectableIsMultiSelect","equal","setSelectionHandlers","isRowSelected","selectedLastClicked","selectionHandler","normalizeValue","MODEL_EVENT_NAME_SORT_BY","MODEL_EVENT_NAME_SORT_DESC","SORT_DIRECTIONS","labelSortAsc","labelSortClear","labelSortDesc","noFooterSorting","noLocalSorting","noSortReset","sortCompare","sortCompareLocale","sortCompareOptions","numeric","sortIconLeft","sortNullLast","sortingMixin","nullLast","localSorting","localeOptions","usage","sortByFormatted","getFieldFormatter","aa","bb","defaultSortCompare","isSortable","handleSort","isFoot","sortChanged","toggleLocalSortDesc","sortKey","_field$sortKey","labelSorting","topRowMixin","BTable","tableFullSlots","tableFullProps","slotName","_this$fields","thAlignRight","computedThClass","shouldUseFullTable","activeSortingColumn","headSlotName","getSortingIcon"],"mappings":"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IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAC1B,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACtF,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACtF,IAAU,IAAM,IAAU,IAC1B,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU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gB,aACjB,CAACD,GAAkB,cAErB,CAACxC,GAAY,CACX,CAAC0qO,KAAc,CACb,CAACjoO,GAAgB,0BACjB,CAACD,GAAkB,2BAErB,CAACqB,KAAe,CACd,CAACpB,GAAgB,+BACjB,CAACD,GAAkB,kCAIzB,CAACurO,MAAsB,CACrB,CAACpqO,GAAY,CACX,CAAClB,GAAgB,WACjB,CAACD,GAAkB,YAErB,CAACxC,GAAY,CACX,CAAC0qO,KAAc,CACb,CAACjoO,GAAgB,aACjB,CAACD,GAAkB,gBAIzB,CAACR,MAAoB,CACnB,CAAC2B,GAAY,CACX,CAAClB,GAAgB,iBACjB,CAACH,GAAqB,mBAExB,CAACtC,GAAY,CACX,CAAC0qO,KAAc,CACb,CAACjoO,GAAgB,mBAEnB,CAACoB,KAAe,CACd,CAACpB,GAAgB,0BAEnB,CAACR,KAAc,CACb,CAACK,GAAqB,2BAI5B,CAACwsO,MAA2B,CAC1B,CAACnrO,GAAY,CACX,CAAClB,GAAgB,MAEnB,CAACzC,GAAY,CACX,CAAC0qO,KAAc,CACb,CAACjoO,GAAgB,QAIvB,CAACjB,MAAsB,CACrB,CAACmC,GAAY,CACX,CAAClB,GAAgB,oBACjB,CAACD,GAAkB,qBACnB,CAACF,GAAqB,cAExB,CAACtC,GAAY,CACX,CAAC0qO,KAAc,CACb,CAACjoO,GAAgB,sBACjB,CAACD,GAAkB,cACnB,CAACF,GAAqB,qBAExB,CAACuB,KAAe,CACd,CAACpB,GAAgB,2BACjB,CAACH,GAAqB,0BAExB,CAACL,KAAc,CACb,CAACQ,GAAgB,6BAIvB,CAAC0rO,MAAmB,CAClB,CAACxqO,GAAY,CACX,CAAClB,GAAgB,YAEnB,CAACzC,GAAY,CACX,CAAC0qO,KAAc,CACb,CAACjoO,GAAgB,gBAIvB,CAACM,MAAsB,CACrB,CAACY,GAAY,CACX,CAAClB,GAAgB,mBACjB,CAACD,GAAkB,qBACnB,CAACF,GAAqB,cAExB,CAACtC,GAAY,CACX,CAAC0qO,KAAc,CACb,CAACjoO,GAAgB,oBACjB,CAACD,GAAkB,cACnB,CAACF,GAAqB,qBAExB,CAACu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","file":"1166.f586d7fa.chunk.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_vm._l((_vm.assigneesToShow),function(assignee){return _c('user-avatar-link',{key:assignee.id,staticClass:\"js-no-trigger author-link\",attrs:{\"link-href\":_vm.assigneeHref(assignee),\"img-alt\":_vm.avatarUrlTitle(assignee),\"img-css-classes\":_vm.imgCssClasses,\"img-css-wrapper-classes\":\"gl-inline-flex\",\"img-src\":_vm.avatarUrl(assignee),\"img-size\":_vm.iconSize,\"tooltip-placement\":\"bottom\",\"data-testid\":\"assignee-link\"}},[_c('span',{staticClass:\"js-assignee-tooltip\"},[_c('span',{staticClass:\"gl-block gl-font-bold\"},[_vm._v(_vm._s(_vm.s__('Label|Assignee')))]),_vm._v(\" \"+_vm._s(assignee.name)+\"\\n \"),(assignee.username)?_c('span',[_vm._v(\"@\"+_vm._s(assignee.username))]):_vm._e()])])}),_vm._v(\" \"),(_vm.numHiddenAssignees > 0)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom\",modifiers:{\"bottom\":true}}],staticClass:\"avatar-counter\",attrs:{\"title\":_vm.assigneesCounterTooltip,\"data-testid\":\"avatar-counter-content\"}},[_vm._v(_vm._s(_vm.assigneeCounterLabel))]):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issue_assignees.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issue_assignees.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective } from '@gitlab/ui';\nimport { __, sprintf } from '~/locale';\nimport UserAvatarLink from '~/vue_shared/components/user_avatar/user_avatar_link.vue';\n\nexport default {\n components: {\n UserAvatarLink,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n assignees: {\n type: Array,\n required: true,\n },\n iconSize: {\n type: Number,\n required: false,\n default: 24,\n },\n imgCssClasses: {\n type: String,\n required: false,\n default: '',\n },\n maxVisible: {\n type: Number,\n required: false,\n default: 3,\n },\n },\n data() {\n return {\n maxAssignees: 99,\n };\n },\n computed: {\n assigneesToShow() {\n const numShownAssignees = this.assignees.length - this.numHiddenAssignees;\n return this.assignees.slice(0, numShownAssignees);\n },\n assigneesCounterTooltip() {\n return sprintf(__('%{count} more assignees'), { count: this.numHiddenAssignees });\n },\n numHiddenAssignees() {\n if (this.assignees.length > this.maxVisible) {\n return this.assignees.length - this.maxVisible + 1;\n }\n return 0;\n },\n assigneeCounterLabel() {\n if (this.numHiddenAssignees > this.maxAssignees) {\n return `${this.maxAssignees}+`;\n }\n\n return `+${this.numHiddenAssignees}`;\n },\n },\n methods: {\n avatarUrlTitle(assignee) {\n return sprintf(__('Assigned to %{assigneeName}'), {\n assigneeName: assignee.name,\n });\n },\n // This method is for backward compat\n // since Graph query would return camelCase\n // props while Rails would return snake_case\n assigneeHref(assignee) {\n return assignee.web_path || assignee.webPath;\n },\n avatarUrl(assignee) {\n return assignee.avatar_url || assignee.avatarUrl;\n },\n },\n};\n</script>\n<template>\n <div>\n <user-avatar-link\n v-for=\"assignee in assigneesToShow\"\n :key=\"assignee.id\"\n :link-href=\"assigneeHref(assignee)\"\n :img-alt=\"avatarUrlTitle(assignee)\"\n :img-css-classes=\"imgCssClasses\"\n img-css-wrapper-classes=\"gl-inline-flex\"\n :img-src=\"avatarUrl(assignee)\"\n :img-size=\"iconSize\"\n class=\"js-no-trigger author-link\"\n tooltip-placement=\"bottom\"\n data-testid=\"assignee-link\"\n >\n <span class=\"js-assignee-tooltip\">\n <span class=\"gl-block gl-font-bold\">{{ s__('Label|Assignee') }}</span> {{ assignee.name }}\n <span v-if=\"assignee.username\">@{{ assignee.username }}</span>\n </span>\n </user-avatar-link>\n <span\n v-if=\"numHiddenAssignees > 0\"\n v-gl-tooltip.bottom\n :title=\"assigneesCounterTooltip\"\n class=\"avatar-counter\"\n data-testid=\"avatar-counter-content\"\n >{{ assigneeCounterLabel }}</span\n >\n </div>\n</template>\n","import { render, staticRenderFns } from \"./issue_assignees.vue?vue&type=template&id=055aea2c\"\nimport script from \"./issue_assignees.vue?vue&type=script&lang=js\"\nexport * from \"./issue_assignees.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var constant = require('./constant'),\n createInverter = require('./_createInverter'),\n identity = require('./identity');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\nvar invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n}, constant(identity));\n\nmodule.exports = invert;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"item-body work-item-link-child gl-relative gl-flex gl-min-w-0 gl-grow gl-gap-3 gl-hyphens-auto gl-break-words gl-rounded-base gl-p-3\",attrs:{\"data-testid\":\"links-child\"}},[_c('div',{ref:\"stateIcon\",staticClass:\"gl-cursor-help\"},[_c('work-item-type-icon',{attrs:{\"icon-variant\":_vm.childItemTypeIconVariant,\"work-item-type\":_vm.childItemType}}),_vm._v(\" \"),_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.stateIcon}},[_vm._v(\"\\n \"+_vm._s(_vm.childItemType)+\"\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-min-w-0 gl-grow gl-flex-col gl-flex-wrap\"},[_c('div',{staticClass:\"gl-mb-2 gl-min-w-0 gl-justify-between gl-gap-3 sm:gl-flex\"},[_c('div',{staticClass:\"item-title gl-mb-2 gl-min-w-0 sm:gl-mb-0\"},[(_vm.childItem.confidential)?_c('span',[_c('gl-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.top\",modifiers:{\"top\":true}}],staticClass:\"gl-text-orange-500\",attrs:{\"name\":\"eye-slash\",\"data-testid\":\"confidential-icon\",\"aria-label\":_vm.$options.i18n.confidential,\"title\":_vm.$options.i18n.confidential}})],1):_vm._e(),_vm._v(\" \"),_c('gl-link',{staticClass:\"gl-hyphens-auto gl-break-words gl-font-semibold\",class:{ '!gl-text-subtle': !_vm.isChildItemOpen },attrs:{\"id\":_vm.childItemUniqueId,\"href\":_vm.childItemWebUrl},on:{\"click\":function($event){if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;$event.stopPropagation();return _vm.handleTitleClick.apply(null, arguments)},\"mouseover\":function($event){return _vm.$emit('mouseover')},\"mouseout\":function($event){return _vm.$emit('mouseout')}}},[_vm._v(\"\\n \"+_vm._s(_vm.childItem.title)+\"\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-shrink-0 gl-flex-row-reverse gl-items-center gl-justify-end gl-gap-3 sm:gl-flex-row\"},[(_vm.assignees.length)?_c('gl-avatars-inline',{attrs:{\"avatars\":_vm.assignees,\"collapsed\":\"\",\"max-visible\":2,\"avatar-size\":16,\"badge-tooltip-prop\":\"name\",\"badge-sr-only-text\":_vm.assigneesCollapsedTooltip},scopedSlots:_vm._u([{key:\"avatar\",fn:function({ avatar }){return [_c('gl-avatar-link',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"href\":avatar.webUrl,\"title\":avatar.name}},[_c('gl-avatar',{attrs:{\"alt\":avatar.name,\"src\":avatar.avatarUrl,\"size\":16},on:{\"click\":function($event){$event.stopPropagation();}}})],1)]}}],null,false,3665974617)}):_vm._e(),_vm._v(\" \"),(_vm.isChildItemOpen && _vm.filteredLinkedChildItems.length)?_c('work-item-relationship-icons',{attrs:{\"work-item-type\":_vm.childItemType,\"linked-work-items\":_vm.filteredLinkedChildItems,\"work-item-full-path\":_vm.childItemFullPath,\"work-item-iid\":_vm.childItemIid,\"work-item-web-url\":_vm.childItemWebUrl}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"gl-cursor-help\",attrs:{\"id\":`statusIcon-${_vm.childItem.id}`,\"data-testid\":\"item-status-icon\"}},[_c('work-item-state-badge',{attrs:{\"work-item-state\":_vm.childItem.state,\"show-icon\":false}})],1),_vm._v(\" \"),_c('rich-timestamp-tooltip',{attrs:{\"target\":`statusIcon-${_vm.childItem.id}`,\"raw-timestamp\":_vm.stateTimestamp,\"timestamp-type-text\":_vm.stateTimestampTypeText}})],1)]),_vm._v(\" \"),_c('work-item-link-child-metadata',{staticClass:\"ml-xl-0\",attrs:{\"reference\":_vm.displayReference,\"iid\":_vm.childItem.iid,\"is-child-item-open\":_vm.isChildItemOpen,\"metadata-widgets\":_vm.metadataWidgets,\"show-weight\":_vm.showWeight,\"work-item-type\":_vm.childItemType}}),_vm._v(\" \"),(_vm.displayLabels)?_c('div',{staticClass:\"gl-flex gl-flex-wrap\"},_vm._l((_vm.labels),function(label){return _c('gl-label',{key:label.id,staticClass:\"gl-mb-auto gl-mr-2 gl-mt-2\",attrs:{\"title\":label.title,\"background-color\":label.color,\"description\":label.description,\"scoped\":_vm.showScopedLabel(label),\"tooltip-placement\":\"top\"},on:{\"click\":function($event){$event.stopPropagation();}}})}),1):_vm._e()],1),_vm._v(\" \"),(_vm.canUpdate)?_c('div',[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"-gl-mr-2 -gl-mt-1\",attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"icon\":\"close\",\"aria-label\":_vm.$options.i18n.remove,\"title\":_vm.$options.i18n.remove,\"data-testid\":\"remove-work-item-link\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('removeChild', _vm.childItem)}}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_link_child_metadata.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_link_child_metadata.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective } from '@gitlab/ui';\n\nimport ItemMilestone from '~/issuable/components/issue_milestone.vue';\nimport WorkItemRolledUpCount from '~/work_items/components/work_item_links/work_item_rolled_up_count.vue';\n\nimport { WIDGET_TYPE_MILESTONE, WIDGET_TYPE_HIERARCHY } from '../../constants';\n\nexport default {\n components: {\n ItemMilestone,\n WorkItemRolledUpCount,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n iid: {\n type: String,\n required: true,\n },\n reference: {\n type: String,\n required: true,\n },\n metadataWidgets: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n },\n computed: {\n milestone() {\n return this.metadataWidgets[WIDGET_TYPE_MILESTONE]?.milestone;\n },\n hierarchyWidget() {\n return this.metadataWidgets[WIDGET_TYPE_HIERARCHY];\n },\n showRolledUpCounts() {\n return this.hierarchyWidget && this.rolledUpCountsByType.length > 0;\n },\n rolledUpCountsByType() {\n return this.hierarchyWidget?.rolledUpCountsByType || [];\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-justify-between sm:gl-flex\">\n <div\n class=\"gl-mb-2 gl-flex gl-flex-wrap gl-items-center gl-gap-x-3 gl-gap-y-2 gl-text-sm gl-text-subtle sm:gl-mb-0\"\n >\n <span>{{ reference }}</span>\n <work-item-rolled-up-count\n v-if=\"showRolledUpCounts\"\n hide-count-when-zero\n :rolled-up-counts-by-type=\"rolledUpCountsByType\"\n info-type=\"detailed\"\n />\n <item-milestone\n v-if=\"milestone\"\n :milestone=\"milestone\"\n class=\"gl-flex gl-max-w-15 !gl-cursor-help gl-items-center gl-gap-2 gl-leading-normal !gl-no-underline\"\n />\n <slot name=\"left-metadata\"></slot>\n </div>\n <div>\n <slot name=\"right-metadata\"></slot>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_link_child_metadata.vue?vue&type=template&id=e2b73630\"\nimport script from \"./work_item_link_child_metadata.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_link_child_metadata.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-justify-between sm:gl-flex\"},[_c('div',{staticClass:\"gl-mb-2 gl-flex gl-flex-wrap gl-items-center gl-gap-x-3 gl-gap-y-2 gl-text-sm gl-text-subtle sm:gl-mb-0\"},[_c('span',[_vm._v(_vm._s(_vm.reference))]),_vm._v(\" \"),(_vm.showRolledUpCounts)?_c('work-item-rolled-up-count',{attrs:{\"hide-count-when-zero\":\"\",\"rolled-up-counts-by-type\":_vm.rolledUpCountsByType,\"info-type\":\"detailed\"}}):_vm._e(),_vm._v(\" \"),(_vm.milestone)?_c('item-milestone',{staticClass:\"gl-flex gl-max-w-15 !gl-cursor-help gl-items-center gl-gap-2 gl-leading-normal !gl-no-underline\",attrs:{\"milestone\":_vm.milestone}}):_vm._e(),_vm._v(\" \"),_vm._t(\"left-metadata\")],2),_vm._v(\" \"),_c('div',[_vm._t(\"right-metadata\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_link_child_metadata.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_link_child_metadata.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlTooltip, GlTooltipDirective } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport IssueHealthStatus from 'ee/related_items_tree/components/issue_health_status.vue';\nimport WorkItemLinkChildMetadata from '~/work_items/components/shared/work_item_link_child_metadata.vue';\nimport WorkItemRolledUpHealthStatus from 'ee/work_items/components/work_item_links/work_item_rolled_up_health_status.vue';\nimport {\n WIDGET_TYPE_HEALTH_STATUS,\n WIDGET_TYPE_PROGRESS,\n WIDGET_TYPE_WEIGHT,\n WIDGET_TYPE_ITERATION,\n WIDGET_TYPE_START_AND_DUE_DATE,\n WORK_ITEM_TYPE_VALUE_EPIC,\n} from '~/work_items/constants';\nimport { humanTimeframe, isInPast, localeDateFormat, newDate } from '~/lib/utils/datetime_utility';\nimport timeagoMixin from '~/vue_shared/mixins/timeago';\nimport { getIterationPeriod } from 'ee/iterations/utils';\nimport WorkItemAttribute from '~/vue_shared/components/work_item_attribute.vue';\n\nexport default {\n name: 'WorkItemLinkChildEE',\n components: {\n GlIcon,\n GlTooltip,\n IssueHealthStatus,\n WorkItemLinkChildMetadata,\n WorkItemRolledUpHealthStatus,\n WorkItemAttribute,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [timeagoMixin],\n props: {\n iid: {\n type: String,\n required: true,\n },\n reference: {\n type: String,\n required: true,\n },\n metadataWidgets: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n showWeight: {\n type: Boolean,\n required: false,\n default: true,\n },\n workItemType: {\n type: String,\n required: true,\n },\n isChildItemOpen: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n computed: {\n progress() {\n return this.metadataWidgets[WIDGET_TYPE_PROGRESS]?.progress;\n },\n progressLastUpdatedAtInWords() {\n return this.getTimestampInWords(this.metadataWidgets[WIDGET_TYPE_PROGRESS]?.updatedAt);\n },\n progressLastUpdatedAtTimestamp() {\n return this.getTimestamp(this.metadataWidgets[WIDGET_TYPE_PROGRESS]?.updatedAt);\n },\n healthStatus() {\n return this.metadataWidgets[WIDGET_TYPE_HEALTH_STATUS]?.healthStatus;\n },\n rolledUpHealthStatus() {\n return this.metadataWidgets[WIDGET_TYPE_HEALTH_STATUS]?.rolledUpHealthStatus;\n },\n hasProgress() {\n return Number.isInteger(this.progress);\n },\n isWeightRollup() {\n return this.metadataWidgets[WIDGET_TYPE_WEIGHT]?.widgetDefinition?.rollUp;\n },\n weight() {\n return this.metadataWidgets[WIDGET_TYPE_WEIGHT]?.weight;\n },\n rolledUpWeight() {\n return this.metadataWidgets[WIDGET_TYPE_WEIGHT]?.rolledUpWeight;\n },\n workItemWeight() {\n return this.isWeightRollup ? this.rolledUpWeight : this.weight;\n },\n shouldShowWeight() {\n return this.showWeight && Boolean(this.workItemWeight);\n },\n iteration() {\n return this.metadataWidgets[WIDGET_TYPE_ITERATION]?.iteration;\n },\n iterationTitle() {\n return this.metadataWidgets[WIDGET_TYPE_ITERATION]?.iteration?.title;\n },\n iterationCadenceTitle() {\n return this.metadataWidgets[WIDGET_TYPE_ITERATION]?.iteration?.iterationCadence?.title;\n },\n iterationPeriod() {\n return getIterationPeriod(this.iteration);\n },\n startDate() {\n return this.metadataWidgets[WIDGET_TYPE_START_AND_DUE_DATE]?.startDate;\n },\n dueDate() {\n return this.metadataWidgets[WIDGET_TYPE_START_AND_DUE_DATE]?.dueDate;\n },\n showDate() {\n return this.startDate || this.dueDate;\n },\n workItemTimeframe() {\n return humanTimeframe(newDate(this.startDate), newDate(this.dueDate));\n },\n weightTooltip() {\n return this.workItemType === WORK_ITEM_TYPE_VALUE_EPIC ? __('Issue weight') : __('Weight');\n },\n isOverdue() {\n if (!this.dueDate) {\n return false;\n }\n return isInPast(newDate(this.dueDate)) && this.isChildItemOpen;\n },\n overdueText() {\n return this.isOverdue ? ` (${__('overdue')})` : '';\n },\n datesIcon() {\n return this.isOverdue ? 'calendar-overdue' : 'calendar';\n },\n },\n methods: {\n getTimestamp(rawTimestamp) {\n return rawTimestamp ? localeDateFormat.asDateTimeFull.format(newDate(rawTimestamp)) : '';\n },\n getTimestampInWords(rawTimestamp) {\n return rawTimestamp ? this.timeFormatted(rawTimestamp) : '';\n },\n },\n};\n</script>\n\n<template>\n <work-item-link-child-metadata\n :iid=\"iid\"\n :reference=\"reference\"\n :metadata-widgets=\"metadataWidgets\"\n >\n <template #left-metadata>\n <work-item-attribute\n v-if=\"shouldShowWeight\"\n anchor-id=\"item-weight\"\n wrapper-component=\"div\"\n wrapper-component-class=\"gl-flex gl-cursor-help gl-items-center gl-gap-2\"\n :title=\"`${workItemWeight}`\"\n icon-name=\"weight\"\n tooltip-placement=\"top\"\n >\n <template #tooltip-text>\n <span data-testid=\"weight-tooltip\" class=\"gl-font-bold\">\n {{ weightTooltip }}\n </span>\n </template>\n </work-item-attribute>\n <div\n v-if=\"iteration\"\n ref=\"iterationData\"\n data-testid=\"item-iteration\"\n class=\"gl-flex gl-cursor-help gl-items-center gl-gap-2\"\n >\n <gl-icon name=\"iteration\" />\n <span data-testid=\"iteration-value\">{{ iterationPeriod }}</span>\n <gl-tooltip :target=\"() => $refs.iterationData\">\n <div data-testid=\"iteration-title\" class=\"gl-font-bold\">\n {{ __('Iteration') }}\n </div>\n <div v-if=\"iterationCadenceTitle\" data-testid=\"iteration-cadence-text\">\n {{ iterationCadenceTitle }}\n </div>\n <div v-if=\"iterationPeriod\" data-testid=\"iteration-period-text\">\n {{ iterationPeriod }}\n </div>\n <div v-if=\"iterationTitle\" data-testid=\"iteration-title-text\">\n {{ iterationTitle }}\n </div>\n </gl-tooltip>\n </div>\n <work-item-attribute\n v-if=\"showDate\"\n anchor-id=\"item-dates\"\n wrapper-component=\"div\"\n wrapper-component-class=\"gl-flex gl-min-w-10 gl-max-w-26 gl-cursor-help gl-flex-wrap gl-gap-2\"\n :title=\"workItemTimeframe\"\n tooltip-placement=\"top\"\n >\n <template #icon>\n <gl-icon :variant=\"isOverdue ? 'danger' : 'current'\" :name=\"datesIcon\" />\n </template>\n <template #tooltip-text>\n <span class=\"gl-font-bold\">{{ __('Dates') }}</span\n ><span>{{ overdueText }}</span>\n </template>\n </work-item-attribute>\n <div\n v-if=\"hasProgress\"\n ref=\"progressTooltip\"\n class=\"gl-flex gl-min-w-10 gl-max-w-26 gl-cursor-help gl-items-center gl-justify-start gl-gap-2 gl-leading-normal\"\n data-testid=\"item-progress\"\n >\n <gl-icon name=\"progress\" />\n <span data-testid=\"progressValue\">{{ progress }}%</span>\n <gl-tooltip :target=\"() => $refs.progressTooltip\">\n <div data-testid=\"progressTitle\" class=\"gl-font-bold\">\n {{ __('Progress') }}\n </div>\n <div v-if=\"progressLastUpdatedAtInWords\" class=\"gl-text-tertiary\">\n <span data-testid=\"progressText\" class=\"gl-font-bold\">\n {{ __('Last updated') }}\n </span>\n <span data-testid=\"lastUpdatedInWords\">{{ progressLastUpdatedAtInWords }}</span>\n <div data-testid=\"lastUpdatedTimestamp\">{{ progressLastUpdatedAtTimestamp }}</div>\n </div>\n </gl-tooltip>\n </div>\n </template>\n <template #right-metadata>\n <div class=\"gl-flex gl-gap-3\">\n <work-item-rolled-up-health-status\n v-if=\"rolledUpHealthStatus\"\n :rolled-up-health-status=\"rolledUpHealthStatus\"\n :health-status-visible=\"healthStatus && isChildItemOpen\"\n />\n <issue-health-status\n v-if=\"healthStatus && isChildItemOpen\"\n class=\"gl-text-nowrap\"\n display-as-text\n text-size=\"sm\"\n :health-status=\"healthStatus\"\n />\n </div>\n </template>\n </work-item-link-child-metadata>\n</template>\n","import { render, staticRenderFns } from \"./work_item_link_child_metadata.vue?vue&type=template&id=2ecd543f\"\nimport script from \"./work_item_link_child_metadata.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_link_child_metadata.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('work-item-link-child-metadata',{attrs:{\"iid\":_vm.iid,\"reference\":_vm.reference,\"metadata-widgets\":_vm.metadataWidgets},scopedSlots:_vm._u([{key:\"left-metadata\",fn:function(){return [(_vm.shouldShowWeight)?_c('work-item-attribute',{attrs:{\"anchor-id\":\"item-weight\",\"wrapper-component\":\"div\",\"wrapper-component-class\":\"gl-flex gl-cursor-help gl-items-center gl-gap-2\",\"title\":`${_vm.workItemWeight}`,\"icon-name\":\"weight\",\"tooltip-placement\":\"top\"},scopedSlots:_vm._u([{key:\"tooltip-text\",fn:function(){return [_c('span',{staticClass:\"gl-font-bold\",attrs:{\"data-testid\":\"weight-tooltip\"}},[_vm._v(\"\\n \"+_vm._s(_vm.weightTooltip)+\"\\n \")])]},proxy:true}],null,false,2677563988)}):_vm._e(),_vm._v(\" \"),(_vm.iteration)?_c('div',{ref:\"iterationData\",staticClass:\"gl-flex gl-cursor-help gl-items-center gl-gap-2\",attrs:{\"data-testid\":\"item-iteration\"}},[_c('gl-icon',{attrs:{\"name\":\"iteration\"}}),_vm._v(\" \"),_c('span',{attrs:{\"data-testid\":\"iteration-value\"}},[_vm._v(_vm._s(_vm.iterationPeriod))]),_vm._v(\" \"),_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.iterationData}},[_c('div',{staticClass:\"gl-font-bold\",attrs:{\"data-testid\":\"iteration-title\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Iteration'))+\"\\n \")]),_vm._v(\" \"),(_vm.iterationCadenceTitle)?_c('div',{attrs:{\"data-testid\":\"iteration-cadence-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.iterationCadenceTitle)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.iterationPeriod)?_c('div',{attrs:{\"data-testid\":\"iteration-period-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.iterationPeriod)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.iterationTitle)?_c('div',{attrs:{\"data-testid\":\"iteration-title-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.iterationTitle)+\"\\n \")]):_vm._e()])],1):_vm._e(),_vm._v(\" \"),(_vm.showDate)?_c('work-item-attribute',{attrs:{\"anchor-id\":\"item-dates\",\"wrapper-component\":\"div\",\"wrapper-component-class\":\"gl-flex gl-min-w-10 gl-max-w-26 gl-cursor-help gl-flex-wrap gl-gap-2\",\"title\":_vm.workItemTimeframe,\"tooltip-placement\":\"top\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('gl-icon',{attrs:{\"variant\":_vm.isOverdue ? 'danger' : 'current',\"name\":_vm.datesIcon}})]},proxy:true},{key:\"tooltip-text\",fn:function(){return [_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(_vm.__('Dates')))]),_c('span',[_vm._v(_vm._s(_vm.overdueText))])]},proxy:true}],null,false,2313177424)}):_vm._e(),_vm._v(\" \"),(_vm.hasProgress)?_c('div',{ref:\"progressTooltip\",staticClass:\"gl-flex gl-min-w-10 gl-max-w-26 gl-cursor-help gl-items-center gl-justify-start gl-gap-2 gl-leading-normal\",attrs:{\"data-testid\":\"item-progress\"}},[_c('gl-icon',{attrs:{\"name\":\"progress\"}}),_vm._v(\" \"),_c('span',{attrs:{\"data-testid\":\"progressValue\"}},[_vm._v(_vm._s(_vm.progress)+\"%\")]),_vm._v(\" \"),_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.progressTooltip}},[_c('div',{staticClass:\"gl-font-bold\",attrs:{\"data-testid\":\"progressTitle\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Progress'))+\"\\n \")]),_vm._v(\" \"),(_vm.progressLastUpdatedAtInWords)?_c('div',{staticClass:\"gl-text-tertiary\"},[_c('span',{staticClass:\"gl-font-bold\",attrs:{\"data-testid\":\"progressText\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Last updated'))+\"\\n \")]),_vm._v(\" \"),_c('span',{attrs:{\"data-testid\":\"lastUpdatedInWords\"}},[_vm._v(_vm._s(_vm.progressLastUpdatedAtInWords))]),_vm._v(\" \"),_c('div',{attrs:{\"data-testid\":\"lastUpdatedTimestamp\"}},[_vm._v(_vm._s(_vm.progressLastUpdatedAtTimestamp))])]):_vm._e()])],1):_vm._e()]},proxy:true},{key:\"right-metadata\",fn:function(){return [_c('div',{staticClass:\"gl-flex gl-gap-3\"},[(_vm.rolledUpHealthStatus)?_c('work-item-rolled-up-health-status',{attrs:{\"rolled-up-health-status\":_vm.rolledUpHealthStatus,\"health-status-visible\":_vm.healthStatus && _vm.isChildItemOpen}}):_vm._e(),_vm._v(\" \"),(_vm.healthStatus && _vm.isChildItemOpen)?_c('issue-health-status',{staticClass:\"gl-text-nowrap\",attrs:{\"display-as-text\":\"\",\"text-size\":\"sm\",\"health-status\":_vm.healthStatus}}):_vm._e()],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rich_timestamp_tooltip.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rich_timestamp_tooltip.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltip } from '@gitlab/ui';\n\nimport { localeDateFormat, newDate } from '~/lib/utils/datetime_utility';\nimport timeagoMixin from '~/vue_shared/mixins/timeago';\n\nexport default {\n components: {\n GlTooltip,\n },\n mixins: [timeagoMixin],\n props: {\n target: {\n type: [Object, HTMLElement, SVGElement, String, Function],\n required: true,\n },\n rawTimestamp: {\n type: String,\n required: true,\n },\n timestampTypeText: {\n type: String,\n required: true,\n },\n },\n computed: {\n timestampInWords() {\n return this.rawTimestamp ? this.timeFormatted(this.rawTimestamp) : '';\n },\n timestamp() {\n return this.rawTimestamp\n ? localeDateFormat.asDateTimeFull.format(newDate(this.rawTimestamp))\n : '';\n },\n },\n};\n</script>\n\n<template>\n <gl-tooltip :target=\"target\">\n <div class=\"gl-font-bold\" data-testid=\"header-text\">\n {{ timestampTypeText }} {{ timestampInWords }}\n </div>\n <div class=\"gl-text-tertiary\" data-testid=\"body-text\">{{ timestamp }}</div>\n </gl-tooltip>\n</template>\n","import { render, staticRenderFns } from \"./rich_timestamp_tooltip.vue?vue&type=template&id=47e1b410\"\nimport script from \"./rich_timestamp_tooltip.vue?vue&type=script&lang=js\"\nexport * from \"./rich_timestamp_tooltip.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-tooltip',{attrs:{\"target\":_vm.target}},[_c('div',{staticClass:\"gl-font-bold\",attrs:{\"data-testid\":\"header-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.timestampTypeText)+\" \"+_vm._s(_vm.timestampInWords)+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"gl-text-tertiary\",attrs:{\"data-testid\":\"body-text\"}},[_vm._v(_vm._s(_vm.timestamp))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_link_child_contents.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_link_child_contents.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlLabel,\n GlLink,\n GlIcon,\n GlButton,\n GlAvatar,\n GlAvatarLink,\n GlAvatarsInline,\n GlTooltip,\n GlTooltipDirective,\n} from '@gitlab/ui';\nimport { __, s__, sprintf } from '~/locale';\nimport { isScopedLabel } from '~/lib/utils/common_utils';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport WorkItemLinkChildMetadata from 'ee_else_ce/work_items/components/shared/work_item_link_child_metadata.vue';\nimport RichTimestampTooltip from '../rich_timestamp_tooltip.vue';\nimport WorkItemTypeIcon from '../work_item_type_icon.vue';\nimport WorkItemStateBadge from '../work_item_state_badge.vue';\nimport { canRouterNav, findLinkedItemsWidget, getDisplayReference } from '../../utils';\nimport {\n STATE_OPEN,\n WIDGET_TYPE_ASSIGNEES,\n WIDGET_TYPE_LABELS,\n LINKED_CATEGORIES_MAP,\n INJECTION_LINK_CHILD_PREVENT_ROUTER_NAVIGATION,\n} from '../../constants';\nimport WorkItemRelationshipIcons from './work_item_relationship_icons.vue';\n\nexport default {\n i18n: {\n confidential: __('Confidential'),\n created: __('Created'),\n closed: __('Closed'),\n remove: s__('WorkItem|Remove'),\n },\n components: {\n GlLabel,\n GlLink,\n GlIcon,\n GlButton,\n GlAvatar,\n GlAvatarLink,\n GlAvatarsInline,\n GlTooltip,\n RichTimestampTooltip,\n WorkItemLinkChildMetadata,\n WorkItemTypeIcon,\n WorkItemStateBadge,\n WorkItemRelationshipIcons,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [glFeatureFlagMixin()],\n inject: {\n preventRouterNav: {\n from: INJECTION_LINK_CHILD_PREVENT_ROUTER_NAVIGATION,\n default: false,\n },\n isGroup: {},\n },\n props: {\n childItem: {\n type: Object,\n required: true,\n },\n canUpdate: {\n type: Boolean,\n required: true,\n },\n workItemFullPath: {\n type: String,\n required: true,\n },\n showLabels: {\n type: Boolean,\n required: false,\n default: true,\n },\n showWeight: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n computed: {\n labels() {\n return this.metadataWidgets[WIDGET_TYPE_LABELS]?.labels?.nodes || [];\n },\n metadataWidgets() {\n return this.childItem.widgets?.reduce((metadataWidgets, widget) => {\n if (widget.type) {\n // eslint-disable-next-line no-param-reassign\n metadataWidgets[widget.type] = widget;\n }\n return metadataWidgets;\n }, {});\n },\n assignees() {\n return this.metadataWidgets[WIDGET_TYPE_ASSIGNEES]?.assignees?.nodes || [];\n },\n assigneesCollapsedTooltip() {\n if (this.assignees.length > 2) {\n return sprintf(s__('WorkItem|%{count} more assignees'), {\n count: this.assignees.length - 2,\n });\n }\n return '';\n },\n allowsScopedLabels() {\n return this.metadataWidgets[WIDGET_TYPE_LABELS]?.allowsScopedLabels;\n },\n isChildItemOpen() {\n return this.childItem.state === STATE_OPEN;\n },\n childItemType() {\n return this.childItem.workItemType.name;\n },\n childItemIid() {\n return this.childItem.iid;\n },\n childItemWebUrl() {\n return this.childItem.webUrl;\n },\n childItemFullPath() {\n return this.childItem.namespace?.fullPath;\n },\n stateTimestamp() {\n return this.isChildItemOpen ? this.childItem.createdAt : this.childItem.closedAt;\n },\n stateTimestampTypeText() {\n return this.isChildItemOpen ? this.$options.i18n.created : this.$options.i18n.closed;\n },\n childItemTypeIconVariant() {\n return this.isChildItemOpen ? 'default' : 'subtle';\n },\n displayLabels() {\n return this.showLabels && this.labels.length;\n },\n displayReference() {\n return getDisplayReference(this.workItemFullPath, this.childItem.reference);\n },\n filteredLinkedChildItems() {\n const linkedChildWorkItems = findLinkedItemsWidget(this.childItem).linkedItems?.nodes || [];\n return linkedChildWorkItems.filter((item) => {\n return item.linkType !== LINKED_CATEGORIES_MAP.RELATES_TO;\n });\n },\n issueAsWorkItem() {\n return (\n !this.isGroup &&\n this.glFeatures.workItemsViewPreference &&\n gon.current_user_use_work_items_view\n );\n },\n childItemUniqueId() {\n return `listItem-${this.childItemFullPath}/${getIdFromGraphQLId(this.childItem.id)}`;\n },\n },\n methods: {\n showScopedLabel(label) {\n return isScopedLabel(label) && this.allowsScopedLabels;\n },\n handleTitleClick(e) {\n const workItem = this.childItem;\n if (e.metaKey || e.ctrlKey) {\n return;\n }\n const shouldDefaultNavigate =\n this.preventRouterNav ||\n !canRouterNav({\n fullPath: this.workItemFullPath,\n webUrl: workItem.webUrl,\n isGroup: this.isGroup,\n issueAsWorkItem: this.issueAsWorkItem,\n });\n\n if (shouldDefaultNavigate) {\n this.$emit('click', e);\n } else {\n e.preventDefault();\n this.$router.push({\n name: 'workItem',\n params: {\n iid: workItem.iid,\n },\n });\n }\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"item-body work-item-link-child gl-relative gl-flex gl-min-w-0 gl-grow gl-gap-3 gl-hyphens-auto gl-break-words gl-rounded-base gl-p-3\"\n data-testid=\"links-child\"\n >\n <div ref=\"stateIcon\" class=\"gl-cursor-help\">\n <work-item-type-icon\n :icon-variant=\"childItemTypeIconVariant\"\n :work-item-type=\"childItemType\"\n />\n <gl-tooltip :target=\"() => $refs.stateIcon\">\n {{ childItemType }}\n </gl-tooltip>\n </div>\n <div class=\"gl-flex gl-min-w-0 gl-grow gl-flex-col gl-flex-wrap\">\n <div class=\"gl-mb-2 gl-min-w-0 gl-justify-between gl-gap-3 sm:gl-flex\">\n <div class=\"item-title gl-mb-2 gl-min-w-0 sm:gl-mb-0\">\n <span v-if=\"childItem.confidential\">\n <gl-icon\n v-gl-tooltip.top\n name=\"eye-slash\"\n class=\"gl-text-orange-500\"\n data-testid=\"confidential-icon\"\n :aria-label=\"$options.i18n.confidential\"\n :title=\"$options.i18n.confidential\"\n />\n </span>\n <gl-link\n :id=\"childItemUniqueId\"\n :href=\"childItemWebUrl\"\n :class=\"{ '!gl-text-subtle': !isChildItemOpen }\"\n class=\"gl-hyphens-auto gl-break-words gl-font-semibold\"\n @click.exact.stop=\"handleTitleClick\"\n @mouseover=\"$emit('mouseover')\"\n @mouseout=\"$emit('mouseout')\"\n >\n {{ childItem.title }}\n </gl-link>\n </div>\n <div\n class=\"gl-flex gl-shrink-0 gl-flex-row-reverse gl-items-center gl-justify-end gl-gap-3 sm:gl-flex-row\"\n >\n <gl-avatars-inline\n v-if=\"assignees.length\"\n :avatars=\"assignees\"\n collapsed\n :max-visible=\"2\"\n :avatar-size=\"16\"\n badge-tooltip-prop=\"name\"\n :badge-sr-only-text=\"assigneesCollapsedTooltip\"\n >\n <template #avatar=\"{ avatar }\">\n <gl-avatar-link v-gl-tooltip :href=\"avatar.webUrl\" :title=\"avatar.name\">\n <gl-avatar :alt=\"avatar.name\" :src=\"avatar.avatarUrl\" :size=\"16\" @click.stop />\n </gl-avatar-link>\n </template>\n </gl-avatars-inline>\n <work-item-relationship-icons\n v-if=\"isChildItemOpen && filteredLinkedChildItems.length\"\n :work-item-type=\"childItemType\"\n :linked-work-items=\"filteredLinkedChildItems\"\n :work-item-full-path=\"childItemFullPath\"\n :work-item-iid=\"childItemIid\"\n :work-item-web-url=\"childItemWebUrl\"\n />\n <span\n :id=\"`statusIcon-${childItem.id}`\"\n class=\"gl-cursor-help\"\n data-testid=\"item-status-icon\"\n >\n <work-item-state-badge :work-item-state=\"childItem.state\" :show-icon=\"false\" />\n </span>\n <rich-timestamp-tooltip\n :target=\"`statusIcon-${childItem.id}`\"\n :raw-timestamp=\"stateTimestamp\"\n :timestamp-type-text=\"stateTimestampTypeText\"\n />\n </div>\n </div>\n <work-item-link-child-metadata\n :reference=\"displayReference\"\n :iid=\"childItem.iid\"\n :is-child-item-open=\"isChildItemOpen\"\n :metadata-widgets=\"metadataWidgets\"\n :show-weight=\"showWeight\"\n :work-item-type=\"childItemType\"\n class=\"ml-xl-0\"\n />\n <div v-if=\"displayLabels\" class=\"gl-flex gl-flex-wrap\">\n <gl-label\n v-for=\"label in labels\"\n :key=\"label.id\"\n :title=\"label.title\"\n :background-color=\"label.color\"\n :description=\"label.description\"\n :scoped=\"showScopedLabel(label)\"\n class=\"gl-mb-auto gl-mr-2 gl-mt-2\"\n tooltip-placement=\"top\"\n @click.stop\n />\n </div>\n </div>\n <div v-if=\"canUpdate\">\n <gl-button\n v-gl-tooltip\n class=\"-gl-mr-2 -gl-mt-1\"\n category=\"tertiary\"\n size=\"small\"\n icon=\"close\"\n :aria-label=\"$options.i18n.remove\"\n :title=\"$options.i18n.remove\"\n data-testid=\"remove-work-item-link\"\n @click.stop=\"$emit('removeChild', childItem)\"\n />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_link_child_contents.vue?vue&type=template&id=ad7ca718\"\nimport script from \"./work_item_link_child_contents.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_link_child_contents.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-flex gl-break-anywhere\"},[_c('span',{staticClass:\"dropdown-label-box gl-top-0 gl-mr-3 gl-shrink-0\",style:({ 'background-color': _vm.label.color }),attrs:{\"data-testid\":\"label-color-box\"}}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.label.title))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./label_item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./label_item.vue?vue&type=script&lang=js\"","<script>\nexport default {\n props: {\n label: {\n type: Object,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-flex gl-break-anywhere\">\n <span\n class=\"dropdown-label-box gl-top-0 gl-mr-3 gl-shrink-0\"\n :style=\"{ 'background-color': label.color }\"\n data-testid=\"label-color-box\"\n ></span>\n <span>{{ label.title }}</span>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./label_item.vue?vue&type=template&id=486db2f8\"\nimport script from \"./label_item.vue?vue&type=script&lang=js\"\nexport * from \"./label_item.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { getFormData } from '~/diffs/store/utils';\n\nexport const getDraftReplyFormData = (data) => ({\n endpoint: data.notesData.draftsPath,\n data,\n});\n\nexport const getDraftFormData = (params) => ({\n endpoint: params.notesData.draftsPath,\n data: getFormData(params),\n});\n\nexport const parallelLineKey = (line, side) => (line[side] ? line[side].line_code : '');\n\nexport const showDraftOnSide = (line, side) => {\n // inline mode\n if (side === null) {\n return true;\n }\n\n // parallel\n if (side === 'left' || side === 'right') {\n const otherSide = side === 'left' ? 'right' : 'left';\n const thisCode = (line[side] && line[side].line_code) || '';\n const otherCode = (line[otherSide] && line[otherSide].line_code) || '';\n\n // either the lineCodes are different\n // or if they're the same, only show on the left side\n if (thisCode !== otherCode || (side === 'left' && thisCode === otherCode)) {\n return true;\n }\n }\n\n return false;\n};\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseIntersection;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueParticipants\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"getStatus\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":false},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"participants\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserAvailability\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"include\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"getStatus\"}}}]}]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":451}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/user_availability.fragment.graphql\\\"\\n\\nquery issueParticipants($fullPath: ID!, $iid: String!, $getStatus: Boolean = false) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n participants {\\n nodes {\\n ...User\\n ...UserAvailability @include(if: $getStatus)\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user_availability.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueParticipants\"] = oneQuery(doc, \"issueParticipants\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"EnumTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalWidgetType\"},\"directives\":[],\"values\":[{\"kind\":\"EnumValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ASSIGNEES\"},\"directives\":[]}]},{\"kind\":\"InterfaceTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalWorkItemWidget\"},\"interfaces\":[],\"directives\":[],\"fields\":[{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalWidgetType\"}}},\"directives\":[]}]},{\"kind\":\"ObjectTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalWorkItemAssignees\"},\"interfaces\":[{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalWorkItemWidget\"}}],\"directives\":[],\"fields\":[{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalWidgetType\"}}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UserCore\"}}},\"directives\":[]}]},{\"kind\":\"ObjectTypeExtension\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItem\"},\"interfaces\":[],\"directives\":[],\"fields\":[{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"mockWidgets\"},\"arguments\":[],\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalWorkItemWidget\"}}},\"directives\":[]}]},{\"kind\":\"InputObjectTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalUserInput\"},\"directives\":[],\"fields\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"username\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}]},{\"kind\":\"InputObjectTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalLabelInput\"},\"directives\":[],\"fields\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"textColor\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}]},{\"kind\":\"InputObjectTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalIterationCadence\"},\"directives\":[],\"fields\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}]},{\"kind\":\"InputObjectTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalIterationInput\"},\"directives\":[],\"fields\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"updatedAt\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadence\"},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalIterationCadence\"}}},\"directives\":[]}]},{\"kind\":\"InputObjectTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalMilestoneInput\"},\"directives\":[],\"fields\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"expired\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}]},{\"kind\":\"InputObjectTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalCrmContactsInput\"},\"directives\":[],\"fields\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"lastName\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"organizationName\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}]},{\"kind\":\"InputObjectTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalUpdateWorkItemInput\"},\"directives\":[],\"fields\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemID\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"assignees\"},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalUserInput\"}}}},\"directives\":[]}]},{\"kind\":\"InputObjectTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalRolledUpDatesInput\"},\"directives\":[],\"fields\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"isFixed\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"rollUp\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}]},{\"kind\":\"ObjectTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalWorkItemPayload\"},\"interfaces\":[],\"directives\":[],\"fields\":[{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"arguments\":[],\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItem\"}}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}},\"directives\":[]}]},{\"kind\":\"InputObjectTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalUpdateNewWorkItemInput\"},\"directives\":[],\"fields\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemType\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"assignees\"},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalUserInput\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalLabelInput\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"iteration\"},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalIterationInput\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"milestone\"},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalMilestoneInput\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"rolledUpDates\"},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalRolledUpDatesInput\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContacts\"},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalCrmContactsInput\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"directives\":[]}]},{\"kind\":\"ObjectTypeExtension\",\"name\":{\"kind\":\"Name\",\"value\":\"Mutation\"},\"interfaces\":[],\"directives\":[],\"fields\":[{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"updateNewWorkItem\"},\"arguments\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalUpdateNewWorkItemInput\"}}},\"directives\":[]}],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalWorkItemPayload\"}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"localUpdateWorkItem\"},\"arguments\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalUpdateWorkItemInput\"}}},\"directives\":[]}],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalWorkItemPayload\"}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"updateActiveDesignDiscussion\"},\"arguments\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"source\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"directives\":[]}]},{\"kind\":\"ObjectTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ActiveDesignDiscussion\"},\"interfaces\":[],\"directives\":[],\"fields\":[{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"source\"},\"arguments\":[],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}]},{\"kind\":\"ObjectTypeExtension\",\"name\":{\"kind\":\"Name\",\"value\":\"Query\"},\"interfaces\":[],\"directives\":[],\"fields\":[{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"activeDesignDiscussion\"},\"arguments\":[],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ActiveDesignDiscussion\"}},\"directives\":[]}]},{\"kind\":\"ObjectTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalWorkItemChildIsExpanded\"},\"interfaces\":[],\"directives\":[],\"fields\":[{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemID\"}}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"isExpanded\"},\"arguments\":[],\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}}},\"directives\":[]}]}],\"loc\":{\"start\":0,\"end\":2150}};\n doc.loc.source = {\"body\":\"enum LocalWidgetType {\\n ASSIGNEES\\n}\\n\\ninterface LocalWorkItemWidget {\\n type: LocalWidgetType!\\n}\\n\\ntype LocalWorkItemAssignees implements LocalWorkItemWidget {\\n type: LocalWidgetType!\\n nodes: [UserCore]\\n}\\n\\nextend type WorkItem {\\n mockWidgets: [LocalWorkItemWidget]\\n}\\n\\ninput LocalUserInput {\\n id: ID!\\n name: String\\n username: String\\n webUrl: String\\n avatarUrl: String\\n}\\n\\ninput LocalLabelInput {\\n color: String\\n description: String\\n id: ID!\\n textColor: String\\n title: String\\n}\\n\\ninput LocalIterationCadence {\\n id: ID!\\n title: String\\n}\\n\\ninput LocalIterationInput {\\n description: String\\n id: ID!\\n iid: String\\n title: String\\n startDate: String\\n dueDate: String\\n webUrl: String\\n updatedAt: String\\n iterationCadence: [LocalIterationCadence]\\n}\\n\\ninput LocalMilestoneInput {\\n expired: Boolean\\n id: ID!\\n title: String\\n state: String\\n dueDate: String\\n webUrl: String\\n webPath: String\\n}\\n\\ninput LocalCrmContactsInput {\\n firstName: String\\n lastName: String\\n organizationName: String\\n id: ID!\\n}\\n\\ninput LocalUpdateWorkItemInput {\\n id: WorkItemID!\\n assignees: [LocalUserInput!]\\n}\\n\\ninput LocalRolledUpDatesInput {\\n isFixed: Boolean!\\n rollUp: Boolean!\\n dueDate: String\\n startDate: String\\n}\\n\\ntype LocalWorkItemPayload {\\n workItem: WorkItem!\\n errors: [String!]\\n}\\n\\ninput LocalUpdateNewWorkItemInput {\\n fullPath: String!\\n workItemType: String!\\n healthStatus: String\\n assignees: [LocalUserInput]\\n color: String\\n title: String\\n description: String\\n confidential: Boolean\\n labels: [LocalLabelInput]\\n iteration: [LocalIterationInput]\\n milestone: [LocalMilestoneInput]\\n rolledUpDates: [LocalRolledUpDatesInput]\\n crmContacts: [LocalCrmContactsInput]\\n weight: Int\\n}\\n\\nextend type Mutation {\\n updateNewWorkItem(input: LocalUpdateNewWorkItemInput!): LocalWorkItemPayload\\n localUpdateWorkItem(input: LocalUpdateWorkItemInput!): LocalWorkItemPayload\\n updateActiveDesignDiscussion(id: ID!, source: String!): Boolean\\n}\\n\\ntype ActiveDesignDiscussion {\\n id: ID\\n source: String\\n}\\n\\nextend type Query {\\n activeDesignDiscussion: ActiveDesignDiscussion\\n}\\n\\ntype LocalWorkItemChildIsExpanded {\\n id: WorkItemID!\\n isExpanded: Boolean!\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n module.exports = doc;\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"TimelogFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Timelog\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timeSpent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"user\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spentAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"note\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"body\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"summary\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"adminTimelog\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":189}};\n doc.loc.source = {\"body\":\"fragment TimelogFragment on Timelog {\\n __typename\\n id\\n timeSpent\\n user {\\n id\\n name\\n }\\n spentAt\\n note {\\n id\\n body\\n }\\n summary\\n userPermissions {\\n adminTimelog\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"TimelogFragment\"] = oneQuery(doc, \"TimelogFragment\");\n \n","import ScrollParent from 'scrollparent';\nimport { contentTop } from './common_utils';\n\nconst interactionEvents = ['mousedown', 'touchstart', 'keydown', 'wheel'];\n\nexport function createResizeObserver() {\n return new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n entry.target.dispatchEvent(new CustomEvent(`ResizeUpdate`, { detail: { entry } }));\n });\n });\n}\n\n/**\n * Watches for change in size of a container element (e.g. for lazy-loaded images)\n * and scrolls the target note to the top of the content area.\n * Stops watching after any user input. So if user opens sidebar or manually\n * scrolls the page we don't hijack their scroll position\n *\n * @param {Object} options\n * @param {string} options.targetId - id of element to scroll to\n * @param {string} options.container - Selector of element containing target\n * @param {Element} options.component - Element containing target\n *\n * @return {ResizeObserver|null} - ResizeObserver instance if target looks like a note DOM ID\n */\nexport function scrollToTargetOnResize({\n targetId = window.location.hash.slice(1),\n container = '#content-body',\n} = {}) {\n if (!targetId) return null;\n\n const scrollContainer =\n ScrollParent(document.getElementById(targetId)) || document.documentElement;\n const scrollContainerIsDocument = scrollContainer === document.documentElement;\n\n const ro = createResizeObserver();\n // if we are scrolling document, add the resizeobserver to container el instead - we don't\n // want to observe the whole document\n const containerEl = scrollContainerIsDocument\n ? document.querySelector(container)\n : scrollContainer;\n let interactionListenersAdded = false;\n\n function keepTargetAtTop() {\n const anchorEl = document.getElementById(targetId);\n\n if (!anchorEl) return;\n\n const anchorTop = anchorEl.getBoundingClientRect().top + window.scrollY;\n const top = anchorTop - contentTop();\n scrollContainer.scrollTo({\n top,\n });\n\n if (!interactionListenersAdded) {\n interactionEvents.forEach((event) =>\n // eslint-disable-next-line no-use-before-define\n document.addEventListener(event, removeListeners),\n );\n interactionListenersAdded = true;\n }\n }\n\n function removeListeners() {\n interactionEvents.forEach((event) => document.removeEventListener(event, removeListeners));\n\n ro.unobserve(containerEl);\n containerEl.removeEventListener('ResizeUpdate', keepTargetAtTop);\n }\n\n containerEl.addEventListener('ResizeUpdate', keepTargetAtTop);\n\n ro.observe(containerEl);\n return ro;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{ref:\"userAvatar\"},[_c('gl-avatar',{staticClass:\"gl-bg-cover\",class:{\n lazy: _vm.lazy,\n [_vm.cssClasses]: true,\n },style:(_vm.pseudo ? { backgroundImage: `url('${_vm.sanitizedSource}')` } : null),attrs:{\"src\":_vm.pseudo ? undefined : _vm.resultantSrcAttribute,\"data-src\":_vm.sanitizedSource,\"size\":_vm.size,\"alt\":_vm.imgAlt,\"data-testid\":\"user-avatar-image\"}}),_vm._v(\" \"),(_vm.tooltipText || _vm.$scopedSlots.default)?_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.userAvatar,\"placement\":_vm.tooltipPlacement,\"boundary\":\"window\"}},[_vm._t(\"default\",function(){return [_vm._v(_vm._s(_vm.tooltipText))]})],2):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_avatar_image.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_avatar_image.vue?vue&type=script&lang=js\"","<script>\n/* This is a re-usable vue component for rendering a user avatar that\n does not need to link to the user's profile. The image and an optional\n tooltip can be configured by props passed to this component.\n\n Sample configuration:\n\n <user-avatar\n lazy\n :img-src=\"userAvatarSrc\"\n :img-alt=\"tooltipText\"\n :tooltip-text=\"tooltipText\"\n tooltip-placement=\"top\"\n :size=\"24\"\n />\n\n */\n\nimport { GlTooltip, GlAvatar } from '@gitlab/ui';\nimport { isObject } from 'lodash';\nimport defaultAvatarUrl from 'images/no_avatar.png';\nimport { __ } from '~/locale';\nimport { placeholderImage } from '~/lazy_loader';\n\nexport default {\n name: 'UserAvatarImage',\n components: {\n GlTooltip,\n GlAvatar,\n },\n props: {\n lazy: {\n type: Boolean,\n required: false,\n default: false,\n },\n imgSrc: {\n type: String,\n required: false,\n default: defaultAvatarUrl,\n },\n cssClasses: {\n type: String,\n required: false,\n default: '',\n },\n imgAlt: {\n type: String,\n required: false,\n default: __('user avatar'),\n },\n size: {\n type: [Number, Object],\n required: true,\n },\n tooltipText: {\n type: String,\n required: false,\n default: '',\n },\n tooltipPlacement: {\n type: String,\n required: false,\n default: 'top',\n },\n // Render avatar using pseudo-elements so that they cannot be selected or copied\n pseudo: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n // API response sends null when gravatar is disabled and\n // we provide an empty string when we use it inside user avatar link.\n // In both cases we should render the defaultAvatarUrl\n sanitizedSource() {\n let baseSrc = this.imgSrc === '' || this.imgSrc === null ? defaultAvatarUrl : this.imgSrc;\n // Only adds the width to the URL if its not a base64 data image\n if (!(baseSrc.indexOf('data:') === 0) && !baseSrc.includes('?'))\n baseSrc += `?width=${this.maximumSize}`;\n return baseSrc;\n },\n maximumSize() {\n if (isObject(this.size)) {\n return Math.max(...Object.values(this.size)) * 2;\n }\n return this.size * 2;\n },\n resultantSrcAttribute() {\n return this.lazy ? placeholderImage : this.sanitizedSource;\n },\n },\n};\n</script>\n\n<template>\n <span ref=\"userAvatar\">\n <gl-avatar\n class=\"gl-bg-cover\"\n :class=\"{\n lazy: lazy,\n [cssClasses]: true,\n }\"\n :src=\"pseudo ? undefined : resultantSrcAttribute\"\n :style=\"pseudo ? { backgroundImage: `url('${sanitizedSource}')` } : null\"\n :data-src=\"sanitizedSource\"\n :size=\"size\"\n :alt=\"imgAlt\"\n data-testid=\"user-avatar-image\"\n />\n\n <gl-tooltip\n v-if=\"tooltipText || $scopedSlots.default\"\n :target=\"() => $refs.userAvatar\"\n :placement=\"tooltipPlacement\"\n boundary=\"window\"\n >\n <slot>{{ tooltipText }}</slot>\n </gl-tooltip>\n </span>\n</template>\n","import { render, staticRenderFns } from \"./user_avatar_image.vue?vue&type=template&id=0836472c\"\nimport script from \"./user_avatar_image.vue?vue&type=script&lang=js\"\nexport * from \"./user_avatar_image.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/* global DocumentTouch */\n\nimport { defaultSortableOptions, DRAG_CLASS } from './constants';\n\nexport function sortableStart() {\n document.body.classList.add(DRAG_CLASS);\n}\n\nexport function sortableEnd() {\n document.body.classList.remove(DRAG_CLASS);\n}\n\nexport function isDragging() {\n return document.body.classList.contains(DRAG_CLASS);\n}\n\nexport function getSortableDefaultOptions(options) {\n const touchEnabled =\n 'ontouchstart' in window || (window.DocumentTouch && document instanceof DocumentTouch);\n\n const defaultSortOptions = {\n ...defaultSortableOptions,\n filter: '.no-drag',\n delay: touchEnabled ? 100 : 0,\n scrollSensitivity: touchEnabled ? 60 : 100,\n scrollSpeed: 20,\n onStart: sortableStart,\n onEnd: sortableEnd,\n };\n\n return {\n ...defaultSortOptions,\n ...options,\n };\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"namespaceProjectsForLinksWidget\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectSearch\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"namespace\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"projects\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectSearch\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubgroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSiblingProjects\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"sort\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"ACTIVITY_DESC\"}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nameWithNamespace\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"namespace\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":440}};\n doc.loc.source = {\"body\":\"query namespaceProjectsForLinksWidget($fullPath: ID!, $projectSearch: String) {\\n namespace(fullPath: $fullPath) {\\n id\\n projects(\\n search: $projectSearch\\n includeSubgroups: true\\n includeSiblingProjects: true\\n sort: ACTIVITY_DESC\\n ) {\\n nodes {\\n id\\n name\\n avatarUrl\\n nameWithNamespace\\n fullPath\\n namespace {\\n id\\n name\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"namespaceProjectsForLinksWidget\"] = oneQuery(doc, \"namespaceProjectsForLinksWidget\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"workspaceAutocompleteUsersSearch\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":true},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"groupWorkspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"skip\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"users\"},\"name\":{\"kind\":\"Name\",\"value\":\"autocompleteUsers\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserAvailability\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"users\"},\"name\":{\"kind\":\"Name\",\"value\":\"autocompleteUsers\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserAvailability\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":552}};\n doc.loc.source = {\"body\":\"#import \\\"../fragments/user.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/user_availability.fragment.graphql\\\"\\n\\nquery workspaceAutocompleteUsersSearch(\\n $search: String!\\n $fullPath: ID!\\n $isProject: Boolean = true\\n) {\\n groupWorkspace: group(fullPath: $fullPath) @skip(if: $isProject) {\\n id\\n users: autocompleteUsers(search: $search) {\\n ...User\\n ...UserAvailability\\n }\\n }\\n workspace: project(fullPath: $fullPath) {\\n id\\n users: autocompleteUsers(search: $search) {\\n ...User\\n ...UserAvailability\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"../fragments/user.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user_availability.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"workspaceAutocompleteUsersSearch\"] = oneQuery(doc, \"workspaceAutocompleteUsersSearch\");\n \n","import produce from 'immer';\nimport { TYPENAME_ITERATIONS_CADENCE } from '~/graphql_shared/constants';\nimport { getIdFromGraphQLId, convertToGraphQLId } from '~/graphql_shared/utils';\nimport { isPositiveInteger } from '~/lib/utils/number_utils';\nimport { getParameterByName } from '~/lib/utils/url_utility';\nimport { __, s__ } from '~/locale';\nimport {\n FILTERED_SEARCH_TERM,\n OPERATOR_NOT,\n OPERATOR_OR,\n OPERATOR_AFTER,\n OPERATORS_TO_GROUP,\n TOKEN_TYPE_ASSIGNEE,\n TOKEN_TYPE_REVIEWER,\n TOKEN_TYPE_AUTHOR,\n TOKEN_TYPE_DRAFT,\n TOKEN_TYPE_CONFIDENTIAL,\n TOKEN_TYPE_ITERATION,\n TOKEN_TYPE_MILESTONE,\n TOKEN_TYPE_RELEASE,\n TOKEN_TYPE_TYPE,\n TOKEN_TYPE_HEALTH,\n TOKEN_TYPE_LABEL,\n TOKEN_TYPE_EPIC,\n TOKEN_TYPE_WEIGHT,\n} from '~/vue_shared/components/filtered_search_bar/constants';\nimport { DEFAULT_PAGE_SIZE } from '~/vue_shared/issuable/list/constants';\nimport {\n WORK_ITEM_TO_ISSUABLE_MAP,\n WIDGET_TYPE_MILESTONE,\n WIDGET_TYPE_AWARD_EMOJI,\n WIDGET_TYPE_ASSIGNEES,\n WIDGET_TYPE_LABELS,\n WORK_ITEM_TYPE_ENUM_ISSUE,\n WORK_ITEM_TYPE_ENUM_INCIDENT,\n WORK_ITEM_TYPE_ENUM_TASK,\n} from '~/work_items/constants';\nimport { EMOJI_THUMBS_UP, EMOJI_THUMBS_DOWN } from '~/emoji/constants';\nimport { BoardType } from '~/boards/constants';\nimport { STATUS_CLOSED, STATUS_OPEN, TYPE_EPIC } from '../constants';\nimport {\n ALTERNATIVE_FILTER,\n API_PARAM,\n BLOCKING_ISSUES_ASC,\n BLOCKING_ISSUES_DESC,\n CLOSED_AT_ASC,\n CLOSED_AT_DESC,\n CREATED_ASC,\n CREATED_DESC,\n DUE_DATE_ASC,\n DUE_DATE_DESC,\n filtersMap,\n HEALTH_STATUS_ASC,\n HEALTH_STATUS_DESC,\n LABEL_PRIORITY_ASC,\n LABEL_PRIORITY_DESC,\n MILESTONE_DUE_ASC,\n MILESTONE_DUE_DESC,\n NORMAL_FILTER,\n PARAM_ASSIGNEE_ID,\n POPULARITY_ASC,\n POPULARITY_DESC,\n PRIORITY_ASC,\n PRIORITY_DESC,\n RELATIVE_POSITION_ASC,\n WILDCARD_FILTER,\n wildcardFilterValues,\n TITLE_ASC,\n TITLE_DESC,\n UPDATED_ASC,\n UPDATED_DESC,\n URL_PARAM,\n urlSortParams,\n WEIGHT_ASC,\n WEIGHT_DESC,\n MERGED_AT_ASC,\n MERGED_AT_DESC,\n} from './constants';\n\n/**\n * Get the types of work items that should be displayed on issues lists.\n * This should be consistent with `Issue::TYPES_FOR_LIST` in the backend.\n *\n * @returns {Array<string>}\n */\nexport const getDefaultWorkItemTypes = () => [\n WORK_ITEM_TYPE_ENUM_ISSUE,\n WORK_ITEM_TYPE_ENUM_INCIDENT,\n WORK_ITEM_TYPE_ENUM_TASK,\n];\n\nexport const getTypeTokenOptions = () => [\n { icon: 'issue-type-issue', title: s__('WorkItem|Issue'), value: 'issue' },\n { icon: 'issue-type-incident', title: s__('WorkItem|Incident'), value: 'incident' },\n { icon: 'issue-type-task', title: s__('WorkItem|Task'), value: 'task' },\n];\n\nexport const getInitialPageParams = (\n pageSize,\n firstPageSize = pageSize ?? DEFAULT_PAGE_SIZE,\n lastPageSize,\n afterCursor,\n beforeCursor,\n // eslint-disable-next-line max-params\n) => ({\n firstPageSize: lastPageSize ? undefined : firstPageSize,\n lastPageSize,\n afterCursor,\n beforeCursor,\n});\n\nexport const getSortKey = (sort, sortMap = urlSortParams) =>\n Object.keys(sortMap).find((key) => sortMap[key] === sort);\n\nexport const isSortKey = (sort, sortMap = urlSortParams) => Object.keys(sortMap).includes(sort);\n\nexport const deriveSortKey = ({ sort, sortMap, state = STATUS_OPEN }) => {\n const defaultSortKey = state === STATUS_CLOSED ? UPDATED_DESC : CREATED_DESC;\n const legacySortKey = getSortKey(sort, sortMap);\n const graphQLSortKey = isSortKey(sort?.toUpperCase(), sortMap) && sort.toUpperCase();\n\n return legacySortKey || graphQLSortKey || defaultSortKey;\n};\n\nexport const getSortOptions = ({\n hasBlockedIssuesFeature,\n hasIssuableHealthStatusFeature,\n hasIssueWeightsFeature,\n hasManualSort = true,\n hasMergedDate = false,\n} = {}) => {\n const sortOptions = [\n {\n id: 1,\n title: __('Priority'),\n sortDirection: {\n ascending: PRIORITY_ASC,\n descending: PRIORITY_DESC,\n },\n },\n {\n id: 2,\n title: __('Created date'),\n sortDirection: {\n ascending: CREATED_ASC,\n descending: CREATED_DESC,\n },\n },\n {\n id: 3,\n title: __('Updated date'),\n sortDirection: {\n ascending: UPDATED_ASC,\n descending: UPDATED_DESC,\n },\n },\n {\n id: 4,\n title: __('Closed date'),\n sortDirection: {\n ascending: CLOSED_AT_ASC,\n descending: CLOSED_AT_DESC,\n },\n },\n {\n id: 5,\n title: __('Milestone due date'),\n sortDirection: {\n ascending: MILESTONE_DUE_ASC,\n descending: MILESTONE_DUE_DESC,\n },\n },\n {\n id: 6,\n title: __('Due date'),\n sortDirection: {\n ascending: DUE_DATE_ASC,\n descending: DUE_DATE_DESC,\n },\n },\n {\n id: 7,\n title: __('Popularity'),\n sortDirection: {\n ascending: POPULARITY_ASC,\n descending: POPULARITY_DESC,\n },\n },\n {\n id: 8,\n title: __('Label priority'),\n sortDirection: {\n ascending: LABEL_PRIORITY_ASC,\n descending: LABEL_PRIORITY_DESC,\n },\n },\n hasManualSort && {\n id: 9,\n title: __('Manual'),\n sortDirection: {\n ascending: RELATIVE_POSITION_ASC,\n descending: RELATIVE_POSITION_ASC,\n },\n },\n {\n id: 10,\n title: __('Title'),\n sortDirection: {\n ascending: TITLE_ASC,\n descending: TITLE_DESC,\n },\n },\n ];\n\n if (hasMergedDate) {\n sortOptions.push({\n id: sortOptions.length + 1,\n title: s__('SortOptions|Merged date'),\n sortDirection: {\n ascending: MERGED_AT_ASC,\n descending: MERGED_AT_DESC,\n },\n });\n }\n\n if (hasIssuableHealthStatusFeature) {\n sortOptions.push({\n id: sortOptions.length + 1,\n title: __('Health'),\n sortDirection: {\n ascending: HEALTH_STATUS_ASC,\n descending: HEALTH_STATUS_DESC,\n },\n });\n }\n\n if (hasIssueWeightsFeature) {\n sortOptions.push({\n id: sortOptions.length + 1,\n title: __('Weight'),\n sortDirection: {\n ascending: WEIGHT_ASC,\n descending: WEIGHT_DESC,\n },\n });\n }\n\n if (hasBlockedIssuesFeature) {\n sortOptions.push({\n id: sortOptions.length + 1,\n title: __('Blocking'),\n sortDirection: {\n ascending: BLOCKING_ISSUES_ASC,\n descending: BLOCKING_ISSUES_DESC,\n },\n });\n }\n\n return sortOptions.filter((x) => x);\n};\n\nconst tokenTypes = Object.keys(filtersMap);\n\nconst getUrlParams = (tokenType) =>\n Object.values(filtersMap[tokenType][URL_PARAM]).flatMap((filterObj) => Object.values(filterObj));\n\nconst urlParamKeys = tokenTypes.flatMap(getUrlParams);\n\nconst getTokenTypeFromUrlParamKey = (urlParamKey) =>\n tokenTypes.find((tokenType) => getUrlParams(tokenType).includes(urlParamKey));\n\nconst getOperatorFromUrlParamKey = (tokenType, urlParamKey) =>\n Object.entries(filtersMap[tokenType][URL_PARAM]).find(([, filterObj]) =>\n Object.values(filterObj).includes(urlParamKey),\n )[0];\n\nexport const getFilterTokens = (locationSearch) =>\n Array.from(new URLSearchParams(locationSearch).entries())\n .filter(([key]) => urlParamKeys.includes(key))\n .map(([key, data]) => {\n const type = getTokenTypeFromUrlParamKey(key);\n const operator = getOperatorFromUrlParamKey(type, key);\n return {\n type,\n value: { data, operator },\n };\n });\n\nexport function groupMultiSelectFilterTokens(filterTokensToGroup, tokenDefs) {\n const groupedTokens = [];\n\n const multiSelectTokenTypes = tokenDefs.filter((t) => t.multiSelect).map((t) => t.type);\n\n filterTokensToGroup.forEach((token) => {\n const shouldGroup =\n OPERATORS_TO_GROUP.includes(token.value.operator) &&\n multiSelectTokenTypes.includes(token.type);\n\n if (!shouldGroup) {\n groupedTokens.push(token);\n return;\n }\n\n const sameTypeAndOperator = (t) =>\n t.type === token.type && t.value.operator === token.value.operator;\n const existingToken = groupedTokens.find(sameTypeAndOperator);\n\n if (!existingToken) {\n groupedTokens.push({\n ...token,\n value: {\n ...token.value,\n data: [token.value.data],\n },\n });\n } else if (!existingToken.value.data.includes(token.value.data)) {\n existingToken.value.data.push(token.value.data);\n }\n });\n\n return groupedTokens;\n}\n\nexport const isNotEmptySearchToken = (token) =>\n !(token.type === FILTERED_SEARCH_TERM && !token.value.data);\n\nexport const isAssigneeIdParam = (type, data) => {\n return (\n type === TOKEN_TYPE_ASSIGNEE &&\n isPositiveInteger(data) &&\n getParameterByName(PARAM_ASSIGNEE_ID) === data\n );\n};\n\nexport const isIterationCadenceIdParam = (type, data) => {\n return type === TOKEN_TYPE_ITERATION && data?.includes('&');\n};\n\nconst getFilterType = ({ type, value: { data, operator } }) => {\n const isUnionedAuthor = type === TOKEN_TYPE_AUTHOR && operator === OPERATOR_OR;\n const isUnionedLabel = type === TOKEN_TYPE_LABEL && operator === OPERATOR_OR;\n const isAfter = operator === OPERATOR_AFTER;\n\n if (\n isUnionedAuthor ||\n isUnionedLabel ||\n isAssigneeIdParam(type, data) ||\n isIterationCadenceIdParam(type, data) ||\n isAfter\n ) {\n return ALTERNATIVE_FILTER;\n }\n if (wildcardFilterValues.includes(data)) {\n return WILDCARD_FILTER;\n }\n\n return NORMAL_FILTER;\n};\n\nconst wildcardTokens = [\n TOKEN_TYPE_ASSIGNEE,\n TOKEN_TYPE_EPIC,\n TOKEN_TYPE_HEALTH,\n TOKEN_TYPE_ITERATION,\n TOKEN_TYPE_MILESTONE,\n TOKEN_TYPE_RELEASE,\n TOKEN_TYPE_REVIEWER,\n TOKEN_TYPE_WEIGHT,\n];\n\nconst isWildcardValue = (tokenType, value) =>\n wildcardTokens.includes(tokenType) && wildcardFilterValues.includes(value);\n\nconst requiresUpperCaseValue = (tokenType, value) =>\n tokenType === TOKEN_TYPE_TYPE || isWildcardValue(tokenType, value);\n\nconst formatData = (token) => {\n if (requiresUpperCaseValue(token.type, token.value.data)) {\n return token.value.data.toUpperCase();\n }\n if ([TOKEN_TYPE_CONFIDENTIAL, TOKEN_TYPE_DRAFT].includes(token.type)) {\n return token.value.data === 'yes';\n }\n\n return token.value.data;\n};\n\nfunction fullIterationCadenceId(id) {\n if (!id) {\n return null;\n }\n\n return convertToGraphQLId(TYPENAME_ITERATIONS_CADENCE, getIdFromGraphQLId(id));\n}\n\nexport const convertToApiParams = (filterTokens) => {\n const params = new Map();\n const not = new Map();\n const or = new Map();\n\n filterTokens.filter(isNotEmptySearchToken).forEach((token) => {\n const filterType = getFilterType(token);\n const apiField = filtersMap[token.type][API_PARAM][filterType];\n let obj;\n if (token.value.operator === OPERATOR_NOT) {\n obj = not;\n } else if (token.value.operator === OPERATOR_OR) {\n obj = or;\n } else {\n obj = params;\n }\n const data = formatData(token);\n if (isIterationCadenceIdParam(token.type, token.value.data)) {\n const [iteration, cadence] = data.split('&');\n const cadenceId = fullIterationCadenceId(cadence);\n const iterationWildCardId = iteration.toUpperCase();\n obj.set(apiField, obj.has(apiField) ? [obj.get(apiField), cadenceId].flat() : cadenceId);\n const secondApiField = filtersMap[token.type][API_PARAM][WILDCARD_FILTER];\n obj.set(\n secondApiField,\n obj.has(secondApiField)\n ? [obj.get(secondApiField), iterationWildCardId].flat()\n : iterationWildCardId,\n );\n } else {\n obj.set(apiField, obj.has(apiField) ? [obj.get(apiField), data].flat() : data);\n }\n });\n\n if (not.size) {\n params.set('not', Object.fromEntries(not));\n }\n\n if (or.size) {\n params.set('or', Object.fromEntries(or));\n }\n\n return Object.fromEntries(params);\n};\n\nexport const convertToUrlParams = (filterTokens) => {\n const urlParamsMap = filterTokens.filter(isNotEmptySearchToken).reduce((acc, token) => {\n const filterType = getFilterType(token);\n const urlParam = filtersMap[token.type][URL_PARAM][token.value.operator]?.[filterType];\n return acc.set(\n urlParam,\n acc.has(urlParam) ? [acc.get(urlParam), token.value.data].flat() : token.value.data,\n );\n }, new Map());\n\n return Object.fromEntries(urlParamsMap);\n};\n\nexport const convertToSearchQuery = (filterTokens) =>\n filterTokens\n .filter((token) => token.type === FILTERED_SEARCH_TERM && token.value.data)\n .map((token) => token.value.data)\n .join(' ') || undefined;\n\nexport function findWidget(type, workItem) {\n return workItem?.widgets?.find((widget) => widget.type === type);\n}\n\nexport function mapWorkItemWidgetsToIssuableFields({\n list,\n workItem,\n isBoard = false,\n namespace = BoardType.project,\n type,\n}) {\n const listType = `${type}s`;\n\n return produce(list, (draftData) => {\n const activeList = isBoard\n ? draftData[namespace].board.lists.nodes[0][listType].nodes\n : draftData[namespace][listType].nodes;\n\n const activeItem = activeList.find((item) =>\n type === TYPE_EPIC\n ? item.iid === workItem.iid\n : getIdFromGraphQLId(item.id) === getIdFromGraphQLId(workItem.id),\n );\n\n Object.keys(WORK_ITEM_TO_ISSUABLE_MAP).forEach((widgetType) => {\n const currentWidget = findWidget(widgetType, workItem);\n if (!currentWidget) {\n return;\n }\n const property = WORK_ITEM_TO_ISSUABLE_MAP[widgetType];\n\n // handling the case for assignees and labels\n if (\n property === WORK_ITEM_TO_ISSUABLE_MAP[WIDGET_TYPE_ASSIGNEES] ||\n property === WORK_ITEM_TO_ISSUABLE_MAP[WIDGET_TYPE_LABELS]\n ) {\n activeItem[property] = {\n ...currentWidget[property],\n nodes: currentWidget[property].nodes.map((node) => ({\n __persist: true,\n ...node,\n })),\n };\n return;\n }\n\n // handling the case for milestone\n if (\n property === WORK_ITEM_TO_ISSUABLE_MAP[WIDGET_TYPE_MILESTONE] &&\n currentWidget[property]\n ) {\n activeItem[property] = { __persist: true, ...currentWidget[property] };\n return;\n }\n activeItem[property] = currentWidget[property];\n });\n\n activeItem.title = workItem.title;\n activeItem.confidential = workItem.confidential;\n activeItem.type = workItem?.workItemType?.name?.toUpperCase();\n });\n}\n\nexport function updateUpvotesCount({ list, workItem, namespace = BoardType.project }) {\n const type = WIDGET_TYPE_AWARD_EMOJI;\n const property = WORK_ITEM_TO_ISSUABLE_MAP[type];\n\n return produce(list, (draftData) => {\n const activeItem = draftData[namespace].issues.nodes.find(\n (issue) => issue.iid === workItem.iid,\n );\n\n const currentWidget = findWidget(type, workItem);\n if (!currentWidget) {\n return;\n }\n\n const upvotesCount =\n currentWidget[property].nodes.filter((emoji) => emoji.name === EMOJI_THUMBS_UP)?.length ?? 0;\n const downvotesCount =\n currentWidget[property].nodes.filter((emoji) => emoji.name === EMOJI_THUMBS_DOWN)?.length ??\n 0;\n activeItem.upvotes = upvotesCount;\n activeItem.downvotes = downvotesCount;\n });\n}\n","/**\n * Adds two numbers together\n * @param {Number} a\n * @param {Number} b\n */\nconst addition = (a, b) => a + b;\n\n/**\n * Returns the sum of all arguments\n * @param {...Number} numbers\n */\nconst sum = function () {\n for (var _len = arguments.length, numbers = new Array(_len), _key = 0; _key < _len; _key++) {\n numbers[_key] = arguments[_key];\n }\n return numbers.reduce(addition);\n}; // eslint-disable-line unicorn/no-array-callback-reference\n\n/**\n * Returns the average of all arguments\n * @param {...Number} numbers\n */\nconst average = function () {\n return sum(...arguments) / arguments.length;\n};\n\n/**\n * Returns the modulo of n for a divisor.\n *\n * Maps the integer n into the range [0, divisor) when the divisor is positive,\n * and (divisor, 0] when the divisor is negative.\n *\n * This is useful when indexing into an array, to ensure you always stay within\n * the array bounds.\n *\n * See https://2ality.com/2019/08/remainder-vs-modulo.html.\n *\n * @param {number} n The number to mod.\n * @param {number} divisor The divisor (e.g., the length of an array).\n * @returns {number}\n */\nfunction modulo(n, divisor) {\n const result = (n % divisor + divisor) % divisor;\n // Never return -0.\n return result === 0 ? 0 : result;\n}\n\n/**\n * Convert number to engineering format, using SI suffix\n * @param {Number|String} value - Number or Number-convertible String\n * @param {Number} precision\n * @return {String} number, possibly with a suffix\n */\nconst engineeringNotation = function (value) {\n let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n const invalidValues = [NaN, Infinity, -Infinity];\n const num = Number(value);\n if (invalidValues.includes(num) || invalidValues.includes(Number(precision))) {\n return num.toString();\n }\n const allYourBase = {\n '-24': 'y',\n '-21': 'z',\n '-18': 'a',\n '-15': 'f',\n '-12': 'p',\n '-9': 'n',\n '-6': 'μ',\n '-3': 'm',\n 0: '',\n 3: 'k',\n 6: 'M',\n 9: 'G',\n 12: 'T',\n 15: 'P',\n 18: 'E',\n 21: 'Z',\n 24: 'Y'\n };\n const exponentialNotation = num.toExponential(precision);\n const power = exponentialNotation.split('e').map(Number)[1] || 0;\n if (power < -24 || power > 24) {\n return exponentialNotation;\n }\n const scaledPower = 3 * Math.floor(power / 3);\n const scaledMantissa = (exponentialNotation / 10 ** scaledPower\n // strip trailing decimals from floating point rounding errors\n ).toFixed(precision)\n // strip trailing 0s after a decimal point\n .replace(/\\.([1-9]*)0+$/, (_, fractionalDigits) => {\n if (fractionalDigits) {\n return `.${fractionalDigits}`;\n }\n return '';\n });\n return `${scaledMantissa}${allYourBase[scaledPower]}`;\n};\n\n/**\n * Formats a number as a locale-based string using `Intl.NumberFormat`.\n *\n * 2333 -> 2,333\n * 232324 -> 232,324\n *\n * @param {Number|string} value - number to be converted\n * @param {{}?} options - options to be passed to\n * `Intl.NumberFormat` such as `unit` and `style`.\n * @param {String|String[]} locales - If set, forces a different\n * language code from the one currently in the document.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat\n *\n * @returns {String}\n */\nconst formatNumberToLocale = function (value) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let locales = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n if (Number.isNaN(Number(value))) {\n return value;\n }\n return new Intl.NumberFormat(locales, options).format(value);\n};\n\n// Converts a value (string, number, etc.) to a number\n// Taken from bootstrap-vue\nconst toFloat = function (value) {\n let defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;\n const float = parseFloat(value);\n return Number.isNaN(float) ? defaultValue : float;\n};\n\nexport { addition, average, engineeringNotation, formatNumberToLocale, modulo, sum, toFloat };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('work-item-attribute',{attrs:{\"anchor-id\":\"board-card-milestone\",\"wrapper-component\":\"div\",\"wrapper-component-class\":\"issue-milestone-details gl-flex gl-max-w-15 gl-gap-2 gl-items-center\",\"icon-name\":\"milestone\",\"icon-class\":\"flex-shrink-0\",\"title\":_vm.milestone.title,\"title-component-class\":\"milestone-title gl-inline-block gl-truncate\"},scopedSlots:_vm._u([{key:\"tooltip-text\",fn:function(){return [_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(_vm.__('Milestone')))]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.milestone.title))]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),(_vm.milestoneStart || _vm.milestoneDue)?_c('span',{class:{\n 'gl-text-red-300': _vm.isMilestonePastDue,\n 'gl-text-tertiary': !_vm.isMilestonePastDue,\n }},[_c('span',[_vm._v(_vm._s(_vm.milestoneDatesHuman))]),_c('br'),_c('span',[_vm._v(_vm._s(_vm.milestoneDatesAbsolute))])]):_vm._e()]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issue_milestone.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issue_milestone.vue?vue&type=script&lang=js\"","<script>\nimport { localeDateFormat, newDate, timeFor } from '~/lib/utils/datetime_utility';\nimport { __, sprintf } from '~/locale';\nimport timeagoMixin from '~/vue_shared/mixins/timeago';\nimport WorkItemAttribute from '~/vue_shared/components/work_item_attribute.vue';\n\nexport default {\n components: {\n WorkItemAttribute,\n },\n mixins: [timeagoMixin],\n props: {\n milestone: {\n type: Object,\n required: true,\n },\n },\n computed: {\n milestoneDue() {\n const dueDate = this.milestone.due_date || this.milestone.dueDate;\n\n return dueDate ? newDate(dueDate) : null;\n },\n milestoneStart() {\n const startDate = this.milestone.start_date || this.milestone.startDate;\n\n return startDate ? newDate(startDate) : null;\n },\n isMilestoneStarted() {\n if (!this.milestoneStart) {\n return false;\n }\n return Date.now() > this.milestoneStart;\n },\n isMilestonePastDue() {\n if (!this.milestoneDue) {\n return false;\n }\n return Date.now() > this.milestoneDue;\n },\n milestoneDatesAbsolute() {\n if (this.milestoneDue) {\n return `(${localeDateFormat.asDate.format(this.milestoneDue)})`;\n }\n if (this.milestoneStart) {\n return `(${localeDateFormat.asDate.format(this.milestoneStart)})`;\n }\n return '';\n },\n milestoneDatesHuman() {\n if (this.milestoneStart || this.milestoneDue) {\n if (this.milestoneDue) {\n return timeFor(\n this.milestoneDue,\n sprintf(__('Expired %{expiredOn}'), {\n expiredOn: this.timeFormatted(this.milestoneDue),\n }),\n );\n }\n\n return sprintf(\n this.isMilestoneStarted ? __('Started %{startsIn}') : __('Starts %{startsIn}'),\n {\n startsIn: this.timeFormatted(this.milestoneStart),\n },\n );\n }\n return '';\n },\n },\n};\n</script>\n<template>\n <work-item-attribute\n anchor-id=\"board-card-milestone\"\n wrapper-component=\"div\"\n wrapper-component-class=\"issue-milestone-details gl-flex gl-max-w-15 gl-gap-2 gl-items-center\"\n icon-name=\"milestone\"\n icon-class=\"flex-shrink-0\"\n :title=\"milestone.title\"\n title-component-class=\"milestone-title gl-inline-block gl-truncate\"\n >\n <template #tooltip-text>\n <span class=\"gl-font-bold\">{{ __('Milestone') }}</span> <br />\n <span>{{ milestone.title }}</span> <br />\n <span\n v-if=\"milestoneStart || milestoneDue\"\n :class=\"{\n 'gl-text-red-300': isMilestonePastDue,\n 'gl-text-tertiary': !isMilestonePastDue,\n }\"\n ><span>{{ milestoneDatesHuman }}</span\n ><br /><span>{{ milestoneDatesAbsolute }}</span>\n </span>\n </template>\n </work-item-attribute>\n</template>\n","import { render, staticRenderFns } from \"./issue_milestone.vue?vue&type=template&id=3ec0da18\"\nimport script from \"./issue_milestone.vue?vue&type=script&lang=js\"\nexport * from \"./issue_milestone.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { __ } from '~/locale';\n\nexport const TRACKING_SAVED_REPLIES_USE = 'i_code_review_saved_replies_use';\nexport const TRACKING_SAVED_REPLIES_USE_IN_MR = 'i_code_review_saved_replies_use_in_mr';\nexport const TRACKING_SAVED_REPLIES_USE_IN_OTHER = 'i_code_review_saved_replies_use_in_other';\n\nexport const COMMENT_TEMPLATES_KEYS = ['currentUser'];\nexport const COMMENT_TEMPLATES_TITLES = { currentUser: __('User') };\n\nexport const RESTRICTED_TOOLBAR_ITEMS_BASIC_EDITING_ONLY = [\n 'code',\n 'quote',\n 'bullet-list',\n 'numbered-list',\n 'task-list',\n 'collapsible-section',\n 'table',\n 'attach-file',\n 'full-screen',\n];\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-collapsible-listbox',{staticClass:\"gl-relative\",attrs:{\"block\":\"\",\"searchable\":\"\",\"is-check-centered\":\"\",\"items\":_vm.listItems,\"selected\":_vm.selectedProjectFullPath,\"toggle-text\":_vm.dropdownToggleText,\"searching\":_vm.projectsLoading,\"fluid-width\":\"\"},on:{\"search\":_vm.debouncedSearch,\"select\":_vm.handleSelect,\"shown\":_vm.handleDropdownShow},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('div',{staticClass:\"gl-flex gl-w-full gl-items-center\"},[_c('project-avatar',{staticClass:\"gl-mr-3\",attrs:{\"project-id\":item.id,\"project-avatar-url\":item.avatarUrl,\"project-name\":item.text}}),_vm._v(\" \"),_c('span',[_c('span',{staticClass:\"gl-mr-2 gl-block\"},[_vm._v(\" \"+_vm._s(item.text)+\" \")]),_vm._v(\" \"),_c('span',{staticClass:\"gl-block gl-text-subtle\"},[_vm._v(\" \"+_vm._s(item.namespace)+\" \")])])],1)]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_projects_listbox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_projects_listbox.vue?vue&type=script&lang=js\"","<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\nimport fuzzaldrinPlus from 'fuzzaldrin-plus';\nimport { debounce } from 'lodash';\nimport ProjectAvatar from '~/vue_shared/components/project_avatar.vue';\nimport { __, s__ } from '~/locale';\nimport { STORAGE_KEY } from '~/super_sidebar/constants';\nimport AccessorUtilities from '~/lib/utils/accessor';\nimport { getTopFrequentItems } from '~/super_sidebar/utils';\nimport namespaceProjectsForLinksWidgetQuery from '../../graphql/namespace_projects_for_links_widget.query.graphql';\nimport { SEARCH_DEBOUNCE, MAX_FREQUENT_PROJECTS } from '../../constants';\n\nexport default {\n components: {\n GlCollapsibleListbox,\n ProjectAvatar,\n },\n model: {\n prop: 'selectedProjectFullPath',\n event: 'selectProject',\n },\n props: {\n fullPath: {\n required: true,\n type: String,\n },\n currentProjectName: {\n required: false,\n type: String,\n default: '',\n },\n isGroup: {\n required: false,\n type: Boolean,\n default: false,\n },\n selectedProjectFullPath: {\n required: false,\n type: String,\n default: null,\n },\n },\n data() {\n return {\n projects: [],\n frequentProjects: [],\n searchKey: '',\n selectedProject: null,\n };\n },\n apollo: {\n projects: {\n query() {\n return namespaceProjectsForLinksWidgetQuery;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n projectSearch: this.searchKey,\n };\n },\n update(data) {\n return data.namespace?.projects?.nodes;\n },\n result() {\n this.selectedProject = this.findSelectedProject(this.selectedProjectFullPath);\n },\n },\n },\n computed: {\n projectsLoading() {\n return this.$apollo.queries.projects.loading;\n },\n dropdownToggleText() {\n if (this.selectedProject) {\n /** When selectedProject is fetched from localStorage\n * name_with_namespace doesn't exist. Therefore we rely on\n * namespace directly.\n * */\n return this.selectedProject.nameWithNamespace || this.selectedProject.namespace;\n }\n return this.selectedProjectFullPath && this.currentProjectName\n ? this.currentProjectName\n : s__('WorkItem|Select a project');\n },\n listItems() {\n const items = [];\n let frequent = [];\n if (this.frequentProjects.length > 0) {\n frequent = this.frequentProjects.map((project) => {\n return {\n text: project.name,\n value: project.webUrl.startsWith('/')\n ? project.webUrl.substring(1, project.webUrl.length)\n : project.webUrl,\n namespace: project.namespace,\n avatarUrl: project.avatar_url,\n };\n });\n\n items.push({\n text: __('Recently used'),\n options: frequent,\n });\n }\n\n const frequentFullPaths = frequent.map((freq) => freq.value);\n\n if (this.projects.length > 0) {\n const allProjects = this.projects\n .filter((project) => {\n return !frequentFullPaths.includes(project.fullPath);\n })\n .map((project) => {\n return {\n text: project.name,\n value: project.fullPath,\n namespace: project.namespace?.name,\n avatarUrl: project.avatarUrl,\n };\n });\n\n items.push({\n text: __('Projects'),\n options: allProjects,\n textSrOnly: true,\n });\n }\n\n return items;\n },\n },\n created() {\n this.debouncedSearch = debounce(this.handleSearch, SEARCH_DEBOUNCE);\n },\n beforeDestroy() {\n this.debouncedSearch?.cancel();\n },\n methods: {\n handleSearch(keyword) {\n this.searchKey = keyword;\n this.setFrequentProjects(keyword);\n },\n handleSelect(projectFullPath) {\n this.selectedProject = this.findSelectedProject(projectFullPath);\n this.$emit('selectProject', projectFullPath);\n },\n findSelectedProject(projectFullPath) {\n const project = this.projects.find((proj) => proj.fullPath === projectFullPath);\n if (project) {\n return project;\n }\n return this.projects.find((proj) => {\n return `/${proj.fullPath}` === projectFullPath;\n });\n },\n async handleDropdownShow() {\n this.searchKey = '';\n this.setFrequentProjects();\n await this.$nextTick();\n this.$refs.searchInputField?.focusInput?.();\n },\n setFrequentProjects(searchTerm) {\n const { current_username: currentUsername } = gon;\n\n if (!currentUsername) {\n this.frequentProjects = [];\n return;\n }\n\n const storageKey = `${currentUsername}/${STORAGE_KEY.projects}`;\n\n if (!AccessorUtilities.canUseLocalStorage()) {\n this.frequentProjects = [];\n return;\n }\n\n const storedRawItems = localStorage.getItem(storageKey);\n\n let storedFrequentProjects = storedRawItems ? JSON.parse(storedRawItems) : [];\n\n /* Filter for the current group */\n storedFrequentProjects = storedFrequentProjects.filter((item) => {\n const groupPath = this.isGroup\n ? this.fullPath\n : this.fullPath.substring(0, this.fullPath.lastIndexOf('/'));\n\n return Boolean(item.webUrl?.slice(1)?.startsWith(groupPath));\n });\n\n if (searchTerm) {\n storedFrequentProjects = fuzzaldrinPlus.filter(storedFrequentProjects, searchTerm, {\n key: ['namespace'],\n });\n }\n\n this.frequentProjects = getTopFrequentItems(\n storedFrequentProjects,\n MAX_FREQUENT_PROJECTS,\n ).map((item) => {\n return { ...item, avatar_url: item.avatarUrl, web_url: item.webUrl };\n });\n },\n handleFrequentProjectSelection(selectedProject) {\n this.project = this.projects.find((proj) => {\n return `/${proj.fullPath}` === selectedProject.webUrl;\n });\n },\n },\n};\n</script>\n\n<template>\n <gl-collapsible-listbox\n block\n searchable\n is-check-centered\n :items=\"listItems\"\n :selected=\"selectedProjectFullPath\"\n :toggle-text=\"dropdownToggleText\"\n :searching=\"projectsLoading\"\n fluid-width\n class=\"gl-relative\"\n @search=\"debouncedSearch\"\n @select=\"handleSelect\"\n @shown=\"handleDropdownShow\"\n >\n <template #list-item=\"{ item }\">\n <div class=\"gl-flex gl-w-full gl-items-center\">\n <project-avatar\n class=\"gl-mr-3\"\n :project-id=\"item.id\"\n :project-avatar-url=\"item.avatarUrl\"\n :project-name=\"item.text\"\n />\n <span>\n <span class=\"gl-mr-2 gl-block\"> {{ item.text }} </span>\n <span class=\"gl-block gl-text-subtle\"> {{ item.namespace }} </span>\n </span>\n </div>\n </template>\n </gl-collapsible-listbox>\n</template>\n","import { render, staticRenderFns } from \"./work_item_projects_listbox.vue?vue&type=template&id=11aeae45\"\nimport script from \"./work_item_projects_listbox.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_projects_listbox.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","/* eslint-disable class-methods-use-this, @gitlab/require-i18n-strings */\n\nimport { GlBreakpointInstance as bp } from '@gitlab/ui/dist/utils';\nimport $ from 'jquery';\nimport { uniq, escape } from 'lodash';\nimport { getEmojiScoreWithIntent } from '~/emoji/utils';\nimport { scrollToElement } from '~/lib/utils/common_utils';\nimport * as Emoji from '~/emoji';\nimport { dispose, fixTitle } from '~/tooltips';\nimport { createAlert } from '~/alert';\nimport {\n EMOJI_THUMBS_UP,\n EMOJI_THUMBS_DOWN,\n FREQUENTLY_USED_EMOJIS_STORAGE_KEY,\n} from '~/emoji/constants';\nimport axios from './lib/utils/axios_utils';\nimport { isInVueNoteablePage } from './lib/utils/dom_utils';\nimport { __ } from './locale';\n\nconst animationEndEventString = 'animationend webkitAnimationEnd MSAnimationEnd oAnimationEnd';\nconst transitionEndEventString = 'transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd';\n\nconst FROM_SENTENCE_REGEX = /(?:, and | and |, )/; // For separating lists produced by ruby's Array#toSentence\n\nconst categoryLabelMap = {\n activity: 'Activity',\n people: 'People',\n nature: 'Nature',\n food: 'Food',\n travel: 'Travel',\n objects: 'Objects',\n symbols: 'Symbols',\n flags: 'Flags',\n};\n\nconst IS_VISIBLE = 'is-visible';\nconst IS_RENDERED = 'is-rendered';\n\nexport class AwardsHandler {\n constructor(emoji) {\n this.emoji = emoji;\n this.eventListeners = [];\n this.toggleButtonSelector = '.js-add-award';\n this.menuClass = 'js-award-emoji-menu';\n }\n\n bindEvents() {\n const $parentEl = this.targetContainerEl ? $(this.targetContainerEl) : $(document);\n // If the user shows intent let's pre-build the menu\n this.registerEventListener(\n 'one',\n $parentEl,\n 'mouseenter focus',\n this.toggleButtonSelector,\n 'mouseenter focus',\n () => {\n const $menu = $(`.${this.menuClass}`);\n if ($menu.length === 0) {\n requestAnimationFrame(() => {\n this.createEmojiMenu();\n });\n }\n },\n );\n this.registerEventListener('on', $parentEl, 'click', this.toggleButtonSelector, (e) => {\n e.stopPropagation();\n e.preventDefault();\n this.showEmojiMenu($(e.currentTarget));\n });\n\n this.registerEventListener('on', $('html'), 'click', (e) => {\n const $target = $(e.target);\n if (!$target.closest(`.${this.menuClass}`).length) {\n $('.js-awards-block.current').removeClass('current');\n if ($(`.${this.menuClass}`).is(':visible')) {\n $(`${this.toggleButtonSelector}.is-active`).removeClass('is-active');\n this.hideMenuElement($(`.${this.menuClass}`));\n }\n }\n });\n\n const emojiButtonSelector = `.js-awards-block .js-emoji-btn, .${this.menuClass} .js-emoji-btn`;\n this.registerEventListener('on', $parentEl, 'click', emojiButtonSelector, (e) => {\n e.preventDefault();\n const $target = $(e.currentTarget);\n const $glEmojiElement = $target.find('gl-emoji');\n const $spriteIconElement = $target.find('.icon');\n const emojiName = ($glEmojiElement.length ? $glEmojiElement : $spriteIconElement).data(\n 'name',\n );\n\n $target.closest('.js-awards-block').addClass('current');\n this.addAward(this.getVotesBlock(), this.getAwardUrl(), emojiName);\n });\n }\n\n registerEventListener(method = 'on', element, ...args) {\n element[method].call(element, ...args);\n this.eventListeners.push({\n element,\n args,\n });\n }\n\n showEmojiMenu($addBtn) {\n if ($addBtn.hasClass('js-note-emoji')) {\n $addBtn.closest('.note').find('.js-awards-block').addClass('current');\n } else {\n $addBtn.closest('.js-awards-block').addClass('current');\n }\n\n const $menu = $(`.${this.menuClass}`);\n if ($menu.length) {\n if ($menu.is('.is-visible')) {\n $addBtn.removeClass('is-active');\n this.hideMenuElement($menu);\n $('.js-emoji-menu-search').blur();\n } else {\n $addBtn.addClass('is-active');\n this.positionMenu($menu, $addBtn);\n this.showMenuElement($menu);\n $('.js-emoji-menu-search').focus();\n }\n } else {\n $addBtn.addClass('is-loading is-active');\n this.createEmojiMenu(() => {\n const $createdMenu = $(`.${this.menuClass}`);\n $addBtn.removeClass('is-loading');\n this.positionMenu($createdMenu, $addBtn);\n return setTimeout(() => {\n this.showMenuElement($createdMenu);\n $('.js-emoji-menu-search').focus();\n }, 200);\n });\n }\n }\n\n // Create the emoji menu with the first category of emojis.\n // Then render the remaining categories of emojis one by one to avoid jank.\n createEmojiMenu(callback) {\n if (this.isCreatingEmojiMenu) {\n return;\n }\n this.isCreatingEmojiMenu = true;\n\n // Render the first category\n const categoryMap = this.emoji.getEmojiCategoryMap();\n const categoryNameKey = Object.keys(categoryMap)[0];\n const emojisInCategory = categoryMap[categoryNameKey];\n const firstCategory = this.renderCategory(categoryLabelMap[categoryNameKey], emojisInCategory);\n\n // Render the frequently used\n const frequentlyUsedEmojis = this.getFrequentlyUsedEmojis();\n let frequentlyUsedCatgegory = '';\n if (frequentlyUsedEmojis.length > 0) {\n frequentlyUsedCatgegory = this.renderCategory('Frequently used', frequentlyUsedEmojis, {\n frequentEmojis: true,\n });\n }\n\n const emojiMenuMarkup = `\n <div class=\"emoji-menu ${this.menuClass}\">\n <input type=\"text\" name=\"emoji-menu-search\" value=\"\" class=\"js-emoji-menu-search emoji-search search-input form-control\" placeholder=\"Search emoji\" />\n\n <div class=\"emoji-menu-content\">\n ${frequentlyUsedCatgegory}\n ${firstCategory}\n </div>\n </div>\n `;\n\n const targetEl = this.targetContainerEl ? this.targetContainerEl : document.body;\n // eslint-disable-next-line no-unsanitized/method\n targetEl.insertAdjacentHTML('beforeend', emojiMenuMarkup);\n\n this.addRemainingEmojiMenuCategories();\n this.setupSearch();\n if (callback) {\n callback();\n }\n }\n\n addRemainingEmojiMenuCategories() {\n if (this.isAddingRemainingEmojiMenuCategories) {\n return;\n }\n this.isAddingRemainingEmojiMenuCategories = true;\n\n const categoryMap = this.emoji.getEmojiCategoryMap();\n\n // Avoid the jank and render the remaining categories separately\n // This will take more time, but makes UI more responsive\n const menu = document.querySelector(`.${this.menuClass}`);\n const emojiContentElement = menu.querySelector('.emoji-menu-content');\n const remainingCategories = Object.keys(categoryMap).slice(1);\n const allCategoriesAddedPromise = remainingCategories.reduce(\n (promiseChain, categoryNameKey) =>\n promiseChain.then(\n () =>\n new Promise((resolve) => {\n const emojisInCategory = categoryMap[categoryNameKey];\n const categoryMarkup = this.renderCategory(\n categoryLabelMap[categoryNameKey],\n emojisInCategory,\n );\n requestAnimationFrame(() => {\n // eslint-disable-next-line no-unsanitized/method\n emojiContentElement.insertAdjacentHTML('beforeend', categoryMarkup);\n resolve();\n });\n }),\n ),\n Promise.resolve(),\n );\n\n allCategoriesAddedPromise\n .then(() => {\n // Used for tests\n // We check for the menu in case it was destroyed in the meantime\n if (menu) {\n menu.dispatchEvent(new CustomEvent('build-emoji-menu-finish'));\n }\n })\n .catch((err) => {\n emojiContentElement.insertAdjacentHTML(\n 'beforeend',\n '<p>We encountered an error while adding the remaining categories</p>',\n );\n throw new Error(`Error occurred in addRemainingEmojiMenuCategories: ${err.message}`);\n });\n }\n\n renderCategory(name, emojiList, opts = {}) {\n return `\n <h5 class=\"emoji-menu-title\">\n ${escape(name)}\n </h5>\n <ul class=\"clearfix emoji-menu-list ${opts.frequentEmojis ? 'frequent-emojis' : ''}\">\n ${emojiList\n .map(\n (emojiName) => `\n <li class=\"emoji-menu-list-item\">\n <button class=\"emoji-menu-btn text-center js-emoji-btn\" type=\"button\">\n ${this.emoji.glEmojiTag(emojiName, {\n sprite: true,\n })}\n </button>\n </li>\n `,\n )\n .join('\\n')}\n </ul>\n `;\n }\n\n positionMenu($menu, $addBtn) {\n if (this.targetContainerEl) {\n return $menu.css({\n top: `${$addBtn.outerHeight()}px`,\n });\n }\n\n const position = $addBtn.data('position');\n // The menu could potentially be off-screen or in a hidden overflow element\n // So we position the element absolute in the body\n const css = {\n top: `${$addBtn.offset().top + $addBtn.outerHeight()}px`,\n };\n // for xs screen we position the element on center\n if (bp.getBreakpointSize() === 'xs' || bp.getBreakpointSize() === 'sm') {\n css.left = '5%';\n } else if (position === 'right') {\n css.left = `${$addBtn.offset().left - $menu.outerWidth() + 20}px`;\n $menu.addClass('is-aligned-right');\n } else {\n css.left = `${$addBtn.offset().left}px`;\n $menu.removeClass('is-aligned-right');\n }\n return $menu.css(css);\n }\n\n // eslint-disable-next-line max-params\n addAward(votesBlock, awardUrl, emoji, callback) {\n const isMainAwardsBlock = votesBlock.closest('.js-noteable-awards').length;\n\n if (isInVueNoteablePage() && !isMainAwardsBlock) {\n const id = votesBlock.attr('id').replace('note_', '');\n\n this.hideMenuElement($(`.${this.menuClass}`));\n\n $(`${this.toggleButtonSelector}.is-active`).removeClass('is-active');\n const toggleAwardEvent = new CustomEvent('toggleAward', {\n detail: {\n awardName: emoji,\n noteId: id,\n },\n });\n\n document.querySelector('.js-vue-notes-event').dispatchEvent(toggleAwardEvent);\n }\n\n const normalizedEmoji = this.emoji.normalizeEmojiName(emoji);\n const $emojiButton = this.findEmojiIcon(votesBlock, normalizedEmoji).closest('button');\n\n this.postEmoji($emojiButton, awardUrl, normalizedEmoji, () => {\n this.addAwardToEmojiBar(votesBlock, normalizedEmoji);\n return typeof callback === 'function' ? callback() : undefined;\n });\n\n this.hideMenuElement($(`.${this.menuClass}`));\n\n return $(`${this.toggleButtonSelector}.is-active`).removeClass('is-active');\n }\n\n addAwardToEmojiBar(votesBlock, emoji) {\n this.addEmojiToFrequentlyUsedList(emoji);\n const normalizedEmoji = this.emoji.normalizeEmojiName(emoji);\n const $emojiButton = this.findEmojiIcon(votesBlock, normalizedEmoji).closest('button');\n if ($emojiButton.length > 0) {\n if (this.isActive($emojiButton)) {\n this.decrementCounter($emojiButton, normalizedEmoji);\n } else {\n const counter = $emojiButton.find('.js-counter');\n counter.text(parseInt(counter.text(), 10) + 1);\n $emojiButton.addClass('active');\n this.addYouToUserList(votesBlock, normalizedEmoji);\n this.animateEmoji($emojiButton);\n }\n } else {\n votesBlock.removeClass('hidden');\n this.createEmoji(votesBlock, normalizedEmoji);\n }\n }\n\n getVotesBlock() {\n if (isInVueNoteablePage()) {\n const $el = $(`${this.toggleButtonSelector}.is-active`).closest('.note.timeline-entry');\n\n if ($el.length) {\n return $el;\n }\n }\n\n const currentBlock = $('.js-awards-block.current');\n let resultantVotesBlock = currentBlock;\n if (currentBlock.length === 0) {\n resultantVotesBlock = $('.js-awards-block').eq(0);\n }\n\n return resultantVotesBlock;\n }\n\n getAwardUrl() {\n return this.getVotesBlock().data('awardUrl');\n }\n\n isActive($emojiButton) {\n return $emojiButton.hasClass('active');\n }\n\n decrementCounter($emojiButton, emoji) {\n const counter = $('.js-counter', $emojiButton);\n const counterNumber = parseInt(counter.text(), 10);\n if (counterNumber > 1) {\n counter.text(counterNumber - 1);\n this.removeYouFromUserList($emojiButton);\n } else if (emoji === EMOJI_THUMBS_UP || emoji === EMOJI_THUMBS_DOWN) {\n dispose($emojiButton);\n counter.text('0');\n this.removeYouFromUserList($emojiButton);\n if ($emojiButton.parents('.note').length) {\n this.removeEmoji($emojiButton);\n }\n } else {\n this.removeEmoji($emojiButton);\n }\n return $emojiButton.removeClass('active');\n }\n\n removeEmoji($emojiButton) {\n dispose($emojiButton);\n\n $emojiButton.remove();\n const $votesBlock = this.getVotesBlock();\n if ($votesBlock.find('.js-emoji-btn').length === 0) {\n $votesBlock.addClass('hidden');\n }\n }\n\n getAwardTooltip($awardBlock) {\n return $awardBlock.attr('data-original-title') || $awardBlock.attr('data-title') || '';\n }\n\n toSentence(list) {\n let sentence;\n if (list.length <= 2) {\n sentence = list.join(' and ');\n } else {\n sentence = `${list.slice(0, -1).join(', ')}, and ${list[list.length - 1]}`;\n }\n\n return sentence;\n }\n\n removeYouFromUserList($emojiButton) {\n const awardBlock = $emojiButton;\n const originalTitle = this.getAwardTooltip(awardBlock);\n const authors = originalTitle.split(FROM_SENTENCE_REGEX);\n authors.splice(authors.indexOf('You'), 1);\n\n awardBlock\n .closest('.js-emoji-btn')\n .removeData('title')\n .removeAttr('data-title')\n .removeAttr('data-original-title')\n .attr('title', this.toSentence(authors));\n\n fixTitle(awardBlock);\n\n return awardBlock;\n }\n\n addYouToUserList(votesBlock, emoji) {\n const awardBlock = this.findEmojiIcon(votesBlock, emoji).closest('button');\n const origTitle = this.getAwardTooltip(awardBlock);\n let users = [];\n if (origTitle) {\n users = origTitle.trim().split(FROM_SENTENCE_REGEX);\n }\n users.unshift('You');\n\n awardBlock.attr('title', this.toSentence(users));\n\n fixTitle(awardBlock);\n\n return awardBlock;\n }\n\n createAwardButtonForVotesBlock(votesBlock, emojiName) {\n const buttonHtml = `\n <button class=\"gl-button btn btn-default award-control js-emoji-btn has-tooltip active\" title=\"You\">\n ${this.emoji.glEmojiTag(emojiName)}\n <span class=\"award-control-text js-counter\">1</span>\n </button>\n `;\n const $emojiButton = $(buttonHtml);\n $emojiButton\n .insertBefore(votesBlock.find('.js-award-holder'))\n .find('.emoji-icon')\n .data('name', emojiName);\n this.animateEmoji($emojiButton);\n\n votesBlock.removeClass('current');\n }\n\n animateEmoji($emoji) {\n const className = 'pulse animated once short';\n $emoji.addClass(className);\n\n this.registerEventListener('on', $emoji, animationEndEventString, (e) => {\n $(e.currentTarget).removeClass(className);\n });\n }\n\n createEmoji(votesBlock, emoji) {\n if ($(`.${this.menuClass}`).length) {\n this.createAwardButtonForVotesBlock(votesBlock, emoji);\n }\n this.createEmojiMenu(() => {\n this.createAwardButtonForVotesBlock(votesBlock, emoji);\n });\n }\n\n // eslint-disable-next-line max-params\n postEmoji($emojiButton, awardUrl, emoji, callback) {\n axios\n .post(awardUrl, {\n name: emoji,\n })\n .then(({ data }) => {\n if (data.ok) {\n callback();\n }\n })\n .catch(() =>\n createAlert({\n message: __('Something went wrong on our end.'),\n }),\n );\n }\n\n findEmojiIcon(votesBlock, emoji) {\n return votesBlock.find(`.js-emoji-btn [data-name=\"${emoji}\"]`);\n }\n\n scrollToAwards() {\n scrollToElement('.awards', { offset: -110 });\n }\n\n addEmojiToFrequentlyUsedList(emoji) {\n if (this.emoji.isEmojiNameValid(emoji)) {\n this.frequentlyUsedEmojis = uniq(this.getFrequentlyUsedEmojis().concat(emoji));\n localStorage.setItem(FREQUENTLY_USED_EMOJIS_STORAGE_KEY, this.frequentlyUsedEmojis.join(','));\n }\n }\n\n getFrequentlyUsedEmojis() {\n return (\n this.frequentlyUsedEmojis ||\n (() => {\n const frequentlyUsedEmojis = uniq(\n (localStorage.getItem(FREQUENTLY_USED_EMOJIS_STORAGE_KEY) || '').split(','),\n );\n this.frequentlyUsedEmojis = frequentlyUsedEmojis.filter((inputName) =>\n this.emoji.isEmojiNameValid(inputName),\n );\n\n return this.frequentlyUsedEmojis;\n })()\n );\n }\n\n setupSearch() {\n const $search = $('.js-emoji-menu-search');\n\n this.registerEventListener('on', $search, 'input', (e) => {\n const term = $(e.target).val().trim();\n this.searchEmojis(term);\n });\n\n const $menu = $(`.${this.menuClass}`);\n this.registerEventListener('on', $menu, transitionEndEventString, (e) => {\n if (e.target === e.currentTarget) {\n // Clear the search\n this.searchEmojis('');\n }\n });\n }\n\n searchEmojis(term) {\n const $search = $('.js-emoji-menu-search');\n $search.val(term);\n\n // Clean previous search results\n $('ul.emoji-menu-search, h5.emoji-search-title').remove();\n if (term.length > 0) {\n // Generate a search result block\n const h5 = $('<h5 class=\"emoji-search-title\"/>').text('Search results');\n const foundEmojis = this.findMatchingEmojiElements(term).show();\n const ul = $('<ul>').addClass('emoji-menu-list emoji-menu-search').append(foundEmojis);\n $('.emoji-menu-content ul, .emoji-menu-content h5').hide();\n $('.emoji-menu-content').append(h5).append(ul);\n } else {\n $('.emoji-menu-content').children().show();\n }\n }\n\n getEmojiScore(emojis, value) {\n const elem = $(value).find('[data-name]').get(0);\n const emoji = emojis.filter((x) => x.emoji.name === elem.dataset.name)[0];\n elem.dataset.score = emoji.score;\n\n return emoji.score;\n }\n\n sortEmojiElements(emojis, $elements) {\n const scores = new WeakMap();\n\n return $elements.sort((a, b) => {\n let aScore = scores.get(a);\n let bScore = scores.get(b);\n\n if (!aScore) {\n aScore = this.getEmojiScore(emojis, a);\n scores.set(a, aScore);\n }\n\n if (!bScore) {\n bScore = this.getEmojiScore(emojis, b);\n scores.set(b, bScore);\n }\n\n return aScore - bScore;\n });\n }\n\n findMatchingEmojiElements(query) {\n const matchingEmoji = this.emoji\n .searchEmoji(query)\n .map((x) => ({ ...x, score: getEmojiScoreWithIntent(x.emoji.name, x.score) }));\n const matchingEmojiNames = matchingEmoji.map((x) => x.emoji.name);\n const $emojiElements = $('.emoji-menu-list:not(.frequent-emojis) [data-name]');\n const $matchingElements = $emojiElements.filter(\n (i, elm) => matchingEmojiNames.indexOf(elm.dataset.name) >= 0,\n );\n return this.sortEmojiElements(matchingEmoji, $matchingElements.closest('li').clone());\n }\n\n /* showMenuElement and hideMenuElement are performance optimizations. We use\n * opacity to show/hide the emoji menu, because we can animate it. But opacity\n * leaves hidden elements in the render tree, which is unacceptable given the number\n * of emoji elements in the emoji menu (5k+). To get the best of both worlds, we separately\n * apply IS_RENDERED to add/remove the menu from the render tree and IS_VISIBLE to animate\n * the menu being opened and closed. */\n\n showMenuElement($emojiMenu) {\n $emojiMenu.addClass(IS_RENDERED);\n\n // enqueues animation as a microtask, so it begins ASAP once IS_RENDERED added\n return Promise.resolve().then(() => $emojiMenu.addClass(IS_VISIBLE));\n }\n\n hideMenuElement($emojiMenu) {\n $emojiMenu.on(transitionEndEventString, (e) => {\n if (e.currentTarget === e.target) {\n // eslint-disable-next-line @gitlab/no-global-event-off\n $emojiMenu.removeClass(IS_RENDERED).off(transitionEndEventString);\n }\n });\n\n $emojiMenu.removeClass(IS_VISIBLE);\n }\n\n destroy() {\n this.eventListeners.forEach((entry) => {\n entry.element.off.call(entry.element, ...entry.args);\n });\n $(`.${this.menuClass}`).remove();\n }\n}\n\nlet awardsHandlerPromise = null;\nexport default function loadAwardsHandler(reload = false) {\n if (!awardsHandlerPromise || reload) {\n awardsHandlerPromise = Emoji.initEmojiMap().then(() => {\n const awardsHandler = new AwardsHandler(Emoji);\n awardsHandler.bindEvents();\n return awardsHandler;\n });\n }\n return awardsHandlerPromise;\n}\n","export const SET_INITIAL_DATA = 'SET_INITIAL_DATA';\n\nexport const FETCH_AWARDS_SUCCESS = 'FETCH_AWARDS_SUCCESS';\n\nexport const ADD_NEW_AWARD = 'ADD_NEW_AWARD';\nexport const REMOVE_AWARD = 'REMOVE_AWARD';\n","import * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport axios from '~/lib/utils/axios_utils';\nimport { normalizeHeaders } from '~/lib/utils/common_utils';\nimport { joinPaths } from '~/lib/utils/url_utility';\nimport {\n SET_INITIAL_DATA,\n FETCH_AWARDS_SUCCESS,\n ADD_NEW_AWARD,\n REMOVE_AWARD,\n} from './mutation_types';\n\nexport const setInitialData = ({ commit }, data) => commit(SET_INITIAL_DATA, data);\n\nexport const fetchAwards = async ({ commit, dispatch, state }, page = '1') => {\n try {\n const { data, headers } = await axios.get(joinPaths(gon.relative_url_root || '', state.path), {\n params: { per_page: 100, page },\n });\n const normalizedHeaders = normalizeHeaders(headers);\n const nextPage = normalizedHeaders['X-NEXT-PAGE'];\n\n commit(FETCH_AWARDS_SUCCESS, data);\n\n if (nextPage) {\n dispatch('fetchAwards', nextPage);\n }\n } catch (error) {\n Sentry.captureException(error);\n }\n};\n\n/**\n * Creates an intermediary award, used for display\n * until the real award is loaded from the backend.\n */\nconst newOptimisticAward = (name, state) => {\n const freeId = Math.min(...state.awards.map((a) => a.id), Number.MAX_SAFE_INTEGER) - 1;\n return {\n id: freeId,\n name,\n user: {\n id: window.gon.current_user_id,\n name: window.gon.current_user_fullname,\n username: window.gon.current_username,\n },\n };\n};\n\nexport const toggleAward = async ({ commit, state }, name) => {\n const award = state.awards.find((a) => a.name === name && a.user.id === state.currentUserId);\n\n try {\n if (award) {\n commit(REMOVE_AWARD, award.id);\n\n await axios\n .delete(joinPaths(gon.relative_url_root || '', `${state.path}/${award.id}`))\n .catch((err) => {\n commit(ADD_NEW_AWARD, award);\n\n throw err;\n });\n } else {\n const optimisticAward = newOptimisticAward(name, state);\n\n commit(ADD_NEW_AWARD, optimisticAward);\n\n const { data } = await axios\n .post(joinPaths(gon.relative_url_root || '', state.path), {\n name,\n })\n .finally(() => {\n commit(REMOVE_AWARD, optimisticAward.id);\n });\n\n commit(ADD_NEW_AWARD, data);\n }\n } catch (error) {\n Sentry.captureException(error);\n }\n};\n","import {\n SET_INITIAL_DATA,\n FETCH_AWARDS_SUCCESS,\n ADD_NEW_AWARD,\n REMOVE_AWARD,\n} from './mutation_types';\n\nexport default {\n [SET_INITIAL_DATA](state, { path, currentUserId, canAwardEmoji }) {\n state.path = path;\n state.currentUserId = currentUserId;\n state.canAwardEmoji = canAwardEmoji;\n },\n [FETCH_AWARDS_SUCCESS](state, data) {\n state.awards.push(...data);\n },\n [ADD_NEW_AWARD](state, data) {\n state.awards.push(data);\n },\n [REMOVE_AWARD](state, awardId) {\n state.awards = state.awards.filter(({ id }) => id !== awardId);\n },\n};\n","import Vue from 'vue';\n// eslint-disable-next-line no-restricted-imports\nimport Vuex from 'vuex';\nimport * as actions from './actions';\nimport mutations from './mutations';\n\nVue.use(Vuex);\n\nconst createState = () => ({\n awards: [],\n awardPath: '',\n currentUserId: null,\n canAwardEmoji: false,\n});\n\nexport default () =>\n new Vuex.Store({\n state: createState(),\n actions,\n mutations,\n });\n","import Vue from 'vue';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapState } from 'vuex';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport AwardsList from '~/vue_shared/components/awards_list.vue';\nimport { EMOJI_THUMBS_UP, EMOJI_THUMBS_DOWN } from '~/emoji/constants';\nimport createstore from './store';\n\nexport default (el) => {\n if (!el) return null;\n\n const {\n dataset: { path, newCustomEmojiPath },\n } = el;\n const canAwardEmoji = parseBoolean(el.dataset.canAwardEmoji);\n const showDefaultAwardEmojis = parseBoolean(el.dataset.showDefaultAwardEmojis);\n\n return new Vue({\n el,\n name: 'AwardsListRoot',\n store: createstore(),\n provide: {\n newCustomEmojiPath,\n },\n computed: {\n ...mapState(['currentUserId', 'canAwardEmoji', 'awards']),\n },\n created() {\n this.setInitialData({ path, currentUserId: window.gon.current_user_id, canAwardEmoji });\n },\n mounted() {\n this.fetchAwards();\n },\n methods: {\n ...mapActions(['setInitialData', 'fetchAwards', 'toggleAward']),\n },\n render(createElement) {\n return createElement(AwardsList, {\n props: {\n awards: this.awards,\n canAwardEmoji: this.canAwardEmoji,\n currentUserId: this.currentUserId,\n defaultAwards: showDefaultAwardEmojis ? [EMOJI_THUMBS_UP, EMOJI_THUMBS_DOWN] : [],\n selectedClass: 'selected',\n },\n on: {\n award: this.toggleAward,\n },\n });\n },\n });\n};\n","import { property, isEqual } from 'lodash';\nimport { diffModes, diffViewerModes } from '~/ide/constants';\nimport {\n LINE_POSITION_LEFT,\n LINE_POSITION_RIGHT,\n TEXT_DIFF_POSITION_TYPE,\n LEGACY_DIFF_NOTE_TYPE,\n DIFF_NOTE_TYPE,\n NEW_LINE_TYPE,\n OLD_LINE_TYPE,\n MATCH_LINE_TYPE,\n INLINE_DIFF_LINES_KEY,\n CONFLICT_OUR,\n CONFLICT_THEIR,\n CONFLICT_MARKER,\n CONFLICT_MARKER_OUR,\n CONFLICT_MARKER_THEIR,\n EXPANDED_LINE_TYPE,\n} from '../constants';\nimport { prepareRawDiffFile } from '../utils/diff_file';\nimport { extractFileHash } from '../utils/merge_request';\n\nexport const isAdded = (line) => ['new', 'new-nonewline'].includes(line.type);\nexport const isRemoved = (line) => ['old', 'old-nonewline'].includes(line.type);\nexport const isUnchanged = (line) => !line.type;\nexport const isMeta = (line) =>\n ['match', EXPANDED_LINE_TYPE, 'new-nonewline', 'old-nonewline'].includes(line.type);\nexport const isConflictMarker = (line) =>\n [CONFLICT_MARKER_OUR, CONFLICT_MARKER_THEIR].includes(line.type);\nexport const isConflictSeperator = (line) => line.type === CONFLICT_MARKER;\nexport const isConflictOur = (line) => line.type === CONFLICT_OUR;\nexport const isConflictTheir = (line) => line.type === CONFLICT_THEIR;\n\n/**\n * Pass in the inline diff lines array which gets converted\n * to the parallel diff lines.\n * This allows for us to convert inline diff lines to parallel\n * on the frontend without needing to send any requests\n * to the API.\n *\n * This method has been taken from the already existing backend\n * implementation at lib/gitlab/diff/parallel_diff.rb\n *\n * @param {Object[]} diffLines - inline diff lines\n *\n * @param {Boolean} inline - is inline context or not\n *\n * @returns {Object[]} parallel lines\n */\n\nexport const parallelizeDiffLines = (diffLines, inline) => {\n let freeRightIndex = null;\n let conflictStartIndex = -1;\n const lines = [];\n\n // `chunk` is used for dragging to select diff lines\n // we are restricting commenting to only lines that appear between\n // \"expansion rows\". Here equal chunks are lines grouped together\n // inbetween expansion rows.\n let chunk = 0;\n\n for (let i = 0, diffLinesLength = diffLines.length, index = 0; i < diffLinesLength; i += 1) {\n const line = diffLines[i];\n line.chunk = chunk;\n\n if (isMeta(line) && line.type !== EXPANDED_LINE_TYPE) chunk += 1;\n\n if (isRemoved(line) || isConflictOur(line) || inline) {\n lines.push({\n [LINE_POSITION_LEFT]: line,\n [LINE_POSITION_RIGHT]: null,\n });\n\n if (freeRightIndex === null) {\n // Once we come upon a new line it can be put on the right of this old line\n freeRightIndex = index;\n }\n index += 1;\n } else if (isAdded(line) || isConflictTheir(line)) {\n if (freeRightIndex !== null) {\n // If an old line came before this without a line on the right, this\n // line can be put to the right of it.\n lines[freeRightIndex].right = line;\n\n // If there are any other old lines on the left that don't yet have\n // a new counterpart on the right, update the free_right_index\n const nextFreeRightIndex = freeRightIndex + 1;\n freeRightIndex = nextFreeRightIndex < index ? nextFreeRightIndex : null;\n } else {\n lines.push({\n [LINE_POSITION_LEFT]: null,\n [LINE_POSITION_RIGHT]: line,\n });\n\n freeRightIndex = null;\n index += 1;\n }\n } else if (\n isMeta(line) ||\n isUnchanged(line) ||\n isConflictMarker(line) ||\n (isConflictSeperator(line) && inline)\n ) {\n if (conflictStartIndex <= 0) {\n // line in the right panel is the same as in the left one\n lines.push({\n [LINE_POSITION_LEFT]: line,\n [LINE_POSITION_RIGHT]: !inline && line,\n });\n\n if (!inline && isConflictMarker(line)) {\n conflictStartIndex = index;\n }\n freeRightIndex = null;\n index += 1;\n } else {\n lines[conflictStartIndex][LINE_POSITION_RIGHT] = line;\n conflictStartIndex = -1;\n }\n }\n }\n\n return lines;\n};\n\nexport function findDiffFile(files, match, matchKey = 'file_hash') {\n return files.find((file) => file[matchKey] === match);\n}\n\nexport function getFormData(params) {\n const {\n commit,\n note,\n noteableType,\n noteableData,\n diffFile,\n noteTargetLine,\n diffViewType,\n linePosition,\n positionType,\n lineRange,\n showWhitespace,\n } = params;\n\n const position = JSON.stringify({\n base_sha: diffFile.diff_refs.base_sha,\n start_sha: diffFile.diff_refs.start_sha,\n head_sha: diffFile.diff_refs.head_sha,\n old_path: diffFile.old_path,\n new_path: diffFile.new_path,\n position_type: positionType || TEXT_DIFF_POSITION_TYPE,\n old_line: noteTargetLine ? noteTargetLine.old_line : null,\n new_line: noteTargetLine ? noteTargetLine.new_line : null,\n x: params.x,\n y: params.y,\n width: params.width,\n height: params.height,\n line_range: lineRange,\n ignore_whitespace_change: diffFile.whitespaceOnlyChange ? false : !showWhitespace,\n });\n\n const postData = {\n view: diffViewType,\n line_type: linePosition === LINE_POSITION_RIGHT ? NEW_LINE_TYPE : OLD_LINE_TYPE,\n merge_request_diff_head_sha: diffFile.diff_refs.head_sha,\n in_reply_to_discussion_id: '',\n note_project_id: '',\n target_type: noteableData.targetType,\n target_id: noteableData.id,\n return_discussion: true,\n note: {\n note,\n position,\n noteable_type: noteableType,\n noteable_id: noteableData.id,\n commit_id: commit && commit.id,\n type:\n diffFile.diff_refs.start_sha && diffFile.diff_refs.head_sha\n ? DIFF_NOTE_TYPE\n : LEGACY_DIFF_NOTE_TYPE,\n line_code: noteTargetLine ? noteTargetLine.line_code : null,\n },\n };\n\n return postData;\n}\n\nexport function getNoteFormData(params) {\n const data = getFormData(params);\n\n return {\n endpoint: params.noteableData.create_note_path,\n data,\n };\n}\n\nexport const findIndexInInlineLines = (lines, lineNumbers) => {\n const { oldLineNumber, newLineNumber } = lineNumbers;\n\n return lines.findIndex(\n (line) => line.old_line === oldLineNumber && line.new_line === newLineNumber,\n );\n};\n\nexport const getPreviousLineIndex = (file, lineNumbers) => {\n return findIndexInInlineLines(file[INLINE_DIFF_LINES_KEY], lineNumbers);\n};\n\nexport function removeMatchLine(diffFile, lineNumbers, bottom) {\n const indexForInline = findIndexInInlineLines(diffFile[INLINE_DIFF_LINES_KEY], lineNumbers);\n const factor = bottom ? 1 : -1;\n\n if (indexForInline > -1) {\n diffFile[INLINE_DIFF_LINES_KEY].splice(indexForInline + factor, 1);\n }\n}\n\n// eslint-disable-next-line max-params\nexport function addLineReferences(lines, lineNumbers, bottom, isExpandDown, nextLineNumbers) {\n const { oldLineNumber, newLineNumber } = lineNumbers;\n const lineCount = lines.length;\n let matchLineIndex = -1;\n\n const linesWithNumbers = lines.map((l, index) => {\n if (l.type === MATCH_LINE_TYPE) {\n matchLineIndex = index;\n } else {\n Object.assign(l, {\n old_line: bottom ? oldLineNumber + index + 1 : oldLineNumber + index - lineCount,\n new_line: bottom ? newLineNumber + index + 1 : newLineNumber + index - lineCount,\n });\n }\n return l;\n });\n\n if (matchLineIndex > -1) {\n const line = linesWithNumbers[matchLineIndex];\n let targetLine;\n\n if (isExpandDown) {\n targetLine = nextLineNumbers;\n } else if (bottom) {\n targetLine = linesWithNumbers[matchLineIndex - 1];\n } else {\n targetLine = linesWithNumbers[matchLineIndex + 1];\n }\n\n Object.assign(line, {\n meta_data: {\n old_pos: targetLine.old_line,\n new_pos: targetLine.new_line,\n },\n });\n }\n return linesWithNumbers;\n}\n\nfunction addInlineContextLines(options) {\n const { inlineLines, contextLines, lineNumbers, isExpandDown } = options;\n const factor = isExpandDown ? 1 : 0;\n\n if (!isExpandDown && options.bottom) {\n inlineLines.push(...contextLines);\n } else {\n const inlineIndex = findIndexInInlineLines(inlineLines, lineNumbers);\n\n inlineLines.splice(inlineIndex + factor, 0, ...contextLines);\n }\n}\n\nexport function addContextLines(options) {\n addInlineContextLines(options);\n}\n\n/**\n * Trims the first char of the `richText` property when it's either a space or a diff symbol.\n * @param {Object} line\n * @returns {Object}\n * @deprecated Use `line.rich_text = line.rich_text ? line.rich_text.replace(/^[+ -]/, '') : undefined;` instead!. For more information, see https://gitlab.com/gitlab-org/gitlab/-/issues/299329\n */\nexport function trimFirstCharOfLineContent(line = {}) {\n // eslint-disable-next-line no-param-reassign\n delete line.text;\n\n const parsedLine = { ...line };\n\n if (line.rich_text) {\n const firstChar = parsedLine.rich_text.charAt(0);\n\n if (firstChar === ' ' || firstChar === '+' || firstChar === '-') {\n parsedLine.rich_text = line.rich_text.substring(1);\n }\n }\n\n return parsedLine;\n}\n\nfunction diffFileUniqueId(file) {\n return `${file.content_sha}-${file.file_hash}`;\n}\n\nfunction mergeTwoFiles(target, source) {\n const originalInline = target[INLINE_DIFF_LINES_KEY];\n const missingInline = !originalInline.length;\n\n return {\n ...target,\n [INLINE_DIFF_LINES_KEY]: missingInline ? source[INLINE_DIFF_LINES_KEY] : originalInline,\n parallel_diff_lines: null,\n collapsed: source.collapsed,\n };\n}\n\nfunction ensureBasicDiffFileLines(file) {\n const missingInline = !file[INLINE_DIFF_LINES_KEY];\n\n Object.assign(file, {\n [INLINE_DIFF_LINES_KEY]: missingInline ? [] : file[INLINE_DIFF_LINES_KEY],\n parallel_diff_lines: null,\n });\n\n return file;\n}\n\nfunction cleanRichText(text) {\n return text ? text.replace(/^[+ -]/, '') : undefined;\n}\n\nfunction prepareLine(line, file) {\n const problems = {\n brokenSymlink: file.brokenSymlink,\n brokenLineCode: !line.line_code,\n fileOnlyMoved: file.renamed_file && file.added_lines === 0 && file.removed_lines === 0,\n };\n\n if (!line.alreadyPrepared) {\n Object.assign(line, {\n commentsDisabled: Boolean(\n problems.brokenSymlink || problems.fileOnlyMoved || problems.brokenLineCode,\n ),\n rich_text: cleanRichText(line.rich_text),\n discussionsExpanded: false,\n discussions: [],\n hasForm: false,\n text: undefined,\n alreadyPrepared: true,\n problems,\n });\n }\n}\n\nexport function prepareLineForRenamedFile({ line, diffFile, index = 0 }) {\n /*\n Renamed files are a little different than other diffs, which\n is why this is distinct from `prepareDiffFileLines` below.\n\n We don't get any of the diff file context when we get the diff\n (so no \"inline\" vs. \"parallel\", no \"line_code\", etc.).\n\n We can also assume that both the left and the right of each line\n (for parallel diff view type) are identical, because the file\n is renamed, not modified.\n\n This should be cleaned up as part of the effort around flattening our data\n ==> https://gitlab.com/groups/gitlab-org/-/epics/2852#note_304803402\n */\n const lineNumber = index + 1;\n const cleanLine = {\n ...line,\n line_code: `${diffFile.file_hash}_${lineNumber}_${lineNumber}`,\n new_line: lineNumber,\n old_line: lineNumber,\n };\n\n prepareLine(cleanLine, diffFile); // WARNING: In-Place Mutations!\n\n return cleanLine;\n}\n\nfunction prepareDiffFileLines(file) {\n const inlineLines = file[INLINE_DIFF_LINES_KEY];\n\n inlineLines.forEach((line) => prepareLine(line, file)); // WARNING: In-Place Mutations!\n\n return file;\n}\n\nfunction finalizeDiffFile(file) {\n Object.assign(file, {\n isShowingFullFile: false,\n isLoadingFullFile: false,\n discussions: [],\n renderingLines: false,\n whitespaceOnlyChange: file.viewer?.whitespace_only,\n });\n\n return file;\n}\n\nfunction deduplicateFilesList(files, updatePosition) {\n const dedupedFiles = files.reduce((newList, file) => {\n const id = diffFileUniqueId(file);\n if (updatePosition && id in newList) {\n // Object.values preserves key order but doesn't update order when writing to the same key\n // In order to update position of the item we have to delete it first and then add it back\n const existingFile = newList[id];\n // eslint-disable-next-line no-param-reassign\n delete newList[id];\n return {\n ...newList,\n // 'updatePosition' should be set to true only when we want to keep the existing file\n [id]: existingFile,\n };\n }\n\n return {\n ...newList,\n [id]: newList[id] ? mergeTwoFiles(newList[id], file) : file,\n };\n }, {});\n\n return Object.values(dedupedFiles);\n}\n\nexport function prepareDiffData({ diff, priorFiles = [], meta = false, updatePosition = false }) {\n const transformersChain = [\n (file, index, allFiles) => prepareRawDiffFile({ file, index, allFiles, meta }),\n ensureBasicDiffFileLines,\n prepareDiffFileLines,\n finalizeDiffFile,\n ];\n const cleanedFiles = (diff.diff_files || []).map((file, index, allFiles) => {\n return transformersChain.reduce((fileResult, transformer) => {\n return transformer(fileResult, index, allFiles);\n }, file);\n });\n\n return deduplicateFilesList([...priorFiles, ...cleanedFiles], updatePosition);\n}\n\nexport function getDiffPositionByLineCode(diffFiles) {\n const lines = diffFiles.reduce((acc, diffFile) => {\n diffFile[INLINE_DIFF_LINES_KEY].forEach((line) => {\n acc.push({ file: diffFile, line });\n });\n\n return acc;\n }, []);\n\n return lines.reduce((acc, { file, line }) => {\n if (line.line_code) {\n acc[line.line_code] = {\n base_sha: file.diff_refs.base_sha,\n head_sha: file.diff_refs.head_sha,\n start_sha: file.diff_refs.start_sha,\n new_path: file.new_path,\n old_path: file.old_path,\n old_line: line.old_line,\n new_line: line.new_line,\n line_range: null,\n line_code: line.line_code,\n position_type: 'text',\n };\n }\n\n return acc;\n }, {});\n}\n\n// This method will check whether the discussion is still applicable\n// to the diff line in question regarding different versions of the MR\nexport function isDiscussionApplicableToLine({ discussion, diffPosition, latestDiff }) {\n if (!diffPosition) {\n return false;\n }\n\n const { line_code, ...dp } = diffPosition;\n // Removing `line_range` from diffPosition because the backend does not\n // yet consistently return this property. This check can be removed,\n // once this is addressed. see https://gitlab.com/gitlab-org/gitlab/-/issues/213010\n const { line_range: dpNotUsed, ...diffPositionCopy } = dp;\n\n if (discussion.original_position && discussion.position) {\n const discussionPositions = [\n discussion.original_position,\n discussion.position,\n ...(discussion.positions || []),\n ];\n\n const removeLineRange = (position) => {\n const { line_range: pNotUsed, ...positionNoLineRange } = position;\n return positionNoLineRange;\n };\n\n return discussionPositions\n .map(removeLineRange)\n .some((position) => isEqual(position, diffPositionCopy));\n }\n\n // eslint-disable-next-line\n return latestDiff && discussion.active && line_code === discussion.line_code;\n}\n\nexport const getDiffMode = (diffFile) => {\n const diffModeKey = Object.keys(diffModes).find((key) => diffFile[`${key}_file`]);\n return (\n diffModes[diffModeKey] ||\n (diffFile.viewer?.name === diffViewerModes.mode_changed && diffViewerModes.mode_changed) ||\n (diffFile.viewer?.name === diffViewerModes.no_preview && diffViewerModes.no_preview) ||\n diffModes.replaced\n );\n};\n\nexport const convertExpandLines = ({\n diffLines,\n data,\n typeKey,\n oldLineKey,\n newLineKey,\n mapLine,\n}) => {\n const dataLength = data.length;\n const lines = [];\n\n for (let i = 0, diffLinesLength = diffLines.length; i < diffLinesLength; i += 1) {\n const line = diffLines[i];\n\n if (property(typeKey)(line) === 'match') {\n const beforeLine = diffLines[i - 1];\n const afterLine = diffLines[i + 1];\n const newLineProperty = property(newLineKey);\n const beforeLineIndex = newLineProperty(beforeLine) || 0;\n const afterLineIndex = newLineProperty(afterLine) - 1 || dataLength;\n\n lines.push(\n ...data.slice(beforeLineIndex, afterLineIndex).map((l, index) =>\n mapLine({\n line: Object.assign(l, { hasForm: false, discussions: [] }),\n oldLine: (property(oldLineKey)(beforeLine) || 0) + index + 1,\n newLine: (newLineProperty(beforeLine) || 0) + index + 1,\n }),\n ),\n );\n } else {\n lines.push(line);\n }\n }\n\n return lines;\n};\n\nexport const idleCallback = (cb) => requestIdleCallback(cb);\n\nfunction getLinesFromFileByLineCode(file, lineCode) {\n const inlineLines = file[INLINE_DIFF_LINES_KEY];\n const matchesCode = (line) => line.line_code === lineCode;\n\n return inlineLines.filter(matchesCode);\n}\n\nexport const updateLineInFile = (selectedFile, lineCode, updateFn) => {\n getLinesFromFileByLineCode(selectedFile, lineCode).forEach(updateFn);\n};\n\nexport function isUrlHashNoteLink(urlHash = '') {\n const id = urlHash.replace(/^#/, '');\n\n return id.startsWith('note');\n}\n\nexport function isUrlHashFileHeader(urlHash = '') {\n const id = urlHash.replace(/^#/, '');\n\n return id.startsWith('diff-content');\n}\n\nexport function parseUrlHashAsFileHash(urlHash = '', currentDiffFileId = '') {\n const hashless = urlHash.replace(/^#/, '');\n const isNoteLink = isUrlHashNoteLink(hashless);\n const extractedSha1 = extractFileHash({ input: hashless });\n let id = extractedSha1;\n\n if (isNoteLink && currentDiffFileId) {\n id = currentDiffFileId;\n } else if (isUrlHashFileHeader(hashless)) {\n id = hashless.replace('diff-content-', '');\n } else if (!extractedSha1 || isNoteLink) {\n id = null;\n }\n\n return id;\n}\n\nexport function markTreeEntriesLoaded({ priorEntries, loadedFiles }) {\n const newEntries = { ...priorEntries };\n\n loadedFiles.forEach((newFile) => {\n const entry = newEntries[newFile.new_path];\n\n if (entry) {\n entry.diffLoaded = true;\n entry.diffLoading = false;\n }\n });\n\n return newEntries;\n}\n","var assignInWith = require('./assignInWith'),\n attempt = require('./attempt'),\n baseValues = require('./_baseValues'),\n customDefaultsAssignIn = require('./_customDefaultsAssignIn'),\n escapeStringChar = require('./_escapeStringChar'),\n isError = require('./isError'),\n isIterateeCall = require('./_isIterateeCall'),\n keys = require('./keys'),\n reInterpolate = require('./_reInterpolate'),\n templateSettings = require('./templateSettings'),\n toString = require('./toString');\n\n/** Error message constants. */\nvar INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n/** Used to match empty string literals in compiled template source. */\nvar reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n/**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\nvar reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n/**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\nvar reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n/** Used to ensure capturing order of template delimiters. */\nvar reNoMatch = /($^)/;\n\n/** Used to match unescaped characters in compiled string literals. */\nvar reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<b><%- value %></b>');\n * compiled({ 'value': '<script>' });\n * // => '<b><script></b>'\n *\n * // Use the \"evaluate\" delimiter to execute JavaScript and generate HTML.\n * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the internal `print` function in \"evaluate\" delimiters.\n * var compiled = _.template('<% print(\"hello \" + user); %>!');\n * compiled({ 'user': 'barney' });\n * // => 'hello barney!'\n *\n * // Use the ES template literal delimiter as an \"interpolate\" delimiter.\n * // Disable support by replacing the \"interpolate\" delimiter.\n * var compiled = _.template('hello ${ user }!');\n * compiled({ 'user': 'pebbles' });\n * // => 'hello pebbles!'\n *\n * // Use backslashes to treat delimiters as plain text.\n * var compiled = _.template('<%= \"\\\\<%- value %\\\\>\" %>');\n * compiled({ 'value': 'ignored' });\n * // => '<%- value %>'\n *\n * // Use the `imports` option to import `jQuery` as `jq`.\n * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';\n * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });\n * compiled({ 'users': ['fred', 'barney'] });\n * // => '<li>fred</li><li>barney</li>'\n *\n * // Use the `sourceURL` option to specify a custom sourceURL for the template.\n * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });\n * compiled(data);\n * // => Find the source of \"greeting.jst\" under the Sources tab or Resources panel of the web inspector.\n *\n * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.\n * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });\n * compiled.source;\n * // => function(data) {\n * // var __t, __p = '';\n * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';\n * // return __p;\n * // }\n *\n * // Use custom template delimiters.\n * _.templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\n * var compiled = _.template('hello {{ user }}!');\n * compiled({ 'user': 'mustache' });\n * // => 'hello mustache!'\n *\n * // Use the `source` property to inline compiled templates for meaningful\n * // line numbers in error messages and stack traces.\n * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\\\n * var JST = {\\\n * \"main\": ' + _.template(mainText).source + '\\\n * };\\\n * ');\n */\nfunction template(string, options, guard) {\n // Based on John Resig's `tmpl` implementation\n // (http://ejohn.org/blog/javascript-micro-templating/)\n // and Laura Doktorova's doT.js (https://github.com/olado/doT).\n var settings = templateSettings.imports._.templateSettings || templateSettings;\n\n if (guard && isIterateeCall(string, options, guard)) {\n options = undefined;\n }\n string = toString(string);\n options = assignInWith({}, options, settings, customDefaultsAssignIn);\n\n var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),\n importsKeys = keys(imports),\n importsValues = baseValues(imports, importsKeys);\n\n var isEscaping,\n isEvaluating,\n index = 0,\n interpolate = options.interpolate || reNoMatch,\n source = \"__p += '\";\n\n // Compile the regexp to match each delimiter.\n var reDelimiters = RegExp(\n (options.escape || reNoMatch).source + '|' +\n interpolate.source + '|' +\n (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +\n (options.evaluate || reNoMatch).source + '|$'\n , 'g');\n\n // Use a sourceURL for easier debugging.\n // The sourceURL gets injected into the source that's eval-ed, so be careful\n // to normalize all kinds of whitespace, so e.g. newlines (and unicode versions of it) can't sneak in\n // and escape the comment, thus injecting code that gets evaled.\n var sourceURL = hasOwnProperty.call(options, 'sourceURL')\n ? ('//# sourceURL=' +\n (options.sourceURL + '').replace(/\\s/g, ' ') +\n '\\n')\n : '';\n\n string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {\n interpolateValue || (interpolateValue = esTemplateValue);\n\n // Escape characters that can't be included in string literals.\n source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);\n\n // Replace delimiters with snippets.\n if (escapeValue) {\n isEscaping = true;\n source += \"' +\\n__e(\" + escapeValue + \") +\\n'\";\n }\n if (evaluateValue) {\n isEvaluating = true;\n source += \"';\\n\" + evaluateValue + \";\\n__p += '\";\n }\n if (interpolateValue) {\n source += \"' +\\n((__t = (\" + interpolateValue + \")) == null ? '' : __t) +\\n'\";\n }\n index = offset + match.length;\n\n // The JS engine embedded in Adobe products needs `match` returned in\n // order to produce the correct `offset` value.\n return match;\n });\n\n source += \"';\\n\";\n\n // If `variable` is not specified wrap a with-statement around the generated\n // code to add the data object to the top of the scope chain.\n var variable = hasOwnProperty.call(options, 'variable') && options.variable;\n if (!variable) {\n source = 'with (obj) {\\n' + source + '\\n}\\n';\n }\n // Throw an error if a forbidden character was found in `variable`, to prevent\n // potential command injection attacks.\n else if (reForbiddenIdentifierChars.test(variable)) {\n throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT);\n }\n\n // Cleanup code by stripping empty strings.\n source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)\n .replace(reEmptyStringMiddle, '$1')\n .replace(reEmptyStringTrailing, '$1;');\n\n // Frame code as the function body.\n source = 'function(' + (variable || 'obj') + ') {\\n' +\n (variable\n ? ''\n : 'obj || (obj = {});\\n'\n ) +\n \"var __t, __p = ''\" +\n (isEscaping\n ? ', __e = _.escape'\n : ''\n ) +\n (isEvaluating\n ? ', __j = Array.prototype.join;\\n' +\n \"function print() { __p += __j.call(arguments, '') }\\n\"\n : ';\\n'\n ) +\n source +\n 'return __p\\n}';\n\n var result = attempt(function() {\n return Function(importsKeys, sourceURL + 'return ' + source)\n .apply(undefined, importsValues);\n });\n\n // Provide the compiled function's source by its `toString` method or\n // the `source` property as a convenience for inlining compiled templates.\n result.source = source;\n if (isError(result)) {\n throw result;\n }\n return result;\n}\n\nmodule.exports = template;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"epicLabels\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":276}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/label.fragment.graphql\\\"\\n\\nquery epicLabels($fullPath: ID!, $iid: ID) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n issuable: epic(iid: $iid) {\\n id\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/label.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"epicLabels\"] = oneQuery(doc, \"epicLabels\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"toggle-replies-widget gl-border-r gl-border-l !gl-flex gl-flex-wrap gl-items-center gl-border-l-section gl-border-r-section gl-bg-subtle gl-px-5 gl-py-2 gl-leading-24\",class:{ '!gl-rounded-b-base gl-text-subtle': _vm.collapsed },attrs:{\"aria-expanded\":_vm.ariaState}},[_c('gl-button',{ref:\"toggle\",staticClass:\"gl-my-2 -gl-ml-3 gl-mr-2 !gl-p-0\",class:{ '!gl-text-link': !_vm.collapsed },attrs:{\"category\":\"tertiary\",\"icon\":_vm.buttonIcon,\"aria-label\":_vm.buttonLabel,\"data-testid\":\"replies-toggle\",\"size\":\"small\"},on:{\"click\":_vm.toggle}}),_vm._v(\" \"),(_vm.collapsed)?[_c('gl-avatars-inline',{staticClass:\"gl-mr-3\",attrs:{\"avatars\":_vm.uniqueAuthors,\"avatar-size\":24,\"max-visible\":5,\"badge-sr-only-text\":\"\"},scopedSlots:_vm._u([{key:\"avatar\",fn:function({ avatar }){return [_c('gl-avatar-link',{staticClass:\"js-user-link\",attrs:{\"target\":\"_blank\",\"href\":avatar.path || avatar.webUrl,\"data-user-id\":avatar.id,\"data-username\":avatar.username}},[_c('gl-avatar',{attrs:{\"size\":24,\"src\":avatar.avatar_url || avatar.avatarUrl,\"alt\":avatar.name}})],1)]}}],null,false,1471887347)}),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-mr-2 gl-self-center\",attrs:{\"variant\":\"link\",\"data-testid\":\"expand-replies-button\"},on:{\"click\":_vm.toggle}},[_vm._v(\"\\n \"+_vm._s(_vm.n__('%d reply', '%d replies', _vm.replies.length))+\"\\n \")]),_vm._v(\" \"),_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.lastReplyBy},scopedSlots:_vm._u([{key:\"name\",fn:function(){return [_c('gl-link',{staticClass:\"gl-mx-2 !gl-text-default !gl-no-underline\",attrs:{\"href\":_vm.lastReply.author.path || _vm.lastReply.author.webUrl}},[_vm._v(\"\\n \"+_vm._s(_vm.lastReply.author.name)+\"\\n \")])]},proxy:true}],null,false,1142650514)}),_vm._v(\" \"),_c('time-ago-tooltip',{attrs:{\"time\":_vm.lastReply.created_at || _vm.lastReply.createdAt,\"tooltip-placement\":\"bottom\"}})]:_c('gl-button',{staticClass:\"!gl-no-underline\",attrs:{\"variant\":\"link\",\"data-testid\":\"collapse-replies-button\"},on:{\"click\":_vm.toggle}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.collapseReplies)+\"\\n \")])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./toggle_replies_widget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./toggle_replies_widget.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlLink, GlSprintf, GlAvatarLink, GlAvatar, GlAvatarsInline } from '@gitlab/ui';\nimport { uniqBy } from 'lodash';\nimport { s__ } from '~/locale';\nimport TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';\n\nexport default {\n i18n: {\n collapseReplies: s__('Notes|Collapse replies'),\n expandReplies: s__('Notes|Expand replies'),\n lastReplyBy: s__('Notes|Last reply by %{name}'),\n },\n components: {\n GlButton,\n GlLink,\n GlSprintf,\n GlAvatarLink,\n GlAvatar,\n GlAvatarsInline,\n TimeAgoTooltip,\n },\n props: {\n collapsed: {\n type: Boolean,\n required: true,\n },\n replies: {\n type: Array,\n required: true,\n },\n },\n computed: {\n lastReply() {\n return this.replies[this.replies.length - 1];\n },\n uniqueAuthors() {\n const authors = this.replies.map((reply) => reply.author || {});\n\n return uniqBy(authors, 'username');\n },\n buttonIcon() {\n return this.collapsed ? 'chevron-right' : 'chevron-down';\n },\n buttonLabel() {\n return this.collapsed ? this.$options.i18n.expandReplies : this.$options.i18n.collapseReplies;\n },\n ariaState() {\n return String(!this.collapsed);\n },\n },\n methods: {\n toggle() {\n this.$refs.toggle.$el.focus();\n this.$emit('toggle');\n },\n },\n};\n</script>\n\n<template>\n <li\n :class=\"{ '!gl-rounded-b-base gl-text-subtle': collapsed }\"\n class=\"toggle-replies-widget gl-border-r gl-border-l !gl-flex gl-flex-wrap gl-items-center gl-border-l-section gl-border-r-section gl-bg-subtle gl-px-5 gl-py-2 gl-leading-24\"\n :aria-expanded=\"ariaState\"\n >\n <gl-button\n ref=\"toggle\"\n class=\"gl-my-2 -gl-ml-3 gl-mr-2 !gl-p-0\"\n :class=\"{ '!gl-text-link': !collapsed }\"\n category=\"tertiary\"\n :icon=\"buttonIcon\"\n :aria-label=\"buttonLabel\"\n data-testid=\"replies-toggle\"\n size=\"small\"\n @click=\"toggle\"\n />\n <template v-if=\"collapsed\">\n <gl-avatars-inline\n :avatars=\"uniqueAuthors\"\n :avatar-size=\"24\"\n :max-visible=\"5\"\n badge-sr-only-text=\"\"\n class=\"gl-mr-3\"\n >\n <template #avatar=\"{ avatar }\">\n <gl-avatar-link\n target=\"_blank\"\n :href=\"avatar.path || avatar.webUrl\"\n :data-user-id=\"avatar.id\"\n :data-username=\"avatar.username\"\n class=\"js-user-link\"\n >\n <gl-avatar :size=\"24\" :src=\"avatar.avatar_url || avatar.avatarUrl\" :alt=\"avatar.name\" />\n </gl-avatar-link>\n </template>\n </gl-avatars-inline>\n <gl-button\n class=\"gl-mr-2 gl-self-center\"\n variant=\"link\"\n data-testid=\"expand-replies-button\"\n @click=\"toggle\"\n >\n {{ n__('%d reply', '%d replies', replies.length) }}\n </gl-button>\n <gl-sprintf :message=\"$options.i18n.lastReplyBy\">\n <template #name>\n <gl-link\n :href=\"lastReply.author.path || lastReply.author.webUrl\"\n class=\"gl-mx-2 !gl-text-default !gl-no-underline\"\n >\n {{ lastReply.author.name }}\n </gl-link>\n </template>\n </gl-sprintf>\n <time-ago-tooltip\n :time=\"lastReply.created_at || lastReply.createdAt\"\n tooltip-placement=\"bottom\"\n />\n </template>\n <gl-button\n v-else\n class=\"!gl-no-underline\"\n variant=\"link\"\n data-testid=\"collapse-replies-button\"\n @click=\"toggle\"\n >\n {{ $options.i18n.collapseReplies }}\n </gl-button>\n </li>\n</template>\n","import { render, staticRenderFns } from \"./toggle_replies_widget.vue?vue&type=template&id=d35dfd08\"\nimport script from \"./toggle_replies_widget.vue?vue&type=script&lang=js\"\nexport * from \"./toggle_replies_widget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import createEventHub from '~/helpers/event_hub_factory';\n\nexport default createEventHub();\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"gl-flex gl-flex-wrap\"},_vm._l((_vm.uncollapsedUsers),function(user,index){return _c('div',{key:user.id,staticClass:\"assignee-grid gl-grid gl-w-full gl-items-center\",class:{\n 'gl-mb-3': index !== _vm.users.length - 1 || _vm.users.length > 5,\n }},[_c('assignee-avatar-link',{staticClass:\"gl-break-anywhere\",attrs:{\"user\":user,\"issuable-type\":_vm.issuableType,\"data-css-area\":\"user\"}},[_c('div',{staticClass:\"gl-ml-3 gl-grid gl-items-center gl-leading-normal\",attrs:{\"data-testid\":\"username\"}},[_c('user-name-with-status',{attrs:{\"name\":user.name,\"availability\":_vm.userAvailability(user)}})],1)])],1)}),0),_vm._v(\" \"),(_vm.renderShowMoreSection)?_c('div',{staticClass:\"hover:gl-text-blue-800\",attrs:{\"data-testid\":\"user-list-more\"}},[_c('gl-button',{attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"data-testid\":\"user-list-more-button\"},on:{\"click\":_vm.toggleShowLess}},[(_vm.showLess)?[_vm._v(\"\\n \"+_vm._s(_vm.hiddenAssigneesLabel)+\"\\n \")]:[_vm._v(_vm._s(_vm.__('- show less')))]],2)],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlButton } from '@gitlab/ui';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { __, sprintf } from '~/locale';\nimport AssigneeAvatarLink from './assignee_avatar_link.vue';\nimport UserNameWithStatus from './user_name_with_status.vue';\n\nconst DEFAULT_RENDER_COUNT = 5;\n\nexport default {\n components: {\n GlButton,\n AssigneeAvatarLink,\n UserNameWithStatus,\n },\n mixins: [glFeatureFlagsMixin()],\n props: {\n users: {\n type: Array,\n required: true,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n },\n data() {\n return {\n showLess: true,\n };\n },\n computed: {\n firstUser() {\n return this.users[0];\n },\n hiddenAssigneesLabel() {\n const { numberOfHiddenAssignees } = this;\n return sprintf(__('+ %{numberOfHiddenAssignees} more'), { numberOfHiddenAssignees });\n },\n renderShowMoreSection() {\n return this.users.length > DEFAULT_RENDER_COUNT;\n },\n numberOfHiddenAssignees() {\n return this.users.length - DEFAULT_RENDER_COUNT;\n },\n uncollapsedUsers() {\n const uncollapsedLength = this.showLess\n ? Math.min(this.users.length, DEFAULT_RENDER_COUNT)\n : this.users.length;\n return this.showLess ? this.users.slice(0, uncollapsedLength) : this.users;\n },\n username() {\n return `@${this.firstUser.username}`;\n },\n isMergeRequest() {\n return this.issuableType === TYPE_MERGE_REQUEST;\n },\n },\n methods: {\n toggleShowLess() {\n this.showLess = !this.showLess;\n },\n userAvailability(u) {\n if (this.issuableType === TYPE_MERGE_REQUEST) {\n return u?.availability || '';\n }\n return u?.status?.availability || '';\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div class=\"gl-flex gl-flex-wrap\">\n <div\n v-for=\"(user, index) in uncollapsedUsers\"\n :key=\"user.id\"\n :class=\"{\n 'gl-mb-3': index !== users.length - 1 || users.length > 5,\n }\"\n class=\"assignee-grid gl-grid gl-w-full gl-items-center\"\n >\n <assignee-avatar-link\n :user=\"user\"\n :issuable-type=\"issuableType\"\n class=\"gl-break-anywhere\"\n data-css-area=\"user\"\n >\n <div class=\"gl-ml-3 gl-grid gl-items-center gl-leading-normal\" data-testid=\"username\">\n <user-name-with-status :name=\"user.name\" :availability=\"userAvailability(user)\" />\n </div>\n </assignee-avatar-link>\n </div>\n </div>\n <div v-if=\"renderShowMoreSection\" class=\"hover:gl-text-blue-800\" data-testid=\"user-list-more\">\n <gl-button\n category=\"tertiary\"\n size=\"small\"\n data-testid=\"user-list-more-button\"\n @click=\"toggleShowLess\"\n >\n <template v-if=\"showLess\">\n {{ hiddenAssigneesLabel }}\n </template>\n <template v-else>{{ __('- show less') }}</template>\n </gl-button>\n </div>\n </div>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./uncollapsed_assignee_list.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./uncollapsed_assignee_list.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./uncollapsed_assignee_list.vue?vue&type=template&id=32d3cd60\"\nimport script from \"./uncollapsed_assignee_list.vue?vue&type=script&lang=js\"\nexport * from \"./uncollapsed_assignee_list.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestReviewers\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reviewers\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserAvailability\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestInteraction\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canMerge\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canUpdate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approved\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reviewState\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ReviewersApplicableApprovalRules\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"adminMergeRequest\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":737}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/user_availability.fragment.graphql\\\"\\n#import \\\"ee_else_ce/sidebar/queries/reviewer_applicable_approval_rules.fragment.graphql\\\"\\n\\nquery mergeRequestReviewers($fullPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: mergeRequest(iid: $iid) {\\n id\\n reviewers {\\n nodes {\\n ...User\\n ...UserAvailability\\n mergeRequestInteraction {\\n canMerge\\n canUpdate\\n approved\\n reviewState\\n\\n ...ReviewersApplicableApprovalRules\\n }\\n }\\n }\\n userPermissions {\\n adminMergeRequest\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user_availability.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/sidebar/queries/reviewer_applicable_approval_rules.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"mergeRequestReviewers\"] = oneQuery(doc, \"mergeRequestReviewers\");\n \n","import Vue from 'vue';\nimport { parseBoolean } from '../lib/utils/common_utils';\nimport ProjectFormGroup from './components/project_form_group.vue';\nimport state from './state';\n\nexport function isConfidentialIssue() {\n return parseBoolean(document.querySelector('.js-create-mr').dataset.isConfidential);\n}\n\nexport function canCreateConfidentialMergeRequest() {\n return isConfidentialIssue() && Object.keys(state.selectedProject).length > 0;\n}\n\nexport function init() {\n const el = document.getElementById('js-forked-project');\n\n return new Vue({\n el,\n render(h) {\n return h(ProjectFormGroup, {\n props: {\n namespacePath: el.dataset.namespacePath,\n projectPath: el.dataset.projectPath,\n newForkPath: el.dataset.newForkPath,\n helpPagePath: el.dataset.helpPagePath,\n },\n });\n },\n });\n}\n","const InputSetter = {\n init(hook) {\n this.hook = hook;\n this.destroyed = false;\n this.config = hook.config.InputSetter || (this.hook.config.InputSetter = {});\n\n this.eventWrapper = {};\n\n this.addEvents();\n },\n\n addEvents() {\n this.eventWrapper.setInputs = this.setInputs.bind(this);\n this.hook.list.list.addEventListener('click.dl', this.eventWrapper.setInputs);\n },\n\n removeEvents() {\n this.hook.list.list.removeEventListener('click.dl', this.eventWrapper.setInputs);\n },\n\n setInputs(e) {\n if (this.destroyed) return;\n\n const selectedItem = e.detail.selected;\n\n if (!Array.isArray(this.config)) this.config = [this.config];\n\n this.config.forEach((config) => this.setInput(config, selectedItem));\n },\n\n setInput(config, selectedItem) {\n const input = config.input || this.hook.trigger;\n const newValue = selectedItem.getAttribute(config.valueAttribute);\n const { inputAttribute } = config;\n\n if (input.hasAttribute(inputAttribute)) {\n input.setAttribute(inputAttribute, newValue);\n } else if (input.tagName === 'INPUT') {\n input.value = newValue;\n } else {\n input.textContent = newValue;\n }\n },\n\n destroy() {\n this.destroyed = true;\n\n this.removeEvents();\n },\n};\n\nexport default InputSetter;\n","import { debounce } from 'lodash';\nimport {\n init as initConfidentialMergeRequest,\n isConfidentialIssue,\n canCreateConfidentialMergeRequest,\n} from '~/confidential_merge_request';\nimport confidentialMergeRequestState from '~/confidential_merge_request/state';\nimport DropLab from '~/filtered_search/droplab/drop_lab_deprecated';\nimport ISetter from '~/filtered_search/droplab/plugins/input_setter';\nimport { createAlert } from '~/alert';\nimport axios from '~/lib/utils/axios_utils';\nimport { __, sprintf } from '~/locale';\nimport { mergeUrlParams } from '~/lib/utils/url_utility';\nimport {\n findInvalidBranchNameCharacters,\n humanizeBranchValidationErrors,\n} from '~/lib/utils/text_utility';\nimport api from '~/api';\nimport { NON_INPUT_KEYS } from './constants';\n\n// Todo: Remove this when fixing issue in input_setter plugin\nconst InputSetter = { ...ISetter };\n\nconst CREATE_MERGE_REQUEST = 'create-mr';\nconst CREATE_BRANCH = 'create-branch';\n\nconst VALIDATION_TYPE_BRANCH_UNAVAILABLE = 'branch_unavailable';\nconst VALIDATION_TYPE_INVALID_CHARS = 'invalid_chars';\n\nconst INPUT_TARGET_BRANCH = 'branch';\nconst INPUT_TARGET_REF = 'ref';\n\nfunction createEndpoint(projectPath, endpoint) {\n if (canCreateConfidentialMergeRequest()) {\n return endpoint.replace(\n projectPath,\n confidentialMergeRequestState.selectedProject.pathWithNamespace,\n );\n }\n\n return endpoint;\n}\n\nfunction getValidationError(target, inputValue, validationType) {\n const invalidChars = findInvalidBranchNameCharacters(inputValue.value);\n let text;\n\n if (invalidChars && validationType === VALIDATION_TYPE_INVALID_CHARS) {\n text = humanizeBranchValidationErrors(invalidChars);\n }\n\n if (validationType === VALIDATION_TYPE_BRANCH_UNAVAILABLE) {\n text =\n target === INPUT_TARGET_BRANCH\n ? __('Branch is already taken')\n : __('Source is not available');\n }\n\n return text;\n}\nexport default class CreateMergeRequestDropdown {\n constructor(wrapperEl) {\n this.wrapperEl = wrapperEl;\n this.availableButton = this.wrapperEl.querySelector('.available');\n this.branchInput = this.wrapperEl.querySelector('.js-branch-name');\n this.branchMessage = this.wrapperEl.querySelector('.js-branch-message');\n this.createMergeRequestButton = this.wrapperEl.querySelector('.js-create-merge-request');\n this.createMergeRequestLoading = this.createMergeRequestButton.querySelector('.js-spinner');\n this.createTargetButton = this.wrapperEl.querySelector('.js-create-target');\n this.dropdownList = this.wrapperEl.querySelector('.dropdown-menu');\n this.dropdownToggle = this.wrapperEl.querySelector('.js-dropdown-toggle');\n this.refInput = this.wrapperEl.querySelector('.js-ref');\n this.refMessage = this.wrapperEl.querySelector('.js-ref-message');\n this.unavailableButton = this.wrapperEl.querySelector('.unavailable');\n this.unavailableButtonSpinner = this.unavailableButton.querySelector('.js-create-mr-spinner');\n this.unavailableButtonText = this.unavailableButton.querySelector('.text');\n\n this.branchCreated = false;\n this.branchIsValid = true;\n this.canCreatePath = this.wrapperEl.dataset.canCreatePath;\n this.createBranchPath = this.wrapperEl.dataset.createBranchPath;\n this.createMrPath = this.wrapperEl.dataset.createMrPath;\n this.droplabInitialized = false;\n this.isCreatingBranch = false;\n this.isCreatingMergeRequest = false;\n this.isGettingRef = false;\n this.refCancelToken = null;\n this.mergeRequestCreated = false;\n this.refDebounce = debounce((value, target) => this.getRef(value, target), 500);\n this.refIsValid = true;\n this.refsPath = this.wrapperEl.dataset.refsPath;\n this.suggestedRef = this.refInput.value;\n this.projectPath = this.wrapperEl.dataset.projectPath;\n this.projectId = this.wrapperEl.dataset.projectId;\n\n // These regexps are used to replace\n // a backend generated new branch name and its source (ref)\n // with user's inputs.\n this.regexps = {\n branch: {\n createBranchPath: /(branch_name=)(.+?)(?=&issue)/,\n createMrPath: /(source_branch%5D=)(.+?)(?=&)/,\n },\n ref: {\n createBranchPath: /(ref=)(.+?)$/,\n createMrPath: /(target_branch%5D=)(.+?)$/,\n },\n };\n\n this.init();\n\n if (isConfidentialIssue()) {\n this.createMergeRequestButton.dataset.dropdownTrigger = '#create-merge-request-dropdown';\n initConfidentialMergeRequest();\n }\n }\n\n available() {\n this.availableButton.classList.remove('hidden');\n this.unavailableButton.classList.add('hidden');\n }\n\n bindEvents() {\n this.createMergeRequestButton.addEventListener(\n 'click',\n this.onClickCreateMergeRequestButton.bind(this),\n );\n this.createTargetButton.addEventListener(\n 'click',\n this.onClickCreateMergeRequestButton.bind(this),\n );\n this.branchInput.addEventListener('input', this.onChangeInput.bind(this));\n this.branchInput.addEventListener('keyup', this.onChangeInput.bind(this));\n this.dropdownToggle.addEventListener('click', this.onClickSetFocusOnBranchNameInput.bind(this));\n // Detect for example when user pastes ref using the mouse\n this.refInput.addEventListener('input', this.onChangeInput.bind(this));\n // Detect for example when user presses right arrow to apply the suggested ref\n this.refInput.addEventListener('keyup', this.onChangeInput.bind(this));\n // Detect when user clicks inside the input to apply the suggested ref\n this.refInput.addEventListener('click', this.onChangeInput.bind(this));\n // Detect when user presses tab to apply the suggested ref\n this.refInput.addEventListener('keydown', CreateMergeRequestDropdown.processTab.bind(this));\n }\n\n checkAbilityToCreateBranch() {\n this.setUnavailableButtonState();\n\n axios\n .get(this.canCreatePath)\n .then(({ data }) => {\n this.setUnavailableButtonState(false);\n\n if (!data.can_create_branch) {\n this.hide();\n return;\n }\n\n this.available();\n this.enable();\n this.updateBranchName(data.suggested_branch_name);\n\n if (!this.droplabInitialized) {\n this.droplabInitialized = true;\n this.initDroplab();\n this.bindEvents();\n }\n })\n .catch(() => {\n this.unavailable();\n this.disable();\n createAlert({\n message: __('Failed to check related branches.'),\n });\n });\n }\n\n createBranch(navigateToBranch = true) {\n this.isCreatingBranch = true;\n\n const endpoint = createEndpoint(\n this.projectPath,\n mergeUrlParams(\n { ref: this.refInput.value, branch_name: this.branchInput.value },\n this.createBranchPath,\n ),\n );\n\n return axios\n .post(endpoint, {\n confidential_issue_project_id: canCreateConfidentialMergeRequest() ? this.projectId : null,\n })\n .then(({ data }) => {\n this.branchCreated = true;\n\n if (navigateToBranch) {\n window.location.href = data.url;\n }\n })\n .catch(() =>\n createAlert({\n message: __('Failed to create a branch for this issue. Please try again.'),\n }),\n );\n }\n\n createMergeRequest() {\n this.isCreatingMergeRequest = true;\n\n return this.createBranch(false)\n .then(() => api.trackRedisHllUserEvent('i_code_review_user_create_mr_from_issue'))\n .then(() => {\n let path = canCreateConfidentialMergeRequest()\n ? this.createMrPath.replace(\n this.projectPath,\n confidentialMergeRequestState.selectedProject.pathWithNamespace,\n )\n : this.createMrPath;\n path = mergeUrlParams(\n {\n 'merge_request[target_branch]': this.refInput.value,\n 'merge_request[source_branch]': this.branchInput.value,\n },\n path,\n );\n\n window.location.href = path;\n });\n }\n\n disable() {\n this.disableCreateAction();\n }\n\n setLoading(loading) {\n this.createMergeRequestLoading.classList.toggle('gl-hidden', !loading);\n }\n\n disableCreateAction() {\n this.createMergeRequestButton.classList.add('disabled');\n this.createMergeRequestButton.setAttribute('disabled', 'disabled');\n\n this.createTargetButton.classList.add('disabled');\n this.createTargetButton.setAttribute('disabled', 'disabled');\n }\n\n enable() {\n if (isConfidentialIssue() && !canCreateConfidentialMergeRequest()) return;\n\n this.createMergeRequestButton.classList.remove('disabled');\n this.createMergeRequestButton.removeAttribute('disabled');\n\n this.createTargetButton.classList.remove('disabled');\n this.createTargetButton.removeAttribute('disabled');\n }\n\n static findByValue(objects, ref, returnFirstMatch = false) {\n if (!objects || !objects.length) return false;\n if (objects.indexOf(ref) > -1) return ref;\n if (returnFirstMatch) return objects.find((item) => new RegExp(`^${ref}`).test(item));\n\n return false;\n }\n\n getDroplabConfig() {\n return {\n addActiveClassToDropdownButton: true,\n InputSetter: [\n {\n input: this.createMergeRequestButton,\n valueAttribute: 'data-value',\n inputAttribute: 'data-action',\n },\n {\n input: this.createMergeRequestButton,\n valueAttribute: 'data-text',\n },\n {\n input: this.createTargetButton,\n valueAttribute: 'data-value',\n inputAttribute: 'data-action',\n },\n {\n input: this.createTargetButton,\n valueAttribute: 'data-text',\n },\n ],\n hideOnClick: false,\n };\n }\n\n static getInputSelectedText(input) {\n const start = input.selectionStart;\n const end = input.selectionEnd;\n\n return input.value.substr(start, end - start);\n }\n\n getRef(ref, target = 'all') {\n if (!ref) return false;\n\n this.refCancelToken = axios.CancelToken.source();\n\n return axios\n .get(`${createEndpoint(this.projectPath, this.refsPath)}${encodeURIComponent(ref)}`, {\n cancelToken: this.refCancelToken.token,\n })\n .then(({ data }) => {\n const branches = data[Object.keys(data)[0]];\n const tags = data[Object.keys(data)[1]];\n let result;\n\n if (target === INPUT_TARGET_BRANCH) {\n result = CreateMergeRequestDropdown.findByValue(branches, ref);\n } else {\n result =\n CreateMergeRequestDropdown.findByValue(branches, ref, true) ||\n CreateMergeRequestDropdown.findByValue(tags, ref, true);\n this.suggestedRef = result;\n }\n\n this.isGettingRef = false;\n\n return this.updateInputState(target, ref, result);\n })\n .catch((thrown) => {\n if (axios.isCancel(thrown)) {\n return false;\n }\n this.unavailable();\n this.disable();\n createAlert({\n message: __('Failed to get ref.'),\n });\n\n this.isGettingRef = false;\n\n return false;\n });\n }\n\n getTargetData(target) {\n return {\n input: this[`${target}Input`],\n message: this[`${target}Message`],\n };\n }\n\n hide() {\n this.wrapperEl.classList.add('hidden');\n }\n\n init() {\n this.checkAbilityToCreateBranch();\n }\n\n initDroplab() {\n this.droplab = new DropLab();\n\n this.droplab.init(\n this.dropdownToggle,\n this.dropdownList,\n [InputSetter],\n this.getDroplabConfig(),\n );\n }\n\n inputsAreValid() {\n return this.branchIsValid && this.refIsValid;\n }\n\n isBusy() {\n return (\n this.isCreatingMergeRequest ||\n this.mergeRequestCreated ||\n this.isCreatingBranch ||\n this.branchCreated ||\n this.isGettingRef\n );\n }\n\n onChangeInput(event) {\n // If the user was holding a meta key, released a meta key, or released or pressed esc, do nothing.\n if (\n event.altKey ||\n event.ctrlKey ||\n event.metaKey ||\n event.shiftKey ||\n NON_INPUT_KEYS.includes(event.keyCode)\n ) {\n return undefined;\n }\n\n this.disable();\n let target;\n let value;\n\n // User changed input, cancel to prevent previous request from interfering\n if (this.refCancelToken !== null) {\n this.refCancelToken.cancel();\n }\n\n if (event.target === this.branchInput) {\n target = INPUT_TARGET_BRANCH;\n ({ value } = this.branchInput);\n } else if (event.target === this.refInput) {\n target = INPUT_TARGET_REF;\n if (event.target === document.activeElement) {\n value =\n event.target.value.slice(0, event.target.selectionStart) +\n event.target.value.slice(event.target.selectionEnd);\n } else {\n value = event.target.value;\n }\n } else {\n return false;\n }\n\n if (this.isGettingRef) return false;\n\n // `ENTER` key submits the data.\n if (event.keyCode === 13 && this.inputsAreValid()) {\n event.preventDefault();\n return this.createMergeRequestButton.click();\n }\n\n // If the input is empty, use the original value generated by the backend.\n if (!value) {\n if (target === INPUT_TARGET_BRANCH) {\n this.branchIsValid = true;\n } else {\n this.refIsValid = true;\n }\n\n this.enable();\n this.showAvailableMessage(target);\n this.refDebounce(value, target);\n return true;\n }\n\n this.showCheckingMessage(target);\n this.refDebounce(value, target);\n\n return true;\n }\n\n onClickCreateMergeRequestButton(event) {\n let xhr = null;\n event.preventDefault();\n\n if (isConfidentialIssue() && !event.currentTarget.classList.contains('js-create-target')) {\n this.droplab.hooks.forEach((hook) => hook.list.toggle());\n\n return;\n }\n\n if (this.isBusy()) {\n return;\n }\n\n if (event.currentTarget.dataset.action === CREATE_MERGE_REQUEST) {\n xhr = this.createMergeRequest();\n } else if (event.currentTarget.dataset.action === CREATE_BRANCH) {\n xhr = this.createBranch();\n }\n\n xhr.catch(() => {\n this.isCreatingMergeRequest = false;\n this.isCreatingBranch = false;\n\n this.enable();\n this.setLoading(false);\n });\n\n this.setLoading(true);\n this.disable();\n }\n\n onClickSetFocusOnBranchNameInput() {\n this.branchInput.focus();\n }\n\n // `TAB` autocompletes the source.\n static processTab(event) {\n if (event.keyCode !== 9 || this.isGettingRef) return;\n\n const selectedText = CreateMergeRequestDropdown.getInputSelectedText(this.refInput);\n\n // if nothing selected, we don't need to autocomplete anything. Do the default TAB action.\n // If a user manually selected text, don't autocomplete anything. Do the default TAB action.\n if (!selectedText || this.refInput.dataset.value === this.suggestedRef) return;\n\n event.preventDefault();\n const caretPositionEnd = this.refInput.value.length;\n this.refInput.setSelectionRange(caretPositionEnd, caretPositionEnd);\n }\n\n removeMessage(target) {\n const { input, message } = this.getTargetData(target);\n const inputClasses = ['gl-field-error-outline', 'gl-field-success-outline'];\n const messageClasses = ['gl-text-subtle', 'gl-text-red-500', 'gl-text-success'];\n\n inputClasses.forEach((cssClass) => input.classList.remove(cssClass));\n messageClasses.forEach((cssClass) => message.classList.remove(cssClass));\n message.style.display = 'none';\n }\n\n setUnavailableButtonState(isLoading = true) {\n if (isLoading) {\n this.unavailableButtonSpinner.classList.remove('gl-hidden');\n this.unavailableButtonText.textContent = __('Checking branch availability...');\n } else {\n this.unavailableButtonSpinner.classList.add('gl-hidden');\n this.unavailableButtonText.textContent = __('New branch unavailable');\n }\n }\n\n showAvailableMessage(target) {\n const { input, message } = this.getTargetData(target);\n const text = target === INPUT_TARGET_BRANCH ? __('Branch name') : __('Source');\n\n this.removeMessage(target);\n input.classList.add('gl-field-success-outline');\n message.classList.add('gl-text-success');\n message.textContent = sprintf(__('%{text} is available'), { text });\n message.style.display = 'inline-block';\n }\n\n showCheckingMessage(target) {\n const { message } = this.getTargetData(target);\n const text = target === INPUT_TARGET_BRANCH ? __('branch name') : __('source');\n\n this.removeMessage(target);\n message.classList.add('gl-text-subtle');\n message.textContent = sprintf(__('Checking %{text} availability…'), { text });\n message.style.display = 'inline-block';\n }\n\n showNotAvailableMessage(target, validationType = VALIDATION_TYPE_BRANCH_UNAVAILABLE) {\n const { input, message } = this.getTargetData(target);\n const text = getValidationError(target, input, validationType);\n\n this.removeMessage(target);\n input.classList.add('gl-field-error-outline');\n message.classList.add('gl-text-red-500');\n message.textContent = text;\n message.style.display = 'inline-block';\n }\n\n unavailable() {\n this.availableButton.classList.add('hidden');\n this.unavailableButton.classList.remove('hidden');\n }\n\n updateBranchName(suggestedBranchName) {\n this.branchInput.value = suggestedBranchName;\n this.updateInputState(INPUT_TARGET_BRANCH, suggestedBranchName, '');\n }\n\n updateInputState(target, ref, result) {\n // target - 'branch' or 'ref' - which the input field we are searching a ref for.\n // ref - string - what a user typed.\n // result - string - what has been found on backend.\n if (target === INPUT_TARGET_BRANCH) this.updateTargetBranchInput(ref, result);\n if (target === INPUT_TARGET_REF) this.updateRefInput(ref, result);\n\n if (this.inputsAreValid()) {\n this.enable();\n } else {\n this.disableCreateAction();\n }\n }\n\n updateRefInput(ref, result) {\n this.refInput.dataset.value = ref;\n if (ref === result) {\n this.refIsValid = true;\n this.showAvailableMessage(INPUT_TARGET_REF);\n } else {\n this.refIsValid = false;\n this.refInput.dataset.value = ref;\n this.disableCreateAction();\n this.showNotAvailableMessage(INPUT_TARGET_REF);\n\n // Show ref hint.\n if (result) {\n this.refInput.value = result;\n this.refInput.setSelectionRange(ref.length, result.length);\n }\n }\n }\n\n updateTargetBranchInput(ref, result) {\n const branchNameErrors = findInvalidBranchNameCharacters(ref);\n const isInvalidString = branchNameErrors.length;\n if (ref !== result && !isInvalidString) {\n this.branchIsValid = true;\n // If a found branch equals exact the same text a user typed,\n // Or user typed input contains invalid chars,\n // that means a new branch cannot be created as it already exists.\n this.showAvailableMessage(INPUT_TARGET_BRANCH, VALIDATION_TYPE_BRANCH_UNAVAILABLE);\n } else if (isInvalidString) {\n this.branchIsValid = false;\n this.showNotAvailableMessage(INPUT_TARGET_BRANCH, VALIDATION_TYPE_INVALID_CHARS);\n } else {\n this.branchIsValid = false;\n this.showNotAvailableMessage(INPUT_TARGET_BRANCH);\n }\n }\n}\n","import $ from 'jquery';\nimport { joinPaths } from '~/lib/utils/url_utility';\nimport { createAlert } from '~/alert';\nimport { EVENT_ISSUABLE_VUE_APP_CHANGE } from '~/issuable/constants';\nimport axios from '~/lib/utils/axios_utils';\nimport { addDelimiter } from '~/lib/utils/text_utility';\nimport { __ } from '~/locale';\nimport CreateMergeRequestDropdown from './create_merge_request_dropdown';\n\nexport default class Issue {\n constructor() {\n if ($('.js-alert-moved-from-service-desk-warning').length) {\n Issue.initIssueMovedFromServiceDeskDismissHandler();\n }\n\n if (document.querySelector('#related-branches')) {\n Issue.initRelatedBranches();\n }\n\n Issue.createMrDropdownWrap = document.querySelector('.create-mr-dropdown-wrap');\n\n if (Issue.createMrDropdownWrap) {\n this.createMergeRequestDropdown = new CreateMergeRequestDropdown(Issue.createMrDropdownWrap);\n }\n\n // Listen to state changes in the Vue app\n this.issuableVueAppChangeHandler = (event) =>\n this.updateTopState(event.detail.isClosed, event.detail.data);\n document.addEventListener(EVENT_ISSUABLE_VUE_APP_CHANGE, this.issuableVueAppChangeHandler);\n }\n\n dispose() {\n document.removeEventListener(EVENT_ISSUABLE_VUE_APP_CHANGE, this.issuableVueAppChangeHandler);\n }\n\n /**\n * This method updates the top area of the issue.\n *\n * Once the issue state changes, either through a click on the top area (jquery)\n * or a click on the bottom area (Vue) we need to update the top area.\n *\n * @param {Boolean} isClosed\n * @param {Array} data\n * @param {String} issueFailMessage\n */\n updateTopState(\n isClosed,\n data,\n issueFailMessage = __('Unable to update this issue at this time.'),\n ) {\n if ('id' in data) {\n const projectIssuesCounter = $('.issue_counter');\n\n $(document).trigger('issuable:change', isClosed);\n\n // TODO: Remove this with the removal of the old navigation.\n // See https://gitlab.com/groups/gitlab-org/-/epics/11875.\n let numProjectIssues = Number(\n projectIssuesCounter.first().text().trim().replace(/[^\\d]/, ''),\n );\n numProjectIssues = isClosed ? numProjectIssues - 1 : numProjectIssues + 1;\n projectIssuesCounter.text(addDelimiter(numProjectIssues));\n\n if (this.createMergeRequestDropdown) {\n this.createMergeRequestDropdown.checkAbilityToCreateBranch();\n }\n } else {\n createAlert({\n message: issueFailMessage,\n });\n }\n }\n\n static initIssueMovedFromServiceDeskDismissHandler() {\n const alertMovedFromServiceDeskWarning = $('.js-alert-moved-from-service-desk-warning');\n\n const trimmedPathname = window.location.pathname.slice(1);\n const alertMovedFromServiceDeskDismissedKey = joinPaths(\n trimmedPathname,\n 'alert-issue-moved-from-service-desk-dismissed',\n );\n\n if (!localStorage.getItem(alertMovedFromServiceDeskDismissedKey)) {\n alertMovedFromServiceDeskWarning.show();\n }\n\n alertMovedFromServiceDeskWarning.on('click', '.js-close', (e) => {\n e.preventDefault();\n e.stopImmediatePropagation();\n alertMovedFromServiceDeskWarning.remove();\n localStorage.setItem(alertMovedFromServiceDeskDismissedKey, true);\n });\n }\n\n static initRelatedBranches() {\n const $container = $('#related-branches');\n axios\n .get($container.data('url'))\n .then(({ data }) => {\n if ('html' in data) {\n $container.html(data.html);\n }\n })\n .catch(() =>\n createAlert({\n message: __('Failed to load related branches'),\n }),\n );\n }\n}\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./type_popover.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./type_popover.vue?vue&type=script&lang=js\"","<script>\nimport { GlPopover } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\n\nexport default {\n i18n: {\n issueTypes: __('Issue types'),\n issue: __('Issue'),\n incident: __('Incident'),\n issueHelpText: __('For general work'),\n incidentHelpText: __('For investigating IT service disruptions or outages'),\n },\n components: {\n HelpIcon,\n GlPopover,\n },\n};\n</script>\n\n<template>\n <span id=\"popovercontainer\" class=\"gl-ml-2\">\n <help-icon id=\"issue-type-info\" />\n\n <gl-popover\n target=\"issue-type-info\"\n container=\"popovercontainer\"\n :title=\"$options.i18n.issueTypes\"\n triggers=\"focus hover\"\n >\n <ul class=\"gl-m-0 gl-list-none gl-p-0\">\n <li class=\"gl-mb-3\">\n <div class=\"gl-font-bold\">{{ $options.i18n.issue }}</div>\n <span>{{ $options.i18n.issueHelpText }}</span>\n </li>\n <li>\n <div class=\"gl-font-bold\">{{ $options.i18n.incident }}</div>\n <span>{{ $options.i18n.incidentHelpText }}</span>\n </li>\n </ul>\n </gl-popover>\n </span>\n</template>\n","import { render, staticRenderFns } from \"./type_popover.vue?vue&type=template&id=defe66f4\"\nimport script from \"./type_popover.vue?vue&type=script&lang=js\"\nexport * from \"./type_popover.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"gl-ml-2\",attrs:{\"id\":\"popovercontainer\"}},[_c('help-icon',{attrs:{\"id\":\"issue-type-info\"}}),_vm._v(\" \"),_c('gl-popover',{attrs:{\"target\":\"issue-type-info\",\"container\":\"popovercontainer\",\"title\":_vm.$options.i18n.issueTypes,\"triggers\":\"focus hover\"}},[_c('ul',{staticClass:\"gl-m-0 gl-list-none gl-p-0\"},[_c('li',{staticClass:\"gl-mb-3\"},[_c('div',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(_vm.$options.i18n.issue))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.$options.i18n.issueHelpText))])]),_vm._v(\" \"),_c('li',[_c('div',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(_vm.$options.i18n.incident))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.$options.i18n.incidentHelpText))])])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./type_select.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./type_select.vue?vue&type=script&lang=js\"","<script>\nimport { GlCollapsibleListbox, GlIcon } from '@gitlab/ui';\nimport { TYPE_ISSUE, TYPE_INCIDENT } from '~/issues/constants';\nimport { visitUrl } from '~/lib/utils/url_utility';\nimport Tracking from '~/tracking';\nimport { __ } from '~/locale';\n\nexport default {\n i18n: {\n selectType: __('Select type'),\n issuableType: {\n [TYPE_ISSUE]: __('Issue'),\n [TYPE_INCIDENT]: __('Incident'),\n },\n },\n components: {\n GlCollapsibleListbox,\n GlIcon,\n },\n mixins: [Tracking.mixin()],\n props: {\n selectedType: {\n required: false,\n default: '',\n type: String,\n },\n isIssueAllowed: {\n required: false,\n default: false,\n type: Boolean,\n },\n isIncidentAllowed: {\n required: false,\n default: false,\n type: Boolean,\n },\n issuePath: {\n required: false,\n default: '',\n type: String,\n },\n incidentPath: {\n required: false,\n default: '',\n type: String,\n },\n },\n data() {\n return {\n selected: this.selectedType,\n };\n },\n computed: {\n toggleText() {\n return this.selectedType\n ? this.$options.i18n.issuableType[this.selectedType]\n : this.$options.i18n.selectType;\n },\n dropdownItems() {\n const issueItem = this.isIssueAllowed\n ? {\n value: TYPE_ISSUE,\n text: __('Issue'),\n icon: 'issue-type-issue',\n href: this.issuePath,\n }\n : null;\n const incidentItem = this.isIncidentAllowed\n ? {\n value: TYPE_INCIDENT,\n text: __('Incident'),\n icon: 'issue-type-incident',\n href: this.incidentPath,\n tracking: {\n action: 'select_issue_type_incident',\n label: 'select_issue_type_incident_dropdown_option',\n },\n }\n : null;\n\n return [issueItem, incidentItem].filter(Boolean);\n },\n },\n methods: {\n selectType(type) {\n const selectedItem = this.dropdownItems.find((item) => item.value === type);\n if (selectedItem.tracking) {\n const { action, label } = selectedItem.tracking;\n this.track(action, { label });\n }\n\n visitUrl(selectedItem.href);\n },\n },\n};\n</script>\n\n<template>\n <gl-collapsible-listbox\n v-model=\"selected\"\n :header-text=\"$options.i18n.selectType\"\n :toggle-text=\"toggleText\"\n :items=\"dropdownItems\"\n block\n class=\"js-issuable-type-filter-dropdown-wrap\"\n @select=\"selectType\"\n >\n <template #list-item=\"{ item }\">\n <gl-icon :name=\"item.icon\" :size=\"16\" />\n {{ item.text }}\n </template>\n </gl-collapsible-listbox>\n</template>\n","import { render, staticRenderFns } from \"./type_select.vue?vue&type=template&id=c629a7ba\"\nimport script from \"./type_select.vue?vue&type=script&lang=js\"\nexport * from \"./type_select.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-collapsible-listbox',{staticClass:\"js-issuable-type-filter-dropdown-wrap\",attrs:{\"header-text\":_vm.$options.i18n.selectType,\"toggle-text\":_vm.toggleText,\"items\":_vm.dropdownItems,\"block\":\"\"},on:{\"select\":_vm.selectType},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('gl-icon',{attrs:{\"name\":item.icon,\"size\":16}}),_vm._v(\"\\n \"+_vm._s(item.text)+\"\\n \")]}}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isFetchingMergeRequests || (!_vm.isFetchingMergeRequests && _vm.totalCount))?_c('crud-component',{attrs:{\"anchor-id\":\"related-merge-requests\",\"is-loading\":_vm.isFetchingMergeRequests,\"title\":_vm.__('Related merge requests'),\"icon\":\"merge-request\",\"count\":_vm.totalCount,\"is-collapsible\":\"\"},scopedSlots:_vm._u([(_vm.hasClosingMergeRequest && !_vm.isFetchingMergeRequests)?{key:\"description\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.closingMergeRequestsText)+\"\\n \")]},proxy:true}:null],null,true)},[_vm._v(\" \"),_c('ul',{staticClass:\"content-list related-items-list !-gl-mx-3 !gl-my-3\"},_vm._l((_vm.mergeRequests),function(mr){return _c('li',{key:mr.id,staticClass:\"!gl-border-b-0 !gl-py-0\"},[_c('related-issuable-item',{attrs:{\"id-key\":_vm.idKey(mr),\"display-reference\":_vm.displayReference(mr),\"title\":mr.title,\"milestone\":mr.milestone,\"assignees\":mr.assignees.nodes,\"created-at\":mr.createdAt,\"merged-at\":mr.mergedAt,\"path\":mr.webUrl,\"state\":mr.state,\"pipeline-status\":mr.headPipeline && mr.headPipeline.detailedStatus,\"path-id-separator\":\"!\",\"is-merge-request\":\"\"}})],1)}),0)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./related_merge_requests.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./related_merge_requests.vue?vue&type=script&lang=js\"","<script>\nimport produce from 'immer';\nimport { createAlert } from '~/alert';\nimport { sprintf, __, n__ } from '~/locale';\nimport RelatedIssuableItem from '~/issuable/components/related_issuable_item.vue';\nimport CrudComponent from '~/vue_shared/components/crud_component.vue';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport relatedMergeRequestsQuery from '../queries/related_merge_requests.query.graphql';\n\nexport default {\n name: 'RelatedMergeRequests',\n apollo: {\n mergeRequests: {\n query: relatedMergeRequestsQuery,\n variables() {\n return {\n projectPath: this.projectPath,\n iid: this.iid,\n };\n },\n update: (d) => d?.project?.issue?.relatedMergeRequests?.nodes,\n result({ data }) {\n const pageInfo = data?.project?.issue?.relatedMergeRequests?.pageInfo;\n\n this.totalCount = data?.project?.issue?.relatedMergeRequests?.count;\n\n if (pageInfo?.hasNextPage) {\n this.$apollo.queries.mergeRequests.fetchMore({\n variables: {\n projectPath: this.projectPath,\n iid: this.iid,\n after: pageInfo.endCursor,\n },\n updateQuery: (previousResult, { fetchMoreResult }) => {\n const newMergeRequests = fetchMoreResult.project.issue.relatedMergeRequests.nodes;\n const prevMergeRequests = previousResult.project.issue.relatedMergeRequests.nodes;\n\n return produce(fetchMoreResult, (draftData) => {\n draftData.project.issue.relatedMergeRequests.nodes =\n prevMergeRequests.concat(newMergeRequests);\n });\n },\n });\n }\n },\n error() {\n createAlert({\n message: __('Something went wrong while fetching related merge requests.'),\n });\n },\n },\n },\n components: {\n CrudComponent,\n RelatedIssuableItem,\n },\n props: {\n hasClosingMergeRequest: {\n type: Boolean,\n required: false,\n default: false,\n },\n projectPath: {\n type: String,\n required: true,\n },\n iid: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n mergeRequests: null,\n totalCount: null,\n };\n },\n computed: {\n isFetchingMergeRequests() {\n return this.$apollo.queries.mergeRequests.loading;\n },\n closingMergeRequestsText() {\n if (!this.hasClosingMergeRequest) {\n return '';\n }\n\n const mrText = n__(\n 'When this merge request is accepted',\n 'When these merge requests are accepted',\n this.totalCount,\n );\n\n return sprintf(__('%{mrText}, this issue will be closed automatically.'), { mrText });\n },\n },\n methods: {\n idKey(mergeRequest) {\n return getIdFromGraphQLId(mergeRequest.id);\n },\n displayReference(mergeRequest) {\n const { fullPath } = mergeRequest.project;\n\n return `${this.projectPath !== fullPath ? fullPath : ''}${mergeRequest.reference}`;\n },\n },\n};\n</script>\n\n<template>\n <crud-component\n v-if=\"isFetchingMergeRequests || (!isFetchingMergeRequests && totalCount)\"\n anchor-id=\"related-merge-requests\"\n :is-loading=\"isFetchingMergeRequests\"\n :title=\"__('Related merge requests')\"\n icon=\"merge-request\"\n :count=\"totalCount\"\n is-collapsible\n >\n <template v-if=\"hasClosingMergeRequest && !isFetchingMergeRequests\" #description>\n {{ closingMergeRequestsText }}\n </template>\n <ul class=\"content-list related-items-list !-gl-mx-3 !gl-my-3\">\n <li v-for=\"mr in mergeRequests\" :key=\"mr.id\" class=\"!gl-border-b-0 !gl-py-0\">\n <related-issuable-item\n :id-key=\"idKey(mr)\"\n :display-reference=\"displayReference(mr)\"\n :title=\"mr.title\"\n :milestone=\"mr.milestone\"\n :assignees=\"mr.assignees.nodes\"\n :created-at=\"mr.createdAt\"\n :merged-at=\"mr.mergedAt\"\n :path=\"mr.webUrl\"\n :state=\"mr.state\"\n :pipeline-status=\"mr.headPipeline && mr.headPipeline.detailedStatus\"\n path-id-separator=\"!\"\n is-merge-request\n />\n </li>\n </ul>\n </crud-component>\n</template>\n","import { render, staticRenderFns } from \"./related_merge_requests.vue?vue&type=template&id=a987ec64\"\nimport script from \"./related_merge_requests.vue?vue&type=script&lang=js\"\nexport * from \"./related_merge_requests.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { s__ } from '~/locale';\n\nexport const resourceLinksI18n = Object.freeze({\n headerText: s__('LinkedResources|Linked resources'),\n helpText: s__(\n 'LinkedResources|Use this space to add links to the resources your team needs as they work to resolve the incident.',\n ),\n addButtonText: s__('LinkedResources|Add a resource link'),\n fetchingLinkedResourcesText: s__('LinkedResources|Fetching linked resources'),\n fetchError: s__(\n 'LinkedResources|Something went wrong while fetching linked resources for the incident.',\n ),\n deleteError: s__('LinkedResources|Error deleting the linked resource for the incident: %{error}'),\n deleteErrorGeneric: s__(\n 'LinkedResources|Something went wrong while deleting the linked resource for the incident.',\n ),\n createError: s__('LinkedResources|Error creating resource link for the incident: %{error}'),\n createErrorGeneric: s__(\n 'LinkedResources|Something went wrong while creating the resource link for the incident.',\n ),\n});\n\nexport const resourceLinksFormI18n = Object.freeze({\n linkTextLabel: s__('LinkedResources|Text (Optional)'),\n linkValueLabel: s__('LinkedResources|Link'),\n submitButtonText: s__('LinkedResources|Add'),\n cancelButtonText: s__('LinkedResources|Cancel'),\n});\n\nexport const resourceLinksListI18n = Object.freeze({\n linkRemoveText: s__('LinkedResources|Remove'),\n});\n","import { s__ } from '~/locale';\nimport { createAlert } from '~/alert';\n\nconst zoomRegex = /(https:\\/\\/(?:[\\w-]+\\.)?zoom\\.us\\/(?:s|j|my)\\/\\S+)/;\nconst slackRegex = /(https:\\/\\/[a-zA-Z0-9]+.slack\\.com\\/[a-z\\][a-zA-Z0-9_]+)/;\nconst pagerdutyRegex = /(https:\\/\\/[a-zA-Z0-9]+.pagerduty\\.com\\/incidents\\/[a-z\\][a-zA-Z0-9]+)/;\n\nexport const displayAndLogError = (error) =>\n createAlert({\n message: s__(\n 'LinkedResources|Something went wrong while fetching linked resources for the incident.',\n ),\n captureError: true,\n error,\n });\n\nconst LINK_TYPE_ICON_MAP = {\n general: 'external-link',\n zoom: 'brand-zoom',\n};\n\nexport const getLinkIcon = (type) => {\n return LINK_TYPE_ICON_MAP[type] ?? LINK_TYPE_ICON_MAP.general;\n};\n\nexport const identifyLinkType = (link) => {\n if (zoomRegex.test(link)) {\n return 'zoom';\n }\n if (slackRegex.test(link)) {\n return 'slack';\n }\n if (pagerdutyRegex.test(link)) {\n return 'pagerduty';\n }\n return 'general';\n};\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./add_issuable_resource_link_form.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./add_issuable_resource_link_form.vue?vue&type=script&lang=js\"","<script>\nimport { GlFormGroup, GlButton, GlFormInput } from '@gitlab/ui';\nimport autofocusonshow from '~/vue_shared/directives/autofocusonshow';\nimport { resourceLinksFormI18n } from '../constants';\n\nexport default {\n name: 'AddIssuableResourceLinkForm',\n components: {\n GlFormGroup,\n GlButton,\n GlFormInput,\n },\n i18n: resourceLinksFormI18n,\n directives: {\n autofocusonshow,\n },\n props: {\n isSubmitting: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n linkTextValue: '',\n linkValue: '',\n };\n },\n computed: {\n isSubmitButtonDisabled() {\n return this.linkValue.length === 0 || this.isSubmitting;\n },\n },\n methods: {\n onFormCancel() {\n this.linkValue = '';\n this.linkTextValue = '';\n this.$emit('add-issuable-resource-link-form-cancel');\n },\n createRequest() {\n this.$emit('create-resource-link', {\n link: this.linkValue,\n linkText: this.linkTextValue,\n });\n },\n },\n};\n</script>\n\n<template>\n <form @submit.prevent>\n <gl-form-group :label=\"$options.i18n.linkTextLabel\">\n <gl-form-input\n v-model=\"linkTextValue\"\n v-autofocusonshow\n data-testid=\"link-text-input\"\n type=\"text\"\n />\n </gl-form-group>\n <gl-form-group :label=\"$options.i18n.linkValueLabel\">\n <gl-form-input v-model=\"linkValue\" data-testid=\"link-value-input\" type=\"text\" />\n </gl-form-group>\n <div class=\"gl-mt-5\">\n <gl-button\n category=\"primary\"\n variant=\"confirm\"\n data-testid=\"add-button\"\n :disabled=\"isSubmitButtonDisabled\"\n :loading=\"isSubmitting\"\n type=\"submit\"\n size=\"small\"\n class=\"gl-mr-2\"\n @click=\"createRequest\"\n >\n {{ $options.i18n.submitButtonText }}\n </gl-button>\n <gl-button size=\"small\" @click=\"onFormCancel\">\n {{ $options.i18n.cancelButtonText }}\n </gl-button>\n </div>\n </form>\n</template>\n","import { render, staticRenderFns } from \"./add_issuable_resource_link_form.vue?vue&type=template&id=3ffa8cc8\"\nimport script from \"./add_issuable_resource_link_form.vue?vue&type=script&lang=js\"\nexport * from \"./add_issuable_resource_link_form.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{on:{\"submit\":function($event){$event.preventDefault();}}},[_c('gl-form-group',{attrs:{\"label\":_vm.$options.i18n.linkTextLabel}},[_c('gl-form-input',{directives:[{name:\"autofocusonshow\",rawName:\"v-autofocusonshow\"}],attrs:{\"data-testid\":\"link-text-input\",\"type\":\"text\"},model:{value:(_vm.linkTextValue),callback:function ($$v) {_vm.linkTextValue=$$v},expression:\"linkTextValue\"}})],1),_vm._v(\" \"),_c('gl-form-group',{attrs:{\"label\":_vm.$options.i18n.linkValueLabel}},[_c('gl-form-input',{attrs:{\"data-testid\":\"link-value-input\",\"type\":\"text\"},model:{value:(_vm.linkValue),callback:function ($$v) {_vm.linkValue=$$v},expression:\"linkValue\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-mt-5\"},[_c('gl-button',{staticClass:\"gl-mr-2\",attrs:{\"category\":\"primary\",\"variant\":\"confirm\",\"data-testid\":\"add-button\",\"disabled\":_vm.isSubmitButtonDisabled,\"loading\":_vm.isSubmitting,\"type\":\"submit\",\"size\":\"small\"},on:{\"click\":_vm.createRequest}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.submitButtonText)+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{attrs:{\"size\":\"small\"},on:{\"click\":_vm.onFormCancel}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.cancelButtonText)+\"\\n \")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./resource_links_list_item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./resource_links_list_item.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlButton, GlTooltipDirective, GlLink } from '@gitlab/ui';\nimport api from '~/api';\nimport '~/commons/bootstrap';\nimport { resourceLinksListI18n } from '../constants';\nimport { getLinkIcon } from './utils';\n\nexport default {\n name: 'ResourceLinkItem',\n components: {\n GlIcon,\n GlButton,\n GlLink,\n },\n i18n: resourceLinksListI18n,\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n idKey: {\n type: String,\n required: false,\n default: '',\n },\n iconName: {\n type: String,\n required: false,\n default: 'external-link',\n },\n linkText: {\n type: String,\n required: false,\n default: '',\n },\n linkValue: {\n type: String,\n required: false,\n default: '',\n },\n canRemove: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n isRemoveDisabled: false,\n };\n },\n computed: {\n iconClasses() {\n return `ic-${this.iconName}`;\n },\n },\n methods: {\n getLinkIcon,\n trackResourceLinkClick() {\n api.trackRedisHllUserEvent('incident_management_issuable_resource_link_visited');\n },\n handleRemove() {\n this.isRemoveDisabled = true;\n this.$emit('removeRequest', this.idKey);\n },\n },\n};\n</script>\n\n<template>\n <div\n :class=\"{\n 'gl-pr-2': canRemove,\n }\"\n class=\"item-body -gl-mx-2 gl-flex gl-items-center gl-px-3\"\n >\n <div\n class=\"item-contents flex-xl-nowrap gl-flex gl-min-h-7 gl-grow gl-flex-wrap gl-items-center\"\n >\n <div class=\"item-title align-items-xl-center mb-xl-0 gl-min-w-0 sm:gl-flex\">\n <gl-icon\n class=\"gl-mr-3\"\n :name=\"getLinkIcon(iconName)\"\n :class=\"iconClasses\"\n variant=\"subtle\"\n />\n <gl-link\n :href=\"linkValue\"\n target=\"_blank\"\n class=\"sortable-link gl-font-normal\"\n @click=\"trackResourceLinkClick\"\n >{{ linkText }}</gl-link\n >\n </div>\n </div>\n <gl-button\n v-if=\"canRemove\"\n v-gl-tooltip\n icon=\"close\"\n category=\"tertiary\"\n size=\"small\"\n :disabled=\"isRemoveDisabled\"\n class=\"js-issue-item-remove-button gl-ml-5\"\n :title=\"$options.i18n.linkRemoveText\"\n :aria-label=\"$options.i18n.linkRemoveText\"\n @click=\"handleRemove\"\n />\n </div>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./resource_links_list.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./resource_links_list.vue?vue&type=script&lang=js\"","<script>\nimport ResourceLinkItem from './resource_links_list_item.vue';\n\nexport default {\n name: 'ResourceLinksList',\n components: {\n ResourceLinkItem,\n },\n props: {\n canAdmin: {\n type: Boolean,\n required: false,\n default: false,\n },\n resourceLinks: {\n type: Array,\n required: false,\n default: () => [],\n },\n },\n};\n</script>\n\n<template>\n <div class=\"related-issues-token-body\">\n <ul class=\"related-items-list content-list !-gl-mx-2 !gl-py-3\">\n <li\n v-for=\"link in resourceLinks\"\n :key=\"link.id\"\n :data-key=\"link.id\"\n class=\"list-item !gl-border-0 !gl-py-0\"\n >\n <resource-link-item\n data-testid=\"resource-link-item\"\n :id-key=\"link.id\"\n :icon-name=\"link.linkType\"\n :link-text=\"link.linkText\"\n :link-value=\"link.link\"\n :can-remove=\"canAdmin\"\n @removeRequest=\"$emit('resourceLinkRemoveRequest', $event)\"\n />\n </li>\n </ul>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./resource_links_list_item.vue?vue&type=template&id=31c9d5be\"\nimport script from \"./resource_links_list_item.vue?vue&type=script&lang=js\"\nexport * from \"./resource_links_list_item.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"item-body -gl-mx-2 gl-flex gl-items-center gl-px-3\",class:{\n 'gl-pr-2': _vm.canRemove,\n }},[_c('div',{staticClass:\"item-contents flex-xl-nowrap gl-flex gl-min-h-7 gl-grow gl-flex-wrap gl-items-center\"},[_c('div',{staticClass:\"item-title align-items-xl-center mb-xl-0 gl-min-w-0 sm:gl-flex\"},[_c('gl-icon',{staticClass:\"gl-mr-3\",class:_vm.iconClasses,attrs:{\"name\":_vm.getLinkIcon(_vm.iconName),\"variant\":\"subtle\"}}),_vm._v(\" \"),_c('gl-link',{staticClass:\"sortable-link gl-font-normal\",attrs:{\"href\":_vm.linkValue,\"target\":\"_blank\"},on:{\"click\":_vm.trackResourceLinkClick}},[_vm._v(_vm._s(_vm.linkText))])],1)]),_vm._v(\" \"),(_vm.canRemove)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"js-issue-item-remove-button gl-ml-5\",attrs:{\"icon\":\"close\",\"category\":\"tertiary\",\"size\":\"small\",\"disabled\":_vm.isRemoveDisabled,\"title\":_vm.$options.i18n.linkRemoveText,\"aria-label\":_vm.$options.i18n.linkRemoveText},on:{\"click\":_vm.handleRemove}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./resource_links_block.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./resource_links_block.vue?vue&type=script&lang=js\"","<script>\nimport { produce } from 'immer';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_ISSUE } from '~/graphql_shared/constants';\nimport { createAlert } from '~/alert';\nimport { sprintf } from '~/locale';\nimport CrudComponent from '~/vue_shared/components/crud_component.vue';\nimport { resourceLinksI18n } from '../constants';\nimport { displayAndLogError, identifyLinkType } from './utils';\nimport getIssuableResourceLinks from './graphql/queries/get_issuable_resource_links.query.graphql';\nimport deleteIssuableRsourceLink from './graphql/queries/delete_issuable_resource_link.mutation.graphql';\nimport createIssuableResourceLink from './graphql/queries/create_issuable_resource_link.mutation.graphql';\nimport AddIssuableResourceLinkForm from './add_issuable_resource_link_form.vue';\nimport ResourceLinksList from './resource_links_list.vue';\n\nexport default {\n name: 'ResourceLinksBlock',\n components: {\n AddIssuableResourceLinkForm,\n ResourceLinksList,\n CrudComponent,\n },\n i18n: resourceLinksI18n,\n ariaControlsId: 'resource-links-card',\n props: {\n issuableId: {\n type: Number,\n required: true,\n },\n helpPath: {\n type: String,\n required: false,\n default: '',\n },\n canAddResourceLinks: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n isSubmitting: false,\n resourceLinks: [],\n };\n },\n apollo: {\n resourceLinks: {\n query: getIssuableResourceLinks,\n variables() {\n return {\n incidentId: convertToGraphQLId(TYPENAME_ISSUE, this.issuableId),\n };\n },\n update(data) {\n return data?.issue?.issuableResourceLinks?.nodes;\n },\n error(error) {\n displayAndLogError(error);\n },\n },\n },\n computed: {\n resourceCount() {\n return this.resourceLinks.length;\n },\n hasResourceLinks() {\n return Boolean(this.resourceCount);\n },\n isFetching() {\n return Boolean(this.$apollo.queries.resourceLinks.loading);\n },\n },\n methods: {\n hideResourceLinkForm() {\n this.$refs.resourceLinksCrud.hideForm();\n },\n async onResourceLinkRemoveRequest(linkToRemove) {\n try {\n const result = await this.$apollo.mutate({\n mutation: deleteIssuableRsourceLink,\n variables: {\n input: {\n id: linkToRemove,\n },\n },\n update: () => {\n this.resourceLinks = this.resourceLinks.filter((link) => link.id !== linkToRemove);\n },\n });\n const { errors } = result.data.issuableResourceLinkDestroy;\n if (errors?.length) {\n const errorMessage = sprintf(this.$options.i18n.deleteError, {\n error: errors.join('. '),\n });\n throw new Error(errorMessage);\n }\n } catch (error) {\n const message = error.message || this.$options.i18n.deleteErrorGeneric;\n let captureError = false;\n let errorObj = null;\n\n if (message === this.$options.i18n.deleteErrorGeneric) {\n captureError = true;\n errorObj = error;\n }\n\n createAlert({\n message,\n captureError,\n error: errorObj,\n });\n }\n },\n updateCache(store, { data }) {\n const { issuableResourceLink: resourceLink, errors } = data?.issuableResourceLinkCreate || {};\n if (errors.length) {\n return;\n }\n\n const variables = {\n incidentId: convertToGraphQLId(TYPENAME_ISSUE, this.issuableId),\n };\n\n const sourceData = store.readQuery({\n query: getIssuableResourceLinks,\n variables,\n });\n\n const newData = produce(sourceData, (draftData) => {\n const { nodes: draftLinkList } = draftData.issue.issuableResourceLinks;\n draftLinkList.push(resourceLink);\n draftData.issue.issuableResourceLinks.nodes = draftLinkList;\n });\n\n store.writeQuery({\n query: getIssuableResourceLinks,\n variables,\n data: newData,\n });\n },\n onCreateResourceLink(resourceLink) {\n this.isSubmitting = true;\n return this.$apollo\n .mutate({\n mutation: createIssuableResourceLink,\n variables: {\n input: {\n ...resourceLink,\n id: convertToGraphQLId(TYPENAME_ISSUE, this.issuableId),\n linkType: identifyLinkType(resourceLink.link),\n },\n },\n update: this.updateCache,\n })\n .then(({ data = {} }) => {\n const errors = data.issuableResourceLinkCreate?.errors;\n if (errors.length) {\n const errorMessage = sprintf(\n this.$options.i18n.createError,\n { error: errors.join('. ') },\n false,\n );\n throw new Error(errorMessage);\n }\n })\n .catch((error) => {\n const message = error.message || this.$options.i18n.createErrorGeneric;\n let captureError = false;\n let errorObj = null;\n\n if (message === this.$options.i18n.createErrorGeneric) {\n captureError = true;\n errorObj = error;\n }\n\n createAlert({\n message,\n captureError,\n error: errorObj,\n });\n })\n .finally(() => {\n this.isSubmitting = false;\n this.$refs.resourceLinkForm.onFormCancel();\n });\n },\n },\n};\n</script>\n\n<template>\n <div id=\"resource-links\">\n <crud-component\n ref=\"resourceLinksCrud\"\n :anchor-id=\"$options.ariaControlsId\"\n class=\"gl-mt-5\"\n :title=\"$options.i18n.headerText\"\n icon=\"link\"\n :count=\"resourceCount\"\n :toggle-text=\"canAddResourceLinks ? __('Add') : null\"\n :toggle-aria-label=\"$options.i18n.addButtonText\"\n :is-loading=\"isFetching\"\n is-collapsible\n >\n <template #actions>\n <slot name=\"header-actions\"></slot>\n </template>\n\n <template #form>\n <add-issuable-resource-link-form\n ref=\"resourceLinkForm\"\n :is-submitting=\"isSubmitting\"\n @add-issuable-resource-link-form-cancel=\"hideResourceLinkForm\"\n @create-resource-link=\"onCreateResourceLink\"\n />\n </template>\n\n <template v-if=\"!hasResourceLinks\" #empty>\n {{ $options.i18n.helpText }}\n </template>\n\n <resource-links-list\n data-testid=\"resource-links-list\"\n :can-admin=\"canAddResourceLinks\"\n :resource-links=\"resourceLinks\"\n @resourceLinkRemoveRequest=\"onResourceLinkRemoveRequest\"\n />\n </crud-component>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./resource_links_list.vue?vue&type=template&id=db218dc6\"\nimport script from \"./resource_links_list.vue?vue&type=script&lang=js\"\nexport * from \"./resource_links_list.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"related-issues-token-body\"},[_c('ul',{staticClass:\"related-items-list content-list !-gl-mx-2 !gl-py-3\"},_vm._l((_vm.resourceLinks),function(link){return _c('li',{key:link.id,staticClass:\"list-item !gl-border-0 !gl-py-0\",attrs:{\"data-key\":link.id}},[_c('resource-link-item',{attrs:{\"data-testid\":\"resource-link-item\",\"id-key\":link.id,\"icon-name\":link.linkType,\"link-text\":link.linkText,\"link-value\":link.link,\"can-remove\":_vm.canAdmin},on:{\"removeRequest\":function($event){return _vm.$emit('resourceLinkRemoveRequest', $event)}}})],1)}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./resource_links_block.vue?vue&type=template&id=9e1364de\"\nimport script from \"./resource_links_block.vue?vue&type=script&lang=js\"\nexport * from \"./resource_links_block.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"resource-links\"}},[_c('crud-component',{ref:\"resourceLinksCrud\",staticClass:\"gl-mt-5\",attrs:{\"anchor-id\":_vm.$options.ariaControlsId,\"title\":_vm.$options.i18n.headerText,\"icon\":\"link\",\"count\":_vm.resourceCount,\"toggle-text\":_vm.canAddResourceLinks ? _vm.__('Add') : null,\"toggle-aria-label\":_vm.$options.i18n.addButtonText,\"is-loading\":_vm.isFetching,\"is-collapsible\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"header-actions\")]},proxy:true},{key:\"form\",fn:function(){return [_c('add-issuable-resource-link-form',{ref:\"resourceLinkForm\",attrs:{\"is-submitting\":_vm.isSubmitting},on:{\"add-issuable-resource-link-form-cancel\":_vm.hideResourceLinkForm,\"create-resource-link\":_vm.onCreateResourceLink}})]},proxy:true},(!_vm.hasResourceLinks)?{key:\"empty\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.helpText)+\"\\n \")]},proxy:true}:null],null,true)},[_vm._v(\" \"),_vm._v(\" \"),_vm._v(\" \"),_c('resource-links-list',{attrs:{\"data-testid\":\"resource-links-list\",\"can-admin\":_vm.canAddResourceLinks,\"resource-links\":_vm.resourceLinks},on:{\"resourceLinkRemoveRequest\":_vm.onResourceLinkRemoveRequest}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport ResourceLinksBlock from 'ee_component/linked_resources/components/resource_links_block.vue';\nimport createDefaultClient from '~/lib/graphql';\nimport { parseBoolean } from '~/lib/utils/common_utils';\n\nVue.use(VueApollo);\n\nexport default function initLinkedResources() {\n const linkedResourcesRootElement = document.querySelector('.js-linked-resources-root');\n\n if (linkedResourcesRootElement) {\n const { issuableId, canAddResourceLinks, helpPath } = linkedResourcesRootElement.dataset;\n\n const apolloProvider = new VueApollo({\n defaultClient: createDefaultClient(),\n });\n\n // eslint-disable-next-line no-new\n new Vue({\n el: linkedResourcesRootElement,\n name: 'LinkedResourcesRoot',\n apolloProvider,\n components: {\n ResourceLinksBlock,\n },\n render: (createElement) =>\n createElement('resource-links-block', {\n props: {\n helpPath,\n issuableId: parseInt(issuableId, 10),\n canAddResourceLinks: parseBoolean(canAddResourceLinks),\n },\n }),\n });\n }\n}\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./highlight_bar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./highlight_bar.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink, GlTooltipDirective } from '@gitlab/ui';\nimport { formatDate } from '~/lib/utils/datetime_utility';\n\nexport default {\n components: {\n GlLink,\n IncidentSla: () => import('ee_component/issues/show/components/incidents/incident_sla.vue'),\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n alert: {\n type: Object,\n required: false,\n default: null,\n },\n },\n data() {\n return { childHasData: false };\n },\n computed: {\n startTime() {\n return formatDate(this.alert.startedAt, 'yyyy-mm-dd Z');\n },\n showHighlightBar() {\n return this.alert || this.childHasData;\n },\n },\n methods: {\n update(hasData) {\n this.childHasData = hasData;\n },\n },\n};\n</script>\n\n<template>\n <div\n v-show=\"showHighlightBar\"\n class=\"gl-mb-3 gl-flex gl-flex-col gl-justify-between gl-rounded-base gl-border-1 gl-border-solid gl-border-default gl-p-5 sm:gl-flex-row\"\n >\n <div v-if=\"alert\" class=\"gl-mr-3\">\n <span class=\"gl-font-bold\">{{ s__('HighlightBar|Original alert:') }}</span>\n <gl-link v-gl-tooltip :title=\"alert.title\" :href=\"alert.detailsUrl\">\n #{{ alert.iid }}\n </gl-link>\n </div>\n\n <div v-if=\"alert\" class=\"gl-mr-3\">\n <span class=\"gl-font-bold\">{{ s__('HighlightBar|Alert start time:') }}</span>\n {{ startTime }}\n </div>\n\n <div v-if=\"alert\" class=\"gl-mr-3\">\n <span class=\"gl-font-bold\">{{ s__('HighlightBar|Alert events:') }}</span>\n <span>{{ alert.eventCount }}</span>\n </div>\n\n <incident-sla @update=\"update\" />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./highlight_bar.vue?vue&type=template&id=1a322788\"\nimport script from \"./highlight_bar.vue?vue&type=script&lang=js\"\nexport * from \"./highlight_bar.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHighlightBar),expression:\"showHighlightBar\"}],staticClass:\"gl-mb-3 gl-flex gl-flex-col gl-justify-between gl-rounded-base gl-border-1 gl-border-solid gl-border-default gl-p-5 sm:gl-flex-row\"},[(_vm.alert)?_c('div',{staticClass:\"gl-mr-3\"},[_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(_vm.s__('HighlightBar|Original alert:')))]),_vm._v(\" \"),_c('gl-link',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"title\":_vm.alert.title,\"href\":_vm.alert.detailsUrl}},[_vm._v(\"\\n #\"+_vm._s(_vm.alert.iid)+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.alert)?_c('div',{staticClass:\"gl-mr-3\"},[_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(_vm.s__('HighlightBar|Alert start time:')))]),_vm._v(\"\\n \"+_vm._s(_vm.startTime)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.alert)?_c('div',{staticClass:\"gl-mr-3\"},[_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(_vm.s__('HighlightBar|Alert events:')))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.alert.eventCount))])]):_vm._e(),_vm._v(\" \"),_c('incident-sla',{on:{\"update\":_vm.update}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { createAlert } from '~/alert';\nimport { s__ } from '~/locale';\n\nexport const displayAndLogError = (error) =>\n createAlert({\n message: s__('Incident|Something went wrong while fetching incident timeline events.'),\n captureError: true,\n error,\n });\n\nconst EVENT_ICONS = {\n comment: 'comment',\n issues: 'issues',\n label: 'label',\n status: 'status',\n default: 'comment',\n};\n\nexport const getEventIcon = (actionName) => {\n return EVENT_ICONS[actionName] ?? EVENT_ICONS.default;\n};\n\n/**\n * Returns a date shifted by the current timezone offset set to now\n * by default but can accept an existing date as an ISO date string\n * @param {string} ISOString\n * @returns {Date}\n */\nexport const getUtcShiftedDate = (ISOString = null) => {\n const date = ISOString ? new Date(ISOString) : new Date();\n date.setMinutes(date.getMinutes() + date.getTimezoneOffset());\n\n return date;\n};\n\n/**\n * Returns an array of previously set event tags\n * @param {array} timelineEventTagsNodes\n * @returns {array}\n */\nexport const getPreviousEventTags = (timelineEventTagsNodes = []) =>\n timelineEventTagsNodes.map(({ name }) => name);\n","import { __, n__, s__ } from '~/locale';\n\nexport const timelineTabI18n = Object.freeze({\n title: s__('Incident|Timeline'),\n emptyDescription: s__('Incident|No timeline items have been added yet.'),\n addEventButton: s__('Incident|Add new timeline event'),\n});\n\nexport const timelineFormI18n = Object.freeze({\n createError: s__('Incident|Error creating incident timeline event: %{error}'),\n createErrorGeneric: s__(\n 'Incident|Something went wrong while creating the incident timeline event.',\n ),\n areaPlaceholder: s__('Incident|Timeline text...'),\n areaDefaultMessage: s__('Incident|Incident'),\n selectTags: __('Select tags'),\n tagsLabel: __('Event tag (optional)'),\n save: __('Save'),\n cancel: __('Cancel'),\n delete: __('Delete'),\n description: __('Description'),\n hint: __('You can enter up to 280 characters'),\n textRemaining: (count) => n__('%d character remaining', '%d characters remaining', count),\n saveAndAdd: s__('Incident|Save and add another event'),\n areaLabel: s__('Incident|Timeline text'),\n});\n\nexport const timelineListI18n = Object.freeze({\n deleteButton: s__('Incident|Delete event'),\n deleteError: s__('Incident|Error deleting incident timeline event: %{error}'),\n deleteErrorGeneric: s__(\n 'Incident|Something went wrong while deleting the incident timeline event.',\n ),\n deleteModal: s__('Incident|Are you sure you want to delete this event?'),\n editError: s__('Incident|Error updating incident timeline event: %{error}'),\n editErrorGeneric: s__(\n 'Incident|Something went wrong while updating the incident timeline event.',\n ),\n});\n\nexport const timelineItemI18n = Object.freeze({\n delete: __('Delete'),\n edit: __('Edit'),\n moreActions: __('More actions'),\n timeUTC: __('%{time} UTC'),\n});\n\nexport const timelineEventTagsI18n = Object.freeze({\n startTime: __('Start time'),\n impactDetected: __('Impact detected'),\n responseInitiated: __('Response initiated'),\n impactMitigated: __('Impact mitigated'),\n causeIdentified: __('Cause identified'),\n endTime: __('End time'),\n});\n\nexport const timelineEventTagsPopover = Object.freeze({\n title: s__('Incident|Event tag'),\n message: s__(\n 'Incident|Adding an event tag associates the timeline comment with specific incident metrics.',\n ),\n link: __('Learn more'),\n});\n\nexport const MAX_TEXT_LENGTH = 280;\n\nexport const TIMELINE_EVENT_TAGS = Object.values(timelineEventTagsI18n).map((item) => ({\n text: item,\n value: item,\n}));\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"create-timeline-event gl-relative gl-flex gl-items-start\"},[(_vm.hasTimelineEvents)?_c('div',{staticClass:\"gl-z-1 gl-mt-2 gl-flex gl-h-8 gl-w-8 gl-shrink-0 gl-items-center gl-justify-center gl-self-start gl-rounded-full gl-border-1 gl-border-solid gl-border-default gl-bg-default gl-p-3\"},[_c('gl-icon',{staticClass:\"note-icon\",attrs:{\"name\":\"comment\",\"variant\":\"subtle\"}})],1):_vm._e(),_vm._v(\" \"),_c('timeline-events-form',{ref:\"eventForm\",class:{ 'gl-border-t gl-border-subtle gl-pt-3': _vm.hasTimelineEvents },attrs:{\"is-event-processed\":_vm.createTimelineEventActive,\"show-save-and-add\":\"\"},on:{\"save-event\":_vm.createIncidentTimelineEvent,\"cancel\":function($event){return _vm.$emit('hide-new-timeline-events-form')}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./timeline_events_tags_popover.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./timeline_events_tags_popover.vue?vue&type=script&lang=js\"","<script>\nimport { GlPopover, GlLink } from '@gitlab/ui';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport { timelineEventTagsPopover } from './constants';\n\nexport default {\n name: 'TimelineEventsTagsPopover',\n components: {\n GlPopover,\n GlLink,\n HelpIcon,\n },\n i18n: timelineEventTagsPopover,\n learnMoreLink: helpPagePath('operations/incident_management/incident_timeline_events', {\n anchor: 'incident-tags',\n }),\n};\n</script>\n\n<template>\n <span>\n <help-icon id=\"timeline-events-tag-question\" />\n\n <gl-popover\n target=\"timeline-events-tag-question\"\n triggers=\"hover focus\"\n placement=\"top\"\n container=\"viewport\"\n :title=\"$options.i18n.title\"\n >\n <div>\n <p class=\"gl-mb-0\">\n {{ $options.i18n.message }}\n </p>\n <gl-link target=\"_blank\" class=\"gl-text-sm\" :href=\"$options.learnMoreLink\">{{\n $options.i18n.link\n }}</gl-link\n >.\n </div>\n </gl-popover>\n </span>\n</template>\n","import { render, staticRenderFns } from \"./timeline_events_tags_popover.vue?vue&type=template&id=84956244\"\nimport script from \"./timeline_events_tags_popover.vue?vue&type=script&lang=js\"\nexport * from \"./timeline_events_tags_popover.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',[_c('help-icon',{attrs:{\"id\":\"timeline-events-tag-question\"}}),_vm._v(\" \"),_c('gl-popover',{attrs:{\"target\":\"timeline-events-tag-question\",\"triggers\":\"hover focus\",\"placement\":\"top\",\"container\":\"viewport\",\"title\":_vm.$options.i18n.title}},[_c('div',[_c('p',{staticClass:\"gl-mb-0\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.message)+\"\\n \")]),_vm._v(\" \"),_c('gl-link',{staticClass:\"gl-text-sm\",attrs:{\"target\":\"_blank\",\"href\":_vm.$options.learnMoreLink}},[_vm._v(_vm._s(_vm.$options.i18n.link))]),_vm._v(\".\\n \")],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./timeline_events_form.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./timeline_events_form.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlDatepicker,\n GlFormInput,\n GlFormGroup,\n GlButton,\n GlCollapsibleListbox,\n GlFormTextarea,\n} from '@gitlab/ui';\nimport MarkdownField from '~/vue_shared/components/markdown/field.vue';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { __, sprintf } from '~/locale';\nimport TimelineEventsTagsPopover from './timeline_events_tags_popover.vue';\nimport { MAX_TEXT_LENGTH, TIMELINE_EVENT_TAGS, timelineFormI18n } from './constants';\nimport { getUtcShiftedDate, getPreviousEventTags } from './utils';\n\nexport default {\n name: 'TimelineEventsForm',\n restrictedToolBarItems: [\n 'quote',\n 'strikethrough',\n 'bullet-list',\n 'numbered-list',\n 'task-list',\n 'collapsible-section',\n 'table',\n 'attach-file',\n 'full-screen',\n ],\n components: {\n MarkdownField,\n TimelineEventsTagsPopover,\n GlDatepicker,\n GlFormInput,\n GlFormGroup,\n GlButton,\n GlCollapsibleListbox,\n GlFormTextarea,\n },\n mixins: [glFeatureFlagsMixin()],\n i18n: timelineFormI18n,\n MAX_TEXT_LENGTH,\n props: {\n showSaveAndAdd: {\n type: Boolean,\n required: false,\n default: false,\n },\n isEditing: {\n type: Boolean,\n required: false,\n default: false,\n },\n isEventProcessed: {\n type: Boolean,\n required: true,\n },\n previousOccurredAt: {\n type: String,\n required: false,\n default: null,\n },\n previousNote: {\n type: String,\n required: false,\n default: '',\n },\n previousTags: {\n type: Array,\n required: false,\n default: () => [],\n },\n tags: {\n type: Array,\n required: false,\n default: () => TIMELINE_EVENT_TAGS,\n },\n },\n data() {\n // if occurredAt is null, returns \"now\" in UTC\n const placeholderDate = getUtcShiftedDate(this.previousOccurredAt);\n\n return {\n timelineText: this.previousNote,\n timelineTextIsDirty: this.isEditing,\n placeholderDate,\n hourPickerInput: placeholderDate.getHours(),\n minutePickerInput: placeholderDate.getMinutes(),\n datePickerInput: placeholderDate,\n selectedTags: getPreviousEventTags(this.previousTags),\n };\n },\n computed: {\n isTimelineTextValid() {\n return this.timelineTextCount > 0 && this.timelineTextRemainingCount >= 0;\n },\n occurredAtString() {\n const year = this.datePickerInput.getFullYear();\n const month = this.datePickerInput.getMonth();\n const day = this.datePickerInput.getDate();\n\n const utcDate = new Date(\n Date.UTC(year, month, day, this.hourPickerInput, this.minutePickerInput),\n );\n\n return utcDate.toISOString();\n },\n timelineTextRemainingCount() {\n return MAX_TEXT_LENGTH - this.timelineTextCount;\n },\n timelineTextCount() {\n return this.timelineText.length;\n },\n listboxText() {\n if (!this.selectedTags.length) {\n return timelineFormI18n.selectTags;\n }\n\n const listboxText =\n this.selectedTags.length === 1\n ? this.selectedTags[0]\n : sprintf(__('%{numberOfSelectedTags} tags'), {\n numberOfSelectedTags: this.selectedTags.length,\n });\n\n return listboxText;\n },\n },\n mounted() {\n this.focusDate();\n },\n methods: {\n clear() {\n const newPlaceholderDate = getUtcShiftedDate();\n this.datePickerInput = newPlaceholderDate;\n this.hourPickerInput = newPlaceholderDate.getHours();\n this.minutePickerInput = newPlaceholderDate.getMinutes();\n this.timelineText = '';\n this.selectedTags = [];\n },\n focusDate() {\n this.$refs.datepicker.$el.querySelector('input')?.focus();\n },\n setTimelineTextDirty() {\n this.timelineTextIsDirty = true;\n },\n onTagsChange(tagValue) {\n this.selectedTags = [...tagValue];\n\n if (!this.timelineTextIsDirty) {\n this.timelineText = this.generateTimelineTextFromTags(this.selectedTags);\n }\n },\n generateTimelineTextFromTags(tags) {\n if (!tags.length) {\n return '';\n }\n\n const tagsMessage = tags.map((tag) => tag.toLocaleLowerCase()).join(', ');\n\n return `${timelineFormI18n.areaDefaultMessage} ${tagsMessage}`;\n },\n handleSave(addAnotherEvent) {\n const event = {\n note: this.timelineText,\n occurredAt: this.occurredAtString,\n timelineEventTags: this.selectedTags,\n };\n this.$emit('save-event', event, addAnotherEvent);\n },\n },\n};\n</script>\n\n<template>\n <form class=\"gl-grow gl-border-subtle\">\n <div class=\"gl-mt-3 gl-flex gl-flex-col sm:gl-flex-row\">\n <gl-form-group :label=\"__('Date')\" class=\"gl-mr-5\">\n <gl-datepicker id=\"incident-date\" ref=\"datepicker\" v-model=\"datePickerInput\" />\n </gl-form-group>\n <div class=\"gl-flex\">\n <gl-form-group :label=\"__('Time')\">\n <div class=\"gl-flex\">\n <label label-for=\"timeline-input-hours\" class=\"sr-only\"></label>\n <gl-form-input\n id=\"timeline-input-hours\"\n v-model=\"hourPickerInput\"\n data-testid=\"input-hours\"\n width=\"xs\"\n type=\"number\"\n min=\"00\"\n max=\"23\"\n />\n <label label-for=\"timeline-input-minutes\" class=\"sr-only\"></label>\n <gl-form-input\n id=\"timeline-input-minutes\"\n v-model=\"minutePickerInput\"\n class=\"gl-ml-3\"\n data-testid=\"input-minutes\"\n width=\"xs\"\n type=\"number\"\n min=\"00\"\n max=\"59\"\n />\n </div>\n </gl-form-group>\n <p class=\"gl-ml-3 gl-self-end gl-leading-32\">{{ __('UTC') }}</p>\n </div>\n </div>\n <gl-form-group>\n <label class=\"gl-flex gl-items-center gl-gap-3\" for=\"timeline-input-tags\">\n {{ $options.i18n.tagsLabel }}\n <timeline-events-tags-popover />\n </label>\n <gl-collapsible-listbox\n id=\"timeline-input-tags\"\n :selected=\"selectedTags\"\n :toggle-text=\"listboxText\"\n :items=\"tags\"\n :is-check-centered=\"true\"\n :multiple=\"true\"\n @select=\"onTagsChange\"\n />\n </gl-form-group>\n <div class=\"common-note-form\">\n <gl-form-group class=\"gl-mb-3\" :label=\"$options.i18n.areaLabel\">\n <markdown-field\n :can-attach-file=\"false\"\n :add-spacing-classes=\"false\"\n :show-comment-tool-bar=\"false\"\n :textarea-value=\"timelineText\"\n :restricted-tool-bar-items=\"$options.restrictedToolBarItems\"\n markdown-docs-path=\"\"\n :enable-preview=\"false\"\n class=\"gl-border gl-mt-0 gl-rounded-base gl-border-section\"\n >\n <template #textarea>\n <gl-form-textarea\n v-model=\"timelineText\"\n class=\"note-textarea-rounded-bottom js-gfm-input js-autosize markdown-area !gl-font-monospace\"\n data-testid=\"input-note\"\n dir=\"auto\"\n no-resize\n data-supports-quick-actions=\"false\"\n :aria-label=\"$options.i18n.description\"\n aria-describedby=\"timeline-form-hint\"\n :placeholder=\"$options.i18n.areaPlaceholder\"\n :maxlength=\"$options.MAX_TEXT_LENGTH\"\n @input=\"setTimelineTextDirty\"\n />\n <div id=\"timeline-form-hint\" class=\"gl-sr-only\">{{ $options.i18n.hint }}</div>\n <div\n aria-hidden=\"true\"\n class=\"gl-absolute gl-bottom-2 gl-right-4 gl-text-sm gl-text-subtle\"\n >\n {{ timelineTextRemainingCount }}\n </div>\n <div role=\"status\" class=\"gl-sr-only\">\n {{ $options.i18n.textRemaining(timelineTextRemainingCount) }}\n </div>\n </template>\n </markdown-field>\n </gl-form-group>\n </div>\n <gl-form-group class=\"gl-mb-3\">\n <div class=\"gl-flex gl-flex-wrap gl-gap-3\">\n <gl-button\n variant=\"confirm\"\n category=\"primary\"\n data-testid=\"save-button\"\n :disabled=\"!isTimelineTextValid\"\n :loading=\"isEventProcessed\"\n @click=\"handleSave(false)\"\n >\n {{ $options.i18n.save }}\n </gl-button>\n <gl-button\n v-if=\"showSaveAndAdd\"\n variant=\"confirm\"\n category=\"secondary\"\n data-testid=\"save-and-add-button\"\n :disabled=\"!isTimelineTextValid\"\n :loading=\"isEventProcessed\"\n @click=\"handleSave(true)\"\n >\n {{ $options.i18n.saveAndAdd }}\n </gl-button>\n <gl-button\n :disabled=\"isEventProcessed\"\n data-testid=\"cancel-button\"\n @click=\"$emit('cancel')\"\n >\n {{ $options.i18n.cancel }}\n </gl-button>\n <gl-button\n v-if=\"isEditing\"\n variant=\"danger\"\n class=\"gl-ml-auto\"\n data-testid=\"delete-button\"\n :disabled=\"isEventProcessed\"\n @click=\"$emit('delete')\"\n >\n {{ $options.i18n.delete }}\n </gl-button>\n </div>\n <div class=\"timeline-event-bottom-border\"></div>\n </gl-form-group>\n </form>\n</template>\n","import { render, staticRenderFns } from \"./timeline_events_form.vue?vue&type=template&id=452e6144\"\nimport script from \"./timeline_events_form.vue?vue&type=script&lang=js\"\nexport * from \"./timeline_events_form.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{staticClass:\"gl-grow gl-border-subtle\"},[_c('div',{staticClass:\"gl-mt-3 gl-flex gl-flex-col sm:gl-flex-row\"},[_c('gl-form-group',{staticClass:\"gl-mr-5\",attrs:{\"label\":_vm.__('Date')}},[_c('gl-datepicker',{ref:\"datepicker\",attrs:{\"id\":\"incident-date\"},model:{value:(_vm.datePickerInput),callback:function ($$v) {_vm.datePickerInput=$$v},expression:\"datePickerInput\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex\"},[_c('gl-form-group',{attrs:{\"label\":_vm.__('Time')}},[_c('div',{staticClass:\"gl-flex\"},[_c('label',{staticClass:\"sr-only\",attrs:{\"label-for\":\"timeline-input-hours\"}}),_vm._v(\" \"),_c('gl-form-input',{attrs:{\"id\":\"timeline-input-hours\",\"data-testid\":\"input-hours\",\"width\":\"xs\",\"type\":\"number\",\"min\":\"00\",\"max\":\"23\"},model:{value:(_vm.hourPickerInput),callback:function ($$v) {_vm.hourPickerInput=$$v},expression:\"hourPickerInput\"}}),_vm._v(\" \"),_c('label',{staticClass:\"sr-only\",attrs:{\"label-for\":\"timeline-input-minutes\"}}),_vm._v(\" \"),_c('gl-form-input',{staticClass:\"gl-ml-3\",attrs:{\"id\":\"timeline-input-minutes\",\"data-testid\":\"input-minutes\",\"width\":\"xs\",\"type\":\"number\",\"min\":\"00\",\"max\":\"59\"},model:{value:(_vm.minutePickerInput),callback:function ($$v) {_vm.minutePickerInput=$$v},expression:\"minutePickerInput\"}})],1)]),_vm._v(\" \"),_c('p',{staticClass:\"gl-ml-3 gl-self-end gl-leading-32\"},[_vm._v(_vm._s(_vm.__('UTC')))])],1)],1),_vm._v(\" \"),_c('gl-form-group',[_c('label',{staticClass:\"gl-flex gl-items-center gl-gap-3\",attrs:{\"for\":\"timeline-input-tags\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.tagsLabel)+\"\\n \"),_c('timeline-events-tags-popover')],1),_vm._v(\" \"),_c('gl-collapsible-listbox',{attrs:{\"id\":\"timeline-input-tags\",\"selected\":_vm.selectedTags,\"toggle-text\":_vm.listboxText,\"items\":_vm.tags,\"is-check-centered\":true,\"multiple\":true},on:{\"select\":_vm.onTagsChange}})],1),_vm._v(\" \"),_c('div',{staticClass:\"common-note-form\"},[_c('gl-form-group',{staticClass:\"gl-mb-3\",attrs:{\"label\":_vm.$options.i18n.areaLabel}},[_c('markdown-field',{staticClass:\"gl-border gl-mt-0 gl-rounded-base gl-border-section\",attrs:{\"can-attach-file\":false,\"add-spacing-classes\":false,\"show-comment-tool-bar\":false,\"textarea-value\":_vm.timelineText,\"restricted-tool-bar-items\":_vm.$options.restrictedToolBarItems,\"markdown-docs-path\":\"\",\"enable-preview\":false},scopedSlots:_vm._u([{key:\"textarea\",fn:function(){return [_c('gl-form-textarea',{staticClass:\"note-textarea-rounded-bottom js-gfm-input js-autosize markdown-area !gl-font-monospace\",attrs:{\"data-testid\":\"input-note\",\"dir\":\"auto\",\"no-resize\":\"\",\"data-supports-quick-actions\":\"false\",\"aria-label\":_vm.$options.i18n.description,\"aria-describedby\":\"timeline-form-hint\",\"placeholder\":_vm.$options.i18n.areaPlaceholder,\"maxlength\":_vm.$options.MAX_TEXT_LENGTH},on:{\"input\":_vm.setTimelineTextDirty},model:{value:(_vm.timelineText),callback:function ($$v) {_vm.timelineText=$$v},expression:\"timelineText\"}}),_vm._v(\" \"),_c('div',{staticClass:\"gl-sr-only\",attrs:{\"id\":\"timeline-form-hint\"}},[_vm._v(_vm._s(_vm.$options.i18n.hint))]),_vm._v(\" \"),_c('div',{staticClass:\"gl-absolute gl-bottom-2 gl-right-4 gl-text-sm gl-text-subtle\",attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"\\n \"+_vm._s(_vm.timelineTextRemainingCount)+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"gl-sr-only\",attrs:{\"role\":\"status\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.textRemaining(_vm.timelineTextRemainingCount))+\"\\n \")])]},proxy:true}])})],1)],1),_vm._v(\" \"),_c('gl-form-group',{staticClass:\"gl-mb-3\"},[_c('div',{staticClass:\"gl-flex gl-flex-wrap gl-gap-3\"},[_c('gl-button',{attrs:{\"variant\":\"confirm\",\"category\":\"primary\",\"data-testid\":\"save-button\",\"disabled\":!_vm.isTimelineTextValid,\"loading\":_vm.isEventProcessed},on:{\"click\":function($event){return _vm.handleSave(false)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.save)+\"\\n \")]),_vm._v(\" \"),(_vm.showSaveAndAdd)?_c('gl-button',{attrs:{\"variant\":\"confirm\",\"category\":\"secondary\",\"data-testid\":\"save-and-add-button\",\"disabled\":!_vm.isTimelineTextValid,\"loading\":_vm.isEventProcessed},on:{\"click\":function($event){return _vm.handleSave(true)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.saveAndAdd)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('gl-button',{attrs:{\"disabled\":_vm.isEventProcessed,\"data-testid\":\"cancel-button\"},on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.cancel)+\"\\n \")]),_vm._v(\" \"),(_vm.isEditing)?_c('gl-button',{staticClass:\"gl-ml-auto\",attrs:{\"variant\":\"danger\",\"data-testid\":\"delete-button\",\"disabled\":_vm.isEventProcessed},on:{\"click\":function($event){return _vm.$emit('delete')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.delete)+\"\\n \")]):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"timeline-event-bottom-border\"})])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create_timeline_event.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create_timeline_event.vue?vue&type=script&lang=js\"","<script>\nimport { produce } from 'immer';\nimport { sortBy } from 'lodash';\nimport { GlIcon } from '@gitlab/ui';\nimport { sprintf } from '~/locale';\nimport { createAlert } from '~/alert';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_ISSUE } from '~/graphql_shared/constants';\nimport { timelineFormI18n } from './constants';\nimport TimelineEventsForm from './timeline_events_form.vue';\n\nimport CreateTimelineEvent from './graphql/queries/create_timeline_event.mutation.graphql';\nimport getTimelineEvents from './graphql/queries/get_timeline_events.query.graphql';\n\nexport default {\n name: 'CreateTimelineEvent',\n i18n: timelineFormI18n,\n components: {\n TimelineEventsForm,\n GlIcon,\n },\n inject: ['fullPath', 'issuableId'],\n props: {\n hasTimelineEvents: {\n type: Boolean,\n required: true,\n },\n },\n data() {\n return { createTimelineEventActive: false };\n },\n methods: {\n clearForm() {\n this.$refs.eventForm.clear();\n },\n updateCache(store, { data }) {\n const { timelineEvent: event, errors } = data?.timelineEventCreate || {};\n\n if (errors.length) {\n return;\n }\n\n const variables = {\n incidentId: convertToGraphQLId(TYPENAME_ISSUE, this.issuableId),\n fullPath: this.fullPath,\n };\n\n const sourceData = store.readQuery({\n query: getTimelineEvents,\n variables,\n });\n\n const newData = produce(sourceData, (draftData) => {\n const { nodes: draftEventList } = draftData.project.incidentManagementTimelineEvents;\n draftEventList.push(event);\n // ISOStrings sort correctly in lexical order\n const sortedEvents = sortBy(draftEventList, 'occurredAt');\n draftData.project.incidentManagementTimelineEvents.nodes = sortedEvents;\n });\n\n store.writeQuery({\n query: getTimelineEvents,\n variables,\n data: newData,\n });\n },\n createIncidentTimelineEvent(eventDetails, addAnotherEvent = false) {\n this.createTimelineEventActive = true;\n return this.$apollo\n .mutate({\n mutation: CreateTimelineEvent,\n variables: {\n input: {\n incidentId: convertToGraphQLId(TYPENAME_ISSUE, this.issuableId),\n note: eventDetails.note,\n occurredAt: eventDetails.occurredAt,\n timelineEventTagNames: eventDetails.timelineEventTags,\n },\n },\n update: this.updateCache,\n })\n .then(({ data = {} }) => {\n this.createTimelineEventActive = false;\n const errors = data.timelineEventCreate?.errors;\n if (errors.length) {\n createAlert({\n message: sprintf(this.$options.i18n.createError, { error: errors.join('. ') }, false),\n });\n return;\n }\n if (addAnotherEvent) {\n this.$refs.eventForm.clear();\n } else {\n this.$emit('hide-new-timeline-events-form');\n }\n })\n .catch((error) => {\n createAlert({\n message: this.$options.i18n.createErrorGeneric,\n captureError: true,\n error,\n });\n });\n },\n },\n};\n</script>\n\n<template>\n <div class=\"create-timeline-event gl-relative gl-flex gl-items-start\">\n <div\n v-if=\"hasTimelineEvents\"\n class=\"gl-z-1 gl-mt-2 gl-flex gl-h-8 gl-w-8 gl-shrink-0 gl-items-center gl-justify-center gl-self-start gl-rounded-full gl-border-1 gl-border-solid gl-border-default gl-bg-default gl-p-3\"\n >\n <gl-icon name=\"comment\" class=\"note-icon\" variant=\"subtle\" />\n </div>\n <timeline-events-form\n ref=\"eventForm\"\n :class=\"{ 'gl-border-t gl-border-subtle gl-pt-3': hasTimelineEvents }\"\n :is-event-processed=\"createTimelineEventActive\"\n show-save-and-add\n @save-event=\"createIncidentTimelineEvent\"\n @cancel=\"$emit('hide-new-timeline-events-form')\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./create_timeline_event.vue?vue&type=template&id=70cbe41e\"\nimport script from \"./create_timeline_event.vue?vue&type=script&lang=js\"\nexport * from \"./create_timeline_event.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./timeline_events_item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./timeline_events_item.vue?vue&type=script&lang=js\"","<script>\nimport { GlDisclosureDropdown, GlIcon, GlSprintf, GlBadge } from '@gitlab/ui';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { formatDate } from '~/lib/utils/datetime_utility';\nimport { timelineItemI18n } from './constants';\nimport { getEventIcon } from './utils';\n\nexport default {\n name: 'IncidentTimelineEventListItem',\n i18n: timelineItemI18n,\n components: {\n GlDisclosureDropdown,\n GlIcon,\n GlSprintf,\n GlBadge,\n },\n directives: {\n SafeHtml,\n },\n inject: ['canUpdateTimelineEvent'],\n props: {\n occurredAt: {\n type: String,\n required: true,\n },\n action: {\n type: String,\n required: true,\n },\n noteHtml: {\n type: String,\n required: true,\n },\n eventTags: {\n type: Array,\n required: false,\n default: () => [],\n },\n },\n computed: {\n time() {\n return formatDate(this.occurredAt, 'HH:MM', true);\n },\n canEditEvent() {\n return this.action === 'comment';\n },\n items() {\n const items = [];\n\n if (this.canEditEvent) {\n items.push({\n text: this.$options.i18n.edit,\n action: () => {\n this.$emit('edit');\n },\n });\n }\n items.push({\n text: this.$options.i18n.delete,\n action: () => {\n this.$emit('delete');\n },\n });\n return items;\n },\n },\n methods: {\n getEventIcon,\n },\n};\n</script>\n<template>\n <div class=\"timeline-event gl-grid\">\n <div\n class=\"timeline-event-icon gl-border gl-z-1 gl-mt-2 gl-flex gl-h-8 gl-w-8 gl-items-center gl-justify-center gl-rounded-full gl-bg-default gl-p-3\"\n >\n <gl-icon :name=\"getEventIcon(action)\" class=\"note-icon\" variant=\"subtle\" />\n </div>\n <div class=\"timeline-event-note timeline-event-border\">\n <div class=\"gl-mb-2 gl-flex gl-flex-wrap gl-items-center gl-gap-3\">\n <h3\n class=\"timeline-event-note-date gl-my-0 gl-text-sm gl-font-bold\"\n data-testid=\"event-time\"\n >\n <gl-sprintf :message=\"$options.i18n.timeUTC\">\n <template #time>\n <span class=\"gl-text-lg\">{{ time }}</span>\n </template>\n </gl-sprintf>\n </h3>\n <gl-badge v-for=\"tag in eventTags\" :key=\"tag.key\" variant=\"muted\" icon=\"tag\">\n {{ tag.name }}\n </gl-badge>\n </div>\n <div v-safe-html=\"noteHtml\" class=\"md\"></div>\n </div>\n <gl-disclosure-dropdown\n v-if=\"canUpdateTimelineEvent\"\n placement=\"bottom-end\"\n class=\"event-note-actions gl-self-start\"\n icon=\"ellipsis_v\"\n text-sr-only\n :toggle-text=\"$options.i18n.moreActions\"\n category=\"tertiary\"\n no-caret\n :items=\"items\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./timeline_events_item.vue?vue&type=template&id=0d843e3e\"\nimport script from \"./timeline_events_item.vue?vue&type=script&lang=js\"\nexport * from \"./timeline_events_item.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"timeline-event gl-grid\"},[_c('div',{staticClass:\"timeline-event-icon gl-border gl-z-1 gl-mt-2 gl-flex gl-h-8 gl-w-8 gl-items-center gl-justify-center gl-rounded-full gl-bg-default gl-p-3\"},[_c('gl-icon',{staticClass:\"note-icon\",attrs:{\"name\":_vm.getEventIcon(_vm.action),\"variant\":\"subtle\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"timeline-event-note timeline-event-border\"},[_c('div',{staticClass:\"gl-mb-2 gl-flex gl-flex-wrap gl-items-center gl-gap-3\"},[_c('h3',{staticClass:\"timeline-event-note-date gl-my-0 gl-text-sm gl-font-bold\",attrs:{\"data-testid\":\"event-time\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.timeUTC},scopedSlots:_vm._u([{key:\"time\",fn:function(){return [_c('span',{staticClass:\"gl-text-lg\"},[_vm._v(_vm._s(_vm.time))])]},proxy:true}])})],1),_vm._v(\" \"),_vm._l((_vm.eventTags),function(tag){return _c('gl-badge',{key:tag.key,attrs:{\"variant\":\"muted\",\"icon\":\"tag\"}},[_vm._v(\"\\n \"+_vm._s(tag.name)+\"\\n \")])})],2),_vm._v(\" \"),_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.noteHtml),expression:\"noteHtml\"}],staticClass:\"md\"})]),_vm._v(\" \"),(_vm.canUpdateTimelineEvent)?_c('gl-disclosure-dropdown',{staticClass:\"event-note-actions gl-self-start\",attrs:{\"placement\":\"bottom-end\",\"icon\":\"ellipsis_v\",\"text-sr-only\":\"\",\"toggle-text\":_vm.$options.i18n.moreActions,\"category\":\"tertiary\",\"no-caret\":\"\",\"items\":_vm.items}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit_timeline_event.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit_timeline_event.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\nimport TimelineEventsForm from './timeline_events_form.vue';\n\nexport default {\n name: 'EditTimelineEvent',\n components: {\n TimelineEventsForm,\n GlIcon,\n },\n props: {\n event: {\n type: Object,\n required: true,\n validator: (item) => ['occurredAt', 'note'].every((key) => item[key]),\n },\n editTimelineEventActive: {\n type: Boolean,\n required: true,\n },\n },\n methods: {\n saveEvent(eventDetails) {\n this.$emit('handle-save-edit', { ...eventDetails, id: this.event.id }, false);\n },\n },\n};\n</script>\n\n<template>\n <div class=\"edit-timeline-event gl-relative gl-flex gl-items-center\">\n <div\n class=\"gl-z-1 gl-mt-2 gl-flex gl-h-8 gl-w-8 gl-items-center gl-justify-center gl-self-start gl-rounded-full gl-border-1 gl-border-solid gl-border-default gl-bg-default\"\n >\n <gl-icon name=\"comment\" class=\"note-icon\" variant=\"subtle\" />\n </div>\n <timeline-events-form\n ref=\"eventForm\"\n class=\"timeline-event-border\"\n :is-event-processed=\"editTimelineEventActive\"\n :previous-occurred-at=\"event.occurredAt\"\n :previous-note=\"event.note\"\n :previous-tags=\"event.timelineEventTags.nodes\"\n is-editing\n @save-event=\"saveEvent\"\n @cancel=\"$emit('hide-edit')\"\n @delete=\"$emit('delete')\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./edit_timeline_event.vue?vue&type=template&id=1879345a\"\nimport script from \"./edit_timeline_event.vue?vue&type=script&lang=js\"\nexport * from \"./edit_timeline_event.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"edit-timeline-event gl-relative gl-flex gl-items-center\"},[_c('div',{staticClass:\"gl-z-1 gl-mt-2 gl-flex gl-h-8 gl-w-8 gl-items-center gl-justify-center gl-self-start gl-rounded-full gl-border-1 gl-border-solid gl-border-default gl-bg-default\"},[_c('gl-icon',{staticClass:\"note-icon\",attrs:{\"name\":\"comment\",\"variant\":\"subtle\"}})],1),_vm._v(\" \"),_c('timeline-events-form',{ref:\"eventForm\",staticClass:\"timeline-event-border\",attrs:{\"is-event-processed\":_vm.editTimelineEventActive,\"previous-occurred-at\":_vm.event.occurredAt,\"previous-note\":_vm.event.note,\"previous-tags\":_vm.event.timelineEventTags.nodes,\"is-editing\":\"\"},on:{\"save-event\":_vm.saveEvent,\"cancel\":function($event){return _vm.$emit('hide-edit')},\"delete\":function($event){return _vm.$emit('delete')}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./timeline_events_list.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./timeline_events_list.vue?vue&type=script&lang=js\"","<script>\nimport { formatDate } from '~/lib/utils/datetime_utility';\nimport { createAlert } from '~/alert';\nimport { sprintf } from '~/locale';\nimport { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal';\nimport { ignoreWhilePending } from '~/lib/utils/ignore_while_pending';\nimport IncidentTimelineEventItem from './timeline_events_item.vue';\nimport EditTimelineEvent from './edit_timeline_event.vue';\nimport deleteTimelineEvent from './graphql/queries/delete_timeline_event.mutation.graphql';\nimport editTimelineEvent from './graphql/queries/edit_timeline_event.mutation.graphql';\nimport { timelineListI18n } from './constants';\n\nexport default {\n name: 'IncidentTimelineEventList',\n i18n: timelineListI18n,\n components: {\n IncidentTimelineEventItem,\n EditTimelineEvent,\n },\n props: {\n timelineEventLoading: {\n type: Boolean,\n required: false,\n default: true,\n },\n timelineEvents: {\n type: Array,\n required: true,\n default: () => [],\n },\n },\n data() {\n return { eventToEdit: null, editTimelineEventActive: false };\n },\n computed: {\n dateGroupedEvents() {\n const groupedEvents = new Map();\n\n this.timelineEvents.forEach((event) => {\n const date = formatDate(event.occurredAt, 'isoDate', true);\n\n if (groupedEvents.has(date)) {\n groupedEvents.get(date).push(event);\n } else {\n groupedEvents.set(date, [event]);\n }\n });\n\n return groupedEvents;\n },\n },\n methods: {\n handleEditSelection(event) {\n this.eventToEdit = event.id;\n this.$emit('hide-new-incident-timeline-event-form');\n },\n hideEdit() {\n this.eventToEdit = null;\n },\n handleDelete: ignoreWhilePending(async function handleDelete(event) {\n const msg = this.$options.i18n.deleteModal;\n\n const confirmed = await confirmAction(msg, {\n primaryBtnVariant: 'danger',\n primaryBtnText: this.$options.i18n.deleteButton,\n });\n\n if (!confirmed) {\n return;\n }\n\n try {\n const result = await this.$apollo.mutate({\n mutation: deleteTimelineEvent,\n variables: {\n input: {\n id: event.id,\n },\n },\n update: (cache) => {\n const cacheId = cache.identify(event);\n cache.evict({ id: cacheId });\n },\n });\n const { errors } = result.data.timelineEventDestroy;\n if (errors?.length) {\n createAlert({\n message: sprintf(this.$options.i18n.deleteError, { error: errors.join('. ') }, false),\n });\n }\n } catch (error) {\n createAlert({ message: this.$options.i18n.deleteErrorGeneric, captureError: true, error });\n }\n }),\n handleSaveEdit(eventDetails) {\n this.editTimelineEventActive = true;\n return this.$apollo\n .mutate({\n mutation: editTimelineEvent,\n variables: {\n input: {\n id: eventDetails.id,\n note: eventDetails.note,\n occurredAt: eventDetails.occurredAt,\n timelineEventTagNames: eventDetails.timelineEventTags,\n },\n },\n })\n .then(({ data }) => {\n this.editTimelineEventActive = false;\n const errors = data.timelineEventUpdate?.errors;\n if (errors.length) {\n createAlert({\n message: sprintf(this.$options.i18n.editError, { error: errors.join('. ') }, false),\n });\n } else {\n this.hideEdit();\n }\n })\n .catch((error) => {\n createAlert({\n message: this.$options.i18n.editErrorGeneric,\n captureError: true,\n error,\n });\n });\n },\n },\n};\n</script>\n\n<template>\n <div class=\"issuable-discussion incident-timeline-events -gl-mt-3\">\n <div\n v-for=\"[eventDate, events] in dateGroupedEvents\"\n :key=\"eventDate\"\n data-testid=\"timeline-group\"\n class=\"timeline-group\"\n >\n <h2\n class=\"gl-my-0 gl-border-1 gl-border-subtle gl-py-5 gl-text-size-h2 gl-border-b-solid\"\n data-testid=\"event-date\"\n >\n {{ eventDate }}\n </h2>\n\n <ul class=\"notes main-notes-list gl-mt-4\">\n <li\n v-for=\"(event, eventIndex) in events\"\n :key=\"eventIndex\"\n class=\"timeline-entry-vertical-line timeline-entry note system-note note-wrapper !gl-my-0 !gl-pr-0\"\n >\n <edit-timeline-event\n v-if=\"eventToEdit === event.id\"\n :key=\"`edit-${event.id}`\"\n ref=\"eventForm\"\n :event=\"event\"\n :edit-timeline-event-active=\"editTimelineEventActive\"\n @handle-save-edit=\"handleSaveEdit\"\n @hide-edit=\"hideEdit()\"\n @delete=\"handleDelete(event)\"\n />\n <incident-timeline-event-item\n v-else\n :key=\"event.id\"\n :action=\"event.action\"\n :occurred-at=\"event.occurredAt\"\n :note-html=\"event.noteHtml\"\n :event-tags=\"event.timelineEventTags.nodes\"\n @delete=\"handleDelete(event)\"\n @edit=\"handleEditSelection(event)\"\n />\n </li>\n </ul>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./timeline_events_list.vue?vue&type=template&id=5940ca66\"\nimport script from \"./timeline_events_list.vue?vue&type=script&lang=js\"\nexport * from \"./timeline_events_list.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"issuable-discussion incident-timeline-events -gl-mt-3\"},_vm._l((_vm.dateGroupedEvents),function([eventDate, events]){return _c('div',{key:eventDate,staticClass:\"timeline-group\",attrs:{\"data-testid\":\"timeline-group\"}},[_c('h2',{staticClass:\"gl-my-0 gl-border-1 gl-border-subtle gl-py-5 gl-text-size-h2 gl-border-b-solid\",attrs:{\"data-testid\":\"event-date\"}},[_vm._v(\"\\n \"+_vm._s(eventDate)+\"\\n \")]),_vm._v(\" \"),_c('ul',{staticClass:\"notes main-notes-list gl-mt-4\"},_vm._l((events),function(event,eventIndex){return _c('li',{key:eventIndex,staticClass:\"timeline-entry-vertical-line timeline-entry note system-note note-wrapper !gl-my-0 !gl-pr-0\"},[(_vm.eventToEdit === event.id)?_c('edit-timeline-event',{key:`edit-${event.id}`,ref:\"eventForm\",refInFor:true,attrs:{\"event\":event,\"edit-timeline-event-active\":_vm.editTimelineEventActive},on:{\"handle-save-edit\":_vm.handleSaveEdit,\"hide-edit\":function($event){return _vm.hideEdit()},\"delete\":function($event){return _vm.handleDelete(event)}}}):_c('incident-timeline-event-item',{key:event.id,attrs:{\"action\":event.action,\"occurred-at\":event.occurredAt,\"note-html\":event.noteHtml,\"event-tags\":event.timelineEventTags.nodes},on:{\"delete\":function($event){return _vm.handleDelete(event)},\"edit\":function($event){return _vm.handleEditSelection(event)}}})],1)}),0)])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./timeline_events_tab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./timeline_events_tab.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlLoadingIcon } from '@gitlab/ui';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_ISSUE } from '~/graphql_shared/constants';\nimport { fetchPolicies } from '~/lib/graphql';\nimport notesEventHub from '~/notes/event_hub';\nimport getTimelineEvents from './graphql/queries/get_timeline_events.query.graphql';\nimport { displayAndLogError } from './utils';\nimport { timelineTabI18n } from './constants';\nimport CreateTimelineEvent from './create_timeline_event.vue';\nimport IncidentTimelineEventsList from './timeline_events_list.vue';\n\nexport default {\n components: {\n GlButton,\n GlLoadingIcon,\n CreateTimelineEvent,\n IncidentTimelineEventsList,\n },\n i18n: timelineTabI18n,\n inject: ['canUpdateTimelineEvent', 'fullPath', 'issuableId'],\n data() {\n return {\n isEventFormVisible: false,\n timelineEvents: [],\n };\n },\n apollo: {\n timelineEvents: {\n fetchPolicy: fetchPolicies.CACHE_AND_NETWORK,\n query: getTimelineEvents,\n variables() {\n return {\n fullPath: this.fullPath,\n incidentId: convertToGraphQLId(TYPENAME_ISSUE, this.issuableId),\n };\n },\n update(data) {\n return data.project.incidentManagementTimelineEvents.nodes;\n },\n error(error) {\n displayAndLogError(error);\n },\n },\n },\n computed: {\n timelineEventLoading() {\n return this.$apollo.queries.timelineEvents.loading;\n },\n hasTimelineEvents() {\n return Boolean(this.timelineEvents.length);\n },\n showEmptyState() {\n return !this.timelineEventLoading && !this.hasTimelineEvents;\n },\n },\n mounted() {\n notesEventHub.$on('comment-promoted-to-timeline-event', this.refreshTimelineEvents);\n },\n destroyed() {\n notesEventHub.$off('comment-promoted-to-timeline-event', this.refreshTimelineEvents);\n },\n methods: {\n refreshTimelineEvents() {\n this.$apollo.queries.timelineEvents.refetch();\n },\n hideEventForm() {\n this.isEventFormVisible = false;\n },\n showEventForm() {\n this.isEventFormVisible = true;\n },\n },\n};\n</script>\n\n<template>\n <div>\n <gl-loading-icon v-if=\"timelineEventLoading\" size=\"lg\" color=\"dark\" class=\"gl-mt-5\" />\n <div v-if=\"showEmptyState\" class=\"gl-mt-4\">\n <p class=\"gl-mb-0\">{{ $options.i18n.emptyDescription }}</p>\n </div>\n <incident-timeline-events-list\n v-if=\"hasTimelineEvents\"\n :timeline-event-loading=\"timelineEventLoading\"\n :timeline-events=\"timelineEvents\"\n @hide-new-timeline-events-form=\"hideEventForm\"\n />\n <create-timeline-event\n v-if=\"isEventFormVisible\"\n ref=\"createEventForm\"\n :has-timeline-events=\"hasTimelineEvents\"\n class=\"timeline-event-note timeline-event-note-form\"\n :class=\"{ 'gl-pl-0': !hasTimelineEvents }\"\n @hide-new-timeline-events-form=\"hideEventForm\"\n />\n <gl-button\n v-if=\"canUpdateTimelineEvent\"\n variant=\"default\"\n class=\"gl-mb-3 gl-mt-6\"\n @click=\"showEventForm\"\n >\n {{ $options.i18n.addEventButton }}\n </gl-button>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./timeline_events_tab.vue?vue&type=template&id=79449956\"\nimport script from \"./timeline_events_tab.vue?vue&type=script&lang=js\"\nexport * from \"./timeline_events_tab.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.timelineEventLoading)?_c('gl-loading-icon',{staticClass:\"gl-mt-5\",attrs:{\"size\":\"lg\",\"color\":\"dark\"}}):_vm._e(),_vm._v(\" \"),(_vm.showEmptyState)?_c('div',{staticClass:\"gl-mt-4\"},[_c('p',{staticClass:\"gl-mb-0\"},[_vm._v(_vm._s(_vm.$options.i18n.emptyDescription))])]):_vm._e(),_vm._v(\" \"),(_vm.hasTimelineEvents)?_c('incident-timeline-events-list',{attrs:{\"timeline-event-loading\":_vm.timelineEventLoading,\"timeline-events\":_vm.timelineEvents},on:{\"hide-new-timeline-events-form\":_vm.hideEventForm}}):_vm._e(),_vm._v(\" \"),(_vm.isEventFormVisible)?_c('create-timeline-event',{ref:\"createEventForm\",staticClass:\"timeline-event-note timeline-event-note-form\",class:{ 'gl-pl-0': !_vm.hasTimelineEvents },attrs:{\"has-timeline-events\":_vm.hasTimelineEvents},on:{\"hide-new-timeline-events-form\":_vm.hideEventForm}}):_vm._e(),_vm._v(\" \"),(_vm.canUpdateTimelineEvent)?_c('gl-button',{staticClass:\"gl-mb-3 gl-mt-6\",attrs:{\"variant\":\"default\"},on:{\"click\":_vm.showEventForm}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.addEventButton)+\"\\n \")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlTab, GlTabs } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { trackIncidentDetailsViewsOptions } from '~/incidents/constants';\nimport { s__ } from '~/locale';\nimport Tracking from '~/tracking';\nimport AlertDetailsTable from '~/vue_shared/components/alert_details_table.vue';\nimport DescriptionComponent from '../description.vue';\nimport getAlert from './graphql/queries/get_alert.graphql';\nimport HighlightBar from './highlight_bar.vue';\nimport TimelineTab from './timeline_events_tab.vue';\n\nexport const incidentTabsI18n = Object.freeze({\n summaryTitle: s__('Incident|Summary'),\n metricsTitle: s__('Incident|Metrics'),\n alertsTitle: s__('Incident|Alert details'),\n timelineTitle: s__('Incident|Timeline'),\n});\n\nexport const TAB_NAMES = Object.freeze({\n SUMMARY: '',\n ALERTS: 'alerts',\n METRICS: 'metrics',\n TIMELINE: 'timeline',\n});\n\nexport default {\n components: {\n AlertDetailsTable,\n DescriptionComponent,\n GlTab,\n GlTabs,\n HighlightBar,\n TimelineTab,\n IncidentMetricTab: () =>\n import('ee_component/issues/show/components/incidents/incident_metric_tab.vue'),\n },\n inject: ['fullPath', 'iid', 'hasLinkedAlerts', 'uploadMetricsFeatureAvailable'],\n i18n: incidentTabsI18n,\n apollo: {\n alert: {\n query: getAlert,\n variables() {\n return {\n fullPath: this.fullPath,\n iid: String(this.iid),\n };\n },\n update(data) {\n return data?.project?.issue?.alertManagementAlert;\n },\n error() {\n createAlert({\n message: s__('Incident|There was an issue loading alert data. Please try again.'),\n });\n },\n },\n },\n data() {\n return {\n alert: null,\n };\n },\n computed: {\n loading() {\n return this.$apollo.queries.alert.loading;\n },\n activeTabIndex() {\n const { tabId } = this.$route.params;\n return tabId ? this.tabMapping.tabNamesToIndex[tabId] : 0;\n },\n tabMapping() {\n const availableTabs = [TAB_NAMES.SUMMARY];\n\n if (this.uploadMetricsFeatureAvailable) {\n availableTabs.push(TAB_NAMES.METRICS);\n }\n if (this.hasLinkedAlerts) {\n availableTabs.push(TAB_NAMES.ALERTS);\n }\n\n availableTabs.push(TAB_NAMES.TIMELINE);\n\n const tabNamesToIndex = {};\n const tabIndexToName = {};\n\n availableTabs.forEach((item, index) => {\n tabNamesToIndex[item] = index;\n tabIndexToName[index] = item;\n });\n\n return { tabNamesToIndex, tabIndexToName };\n },\n currentTabIndex: {\n get() {\n return this.activeTabIndex;\n },\n set(index) {\n const newPath = `/${this.tabMapping.tabIndexToName[index]}`;\n // Only push if the new path differs from the old path.\n if (newPath !== this.$route.path) {\n this.$router.push(newPath);\n this.updateJsIssueWidgets(index);\n }\n },\n },\n },\n mounted() {\n this.trackPageViews();\n this.updateJsIssueWidgets(this.activeTabIndex);\n },\n methods: {\n trackPageViews() {\n const { category, action } = trackIncidentDetailsViewsOptions;\n Tracking.event(category, action);\n },\n updateJsIssueWidgets(tabIndex) {\n /**\n * TODO: Implement a solution that does not violate Vue principles in using\n * DOM manipulation directly (#361618)\n */\n const parent = document.querySelector('.js-issue-details');\n\n if (parent !== null) {\n const itemsToHide = parent.querySelectorAll('.js-issue-widgets');\n const lineSeparator = parent.querySelector('.js-detail-page-description');\n const editButton = document.querySelector('.js-issuable-edit');\n const isSummaryTab = tabIndex === 0;\n\n lineSeparator.classList.toggle('gl-border-b-0', !isSummaryTab);\n\n itemsToHide.forEach((item) => {\n item.classList.toggle('gl-hidden', !isSummaryTab);\n });\n\n editButton?.classList.toggle('md:!gl-block', isSummaryTab);\n }\n },\n },\n};\n</script>\n\n<template>\n <div>\n <gl-tabs\n v-model=\"currentTabIndex\"\n content-class=\"gl-leading-reset\"\n class=\"-gl-mt-3\"\n data-testid=\"incident-tabs\"\n >\n <gl-tab :title=\"$options.i18n.summaryTitle\" data-testid=\"summary-tab\">\n <highlight-bar :alert=\"alert\" />\n <description-component v-bind=\"$attrs\" v-on=\"$listeners\" />\n </gl-tab>\n <gl-tab\n v-if=\"uploadMetricsFeatureAvailable\"\n :title=\"$options.i18n.metricsTitle\"\n data-testid=\"metrics-tab\"\n >\n <incident-metric-tab />\n </gl-tab>\n <gl-tab\n v-if=\"hasLinkedAlerts\"\n class=\"alert-management-details\"\n :title=\"$options.i18n.alertsTitle\"\n data-testid=\"alert-details-tab\"\n >\n <alert-details-table :alert=\"alert\" :loading=\"loading\" />\n </gl-tab>\n <gl-tab :title=\"$options.i18n.timelineTitle\" data-testid=\"timeline-tab\">\n <timeline-tab />\n </gl-tab>\n </gl-tabs>\n </div>\n</template>\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./incident_tabs.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./incident_tabs.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./incident_tabs.vue?vue&type=template&id=3a5c8d70\"\nimport script from \"./incident_tabs.vue?vue&type=script&lang=js\"\nexport * from \"./incident_tabs.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('gl-tabs',{staticClass:\"-gl-mt-3\",attrs:{\"content-class\":\"gl-leading-reset\",\"data-testid\":\"incident-tabs\"},model:{value:(_vm.currentTabIndex),callback:function ($$v) {_vm.currentTabIndex=$$v},expression:\"currentTabIndex\"}},[_c('gl-tab',{attrs:{\"title\":_vm.$options.i18n.summaryTitle,\"data-testid\":\"summary-tab\"}},[_c('highlight-bar',{attrs:{\"alert\":_vm.alert}}),_vm._v(\" \"),_c('description-component',_vm._g(_vm._b({},'description-component',_vm.$attrs,false),_vm.$listeners))],1),_vm._v(\" \"),(_vm.uploadMetricsFeatureAvailable)?_c('gl-tab',{attrs:{\"title\":_vm.$options.i18n.metricsTitle,\"data-testid\":\"metrics-tab\"}},[_c('incident-metric-tab')],1):_vm._e(),_vm._v(\" \"),(_vm.hasLinkedAlerts)?_c('gl-tab',{staticClass:\"alert-management-details\",attrs:{\"title\":_vm.$options.i18n.alertsTitle,\"data-testid\":\"alert-details-tab\"}},[_c('alert-details-table',{attrs:{\"alert\":_vm.alert,\"loading\":_vm.loading}})],1):_vm._e(),_vm._v(\" \"),_c('gl-tab',{attrs:{\"title\":_vm.$options.i18n.timelineTitle,\"data-testid\":\"timeline-tab\"}},[_c('timeline-tab')],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sentry_error_stack_trace.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sentry_error_stack_trace.vue?vue&type=script&lang=js\"","<script>\nimport { GlLoadingIcon } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapState, mapGetters } from 'vuex';\nimport Stacktrace from '~/error_tracking/components/stacktrace.vue';\n\nexport default {\n name: 'SentryErrorStackTrace',\n components: {\n Stacktrace,\n GlLoadingIcon,\n },\n props: {\n issueStackTracePath: {\n type: String,\n required: true,\n },\n },\n computed: {\n ...mapState('details', ['loadingStacktrace', 'stacktraceData']),\n ...mapGetters('details', ['stacktrace']),\n },\n mounted() {\n this.startPollingStacktrace(this.issueStackTracePath);\n },\n methods: {\n ...mapActions('details', ['startPollingStacktrace']),\n },\n};\n</script>\n\n<template>\n <div>\n <div :class=\"{ 'border-bottom-0': loadingStacktrace }\" class=\"card card-slim mt-4 mb-0\">\n <div class=\"card-header border-bottom-0\">\n <h5 class=\"card-title my-1\">{{ __('Stack trace') }}</h5>\n </div>\n </div>\n <div v-if=\"loadingStacktrace\" class=\"card\">\n <gl-loading-icon class=\"py-2\" label=\"Fetching stack trace\" size=\"sm\" />\n </div>\n <stacktrace v-else :entries=\"stacktrace\" />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sentry_error_stack_trace.vue?vue&type=template&id=3c52906d\"\nimport script from \"./sentry_error_stack_trace.vue?vue&type=script&lang=js\"\nexport * from \"./sentry_error_stack_trace.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"card card-slim mt-4 mb-0\",class:{ 'border-bottom-0': _vm.loadingStacktrace }},[_c('div',{staticClass:\"card-header border-bottom-0\"},[_c('h5',{staticClass:\"card-title my-1\"},[_vm._v(_vm._s(_vm.__('Stack trace')))])])]),_vm._v(\" \"),(_vm.loadingStacktrace)?_c('div',{staticClass:\"card\"},[_c('gl-loading-icon',{staticClass:\"py-2\",attrs:{\"label\":\"Fetching stack trace\",\"size\":\"sm\"}})],1):_c('stacktrace',{attrs:{\"entries\":_vm.stacktrace}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport VueRouter from 'vue-router';\n\nVue.use(VueRouter);\n\nexport default (currentPath, currentTab = null) => {\n // If navigating directly to a tab, determine the base\n // path to initialize router, then set the current route.\n const base = currentPath.replace(new RegExp(`/${currentTab}$`), '');\n\n const router = new VueRouter({\n mode: 'history',\n base,\n routes: [{ path: '/:tabId', name: 'tab' }],\n });\n\n if (currentTab) router.push(`/${currentTab}`);\n\n return router;\n};\n","import Vue from 'vue';\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters } from 'vuex';\nimport errorTrackingStore from '~/error_tracking/store';\nimport { apolloProvider } from '~/graphql_shared/issuable_client';\nimport { TYPE_INCIDENT, TYPE_ISSUE } from '~/issues/constants';\nimport { convertObjectPropsToCamelCase, parseBoolean } from '~/lib/utils/common_utils';\nimport initLinkedResources from '~/linked_resources';\nimport IssueApp from './components/app.vue';\nimport DescriptionComponent from './components/description.vue';\nimport IncidentTabs from './components/incidents/incident_tabs.vue';\nimport SentryErrorStackTrace from './components/sentry_error_stack_trace.vue';\nimport { issueState } from './constants';\nimport getIssueStateQuery from './queries/get_issue_state.query.graphql';\nimport createRouter from './components/incidents/router';\nimport { parseIssuableData } from './utils/parse_data';\n\nconst bootstrapApollo = (state = {}) => {\n return apolloProvider.clients.defaultClient.cache.writeQuery({\n query: getIssueStateQuery,\n data: {\n issueState: state,\n },\n });\n};\n\nexport function initIssuableApp(store) {\n const el = document.getElementById('js-issuable-app');\n\n if (!el) {\n return undefined;\n }\n\n const issuableData = parseIssuableData(el);\n const headerActionsData = convertObjectPropsToCamelCase(JSON.parse(el.dataset.headerActionsData));\n\n const {\n authorId,\n authorName,\n authorUsername,\n authorWebUrl,\n canCreateIncident,\n fullPath,\n iid,\n issuableId,\n issueType,\n hasIterationsFeature,\n imported,\n // for issue\n registerPath,\n signInPath,\n // for incident\n canUpdate,\n canUpdateTimelineEvent,\n currentPath,\n currentTab,\n hasLinkedAlerts,\n projectId,\n slaFeatureAvailable,\n uploadMetricsFeatureAvailable,\n } = issuableData;\n\n const issueProvideData = { registerPath, signInPath };\n const incidentProvideData = {\n canUpdate,\n canUpdateTimelineEvent,\n hasLinkedAlerts: parseBoolean(hasLinkedAlerts),\n projectId,\n slaFeatureAvailable: parseBoolean(slaFeatureAvailable),\n uploadMetricsFeatureAvailable: parseBoolean(uploadMetricsFeatureAvailable),\n };\n\n bootstrapApollo({ ...issueState, issueType });\n\n if (issueType === TYPE_INCIDENT) {\n initLinkedResources();\n }\n\n return new Vue({\n el,\n name: 'DescriptionRoot',\n apolloProvider,\n store,\n router: issueType === TYPE_INCIDENT ? createRouter(currentPath, currentTab) : undefined,\n provide: {\n canCreateIncident,\n fullPath,\n iid,\n issuableId,\n issueType,\n hasIterationsFeature,\n ...(issueType === TYPE_ISSUE && issueProvideData),\n ...(issueType === TYPE_INCIDENT && incidentProvideData),\n // for HeaderActions component\n canCreateIssue:\n issueType === TYPE_INCIDENT\n ? parseBoolean(headerActionsData.canCreateIncident)\n : parseBoolean(headerActionsData.canCreateIssue),\n canDestroyIssue: parseBoolean(headerActionsData.canDestroyIssue),\n canPromoteToEpic: parseBoolean(headerActionsData.canPromoteToEpic),\n canReopenIssue: parseBoolean(headerActionsData.canReopenIssue),\n canReportSpam: parseBoolean(headerActionsData.canReportSpam),\n canUpdateIssue: parseBoolean(headerActionsData.canUpdateIssue),\n isIssueAuthor: parseBoolean(headerActionsData.isIssueAuthor),\n issuePath: headerActionsData.issuePath,\n newIssuePath: headerActionsData.newIssuePath,\n projectPath: headerActionsData.projectPath,\n reportAbusePath: headerActionsData.reportAbusePath,\n reportedUserId: headerActionsData.reportedUserId,\n reportedFromUrl: headerActionsData.reportedFromUrl,\n submitAsSpamPath: headerActionsData.submitAsSpamPath,\n issuableEmailAddress: headerActionsData.issuableEmailAddress,\n },\n computed: {\n ...mapGetters(['getNoteableData']),\n },\n render(createElement) {\n return createElement(IssueApp, {\n props: {\n ...issuableData,\n author: {\n id: authorId,\n name: authorName,\n username: authorUsername,\n webUrl: authorWebUrl,\n },\n descriptionComponent: issueType === TYPE_INCIDENT ? IncidentTabs : DescriptionComponent,\n isConfidential: this.getNoteableData?.confidential,\n isLocked: this.getNoteableData?.discussion_locked,\n isImported: imported,\n issuableStatus: this.getNoteableData?.state,\n issuableType: issueType,\n issueId: this.getNoteableData?.id?.toString(),\n issueIid: this.getNoteableData?.iid?.toString(),\n showTitleBorder: issueType !== TYPE_INCIDENT,\n },\n });\n },\n });\n}\n\nexport function initSentryErrorStackTrace() {\n const el = document.querySelector('#js-sentry-error-stack-trace');\n\n if (!el) {\n return undefined;\n }\n\n const { issueStackTracePath } = el.dataset;\n\n return new Vue({\n el,\n name: 'SentryErrorStackTraceRoot',\n store: errorTrackingStore,\n render: (createElement) =>\n createElement(SentryErrorStackTrace, { props: { issueStackTracePath } }),\n });\n}\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_links.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_links.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlAlert,\n GlDisclosureDropdown,\n GlDisclosureDropdownItem,\n GlTooltipDirective,\n} from '@gitlab/ui';\nimport { isEmpty } from 'lodash';\nimport { s__ } from '~/locale';\nimport { createAlert } from '~/alert';\nimport { convertToGraphQLId, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_ISSUE, TYPENAME_WORK_ITEM } from '~/graphql_shared/constants';\nimport getIssueDetailsQuery from 'ee_else_ce/work_items/graphql/get_issue_details.query.graphql';\nimport { getParameterByName, setUrlParams, updateHistory } from '~/lib/utils/url_utility';\nimport CrudComponent from '~/vue_shared/components/crud_component.vue';\nimport {\n FORM_TYPES,\n WIDGET_ICONS,\n WORK_ITEM_STATUS_TEXT,\n TASKS_ANCHOR,\n DEFAULT_PAGE_SIZE_CHILD_ITEMS,\n DETAIL_VIEW_QUERY_PARAM_NAME,\n WORKITEM_LINKS_SHOWLABELS_LOCALSTORAGEKEY,\n WORKITEM_TREE_SHOWCLOSED_LOCALSTORAGEKEY,\n} from '../../constants';\nimport {\n findHierarchyWidgets,\n saveToggleToLocalStorage,\n getToggleFromLocalStorage,\n getItems,\n} from '../../utils';\nimport { removeHierarchyChild } from '../../graphql/cache_utils';\nimport getWorkItemTreeQuery from '../../graphql/work_item_tree.query.graphql';\nimport WorkItemChildrenLoadMore from '../shared/work_item_children_load_more.vue';\nimport WorkItemMoreActions from '../shared/work_item_more_actions.vue';\nimport WorkItemDetailModal from '../work_item_detail_modal.vue';\nimport WorkItemAbuseModal from '../work_item_abuse_modal.vue';\nimport WorkItemLinksForm from './work_item_links_form.vue';\nimport WorkItemChildrenWrapper from './work_item_children_wrapper.vue';\n\nexport default {\n components: {\n GlAlert,\n GlDisclosureDropdown,\n GlDisclosureDropdownItem,\n CrudComponent,\n WorkItemLinksForm,\n WorkItemDetailModal,\n WorkItemAbuseModal,\n WorkItemChildrenWrapper,\n WorkItemChildrenLoadMore,\n WorkItemMoreActions,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n inject: ['fullPath', 'reportAbusePath'],\n props: {\n issuableId: {\n type: Number,\n required: true,\n },\n issuableIid: {\n type: Number,\n required: true,\n },\n },\n apollo: {\n workItem: {\n query: getWorkItemTreeQuery,\n variables() {\n return {\n id: this.issuableGid,\n pageSize: DEFAULT_PAGE_SIZE_CHILD_ITEMS,\n endCursor: '',\n };\n },\n update(data) {\n return data.workItem ?? {};\n },\n skip() {\n return !this.issuableId;\n },\n error(e) {\n this.error = e.message || this.$options.i18n.fetchError;\n },\n async result() {\n const iid = getParameterByName('work_item_iid');\n const id = getParameterByName(DETAIL_VIEW_QUERY_PARAM_NAME);\n this.activeChild =\n this.children.find(\n (child) => getIdFromGraphQLId(child.id) === getIdFromGraphQLId(id) || child.iid === iid,\n ) ?? {};\n await this.$nextTick();\n if (!isEmpty(this.activeChild)) {\n this.$refs.modal.show();\n return;\n }\n this.updateQueryParam();\n if (this.hasNextPage && this.children.length === 0) {\n this.fetchNextPage();\n }\n },\n },\n parentIssue: {\n query: getIssueDetailsQuery,\n variables() {\n return {\n id: convertToGraphQLId(TYPENAME_ISSUE, this.issuableId),\n };\n },\n update: (data) => data.issue,\n },\n },\n data() {\n return {\n activeChild: {},\n error: undefined,\n parentIssue: null,\n formType: null,\n workItem: null,\n isReportModalOpen: false,\n reportedUserId: 0,\n reportedUrl: '',\n widgetName: TASKS_ANCHOR,\n showLabels: true,\n showClosed: true,\n fetchNextPageInProgress: false,\n disableContent: false,\n showLabelsLocalStorageKey: WORKITEM_LINKS_SHOWLABELS_LOCALSTORAGEKEY,\n showClosedLocalStorageKey: WORKITEM_TREE_SHOWCLOSED_LOCALSTORAGEKEY,\n };\n },\n computed: {\n confidential() {\n return this.parentIssue?.confidential || this.workItem?.confidential || false;\n },\n iid() {\n return String(this.issuableIid);\n },\n issuableIteration() {\n return this.parentIssue?.iteration;\n },\n issuableMilestone() {\n return this.parentIssue?.milestone;\n },\n hierarchyWidget() {\n return this.workItem ? findHierarchyWidgets(this.workItem.widgets) : {};\n },\n children() {\n return this.hierarchyWidget?.children?.nodes || [];\n },\n canUpdate() {\n return this.workItem?.userPermissions.updateWorkItem || false;\n },\n canAddTask() {\n return this.workItem?.userPermissions.adminParentLink || false;\n },\n // Only used for children for now but should be extended later to support parents and siblings\n isChildrenEmpty() {\n return this.children?.length === 0;\n },\n issuableGid() {\n return this.issuableId ? convertToGraphQLId(TYPENAME_WORK_ITEM, this.issuableId) : null;\n },\n isLoading() {\n return this.$apollo.queries.workItem.loading;\n },\n childrenIds() {\n return this.children.map((c) => c.id);\n },\n childrenCountLabel() {\n return this.isLoading && this.children.length === 0 ? '...' : this.children.length;\n },\n activeChildNamespaceFullPath() {\n return this.activeChild.namespace?.fullPath;\n },\n pageInfo() {\n return this.hierarchyWidget?.children?.pageInfo;\n },\n endCursor() {\n return this.pageInfo?.endCursor || '';\n },\n hasNextPage() {\n return this.pageInfo?.hasNextPage;\n },\n workItemType() {\n return this.workItem?.workItemType?.name || '';\n },\n hasAllChildItemsHidden() {\n const filterClosed = getItems(this.showClosed);\n return filterClosed(this.children).length === 0;\n },\n },\n mounted() {\n this.showLabels = getToggleFromLocalStorage(this.showLabelsLocalStorageKey);\n this.showClosed = getToggleFromLocalStorage(this.showClosedLocalStorageKey);\n },\n methods: {\n showAddForm(formType) {\n this.$refs.workItemsLinks.showForm();\n this.formType = formType;\n this.$nextTick(() => {\n this.$refs.wiLinksForm.$refs.wiTitleInput?.$el.focus();\n });\n },\n hideAddForm() {\n this.$refs.workItemsLinks.hideForm();\n },\n openChild({ event, child }) {\n event.preventDefault();\n this.activeChild = child;\n this.$refs.modal.show();\n this.updateQueryParam(child.id);\n },\n async closeModal() {\n this.updateQueryParam();\n },\n handleWorkItemDeleted(child) {\n const { defaultClient: cache } = this.$apollo.provider.clients;\n removeHierarchyChild({\n cache,\n fullPath: this.fullPath,\n iid: this.iid,\n workItem: child,\n });\n this.$toast.show(s__('WorkItem|Task deleted'));\n },\n updateQueryParam(id) {\n updateHistory({\n url: setUrlParams({ [DETAIL_VIEW_QUERY_PARAM_NAME]: getIdFromGraphQLId(id) }),\n replace: true,\n });\n },\n toggleReportAbuseModal(isOpen, reply = {}) {\n this.isReportModalOpen = isOpen;\n this.reportedUrl = reply.url;\n this.reportedUserId = reply.author ? getIdFromGraphQLId(reply.author.id) : 0;\n },\n openReportAbuseModal(reply) {\n this.toggleReportAbuseModal(true, reply);\n },\n toggleShowLabels() {\n this.showLabels = !this.showLabels;\n saveToggleToLocalStorage(this.showLabelsLocalStorageKey, this.showLabels);\n },\n toggleShowClosed() {\n this.showClosed = !this.showClosed;\n saveToggleToLocalStorage(this.showClosedLocalStorageKey, this.showClosed);\n },\n setShowLabelsFromLocalStorage() {},\n async fetchNextPage() {\n if (this.hasNextPage && !this.fetchNextPageInProgress) {\n this.fetchNextPageInProgress = true;\n try {\n await this.$apollo.queries.workItem.fetchMore({\n variables: {\n endCursor: this.endCursor,\n },\n });\n } catch (error) {\n createAlert({\n message: s__('Hierarchy|Something went wrong while fetching children.'),\n captureError: true,\n error,\n });\n } finally {\n this.fetchNextPageInProgress = false;\n }\n }\n },\n },\n i18n: {\n title: s__('WorkItem|Child items'),\n fetchError: s__(\n 'WorkItem|Something went wrong when fetching child items. Please refresh this page.',\n ),\n emptyStateMessage: s__(\n 'WorkItem|No child items are currently assigned. Use child items to break down this issue into smaller parts.',\n ),\n addChildButtonLabel: s__('WorkItem|Add'),\n addChildOptionLabel: s__('WorkItem|Existing task'),\n createChildOptionLabel: s__('WorkItem|New task'),\n noChildItemsOpen: s__('WorkItem|No child items are currently open.'),\n },\n WIDGET_TYPE_TASK_ICON: WIDGET_ICONS.TASK,\n WORK_ITEM_STATUS_TEXT,\n FORM_TYPES,\n};\n</script>\n\n<template>\n <crud-component\n ref=\"workItemsLinks\"\n :anchor-id=\"widgetName\"\n :title=\"$options.i18n.title\"\n :icon=\"$options.WIDGET_TYPE_TASK_ICON\"\n :count=\"childrenCountLabel\"\n :is-loading=\"isLoading && !fetchNextPageInProgress\"\n is-collapsible\n data-testid=\"work-item-links\"\n >\n <template #actions>\n <gl-disclosure-dropdown\n v-if=\"canUpdate && canAddTask\"\n placement=\"bottom-end\"\n size=\"small\"\n :toggle-text=\"$options.i18n.addChildButtonLabel\"\n data-testid=\"toggle-form\"\n >\n <gl-disclosure-dropdown-item\n data-testid=\"toggle-create-form\"\n @action=\"showAddForm($options.FORM_TYPES.create)\"\n >\n <template #list-item>\n {{ $options.i18n.createChildOptionLabel }}\n </template>\n </gl-disclosure-dropdown-item>\n <gl-disclosure-dropdown-item\n data-testid=\"toggle-add-form\"\n @action=\"showAddForm($options.FORM_TYPES.add)\"\n >\n <template #list-item>\n {{ $options.i18n.addChildOptionLabel }}\n </template>\n </gl-disclosure-dropdown-item>\n </gl-disclosure-dropdown>\n <work-item-more-actions\n :work-item-iid=\"iid\"\n :full-path=\"fullPath\"\n :work-item-type=\"workItemType\"\n :show-labels=\"showLabels\"\n :show-closed=\"showClosed\"\n :show-view-roadmap-action=\"false\"\n @toggle-show-labels=\"toggleShowLabels\"\n @toggle-show-closed=\"toggleShowClosed\"\n />\n </template>\n\n <template v-if=\"isChildrenEmpty && !error\" #empty>\n {{ $options.i18n.emptyStateMessage }}\n </template>\n\n <template #form>\n <work-item-links-form\n ref=\"wiLinksForm\"\n data-testid=\"add-links-form\"\n :full-path=\"fullPath\"\n :full-name=\"workItem.namespace.fullName\"\n :is-group=\"false\"\n :issuable-gid=\"issuableGid\"\n :work-item-iid=\"iid\"\n :children-ids=\"childrenIds\"\n :parent-confidential=\"confidential\"\n :parent-iteration=\"issuableIteration\"\n :parent-milestone=\"issuableMilestone\"\n :form-type=\"formType\"\n :parent-work-item-type=\"workItemType\"\n @update-in-progress=\"disableContent = $event\"\n @cancel=\"hideAddForm\"\n />\n </template>\n\n <template #default>\n <gl-alert v-if=\"error\" variant=\"danger\" @dismiss=\"error = undefined\">\n {{ error }}\n </gl-alert>\n <div v-if=\"!hasAllChildItemsHidden\" class=\"!gl-px-3 gl-pb-3 gl-pt-2\">\n <work-item-children-wrapper\n v-if=\"workItem\"\n :children=\"children\"\n :parent=\"workItem\"\n :can-update=\"canUpdate\"\n :full-path=\"fullPath\"\n :work-item-id=\"issuableGid\"\n :work-item-iid=\"iid\"\n :show-labels=\"showLabels\"\n :show-closed=\"showClosed\"\n :disable-content=\"disableContent\"\n :has-indirect-children=\"false\"\n @error=\"error = $event\"\n @show-modal=\"openChild\"\n />\n <work-item-children-load-more\n v-if=\"hasNextPage\"\n data-testid=\"work-item-load-more\"\n :fetch-next-page-in-progress=\"fetchNextPageInProgress\"\n @fetch-next-page=\"fetchNextPage\"\n />\n </div>\n <work-item-detail-modal\n ref=\"modal\"\n :work-item-id=\"activeChild.id\"\n :work-item-iid=\"activeChild.iid\"\n :work-item-full-path=\"activeChildNamespaceFullPath\"\n @close=\"closeModal\"\n @workItemDeleted=\"handleWorkItemDeleted(activeChild)\"\n @openReportAbuse=\"openReportAbuseModal\"\n />\n <work-item-abuse-modal\n v-if=\"isReportModalOpen && reportAbusePath\"\n :show-modal=\"isReportModalOpen\"\n :reported-user-id=\"reportedUserId\"\n :reported-from-url=\"reportedUrl\"\n @close-modal=\"toggleReportAbuseModal(false)\"\n />\n\n <div\n v-if=\"hasAllChildItemsHidden\"\n class=\"gl-text-subtle\"\n data-testid=\"work-item-no-child-items-open\"\n >\n {{ $options.i18n.noChildItemsOpen }}\n </div>\n </template>\n </crud-component>\n</template>\n","import { render, staticRenderFns } from \"./work_item_links.vue?vue&type=template&id=42e0c243\"\nimport script from \"./work_item_links.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_links.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('crud-component',{ref:\"workItemsLinks\",attrs:{\"anchor-id\":_vm.widgetName,\"title\":_vm.$options.i18n.title,\"icon\":_vm.$options.WIDGET_TYPE_TASK_ICON,\"count\":_vm.childrenCountLabel,\"is-loading\":_vm.isLoading && !_vm.fetchNextPageInProgress,\"is-collapsible\":\"\",\"data-testid\":\"work-item-links\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [(_vm.canUpdate && _vm.canAddTask)?_c('gl-disclosure-dropdown',{attrs:{\"placement\":\"bottom-end\",\"size\":\"small\",\"toggle-text\":_vm.$options.i18n.addChildButtonLabel,\"data-testid\":\"toggle-form\"}},[_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"toggle-create-form\"},on:{\"action\":function($event){return _vm.showAddForm(_vm.$options.FORM_TYPES.create)}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.createChildOptionLabel)+\"\\n \")]},proxy:true}],null,false,3863648891)}),_vm._v(\" \"),_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"toggle-add-form\"},on:{\"action\":function($event){return _vm.showAddForm(_vm.$options.FORM_TYPES.add)}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.addChildOptionLabel)+\"\\n \")]},proxy:true}],null,false,1469908318)})],1):_vm._e(),_vm._v(\" \"),_c('work-item-more-actions',{attrs:{\"work-item-iid\":_vm.iid,\"full-path\":_vm.fullPath,\"work-item-type\":_vm.workItemType,\"show-labels\":_vm.showLabels,\"show-closed\":_vm.showClosed,\"show-view-roadmap-action\":false},on:{\"toggle-show-labels\":_vm.toggleShowLabels,\"toggle-show-closed\":_vm.toggleShowClosed}})]},proxy:true},(_vm.isChildrenEmpty && !_vm.error)?{key:\"empty\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.emptyStateMessage)+\"\\n \")]},proxy:true}:null,{key:\"form\",fn:function(){return [_c('work-item-links-form',{ref:\"wiLinksForm\",attrs:{\"data-testid\":\"add-links-form\",\"full-path\":_vm.fullPath,\"full-name\":_vm.workItem.namespace.fullName,\"is-group\":false,\"issuable-gid\":_vm.issuableGid,\"work-item-iid\":_vm.iid,\"children-ids\":_vm.childrenIds,\"parent-confidential\":_vm.confidential,\"parent-iteration\":_vm.issuableIteration,\"parent-milestone\":_vm.issuableMilestone,\"form-type\":_vm.formType,\"parent-work-item-type\":_vm.workItemType},on:{\"update-in-progress\":function($event){_vm.disableContent = $event},\"cancel\":_vm.hideAddForm}})]},proxy:true},{key:\"default\",fn:function(){return [(_vm.error)?_c('gl-alert',{attrs:{\"variant\":\"danger\"},on:{\"dismiss\":function($event){_vm.error = undefined}}},[_vm._v(\"\\n \"+_vm._s(_vm.error)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.hasAllChildItemsHidden)?_c('div',{staticClass:\"!gl-px-3 gl-pb-3 gl-pt-2\"},[(_vm.workItem)?_c('work-item-children-wrapper',{attrs:{\"children\":_vm.children,\"parent\":_vm.workItem,\"can-update\":_vm.canUpdate,\"full-path\":_vm.fullPath,\"work-item-id\":_vm.issuableGid,\"work-item-iid\":_vm.iid,\"show-labels\":_vm.showLabels,\"show-closed\":_vm.showClosed,\"disable-content\":_vm.disableContent,\"has-indirect-children\":false},on:{\"error\":function($event){_vm.error = $event},\"show-modal\":_vm.openChild}}):_vm._e(),_vm._v(\" \"),(_vm.hasNextPage)?_c('work-item-children-load-more',{attrs:{\"data-testid\":\"work-item-load-more\",\"fetch-next-page-in-progress\":_vm.fetchNextPageInProgress},on:{\"fetch-next-page\":_vm.fetchNextPage}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('work-item-detail-modal',{ref:\"modal\",attrs:{\"work-item-id\":_vm.activeChild.id,\"work-item-iid\":_vm.activeChild.iid,\"work-item-full-path\":_vm.activeChildNamespaceFullPath},on:{\"close\":_vm.closeModal,\"workItemDeleted\":function($event){return _vm.handleWorkItemDeleted(_vm.activeChild)},\"openReportAbuse\":_vm.openReportAbuseModal}}),_vm._v(\" \"),(_vm.isReportModalOpen && _vm.reportAbusePath)?_c('work-item-abuse-modal',{attrs:{\"show-modal\":_vm.isReportModalOpen,\"reported-user-id\":_vm.reportedUserId,\"reported-from-url\":_vm.reportedUrl},on:{\"close-modal\":function($event){return _vm.toggleReportAbuseModal(false)}}}):_vm._e(),_vm._v(\" \"),(_vm.hasAllChildItemsHidden)?_c('div',{staticClass:\"gl-text-subtle\",attrs:{\"data-testid\":\"work-item-no-child-items-open\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.noChildItemsOpen)+\"\\n \")]):_vm._e()]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport { GlToast } from '@gitlab/ui';\nimport { apolloProvider } from '~/graphql_shared/issuable_client';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport WorkItemLinks from './work_item_links.vue';\n\nVue.use(GlToast);\n\nexport default function initWorkItemLinks() {\n const workItemLinksRoot = document.querySelector('.js-work-item-links-root');\n\n if (!workItemLinksRoot) {\n return null;\n }\n\n const {\n fullPath,\n registerPath,\n signInPath,\n wiCanAdminLabel,\n wiGroupPath,\n wiHasIssueWeightsFeature,\n wiHasIterationsFeature,\n wiHasIssuableHealthStatusFeature,\n wiIssuesListPath,\n wiLabelsManagePath,\n wiNewCommentTemplatePaths,\n wiReportAbusePath,\n hasLinkedItemsEpicsFeature,\n } = workItemLinksRoot.dataset;\n\n return new Vue({\n el: workItemLinksRoot,\n name: 'WorkItemLinksRoot',\n apolloProvider,\n provide: {\n fullPath,\n registerPath,\n signInPath,\n // for work item modal\n canAdminLabel: wiCanAdminLabel,\n groupPath: wiGroupPath,\n hasIssueWeightsFeature: wiHasIssueWeightsFeature,\n hasIterationsFeature: wiHasIterationsFeature,\n hasIssuableHealthStatusFeature: wiHasIssuableHealthStatusFeature,\n issuesListPath: wiIssuesListPath,\n labelsManagePath: wiLabelsManagePath,\n newCommentTemplatePaths: JSON.parse(wiNewCommentTemplatePaths),\n reportAbusePath: wiReportAbusePath,\n hasLinkedItemsEpicsFeature: parseBoolean(hasLinkedItemsEpicsFeature),\n },\n render: (createElement) =>\n createElement(WorkItemLinks, {\n props: {\n issuableId: parseInt(workItemLinksRoot.dataset.issuableId, 10),\n issuableIid: parseInt(workItemLinksRoot.dataset.issuableIid, 10),\n },\n }),\n });\n}\n","import $ from 'jquery';\nimport IssuableForm from 'ee_else_ce/issuable/issuable_form';\nimport IssuableLabelSelector from '~/issuable/issuable_label_selector';\nimport { addShortcutsExtension } from '~/behaviors/shortcuts';\nimport ShortcutsIssuable from '~/behaviors/shortcuts/shortcuts_issuable';\nimport ShortcutsNavigation from '~/behaviors/shortcuts/shortcuts_navigation';\nimport { initIssuableSidebar } from '~/issuable';\nimport Issue from '~/issues/issue';\nimport { initTitleSuggestions, initTypePopover, initTypeSelect } from '~/issues/new';\nimport { initRelatedMergeRequests } from '~/issues/related_merge_requests';\nimport { initRelatedIssues } from '~/related_issues';\nimport { initIssuableApp, initSentryErrorStackTrace } from '~/issues/show';\nimport LabelsSelect from '~/labels/labels_select';\nimport initNotesApp from '~/notes';\nimport { store } from '~/notes/stores';\nimport { mountMilestoneDropdown } from '~/sidebar/mount_sidebar';\nimport initSidebarBundle from '~/sidebar/sidebar_bundle';\nimport initWorkItemLinks from '~/work_items/components/work_item_links';\nimport ZenMode from '~/zen_mode';\nimport initAwardsApp from '~/emoji/awards_app';\n\nexport function initForm() {\n new IssuableForm($('.issue-form')); // eslint-disable-line no-new\n IssuableLabelSelector();\n new LabelsSelect(); // eslint-disable-line no-new\n addShortcutsExtension(ShortcutsNavigation);\n\n initTitleSuggestions();\n initTypePopover();\n initTypeSelect();\n mountMilestoneDropdown();\n\n if (gon.features.workItemsViewPreference) {\n import(/* webpackChunkName: 'work_items_feedback' */ '~/work_items_feedback')\n .then(({ initWorkItemsFeedback }) => {\n initWorkItemsFeedback();\n })\n .catch({});\n }\n}\n\nexport function initShow() {\n new Issue(); // eslint-disable-line no-new\n addShortcutsExtension(ShortcutsIssuable);\n new ZenMode(); // eslint-disable-line no-new\n\n initAwardsApp(document.getElementById('js-vue-awards-block'));\n initIssuableApp(store);\n initIssuableSidebar();\n initNotesApp();\n initRelatedIssues();\n initRelatedMergeRequests();\n initSentryErrorStackTrace();\n initSidebarBundle(store);\n initWorkItemLinks();\n\n import(/* webpackChunkName: 'design_management' */ '~/design_management')\n .then((module) => module.default())\n .catch(() => {});\n\n if (gon.features.workItemsViewPreference) {\n import(/* webpackChunkName: 'work_items_feedback' */ '~/work_items_feedback')\n .then(({ initWorkItemsFeedback }) => {\n initWorkItemsFeedback();\n })\n .catch({});\n }\n}\n","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport createDefaultClient from '~/lib/graphql';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport TitleSuggestions from './components/title_suggestions.vue';\nimport TypePopover from './components/type_popover.vue';\nimport TypeSelect from './components/type_select.vue';\n\nexport function initTitleSuggestions() {\n const el = document.getElementById('js-suggestions');\n const issueTitle = document.getElementById('issue_title');\n\n if (!el) {\n return undefined;\n }\n\n Vue.use(VueApollo);\n\n const apolloProvider = new VueApollo({\n defaultClient: createDefaultClient(),\n });\n\n return new Vue({\n el,\n name: 'TitleSuggestionsRoot',\n apolloProvider,\n data() {\n return {\n search: issueTitle.value,\n };\n },\n mounted() {\n issueTitle.addEventListener('input', () => {\n this.search = issueTitle.value;\n });\n },\n render(createElement) {\n return createElement(TitleSuggestions, {\n props: {\n projectPath: el.dataset.projectPath,\n search: this.search,\n },\n });\n },\n });\n}\n\nexport function initTypePopover() {\n const el = document.getElementById('js-type-popover');\n\n if (!el) {\n return undefined;\n }\n\n return new Vue({\n el,\n name: 'TypePopoverRoot',\n render: (createElement) => createElement(TypePopover),\n });\n}\n\nexport function initTypeSelect() {\n const el = document.getElementById('js-type-select');\n\n if (!el) {\n return undefined;\n }\n\n const { selectedType, isIssueAllowed, isIncidentAllowed, issuePath, incidentPath } = el.dataset;\n\n return new Vue({\n el,\n name: 'TypeSelectRoot',\n render: (createElement) =>\n createElement(TypeSelect, {\n props: {\n selectedType,\n isIssueAllowed: parseBoolean(isIssueAllowed),\n isIncidentAllowed: parseBoolean(isIncidentAllowed),\n issuePath,\n incidentPath,\n },\n }),\n });\n}\n","import Vue from 'vue';\nimport { apolloProvider } from '~/graphql_shared/issuable_client';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport RelatedIssuesRoot from './components/related_issues_root.vue';\n\nexport function initRelatedIssues() {\n const el = document.querySelector('.js-related-issues-root');\n\n if (!el) {\n return null;\n }\n\n return new Vue({\n el,\n name: 'RelatedIssuesRoot',\n apolloProvider,\n provide: {\n fullPath: el.dataset.fullPath,\n hasIssueWeightsFeature: parseBoolean(el.dataset.hasIssueWeightsFeature),\n hasIterationsFeature: parseBoolean(el.dataset.hasIterationsFeature),\n isGroup: parseBoolean(el.dataset.isGroup),\n // for work item modal\n canAdminLabel: el.dataset.wiCanAdminLabel,\n groupPath: el.dataset.wiGroupPath,\n issuesListPath: el.dataset.wiIssuesListPath,\n labelsManagePath: el.dataset.wiLabelsManagePath,\n reportAbusePath: el.dataset.wiReportAbusePath,\n },\n render: (createElement) =>\n createElement(RelatedIssuesRoot, {\n props: {\n endpoint: el.dataset.endpoint,\n canAdmin: parseBoolean(el.dataset.canAddRelatedIssues),\n helpPath: el.dataset.helpPath,\n showCategorizedIssues: parseBoolean(el.dataset.showCategorizedIssues),\n issuableType: el.dataset.issuableType,\n autoCompleteEpics: false,\n },\n }),\n });\n}\n","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport createDefaultClient from '~/lib/graphql';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport RelatedMergeRequests from './components/related_merge_requests.vue';\n\nexport function initRelatedMergeRequests() {\n const el = document.querySelector('#js-related-merge-requests');\n\n if (!el) {\n return undefined;\n }\n Vue.use(VueApollo);\n\n const { hasClosingMergeRequest, projectPath, iid } = el.dataset;\n const apolloProvider = new VueApollo({\n defaultClient: createDefaultClient(),\n });\n\n return new Vue({\n apolloProvider,\n el,\n name: 'RelatedMergeRequestsRoot',\n render: (createElement) =>\n createElement(RelatedMergeRequests, {\n props: {\n hasClosingMergeRequest: parseBoolean(hasClosingMergeRequest),\n projectPath,\n iid,\n },\n }),\n });\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"DeleteIssuableResourceLink\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableResourceLinkDestroyInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableResourceLinkDestroy\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableResourceLink\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":187}};\n doc.loc.source = {\"body\":\"mutation DeleteIssuableResourceLink($input: IssuableResourceLinkDestroyInput!) {\\n issuableResourceLinkDestroy(input: $input) {\\n issuableResourceLink {\\n id\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"DeleteIssuableResourceLink\"] = oneQuery(doc, \"DeleteIssuableResourceLink\");\n \n","var asciiSize = require('./_asciiSize'),\n hasUnicode = require('./_hasUnicode'),\n unicodeSize = require('./_unicodeSize');\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nmodule.exports = stringSize;\n","export const PERFORMANCE_TYPE_MARK = 'mark';\nexport const PERFORMANCE_TYPE_MEASURE = 'measure';\n\n//\n// SNIPPET namespace\n//\n\n// Marks\nexport const SNIPPET_MARK_VIEW_APP_START = 'snippet-view-app-start';\nexport const SNIPPET_MARK_EDIT_APP_START = 'snippet-edit-app-start';\nexport const SNIPPET_MARK_BLOBS_CONTENT = 'snippet-blobs-content-finished';\n\n// Measures\nexport const SNIPPET_MEASURE_BLOBS_CONTENT = 'snippet-blobs-content';\n\n//\n// WebIDE namespace\n//\n\n// Marks\nexport const WEBIDE_MARK_APP_START = 'webide-app-start';\nexport const WEBIDE_MARK_FILE_CLICKED = 'webide-file-clicked';\nexport const WEBIDE_MARK_FILE_FINISH = 'webide-file-finished';\nexport const WEBIDE_MARK_REPO_EDITOR_START = 'webide-init-editor-start';\nexport const WEBIDE_MARK_REPO_EDITOR_FINISH = 'webide-init-editor-finish';\nexport const WEBIDE_MARK_FETCH_BRANCH_DATA_START = 'webide-getBranchData-start';\nexport const WEBIDE_MARK_FETCH_BRANCH_DATA_FINISH = 'webide-getBranchData-finish';\nexport const WEBIDE_MARK_FETCH_FILE_DATA_START = 'webide-getFileData-start';\nexport const WEBIDE_MARK_FETCH_FILE_DATA_FINISH = 'webide-getFileData-finish';\nexport const WEBIDE_MARK_FETCH_FILES_START = 'webide-getFiles-start';\nexport const WEBIDE_MARK_FETCH_FILES_FINISH = 'webide-getFiles-finish';\nexport const WEBIDE_MARK_FETCH_PROJECT_DATA_START = 'webide-getProjectData-start';\nexport const WEBIDE_MARK_FETCH_PROJECT_DATA_FINISH = 'webide-getProjectData-finish';\n\n// Measures\nexport const WEBIDE_MEASURE_FILE_AFTER_INTERACTION = 'webide-file-loading-after-interaction';\nexport const WEBIDE_MEASURE_FETCH_PROJECT_DATA = 'WebIDE: Project data';\nexport const WEBIDE_MEASURE_FETCH_BRANCH_DATA = 'WebIDE: Branch data';\nexport const WEBIDE_MEASURE_FETCH_FILE_DATA = 'WebIDE: File data';\nexport const WEBIDE_MEASURE_BEFORE_VUE = 'WebIDE: Before Vue app';\nexport const WEBIDE_MEASURE_REPO_EDITOR = 'WebIDE: Repo Editor';\nexport const WEBIDE_MEASURE_FETCH_FILES = 'WebIDE: Fetch Files';\n\n//\n// MR Diffs namespace\n//\n\n// Marks\nexport const MR_DIFFS_MARK_FILE_TREE_START = 'mr-diffs-mark-file-tree-start';\nexport const MR_DIFFS_MARK_FILE_TREE_END = 'mr-diffs-mark-file-tree-end';\nexport const MR_DIFFS_MARK_DIFF_FILES_START = 'mr-diffs-mark-diff-files-start';\nexport const MR_DIFFS_MARK_FIRST_DIFF_FILE_SHOWN = 'mr-diffs-mark-first-diff-file-shown';\nexport const MR_DIFFS_MARK_DIFF_FILES_END = 'mr-diffs-mark-diff-files-end';\n\n// Measures\nexport const MR_DIFFS_MEASURE_FILE_TREE_DONE = 'mr-diffs-measure-file-tree-done';\nexport const MR_DIFFS_MEASURE_DIFF_FILES_DONE = 'mr-diffs-measure-diff-files-done';\n\n//\n// Pipelines Detail namespace\n//\n\n// Marks\nexport const PIPELINES_DETAIL_LINKS_MARK_CALCULATE_START =\n 'pipelines-detail-links-mark-calculate-start';\nexport const PIPELINES_DETAIL_LINKS_MARK_CALCULATE_END =\n 'pipelines-detail-links-mark-calculate-end';\n\n// Measures\nexport const PIPELINES_DETAIL_LINKS_MEASURE_CALCULATION =\n 'Pipelines Detail Graph: Links Calculation';\n\n// Metrics\n// Note: These strings must match the backend\n// (defined in: app/services/ci/prometheus_metrics/observe_histograms_service.rb)\nexport const PIPELINES_DETAIL_LINK_DURATION = 'pipeline_graph_link_calculation_duration_seconds';\nexport const PIPELINES_DETAIL_LINKS_TOTAL = 'pipeline_graph_links_total';\nexport const PIPELINES_DETAIL_LINKS_JOB_RATIO = 'pipeline_graph_links_per_job_ratio';\n\n//\n// REPO BROWSER NAMESPACE\n//\n\n// Marks\nexport const REPO_BLOB_LOAD_VIEWER_START = 'blobviewer-load-viewer-start';\nexport const REPO_BLOB_SWITCH_TO_VIEWER_START = 'blobviewer-switch-to-viewerr-start';\nexport const REPO_BLOB_LOAD_VIEWER_FINISH = 'blobviewer-load-viewer-finish';\n\n// Measures\nexport const REPO_BLOB_LOAD_VIEWER = 'Repository File Viewer: loading the viewer';\nexport const REPO_BLOB_SWITCH_VIEWER = 'Repository File Viewer: switching the viewer';\n\n//\n// DESIGN MANAGEMENT NAMESPACE\n//\n\n// Marks\nexport const DESIGN_MARK_APP_START = 'design-app-start';\n\n// Measures\nexport const DESIGN_MEASURE_BEFORE_APP = 'Design Management: Before the Vue app';\nexport const DESIGN_MAIN_IMAGE_OUTPUT = 'Design Management: Single image preview';\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-modal',{attrs:{\"action-cancel\":_vm.$options.actionCancel,\"action-primary\":_vm.actionPrimary,\"modal-id\":_vm.modalId,\"size\":\"sm\",\"title\":_vm.title},on:{\"primary\":_vm.submitForm}},[_c('form',{ref:\"form\",attrs:{\"action\":_vm.issuePath,\"method\":\"post\"}},[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"_method\",\"value\":\"delete\"}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"authenticity_token\"},domProps:{\"value\":_vm.$options.csrf.token}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"destroy_confirm\",\"value\":\"true\"}}),_vm._v(\"\\n \"+_vm._s(_vm.bodyText)+\"\\n \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete_issue_modal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete_issue_modal.vue?vue&type=script&lang=js\"","<script>\nimport { GlModal } from '@gitlab/ui';\nimport { TYPE_EPIC } from '~/issues/constants';\nimport csrf from '~/lib/utils/csrf';\nimport { capitalizeFirstCharacter } from '~/lib/utils/text_utility';\nimport { __, sprintf } from '~/locale';\n\nexport default {\n actionCancel: { text: __('Cancel') },\n csrf,\n components: {\n GlModal,\n },\n props: {\n issuePath: {\n type: String,\n required: false,\n default: '',\n },\n issueType: {\n type: String,\n required: true,\n },\n modalId: {\n type: String,\n required: true,\n },\n title: {\n type: String,\n required: true,\n },\n },\n computed: {\n actionPrimary() {\n return {\n attributes: {\n variant: 'danger',\n 'data-testid': 'confirm-delete-issue-button',\n },\n text: this.title,\n };\n },\n bodyText() {\n return this.issueType.toLowerCase() === TYPE_EPIC\n ? __('Delete this epic and release all child items?')\n : sprintf(__('%{issuableType} will be removed! Are you sure?'), {\n issuableType: capitalizeFirstCharacter(this.issueType),\n });\n },\n },\n methods: {\n submitForm() {\n this.$emit('delete');\n this.$refs.form.submit();\n },\n },\n};\n</script>\n\n<template>\n <gl-modal\n :action-cancel=\"$options.actionCancel\"\n :action-primary=\"actionPrimary\"\n :modal-id=\"modalId\"\n size=\"sm\"\n :title=\"title\"\n @primary=\"submitForm\"\n >\n <form ref=\"form\" :action=\"issuePath\" method=\"post\">\n <input type=\"hidden\" name=\"_method\" value=\"delete\" />\n <input type=\"hidden\" name=\"authenticity_token\" :value=\"$options.csrf.token\" />\n <input type=\"hidden\" name=\"destroy_confirm\" value=\"true\" />\n {{ bodyText }}\n </form>\n </gl-modal>\n</template>\n","import { render, staticRenderFns } from \"./delete_issue_modal.vue?vue&type=template&id=147d6dc5\"\nimport script from \"./delete_issue_modal.vue?vue&type=script&lang=js\"\nexport * from \"./delete_issue_modal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.isLink ? 'gl-link' : 'span',{tag:\"component\",attrs:{\"href\":_vm.href}},[_c(_vm.wrapperComponent,{ref:\"wrapperRef\",tag:\"component\",class:_vm.wrapperComponentClass,attrs:{\"data-testid\":_vm.anchorId}},[_vm._t(\"icon\",function(){return [(_vm.iconName)?_c('gl-icon',{class:_vm.iconClass,attrs:{\"name\":_vm.iconName,\"data-testid\":`${_vm.anchorId}-icon`}}):_vm._e()]}),_vm._v(\" \"),_vm._t(\"title\",function(){return [(_vm.title)?_c('span',{class:_vm.titleComponentClass,attrs:{\"data-testid\":`${_vm.anchorId}-title`}},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")]):_vm._e()]})],2),_vm._v(\" \"),_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.wrapperRef,\"placement\":_vm.tooltipPlacement}},[_vm._t(\"tooltip-text\",function(){return [(_vm.tooltipText)?[_vm._v(\"\\n \"+_vm._s(_vm.tooltipText)+\"\\n \")]:_vm._e()]})],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_attribute.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_attribute.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltip, GlIcon, GlLink } from '@gitlab/ui';\n\nexport default {\n components: {\n GlTooltip,\n GlIcon,\n GlLink,\n },\n props: {\n anchorId: {\n type: String,\n required: false,\n default: '',\n },\n wrapperComponent: {\n type: String,\n required: false,\n default: 'span',\n },\n wrapperComponentClass: {\n type: String,\n required: false,\n default: '',\n },\n title: {\n type: String,\n required: false,\n default: '',\n },\n titleComponentClass: {\n type: String,\n required: false,\n default: '',\n },\n iconName: {\n type: String,\n required: false,\n default: '',\n },\n iconClass: {\n type: String,\n required: false,\n default: '',\n },\n tooltipText: {\n type: String,\n required: false,\n default: '',\n },\n tooltipPlacement: {\n type: String,\n required: false,\n default: 'bottom',\n },\n isLink: {\n type: Boolean,\n required: false,\n default: false,\n },\n href: {\n type: String,\n required: false,\n default: '',\n },\n },\n};\n</script>\n\n<template>\n <component :is=\"isLink ? 'gl-link' : 'span'\" :href=\"href\">\n <!-- wrapper -->\n <component\n :is=\"wrapperComponent\"\n ref=\"wrapperRef\"\n :class=\"wrapperComponentClass\"\n :data-testid=\"anchorId\"\n >\n <!-- icon -->\n <slot name=\"icon\">\n <gl-icon\n v-if=\"iconName\"\n :class=\"iconClass\"\n :name=\"iconName\"\n :data-testid=\"`${anchorId}-icon`\"\n />\n </slot>\n <!-- title -->\n <slot name=\"title\">\n <span v-if=\"title\" :class=\"titleComponentClass\" :data-testid=\"`${anchorId}-title`\">\n {{ title }}\n </span>\n </slot>\n </component>\n <!-- tooltip -->\n <gl-tooltip :target=\"() => $refs.wrapperRef\" :placement=\"tooltipPlacement\">\n <slot name=\"tooltip-text\">\n <template v-if=\"tooltipText\">\n {{ tooltipText }}\n </template>\n </slot>\n </gl-tooltip>\n </component>\n</template>\n","import { render, staticRenderFns } from \"./work_item_attribute.vue?vue&type=template&id=01c1b9ee\"\nimport script from \"./work_item_attribute.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_attribute.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"MilestoneFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Milestone\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"expired\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":107}};\n doc.loc.source = {\"body\":\"fragment MilestoneFragment on Milestone {\\n expired\\n id\\n title\\n state\\n startDate\\n dueDate\\n webPath\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"MilestoneFragment\"] = oneQuery(doc, \"MilestoneFragment\");\n \n","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nmodule.exports = snakeCase;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemMove\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemsHierarchyReorderInput\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"defaultValue\":{\"kind\":\"IntValue\",\"value\":\"100\"},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"endCursor\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"defaultValue\":{\"kind\":\"StringValue\",\"value\":\"\",\"block\":false},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemsHierarchyReorder\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemHierarchy\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parentWorkItem\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemHierarchy\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":332}};\n doc.loc.source = {\"body\":\"#import \\\"./work_item_hierarchy.fragment.graphql\\\"\\n\\nmutation workItemMove(\\n $input: workItemsHierarchyReorderInput!\\n $pageSize: Int = 100\\n $endCursor: String = \\\"\\\"\\n) {\\n workItemsHierarchyReorder(input: $input) {\\n workItem {\\n ...WorkItemHierarchy\\n }\\n parentWorkItem {\\n ...WorkItemHierarchy\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./work_item_hierarchy.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"workItemMove\"] = oneQuery(doc, \"workItemMove\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ReviewersApplicableApprovalRules\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UserMergeRequestInteraction\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"applicableApprovalRules\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":116}};\n doc.loc.source = {\"body\":\"fragment ReviewersApplicableApprovalRules on UserMergeRequestInteraction {\\n applicableApprovalRules {\\n id\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"ReviewersApplicableApprovalRules\"] = oneQuery(doc, \"ReviewersApplicableApprovalRules\");\n \n","import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlButtonGroup',\n props: {\n /**\n * When set, rendered the button group in vertical mode.\n */\n vertical: {\n type: Boolean,\n required: false,\n default: false\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._g({class:!_vm.vertical ? 'btn-group' : 'btn-group-vertical',attrs:{\"role\":\"group\"}},_vm.$listeners),[_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./new_issue_dropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./new_issue_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlButtonGroup,\n GlButton,\n GlDisclosureDropdown,\n GlDisclosureDropdownItem,\n} from '@gitlab/ui';\nimport { __, s__ } from '~/locale';\nimport { sprintfWorkItem, WORK_ITEM_TYPE_ENUM_OBJECTIVE } from '~/work_items/constants';\n\nexport default {\n WORK_ITEM_TYPE_ENUM_OBJECTIVE,\n i18n: {\n newIssueLabel: __('New issue'),\n toggleSrText: __('Issue type'),\n newObjectiveLabel: sprintfWorkItem(s__('WorkItem|New %{workItemType}')),\n },\n components: {\n GlDisclosureDropdown,\n GlDisclosureDropdownItem,\n GlButton,\n GlButtonGroup,\n CreateWorkItemModal: () => import('~/work_items/components/create_work_item_modal.vue'),\n },\n inject: ['newIssuePath'],\n data() {\n return {\n newIssueItem: {\n text: this.$options.i18n.newIssueLabel,\n href: this.newIssuePath,\n },\n };\n },\n};\n</script>\n\n<template>\n <gl-button-group class=\"gl-w-full\">\n <gl-button variant=\"confirm\" :href=\"newIssuePath\">\n {{ $options.i18n.newIssueLabel }}\n </gl-button>\n <gl-disclosure-dropdown\n :toggle-text=\"$options.i18n.toggleSrText\"\n placement=\"bottom-end\"\n text-sr-only\n variant=\"confirm\"\n toggle-class=\"!gl-h-7\"\n class=\"!gl-m-0 !gl-w-7\"\n >\n <gl-disclosure-dropdown-item :item=\"newIssueItem\" />\n <create-work-item-modal\n :work-item-type-name=\"$options.WORK_ITEM_TYPE_ENUM_OBJECTIVE\"\n as-dropdown-item\n @workItemCreated=\"$emit('workItemCreated')\"\n />\n </gl-disclosure-dropdown>\n </gl-button-group>\n</template>\n","import { render, staticRenderFns } from \"./new_issue_dropdown.vue?vue&type=template&id=b989d40c\"\nimport script from \"./new_issue_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./new_issue_dropdown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button-group',{staticClass:\"gl-w-full\"},[_c('gl-button',{attrs:{\"variant\":\"confirm\",\"href\":_vm.newIssuePath}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.newIssueLabel)+\"\\n \")]),_vm._v(\" \"),_c('gl-disclosure-dropdown',{staticClass:\"!gl-m-0 !gl-w-7\",attrs:{\"toggle-text\":_vm.$options.i18n.toggleSrText,\"placement\":\"bottom-end\",\"text-sr-only\":\"\",\"variant\":\"confirm\",\"toggle-class\":\"!gl-h-7\"}},[_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.newIssueItem}}),_vm._v(\" \"),_c('create-work-item-modal',{attrs:{\"work-item-type-name\":_vm.$options.WORK_ITEM_TYPE_ENUM_OBJECTIVE,\"as-dropdown-item\":\"\"},on:{\"workItemCreated\":function($event){return _vm.$emit('workItemCreated')}}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport {\n TOKEN_TYPE_EPIC,\n TOKEN_TYPE_ITERATION,\n TOKEN_TYPE_WEIGHT,\n} from '~/vue_shared/components/filtered_search_bar/constants';\nimport {\n TOKEN_TITLE_EPIC,\n TOKEN_TITLE_HEALTH,\n TOKEN_TITLE_ITERATION,\n TOKEN_TITLE_WEIGHT,\n TOKEN_TYPE_HEALTH,\n} from 'ee/vue_shared/components/filtered_search_bar/constants';\nimport { WORKSPACE_GROUP, WORKSPACE_PROJECT } from '~/issues/constants';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_EPIC } from '~/graphql_shared/constants';\nimport searchIterationsQuery from '../queries/search_iterations.query.graphql';\n\nimport NewIssueDropdown from './new_issue_dropdown.vue';\n\nconst EpicToken = () =>\n import('ee/vue_shared/components/filtered_search_bar/tokens/epic_token.vue');\nconst IterationToken = () =>\n import('ee/vue_shared/components/filtered_search_bar/tokens/iteration_token.vue');\nconst WeightToken = () =>\n import('ee/vue_shared/components/filtered_search_bar/tokens/weight_token.vue');\nconst HealthToken = () =>\n import('ee/vue_shared/components/filtered_search_bar/tokens/health_token.vue');\nconst ChildEpicIssueIndicator = () =>\n import('ee/issuable/child_epic_issue_indicator/components/child_epic_issue_indicator.vue');\n\nexport default {\n name: 'IssuesListAppEE',\n components: {\n IssuesListApp: () => import('~/issues/list/components/issues_list_app.vue'),\n NewIssueDropdown,\n ChildEpicIssueIndicator,\n },\n mixins: [glFeatureFlagMixin()],\n inject: [\n 'fullPath',\n 'groupPath',\n 'hasIssueWeightsFeature',\n 'hasIterationsFeature',\n 'hasIssuableHealthStatusFeature',\n 'hasOkrsFeature',\n 'isProject',\n ],\n computed: {\n namespace() {\n return this.isProject ? WORKSPACE_PROJECT : WORKSPACE_GROUP;\n },\n isOkrsEnabled() {\n return this.hasOkrsFeature && this.glFeatures.okrsMvc;\n },\n searchTokens() {\n const tokens = [];\n\n if (this.hasIterationsFeature) {\n tokens.push({\n type: TOKEN_TYPE_ITERATION,\n title: TOKEN_TITLE_ITERATION,\n icon: 'iteration',\n token: IterationToken,\n fetchIterations: this.fetchIterations,\n recentSuggestionsStorageKey: `${this.fullPath}-issues-recent-tokens-iteration`,\n fullPath: this.fullPath,\n isProject: this.isProject,\n });\n }\n\n if (this.groupPath) {\n tokens.push({\n type: TOKEN_TYPE_EPIC,\n title: TOKEN_TITLE_EPIC,\n icon: 'epic',\n token: EpicToken,\n unique: true,\n symbol: '&',\n idProperty: 'id',\n useIdValue: true,\n recentSuggestionsStorageKey: `${this.fullPath}-issues-recent-tokens-epic`,\n fullPath: this.groupPath,\n });\n }\n\n if (this.hasIssueWeightsFeature) {\n tokens.push({\n type: TOKEN_TYPE_WEIGHT,\n title: TOKEN_TITLE_WEIGHT,\n icon: 'weight',\n token: WeightToken,\n unique: true,\n });\n }\n\n if (this.hasIssuableHealthStatusFeature) {\n tokens.push({\n type: TOKEN_TYPE_HEALTH,\n title: TOKEN_TITLE_HEALTH,\n icon: 'status-health',\n token: HealthToken,\n unique: false,\n });\n }\n\n return tokens;\n },\n },\n methods: {\n refetchIssuables() {\n this.$refs.issuesListApp.$apollo.queries.issues.refetch();\n this.$refs.issuesListApp.$apollo.queries.issuesCounts.refetch();\n },\n fetchIterations(search) {\n const id = Number(search);\n const variables =\n !search || Number.isNaN(id)\n ? { fullPath: this.fullPath, search, isProject: this.isProject }\n : { fullPath: this.fullPath, id, isProject: this.isProject };\n\n variables.state = 'all';\n\n return this.$apollo\n .query({\n query: searchIterationsQuery,\n variables,\n })\n .then(({ data }) => data[this.namespace]?.iterations.nodes);\n },\n hasFilteredEpicId(apiFilterParams) {\n return Boolean(apiFilterParams.epicId);\n },\n getFilteredEpicId(apiFilterParams) {\n const { epicId } = apiFilterParams;\n\n if (!epicId) {\n return '';\n }\n\n return convertToGraphQLId(TYPENAME_EPIC, parseInt(epicId, 10));\n },\n },\n};\n</script>\n\n<template>\n <issues-list-app ref=\"issuesListApp\" class=\"js-issues-list-app\" :ee-search-tokens=\"searchTokens\">\n <template v-if=\"isOkrsEnabled\" #new-issuable-button>\n <new-issue-dropdown @workItemCreated=\"refetchIssuables\" />\n </template>\n <template #title-icons=\"{ issuable, apiFilterParams }\">\n <child-epic-issue-indicator\n v-if=\"hasFilteredEpicId(apiFilterParams)\"\n class=\"gl-ml-2\"\n :filtered-epic-id=\"getFilteredEpicId(apiFilterParams)\"\n :issuable=\"issuable\"\n />\n </template>\n </issues-list-app>\n</template>\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issues_list_app.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issues_list_app.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./issues_list_app.vue?vue&type=template&id=cecbc920\"\nimport script from \"./issues_list_app.vue?vue&type=script&lang=js\"\nexport * from \"./issues_list_app.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('issues-list-app',{ref:\"issuesListApp\",staticClass:\"js-issues-list-app\",attrs:{\"ee-search-tokens\":_vm.searchTokens},scopedSlots:_vm._u([(_vm.isOkrsEnabled)?{key:\"new-issuable-button\",fn:function(){return [_c('new-issue-dropdown',{on:{\"workItemCreated\":_vm.refetchIssuables}})]},proxy:true}:null,{key:\"title-icons\",fn:function({ issuable, apiFilterParams }){return [(_vm.hasFilteredEpicId(apiFilterParams))?_c('child-epic-issue-indicator',{staticClass:\"gl-ml-2\",attrs:{\"filtered-epic-id\":_vm.getFilteredEpicId(apiFilterParams),\"issuable\":issuable}}):_vm._e()]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./jira_issues_import_status_app.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./jira_issues_import_status_app.vue?vue&type=script&lang=js\"","<script>\nimport { GlAlert, GlLabel } from '@gitlab/ui';\nimport { last } from 'lodash';\nimport {\n calculateJiraImportLabel,\n isInProgress,\n setFinishedAlertHideMap,\n shouldShowFinishedAlert,\n} from '~/jira_import/utils/jira_import_utils';\nimport { n__ } from '~/locale';\nimport getIssuesListDetailsQuery from '../queries/get_issues_list_details.query.graphql';\n\nexport default {\n name: 'JiraIssuesImportStatus',\n components: {\n GlAlert,\n GlLabel,\n },\n props: {\n canEdit: {\n type: Boolean,\n required: true,\n },\n isJiraConfigured: {\n type: Boolean,\n required: true,\n },\n issuesPath: {\n type: String,\n required: true,\n },\n projectPath: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n jiraImport: {},\n };\n },\n apollo: {\n jiraImport: {\n query: getIssuesListDetailsQuery,\n variables() {\n return {\n fullPath: this.projectPath,\n };\n },\n update: ({ project }) => {\n const label = calculateJiraImportLabel(\n project.jiraImports.nodes,\n project.issues.nodes.flatMap(({ labels }) => labels.nodes),\n );\n return {\n importedIssuesCount: last(project.jiraImports.nodes)?.importedIssuesCount,\n label,\n shouldShowFinishedAlert: shouldShowFinishedAlert(label.title, project.jiraImportStatus),\n shouldShowInProgressAlert: isInProgress(project.jiraImportStatus),\n };\n },\n },\n },\n computed: {\n finishedMessage() {\n return n__(\n '%d issue successfully imported with the label',\n '%d issues successfully imported with the label',\n this.jiraImport.importedIssuesCount,\n );\n },\n labelTarget() {\n return `${this.issuesPath}?label_name[]=${encodeURIComponent(this.jiraImport.label.title)}`;\n },\n shouldRender() {\n return this.jiraImport.shouldShowInProgressAlert || this.jiraImport.shouldShowFinishedAlert;\n },\n },\n methods: {\n hideFinishedAlert() {\n setFinishedAlertHideMap(this.jiraImport.label.title);\n this.jiraImport.shouldShowFinishedAlert = false;\n },\n hideInProgressAlert() {\n this.jiraImport.shouldShowInProgressAlert = false;\n },\n },\n};\n</script>\n\n<template>\n <div v-if=\"shouldRender\" class=\"gl-my-5\">\n <gl-alert v-if=\"jiraImport.shouldShowInProgressAlert\" @dismiss=\"hideInProgressAlert\">\n {{ __('Import in progress. Refresh page to see newly added issues.') }}\n </gl-alert>\n\n <gl-alert\n v-else-if=\"jiraImport.shouldShowFinishedAlert\"\n variant=\"success\"\n @dismiss=\"hideFinishedAlert\"\n >\n {{ finishedMessage }}\n <gl-label\n :background-color=\"jiraImport.label.color\"\n scoped\n :target=\"labelTarget\"\n :title=\"jiraImport.label.title\"\n />\n </gl-alert>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./jira_issues_import_status_app.vue?vue&type=template&id=01910ce5\"\nimport script from \"./jira_issues_import_status_app.vue?vue&type=script&lang=js\"\nexport * from \"./jira_issues_import_status_app.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.shouldRender)?_c('div',{staticClass:\"gl-my-5\"},[(_vm.jiraImport.shouldShowInProgressAlert)?_c('gl-alert',{on:{\"dismiss\":_vm.hideInProgressAlert}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Import in progress. Refresh page to see newly added issues.'))+\"\\n \")]):(_vm.jiraImport.shouldShowFinishedAlert)?_c('gl-alert',{attrs:{\"variant\":\"success\"},on:{\"dismiss\":_vm.hideFinishedAlert}},[_vm._v(\"\\n \"+_vm._s(_vm.finishedMessage)+\"\\n \"),_c('gl-label',{attrs:{\"background-color\":_vm.jiraImport.label.color,\"scoped\":\"\",\"target\":_vm.labelTarget,\"title\":_vm.jiraImport.label.title}})],1):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport VueRouter from 'vue-router';\nimport IssuesListApp from 'ee_else_ce/issues/list/components/issues_list_app.vue';\nimport { resolvers, config } from '~/graphql_shared/issuable_client';\nimport createDefaultClient, { createApolloClientWithCaching } from '~/lib/graphql';\nimport { addShortcutsExtension } from '~/behaviors/shortcuts';\nimport ShortcutsWorkItems from '~/behaviors/shortcuts/shortcuts_work_items';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport DesignDetail from '~/work_items/components/design_management/design_preview/design_details.vue';\nimport { ROUTES } from '~/work_items/constants';\nimport JiraIssuesImportStatusApp from './components/jira_issues_import_status_app.vue';\nimport { gqlClient } from './graphql';\n\nlet issuesClient;\n\nexport async function issuesListClient() {\n if (issuesClient) return issuesClient;\n issuesClient = gon.features?.frontendCaching\n ? await createApolloClientWithCaching(resolvers, { localCacheKey: 'issues_list', ...config })\n : createDefaultClient(resolvers, config);\n return issuesClient;\n}\n\nexport async function mountJiraIssuesListApp() {\n const el = document.querySelector('.js-jira-issues-import-status-root');\n\n if (!el) {\n return null;\n }\n\n const { issuesPath, projectPath } = el.dataset;\n const canEdit = parseBoolean(el.dataset.canEdit);\n const isJiraConfigured = parseBoolean(el.dataset.isJiraConfigured);\n\n if (!isJiraConfigured || !canEdit) {\n return null;\n }\n\n Vue.use(VueApollo);\n\n return new Vue({\n el,\n name: 'JiraIssuesImportStatusRoot',\n apolloProvider: new VueApollo({\n defaultClient: await gqlClient(),\n }),\n render(createComponent) {\n return createComponent(JiraIssuesImportStatusApp, {\n props: {\n canEdit,\n isJiraConfigured,\n issuesPath,\n projectPath,\n },\n });\n },\n });\n}\n\nexport async function mountIssuesListApp() {\n const el = document.querySelector('.js-issues-list-root');\n\n if (!el) {\n return null;\n }\n\n addShortcutsExtension(ShortcutsWorkItems);\n\n Vue.use(VueApollo);\n Vue.use(VueRouter);\n\n const {\n autocompleteAwardEmojisPath,\n calendarPath,\n canBulkUpdate,\n canCreateIssue,\n canCreateProjects,\n canEdit,\n canImportIssues,\n canReadCrmContact,\n canReadCrmOrganization,\n email,\n emailsHelpPagePath,\n exportCsvPath,\n fullPath,\n groupId,\n groupPath,\n hasAnyIssues,\n hasAnyProjects,\n hasBlockedIssuesFeature,\n hasIssuableHealthStatusFeature,\n hasIssueDateFilterFeature,\n hasIssueWeightsFeature,\n hasIterationsFeature,\n hasOkrsFeature,\n hasQualityManagementFeature,\n hasScopedLabelsFeature,\n importCsvIssuesPath,\n initialEmail,\n initialSort,\n isIssueRepositioningDisabled,\n isProject,\n isPublicVisibilityRestricted,\n isSignedIn,\n markdownHelpPath,\n maxAttachmentSize,\n newIssuePath,\n newProjectPath,\n projectImportJiraPath,\n quickActionsHelpPath,\n releasesPath,\n resetPath,\n rssPath,\n showNewIssueLink,\n signInPath,\n wiCanAdminLabel,\n wiIssuesListPath,\n wiLabelsManagePath,\n wiReportAbusePath,\n hasLinkedItemsEpicsFeature,\n } = el.dataset;\n\n return new Vue({\n el,\n name: 'IssuesListRoot',\n apolloProvider: new VueApollo({\n defaultClient: await issuesListClient(),\n }),\n router: new VueRouter({\n base: window.location.pathname,\n mode: 'history',\n routes: [\n {\n name: 'root',\n path: '/',\n },\n {\n name: ROUTES.design,\n path: '/:iid/designs/:id',\n component: DesignDetail,\n beforeEnter({ params: { id } }, _, next) {\n if (typeof id === 'string') {\n next();\n }\n },\n props: ({ params: { id, iid } }) => ({ id, iid }),\n },\n ],\n }),\n provide: {\n autocompleteAwardEmojisPath,\n calendarPath,\n canBulkUpdate: parseBoolean(canBulkUpdate),\n canCreateIssue: parseBoolean(canCreateIssue),\n canCreateProjects: parseBoolean(canCreateProjects),\n canReadCrmContact: parseBoolean(canReadCrmContact),\n canReadCrmOrganization: parseBoolean(canReadCrmOrganization),\n fullPath,\n groupId,\n groupPath,\n hasAnyIssues: parseBoolean(hasAnyIssues),\n hasAnyProjects: parseBoolean(hasAnyProjects),\n hasBlockedIssuesFeature: parseBoolean(hasBlockedIssuesFeature),\n hasIssuableHealthStatusFeature: parseBoolean(hasIssuableHealthStatusFeature),\n hasIssueDateFilterFeature: parseBoolean(hasIssueDateFilterFeature),\n hasIssueWeightsFeature: parseBoolean(hasIssueWeightsFeature),\n hasIterationsFeature: parseBoolean(hasIterationsFeature),\n hasOkrsFeature: parseBoolean(hasOkrsFeature),\n hasQualityManagementFeature: parseBoolean(hasQualityManagementFeature),\n hasScopedLabelsFeature: parseBoolean(hasScopedLabelsFeature),\n initialSort,\n isIssueRepositioningDisabled: parseBoolean(isIssueRepositioningDisabled),\n isGroup: !parseBoolean(isProject),\n isProject: parseBoolean(isProject),\n isPublicVisibilityRestricted: parseBoolean(isPublicVisibilityRestricted),\n isSignedIn: parseBoolean(isSignedIn),\n newIssuePath,\n newProjectPath,\n releasesPath,\n rssPath,\n showNewIssueLink: parseBoolean(showNewIssueLink),\n signInPath,\n // For CsvImportExportButtons component\n canEdit: parseBoolean(canEdit),\n email,\n exportCsvPath,\n importCsvIssuesPath,\n maxAttachmentSize,\n projectImportJiraPath,\n showExportButton: parseBoolean(hasAnyIssues),\n showImportButton: parseBoolean(canImportIssues),\n showLabel: !parseBoolean(hasAnyIssues),\n // For IssuableByEmail component\n emailsHelpPagePath,\n initialEmail,\n markdownHelpPath,\n quickActionsHelpPath,\n resetPath,\n // For work item modal\n canAdminLabel: wiCanAdminLabel,\n issuesListPath: wiIssuesListPath,\n labelsManagePath: wiLabelsManagePath,\n reportAbusePath: wiReportAbusePath,\n hasSubepicsFeature: false,\n hasLinkedItemsEpicsFeature: parseBoolean(hasLinkedItemsEpicsFeature),\n },\n render: (createComponent) => createComponent(IssuesListApp),\n });\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"destroyWorkItemDesignNote\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DestroyNoteInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"destroyNote\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"note\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":138}};\n doc.loc.source = {\"body\":\"mutation destroyWorkItemDesignNote($input: DestroyNoteInput!) {\\n destroyNote(input: $input) {\\n errors\\n note {\\n id\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"destroyWorkItemDesignNote\"] = oneQuery(doc, \"destroyWorkItemDesignNote\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"MilestoneFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Milestone\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"expired\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":95}};\n doc.loc.source = {\"body\":\"fragment MilestoneFragment on Milestone {\\n id\\n title\\n webUrl: webPath\\n dueDate\\n expired\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"MilestoneFragment\"] = oneQuery(doc, \"MilestoneFragment\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showRolledUpHealthStatus)?_c('div',{staticClass:\"gl-ml-3 gl-cursor-default\",attrs:{\"data-testid\":\"rolled-up-health-status-wrapper\"}},[_c('span',{ref:\"healthStatusRollUp\",staticClass:\"gl-flex gl-gap-3 gl-text-sm gl-font-normal gl-text-subtle\",attrs:{\"tabindex\":\"0\"}},[_c('span',{staticClass:\"gl-inline-flex gl-gap-1\",attrs:{\"data-testid\":\"on-track-count\"}},[_c('gl-icon',{class:{ [_vm.statusClass(_vm.$options.HEALTH_STATUS_ON_TRACK)]: true, 'gl-mr-1': true },attrs:{\"name\":_vm.statusIcon(_vm.$options.HEALTH_STATUS_ON_TRACK),\"size\":16}}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.rolledUpOnTrackWorkItems.count))])],1),_vm._v(\" \"),_c('span',{staticClass:\"gl-inline-flex gl-gap-1\",attrs:{\"data-testid\":\"needs-attention-count\"}},[_c('gl-icon',{class:{ [_vm.statusClass(_vm.$options.HEALTH_STATUS_NEEDS_ATTENTION)]: true, 'gl-mr-1': true },attrs:{\"name\":_vm.statusIcon(_vm.$options.HEALTH_STATUS_NEEDS_ATTENTION),\"size\":16}}),_vm._v(\"\\n \"+_vm._s(_vm.rolledUpNeedsAttentionWorkItems.count)+\"\\n \")],1),_vm._v(\" \"),_c('span',{staticClass:\"gl-inline-flex gl-gap-1\",attrs:{\"data-testid\":\"at-risk-count\"}},[_c('gl-icon',{class:{ [_vm.statusClass(_vm.$options.HEALTH_STATUS_AT_RISK)]: true, 'gl-mr-1': true },attrs:{\"name\":_vm.statusIcon(_vm.$options.HEALTH_STATUS_AT_RISK),\"size\":16}}),_vm._v(\"\\n \"+_vm._s(_vm.rolledUpAtRiskWorkItems.count)+\"\\n \")],1),_vm._v(\" \"),(_vm.healthStatusVisible)?_c('span',{staticClass:\"gl-gray-50 gl-border-r gl-bg-subtle\"}):_vm._e()]),_vm._v(\" \"),_c('gl-popover',{attrs:{\"triggers\":\"hover focus\",\"target\":() => _vm.$refs.healthStatusRollUp},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.healthStatusLabel)+\"\\n \")]},proxy:true}],null,false,768134084)},[_vm._v(\" \"),_c('div',{staticClass:\"gl-mb-2\",attrs:{\"data-testid\":\"on-track-info\"}},[_c('gl-icon',{class:{ [_vm.statusClass(_vm.$options.HEALTH_STATUS_ON_TRACK)]: true, 'gl-mr-2': true },attrs:{\"name\":_vm.statusIcon(_vm.$options.HEALTH_STATUS_ON_TRACK)}}),_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(_vm.rolledUpOnTrackWorkItems.count))]),_vm._v(\"\\n \"+_vm._s(_vm.getItemLabel(_vm.rolledUpOnTrackWorkItems.count))+\" \"+_vm._s(_vm.$options.i18n.onTrackLabel)+\" \"),_c('br')],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-mb-2\",attrs:{\"data-testid\":\"needs-attention-info\"}},[_c('gl-icon',{class:{ [_vm.statusClass(_vm.$options.HEALTH_STATUS_NEEDS_ATTENTION)]: true, 'gl-mr-2': true },attrs:{\"name\":_vm.statusIcon(_vm.$options.HEALTH_STATUS_NEEDS_ATTENTION)}}),_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(_vm.rolledUpNeedsAttentionWorkItems.count))]),_vm._v(\"\\n \"+_vm._s(_vm.getItemLabel(_vm.rolledUpNeedsAttentionWorkItems.count))+\"\\n \"+_vm._s(_vm.getNeedLabel(_vm.rolledUpNeedsAttentionWorkItems.count))+\" \"+_vm._s(_vm.$options.i18n.attentionLabel)+\"\\n \")],1),_vm._v(\" \"),_c('div',{attrs:{\"data-testid\":\"at-risk-info\"}},[_c('gl-icon',{class:{ [_vm.statusClass(_vm.$options.HEALTH_STATUS_AT_RISK)]: true, 'gl-mr-2': true },attrs:{\"name\":_vm.statusIcon(_vm.$options.HEALTH_STATUS_AT_RISK)}}),_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(_vm.rolledUpAtRiskWorkItems.count))]),_vm._v(\"\\n \"+_vm._s(_vm.getItemLabel(_vm.rolledUpAtRiskWorkItems.count))+\" \"+_vm._s(_vm.$options.i18n.atRiskLabel)+\"\\n \")],1)])],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_rolled_up_health_status.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_rolled_up_health_status.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlPopover } from '@gitlab/ui';\nimport { s__ } from '~/locale';\nimport {\n HEALTH_STATUS_AT_RISK,\n HEALTH_STATUS_NEEDS_ATTENTION,\n HEALTH_STATUS_ON_TRACK,\n healthStatusColorMap,\n healthStatusIconMap,\n} from 'ee/sidebar/constants';\n\nexport default {\n components: {\n GlIcon,\n GlPopover,\n },\n i18n: {\n healthStatusLabel: s__('WorkItem|Health status'),\n atRiskLabel: s__('WorkItem|at risk'),\n onTrackLabel: s__('WorkItem|on track'),\n attentionLabel: s__('WorkItem|attention'),\n },\n props: {\n rolledUpHealthStatus: {\n type: Array,\n required: true,\n },\n healthStatusVisible: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n rolledUpOnTrackWorkItems() {\n return this.rolledUpHealthStatus?.find(\n (status) => status.healthStatus === HEALTH_STATUS_ON_TRACK,\n );\n },\n rolledUpAtRiskWorkItems() {\n return this.rolledUpHealthStatus?.find(\n (status) => status.healthStatus === HEALTH_STATUS_AT_RISK,\n );\n },\n rolledUpNeedsAttentionWorkItems() {\n return this.rolledUpHealthStatus?.find(\n (status) => status.healthStatus === HEALTH_STATUS_NEEDS_ATTENTION,\n );\n },\n showRolledUpHealthStatus() {\n return (\n this.rolledUpOnTrackWorkItems?.count ||\n this.rolledUpAtRiskWorkItems?.count ||\n this.rolledUpNeedsAttentionWorkItems?.count\n );\n },\n },\n methods: {\n getItemLabel(count) {\n return count === 1 ? s__('WorkItem|item') : s__('WorkItem|items');\n },\n getNeedLabel(count) {\n return count === 1 ? s__('WorkItem|needs') : s__('WorkItem|need');\n },\n statusClass(healthStatus) {\n return healthStatusColorMap[healthStatus];\n },\n statusIcon(healthStatus) {\n return healthStatusIconMap[healthStatus];\n },\n statusColor(healthStatus) {\n return healthStatusColorMap[healthStatus];\n },\n },\n HEALTH_STATUS_ON_TRACK,\n HEALTH_STATUS_NEEDS_ATTENTION,\n HEALTH_STATUS_AT_RISK,\n};\n</script>\n\n<template>\n <div\n v-if=\"showRolledUpHealthStatus\"\n class=\"gl-ml-3 gl-cursor-default\"\n data-testid=\"rolled-up-health-status-wrapper\"\n >\n <span\n ref=\"healthStatusRollUp\"\n tabindex=\"0\"\n class=\"gl-flex gl-gap-3 gl-text-sm gl-font-normal gl-text-subtle\"\n >\n <span class=\"gl-inline-flex gl-gap-1\" data-testid=\"on-track-count\">\n <gl-icon\n :name=\"statusIcon($options.HEALTH_STATUS_ON_TRACK)\"\n :class=\"{ [statusClass($options.HEALTH_STATUS_ON_TRACK)]: true, 'gl-mr-1': true }\"\n :size=\"16\"\n />\n <span>{{ rolledUpOnTrackWorkItems.count }}</span>\n </span>\n <span class=\"gl-inline-flex gl-gap-1\" data-testid=\"needs-attention-count\">\n <gl-icon\n :name=\"statusIcon($options.HEALTH_STATUS_NEEDS_ATTENTION)\"\n :class=\"{ [statusClass($options.HEALTH_STATUS_NEEDS_ATTENTION)]: true, 'gl-mr-1': true }\"\n :size=\"16\"\n />\n {{ rolledUpNeedsAttentionWorkItems.count }}\n </span>\n <span class=\"gl-inline-flex gl-gap-1\" data-testid=\"at-risk-count\">\n <gl-icon\n :name=\"statusIcon($options.HEALTH_STATUS_AT_RISK)\"\n :class=\"{ [statusClass($options.HEALTH_STATUS_AT_RISK)]: true, 'gl-mr-1': true }\"\n :size=\"16\"\n />\n {{ rolledUpAtRiskWorkItems.count }}\n </span>\n <span v-if=\"healthStatusVisible\" class=\"gl-gray-50 gl-border-r gl-bg-subtle\"></span>\n </span>\n <gl-popover triggers=\"hover focus\" :target=\"() => $refs.healthStatusRollUp\">\n <template #title>\n {{ $options.i18n.healthStatusLabel }}\n </template>\n <div class=\"gl-mb-2\" data-testid=\"on-track-info\">\n <gl-icon\n :name=\"statusIcon($options.HEALTH_STATUS_ON_TRACK)\"\n :class=\"{ [statusClass($options.HEALTH_STATUS_ON_TRACK)]: true, 'gl-mr-2': true }\"\n /><span class=\"gl-font-bold\">{{ rolledUpOnTrackWorkItems.count }}</span>\n {{ getItemLabel(rolledUpOnTrackWorkItems.count) }} {{ $options.i18n.onTrackLabel }} <br />\n </div>\n\n <div class=\"gl-mb-2\" data-testid=\"needs-attention-info\">\n <gl-icon\n :name=\"statusIcon($options.HEALTH_STATUS_NEEDS_ATTENTION)\"\n :class=\"{ [statusClass($options.HEALTH_STATUS_NEEDS_ATTENTION)]: true, 'gl-mr-2': true }\"\n /><span class=\"gl-font-bold\">{{ rolledUpNeedsAttentionWorkItems.count }}</span>\n {{ getItemLabel(rolledUpNeedsAttentionWorkItems.count) }}\n {{ getNeedLabel(rolledUpNeedsAttentionWorkItems.count) }} {{ $options.i18n.attentionLabel }}\n </div>\n\n <div data-testid=\"at-risk-info\">\n <gl-icon\n :name=\"statusIcon($options.HEALTH_STATUS_AT_RISK)\"\n :class=\"{ [statusClass($options.HEALTH_STATUS_AT_RISK)]: true, 'gl-mr-2': true }\"\n /><span class=\"gl-font-bold\">{{ rolledUpAtRiskWorkItems.count }}</span>\n {{ getItemLabel(rolledUpAtRiskWorkItems.count) }} {{ $options.i18n.atRiskLabel }}\n </div>\n </gl-popover>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_rolled_up_health_status.vue?vue&type=template&id=4bee92db\"\nimport script from \"./work_item_rolled_up_health_status.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_rolled_up_health_status.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { s__ } from '~/locale';\n\nexport const SEVERITY_LEVELS = {\n CRITICAL: s__('severity|Critical'),\n HIGH: s__('severity|High'),\n MEDIUM: s__('severity|Medium'),\n LOW: s__('severity|Low'),\n INFO: s__('severity|Info'),\n UNKNOWN: s__('severity|Unknown'),\n};\n\nconst category = 'Alert Management'; // eslint-disable-line @gitlab/require-i18n-strings\n\nexport const PAGE_CONFIG = {\n OPERATIONS: {\n TITLE: 'OPERATIONS',\n STATUSES: {\n TRIGGERED: s__('AlertManagement|Triggered'),\n ACKNOWLEDGED: s__('AlertManagement|Acknowledged'),\n RESOLVED: s__('AlertManagement|Resolved'),\n },\n // Tracks snowplow event when user views alert details\n TRACK_ALERTS_DETAILS_VIEWS_OPTIONS: {\n category,\n action: 'view_alert_details',\n },\n // Tracks snowplow event when alert status is updated\n TRACK_ALERT_STATUS_UPDATE_OPTIONS: {\n category,\n action: 'update_alert_status',\n label: 'Status', // eslint-disable-line @gitlab/require-i18n-strings\n },\n },\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableTodoMarkDone\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"TodoMarkDoneInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"todoMutation\"},\"name\":{\"kind\":\"Name\",\"value\":\"todoMarkDone\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"todo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":149}};\n doc.loc.source = {\"body\":\"mutation issuableTodoMarkDone($input: TodoMarkDoneInput!) {\\n todoMutation: todoMarkDone(input: $input) {\\n todo {\\n id\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issuableTodoMarkDone\"] = oneQuery(doc, \"issuableTodoMarkDone\");\n \n","/**!\n * Sortable 1.10.2\n * @author\tRubaXa <trash@rubaxa.org>\n * @author\towenm <owen23355@gmail.com>\n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.2\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"content-editor-switcher gl-inline-flex gl-items-center\"},[_c('gl-button',{staticClass:\"!gl-px-4 !gl-text-sm !gl-text-subtle\",attrs:{\"id\":_vm.$options.richTextEditorButtonId,\"size\":\"small\",\"category\":\"tertiary\",\"data-testid\":\"editing-mode-switcher\"},on:{\"click\":function($event){return _vm.$emit('switch')}}},[_vm._v(_vm._s(_vm.text))])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editor_mode_switcher.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editor_mode_switcher.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n components: {\n GlButton,\n },\n props: {\n value: {\n type: String,\n required: true,\n },\n },\n computed: {\n markdownEditorSelected() {\n return this.value === 'markdown';\n },\n text() {\n return this.markdownEditorSelected\n ? __('Switch to rich text editing')\n : __('Switch to plain text editing');\n },\n },\n richTextEditorButtonId: 'switch-to-rich-text-editor',\n};\n</script>\n<template>\n <div class=\"content-editor-switcher gl-inline-flex gl-items-center\">\n <gl-button\n :id=\"$options.richTextEditorButtonId\"\n size=\"small\"\n category=\"tertiary\"\n class=\"!gl-px-4 !gl-text-sm !gl-text-subtle\"\n data-testid=\"editing-mode-switcher\"\n @click=\"$emit('switch')\"\n >{{ text }}</gl-button\n >\n </div>\n</template>\n","import { render, staticRenderFns } from \"./editor_mode_switcher.vue?vue&type=template&id=4c64867e\"\nimport script from \"./editor_mode_switcher.vue?vue&type=script&lang=js\"\nexport * from \"./editor_mode_switcher.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"detail-page-header gl-flex-col md:gl-flex-row\"},[_c('div',{staticClass:\"detail-page-header-body gl-flex-wrap gl-gap-x-2 gl-text-subtle\"},[_c('gl-badge',{attrs:{\"variant\":_vm.badgeVariant,\"icon\":_vm.statusIcon,\"data-testid\":\"issue-state-badge\"}},[_vm._t(\"status-badge\",function(){return [_vm._v(_vm._s(_vm.badgeText))]})],2),_vm._v(\" \"),(_vm.confidential)?_c('confidentiality-badge',{attrs:{\"issuable-type\":_vm.issuableType,\"workspace-type\":_vm.workspaceType}}):_vm._e(),_vm._v(\" \"),(_vm.blocked)?_c('locked-badge',{attrs:{\"issuable-type\":_vm.issuableType}}):_vm._e(),_vm._v(\" \"),(_vm.isHidden)?_c('hidden-badge',{attrs:{\"issuable-type\":_vm.issuableType}}):_vm._e(),_vm._v(\" \"),(_vm.isImported)?_c('imported-badge',{attrs:{\"importable-type\":_vm.issuableType}}):_vm._e(),_vm._v(\" \"),(_vm.shouldShowWorkItemTypeIcon)?_c('work-item-type-icon',{attrs:{\"show-text\":\"\",\"work-item-type\":_vm.issuableType,\"icon-class\":\"gl-fill-icon-subtle\"}}):_vm._e(),_vm._v(\" \"),_c('gl-sprintf',{attrs:{\"message\":_vm.createdMessage},scopedSlots:_vm._u([{key:\"timeAgo\",fn:function(){return [_c('time-ago-tooltip',{attrs:{\"time\":_vm.createdAt}})]},proxy:true},{key:\"email\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.serviceDeskReplyTo)+\"\\n \")]},proxy:true},{key:\"author\",fn:function(){return [_c('gl-link',{staticClass:\"js-user-link gl-font-bold\",attrs:{\"href\":_vm.author.webUrl,\"data-user-id\":_vm.authorId}},[_c('span',{class:[{ 'gl-hidden': !_vm.isAuthorExternal }, 'sm:gl-inline']},[_vm._v(\"\\n \"+_vm._s(_vm.author.name)+\"\\n \")]),_vm._v(\" \"),(_vm.isAuthorExternal)?_c('gl-icon',{attrs:{\"name\":\"external-link\",\"aria-label\":_vm.__('external link')}}):_vm._e(),_vm._v(\" \"),(_vm.author.username)?_c('strong',{staticClass:\"author gl-inline sm:!gl-hidden\"},[_vm._v(\"@\"+_vm._s(_vm.author.username))]):_vm._e()],1)]},proxy:true}])}),_vm._v(\" \"),(_vm.isFirstContribution)?_c('gl-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"name\":\"first-contribution\",\"title\":_vm.__('1st contribution!'),\"aria-label\":_vm.__('1st contribution!')}}):_vm._e(),_vm._v(\" \"),(_vm.taskCompletionStatus && _vm.hasTasks)?_c('span',{staticClass:\"gl-hidden md:gl-block lg:gl-inline-block\"},[_vm._v(_vm._s(_vm.taskStatusString))]):_vm._e(),_vm._v(\" \"),_c('gl-button',{staticClass:\"js-sidebar-toggle gl-ml-auto gl-block sm:!gl-hidden\",attrs:{\"icon\":\"chevron-double-lg-left\",\"aria-label\":_vm.__('Expand sidebar')},on:{\"click\":_vm.handleRightSidebarToggleClick}})],1),_vm._v(\" \"),_c('div',{staticClass:\"detail-page-header-actions gl-flex gl-gap-3 gl-self-center\"},[_vm._t(\"header-actions\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_header.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_header.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlBadge, GlButton, GlLink, GlSprintf, GlTooltipDirective } from '@gitlab/ui';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport HiddenBadge from '~/issuable/components/hidden_badge.vue';\nimport LockedBadge from '~/issuable/components/locked_badge.vue';\nimport { issuableStatusText, STATUS_OPEN, STATUS_REOPENED } from '~/issues/constants';\nimport { isExternal } from '~/lib/utils/url_utility';\nimport { __, n__, sprintf } from '~/locale';\nimport ConfidentialityBadge from '~/vue_shared/components/confidentiality_badge.vue';\nimport ImportedBadge from '~/vue_shared/components/imported_badge.vue';\nimport TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';\nimport WorkItemTypeIcon from '~/work_items/components/work_item_type_icon.vue';\n\nexport default {\n components: {\n ConfidentialityBadge,\n GlIcon,\n GlBadge,\n GlButton,\n GlLink,\n GlSprintf,\n HiddenBadge,\n LockedBadge,\n ImportedBadge,\n TimeAgoTooltip,\n WorkItemTypeIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n createdAt: {\n type: String,\n required: true,\n },\n author: {\n type: Object,\n required: true,\n },\n issuableState: {\n type: String,\n required: false,\n default: '',\n },\n statusIcon: {\n type: String,\n required: false,\n default: '',\n },\n statusIconClass: {\n type: String,\n required: false,\n default: '',\n },\n blocked: {\n type: Boolean,\n required: false,\n default: false,\n },\n confidential: {\n type: Boolean,\n required: false,\n default: false,\n },\n isFirstContribution: {\n type: Boolean,\n required: false,\n default: false,\n },\n isHidden: {\n type: Boolean,\n required: false,\n default: false,\n },\n isImported: {\n type: Boolean,\n required: false,\n default: false,\n },\n issuableType: {\n type: String,\n required: false,\n default: '',\n },\n serviceDeskReplyTo: {\n type: String,\n required: false,\n default: '',\n },\n showWorkItemTypeIcon: {\n type: Boolean,\n required: false,\n default: false,\n },\n taskCompletionStatus: {\n type: Object,\n required: false,\n default: null,\n },\n workspaceType: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n badgeText() {\n return issuableStatusText[this.issuableState];\n },\n badgeVariant() {\n return this.issuableState === STATUS_OPEN || this.issuableState === STATUS_REOPENED\n ? 'success'\n : 'info';\n },\n shouldShowWorkItemTypeIcon() {\n return this.showWorkItemTypeIcon && this.issuableType;\n },\n createdMessage() {\n if (this.serviceDeskReplyTo) {\n return this.shouldShowWorkItemTypeIcon\n ? __('created %{timeAgo} by %{email} via %{author}')\n : __('Created %{timeAgo} by %{email} via %{author}');\n }\n return this.shouldShowWorkItemTypeIcon\n ? __('created %{timeAgo} by %{author}')\n : __('Created %{timeAgo} by %{author}');\n },\n authorId() {\n return getIdFromGraphQLId(`${this.author.id}`);\n },\n isAuthorExternal() {\n return isExternal(this.author.webUrl ?? '');\n },\n taskStatusString() {\n const { count, completedCount } = this.taskCompletionStatus;\n\n return sprintf(\n n__(\n '%{completedCount} of %{count} checklist item completed',\n '%{completedCount} of %{count} checklist items completed',\n count,\n ),\n { completedCount, count },\n );\n },\n hasTasks() {\n return this.taskCompletionStatus.count > 0;\n },\n },\n mounted() {\n this.toggleSidebarButtonEl = document.querySelector('.js-toggle-right-sidebar-button');\n },\n methods: {\n handleRightSidebarToggleClick() {\n this.$emit('toggle');\n if (this.toggleSidebarButtonEl) {\n this.toggleSidebarButtonEl.dispatchEvent(new Event('click'));\n }\n },\n },\n};\n</script>\n\n<template>\n <div class=\"detail-page-header gl-flex-col md:gl-flex-row\">\n <div class=\"detail-page-header-body gl-flex-wrap gl-gap-x-2 gl-text-subtle\">\n <gl-badge :variant=\"badgeVariant\" :icon=\"statusIcon\" data-testid=\"issue-state-badge\">\n <slot name=\"status-badge\">{{ badgeText }}</slot>\n </gl-badge>\n <confidentiality-badge\n v-if=\"confidential\"\n :issuable-type=\"issuableType\"\n :workspace-type=\"workspaceType\"\n />\n <locked-badge v-if=\"blocked\" :issuable-type=\"issuableType\" />\n <hidden-badge v-if=\"isHidden\" :issuable-type=\"issuableType\" />\n <imported-badge v-if=\"isImported\" :importable-type=\"issuableType\" />\n\n <work-item-type-icon\n v-if=\"shouldShowWorkItemTypeIcon\"\n show-text\n :work-item-type=\"issuableType\"\n icon-class=\"gl-fill-icon-subtle\"\n />\n <gl-sprintf :message=\"createdMessage\">\n <template #timeAgo>\n <time-ago-tooltip :time=\"createdAt\" />\n </template>\n <template #email>\n {{ serviceDeskReplyTo }}\n </template>\n <template #author>\n <gl-link class=\"js-user-link gl-font-bold\" :href=\"author.webUrl\" :data-user-id=\"authorId\">\n <span :class=\"[{ 'gl-hidden': !isAuthorExternal }, 'sm:gl-inline']\">\n {{ author.name }}\n </span>\n <gl-icon\n v-if=\"isAuthorExternal\"\n name=\"external-link\"\n :aria-label=\"__('external link')\"\n />\n <strong v-if=\"author.username\" class=\"author gl-inline sm:!gl-hidden\"\n >@{{ author.username }}</strong\n >\n </gl-link>\n </template>\n </gl-sprintf>\n <gl-icon\n v-if=\"isFirstContribution\"\n v-gl-tooltip\n name=\"first-contribution\"\n :title=\"__('1st contribution!')\"\n :aria-label=\"__('1st contribution!')\"\n />\n <span\n v-if=\"taskCompletionStatus && hasTasks\"\n class=\"gl-hidden md:gl-block lg:gl-inline-block\"\n >{{ taskStatusString }}</span\n >\n <gl-button\n icon=\"chevron-double-lg-left\"\n class=\"js-sidebar-toggle gl-ml-auto gl-block sm:!gl-hidden\"\n :aria-label=\"__('Expand sidebar')\"\n @click=\"handleRightSidebarToggleClick\"\n />\n </div>\n <div class=\"detail-page-header-actions gl-flex gl-gap-3 gl-self-center\">\n <slot name=\"header-actions\"></slot>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./issuable_header.vue?vue&type=template&id=603d9a4c\"\nimport script from \"./issuable_header.vue?vue&type=script&lang=js\"\nexport * from \"./issuable_header.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateIssuableConfidential\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateEpicInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetConfidential\"},\"name\":{\"kind\":\"Name\",\"value\":\"updateEpic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":191}};\n doc.loc.source = {\"body\":\"mutation updateIssuableConfidential($input: UpdateEpicInput!) {\\n issuableSetConfidential: updateEpic(input: $input) {\\n issuable: epic {\\n id\\n confidential\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateIssuableConfidential\"] = oneQuery(doc, \"updateIssuableConfidential\");\n \n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemRepositionImageDiffNote\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"RepositionImageDiffNoteInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"repositionImageDiffNote\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"note\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignNote\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":231}};\n doc.loc.source = {\"body\":\"#import \\\"./fragments/design_note.fragment.graphql\\\"\\n\\nmutation workItemRepositionImageDiffNote($input: RepositionImageDiffNoteInput!) {\\n repositionImageDiffNote(input: $input) {\\n errors\\n note {\\n ...DesignNote\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./fragments/design_note.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"workItemRepositionImageDiffNote\"] = oneQuery(doc, \"workItemRepositionImageDiffNote\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"textColor\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":75}};\n doc.loc.source = {\"body\":\"fragment Label on Label {\\n id\\n title\\n description\\n color\\n textColor\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"Label\"] = oneQuery(doc, \"Label\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"PromoteTimelineEvent\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"TimelineEventPromoteFromNoteInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelineEventPromoteFromNote\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelineEvent\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":176}};\n doc.loc.source = {\"body\":\"mutation PromoteTimelineEvent($input: TimelineEventPromoteFromNoteInput!) {\\n timelineEventPromoteFromNote(input: $input) {\\n timelineEvent {\\n id\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"PromoteTimelineEvent\"] = oneQuery(doc, \"PromoteTimelineEvent\");\n \n","import { GlTooltipDirective } from '../../../directives/tooltip';\nimport GlButton from '../../base/button/button';\nimport { translate } from '../../../utils/i18n';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'ClearIconButton',\n components: {\n GlButton\n },\n directives: {\n GlTooltip: GlTooltipDirective\n },\n props: {\n title: {\n type: String,\n required: false,\n default: () => translate('ClearIconButton.title', 'Clear')\n },\n tooltipContainer: {\n required: false,\n default: false,\n validator: value => value === false || typeof value === 'string' || value instanceof HTMLElement\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-button',_vm._g({directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",value:({ container: _vm.tooltipContainer }),expression:\"{ container: tooltipContainer }\",modifiers:{\"hover\":true}}],staticClass:\"gl-clear-icon-button\",attrs:{\"variant\":\"default\",\"category\":\"tertiary\",\"size\":\"small\",\"name\":\"clear\",\"icon\":\"clear\",\"title\":_vm.title,\"aria-label\":_vm.title}},_vm.$listeners))};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showSuggestions),expression:\"showSuggestions\"}],staticClass:\"form-group\"},[_vm._m(0),_vm._v(\" \"),_c('ul',{staticClass:\"gl-m-0 gl-list-none gl-p-0\"},_vm._l((_vm.issues),function(suggestion,index){return _c('li',{key:suggestion.id,class:{\n 'gl-mb-3': index !== _vm.issues.length - 1,\n }},[_c('title-suggestions-item',{attrs:{\"suggestion\":suggestion}})],1)}),0)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-pb-3\"},[_vm._v(\"\\n \"+_vm._s(_vm.suggestionsTitle)+\"\\n \"),_c('help-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom\",modifiers:{\"bottom\":true}}],attrs:{\"title\":_vm.helpIconTitle,\"aria-label\":_vm.helpIconTitle}})],1)\n}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./title_suggestions_item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./title_suggestions_item.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink, GlTooltip, GlTooltipDirective, GlIcon } from '@gitlab/ui';\nimport { uniqueId } from 'lodash';\nimport { STATUS_CLOSED } from '~/issues/constants';\nimport { __ } from '~/locale';\nimport TimeagoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';\nimport UserAvatarImage from '~/vue_shared/components/user_avatar/user_avatar_image.vue';\nimport timeago from '~/vue_shared/mixins/timeago';\n\nexport default {\n components: {\n GlTooltip,\n GlLink,\n GlIcon,\n UserAvatarImage,\n TimeagoTooltip,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [timeago],\n props: {\n suggestion: {\n type: Object,\n required: true,\n },\n },\n computed: {\n counts() {\n return [\n {\n id: uniqueId(),\n icon: 'thumb-up',\n tooltipTitle: __('Upvotes'),\n count: this.suggestion.upvotes,\n },\n {\n id: uniqueId(),\n icon: 'comment',\n tooltipTitle: __('Comments'),\n count: this.suggestion.userNotesCount,\n },\n ].filter(({ count }) => count);\n },\n isClosed() {\n return this.suggestion.state === STATUS_CLOSED;\n },\n stateIconClass() {\n return this.isClosed ? 'gl-fill-icon-info' : 'gl-fill-icon-success';\n },\n stateIconName() {\n return this.isClosed ? 'issue-close' : 'issue-open-m';\n },\n stateTitle() {\n return this.isClosed ? __('Closed') : __('Opened');\n },\n closedOrCreatedDate() {\n return this.suggestion.closedAt || this.suggestion.createdAt;\n },\n hasUpdated() {\n return this.suggestion.updatedAt !== this.suggestion.createdAt;\n },\n },\n};\n</script>\n\n<template>\n <div class=\"suggestion-item\">\n <div class=\"gl-flex gl-items-center\">\n <gl-icon\n v-if=\"suggestion.confidential\"\n v-gl-tooltip.bottom\n :title=\"__('Confidential')\"\n name=\"eye-slash\"\n class=\"gl-mr-2 gl-cursor-help gl-text-orange-500\"\n />\n <gl-link\n :href=\"suggestion.webUrl\"\n target=\"_blank\"\n class=\"suggestion str-truncated-100 gl-font-bold !gl-text-default\"\n >\n {{ suggestion.title }}\n </gl-link>\n </div>\n <div class=\"suggestion-footer gl-text-subtle\">\n <span ref=\"state\">\n <gl-icon :name=\"stateIconName\" :class=\"stateIconClass\" class=\"gl-cursor-help\" />\n </span>\n <gl-tooltip :target=\"() => $refs.state\" placement=\"bottom\">\n <span class=\"gl-block\">\n <span class=\"gl-font-bold\"> {{ stateTitle }} </span>\n {{ timeFormatted(closedOrCreatedDate) }}\n </span>\n <span class=\"gl-text-tertiary\">{{ tooltipTitle(closedOrCreatedDate) }}</span>\n </gl-tooltip>\n #{{ suggestion.iid }} •\n <timeago-tooltip\n :time=\"suggestion.createdAt\"\n tooltip-placement=\"bottom\"\n class=\"gl-cursor-help\"\n />\n {{ __('by') }}\n <gl-link :href=\"suggestion.author.webUrl\">\n <user-avatar-image\n :img-src=\"suggestion.author.avatarUrl\"\n :size=\"16\"\n css-classes=\"mr-0 float-none\"\n tooltip-placement=\"bottom\"\n class=\"gl-inline-block\"\n >\n <span class=\"gl-block gl-font-bold\">{{ __('Author') }}</span> {{ suggestion.author.name }}\n <span class=\"gl-text-tertiary\">@{{ suggestion.author.username }}</span>\n </user-avatar-image>\n </gl-link>\n <template v-if=\"hasUpdated\">\n • {{ __('updated') }}\n <timeago-tooltip\n :time=\"suggestion.updatedAt\"\n tooltip-placement=\"bottom\"\n class=\"gl-cursor-help\"\n />\n </template>\n <span class=\"suggestion-counts\">\n <span\n v-for=\"{ count, icon, tooltipTitle, id } in counts\"\n :key=\"id\"\n v-gl-tooltip.bottom\n :title=\"tooltipTitle\"\n class=\"gl-ml-3 gl-cursor-help gl-text-subtle\"\n >\n <gl-icon :name=\"icon\" /> {{ count }}\n </span>\n </span>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./title_suggestions_item.vue?vue&type=template&id=1705e171\"\nimport script from \"./title_suggestions_item.vue?vue&type=script&lang=js\"\nexport * from \"./title_suggestions_item.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"suggestion-item\"},[_c('div',{staticClass:\"gl-flex gl-items-center\"},[(_vm.suggestion.confidential)?_c('gl-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom\",modifiers:{\"bottom\":true}}],staticClass:\"gl-mr-2 gl-cursor-help gl-text-orange-500\",attrs:{\"title\":_vm.__('Confidential'),\"name\":\"eye-slash\"}}):_vm._e(),_vm._v(\" \"),_c('gl-link',{staticClass:\"suggestion str-truncated-100 gl-font-bold !gl-text-default\",attrs:{\"href\":_vm.suggestion.webUrl,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(_vm.suggestion.title)+\"\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"suggestion-footer gl-text-subtle\"},[_c('span',{ref:\"state\"},[_c('gl-icon',{staticClass:\"gl-cursor-help\",class:_vm.stateIconClass,attrs:{\"name\":_vm.stateIconName}})],1),_vm._v(\" \"),_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.state,\"placement\":\"bottom\"}},[_c('span',{staticClass:\"gl-block\"},[_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(\" \"+_vm._s(_vm.stateTitle)+\" \")]),_vm._v(\"\\n \"+_vm._s(_vm.timeFormatted(_vm.closedOrCreatedDate))+\"\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"gl-text-tertiary\"},[_vm._v(_vm._s(_vm.tooltipTitle(_vm.closedOrCreatedDate)))])]),_vm._v(\"\\n #\"+_vm._s(_vm.suggestion.iid)+\" •\\n \"),_c('timeago-tooltip',{staticClass:\"gl-cursor-help\",attrs:{\"time\":_vm.suggestion.createdAt,\"tooltip-placement\":\"bottom\"}}),_vm._v(\"\\n \"+_vm._s(_vm.__('by'))+\"\\n \"),_c('gl-link',{attrs:{\"href\":_vm.suggestion.author.webUrl}},[_c('user-avatar-image',{staticClass:\"gl-inline-block\",attrs:{\"img-src\":_vm.suggestion.author.avatarUrl,\"size\":16,\"css-classes\":\"mr-0 float-none\",\"tooltip-placement\":\"bottom\"}},[_c('span',{staticClass:\"gl-block gl-font-bold\"},[_vm._v(_vm._s(_vm.__('Author')))]),_vm._v(\" \"+_vm._s(_vm.suggestion.author.name)+\"\\n \"),_c('span',{staticClass:\"gl-text-tertiary\"},[_vm._v(\"@\"+_vm._s(_vm.suggestion.author.username))])])],1),_vm._v(\" \"),(_vm.hasUpdated)?[_vm._v(\"\\n • \"+_vm._s(_vm.__('updated'))+\"\\n \"),_c('timeago-tooltip',{staticClass:\"gl-cursor-help\",attrs:{\"time\":_vm.suggestion.updatedAt,\"tooltip-placement\":\"bottom\"}})]:_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"suggestion-counts\"},_vm._l((_vm.counts),function({ count, icon, tooltipTitle, id }){return _c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom\",modifiers:{\"bottom\":true}}],key:id,staticClass:\"gl-ml-3 gl-cursor-help gl-text-subtle\",attrs:{\"title\":tooltipTitle}},[_c('gl-icon',{attrs:{\"name\":icon}}),_vm._v(\" \"+_vm._s(count)+\"\\n \")],1)}),0)],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./title_suggestions.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./title_suggestions.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport query from '../queries/issues.query.graphql';\nimport TitleSuggestionsItem from './title_suggestions_item.vue';\n\nexport default {\n components: {\n HelpIcon,\n TitleSuggestionsItem,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n projectPath: {\n type: String,\n required: true,\n },\n search: {\n type: String,\n required: true,\n },\n helpText: {\n type: String,\n required: false,\n default: '',\n },\n title: {\n type: String,\n required: false,\n default: '',\n },\n },\n apollo: {\n issues: {\n query,\n debounce: 1000,\n skip() {\n return this.isSearchEmpty;\n },\n update: (data) => data?.project?.issues?.edges.map(({ node }) => node) ?? [],\n variables() {\n return {\n fullPath: this.projectPath,\n search: this.search,\n };\n },\n },\n },\n data() {\n return {\n issues: [],\n loading: 0,\n };\n },\n computed: {\n isSearchEmpty() {\n return !this.search.length;\n },\n showSuggestions() {\n return !this.isSearchEmpty && this.issues.length && !this.loading;\n },\n helpIconTitle() {\n return this.helpText || this.$options.helpText;\n },\n suggestionsTitle() {\n return this.title || __('Similar issues');\n },\n },\n watch: {\n search() {\n if (this.isSearchEmpty) {\n this.issues = [];\n }\n },\n },\n helpText: __(\n 'These existing issues have a similar title. It might be better to comment there instead of creating another similar issue.',\n ),\n};\n</script>\n\n<template>\n <div v-show=\"showSuggestions\" class=\"form-group\">\n <div v-once class=\"gl-pb-3\">\n {{ suggestionsTitle }}\n <help-icon v-gl-tooltip.bottom :title=\"helpIconTitle\" :aria-label=\"helpIconTitle\" />\n </div>\n <ul class=\"gl-m-0 gl-list-none gl-p-0\">\n <li\n v-for=\"(suggestion, index) in issues\"\n :key=\"suggestion.id\"\n :class=\"{\n 'gl-mb-3': index !== issues.length - 1,\n }\"\n >\n <title-suggestions-item :suggestion=\"suggestion\" />\n </li>\n </ul>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./title_suggestions.vue?vue&type=template&id=334f59ca\"\nimport script from \"./title_suggestions.vue?vue&type=script&lang=js\"\nexport * from \"./title_suggestions.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableTodoUpdated\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableTodoUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentUserTodos\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"pending\"}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":245}};\n doc.loc.source = {\"body\":\"subscription issuableTodoUpdated($issuableId: IssuableID!) {\\n issuableTodoUpdated(issuableId: $issuableId) {\\n ... on MergeRequest {\\n id\\n currentUserTodos(state: pending) {\\n nodes {\\n id\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issuableTodoUpdated\"] = oneQuery(doc, \"issuableTodoUpdated\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"issueSetWeight\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueSetWeightInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetWeight\"},\"name\":{\"kind\":\"Name\",\"value\":\"issueSetWeight\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":176}};\n doc.loc.source = {\"body\":\"mutation issueSetWeight($input: IssueSetWeightInput!) {\\n issuableSetWeight: issueSetWeight(input: $input) {\\n issuable: issue {\\n id\\n weight\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueSetWeight\"] = oneQuery(doc, \"issueSetWeight\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueCrmContacts\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"CrmContacts\"},\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":133}};\n doc.loc.source = {\"body\":\"#import \\\"./issue_crm_contacts.fragment.graphql\\\"\\n\\nquery issueCrmContacts($id: IssueID!) {\\n issue(id: $id) {\\n ...CrmContacts\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./issue_crm_contacts.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueCrmContacts\"] = oneQuery(doc, \"issueCrmContacts\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemLinkedItemsFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItem\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetLinkedItems\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"linkedItems\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"linkId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"linkType\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"namespace\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iconName\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"full\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemMetadataWidgets\"},\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemMetadataWidgetsExtras\"},\"directives\":[]}]}}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":914}};\n doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/work_items/graphql/work_item_metadata_widgets.fragment.graphql\\\"\\n#import \\\"ee_else_ce/work_items/graphql/work_item_metadata_widgets_extras.fragment.graphql\\\"\\n\\nfragment WorkItemLinkedItemsFragment on WorkItem {\\n widgets {\\n ... on WorkItemWidgetLinkedItems {\\n type\\n linkedItems {\\n nodes {\\n linkId\\n linkType\\n workItem {\\n id\\n iid\\n confidential\\n namespace {\\n id\\n fullPath\\n }\\n workItemType {\\n id\\n name\\n iconName\\n }\\n title\\n state\\n createdAt\\n closedAt\\n webUrl\\n reference(full: true)\\n widgets {\\n ...WorkItemMetadataWidgets\\n ...WorkItemMetadataWidgetsExtras\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/work_items/graphql/work_item_metadata_widgets.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/work_items/graphql/work_item_metadata_widgets_extras.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"WorkItemLinkedItemsFragment\"] = oneQuery(doc, \"WorkItemLinkedItemsFragment\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"activeBoardItemEE\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isIssue\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":true},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activeBoardItem\"},\"arguments\":[],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"include\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isIssue\"}}}]}]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicDetailed\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"skip\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isIssue\"}}}]}]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"listId\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":277}};\n doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/boards/graphql/issue.fragment.graphql\\\"\\n#import \\\"../epic_detailed.fragment.graphql\\\"\\n\\nquery activeBoardItemEE($isIssue: Boolean = true) {\\n activeBoardItem @client {\\n ...Issue @include(if: $isIssue)\\n ...EpicDetailed @skip(if: $isIssue)\\n listId\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/boards/graphql/issue.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"../epic_detailed.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"activeBoardItemEE\"] = oneQuery(doc, \"activeBoardItemEE\");\n \n","import isNumber from 'lodash/isNumber';\nimport isString from 'lodash/isString';\n\nconst isOption = item => Boolean(item) && (isString(item.value) || isNumber(item.value));\n\n// eslint-disable-next-line unicorn/no-array-callback-reference\nconst isGroup = function () {\n let {\n options\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Array.isArray(options) && options.every(isOption);\n};\nconst hasNoDuplicates = array => array.length === new Set(array).size;\nconst flattenedOptions = items => items.flatMap(item => isOption(item) ? item : item.options);\n\n// eslint-disable-next-line unicorn/no-array-callback-reference\nconst isAllOptionsOrAllGroups = items => items.every(isOption) || items.every(isGroup);\nconst hasUniqueValues = items => hasNoDuplicates(flattenedOptions(items).map(_ref => {\n let {\n value\n } = _ref;\n return value;\n}));\n\n// eslint-disable-next-line unicorn/no-array-callback-reference\nconst hasUniqueGroups = items => hasNoDuplicates(items.filter(isGroup).map(_ref2 => {\n let {\n text\n } = _ref2;\n return text;\n}));\nconst itemsValidator = items => isAllOptionsOrAllGroups(items) && hasUniqueValues(items) && hasUniqueGroups(items);\n\nexport { flattenedOptions, isOption, itemsValidator };\n","import { localeDateFormat } from '~/lib/utils/datetime_utility';\nimport { newDate } from '~/lib/utils/datetime/date_calculation_utility';\n\n/**\n * The first argument is two date strings in formatted in ISO 8601 (YYYY-MM-DD)\n * If the startDate year is the same as the current year, the start date\n * year is omitted.\n *\n * The second argument is a boolean switch that determines whether the\n * iteration period should be formatted for use in an issue or not. There are\n * intended design differences in the way the period is formatted for uses like\n * a board issue card or the issue sidebar. This argument is optional and\n * defaults to false.\n *\n * @returns {string}\n *\n * ex. \"Oct 1, 2021 - Oct 10, 2022\" if start and due dates have different years, regardless of current year.\n *\n * \"Oct 1 - 10, 2021\" if start and due dates are both in 2021, current year === 2021.\n */\nexport function getIterationPeriod({ startDate, dueDate }) {\n return localeDateFormat.asDate.formatRange(newDate(startDate), newDate(dueDate));\n}\n\n/**\n * Sort iteration cadences by the specified field\n */\nconst sortCadences = (cadences, sortBy) => {\n return cadences.sort((a, b) => {\n const titleA = a[sortBy].toLowerCase();\n const titleB = b[sortBy].toLowerCase();\n return titleA.localeCompare(titleB);\n });\n};\n\n/**\n * Group a list of iterations by cadence.\n *\n * @param iterations A list of iterations\n * @return {Array} A list of cadences\n */\nexport function groupByIterationCadences(iterations) {\n const cadences = [];\n iterations.forEach((iteration) => {\n if (!iteration.iterationCadence) {\n return;\n }\n const { title, id } = iteration.iterationCadence;\n const cadenceIteration = {\n id: iteration.id,\n title: iteration.title,\n period: getIterationPeriod(iteration),\n };\n const cadence = cadences.find((c) => c.title === title);\n if (cadence) {\n cadence.iterations.push(cadenceIteration);\n } else {\n cadences.push({ title, iterations: [cadenceIteration], id });\n }\n });\n return sortCadences(cadences, 'title');\n}\n\nexport function groupOptionsByIterationCadences(iterations) {\n const cadences = [];\n iterations.forEach((iteration) => {\n if (!iteration.iterationCadence) {\n return;\n }\n const { title } = iteration.iterationCadence;\n const cadenceIteration = {\n value: iteration.id,\n title: iteration.title,\n text: getIterationPeriod(iteration),\n };\n const cadence = cadences.find((c) => c.text === title);\n if (cadence) {\n cadence.options.push(cadenceIteration);\n } else {\n cadences.push({ text: title, options: [cadenceIteration] });\n }\n });\n return sortCadences(cadences, 'text');\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-avatar',{attrs:{\"shape\":_vm.$options.AVATAR_SHAPE_OPTION_RECT,\"entity-id\":_vm.entityId,\"entity-name\":_vm.projectName,\"src\":_vm.projectAvatarUrl,\"alt\":_vm.avatarAlt,\"size\":_vm.size,\"fallback-on-error\":true,\"itemprop\":\"image\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project_avatar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project_avatar.vue?vue&type=script&lang=js\"","<script>\nimport { GlAvatar } from '@gitlab/ui';\nimport { getIdFromGraphQLId, isGid } from '~/graphql_shared/utils';\nimport { AVATAR_SHAPE_OPTION_RECT } from '~/vue_shared/constants';\n\nexport default {\n components: {\n GlAvatar,\n },\n props: {\n projectId: {\n type: [Number, String],\n default: 0,\n required: false,\n validator(value) {\n return typeof value === 'string' ? isGid(value) : true;\n },\n },\n projectName: {\n type: String,\n required: true,\n },\n projectAvatarUrl: {\n type: String,\n required: false,\n default: '',\n },\n size: {\n type: Number,\n default: 32,\n required: false,\n },\n alt: {\n type: String,\n required: false,\n default: undefined,\n },\n },\n computed: {\n avatarAlt() {\n return this.alt ?? this.projectName;\n },\n entityId() {\n return isGid(this.projectId) ? getIdFromGraphQLId(this.projectId) : this.projectId;\n },\n },\n AVATAR_SHAPE_OPTION_RECT,\n};\n</script>\n\n<template>\n <gl-avatar\n :shape=\"$options.AVATAR_SHAPE_OPTION_RECT\"\n :entity-id=\"entityId\"\n :entity-name=\"projectName\"\n :src=\"projectAvatarUrl\"\n :alt=\"avatarAlt\"\n :size=\"size\"\n :fallback-on-error=\"true\"\n itemprop=\"image\"\n />\n</template>\n","import { render, staticRenderFns } from \"./project_avatar.vue?vue&type=template&id=4edf7bc5\"\nimport script from \"./project_avatar.vue?vue&type=script&lang=js\"\nexport * from \"./project_avatar.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueTimeTrackingReport\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelogs\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"TimelogFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":242}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/issuable_timelogs.fragment.graphql\\\"\\n\\nquery issueTimeTrackingReport($id: IssueID!) {\\n issuable: issue(id: $id) {\\n id\\n title\\n timelogs {\\n nodes {\\n ...TimelogFragment\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/issuable_timelogs.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueTimeTrackingReport\"] = oneQuery(doc, \"issueTimeTrackingReport\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateIssue\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateIssueInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"createIssuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"createIssue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":217}};\n doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/boards/graphql/issue.fragment.graphql\\\"\\n\\nmutation CreateIssue($input: CreateIssueInput!) {\\n createIssuable: createIssue(input: $input) {\\n issuable: issue {\\n ...Issue\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/boards/graphql/issue.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"CreateIssue\"] = oneQuery(doc, \"CreateIssue\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"escalationStatusQuery\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"escalationStatus\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":188}};\n doc.loc.source = {\"body\":\"query escalationStatusQuery($fullPath: ID!, $iid: String) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n escalationStatus\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"escalationStatusQuery\"] = oneQuery(doc, \"escalationStatusQuery\");\n \n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_label_selector.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_label_selector.vue?vue&type=script&lang=js\"","<script>\nimport { GlFormGroup } from '@gitlab/ui';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport LabelsSelect from '~/sidebar/components/labels/labels_select_widget/labels_select_root.vue';\nimport { __ } from '~/locale';\n\nexport default {\n components: {\n GlFormGroup,\n LabelsSelect,\n },\n inject: [\n 'allowLabelRemove',\n 'attrWorkspacePath',\n 'fieldName',\n 'fullPath',\n 'labelsFilterBasePath',\n 'initialLabels',\n 'issuableType',\n 'labelType',\n 'issuableSupportsLockOnMerge',\n 'variant',\n 'workspaceType',\n ],\n data() {\n return {\n selectedLabels: this.initialLabels || [],\n };\n },\n methods: {\n handleUpdateSelectedLabels({ labels }) {\n this.selectedLabels = labels.map((label) => ({ ...label, id: getIdFromGraphQLId(label.id) }));\n },\n handleLabelRemove(labelId) {\n this.selectedLabels = this.selectedLabels.filter((label) => label.id !== labelId);\n },\n },\n i18n: {\n fieldLabel: __('Labels'),\n dropdownButtonText: __('Select label'),\n listTitle: __('Select label'),\n createTitle: __('Create project label'),\n manageTitle: __('Manage project labels'),\n emptySelection: __('None'),\n },\n};\n</script>\n\n<template>\n <gl-form-group class=\"row\" label-class=\"gl-hidden\">\n <label class=\"col-12 gl-align-center gl-flex\">\n {{ $options.i18n.fieldLabel }}\n </label>\n <div class=\"col-12\">\n <div class=\"issuable-form-label-select-holder\">\n <input\n v-for=\"selectedLabel in selectedLabels\"\n :key=\"selectedLabel.id\"\n :value=\"selectedLabel.id\"\n :name=\"fieldName\"\n type=\"hidden\"\n />\n <labels-select\n class=\"block labels\"\n :allow-label-remove=\"allowLabelRemove\"\n :allow-multiselect=\"true\"\n :show-embedded-labels-list=\"true\"\n :full-path=\"fullPath\"\n :attr-workspace-path=\"attrWorkspacePath\"\n :labels-filter-base-path=\"labelsFilterBasePath\"\n :dropdown-button-text=\"$options.i18n.dropdownButtonText\"\n :labels-list-title=\"$options.i18n.listTitle\"\n :footer-create-label-title=\"$options.i18n.createTitle\"\n :footer-manage-label-title=\"$options.i18n.manageTitle\"\n :variant=\"variant\"\n :workspace-type=\"workspaceType\"\n :issuable-type=\"issuableType\"\n :label-create-type=\"labelType\"\n :selected-labels=\"selectedLabels\"\n :issuable-supports-lock-on-merge=\"issuableSupportsLockOnMerge\"\n @updateSelectedLabels=\"handleUpdateSelectedLabels\"\n @onLabelRemove=\"handleLabelRemove\"\n >\n {{ $options.i18n.emptySelection }}\n </labels-select>\n </div>\n </div>\n </gl-form-group>\n</template>\n","import { render, staticRenderFns } from \"./issuable_label_selector.vue?vue&type=template&id=206075e2\"\nimport script from \"./issuable_label_selector.vue?vue&type=script&lang=js\"\nexport * from \"./issuable_label_selector.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-form-group',{staticClass:\"row\",attrs:{\"label-class\":\"gl-hidden\"}},[_c('label',{staticClass:\"col-12 gl-align-center gl-flex\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.fieldLabel)+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"issuable-form-label-select-holder\"},[_vm._l((_vm.selectedLabels),function(selectedLabel){return _c('input',{key:selectedLabel.id,attrs:{\"name\":_vm.fieldName,\"type\":\"hidden\"},domProps:{\"value\":selectedLabel.id}})}),_vm._v(\" \"),_c('labels-select',{staticClass:\"block labels\",attrs:{\"allow-label-remove\":_vm.allowLabelRemove,\"allow-multiselect\":true,\"show-embedded-labels-list\":true,\"full-path\":_vm.fullPath,\"attr-workspace-path\":_vm.attrWorkspacePath,\"labels-filter-base-path\":_vm.labelsFilterBasePath,\"dropdown-button-text\":_vm.$options.i18n.dropdownButtonText,\"labels-list-title\":_vm.$options.i18n.listTitle,\"footer-create-label-title\":_vm.$options.i18n.createTitle,\"footer-manage-label-title\":_vm.$options.i18n.manageTitle,\"variant\":_vm.variant,\"workspace-type\":_vm.workspaceType,\"issuable-type\":_vm.issuableType,\"label-create-type\":_vm.labelType,\"selected-labels\":_vm.selectedLabels,\"issuable-supports-lock-on-merge\":_vm.issuableSupportsLockOnMerge},on:{\"updateSelectedLabels\":_vm.handleUpdateSelectedLabels,\"onLabelRemove\":_vm.handleLabelRemove}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.emptySelection)+\"\\n \")])],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport createDefaultClient from '~/lib/graphql';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport { VARIANT_EMBEDDED } from '~/sidebar/components/labels/labels_select_widget/constants';\nimport { WORKSPACE_PROJECT } from '~/issues/constants';\nimport IssuableLabelSelector from '~/vue_shared/issuable/create/components/issuable_label_selector.vue';\n\nVue.use(VueApollo);\n\nconst apolloProvider = new VueApollo({\n defaultClient: createDefaultClient(),\n});\n\nexport default () => {\n const el = document.querySelector('.js-issuable-form-label-selector');\n\n if (!el) {\n return false;\n }\n\n const {\n fieldName,\n fullPath,\n initialLabels,\n issuableType,\n labelsFilterBasePath,\n labelsManagePath,\n supportsLockOnMerge,\n } = el.dataset;\n\n return new Vue({\n el,\n apolloProvider,\n provide: {\n allowLabelCreate: true,\n allowLabelEdit: true,\n allowLabelRemove: true,\n allowScopedLabels: true,\n attrWorkspacePath: fullPath,\n fieldName,\n fullPath,\n initialLabels: JSON.parse(initialLabels),\n issuableType,\n issuableSupportsLockOnMerge: parseBoolean(supportsLockOnMerge),\n labelType: WORKSPACE_PROJECT,\n labelsFilterBasePath,\n labelsManagePath,\n variant: VARIANT_EMBEDDED,\n workspaceType: WORKSPACE_PROJECT,\n toggleAttrs: { 'data-testid': 'issuable-label-dropdown' },\n },\n render(createElement) {\n return createElement(IssuableLabelSelector);\n },\n });\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"issueCrmContactsUpdated\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issueCrmContactsUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"CrmContacts\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":203}};\n doc.loc.source = {\"body\":\"#import \\\"./issue_crm_contacts.fragment.graphql\\\"\\n\\nsubscription issueCrmContactsUpdated($id: IssuableID!) {\\n issueCrmContactsUpdated(issuableId: $id) {\\n ... on Issue {\\n ...CrmContacts\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./issue_crm_contacts.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueCrmContactsUpdated\"] = oneQuery(doc, \"issueCrmContactsUpdated\");\n \n","import { isString } from 'lodash';\nimport { capitalizeFirstCharacter } from '~/lib/utils/text_utility';\n\nconst normalizeKey = (autosaveKey) => {\n let normalizedKey;\n\n if (Array.isArray(autosaveKey) && autosaveKey.every(isString)) {\n normalizedKey = autosaveKey.join('/');\n } else if (isString(autosaveKey)) {\n normalizedKey = autosaveKey;\n } else {\n // eslint-disable-next-line @gitlab/require-i18n-strings\n throw new Error('Invalid autosave key');\n }\n\n return `autosave/${normalizedKey}`;\n};\n\nconst lockVersionKey = (autosaveKey) => `${normalizeKey(autosaveKey)}/lockVersion`;\n\nexport const clearDraft = (autosaveKey) => {\n try {\n window.localStorage.removeItem(normalizeKey(autosaveKey));\n window.localStorage.removeItem(lockVersionKey(autosaveKey));\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n};\n\nexport const getDraft = (autosaveKey) => {\n try {\n return window.localStorage.getItem(normalizeKey(autosaveKey));\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n return null;\n }\n};\n\nexport const getLockVersion = (autosaveKey) => {\n try {\n return window.localStorage.getItem(lockVersionKey(autosaveKey));\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n return null;\n }\n};\n\nexport const updateDraft = (autosaveKey, text, lockVersion) => {\n try {\n window.localStorage.setItem(normalizeKey(autosaveKey), text);\n if (lockVersion) {\n window.localStorage.setItem(lockVersionKey(autosaveKey), lockVersion);\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n};\n\nexport const getDiscussionReplyKey = (noteableType, discussionId) =>\n /* eslint-disable-next-line @gitlab/require-i18n-strings */\n ['Note', capitalizeFirstCharacter(noteableType), discussionId, 'Reply'].join('/');\n\nexport const getAutoSaveKeyFromDiscussion = (discussion) =>\n getDiscussionReplyKey(discussion.notes.slice(0, 1)[0].noteable_type, discussion.id);\n","import { __ } from '~/locale';\nimport {\n MATCH_LINE_TYPE,\n CONTEXT_LINE_TYPE,\n LINE_HOVER_CLASS_NAME,\n OLD_NO_NEW_LINE_TYPE,\n NEW_NO_NEW_LINE_TYPE,\n EMPTY_CELL_TYPE,\n CONFLICT_MARKER_OUR,\n CONFLICT_MARKER_THEIR,\n CONFLICT_THEIR,\n CONFLICT_OUR,\n EXPANDED_LINE_TYPE,\n} from '../constants';\n\nexport const isHighlighted = (highlightedRow, line, isCommented) => {\n if (isCommented) return true;\n\n const lineCode = line?.line_code;\n return lineCode ? lineCode === highlightedRow : false;\n};\n\nexport const isContextLine = (type) => type === CONTEXT_LINE_TYPE;\n\nexport const isMatchLine = (type) => type === MATCH_LINE_TYPE;\n\nexport const isMetaLine = (type) =>\n [OLD_NO_NEW_LINE_TYPE, NEW_NO_NEW_LINE_TYPE, EMPTY_CELL_TYPE].includes(type);\n\nexport const shouldRenderCommentButton = (isLoggedIn, isCommentButtonRendered) => {\n return isCommentButtonRendered && isLoggedIn;\n};\n\nexport const hasDiscussions = (line) => line?.discussions?.length > 0;\n\nexport const fileContentsId = (diffFile) => {\n return `diff-content-${diffFile.file_hash}`;\n};\n\nconst createDiffUrl = (diffFile) => {\n const url = new URL(window.location);\n url.searchParams.set('file', diffFile.file_hash);\n return url;\n};\n\nexport const createFileUrl = (diffFile) => {\n const url = createDiffUrl(diffFile);\n url.hash = fileContentsId(diffFile);\n return url;\n};\n\nexport const lineHref = (line, diffFile) => {\n if (!line || !line.line_code) return '';\n const url = createDiffUrl(diffFile);\n url.hash = line.line_code;\n return url.toString();\n};\n\nexport const lineCode = (line) => {\n if (!line) return undefined;\n return line.line_code || line.left?.line_code || line.right?.line_code;\n};\n\nexport const classNameMapCell = ({\n line,\n highlighted,\n commented,\n selectionStart,\n selectionEnd,\n isLoggedIn,\n isHover,\n}) => {\n const classes = {\n 'highlight-top': highlighted || selectionStart,\n 'highlight-bottom': highlighted || selectionEnd,\n hll: highlighted,\n commented,\n };\n\n if (line) {\n const { type } = line;\n Object.assign(classes, {\n [type]: true,\n [LINE_HOVER_CLASS_NAME]: isLoggedIn && isHover && !isContextLine(type) && !isMetaLine(type),\n old_line: type === 'old',\n new_line: type === 'new',\n });\n }\n\n return [classes];\n};\n\nexport const addCommentTooltip = (line) => {\n let tooltip;\n if (!line) {\n return tooltip;\n }\n\n tooltip = __('Add a comment to this line or drag for multiple lines');\n\n if (!line.problems) {\n return tooltip;\n }\n\n const { brokenSymlink, brokenLineCode, fileOnlyMoved } = line.problems;\n\n if (brokenSymlink) {\n if (brokenSymlink.wasSymbolic || brokenSymlink.isSymbolic) {\n tooltip = __(\n 'Commenting on symbolic links that replace or are replaced by files is not supported',\n );\n } else if (brokenSymlink.wasReal || brokenSymlink.isReal) {\n tooltip = __(\n 'Commenting on files that replace or are replaced by symbolic links is not supported',\n );\n }\n } else if (fileOnlyMoved) {\n tooltip = __('Commenting on files that are only moved or renamed is not supported');\n } else if (brokenLineCode) {\n tooltip = __('Commenting on this line is not supported');\n }\n\n return tooltip;\n};\n\nexport const parallelViewLeftLineType = ({\n line,\n highlighted,\n commented,\n selectionStart,\n selectionEnd,\n}) => {\n if (line?.right?.type === NEW_NO_NEW_LINE_TYPE) {\n return OLD_NO_NEW_LINE_TYPE;\n }\n\n const lineTypeClass = line?.left ? line.left.type : EMPTY_CELL_TYPE;\n\n return [\n lineTypeClass,\n {\n hll: highlighted,\n commented,\n 'highlight-top': highlighted || selectionStart,\n 'highlight-bottom': highlighted || selectionEnd,\n },\n ];\n};\n\n// eslint-disable-next-line max-params\nexport const shouldShowCommentButton = (hover, context, meta, discussions) => {\n return hover && !context && !meta && !discussions;\n};\n\nexport const mapParallel =\n ({ diffFile, hasParallelDraftLeft, hasParallelDraftRight, draftsForLine }) =>\n (line) => {\n let { left, right } = line;\n\n // Dicussions/Comments\n const hasExpandedDiscussionOnLeft =\n left?.discussions?.length > 0 ? left?.discussionsExpanded : false;\n const hasExpandedDiscussionOnRight =\n right?.discussions?.length > 0 ? right?.discussionsExpanded : false;\n\n const renderCommentRow =\n hasExpandedDiscussionOnLeft ||\n hasExpandedDiscussionOnRight ||\n left?.hasForm ||\n right?.hasForm;\n\n if (left) {\n left = {\n ...left,\n renderDiscussion: hasExpandedDiscussionOnLeft,\n hasDraft: hasParallelDraftLeft(diffFile.file_hash, line),\n lineDrafts: draftsForLine(diffFile.file_hash, line, 'left'),\n hasCommentForm: left.hasForm,\n isConflictMarker:\n line.left.type === CONFLICT_MARKER_OUR || line.left.type === CONFLICT_MARKER_THEIR,\n emptyCellClassMap: { conflict_our: line.right?.type === CONFLICT_THEIR },\n addCommentTooltip: addCommentTooltip(line.left),\n };\n }\n if (right) {\n right = {\n ...right,\n renderDiscussion: Boolean(\n hasExpandedDiscussionOnRight && right.type && right.type !== EXPANDED_LINE_TYPE,\n ),\n hasDraft: hasParallelDraftRight(diffFile.file_hash, line),\n lineDrafts: draftsForLine(diffFile.file_hash, line, 'right'),\n hasCommentForm: Boolean(right.hasForm && right.type && right.type !== EXPANDED_LINE_TYPE),\n emptyCellClassMap: { conflict_their: line.left?.type === CONFLICT_OUR },\n addCommentTooltip: addCommentTooltip(line.right),\n };\n }\n\n return {\n ...line,\n left,\n right,\n isMatchLineLeft: isMatchLine(left?.type),\n isMatchLineRight: isMatchLine(right?.type),\n isContextLineLeft: isContextLine(left?.type),\n isContextLineRight: isContextLine(right?.type),\n hasDiscussionsLeft: hasDiscussions(left),\n hasDiscussionsRight: hasDiscussions(right),\n lineHrefOld: lineHref(left, diffFile),\n lineHrefNew: lineHref(right, diffFile),\n lineCode: lineCode(line),\n isMetaLineLeft: isMetaLine(left?.type),\n isMetaLineRight: isMetaLine(right?.type),\n draftRowClasses: left?.hasDraft || right?.hasDraft ? '' : 'js-temp-notes-holder',\n renderCommentRow,\n commentRowClasses:\n hasDiscussions(left) || hasDiscussions(right) ? '' : 'js-temp-notes-holder',\n };\n };\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"projectMilestones\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MilestoneStateEnum\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attributes\"},\"name\":{\"kind\":\"Name\",\"value\":\"milestones\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTitle\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"sort\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"EXPIRED_LAST_DUE_DATE_ASC\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"},\"value\":{\"kind\":\"IntValue\",\"value\":\"20\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestors\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MilestoneFragment\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":419}};\n doc.loc.source = {\"body\":\"#import \\\"./milestone.fragment.graphql\\\"\\n\\nquery projectMilestones($fullPath: ID!, $title: String, $state: MilestoneStateEnum) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n attributes: milestones(\\n searchTitle: $title\\n state: $state\\n sort: EXPIRED_LAST_DUE_DATE_ASC\\n first: 20\\n includeAncestors: true\\n ) {\\n nodes {\\n ...MilestoneFragment\\n state\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./milestone.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"projectMilestones\"] = oneQuery(doc, \"projectMilestones\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemLinkedItems\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"namespace\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemLinkedItemsFragment\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":249}};\n doc.loc.source = {\"body\":\"#import \\\"./work_item_linked_items.fragment.graphql\\\"\\n\\nquery workItemLinkedItems($fullPath: ID!, $iid: String!) {\\n workspace: namespace(fullPath: $fullPath) {\\n id\\n workItem(iid: $iid) {\\n id\\n ...WorkItemLinkedItemsFragment\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./work_item_linked_items.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"workItemLinkedItems\"] = oneQuery(doc, \"workItemLinkedItems\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignNotePermissions\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NotePermissions\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"adminNote\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"repositionNote\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"awardEmoji\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":96}};\n doc.loc.source = {\"body\":\"fragment DesignNotePermissions on NotePermissions {\\n adminNote\\n repositionNote\\n awardEmoji\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"DesignNotePermissions\"] = oneQuery(doc, \"DesignNotePermissions\");\n \n","import { extend } from '../../vue';\nimport { NAME_FORM_RADIO_GROUP } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { props as props$1, formRadioCheckGroupMixin } from '../../mixins/form-radio-check-group';\n\n// --- Props ---\n\nconst props = makePropsConfigurable(props$1, NAME_FORM_RADIO_GROUP);\n\n// --- Main component ---\n\n// @vue/component\nconst BFormRadioGroup = /*#__PURE__*/extend({\n name: NAME_FORM_RADIO_GROUP,\n mixins: [formRadioCheckGroupMixin],\n provide() {\n return {\n getBvRadioGroup: () => this\n };\n },\n props,\n computed: {\n isRadioGroup() {\n return true;\n }\n }\n});\n\nexport { BFormRadioGroup, props };\n","import { formOptionsMixin } from '../../../../vendor/bootstrap-vue/src/mixins/form-options';\nimport { BFormRadioGroup } from '../../../../vendor/bootstrap-vue/src/components/form-radio/form-radio-group';\nimport { SafeHtmlDirective } from '../../../../directives/safe_html/safe_html';\nimport GlFormRadio from '../form_radio/form_radio';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst {\n model\n} = BFormRadioGroup.options;\nvar script = {\n name: 'GlFormRadioGroup',\n components: {\n BFormRadioGroup,\n GlFormRadio\n },\n directives: {\n SafeHtml: SafeHtmlDirective\n },\n mixins: [formOptionsMixin],\n inheritAttrs: false,\n model,\n methods: {\n onInput(e) {\n /**\n * Emitted when the selected value is changed.\n *\n * @event input\n */\n this.$emit('input', e);\n },\n onChange(e) {\n /**\n * Emitted when the selected value is changed.\n *\n * @event change\n */\n this.$emit('change', e);\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-radio-group',_vm._g(_vm._b({staticClass:\"gl-form-checkbox-group\",attrs:{\"stacked\":\"\"},on:{\"input\":_vm.onInput,\"change\":_vm.onChange}},'b-form-radio-group',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"first\"),_vm._v(\" \"),_vm._l((_vm.formOptions),function(option,idx){return _c('gl-form-radio',{key:idx,attrs:{\"value\":option.value,\"disabled\":option.disabled}},[(option.html)?_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(option.html),expression:\"option.html\"}]}):_c('span',[_vm._v(_vm._s(option.text))])])}),_vm._v(\" \"),_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","export const MINIMUM_SEARCH_LENGTH = 3;\n\nexport const TYPENAME_BOARD = 'Board';\nexport const TYPENAME_CI_BUILD = 'Ci::Build';\nexport const TYPENAME_CI_RUNNER = 'Ci::Runner';\nexport const TYPENAME_CI_PIPELINE = 'Ci::Pipeline';\nexport const TYPENAME_CI_STAGE = 'Ci::Stage';\nexport const TYPENAME_CI_TRIGGER = 'Ci::Trigger';\nexport const TYPENAME_CI_VARIABLE = 'Ci::Variable';\nexport const TYPENAME_COMMIT_STATUS = 'CommitStatus';\nexport const TYPENAME_CONTAINER_REPOSITORY = 'ContainerRepository';\nexport const TYPENAME_CRM_CONTACT = 'CustomerRelations::Contact';\nexport const TYPENAME_CRM_ORGANIZATION = 'CustomerRelations::Organization';\nexport const TYPENAME_DESIGN_VERSION = 'DesignManagement::Version';\nexport const TYPENAME_DISCUSSION = 'Discussion';\nexport const TYPENAME_DISCUSSION_NOTE = 'DiscussionNote';\nexport const TYPENAME_EPIC = 'Epic';\nexport const TYPENAME_EPIC_BOARD = 'Boards::EpicBoard';\nexport const TYPENAME_FEATURE_FLAG = 'FeatureFlag';\nexport const TYPENAME_GROUP = 'Group';\nexport const TYPENAME_ISSUE = 'Issue';\nexport const TYPENAME_ITERATION = 'Iteration';\nexport const TYPENAME_ITERATIONS_CADENCE = 'Iterations::Cadence';\nexport const TYPENAME_LABEL = 'Label';\nexport const TYPENAME_MEMBER_ROLE = 'MemberRole';\nexport const TYPENAME_MERGE_REQUEST = 'MergeRequest';\nexport const TYPENAME_MILESTONE = 'Milestone';\nexport const TYPENAME_NOTE = 'Note';\nexport const TYPENAME_PACKAGES_PACKAGE = 'Packages::Package';\nexport const TYPENAME_PROJECT = 'Project';\nexport const TYPENAME_SCANNER_PROFILE = 'DastScannerProfile';\nexport const TYPENAME_SITE_PROFILE = 'DastSiteProfile';\nexport const TYPENAME_TODO = 'Todo';\nexport const TYPENAME_USER = 'User';\nexport const TYPENAME_VULNERABILITY = 'Vulnerability';\nexport const TYPENAME_WORK_ITEM = 'WorkItem';\nexport const TYPENAME_WORK_ITEM_RELATED_BRANCH = 'WorkItemRelatedBranch';\nexport const TYPE_ORGANIZATION = 'Organizations::Organization';\nexport const TYPE_USERS_SAVED_REPLY = 'Users::SavedReply';\nexport const TYPE_WORKSPACE = 'RemoteDevelopment::Workspace';\nexport const TYPE_COMPLIANCE_FRAMEWORK = 'ComplianceManagement::Framework';\n\nexport const QUERY_PARAM_START_CURSOR = 'start_cursor';\nexport const QUERY_PARAM_END_CURSOR = 'end_cursor';\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestTimeTracking\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestTimeTrackingFragment\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"humanTimeEstimate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timeEstimate\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":335}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/merge_request_time_tracking.fragment.graphql\\\"\\n\\nquery mergeRequestTimeTracking($fullPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: mergeRequest(iid: $iid) {\\n ...MergeRequestTimeTrackingFragment\\n humanTimeEstimate\\n timeEstimate\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/merge_request_time_tracking.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"mergeRequestTimeTracking\"] = oneQuery(doc, \"mergeRequestTimeTracking\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.error)?_c('gl-alert',{staticClass:\"gl-mb-3\",attrs:{\"variant\":\"danger\"},on:{\"dismiss\":_vm.unsetError}},[_vm._v(\"\\n \"+_vm._s(_vm.error)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('gl-token-selector',{ref:\"tokenSelector\",attrs:{\"dropdown-items\":_vm.availableWorkItems,\"loading\":_vm.isLoading,\"placeholder\":_vm.$options.i18n.addInputPlaceholder,\"menu-class\":\"gl-dropdown-menu-wide dropdown-reduced-height !gl-min-h-7\",\"container-class\":_vm.tokenSelectorContainerClass,\"data-testid\":\"work-item-token-select-input\",\"text-input-attrs\":_vm.textInputAttrs},on:{\"text-input\":_vm.debouncedSearchKeyUpdate,\"focus\":_vm.handleFocus,\"token-add\":_vm.focusInputText,\"token-remove\":_vm.focusInputText,\"blur\":_vm.handleBlur},nativeOn:{\"mouseover\":function($event){return _vm.handleMouseOver.apply(null, arguments)},\"mouseout\":function($event){return _vm.handleMouseOut.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"token-content\",fn:function({ token }){return [_vm._v(\" \"+_vm._s(token.iid)+\" \"+_vm._s(token.title)+\" \")]}},{key:\"dropdown-item-content\",fn:function({ dropdownItem }){return [_c('div',{staticClass:\"gl-flex\"},[_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(_vm.formatResults(dropdownItem.iid)),expression:\"formatResults(dropdownItem.iid)\",arg:_vm.$options.safeHtmlConfig}],staticClass:\"gl-mr-4 gl-text-sm gl-text-subtle\"}),_vm._v(\" \"),_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(_vm.formatResults(dropdownItem.title)),expression:\"formatResults(dropdownItem.title)\",arg:_vm.$options.safeHtmlConfig}],staticClass:\"gl-truncate\"})])]}},{key:\"no-results-content\",fn:function(){return [_c('span',{attrs:{\"data-testid\":\"no-match-found-namespace-message\"}},[_vm._v(_vm._s(_vm.$options.i18n.noMatchesFoundMessage))])]},proxy:true}]),model:{value:(_vm.workItemsToAdd),callback:function ($$v) {_vm.workItemsToAdd=$$v},expression:\"workItemsToAdd\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_token_input.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_token_input.vue?vue&type=script&lang=js\"","<script>\nimport { GlTokenSelector, GlAlert } from '@gitlab/ui';\nimport { debounce, escape } from 'lodash';\n\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { isNumeric } from '~/lib/utils/number_utils';\nimport { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { isValidURL } from '~/lib/utils/url_utility';\nimport { highlighter } from 'ee_else_ce/gfm_auto_complete';\nimport workItemAncestorsQuery from '../../graphql/work_item_ancestors.query.graphql';\n\nimport groupWorkItemsQuery from '../../graphql/group_work_items.query.graphql';\nimport projectWorkItemsQuery from '../../graphql/project_work_items.query.graphql';\nimport workItemsByReferencesQuery from '../../graphql/work_items_by_references.query.graphql';\nimport {\n WORK_ITEMS_TYPE_MAP,\n I18N_WORK_ITEM_SEARCH_INPUT_PLACEHOLDER,\n I18N_WORK_ITEM_SEARCH_ERROR,\n I18N_WORK_ITEM_NO_MATCHES_FOUND,\n sprintfWorkItem,\n} from '../../constants';\nimport { formatAncestors, isReference } from '../../utils';\n\nexport default {\n components: {\n GlTokenSelector,\n GlAlert,\n },\n directives: { SafeHtml },\n props: {\n value: {\n type: Array,\n required: false,\n default: () => [],\n },\n fullPath: {\n type: String,\n required: true,\n },\n isGroup: {\n type: Boolean,\n required: false,\n default: false,\n },\n childrenType: {\n type: String,\n required: false,\n default: '',\n },\n childrenIds: {\n type: Array,\n required: false,\n default: () => [],\n },\n parentWorkItemId: {\n type: String,\n required: true,\n },\n areWorkItemsToAddValid: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n apollo: {\n workspaceWorkItems: {\n query() {\n return this.isGroup ? groupWorkItemsQuery : projectWorkItemsQuery;\n },\n variables() {\n return this.queryVariables;\n },\n skip() {\n return !this.searchStarted || this.isSearchingByReference;\n },\n update(data) {\n return [\n ...this.filterItems(data.workspace.workItemsByIid?.nodes),\n ...this.filterItems(data.workspace.workItems?.nodes),\n ];\n },\n error() {\n this.error = sprintfWorkItem(I18N_WORK_ITEM_SEARCH_ERROR, this.childrenTypeName);\n },\n },\n workItemsByReference: {\n query: workItemsByReferencesQuery,\n variables() {\n return {\n contextNamespacePath: this.fullPath,\n refs: [this.searchTerm],\n };\n },\n skip() {\n return !this.isSearchingByReference;\n },\n update(data) {\n return this.filterItems(data.workItemsByReference.nodes);\n },\n error() {\n this.error = sprintfWorkItem(I18N_WORK_ITEM_SEARCH_ERROR, this.childrenTypeName);\n },\n },\n ancestorIds: {\n query: workItemAncestorsQuery,\n variables() {\n return {\n id: this.parentWorkItemId,\n };\n },\n update(data) {\n return formatAncestors(data.workItem).flatMap((ancestor) => [ancestor.id]);\n },\n skip() {\n return !this.parentWorkItemId;\n },\n },\n },\n data() {\n return {\n ancestorIds: [],\n workspaceWorkItems: [],\n workItemsByReference: [],\n searchTerm: '',\n searchStarted: false,\n error: '',\n textInputAttrs: {\n class: '!gl-min-w-fit',\n 'aria-label': I18N_WORK_ITEM_SEARCH_INPUT_PLACEHOLDER,\n },\n };\n },\n computed: {\n availableWorkItems() {\n return this.isSearchingByReference ? this.workItemsByReference : this.workspaceWorkItems;\n },\n isSearchingByReference() {\n return isReference(this.searchTerm) || isValidURL(this.searchTerm);\n },\n workItemsToAdd: {\n get() {\n return this.value;\n },\n set(workItemsToAdd) {\n this.$emit('input', workItemsToAdd);\n },\n },\n isLoading() {\n return (\n this.$apollo.queries.workspaceWorkItems.loading ||\n this.$apollo.queries.workItemsByReference.loading\n );\n },\n childrenTypeName() {\n return WORK_ITEMS_TYPE_MAP[this.childrenType]?.name;\n },\n tokenSelectorContainerClass() {\n return !this.areWorkItemsToAddValid ? '!gl-shadow-inner-1-red-500' : '';\n },\n queryVariables() {\n const variables = {\n fullPath: this.fullPath,\n searchTerm: this.searchTerm,\n types: this.childrenType ? [this.childrenType] : [],\n in: this.searchTerm ? 'TITLE' : undefined,\n iid: isNumeric(this.searchTerm) ? this.searchTerm : null,\n searchByIid: isNumeric(this.searchTerm),\n searchByText: true,\n };\n\n if (this.isGroup) {\n variables.includeAncestors = true;\n variables.includeDescendants = true;\n }\n\n return variables;\n },\n },\n created() {\n this.debouncedSearchKeyUpdate = debounce(this.setSearchKey, DEFAULT_DEBOUNCE_AND_THROTTLE_MS);\n },\n methods: {\n getIdFromGraphQLId,\n async setSearchKey(value) {\n this.searchTerm = value;\n },\n handleFocus() {\n this.searchStarted = true;\n this.$emit('searching', true);\n },\n handleMouseOver() {\n this.timeout = setTimeout(() => {\n this.searchStarted = true;\n }, DEFAULT_DEBOUNCE_AND_THROTTLE_MS);\n },\n handleMouseOut() {\n clearTimeout(this.timeout);\n },\n handleBlur() {\n this.$emit('searching', false);\n },\n focusInputText() {\n this.$nextTick(() => {\n if (this.areWorkItemsToAddValid) {\n this.$refs.tokenSelector.focusTextInput();\n }\n });\n },\n formatResults(input) {\n const escapedInput = escape(input);\n\n if (!this.searchTerm) {\n return escapedInput;\n }\n\n return highlighter(`<span class=\"gl-text-default\">${escapedInput}</span>`, this.searchTerm);\n },\n unsetError() {\n this.error = '';\n },\n filterItems(items) {\n return (\n items?.filter((wi) => {\n return (\n !this.childrenIds.includes(wi.id) &&\n this.parentWorkItemId !== wi.id &&\n !this.ancestorIds.includes(wi.id)\n );\n }) || []\n );\n },\n },\n i18n: {\n noMatchesFoundMessage: I18N_WORK_ITEM_NO_MATCHES_FOUND,\n addInputPlaceholder: I18N_WORK_ITEM_SEARCH_INPUT_PLACEHOLDER,\n },\n safeHtmlConfig: { ADD_TAGS: ['strong', 'span'] },\n};\n</script>\n<template>\n <div>\n <gl-alert v-if=\"error\" variant=\"danger\" class=\"gl-mb-3\" @dismiss=\"unsetError\">\n {{ error }}\n </gl-alert>\n <gl-token-selector\n ref=\"tokenSelector\"\n v-model=\"workItemsToAdd\"\n :dropdown-items=\"availableWorkItems\"\n :loading=\"isLoading\"\n :placeholder=\"$options.i18n.addInputPlaceholder\"\n menu-class=\"gl-dropdown-menu-wide dropdown-reduced-height !gl-min-h-7\"\n :container-class=\"tokenSelectorContainerClass\"\n data-testid=\"work-item-token-select-input\"\n :text-input-attrs=\"textInputAttrs\"\n @text-input=\"debouncedSearchKeyUpdate\"\n @focus=\"handleFocus\"\n @mouseover.native=\"handleMouseOver\"\n @mouseout.native=\"handleMouseOut\"\n @token-add=\"focusInputText\"\n @token-remove=\"focusInputText\"\n @blur=\"handleBlur\"\n >\n <template #token-content=\"{ token }\"> {{ token.iid }} {{ token.title }} </template>\n <template #dropdown-item-content=\"{ dropdownItem }\">\n <div class=\"gl-flex\">\n <div\n v-safe-html:[$options.safeHtmlConfig]=\"formatResults(dropdownItem.iid)\"\n class=\"gl-mr-4 gl-text-sm gl-text-subtle\"\n ></div>\n <div\n v-safe-html:[$options.safeHtmlConfig]=\"formatResults(dropdownItem.title)\"\n class=\"gl-truncate\"\n ></div>\n </div>\n </template>\n <template #no-results-content>\n <span data-testid=\"no-match-found-namespace-message\">{{\n $options.i18n.noMatchesFoundMessage\n }}</span>\n </template>\n </gl-token-selector>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_token_input.vue?vue&type=template&id=5af6f7a0\"\nimport script from \"./work_item_token_input.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_token_input.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"data-testid\":\"dropdown-footer\"}},[(_vm.allowLabelCreate)?_c('gl-dropdown-item',{attrs:{\"data-testid\":\"create-label-button\"},nativeOn:{\"!click\":function($event){$event.stopPropagation();return _vm.$emit('toggleDropdownContentsCreateView')}}},[_vm._v(\"\\n \"+_vm._s(_vm.footerCreateLabelTitle)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showManageLabelsItem)?_c('gl-dropdown-item',{attrs:{\"data-testid\":\"manage-labels-button\",\"href\":_vm.labelsManagePath},nativeOn:{\"!click\":function($event){$event.stopPropagation();}}},[_vm._v(\"\\n \"+_vm._s(_vm.footerManageLabelTitle)+\"\\n \")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_footer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_footer.vue?vue&type=script&lang=js\"","<script>\nimport { GlDropdownItem } from '@gitlab/ui';\n\nexport default {\n components: {\n GlDropdownItem,\n },\n inject: ['allowLabelCreate', 'labelsManagePath'],\n props: {\n footerCreateLabelTitle: {\n type: String,\n required: true,\n },\n footerManageLabelTitle: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n showManageLabelsItem() {\n return this.footerManageLabelTitle && this.labelsManagePath;\n },\n },\n};\n</script>\n\n<template>\n <div data-testid=\"dropdown-footer\">\n <gl-dropdown-item\n v-if=\"allowLabelCreate\"\n data-testid=\"create-label-button\"\n @click.capture.native.stop=\"$emit('toggleDropdownContentsCreateView')\"\n >\n {{ footerCreateLabelTitle }}\n </gl-dropdown-item>\n <gl-dropdown-item\n v-if=\"showManageLabelsItem\"\n data-testid=\"manage-labels-button\"\n :href=\"labelsManagePath\"\n @click.capture.native.stop\n >\n {{ footerManageLabelTitle }}\n </gl-dropdown-item>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_footer.vue?vue&type=template&id=77bef9ca\"\nimport script from \"./dropdown_footer.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_footer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-badge',{staticClass:\"gl-align-middle\",attrs:{\"variant\":_vm.workItemStateVariant,\"icon\":_vm.workItemStateIcon}},[_vm._v(\"\\n \"+_vm._s(_vm.stateText)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_state_badge.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_state_badge.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport { STATE_OPEN } from '../constants';\n\nexport default {\n components: {\n GlBadge,\n },\n props: {\n workItemState: {\n type: String,\n required: true,\n },\n showIcon: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n computed: {\n isWorkItemOpen() {\n return this.workItemState === STATE_OPEN;\n },\n stateText() {\n return this.isWorkItemOpen ? __('Open') : __('Closed');\n },\n workItemStateIcon() {\n if (!this.showIcon) {\n return null;\n }\n\n return this.isWorkItemOpen ? 'issue-open-m' : 'issue-close';\n },\n workItemStateVariant() {\n return this.isWorkItemOpen ? 'success' : 'info';\n },\n },\n};\n</script>\n\n<template>\n <gl-badge :variant=\"workItemStateVariant\" :icon=\"workItemStateIcon\" class=\"gl-align-middle\">\n {{ stateText }}\n </gl-badge>\n</template>\n","import { render, staticRenderFns } from \"./work_item_state_badge.vue?vue&type=template&id=0bdc13f7\"\nimport script from \"./work_item_state_badge.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_state_badge.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.TaskList=t():e.TaskList=t()}(window,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=0)}([function(e,t){var n,r,i,a,s=[].indexOf;n=function(e){return Array.prototype.slice.apply(e)},i=function(e,t){for(;e&&!e.classList.contains(t);)e=e.parentNode;return e},a=function(e,t){var n;return\"function\"==typeof Event?(n=new Event(e,{bubbles:!0,cancelable:!0})).detail=t:(n=document.createEvent(\"CustomEvent\")).initCustomEvent(e,!0,!0,t),n},r=function(){class e{constructor(e){this.el=e,this.container=i(this.el,\"js-task-list-container\"),this.field=this.container.querySelector(\".js-task-list-field\"),this.container.addEventListener(\"change\",e=>{if(e.target.classList.contains(\"task-list-item-checkbox\"))return this.updateTaskList(e.target)}),this.enable()}enable(){var e;if(this.container.querySelectorAll(\".js-task-list-field\").length>0)return n(this.container.querySelectorAll(\".task-list-item\")).forEach((function(e){return e.classList.add(\"enabled\")})),n(this.container.querySelectorAll(\".task-list-item-checkbox\")).forEach((function(e){return e.disabled=!1})),this.container.classList.add(\"is-task-list-enabled\"),e=a(\"tasklist:enabled\"),this.container.dispatchEvent(e)}disable(){var e;return n(this.container.querySelectorAll(\".task-list-item\")).forEach((function(e){return e.classList.remove(\"enabled\")})),n(this.container.querySelectorAll(\".task-list-item-checkbox\")).forEach((function(e){return e.disabled=!0})),this.container.classList.remove(\"is-task-list-enabled\"),e=a(\"tasklist:disabled\"),this.container.dispatchEvent(e)}updateTaskList(t){var r,i,s,c,l,o,u;if(s=this.container.querySelectorAll(\".task-list-item-checkbox\"),c=1+n(s).indexOf(t),r=a(\"tasklist:change\",{index:c,checked:t.checked}),this.field.dispatchEvent(r),!r.defaultPrevented)return({result:u,lineNumber:l,lineSource:o}=e.updateSource(this.field.value,c,t.checked,t)),this.field.value=u,r=a(\"change\"),this.field.dispatchEvent(r),i=a(\"tasklist:changed\",{index:c,checked:t.checked,lineNumber:l,lineSource:o}),this.field.dispatchEvent(i)}static escapePattern(e){return e.replace(/([\\[\\]])/g,\"\\\\$1\").replace(/\\s/,\"\\\\s\").replace(\"x\",\"[xX]\")}static updateSource(e,t,n,r){return r.parentElement.hasAttribute(\"data-sourcepos\")?this._updateSourcePosition(e,r,n):this._updateSourceRegex(e,t,n)}static _updateSourcePosition(e,t,n){var r,i,a,s,c;return s=e.split(\"\\n\"),c=t.parentElement.getAttribute(\"data-sourcepos\"),a=s[(i=parseInt(c.split(\":\")[0]))-1],r=n?a.replace(this.incompletePattern,this.complete):a.replace(this.completePattern,this.incomplete),s[i-1]=r,{result:s.join(\"\\n\"),lineNumber:i,lineSource:a}}static _updateSourceRegex(e,t,n){var r,i,a,c,l,o,u,p;return p=e.split(\"\\n\"),r=e.replace(/\\r/g,\"\").replace(this.itemsInParasPattern,\"\").split(\"\\n\"),c=0,a=!1,{result:function(){var e,d,f;for(f=[],i=e=0,d=p.length;e<d;i=++e)l=p[i],a?l.match(this.endFencesPattern)&&(a=!1):l.match(this.startFencesPattern)?a=!0:s.call(r,l)>=0&&l.trim().match(this.itemPattern)&&(c+=1)===t&&(o=i+1,u=l,l=n?l.replace(this.incompletePattern,this.complete):l.replace(this.completePattern,this.incomplete)),f.push(l);return f}.call(this).join(\"\\n\"),lineNumber:o,lineSource:u}}}return e.incomplete=\"[ ]\",e.complete=\"[x]\",e.incompletePattern=RegExp(`${e.escapePattern(e.incomplete)}`),e.completePattern=RegExp(`${e.escapePattern(e.complete)}`),e.itemPattern=RegExp(`^(?:\\\\s*(?:>\\\\s*)*(?:[-+*]|(?:\\\\d+\\\\.)))\\\\s*(${e.escapePattern(e.complete)}|${e.escapePattern(e.incomplete)})\\\\s`),e.startFencesPattern=/^`{3}.*$/,e.endFencesPattern=/^`{3}$/,e.itemsInParasPattern=RegExp(`^(${e.escapePattern(e.complete)}|${e.escapePattern(e.incomplete)}).+$`,\"g\"),e}.call(this),\"undefined\"!=typeof jQuery&&(jQuery.fn.taskList=function(e){return this.each((function(t,n){var i;if((i=jQuery(n).data(\"task-list\"))||(i=new r(n),jQuery(n).data(\"task-list\",i),e&&\"enable\"!==e))return i[e||\"enable\"]()}))}),e.exports=r}])}));","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"Author\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"username\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":82}};\n doc.loc.source = {\"body\":\"fragment Author on User {\\n id\\n avatarUrl\\n name\\n username\\n webUrl\\n webPath\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"Author\"] = oneQuery(doc, \"Author\");\n \n","import {\n getTimeago,\n localeDateFormat,\n newDate,\n timeagoLanguageCode,\n} from '~/lib/utils/datetime_utility';\n\n/**\n * Mixin with time ago methods used in some vue components\n */\nexport default {\n methods: {\n timeFormatted(time, format) {\n const timeago = getTimeago(format);\n\n return timeago.format(newDate(time), timeagoLanguageCode);\n },\n\n tooltipTitle(time) {\n return localeDateFormat.asDateTimeFull.format(newDate(time));\n },\n },\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"alertAssignees\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"domain\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AlertManagementDomainFilter\"}},\"defaultValue\":{\"kind\":\"EnumValue\",\"value\":\"threat_monitoring\"},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"alertManagementAlert\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"domain\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"domain\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignees\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserAvailability\"},\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":497}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/user_availability.fragment.graphql\\\"\\n\\nquery alertAssignees(\\n $domain: AlertManagementDomainFilter = threat_monitoring\\n $fullPath: ID!\\n $iid: String!\\n) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: alertManagementAlert(domain: $domain, iid: $iid) {\\n id\\n iid\\n assignees {\\n nodes {\\n ...User\\n ...UserAvailability\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user_availability.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"alertAssignees\"] = oneQuery(doc, \"alertAssignees\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isLoading)?_c('gl-loading-icon',{attrs:{\"size\":\"lg\"}}):_c('gl-table-lite',{attrs:{\"items\":_vm.report,\"fields\":_vm.$options.fields,\"foot-clone\":\"\"},scopedSlots:_vm._u([{key:\"cell(spentAt)\",fn:function({ item: { spentAt } }){return [_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.formatDate(spentAt)),expression:\"formatDate(spentAt)\"}]},[_vm._v(\"\\n \"+_vm._s(_vm.formatShortDate(spentAt))+\"\\n \")])]}},{key:\"foot(spentAt)\",fn:function(){return [_vm._v(\" \")]},proxy:true},{key:\"cell(timeSpent)\",fn:function({ item: { timeSpent } }){return [_vm._v(\"\\n \"+_vm._s(_vm.formatTimeSpent(timeSpent))+\"\\n \")]}},{key:\"foot(timeSpent)\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.totalTimeSpent)+\"\\n \")]},proxy:true},{key:\"cell(user)\",fn:function({ item: { user } }){return [_vm._v(\"\\n \"+_vm._s(user.name)+\"\\n \")]}},{key:\"foot(user)\",fn:function(){return [_vm._v(\" \")]},proxy:true},{key:\"cell(summary)\",fn:function({ item: { summary, note } }){return [_vm._v(\"\\n \"+_vm._s(_vm.getSummary(summary, note))+\"\\n \")]}},{key:\"foot(summary)\",fn:function(){return [_vm._v(\" \")]},proxy:true},{key:\"cell(actions)\",fn:function({ item: { id, userPermissions } }){return [(userPermissions.adminTimelog)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.$options.i18n.deleteButtonText),expression:\"$options.i18n.deleteButtonText\"}],attrs:{\"category\":\"tertiary\",\"icon\":\"remove\",\"variant\":\"danger\",\"aria-label\":_vm.$options.i18n.deleteButtonText,\"loading\":_vm.isDeletingTimelog(id)},on:{\"click\":function($event){return _vm.deleteTimelog(id)}}}):_vm._e()]}},{key:\"foot(actions)\",fn:function(){return [_vm._v(\" \")]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./time_tracking_report.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./time_tracking_report.vue?vue&type=script&lang=js\"","<script>\nimport { GlLoadingIcon, GlTableLite, GlButton, GlTooltipDirective } from '@gitlab/ui';\nimport produce from 'immer';\nimport { createAlert } from '~/alert';\nimport { TYPENAME_ISSUE, TYPENAME_MERGE_REQUEST } from '~/graphql_shared/constants';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport {\n localeDateFormat,\n newDate,\n parseSeconds,\n stringifyTime,\n} from '~/lib/utils/datetime_utility';\nimport { __, s__ } from '~/locale';\nimport { WIDGET_TYPE_TIME_TRACKING } from '~/work_items/constants';\nimport workItemByIidQuery from '~/work_items/graphql/work_item_by_iid.query.graphql';\nimport { timelogQueries } from '../../queries/constants';\nimport deleteTimelogMutation from '../../queries/delete_timelog.mutation.graphql';\n\nexport default {\n i18n: {\n deleteButtonText: s__('TimeTracking|Delete time spent'),\n },\n components: {\n GlLoadingIcon,\n GlTableLite,\n GlButton,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n inject: {\n fullPath: {\n default: null,\n },\n issuableType: {\n default: null,\n },\n },\n props: {\n limitToHours: {\n type: Boolean,\n default: false,\n required: false,\n },\n issuableId: {\n type: String,\n required: false,\n default: '',\n },\n timelogs: {\n type: Array,\n required: false,\n default: undefined,\n },\n workItemIid: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n report: this.timelogs ?? [],\n removingIds: [],\n };\n },\n apollo: {\n report: {\n query() {\n return timelogQueries[this.issuableType].query;\n },\n variables() {\n const type = this.issuableType === TYPE_ISSUE ? TYPENAME_ISSUE : TYPENAME_MERGE_REQUEST;\n return {\n id: convertToGraphQLId(type, this.issuableId),\n };\n },\n update(data) {\n const timelogs = data?.issuable?.timelogs?.nodes || [];\n return timelogs.slice().sort((a, b) => new Date(a.spentAt) - new Date(b.spentAt));\n },\n error() {\n createAlert({ message: __('Something went wrong. Please try again.') });\n },\n skip() {\n return Boolean(this.timelogs);\n },\n },\n // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n workItem: {\n query: workItemByIidQuery,\n variables() {\n return {\n fullPath: this.fullPath,\n iid: this.workItemIid,\n };\n },\n update(data) {\n return data.workspace.workItem ?? {};\n },\n skip() {\n return !this.workItemIid;\n },\n },\n },\n computed: {\n isLoading() {\n return this.$apollo.queries.report.loading || this.$apollo.queries.workItem.loading;\n },\n totalTimeSpent() {\n const seconds = this.report.reduce((acc, item) => acc + item.timeSpent, 0);\n return this.formatTimeSpent(seconds);\n },\n },\n watch: {\n timelogs(timelogs) {\n this.report = timelogs;\n },\n },\n methods: {\n isDeletingTimelog(timelogId) {\n return this.removingIds.includes(timelogId);\n },\n formatDate(date) {\n return localeDateFormat.asDateTimeFull.format(newDate(date));\n },\n formatShortDate(date) {\n return localeDateFormat.asDate.format(newDate(date));\n },\n getSummary(summary, note) {\n return summary ?? note?.body;\n },\n formatTimeSpent(seconds) {\n const negative = seconds < 0;\n return (\n (negative ? '- ' : '') +\n stringifyTime(parseSeconds(seconds, { limitToHours: this.limitToHours }))\n );\n },\n deleteTimelog(timelogId) {\n this.removingIds.push(timelogId);\n this.$apollo\n .mutate({\n mutation: deleteTimelogMutation,\n variables: { input: { id: timelogId } },\n update: (store) => {\n if (!this.workItemIid) {\n return;\n }\n store.updateQuery(\n {\n query: workItemByIidQuery,\n variables: { fullPath: this.fullPath, iid: this.workItemIid },\n },\n (sourceData) =>\n produce(sourceData, (draftState) => {\n const timeTrackingWidget = draftState.workspace.workItem.widgets.find(\n (widget) => widget.type === WIDGET_TYPE_TIME_TRACKING,\n );\n const timelogs = timeTrackingWidget.timelogs.nodes;\n const index = timelogs.findIndex((timelog) => timelog.id === timelogId);\n\n timeTrackingWidget.totalTimeSpent -= timelogs[index].timeSpent;\n timelogs.splice(index, 1);\n }),\n );\n },\n })\n .then(({ data }) => {\n if (data.timelogDelete?.errors?.length) {\n throw new Error(data.timelogDelete.errors[0]);\n }\n })\n .catch((error) => {\n createAlert({\n message: s__('TimeTracking|An error occurred while removing the timelog.'),\n captureError: true,\n error,\n });\n })\n .finally(() => {\n this.removingIds.splice(this.removingIds.indexOf(timelogId), 1);\n });\n },\n },\n fields: [\n { key: 'spentAt', label: __('Date'), tdClass: 'gl-w-1/4' },\n { key: 'timeSpent', label: __('Time spent'), tdClass: 'gl-w-15' },\n { key: 'user', label: __('User') },\n { key: 'summary', label: __('Summary') },\n { key: 'actions', label: '', tdClass: 'gl-w-10' },\n ],\n};\n</script>\n\n<template>\n <gl-loading-icon v-if=\"isLoading\" size=\"lg\" />\n <gl-table-lite v-else :items=\"report\" :fields=\"$options.fields\" foot-clone>\n <template #cell(spentAt)=\"{ item: { spentAt } }\">\n <span v-gl-tooltip=\"formatDate(spentAt)\">\n {{ formatShortDate(spentAt) }}\n </span>\n </template>\n <template #foot(spentAt)> </template>\n\n <template #cell(timeSpent)=\"{ item: { timeSpent } }\">\n {{ formatTimeSpent(timeSpent) }}\n </template>\n <template #foot(timeSpent)>\n {{ totalTimeSpent }}\n </template>\n\n <template #cell(user)=\"{ item: { user } }\">\n {{ user.name }}\n </template>\n <template #foot(user)> </template>\n\n <template #cell(summary)=\"{ item: { summary, note } }\">\n {{ getSummary(summary, note) }}\n </template>\n <template #foot(summary)> </template>\n\n <template #cell(actions)=\"{ item: { id, userPermissions } }\">\n <gl-button\n v-if=\"userPermissions.adminTimelog\"\n v-gl-tooltip=\"$options.i18n.deleteButtonText\"\n category=\"tertiary\"\n icon=\"remove\"\n variant=\"danger\"\n :aria-label=\"$options.i18n.deleteButtonText\"\n :loading=\"isDeletingTimelog(id)\"\n @click=\"deleteTimelog(id)\"\n />\n </template>\n <template #foot(actions)> </template>\n </gl-table-lite>\n</template>\n","import { render, staticRenderFns } from \"./time_tracking_report.vue?vue&type=template&id=6c4ca560\"\nimport script from \"./time_tracking_report.vue?vue&type=script&lang=js\"\nexport * from \"./time_tracking_report.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PageInfo\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PageInfo\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasNextPage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasPreviousPage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startCursor\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endCursor\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":92}};\n doc.loc.source = {\"body\":\"fragment PageInfo on PageInfo {\\n hasNextPage\\n hasPreviousPage\\n startCursor\\n endCursor\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"PageInfo\"] = oneQuery(doc, \"PageInfo\");\n \n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nmodule.exports = unicodeSize;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueParents\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableState\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableSearchableField\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iidStartsWith\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueType\"}}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attributes\"},\"name\":{\"kind\":\"Name\",\"value\":\"workItems\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iidStartsWith\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestors\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeDescendants\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":571}};\n doc.loc.source = {\"body\":\"query issueParents(\\n $fullPath: ID!\\n $title: String\\n $state: IssuableState\\n $in: [IssuableSearchableField!]\\n $iidStartsWith: String\\n $types: [IssueType!]\\n) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n attributes: workItems(\\n search: $title\\n iid: $iidStartsWith\\n in: $in\\n state: $state\\n types: $types\\n includeAncestors: true\\n includeDescendants: false\\n ) {\\n nodes {\\n id\\n iid\\n title\\n webUrl\\n state\\n workItemType {\\n id\\n name\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueParents\"] = oneQuery(doc, \"issueParents\");\n \n","import Vue from 'vue';\n// eslint-disable-next-line no-restricted-imports\nimport Vuex from 'vuex';\nimport notesModule from './modules';\n\nVue.use(Vuex);\n\n// NOTE: Giving the option to either use a singleton or new instance of notes.\nconst notesStore = () => new Vuex.Store(notesModule());\n\nexport default notesStore;\nexport const store = notesStore();\n","import { NAME_COLLAPSE } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes';\nimport { RX_SPACE_SPLIT, RX_HASH_ID, RX_HASH } from '../../constants/regex';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { getInstanceFromDirective } from '../../utils/get-instance-from-directive';\nimport { removeClass, removeAttr, removeStyle, hasAttr, setAttr, setStyle, requestAF, isTag, getAttr, addClass, isDisabled } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOff, eventOn } from '../../utils/events';\nimport { isString } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { keys } from '../../utils/object';\nimport { getEventRoot } from '../../utils/get-event-root';\n\n// --- Constants ---\n\n// Classes to apply to trigger element\nconst CLASS_BV_TOGGLE_COLLAPSED = 'collapsed';\nconst CLASS_BV_TOGGLE_NOT_COLLAPSED = 'not-collapsed';\n\n// Property key for handler storage\nconst BV_BASE = '__BV_toggle';\n// Root event listener property (Function)\nconst BV_TOGGLE_ROOT_HANDLER = `${BV_BASE}_HANDLER__`;\n// Trigger element click handler property (Function)\nconst BV_TOGGLE_CLICK_HANDLER = `${BV_BASE}_CLICK__`;\n// Target visibility state property (Boolean)\nconst BV_TOGGLE_STATE = `${BV_BASE}_STATE__`;\n// Target ID list property (Array)\nconst BV_TOGGLE_TARGETS = `${BV_BASE}_TARGETS__`;\n\n// Commonly used strings\nconst STRING_FALSE = 'false';\nconst STRING_TRUE = 'true';\n\n// Commonly used attribute names\nconst ATTR_ARIA_CONTROLS = 'aria-controls';\nconst ATTR_ARIA_EXPANDED = 'aria-expanded';\nconst ATTR_ROLE = 'role';\nconst ATTR_TABINDEX = 'tabindex';\n\n// Commonly used style properties\nconst STYLE_OVERFLOW_ANCHOR = 'overflow-anchor';\n\n// Emitted control event for collapse (emitted to collapse)\nconst ROOT_ACTION_EVENT_NAME_TOGGLE = getRootActionEventName(NAME_COLLAPSE, 'toggle');\n\n// Listen to event for toggle state update (emitted by collapse)\nconst ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state');\n\n// Private event emitted on `$root` to ensure the toggle state is always synced\n// Gets emitted even if the state of b-collapse has not changed\n// This event is NOT to be documented as people should not be using it\nconst ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state');\n\n// Private event we send to collapse to request state update sync event\nconst ROOT_ACTION_EVENT_NAME_REQUEST_STATE = getRootActionEventName(NAME_COLLAPSE, 'request-state');\nconst KEYDOWN_KEY_CODES = [CODE_ENTER, CODE_SPACE];\n\n// --- Helper methods ---\n\nconst isNonStandardTag = el => !arrayIncludes(['button', 'a'], el.tagName.toLowerCase());\nconst getTargets = (_ref, el) => {\n let {\n modifiers,\n arg,\n value\n } = _ref;\n // Any modifiers are considered target IDs\n const targets = keys(modifiers || {});\n\n // If value is a string, split out individual targets (if space delimited)\n value = isString(value) ? value.split(RX_SPACE_SPLIT) : value;\n\n // Support target ID as link href (`href=\"#id\"`)\n if (isTag(el.tagName, 'a')) {\n const href = getAttr(el, 'href') || '';\n if (RX_HASH_ID.test(href)) {\n targets.push(href.replace(RX_HASH, ''));\n }\n }\n\n // Add ID from `arg` (if provided), and support value\n // as a single string ID or an array of string IDs\n // If `value` is not an array or string, then it gets filtered out\n concat(arg, value).forEach(t => isString(t) && targets.push(t));\n\n // Return only unique and truthy target IDs\n return targets.filter((t, index, arr) => t && arr.indexOf(t) === index);\n};\nconst removeClickListener = el => {\n const handler = el[BV_TOGGLE_CLICK_HANDLER];\n if (handler) {\n eventOff(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n el[BV_TOGGLE_CLICK_HANDLER] = null;\n};\nconst addClickListener = (el, instance) => {\n removeClickListener(el);\n if (instance) {\n const handler = event => {\n if (!(event.type === 'keydown' && !arrayIncludes(KEYDOWN_KEY_CODES, event.keyCode)) && !isDisabled(el)) {\n const targets = el[BV_TOGGLE_TARGETS] || [];\n targets.forEach(target => {\n getEventRoot(instance).$emit(ROOT_ACTION_EVENT_NAME_TOGGLE, target);\n });\n }\n };\n el[BV_TOGGLE_CLICK_HANDLER] = handler;\n eventOn(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n if (isNonStandardTag(el)) {\n eventOn(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n }\n};\nconst removeRootListeners = (el, instance) => {\n if (el[BV_TOGGLE_ROOT_HANDLER] && instance) {\n getEventRoot(instance).$off([ROOT_EVENT_NAME_STATE, ROOT_EVENT_NAME_SYNC_STATE], el[BV_TOGGLE_ROOT_HANDLER]);\n }\n el[BV_TOGGLE_ROOT_HANDLER] = null;\n};\nconst addRootListeners = (el, instance) => {\n removeRootListeners(el, instance);\n if (instance) {\n const handler = (id, state) => {\n // `state` will be `true` if target is expanded\n if (arrayIncludes(el[BV_TOGGLE_TARGETS] || [], id)) {\n // Set/Clear 'collapsed' visibility class state\n el[BV_TOGGLE_STATE] = state;\n // Set `aria-expanded` and class state on trigger element\n setToggleState(el, state);\n }\n };\n el[BV_TOGGLE_ROOT_HANDLER] = handler;\n // Listen for toggle state changes (public) and sync (private)\n getEventRoot(instance).$on([ROOT_EVENT_NAME_STATE, ROOT_EVENT_NAME_SYNC_STATE], handler);\n }\n};\nconst setToggleState = (el, state) => {\n // State refers to the visibility of the collapse\n if (state) {\n removeClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n addClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n setAttr(el, ATTR_ARIA_EXPANDED, STRING_TRUE);\n } else {\n removeClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n addClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n setAttr(el, ATTR_ARIA_EXPANDED, STRING_FALSE);\n }\n};\n\n// Reset and remove a property from the provided element\nconst resetProp = (el, prop) => {\n el[prop] = null;\n delete el[prop];\n};\n\n// Handle directive updates\nconst handleUpdate = (el, binding, vnode) => {\n /* istanbul ignore next: should never happen */\n if (!IS_BROWSER || !getInstanceFromDirective(vnode, binding)) {\n return;\n }\n\n // If element is not a button or link, we add `role=\"button\"`\n // and `tabindex=\"0\"` for accessibility reasons\n if (isNonStandardTag(el)) {\n if (!hasAttr(el, ATTR_ROLE)) {\n setAttr(el, ATTR_ROLE, 'button');\n }\n if (!hasAttr(el, ATTR_TABINDEX)) {\n setAttr(el, ATTR_TABINDEX, '0');\n }\n }\n\n // Ensure the collapse class and `aria-*` attributes persist\n // after element is updated (either by parent re-rendering\n // or changes to this element or its contents)\n setToggleState(el, el[BV_TOGGLE_STATE]);\n\n // Parse list of target IDs\n const targets = getTargets(binding, el);\n\n // Ensure the `aria-controls` hasn't been overwritten\n // or removed when vnode updates\n // Also ensure to set `overflow-anchor` to `none` to prevent\n // the browser's scroll anchoring behavior\n /* istanbul ignore else */\n if (targets.length > 0) {\n setAttr(el, ATTR_ARIA_CONTROLS, targets.join(' '));\n setStyle(el, STYLE_OVERFLOW_ANCHOR, 'none');\n } else {\n removeAttr(el, ATTR_ARIA_CONTROLS);\n removeStyle(el, STYLE_OVERFLOW_ANCHOR);\n }\n\n // Add/Update our click listener(s)\n // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n requestAF(() => {\n addClickListener(el, getInstanceFromDirective(vnode, binding));\n });\n\n // If targets array has changed, update\n if (!looseEqual(targets, el[BV_TOGGLE_TARGETS])) {\n // Update targets array to element storage\n el[BV_TOGGLE_TARGETS] = targets;\n // Ensure `aria-controls` is up to date\n // Request a state update from targets so that we can\n // ensure expanded state is correct (in most cases)\n targets.forEach(target => {\n getEventRoot(getInstanceFromDirective(vnode, binding)).$emit(ROOT_ACTION_EVENT_NAME_REQUEST_STATE, target);\n });\n }\n};\n\n/*\n * Export our directive\n */\nconst VBToggle = {\n bind(el, binding, vnode) {\n // State is initially collapsed until we receive a state event\n el[BV_TOGGLE_STATE] = false;\n // Assume no targets initially\n el[BV_TOGGLE_TARGETS] = [];\n // Add our root listeners\n addRootListeners(el, getInstanceFromDirective(vnode, binding));\n // Initial update of trigger\n handleUpdate(el, binding, vnode);\n },\n componentUpdated: handleUpdate,\n updated: handleUpdate,\n unbind(el, binding, vnode) {\n removeClickListener(el);\n // Remove our $root listener\n removeRootListeners(el, getInstanceFromDirective(vnode, binding));\n // Reset custom props\n resetProp(el, BV_TOGGLE_ROOT_HANDLER);\n resetProp(el, BV_TOGGLE_CLICK_HANDLER);\n resetProp(el, BV_TOGGLE_STATE);\n resetProp(el, BV_TOGGLE_TARGETS);\n // Reset classes/attrs/styles\n removeClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n removeClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n removeAttr(el, ATTR_ARIA_EXPANDED);\n removeAttr(el, ATTR_ARIA_CONTROLS);\n removeAttr(el, ATTR_ROLE);\n removeStyle(el, STYLE_OVERFLOW_ANCHOR);\n }\n};\n\nexport { VBToggle };\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicNode\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Epic\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"referencePath\"},\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"full\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAt\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":184}};\n doc.loc.source = {\"body\":\"fragment EpicNode on Epic {\\n id\\n iid\\n group {\\n id\\n fullPath\\n }\\n title\\n state\\n reference\\n referencePath: reference(full: true)\\n webPath\\n webUrl\\n createdAt\\n closedAt\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"EpicNode\"] = oneQuery(doc, \"EpicNode\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"data-testid\":\"dropdown-header\"}},[(!_vm.isStandalone)?_c('div',{staticClass:\"dropdown-title gl-mb-0 gl-flex gl-items-center gl-pb-4 gl-pt-2\",attrs:{\"data-testid\":\"dropdown-header-title\"}},[(_vm.showDropdownContentsCreateView)?_c('gl-button',{staticClass:\"js-btn-back dropdown-header-button !gl-p-0\",attrs:{\"aria-label\":_vm.__('Go back'),\"variant\":\"link\",\"size\":\"small\",\"icon\":\"arrow-left\",\"data-testid\":\"go-back-button\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('toggleDropdownContentsCreateView')}}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"gl-grow\"},[_vm._v(_vm._s(_vm.dropdownTitle))]),_vm._v(\" \"),_c('gl-button',{staticClass:\"dropdown-header-button !gl-p-0\",attrs:{\"aria-label\":_vm.__('Close'),\"variant\":\"link\",\"size\":\"small\",\"icon\":\"close\",\"data-testid\":\"close-labels-dropdown-button\"},on:{\"click\":function($event){return _vm.$emit('closeDropdown')}}})],1):_vm._e(),_vm._v(\" \"),(!_vm.showDropdownContentsCreateView)?_c('gl-search-box-by-type',{ref:\"searchInput\",attrs:{\"value\":_vm.searchKey,\"placeholder\":_vm.__('Search labels'),\"disabled\":_vm.labelsFetchInProgress,\"data-testid\":\"dropdown-input-field\"},on:{\"input\":function($event){return _vm.$emit('input', $event)},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.$emit('searchEnter', $event)}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_header.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_header.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlSearchBoxByType } from '@gitlab/ui';\n\nexport default {\n components: {\n GlButton,\n GlSearchBoxByType,\n },\n props: {\n labelsCreateTitle: {\n type: String,\n required: true,\n },\n labelsListTitle: {\n type: String,\n required: true,\n },\n showDropdownContentsCreateView: {\n type: Boolean,\n required: true,\n },\n labelsFetchInProgress: {\n type: Boolean,\n required: false,\n default: false,\n },\n searchKey: {\n type: String,\n required: true,\n },\n isStandalone: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n dropdownTitle() {\n return this.showDropdownContentsCreateView ? this.labelsCreateTitle : this.labelsListTitle;\n },\n },\n methods: {\n focusInput() {\n this.$refs.searchInput?.focusInput();\n },\n },\n};\n</script>\n\n<template>\n <div data-testid=\"dropdown-header\">\n <div\n v-if=\"!isStandalone\"\n class=\"dropdown-title gl-mb-0 gl-flex gl-items-center gl-pb-4 gl-pt-2\"\n data-testid=\"dropdown-header-title\"\n >\n <gl-button\n v-if=\"showDropdownContentsCreateView\"\n :aria-label=\"__('Go back')\"\n variant=\"link\"\n size=\"small\"\n class=\"js-btn-back dropdown-header-button !gl-p-0\"\n icon=\"arrow-left\"\n data-testid=\"go-back-button\"\n @click.stop=\"$emit('toggleDropdownContentsCreateView')\"\n />\n <span class=\"gl-grow\">{{ dropdownTitle }}</span>\n <gl-button\n :aria-label=\"__('Close')\"\n variant=\"link\"\n size=\"small\"\n class=\"dropdown-header-button !gl-p-0\"\n icon=\"close\"\n data-testid=\"close-labels-dropdown-button\"\n @click=\"$emit('closeDropdown')\"\n />\n </div>\n <gl-search-box-by-type\n v-if=\"!showDropdownContentsCreateView\"\n ref=\"searchInput\"\n :value=\"searchKey\"\n :placeholder=\"__('Search labels')\"\n :disabled=\"labelsFetchInProgress\"\n data-testid=\"dropdown-input-field\"\n @input=\"$emit('input', $event)\"\n @keydown.enter=\"$emit('searchEnter', $event)\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_header.vue?vue&type=template&id=97abd698\"\nimport script from \"./dropdown_header.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_header.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-link',{staticClass:\"js-user-link gl-inline-block\",attrs:{\"href\":_vm.assigneeUrl,\"data-user-id\":_vm.assigneeId,\"data-username\":_vm.user.username,\"data-cannot-merge\":_vm.cannotMerge,\"data-placement\":\"left\"}},[_c('span',{staticClass:\"gl-flex\"},[_c('assignee-avatar',{attrs:{\"user\":_vm.user,\"img-size\":24,\"issuable-type\":_vm.issuableType}}),_vm._v(\" \"),_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./assignee_avatar_link.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./assignee_avatar_link.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective, GlLink } from '@gitlab/ui';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { isGid, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport AssigneeAvatar from './assignee_avatar.vue';\n\nexport default {\n components: {\n AssigneeAvatar,\n GlLink,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n user: {\n type: Object,\n required: true,\n },\n issuableType: {\n type: String,\n default: TYPE_ISSUE,\n required: false,\n },\n },\n computed: {\n isMergeRequest() {\n return this.issuableType === TYPE_MERGE_REQUEST;\n },\n cannotMerge() {\n const canMerge = this.user.mergeRequestInteraction?.canMerge || this.user.can_merge;\n return this.isMergeRequest && !canMerge;\n },\n assigneeUrl() {\n return this.user.web_url || this.user.webUrl;\n },\n assigneeId() {\n return isGid(this.user.id) ? getIdFromGraphQLId(this.user.id) : this.user.id;\n },\n },\n};\n</script>\n\n<template>\n <!-- must be `gl-inline-block` or parent flex-basis causes width issues -->\n <gl-link\n :href=\"assigneeUrl\"\n :data-user-id=\"assigneeId\"\n :data-username=\"user.username\"\n :data-cannot-merge=\"cannotMerge\"\n data-placement=\"left\"\n class=\"js-user-link gl-inline-block\"\n >\n <!-- use gl-flex so that slot can be appropriately styled -->\n <span class=\"gl-flex\">\n <assignee-avatar :user=\"user\" :img-size=\"24\" :issuable-type=\"issuableType\" />\n <slot></slot>\n </span>\n </gl-link>\n</template>\n","import { render, staticRenderFns } from \"./assignee_avatar_link.vue?vue&type=template&id=070ebec1\"\nimport script from \"./assignee_avatar_link.vue?vue&type=script&lang=js\"\nexport * from \"./assignee_avatar_link.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"UserAvailability\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"availability\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":70}};\n doc.loc.source = {\"body\":\"fragment UserAvailability on User {\\n status {\\n availability\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"UserAvailability\"] = oneQuery(doc, \"UserAvailability\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"boardEpicSetSubscription\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribedState\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"updateIssuableSubscription\"},\"name\":{\"kind\":\"Name\",\"value\":\"epicSetSubscription\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"groupPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribedState\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribedState\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribed\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":300}};\n doc.loc.source = {\"body\":\"mutation boardEpicSetSubscription($fullPath: ID!, $iid: ID!, $subscribedState: Boolean!) {\\n updateIssuableSubscription: epicSetSubscription(\\n input: { groupPath: $fullPath, iid: $iid, subscribedState: $subscribedState }\\n ) {\\n issuable: epic {\\n id\\n subscribed\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"boardEpicSetSubscription\"] = oneQuery(doc, \"boardEpicSetSubscription\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"projectIssueEpic\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasEpic\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasParent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":282}};\n doc.loc.source = {\"body\":\"#import \\\"./epic.fragment.graphql\\\"\\n\\nquery projectIssueEpic($fullPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n hasEpic\\n hasParent\\n attribute: epic {\\n ...EpicFragment\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./epic.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"projectIssueEpic\"] = oneQuery(doc, \"projectIssueEpic\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateIssueDueDate\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateIssueInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetDate\"},\"name\":{\"kind\":\"Name\",\"value\":\"updateIssue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":173}};\n doc.loc.source = {\"body\":\"mutation updateIssueDueDate($input: UpdateIssueInput!) {\\n issuableSetDate: updateIssue(input: $input) {\\n issuable: issue {\\n id\\n dueDate\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateIssueDueDate\"] = oneQuery(doc, \"updateIssueDueDate\");\n \n","import boardListsQuery from 'ee_else_ce/boards/graphql/board_lists.query.graphql';\nimport { TYPE_EPIC, TYPE_ISSUE, WORKSPACE_GROUP, WORKSPACE_PROJECT } from '~/issues/constants';\nimport { s__, __ } from '~/locale';\nimport { TYPENAME_ISSUE } from '~/graphql_shared/constants';\nimport updateEpicSubscriptionMutation from '~/sidebar/queries/update_epic_subscription.mutation.graphql';\nimport updateEpicTitleMutation from '~/sidebar/queries/update_epic_title.mutation.graphql';\nimport createBoardListMutation from './graphql/board_list_create.mutation.graphql';\nimport destroyBoardListMutation from './graphql/board_list_destroy.mutation.graphql';\nimport updateBoardListMutation from './graphql/board_list_update.mutation.graphql';\n\nimport toggleListCollapsedMutation from './graphql/client/board_toggle_collapsed.mutation.graphql';\nimport issueSetSubscriptionMutation from './graphql/issue_set_subscription.mutation.graphql';\nimport issueSetTitleMutation from './graphql/issue_set_title.mutation.graphql';\nimport issueMoveListMutation from './graphql/issue_move_list.mutation.graphql';\nimport issueCreateMutation from './graphql/issue_create.mutation.graphql';\nimport groupBoardQuery from './graphql/group_board.query.graphql';\nimport projectBoardQuery from './graphql/project_board.query.graphql';\nimport listIssuesQuery from './graphql/lists_issues.query.graphql';\nimport listDeferredQuery from './graphql/board_lists_deferred.query.graphql';\n\nexport const BoardType = {\n project: 'project',\n group: 'group',\n};\n\nexport const ListType = {\n assignee: 'assignee',\n milestone: 'milestone',\n iteration: 'iteration',\n backlog: 'backlog',\n closed: 'closed',\n label: 'label',\n};\n\nexport const ListTypeTitles = {\n assignee: __('Assignee'),\n milestone: __('Milestone'),\n iteration: __('Iteration'),\n label: __('Label'),\n backlog: __('Open'),\n};\n\nexport const formType = {\n new: 'new',\n delete: 'delete',\n edit: 'edit',\n};\n\nexport const INCIDENT = 'INCIDENT';\n\nexport const flashAnimationDuration = 2000;\n\nexport const boardQuery = {\n [WORKSPACE_GROUP]: {\n query: groupBoardQuery,\n },\n [WORKSPACE_PROJECT]: {\n query: projectBoardQuery,\n },\n};\n\nexport const listsQuery = {\n [TYPE_ISSUE]: {\n query: boardListsQuery,\n },\n};\n\nexport const listsDeferredQuery = {\n [TYPE_ISSUE]: {\n query: listDeferredQuery,\n },\n};\n\nexport const createListMutations = {\n [TYPE_ISSUE]: {\n mutation: createBoardListMutation,\n },\n};\n\nexport const updateListQueries = {\n [TYPE_ISSUE]: {\n mutation: updateBoardListMutation,\n },\n};\n\nexport const toggleCollapsedMutations = {\n [TYPE_ISSUE]: {\n mutation: toggleListCollapsedMutation,\n },\n};\n\nexport const deleteListQueries = {\n [TYPE_ISSUE]: {\n mutation: destroyBoardListMutation,\n },\n};\n\nexport const titleQueries = {\n [TYPE_ISSUE]: {\n mutation: issueSetTitleMutation,\n },\n [TYPE_EPIC]: {\n mutation: updateEpicTitleMutation,\n },\n};\n\nexport const subscriptionQueries = {\n [TYPE_ISSUE]: {\n mutation: issueSetSubscriptionMutation,\n },\n [TYPE_EPIC]: {\n mutation: updateEpicSubscriptionMutation,\n },\n};\n\nexport const listIssuablesQueries = {\n [TYPE_ISSUE]: {\n query: listIssuesQuery,\n moveMutation: issueMoveListMutation,\n createMutation: issueCreateMutation,\n optimisticResponse: {\n assignees: { nodes: [], __typename: 'UserCoreConnection' },\n confidential: false,\n closedAt: null,\n dueDate: null,\n emailsEnabled: true,\n hidden: false,\n humanTimeEstimate: null,\n humanTotalTimeSpent: null,\n id: 'gid://gitlab/Issue/-1',\n iid: '-1',\n labels: { nodes: [], __typename: 'LabelConnection' },\n milestone: null,\n referencePath: '',\n relativePosition: null,\n severity: 'UNKNOWN',\n timeEstimate: 0,\n title: '',\n totalTimeSpent: 0,\n type: 'ISSUE',\n webUrl: '',\n weight: null,\n __typename: TYPENAME_ISSUE,\n },\n },\n};\n\nexport const FilterFields = {\n [TYPE_ISSUE]: [\n 'assigneeUsername',\n 'assigneeWildcardId',\n 'authorUsername',\n 'confidential',\n 'labelName',\n 'milestoneTitle',\n 'milestoneWildcardId',\n 'myReactionEmoji',\n 'releaseTag',\n 'search',\n 'types',\n 'weight',\n ],\n};\n\n/* eslint-disable @gitlab/require-i18n-strings */\nexport const AssigneeFilterType = {\n any: 'Any',\n none: 'None',\n};\n\nexport const MilestoneFilterType = {\n any: 'Any',\n none: 'None',\n started: 'Started',\n upcoming: 'Upcoming',\n};\n/* eslint-enable @gitlab/require-i18n-strings */\n\nexport const DraggableItemTypes = {\n card: 'card',\n list: 'list',\n};\n\nexport const MilestoneIDs = {\n NONE: 0,\n ANY: -1,\n};\n\nexport default {\n ListType,\n};\n\nexport const DEFAULT_BOARD_LIST_ITEMS_SIZE = 10;\n\nexport const BOARD_CARD_MOVE_TO_POSITIONS_START_OPTION = s__('Boards|Move to start of list');\nexport const BOARD_CARD_MOVE_TO_POSITIONS_END_OPTION = s__('Boards|Move to end of list');\n\n/**\n * Actions are stubbed in order to pass validation\n * for GlDisclosureDropdown items property\n */\nexport const BOARD_CARD_MOVE_TO_POSITIONS_OPTIONS = [\n {\n text: BOARD_CARD_MOVE_TO_POSITIONS_START_OPTION,\n action: () => {},\n },\n {\n text: BOARD_CARD_MOVE_TO_POSITIONS_END_OPTION,\n action: () => {},\n },\n];\n\nexport const GroupByParamType = {};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateIssueHealthStatus\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"HealthStatus\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateIssue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":265}};\n doc.loc.source = {\"body\":\"mutation updateIssueHealthStatus($projectPath: ID!, $iid: String!, $healthStatus: HealthStatus) {\\n updateIssue(input: { projectPath: $projectPath, iid: $iid, healthStatus: $healthStatus }) {\\n issuable: issue {\\n id\\n healthStatus\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateIssueHealthStatus\"] = oneQuery(doc, \"updateIssueHealthStatus\");\n \n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","import { s__ } from '~/locale';\n\nexport const CATEGORY_OPTIONS = [\n { value: 'spam', text: s__(\"ReportAbuse|They're posting spam.\") },\n { value: 'offensive', text: s__(\"ReportAbuse|They're being offensive or abusive.\") },\n { value: 'phishing', text: s__(\"ReportAbuse|They're phishing.\") },\n { value: 'crypto', text: s__(\"ReportAbuse|They're crypto mining.\") },\n {\n value: 'credentials',\n text: s__(\"ReportAbuse|They're posting personal information or credentials.\"),\n },\n { value: 'copyright', text: s__(\"ReportAbuse|They're violating a copyright or trademark.\") },\n { value: 'malware', text: s__(\"ReportAbuse|They're posting malware.\") },\n { value: 'other', text: s__('ReportAbuse|Something else.') },\n];\n","import { STATUS_CLOSED, STATUS_OPEN, STATUS_REOPENED } from '~/issues/constants';\nimport { __, s__ } from '~/locale';\n\nexport const DISCUSSION_NOTE = 'DiscussionNote';\nexport const DIFF_NOTE = 'DiffNote';\nexport const DISCUSSION = 'discussion';\nexport const NOTE = 'note';\nexport const SYSTEM_NOTE = 'systemNote';\nexport const COMMENT = 'comment';\nexport const ISSUE_NOTEABLE_TYPE = 'Issue';\nexport const EPIC_NOTEABLE_TYPE = 'Epic';\nexport const MERGE_REQUEST_NOTEABLE_TYPE = 'MergeRequest';\nexport const SNIPPET_NOTEABLE_TYPE = 'Snippet';\nexport const DESIGN_NOTEABLE_TYPE = 'DesignManagement::Design';\nexport const COMMIT_NOTEABLE_TYPE = 'Commit';\nexport const INCIDENT_NOTEABLE_TYPE = 'INCIDENT'; // TODO: check if value can be converted to `Incident`\nexport const UNRESOLVE_NOTE_METHOD_NAME = 'delete';\nexport const RESOLVE_NOTE_METHOD_NAME = 'post';\nexport const DESCRIPTION_TYPE = 'changed the description';\nexport const DISCUSSION_FILTERS_DEFAULT_VALUE = 0;\nexport const COMMENTS_ONLY_FILTER_VALUE = 1;\nexport const HISTORY_ONLY_FILTER_VALUE = 2;\nexport const DISCUSSION_TAB_LABEL = 'show';\nexport const NOTE_UNDERSCORE = 'note_';\nexport const TIME_DIFFERENCE_VALUE = 10;\nexport const ASC = 'asc';\nexport const DESC = 'desc';\n\nexport const DISCUSSION_FETCH_TIMEOUT = 750;\n\nexport const FETCH_UPDATED_NOTES_DEBOUNCE_TIMEOUT = 750;\n\nexport const NOTEABLE_TYPE_MAPPING = {\n Issue: ISSUE_NOTEABLE_TYPE,\n MergeRequest: MERGE_REQUEST_NOTEABLE_TYPE,\n Epic: EPIC_NOTEABLE_TYPE,\n Incident: INCIDENT_NOTEABLE_TYPE,\n};\n\nexport const DISCUSSION_FILTER_TYPES = {\n ALL: 'all',\n COMMENTS: 'comments',\n HISTORY: 'history',\n};\n\nexport const toggleStateErrorMessage = {\n Epic: {\n [STATUS_CLOSED]: __('Something went wrong while reopening the epic. Please try again later.'),\n [STATUS_OPEN]: __('Something went wrong while closing the epic. Please try again later.'),\n [STATUS_REOPENED]: __('Something went wrong while closing the epic. Please try again later.'),\n },\n MergeRequest: {\n [STATUS_CLOSED]: __(\n 'Something went wrong while reopening the merge request. Please try again later.',\n ),\n [STATUS_OPEN]: __(\n 'Something went wrong while closing the merge request. Please try again later.',\n ),\n [STATUS_REOPENED]: __(\n 'Something went wrong while closing the merge request. Please try again later.',\n ),\n },\n};\n\nexport const MR_FILTER_OPTIONS = [\n {\n text: __('Approvals'),\n value: 'approval',\n systemNoteIcons: ['approval', 'unapproval', 'check', 'error'],\n },\n {\n text: __('Assignees & reviewers'),\n value: 'assignees_reviewers',\n noteText: [\n s__('IssuableEvents|requested review from'),\n s__('IssuableEvents|removed review request for'),\n s__('IssuableEvents|assigned to'),\n s__('IssuableEvents|unassigned'),\n ],\n },\n {\n text: __('Comments (from bots)'),\n value: 'bot_comments',\n bot: true,\n },\n {\n text: __('Comments (from users)'),\n value: 'comments',\n noteType: ['DiscussionNote', 'DiffNote'],\n individualNote: true,\n noteText: [s__('IssuableEvents|resolved all threads')],\n },\n {\n text: __('Commits & branches'),\n value: 'commit_branches',\n systemNoteIcons: ['commit', 'fork'],\n },\n {\n text: __('Edits'),\n value: 'edits',\n systemNoteIcons: ['pencil', 'todo-done'],\n },\n {\n text: __('Labels'),\n value: 'labels',\n systemNoteIcons: ['label'],\n },\n {\n text: __('Lock status'),\n value: 'lock_status',\n systemNoteIcons: ['lock', 'lock-open'],\n },\n {\n text: __('Mentions'),\n value: 'mentions',\n systemNoteIcons: ['comment-dots'],\n },\n {\n text: __('Merge request status'),\n value: 'status',\n systemNoteIcons: ['merge-request', 'issue-close', 'issues', 'merge-request-close', 'merge'],\n },\n {\n text: __('Tracking'),\n value: 'tracking',\n noteType: ['MilestoneNote'],\n systemNoteIcons: ['timer'],\n },\n];\nexport const MR_FILTER_TRACKING_OPENED = 'user_clicks_comment_filter_dropdown';\nexport const MR_FILTER_TRACKING_USER_COMMENTS = 'click_comment_filter_toggle_user_comments_in_mr';\nexport const MR_FILTER_TRACKING_BOT_COMMENTS = 'click_comment_filter_toggle_bot_comments_in_mr';\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',_vm._l((_vm.users),function(user,index){return _c('div',{key:user.id,staticClass:\"reviewer-grid gl-mr-2 gl-grid gl-items-center\",class:{\n 'gl-mb-3': index !== _vm.users.length - 1,\n },attrs:{\"data-testid\":\"reviewer\"}},[_c('reviewer-avatar-link',{staticClass:\"gl-mr-2 gl-break-anywhere\",attrs:{\"user\":user,\"root-path\":_vm.rootPath,\"issuable-type\":_vm.issuableType,\"data-css-area\":\"user\"}},[_c('div',{staticClass:\"gl-ml-3 gl-grid gl-items-center gl-leading-normal\"},[_vm._v(\"\\n \"+_vm._s(user.name)+\"\\n \")])]),_vm._v(\" \"),(user.mergeRequestInteraction.canUpdate && _vm.showRequestReviewButton(user))?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left\",modifiers:{\"left\":true}}],staticClass:\"gl-float-right gl-mr-2 !gl-text-subtle\",attrs:{\"title\":_vm.$options.i18n.reRequestReview,\"aria-label\":_vm.$options.i18n.reRequestReview,\"loading\":_vm.loadingStates[user.id] === _vm.$options.LOADING_STATE,\"size\":\"small\",\"icon\":\"redo\",\"variant\":\"link\",\"data-testid\":\"re-request-button\"},on:{\"click\":function($event){return _vm.reRequestReview(user.id)}}}):_vm._e(),_vm._v(\" \"),_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.top.viewport\",modifiers:{\"top\":true,\"viewport\":true}}],staticClass:\"gl-float-right gl-my-2 gl-ml-auto gl-shrink-0\",class:_vm.reviewStateIcon(user).class,attrs:{\"title\":_vm.reviewStateIcon(user).title,\"data-testid\":\"reviewer-state-icon-parent\"}},[_c('gl-icon',{class:_vm.reviewStateIcon(user).iconClass,attrs:{\"size\":_vm.reviewStateIcon(user).size || 16,\"name\":_vm.reviewStateIcon(user).name,\"aria-label\":_vm.reviewStateIcon(user).title,\"data-testid\":\"reviewer-state-icon\"}})],1),_vm._v(\" \"),(_vm.isEditable)?_c('span',{staticClass:\"gl-inline-flex gl-h-6 gl-w-6\"},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.top.viewport\",modifiers:{\"top\":true,\"viewport\":true}}],staticClass:\"gl-float-right gl-ml-2 !gl-text-subtle\",attrs:{\"title\":_vm.$options.i18n.removeReviewer,\"aria-label\":_vm.$options.i18n.removeReviewer,\"loading\":_vm.loadingStates[user.id] === _vm.$options.LOADING_STATE,\"size\":\"small\",\"icon\":\"close\",\"variant\":\"link\",\"data-testid\":\"remove-request-button\"},on:{\"click\":function($event){return _vm.removeReviewer(user.id)}}})],1):_vm._e()],1)}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./reviewer_avatar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./reviewer_avatar.vue?vue&type=script&lang=js\"","<script>\n// NOTE! For the first iteration, we are simply copying the implementation of Assignees\n// It will soon be overhauled in Issue https://gitlab.com/gitlab-org/gitlab/-/issues/233736\nimport { GlAvatar, GlIcon } from '@gitlab/ui';\nimport { __, sprintf } from '~/locale';\n\nexport default {\n components: {\n GlAvatar,\n GlIcon,\n },\n props: {\n user: {\n type: Object,\n required: true,\n },\n imgSize: {\n type: Number,\n required: true,\n },\n },\n computed: {\n reviewerAlt() {\n return sprintf(__(\"%{userName}'s avatar\"), { userName: this.user.name });\n },\n avatarUrl() {\n return this.user.avatarUrl || this.user.avatar_url || gon.default_avatar_url;\n },\n hasMergeIcon() {\n return !this.user.mergeRequestInteraction?.canMerge;\n },\n },\n};\n</script>\n\n<template>\n <span class=\"gl-relative\">\n <gl-avatar :label=\"user.name\" :src=\"avatarUrl\" :size=\"imgSize\" :alt=\"reviewerAlt\" />\n <gl-icon\n v-if=\"hasMergeIcon\"\n name=\"warning-solid\"\n aria-hidden=\"true\"\n class=\"merge-icon reviewer-merge-icon\"\n />\n </span>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./reviewer_avatar_link.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./reviewer_avatar_link.vue?vue&type=script&lang=js\"","<script>\n// NOTE! For the first iteration, we are simply copying the implementation of Assignees\n// It will soon be overhauled in Issue https://gitlab.com/gitlab-org/gitlab/-/issues/233736\nimport { GlTooltipDirective, GlLink } from '@gitlab/ui';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport ReviewerAvatar from './reviewer_avatar.vue';\n\nexport default {\n components: {\n ReviewerAvatar,\n GlLink,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n user: {\n type: Object,\n required: true,\n },\n rootPath: {\n type: String,\n required: true,\n },\n issuableType: {\n type: String,\n default: TYPE_ISSUE,\n required: false,\n },\n },\n computed: {\n cannotMerge() {\n return (\n this.issuableType === TYPE_MERGE_REQUEST && !this.user.mergeRequestInteraction?.canMerge\n );\n },\n reviewerId() {\n return getIdFromGraphQLId(this.user.id);\n },\n reviewerUrl() {\n return this.user.webUrl;\n },\n },\n};\n</script>\n\n<template>\n <!-- must be `gl-inline-block` or parent flex-basis causes width issues -->\n <gl-link\n :href=\"reviewerUrl\"\n :data-user-id=\"reviewerId\"\n :data-username=\"user.username\"\n :data-cannot-merge=\"cannotMerge\"\n data-placement=\"left\"\n class=\"js-user-link gl-inline-block !gl-text-inherit hover:!gl-text-blue-800\"\n >\n <!-- use gl-flex so that slot can be appropriately styled -->\n <span class=\"gl-flex\">\n <reviewer-avatar :user=\"user\" :img-size=\"24\" :issuable-type=\"issuableType\" />\n <slot :user=\"user\"></slot>\n </span>\n </gl-link>\n</template>\n","import { render, staticRenderFns } from \"./reviewer_avatar.vue?vue&type=template&id=6f9204a6\"\nimport script from \"./reviewer_avatar.vue?vue&type=script&lang=js\"\nexport * from \"./reviewer_avatar.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"gl-relative\"},[_c('gl-avatar',{attrs:{\"label\":_vm.user.name,\"src\":_vm.avatarUrl,\"size\":_vm.imgSize,\"alt\":_vm.reviewerAlt}}),_vm._v(\" \"),(_vm.hasMergeIcon)?_c('gl-icon',{staticClass:\"merge-icon reviewer-merge-icon\",attrs:{\"name\":\"warning-solid\",\"aria-hidden\":\"true\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./reviewer_avatar_link.vue?vue&type=template&id=9d273eae\"\nimport script from \"./reviewer_avatar_link.vue?vue&type=script&lang=js\"\nexport * from \"./reviewer_avatar_link.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-link',{staticClass:\"js-user-link gl-inline-block !gl-text-inherit hover:!gl-text-blue-800\",attrs:{\"href\":_vm.reviewerUrl,\"data-user-id\":_vm.reviewerId,\"data-username\":_vm.user.username,\"data-cannot-merge\":_vm.cannotMerge,\"data-placement\":\"left\"}},[_c('span',{staticClass:\"gl-flex\"},[_c('reviewer-avatar',{attrs:{\"user\":_vm.user,\"img-size\":24,\"issuable-type\":_vm.issuableType}}),_vm._v(\" \"),_vm._t(\"default\",null,{\"user\":_vm.user})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlButton, GlTooltipDirective, GlIcon } from '@gitlab/ui';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { __, sprintf, s__ } from '~/locale';\nimport ReviewerAvatarLink from './reviewer_avatar_link.vue';\n\nconst LOADING_STATE = 'loading';\nconst SUCCESS_STATE = 'success';\nconst JUST_APPROVED = 'approved';\n\nconst REVIEW_STATE_ICONS = {\n APPROVED: {\n name: 'check-circle',\n iconClass: 'gl-fill-icon-success',\n title: s__('MergeRequest|Reviewer approved changes'),\n },\n REQUESTED_CHANGES: {\n name: 'error',\n iconClass: 'gl-fill-icon-danger',\n title: s__('MergeRequest|Reviewer requested changes'),\n },\n REVIEWED: {\n name: 'comment-lines',\n iconClass: 'gl-fill-icon-info',\n title: s__('MergeRequest|Reviewer commented'),\n },\n UNREVIEWED: {\n name: 'dash-circle',\n iconClass: 'gl-fill-icon-default',\n title: s__('MergeRequest|Awaiting review'),\n },\n REVIEW_STARTED: {\n name: 'comment-dots',\n iconClass: 'gl-fill-icon-default',\n title: s__('MergeRequest|Reviewer started review'),\n },\n};\n\nexport default {\n i18n: {\n reRequestReview: __('Re-request review'),\n removeReviewer: s__('MergeRequest|Remove reviewer'),\n },\n components: {\n GlButton,\n GlIcon,\n ReviewerAvatarLink,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n users: {\n type: Array,\n required: true,\n },\n rootPath: {\n type: String,\n required: true,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n isEditable: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n showLess: true,\n loadingStates: {},\n };\n },\n watch: {\n users: {\n handler(users, previousUsers) {\n this.loadingStates = users.reduce(\n (acc, user) => ({\n ...acc,\n [user.id]: acc[user.id] || null,\n }),\n this.loadingStates,\n );\n if (previousUsers) {\n users.forEach((user) => {\n const userPreviousState = previousUsers.find(({ id }) => id === user.id);\n if (\n userPreviousState &&\n user.mergeRequestInteraction.approved &&\n !userPreviousState.mergeRequestInteraction.approved\n ) {\n this.showApprovalAnimation(user.id);\n }\n });\n }\n },\n immediate: true,\n },\n },\n methods: {\n showApprovalAnimation(userId) {\n this.loadingStates[userId] = JUST_APPROVED;\n\n setTimeout(() => {\n this.loadingStates[userId] = null;\n }, 1500);\n },\n reviewedButNotApprovedTooltip(user) {\n return sprintf(s__('MergeRequest|Reviewed by @%{username} but not yet approved'), user);\n },\n toggleShowLess() {\n this.showLess = !this.showLess;\n },\n reRequestReview(userId) {\n this.loadingStates[userId] = LOADING_STATE;\n this.$emit('request-review', { userId, callback: this.requestReviewComplete });\n },\n removeReviewer(userId) {\n this.loadingStates[userId] = LOADING_STATE;\n this.$emit('remove-reviewer', {\n userId,\n done: () => this.requestRemovalComplete(userId),\n });\n },\n requestReviewComplete(userId, success) {\n if (success) {\n this.loadingStates[userId] = SUCCESS_STATE;\n\n setTimeout(() => {\n this.loadingStates[userId] = null;\n }, 1500);\n } else {\n this.loadingStates[userId] = null;\n }\n },\n requestRemovalComplete(userId) {\n delete this.loadingStates[userId];\n },\n reviewStateIcon(user) {\n if (user.mergeRequestInteraction.approved) {\n return {\n ...REVIEW_STATE_ICONS.APPROVED,\n class: [this.loadingStates[user.id] === JUST_APPROVED && 'merge-request-approved-icon'],\n };\n }\n return (\n REVIEW_STATE_ICONS[user.mergeRequestInteraction.reviewState] ||\n REVIEW_STATE_ICONS.UNREVIEWED\n );\n },\n showRequestReviewButton(user) {\n if (!user.mergeRequestInteraction.approved) {\n return !['UNREVIEWED'].includes(user.mergeRequestInteraction.reviewState);\n }\n\n return true;\n },\n },\n LOADING_STATE,\n SUCCESS_STATE,\n};\n</script>\n\n<template>\n <div>\n <div\n v-for=\"(user, index) in users\"\n :key=\"user.id\"\n :class=\"{\n 'gl-mb-3': index !== users.length - 1,\n }\"\n class=\"reviewer-grid gl-mr-2 gl-grid gl-items-center\"\n data-testid=\"reviewer\"\n >\n <reviewer-avatar-link\n :user=\"user\"\n :root-path=\"rootPath\"\n :issuable-type=\"issuableType\"\n class=\"gl-mr-2 gl-break-anywhere\"\n data-css-area=\"user\"\n >\n <div class=\"gl-ml-3 gl-grid gl-items-center gl-leading-normal\">\n {{ user.name }}\n </div>\n </reviewer-avatar-link>\n <gl-button\n v-if=\"user.mergeRequestInteraction.canUpdate && showRequestReviewButton(user)\"\n v-gl-tooltip.left\n :title=\"$options.i18n.reRequestReview\"\n :aria-label=\"$options.i18n.reRequestReview\"\n :loading=\"loadingStates[user.id] === $options.LOADING_STATE\"\n class=\"gl-float-right gl-mr-2 !gl-text-subtle\"\n size=\"small\"\n icon=\"redo\"\n variant=\"link\"\n data-testid=\"re-request-button\"\n @click=\"reRequestReview(user.id)\"\n />\n <span\n v-gl-tooltip.top.viewport\n :title=\"reviewStateIcon(user).title\"\n class=\"gl-float-right gl-my-2 gl-ml-auto gl-shrink-0\"\n :class=\"reviewStateIcon(user).class\"\n data-testid=\"reviewer-state-icon-parent\"\n >\n <gl-icon\n :size=\"reviewStateIcon(user).size || 16\"\n :name=\"reviewStateIcon(user).name\"\n :class=\"reviewStateIcon(user).iconClass\"\n :aria-label=\"reviewStateIcon(user).title\"\n data-testid=\"reviewer-state-icon\"\n />\n </span>\n <span v-if=\"isEditable\" class=\"gl-inline-flex gl-h-6 gl-w-6\">\n <gl-button\n v-gl-tooltip.top.viewport\n :title=\"$options.i18n.removeReviewer\"\n :aria-label=\"$options.i18n.removeReviewer\"\n :loading=\"loadingStates[user.id] === $options.LOADING_STATE\"\n class=\"gl-float-right gl-ml-2 !gl-text-subtle\"\n size=\"small\"\n icon=\"close\"\n variant=\"link\"\n data-testid=\"remove-request-button\"\n @click=\"removeReviewer(user.id)\"\n />\n </span>\n </div>\n </div>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./uncollapsed_reviewer_list.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./uncollapsed_reviewer_list.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./uncollapsed_reviewer_list.vue?vue&type=template&id=093a03aa\"\nimport script from \"./uncollapsed_reviewer_list.vue?vue&type=script&lang=js\"\nexport * from \"./uncollapsed_reviewer_list.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueTimeTracking\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueTimeTrackingFragment\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"humanTimeEstimate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timeEstimate\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":305}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/issue_time_tracking.fragment.graphql\\\"\\n\\nquery issueTimeTracking($fullPath: ID!, $iid: String) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n ...IssueTimeTrackingFragment\\n humanTimeEstimate\\n timeEstimate\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/issue_time_tracking.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueTimeTracking\"] = oneQuery(doc, \"issueTimeTracking\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateTestCaseConfidential\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueSetConfidentialInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetConfidential\"},\"name\":{\"kind\":\"Name\",\"value\":\"issueSetConfidential\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":212}};\n doc.loc.source = {\"body\":\"mutation updateTestCaseConfidential($input: IssueSetConfidentialInput!) {\\n issuableSetConfidential: issueSetConfidential(input: $input) {\\n issuable: issue {\\n id\\n confidential\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateTestCaseConfidential\"] = oneQuery(doc, \"updateTestCaseConfidential\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"projectIssueIteration\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"iteration\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"IterationFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":272}};\n doc.loc.source = {\"body\":\"#import \\\"./iteration.fragment.graphql\\\"\\n\\nquery projectIssueIteration($fullPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n attribute: iteration {\\n ...IterationFragment\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./iteration.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"projectIssueIteration\"] = oneQuery(doc, \"projectIssueIteration\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueSubscribed\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"emailsDisabled\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":197}};\n doc.loc.source = {\"body\":\"query issueSubscribed($fullPath: ID!, $iid: String) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n subscribed\\n emailsDisabled\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueSubscribed\"] = oneQuery(doc, \"issueSubscribed\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getWorkItemsByReferences\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"contextNamespacePath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"refs\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemsByReference\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"contextNamespacePath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"contextNamespacePath\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"refs\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"refs\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":237}};\n doc.loc.source = {\"body\":\"query getWorkItemsByReferences($contextNamespacePath: ID!, $refs: [String!]!) {\\n workItemsByReference(contextNamespacePath: $contextNamespacePath, refs: $refs) {\\n nodes {\\n id\\n iid\\n title\\n confidential\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"getWorkItemsByReferences\"] = oneQuery(doc, \"getWorkItemsByReferences\");\n \n","/** Used to escape characters for inclusion in compiled string literals. */\nvar stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\n/**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\nfunction escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n}\n\nmodule.exports = escapeStringChar;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-avatar-labeled',{staticClass:\"sidebar-participant gl-relative gl-items-center\",attrs:{\"size\":32,\"label\":_vm.user.name,\"sub-label\":`@${_vm.user.username}`,\"src\":_vm.user.avatarUrl || _vm.user.avatar || _vm.user.avatar_url},scopedSlots:_vm._u([{key:\"meta\",fn:function(){return [(_vm.hasCannotMergeIcon)?_c('gl-icon',{staticClass:\"merge-icon\",class:{ '!gl-left-6': _vm.selected },attrs:{\"name\":\"warning-solid\",\"aria-hidden\":\"true\",\"size\":12}}):_vm._e(),_vm._v(\" \"),(_vm.isBusy)?_c('gl-badge',{staticClass:\"gl-ml-2\",attrs:{\"variant\":\"warning\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.busy)+\"\\n \")]):_vm._e()]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlAvatarLabeled, GlBadge, GlIcon } from '@gitlab/ui';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { __ } from '~/locale';\n\nconst AVAILABILITY_STATUS = {\n NOT_SET: 'NOT_SET',\n BUSY: 'BUSY',\n};\n\nexport default {\n components: {\n GlAvatarLabeled,\n GlBadge,\n GlIcon,\n },\n props: {\n user: {\n type: Object,\n required: true,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n selected: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n isBusy() {\n return this.user?.status?.availability === AVAILABILITY_STATUS.BUSY;\n },\n hasCannotMergeIcon() {\n return this.issuableType === TYPE_MERGE_REQUEST && !this.user.canMerge;\n },\n },\n i18n: {\n busy: __('Busy'),\n },\n};\n</script>\n\n<template>\n <gl-avatar-labeled\n :size=\"32\"\n :label=\"user.name\"\n :sub-label=\"`@${user.username}`\"\n :src=\"user.avatarUrl || user.avatar || user.avatar_url\"\n class=\"sidebar-participant gl-relative gl-items-center\"\n >\n <template #meta>\n <gl-icon\n v-if=\"hasCannotMergeIcon\"\n name=\"warning-solid\"\n aria-hidden=\"true\"\n class=\"merge-icon\"\n :class=\"{ '!gl-left-6': selected }\"\n :size=\"12\"\n />\n <gl-badge v-if=\"isBusy\" variant=\"warning\" class=\"gl-ml-2\">\n {{ $options.i18n.busy }}\n </gl-badge>\n </template>\n </gl-avatar-labeled>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_participant.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_participant.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./sidebar_participant.vue?vue&type=template&id=0d376abc\"\nimport script from \"./sidebar_participant.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_participant.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.showParticipantLabel)?_c('div',{staticClass:\"gl-mb-2 gl-flex gl-items-center gl-gap-2 gl-font-bold gl-leading-24 gl-text-default\"},[_vm._v(\"\\n \"+_vm._s(_vm.participantLabel)+\"\\n \"),(_vm.loading)?_c('gl-loading-icon',{attrs:{\"inline\":\"\"}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-flex-wrap gl-gap-3\"},_vm._l((_vm.visibleParticipants),function(participant){return _c('a',{key:participant.id,staticClass:\"author-link js-user-link gl-inline-block gl-rounded-full\",attrs:{\"href\":participant.web_url || participant.webUrl,\"data-user-id\":_vm.getParticipantId(participant.id),\"data-username\":participant.username}},[_c('user-avatar-image',{attrs:{\"lazy\":_vm.lazy,\"img-src\":participant.avatar_url || participant.avatarUrl,\"size\":24,\"img-alt\":participant.name,\"css-classes\":\"!gl-mr-0\",\"tooltip-placement\":\"bottom\"}})],1)}),0),_vm._v(\" \"),(_vm.hasMoreParticipants)?_c('gl-button',{staticClass:\"gl-mt-3\",attrs:{\"category\":\"tertiary\",\"size\":\"small\"},on:{\"click\":_vm.toggleMoreParticipants}},[_vm._v(\"\\n \"+_vm._s(_vm.toggleLabel)+\"\\n \")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./participants.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./participants.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlButton, GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { __, n__, sprintf } from '~/locale';\nimport UserAvatarImage from '~/vue_shared/components/user_avatar/user_avatar_image.vue';\n\nexport default {\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlButton,\n GlLoadingIcon,\n UserAvatarImage,\n },\n props: {\n loading: {\n type: Boolean,\n required: false,\n default: false,\n },\n participants: {\n type: Array,\n required: false,\n default: () => [],\n },\n numberOfLessParticipants: {\n type: Number,\n required: false,\n default: 8,\n },\n showParticipantLabel: {\n type: Boolean,\n required: false,\n default: true,\n },\n lazy: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n data() {\n return {\n isShowingMoreParticipants: false,\n };\n },\n computed: {\n lessParticipants() {\n return this.participants.slice(0, this.numberOfLessParticipants);\n },\n visibleParticipants() {\n return this.isShowingMoreParticipants ? this.participants : this.lessParticipants;\n },\n hasMoreParticipants() {\n return this.participants.length > this.numberOfLessParticipants;\n },\n toggleLabel() {\n let label = '';\n if (this.isShowingMoreParticipants) {\n label = __('- show less');\n } else {\n label = sprintf(__('+ %{moreCount} more'), {\n moreCount: this.participants.length - this.numberOfLessParticipants,\n });\n }\n\n return label;\n },\n participantLabel() {\n return sprintf(\n n__('%{count} Participant', '%{count} Participants', this.participants.length),\n { count: this.loading ? '' : this.participantCount },\n );\n },\n participantCount() {\n return this.participants.length;\n },\n },\n methods: {\n toggleMoreParticipants() {\n this.isShowingMoreParticipants = !this.isShowingMoreParticipants;\n },\n getParticipantId(participantId) {\n return getIdFromGraphQLId(participantId);\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div\n v-if=\"showParticipantLabel\"\n class=\"gl-mb-2 gl-flex gl-items-center gl-gap-2 gl-font-bold gl-leading-24 gl-text-default\"\n >\n {{ participantLabel }}\n <gl-loading-icon v-if=\"loading\" inline />\n </div>\n <div class=\"gl-flex gl-flex-wrap gl-gap-3\">\n <a\n v-for=\"participant in visibleParticipants\"\n :key=\"participant.id\"\n :href=\"participant.web_url || participant.webUrl\"\n :data-user-id=\"getParticipantId(participant.id)\"\n :data-username=\"participant.username\"\n class=\"author-link js-user-link gl-inline-block gl-rounded-full\"\n >\n <user-avatar-image\n :lazy=\"lazy\"\n :img-src=\"participant.avatar_url || participant.avatarUrl\"\n :size=\"24\"\n :img-alt=\"participant.name\"\n css-classes=\"!gl-mr-0\"\n tooltip-placement=\"bottom\"\n />\n </a>\n </div>\n <gl-button\n v-if=\"hasMoreParticipants\"\n class=\"gl-mt-3\"\n category=\"tertiary\"\n size=\"small\"\n @click=\"toggleMoreParticipants\"\n >\n {{ toggleLabel }}\n </gl-button>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./participants.vue?vue&type=template&id=bb540ad4\"\nimport script from \"./participants.vue?vue&type=script&lang=js\"\nexport * from \"./participants.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\n * An event hub with a Vue instance like API\n *\n * NOTE: This is a derivative work from [mitt][1] v1.2.0 which is licensed by\n * [MIT License][2] © [Jason Miller][3]\n *\n * [1]: https://github.com/developit/mitt\n * [2]: https://opensource.org/licenses/MIT\n * [3]: https://jasonformat.com/\n */\nclass EventHub {\n constructor() {\n this.$_all = new Map();\n }\n\n dispose() {\n this.$_all.clear();\n }\n\n /**\n * Register an event handler for the given type.\n *\n * @param {string|symbol} type Type of event to listen for\n * @param {Function} handler Function to call in response to given event\n */\n $on(type, handler) {\n const handlers = this.$_all.get(type);\n const added = handlers && handlers.push(handler);\n\n if (!added) {\n this.$_all.set(type, [handler]);\n }\n }\n\n /**\n * Remove an event handler or all handlers for the given type.\n *\n * @param {string|symbol} type Type of event to unregister `handler`\n * @param {Function} handler Handler function to remove\n */\n $off(type, handler) {\n const handlers = this.$_all.get(type) || [];\n\n const newHandlers = handler ? handlers.filter((x) => x !== handler) : [];\n\n if (newHandlers.length) {\n this.$_all.set(type, newHandlers);\n } else {\n this.$_all.delete(type);\n }\n }\n\n /**\n * Add an event listener to type but only trigger it once\n *\n * @param {string|symbol} type Type of event to listen for\n * @param {Function} handler Handler function to call in response to event\n */\n $once(type, handler) {\n const wrapHandler = (...args) => {\n this.$off(type, wrapHandler);\n handler(...args);\n };\n this.$on(type, wrapHandler);\n }\n\n /**\n * Invoke all handlers for the given type.\n *\n * @param {string|symbol} type The event type to invoke\n * @param {Any} [evt] Any value passed to each handler\n */\n $emit(type, ...args) {\n const handlers = this.$_all.get(type) || [];\n\n handlers.forEach((handler) => {\n handler(...args);\n });\n }\n}\n\n/**\n * Return a Vue like event hub\n *\n * - $on\n * - $off\n * - $once\n * - $emit\n *\n * We'd like to shy away from using a full fledged Vue instance from this in the future.\n */\nexport default () => {\n return new EventHub();\n};\n","import Vue from 'vue';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport { DISCLOSURE_DROPDOWN_ITEM_NAME, DISCLOSURE_DROPDOWN_GROUP_NAME } from './constants';\n\nconst itemValidator = item => {\n var _item$text;\n return (item === null || item === void 0 ? void 0 : (_item$text = item.text) === null || _item$text === void 0 ? void 0 : _item$text.length) > 0 && !Array.isArray(item === null || item === void 0 ? void 0 : item.items);\n};\nconst isItem = item => Boolean(item) && itemValidator(item);\nconst isGroup = group => Boolean(group) && Array.isArray(group.items) && Boolean(group.items.length) &&\n// eslint-disable-next-line unicorn/no-array-callback-reference\ngroup.items.every(isItem);\n\n// eslint-disable-next-line unicorn/no-array-callback-reference\nconst itemsValidator = items => items.every(isItem) || items.every(isGroup);\nconst isListItem = tag => ['gl-disclosure-dropdown-group', 'gl-disclosure-dropdown-item', 'li'].includes(tag);\nconst isValidSlotTagVue2 = vNode => {\n var _vNode$componentOptio;\n return Boolean(vNode) && isListItem(((_vNode$componentOptio = vNode.componentOptions) === null || _vNode$componentOptio === void 0 ? void 0 : _vNode$componentOptio.tag) || vNode.tag);\n};\nconst isValidSlotTagVue3 = vNode => {\n var _vNode$type;\n return [DISCLOSURE_DROPDOWN_ITEM_NAME, DISCLOSURE_DROPDOWN_GROUP_NAME].includes((_vNode$type = vNode.type) === null || _vNode$type === void 0 ? void 0 : _vNode$type.name) || vNode.type === 'li';\n};\nconst hasOnlyListItemsVue2 = defaultSlot => {\n const nodes = defaultSlot();\n if (!Array.isArray(nodes)) {\n return false;\n }\n const tags = nodes.filter(vNode => vNode.tag);\n return tags.length && tags.every(tag => isValidSlotTagVue2(tag));\n};\nconst hasOnlyListItemsVue3 = defaultSlot => {\n const nodes = defaultSlot();\n const fragment = nodes.find(node => Array.isArray(node.children) && node.children.length);\n const targetNodes = fragment ? fragment.children : nodes;\n return targetNodes\n // Remove empty text vNodes\n .filter(vNode => !isString(vNode.text) || vNode.text.trim().length > 0).every(vNode => isValidSlotTagVue3(vNode));\n};\nconst hasOnlyListItems = defaultSlot => {\n if (!isFunction(defaultSlot)) {\n return false;\n }\n if (Vue.version.startsWith('3')) {\n return hasOnlyListItemsVue3(defaultSlot);\n }\n return hasOnlyListItemsVue2(defaultSlot);\n};\n\nexport { hasOnlyListItems, isGroup, isItem, itemsValidator };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-collapsible-listbox',{ref:\"dropdown\",attrs:{\"block\":\"\",\"header-text\":_vm.$options.HEALTH_STATUS_I18N_ASSIGN_HEALTH_STATUS,\"toggle-text\":_vm.dropdownText,\"items\":_vm.items},on:{\"select\":_vm.onSelect},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./health_status_dropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./health_status_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport {\n HEALTH_STATUS_I18N_ASSIGN_HEALTH_STATUS,\n HEALTH_STATUS_I18N_NO_STATUS,\n HEALTH_STATUS_I18N_SELECT_HEALTH_STATUS,\n healthStatusDropdownOptions,\n healthStatusTextMap,\n} from '../../constants';\n\nexport default {\n HEALTH_STATUS_I18N_ASSIGN_HEALTH_STATUS,\n HEALTH_STATUS_I18N_NO_STATUS,\n HEALTH_STATUS_I18N_SELECT_HEALTH_STATUS,\n healthStatusDropdownOptions,\n components: {\n GlCollapsibleListbox,\n },\n props: {\n /**\n * `null` represents a user's choice to remove the health status.\n * `undefined` represents no chosen value.\n */\n healthStatus: {\n type: String,\n required: false,\n default: undefined,\n },\n },\n data() {\n return {\n selected: this.healthStatus === null ? '' : this.healthStatus,\n };\n },\n computed: {\n items() {\n return [\n {\n text: '',\n options: [{ text: this.$options.HEALTH_STATUS_I18N_NO_STATUS, value: '' }],\n textSrOnly: true,\n },\n {\n text: __('Health status'),\n options: this.$options.healthStatusDropdownOptions,\n textSrOnly: true,\n },\n ];\n },\n dropdownText() {\n if (this.healthStatus === null) {\n return this.$options.HEALTH_STATUS_I18N_NO_STATUS;\n }\n return this.healthStatus\n ? healthStatusTextMap[this.healthStatus]\n : this.$options.HEALTH_STATUS_I18N_SELECT_HEALTH_STATUS;\n },\n },\n methods: {\n onSelect(value) {\n this.$emit('change', value === '' ? null : value);\n },\n show() {\n this.$refs.dropdown.open();\n },\n },\n};\n</script>\n\n<template>\n <gl-collapsible-listbox\n ref=\"dropdown\"\n v-model=\"selected\"\n block\n :header-text=\"$options.HEALTH_STATUS_I18N_ASSIGN_HEALTH_STATUS\"\n :toggle-text=\"dropdownText\"\n :items=\"items\"\n @select=\"onSelect\"\n />\n</template>\n","import { render, staticRenderFns } from \"./health_status_dropdown.vue?vue&type=template&id=19249ed0\"\nimport script from \"./health_status_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./health_status_dropdown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n keysIn = require('./keysIn');\n\n/**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n});\n\nmodule.exports = assignInWith;\n","/* eslint-disable no-console */\nexport const LOG_PREFIX = '[gitlab]';\n\nexport const logError = (message = '', ...args) => {\n console.error(LOG_PREFIX, `${message}\\n`, ...args);\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardListCount\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ListID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filters\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardIssueInput\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"boardList\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issueFilters\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filters\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issuesCount\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":140}};\n doc.loc.source = {\"body\":\"query BoardListCount($id: ListID!, $filters: BoardIssueInput) {\\n boardList(id: $id, issueFilters: $filters) {\\n id\\n issuesCount\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"BoardListCount\"] = oneQuery(doc, \"BoardListCount\");\n \n","/**\n * This triggers a re-fetch of the user counts\n *\n * It is separate from the user_counts_manager, so that\n * this function is side-effect free and can be used in\n * anywhere in the app without bloating bundle size\n */\nexport function fetchUserCounts() {\n document.dispatchEvent(new CustomEvent('userCounts:fetch'));\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"CiIcon\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DetailedStatus\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"icon\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"text\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detailsPath\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":71}};\n doc.loc.source = {\"body\":\"fragment CiIcon on DetailedStatus {\\n id\\n icon\\n text\\n detailsPath\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"CiIcon\"] = oneQuery(doc, \"CiIcon\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueLabels\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueType\"}}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":321}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/label.fragment.graphql\\\"\\n\\nquery issueLabels($fullPath: ID!, $iid: String, $types: [IssueType!]) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid, types: $types) {\\n id\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/label.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueLabels\"] = oneQuery(doc, \"issueLabels\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardListsEE\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"boardId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ListID\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filters\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardIssueInput\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isGroup\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":false},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":false},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"after\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"include\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isGroup\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"board\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"boardId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lists\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issueFilters\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filters\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"listType\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filters\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filters\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"after\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"after\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pageInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endCursor\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasNextPage\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"include\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"board\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"boardId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lists\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issueFilters\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filters\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"listType\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filters\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filters\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"after\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"after\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pageInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endCursor\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasNextPage\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1145}};\n doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/boards/graphql/issue.fragment.graphql\\\"\\n\\nquery BoardListsEE(\\n $fullPath: ID!\\n $boardId: BoardID!\\n $id: ListID\\n $filters: BoardIssueInput\\n $isGroup: Boolean = false\\n $isProject: Boolean = false\\n $after: String\\n $first: Int\\n) {\\n group(fullPath: $fullPath) @include(if: $isGroup) {\\n id\\n board(id: $boardId) {\\n id\\n lists(id: $id, issueFilters: $filters) {\\n nodes {\\n id\\n listType\\n issues(first: $first, filters: $filters, after: $after) {\\n nodes {\\n ...Issue\\n }\\n pageInfo {\\n endCursor\\n hasNextPage\\n }\\n }\\n }\\n }\\n }\\n }\\n project(fullPath: $fullPath) @include(if: $isProject) {\\n id\\n board(id: $boardId) {\\n id\\n lists(id: $id, issueFilters: $filters) {\\n nodes {\\n id\\n listType\\n issues(first: $first, filters: $filters, after: $after) {\\n nodes {\\n ...Issue\\n }\\n pageInfo {\\n endCursor\\n hasNextPage\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/boards/graphql/issue.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"BoardListsEE\"] = oneQuery(doc, \"BoardListsEE\");\n \n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","module.exports = require('./lib/visibility.timers.js')\n","const fileExtensionIcons = {\n html: 'html',\n htm: 'html',\n html_vm: 'html',\n asp: 'html',\n jade: 'pug',\n pug: 'pug',\n md: 'markdown',\n markdown: 'markdown',\n mdown: 'markdown',\n mkd: 'markdown',\n mkdn: 'markdown',\n rst: 'markdown',\n blink: 'blink',\n css: 'css',\n scss: 'sass',\n sass: 'sass',\n less: 'less',\n json: 'json',\n yaml: 'yaml',\n yml: 'yaml',\n xml: 'xml',\n plist: 'xml',\n xsd: 'xml',\n dtd: 'xml',\n xsl: 'xml',\n xslt: 'xml',\n resx: 'xml',\n iml: 'xml',\n xquery: 'xml',\n tmLanguage: 'xml',\n manifest: 'xml',\n project: 'xml',\n png: 'image',\n jpeg: 'image',\n jpg: 'image',\n gif: 'image',\n svg: 'image',\n ico: 'image',\n tif: 'image',\n tiff: 'image',\n psd: 'image',\n psb: 'image',\n ami: 'image',\n apx: 'image',\n bmp: 'image',\n bpg: 'image',\n brk: 'image',\n cur: 'image',\n dds: 'image',\n dng: 'image',\n exr: 'image',\n fpx: 'image',\n gbr: 'image',\n img: 'image',\n jbig2: 'image',\n jb2: 'image',\n jng: 'image',\n jxr: 'image',\n pbm: 'image',\n pgf: 'image',\n pic: 'image',\n raw: 'image',\n webp: 'image',\n js: 'javascript',\n cjs: 'javascript',\n ejs: 'javascript',\n esx: 'javascript',\n mjs: 'javascript',\n jsx: 'react',\n tsx: 'react',\n ini: 'settings',\n dlc: 'settings',\n dll: 'settings',\n config: 'settings',\n conf: 'settings',\n properties: 'settings',\n prop: 'settings',\n settings: 'settings',\n option: 'settings',\n props: 'settings',\n toml: 'settings',\n prefs: 'settings',\n ts: 'typescript',\n cts: 'typescript',\n mts: 'typescript',\n marko: 'markojs',\n pdf: 'pdf',\n xlsx: 'table',\n xls: 'table',\n ods: 'table',\n csv: 'table',\n tsv: 'table',\n vscodeignore: 'vscode',\n vsixmanifest: 'vscode',\n vsix: 'vscode',\n suo: 'visualstudio',\n sln: 'visualstudio',\n csproj: 'visualstudio',\n vb: 'visualstudio',\n pdb: 'database',\n sql: 'database',\n pks: 'database',\n pkb: 'database',\n accdb: 'database',\n mdb: 'database',\n sqlite: 'database',\n cs: 'csharp',\n zip: 'zip',\n tar: 'zip',\n gz: 'zip',\n xz: 'zip',\n bzip2: 'zip',\n gzip: 'zip',\n rar: 'zip',\n tgz: 'zip',\n exe: 'exe',\n msi: 'exe',\n java: 'java',\n jar: 'java',\n jsp: 'java',\n c: 'c',\n m: 'c',\n h: 'h',\n cc: 'cpp',\n cpp: 'cpp',\n mm: 'cpp',\n cxx: 'cpp',\n hpp: 'hpp',\n go: 'go',\n py: 'python',\n url: 'url',\n sh: 'console',\n ksh: 'console',\n csh: 'console',\n tcsh: 'console',\n zsh: 'console',\n bash: 'console',\n bat: 'console',\n cmd: 'console',\n ps1: 'powershell',\n psm1: 'powershell',\n psd1: 'powershell',\n ps1xml: 'powershell',\n psc1: 'powershell',\n pssc: 'powershell',\n gradle: 'gradle',\n doc: 'word',\n docx: 'word',\n odt: 'word',\n rtf: 'word',\n cer: 'certificate',\n cert: 'certificate',\n crt: 'certificate',\n pub: 'key',\n key: 'key',\n pem: 'key',\n asc: 'key',\n gpg: 'key',\n woff: 'font',\n woff2: 'font',\n ttf: 'font',\n eot: 'font',\n suit: 'font',\n otf: 'font',\n bmap: 'font',\n fnt: 'font',\n odttf: 'font',\n ttc: 'font',\n font: 'font',\n fonts: 'font',\n sui: 'font',\n ntf: 'font',\n mrf: 'font',\n lib: 'lib',\n bib: 'lib',\n rb: 'ruby',\n erb: 'ruby',\n fs: 'fsharp',\n fsx: 'fsharp',\n fsi: 'fsharp',\n fsproj: 'fsharp',\n swift: 'swift',\n ino: 'arduino',\n dockerignore: 'docker',\n dockerfile: 'docker',\n tex: 'tex',\n cls: 'tex',\n sty: 'tex',\n pptx: 'powerpoint',\n ppt: 'powerpoint',\n pptm: 'powerpoint',\n potx: 'powerpoint',\n pot: 'powerpoint',\n potm: 'powerpoint',\n ppsx: 'powerpoint',\n ppsm: 'powerpoint',\n pps: 'powerpoint',\n ppam: 'powerpoint',\n ppa: 'powerpoint',\n odp: 'powerpoint',\n webm: 'video',\n mkv: 'video',\n flv: 'video',\n vob: 'video',\n ogv: 'video',\n ogg: 'audio',\n gifv: 'video',\n avi: 'video',\n mov: 'video',\n qt: 'video',\n wmv: 'video',\n yuv: 'video',\n rm: 'video',\n rmvb: 'video',\n mp4: 'video',\n m4v: 'video',\n mpg: 'video',\n mp2: 'video',\n mpeg: 'video',\n mpe: 'video',\n mpv: 'video',\n m2v: 'video',\n vdi: 'virtual',\n vbox: 'virtual',\n ics: 'email',\n mp3: 'audio',\n flac: 'audio',\n m4a: 'audio',\n wma: 'audio',\n aiff: 'audio',\n coffee: 'coffee',\n txt: 'document',\n graphql: 'graphql',\n rs: 'rust',\n raml: 'raml',\n xaml: 'xaml',\n hs: 'haskell',\n kt: 'kotlin',\n kts: 'kotlin',\n patch: 'git',\n lua: 'lua',\n clj: 'clojure',\n cljs: 'clojure',\n groovy: 'groovy',\n r: 'r',\n rmd: 'r',\n dart: 'dart',\n as: 'actionscript',\n mxml: 'mxml',\n ahk: 'autohotkey',\n swf: 'flash',\n swc: 'swc',\n cmake: 'cmake',\n asm: 'assembly',\n a51: 'assembly',\n inc: 'assembly',\n nasm: 'assembly',\n s: 'assembly',\n ms: 'assembly',\n agc: 'assembly',\n ags: 'assembly',\n aea: 'assembly',\n argus: 'assembly',\n mitigus: 'assembly',\n binsource: 'assembly',\n vue: 'vue',\n ml: 'ocaml',\n mli: 'ocaml',\n cmx: 'ocaml',\n lock: 'lock',\n hbs: 'handlebars',\n mustache: 'handlebars',\n pl: 'perl',\n pm: 'perl',\n hx: 'haxe',\n pp: 'puppet',\n ex: 'elixir',\n exs: 'elixir',\n ls: 'livescript',\n erl: 'erlang',\n twig: 'twig',\n jl: 'julia',\n elm: 'elm',\n pure: 'purescript',\n tpl: 'smarty',\n styl: 'stylus',\n re: 'reason',\n rei: 'reason',\n cmj: 'bucklescript',\n merlin: 'merlin',\n v: 'verilog',\n vhd: 'verilog',\n sv: 'verilog',\n svh: 'verilog',\n nb: 'mathematica',\n wl: 'wolframlanguage',\n wls: 'wolframlanguage',\n njk: 'nunjucks',\n nunjucks: 'nunjucks',\n robot: 'robot',\n sol: 'solidity',\n au3: 'autoit',\n haml: 'haml',\n yang: 'yang',\n tf: 'terraform',\n tfvars: 'terraform',\n tfstate: 'terraform',\n applescript: 'applescript',\n cake: 'cake',\n feature: 'cucumber',\n nim: 'nim',\n nimble: 'nim',\n apib: 'apiblueprint',\n apiblueprint: 'apiblueprint',\n tag: 'riot',\n vfl: 'vfl',\n kl: 'kl',\n pcss: 'postcss',\n sss: 'postcss',\n todo: 'todo',\n cfml: 'coldfusion',\n cfc: 'coldfusion',\n lucee: 'coldfusion',\n cabal: 'cabal',\n nix: 'nix',\n slim: 'slim',\n http: 'http',\n rest: 'http',\n rql: 'restql',\n restql: 'restql',\n kv: 'kivy',\n graphcool: 'graphcool',\n sbt: 'sbt',\n cr: 'crystal',\n cu: 'cuda',\n cuh: 'cuda',\n log: 'log',\n};\n\nconst twoFileExtensionIcons = {\n 'gradle.kts': 'gradle',\n 'md.rendered': 'markdown',\n 'markdown.rendered': 'markdown',\n 'mdown.rendered': 'markdown',\n 'mkd.rendered': 'markdown',\n 'mkdn.rendered': 'markdown',\n 'YAML-tmLanguage': 'yaml',\n 'sln.dotsettings': 'settings',\n 'sln.dotsettings.user': 'settings',\n 'd.ts': 'typescript-def',\n 'code-workplace': 'vscode',\n '7z': 'zip',\n 'c++': 'cpp',\n 'vbox-prev': 'virtual',\n 'js.map': 'javascript-map',\n 'css.map': 'css-map',\n 'spec.ts': 'test-ts',\n 'test.ts': 'test-ts',\n 'ts.snap': 'test-ts',\n 'spec.tsx': 'test-jsx',\n 'test.tsx': 'test-jsx',\n 'tsx.snap': 'test-jsx',\n 'spec.jsx': 'test-jsx',\n 'test.jsx': 'test-jsx',\n 'jsx.snap': 'test-jsx',\n 'spec.js': 'test-js',\n 'test.js': 'test-js',\n 'js.snap': 'test-js',\n // 'routing.ts': 'angular-routing',\n // 'routing.js': 'angular-routing',\n 'module.ts': 'angular',\n 'module.js': 'angular',\n 'ng-template': 'angular',\n 'component.ts': 'angular-component',\n 'component.js': 'angular-component',\n 'guard.ts': 'angular-guard',\n 'guard.js': 'angular-guard',\n 'service.ts': 'angular-service',\n 'service.js': 'angular-service',\n 'pipe.ts': 'angular-pipe',\n 'pipe.js': 'angular-pipe',\n 'filter.js': 'angular-pipe',\n 'directive.ts': 'angular-directive',\n 'directive.js': 'angular-directive',\n 'resolver.ts': 'angular-resolver',\n 'resolver.js': 'angular-resolver',\n 'tf.json': 'terraform',\n 'blade.php': 'laravel',\n 'inky.php': 'laravel',\n 'reducer.ts': 'ngrx-reducer',\n 'rootReducer.ts': 'ngrx-reducer',\n 'state.ts': 'ngrx-state',\n 'actions.ts': 'ngrx-actions',\n 'effects.ts': 'ngrx-effects',\n 'drone.yml': 'drone',\n};\n\nconst fileNameIcons = {\n '.jscsrc': 'json',\n '.jshintrc': 'json',\n 'tsconfig.json': 'json',\n 'tslint.json': 'json',\n 'composer.lock': 'json',\n '.jsbeautifyrc': 'json',\n '.esformatter': 'json',\n 'cdp.pid': 'json',\n '.htaccess': 'xml',\n '.jshintignore': 'settings',\n '.buildignore': 'settings',\n makefile: 'settings',\n '.mrconfig': 'settings',\n '.yardopts': 'settings',\n 'gradle.properties': 'gradle',\n gradlew: 'gradle',\n 'gradle-wrapper.properties': 'gradle',\n COPYING: 'certificate',\n 'COPYING.LESSER': 'certificate',\n LICENSE: 'certificate',\n LICENCE: 'certificate',\n 'LICENSE.md': 'certificate',\n 'LICENCE.md': 'certificate',\n 'LICENSE.txt': 'certificate',\n 'LICENCE.txt': 'certificate',\n '.gitlab-license': 'certificate',\n dockerfile: 'docker',\n 'docker-compose.yml': 'docker',\n '.mailmap': 'email',\n '.gitignore': 'git',\n '.gitconfig': 'git',\n '.gitattributes': 'git',\n '.gitmodules': 'git',\n '.gitkeep': 'git',\n 'git-history': 'git',\n '.Rhistory': 'r',\n 'cmakelists.txt': 'cmake',\n 'cmakecache.txt': 'cmake',\n 'angular-cli.json': 'angular',\n '.angular-cli.json': 'angular',\n '.vfl': 'vfl',\n '.kl': 'kl',\n 'postcss.config.js': 'postcss',\n '.postcssrc.js': 'postcss',\n 'project.graphcool': 'graphcool',\n 'webpack.js': 'webpack',\n 'webpack.ts': 'webpack',\n 'webpack.base.js': 'webpack',\n 'webpack.base.ts': 'webpack',\n 'webpack.config.js': 'webpack',\n 'webpack.config.ts': 'webpack',\n 'webpack.common.js': 'webpack',\n 'webpack.common.ts': 'webpack',\n 'webpack.config.common.js': 'webpack',\n 'webpack.config.common.ts': 'webpack',\n 'webpack.config.common.babel.js': 'webpack',\n 'webpack.config.common.babel.ts': 'webpack',\n 'webpack.dev.js': 'webpack',\n 'webpack.dev.ts': 'webpack',\n 'webpack.config.dev.js': 'webpack',\n 'webpack.config.dev.ts': 'webpack',\n 'webpack.config.dev.babel.js': 'webpack',\n 'webpack.config.dev.babel.ts': 'webpack',\n 'webpack.prod.js': 'webpack',\n 'webpack.prod.ts': 'webpack',\n 'webpack.server.js': 'webpack',\n 'webpack.server.ts': 'webpack',\n 'webpack.client.js': 'webpack',\n 'webpack.client.ts': 'webpack',\n 'webpack.config.server.js': 'webpack',\n 'webpack.config.server.ts': 'webpack',\n 'webpack.config.client.js': 'webpack',\n 'webpack.config.client.ts': 'webpack',\n 'webpack.config.production.babel.js': 'webpack',\n 'webpack.config.production.babel.ts': 'webpack',\n 'webpack.config.prod.babel.js': 'webpack',\n 'webpack.config.prod.babel.ts': 'webpack',\n 'webpack.config.prod.js': 'webpack',\n 'webpack.config.prod.ts': 'webpack',\n 'webpack.config.production.js': 'webpack',\n 'webpack.config.production.ts': 'webpack',\n 'webpack.config.staging.js': 'webpack',\n 'webpack.config.staging.ts': 'webpack',\n 'webpack.config.babel.js': 'webpack',\n 'webpack.config.babel.ts': 'webpack',\n 'webpack.config.base.babel.js': 'webpack',\n 'webpack.config.base.babel.ts': 'webpack',\n 'webpack.config.base.js': 'webpack',\n 'webpack.config.base.ts': 'webpack',\n 'webpack.config.staging.babel.js': 'webpack',\n 'webpack.config.staging.babel.ts': 'webpack',\n 'webpack.config.coffee': 'webpack',\n 'webpack.config.test.js': 'webpack',\n 'webpack.config.test.ts': 'webpack',\n 'webpack.config.vendor.js': 'webpack',\n 'webpack.config.vendor.ts': 'webpack',\n 'webpack.config.vendor.production.js': 'webpack',\n 'webpack.config.vendor.production.ts': 'webpack',\n 'webpack.test.js': 'webpack',\n 'webpack.test.ts': 'webpack',\n 'webpack.dist.js': 'webpack',\n 'webpack.dist.ts': 'webpack',\n 'webpackfile.js': 'webpack',\n 'webpackfile.ts': 'webpack',\n 'ionic.config.json': 'ionic',\n '.io-config.json': 'ionic',\n 'gulpfile.js': 'gulp',\n 'gulpfile.ts': 'gulp',\n 'gulpfile.babel.js': 'gulp',\n 'package.json': 'nodejs',\n 'package-lock.json': 'nodejs',\n '.nvmrc': 'nodejs',\n '.npmignore': 'npm',\n '.npmrc': 'npm',\n '.yarnrc': 'yarn',\n '.yarnrc.yml': 'yarn',\n 'yarn.lock': 'yarn',\n '.yarnclean': 'yarn',\n '.yarn-integrity': 'yarn',\n 'yarn-error.log': 'yarn',\n 'androidmanifest.xml': 'android',\n '.env': 'tune',\n '.env.example': 'tune',\n '.babelrc': 'babel',\n 'contributing.md': 'contributing',\n 'contributing.md.rendered': 'contributing',\n 'readme.md': 'readme',\n 'readme.md.rendered': 'readme',\n changelog: 'changelog',\n 'changelog.md': 'changelog',\n 'changelog.md.rendered': 'changelog',\n CREDITS: 'credits',\n 'credits.txt': 'credits',\n 'credits.md': 'credits',\n 'credits.md.rendered': 'credits',\n '.flowconfig': 'flow',\n 'favicon.png': 'favicon',\n 'karma.conf.js': 'karma',\n 'karma.conf.ts': 'karma',\n 'karma.conf.coffee': 'karma',\n 'karma.config.js': 'karma',\n 'karma.config.ts': 'karma',\n 'karma-main.js': 'karma',\n 'karma-main.ts': 'karma',\n '.bithoundrc': 'bithound',\n 'appveyor.yml': 'appveyor',\n '.travis.yml': 'travis',\n 'protractor.conf.js': 'protractor',\n 'protractor.conf.ts': 'protractor',\n 'protractor.conf.coffee': 'protractor',\n 'protractor.config.js': 'protractor',\n 'protractor.config.ts': 'protractor',\n 'fuse.js': 'fusebox',\n procfile: 'heroku',\n '.editorconfig': 'editorconfig',\n '.gitlab-ci.yml': 'gitlab',\n '.bowerrc': 'bower',\n 'bower.json': 'bower',\n '.eslintrc.js': 'eslint',\n '.eslintrc.yaml': 'eslint',\n '.eslintrc.yml': 'eslint',\n '.eslintrc.json': 'eslint',\n '.eslintrc': 'eslint',\n '.eslintignore': 'eslint',\n 'code_of_conduct.md': 'conduct',\n 'code_of_conduct.md.rendered': 'conduct',\n '.watchmanconfig': 'watchman',\n 'aurelia.json': 'aurelia',\n 'mocha.opts': 'mocha',\n jenkinsfile: 'jenkins',\n 'firebase.json': 'firebase',\n '.firebaserc': 'firebase',\n Rakefile: 'ruby',\n 'rollup.config.js': 'rollup',\n 'rollup.config.ts': 'rollup',\n 'rollup-config.js': 'rollup',\n 'rollup-config.ts': 'rollup',\n 'rollup.config.prod.js': 'rollup',\n 'rollup.config.prod.ts': 'rollup',\n 'rollup.config.dev.js': 'rollup',\n 'rollup.config.dev.ts': 'rollup',\n 'rollup.config.prod.vendor.js': 'rollup',\n 'rollup.config.prod.vendor.ts': 'rollup',\n '.hhconfig': 'hack',\n '.stylelintrc': 'stylelint',\n 'stylelint.config.js': 'stylelint',\n '.stylelintrc.json': 'stylelint',\n '.stylelintrc.yaml': 'stylelint',\n '.stylelintrc.yml': 'stylelint',\n '.stylelintrc.js': 'stylelint',\n '.stylelintignore': 'stylelint',\n '.codeclimate.yml': 'code-climate',\n '.prettierrc': 'prettier',\n 'prettier.config.js': 'prettier',\n '.prettierrc.js': 'prettier',\n '.prettierrc.json': 'prettier',\n '.prettierrc.yaml': 'prettier',\n '.prettierrc.yml': 'prettier',\n '.prettierignore': 'prettier',\n 'nodemon.json': 'nodemon',\n // '.sonarrc': 'sonar',\n browserslist: 'browserlist',\n '.browserslistrc': 'browserlist',\n '.snyk': 'snyk',\n '.drone.yml': 'drone',\n};\n\nfunction getIconForFile(name) {\n return (\n fileNameIcons[name] ||\n twoFileExtensionIcons[name ? name.split('.').slice(-2).join('.') : ''] ||\n fileExtensionIcons[name ? name.split('.').pop().toLowerCase() : ''] ||\n ''\n );\n}\n\nmodule.exports = {\n fileNameIcons,\n fileExtensionIcons,\n twoFileExtensionIcons,\n getIconForFile,\n};\n","/* eslint-disable class-methods-use-this, no-new */\nimport $ from 'jquery';\nimport issuableEventHub from '~/issues/list/eventhub';\nimport LabelsSelect from '~/labels/labels_select';\nimport {\n mountAssigneesDropdown,\n mountConfidentialityDropdown,\n mountMilestoneDropdown,\n mountMoveIssuesButton,\n mountStatusDropdown,\n mountSubscriptionsDropdown,\n} from '~/sidebar/mount_sidebar';\nimport IssuableBulkUpdateActions from './issuable_bulk_update_actions';\n\nconst HIDDEN_CLASS = 'hidden';\nconst DISABLED_CONTENT_CLASS = 'disabled-content';\nconst SIDEBAR_EXPANDED_CLASS = 'right-sidebar-expanded issuable-bulk-update-sidebar';\nconst SIDEBAR_COLLAPSED_CLASS = 'right-sidebar-collapsed issuable-bulk-update-sidebar';\n\nexport default class IssuableBulkUpdateSidebar {\n constructor() {\n this.initDomElements();\n this.bindEvents();\n this.initDropdowns();\n this.setupBulkUpdateActions();\n }\n\n initDomElements() {\n this.$page = $('.layout-page');\n this.$sidebar = $('.right-sidebar');\n this.$sidebarInnerContainer = this.$sidebar.find('.issuable-sidebar');\n this.$bulkEditCancelBtn = $('.js-bulk-update-menu-hide');\n this.$bulkEditSubmitBtn = $('.js-update-selected-issues');\n this.$bulkUpdateEnableBtn = $('.js-bulk-update-toggle');\n this.$otherFilters = $('.issues-other-filters');\n this.$checkAllContainer = $('.check-all-holder');\n this.$issueChecks = $('.issue-check');\n this.$issuesList = $('.issuable-list input[type=\"checkbox\"]');\n this.$issuableIdsInput = $('#update_issuable_ids');\n }\n\n bindEvents() {\n this.$bulkUpdateEnableBtn.on('click', (e) => this.toggleBulkEdit(e, true));\n this.$bulkEditCancelBtn.on('click', (e) => this.toggleBulkEdit(e, false));\n this.$checkAllContainer.on('click', (e) => this.selectAll(e));\n this.$issuesList.on('change', () => this.updateFormState());\n this.$bulkEditSubmitBtn.on('click', () => this.prepForSubmit());\n this.$checkAllContainer.on('click', () => this.updateFormState());\n\n // The event hub connects this bulk update logic with `issues_list_app.vue`.\n // We can remove it once we've refactored the issues list page bulk edit sidebar to Vue.\n // https://gitlab.com/gitlab-org/gitlab/-/issues/325874\n issuableEventHub.$on('issuables:enableBulkEdit', () => this.toggleBulkEdit(null, true));\n issuableEventHub.$on('issuables:updateBulkEdit', () => this.updateFormState());\n\n // These events are connected to the logic inside `move_issues_button.vue`,\n // so that only one action can be performed at a time\n issuableEventHub.$on('issuables:bulkMoveStarted', () => this.toggleSubmitButtonDisabled(true));\n issuableEventHub.$on('issuables:bulkMoveEnded', () => this.updateFormState());\n }\n\n initDropdowns() {\n new LabelsSelect();\n mountMilestoneDropdown();\n mountMoveIssuesButton();\n mountStatusDropdown();\n mountSubscriptionsDropdown();\n mountAssigneesDropdown();\n mountConfidentialityDropdown();\n\n // Checking IS_EE and using ee_else_ce is odd, but we do it here to satisfy\n // the import/no-unresolved lint rule when FOSS_ONLY=1, even though at\n // runtime this block won't execute.\n if (IS_EE) {\n import('ee_else_ce/sidebar/mount_sidebar')\n .then(({ mountEpicDropdown, mountHealthStatusDropdown, mountIterationDropdown }) => {\n mountEpicDropdown();\n mountHealthStatusDropdown();\n mountIterationDropdown();\n })\n .catch(() => {});\n }\n }\n\n setupBulkUpdateActions() {\n IssuableBulkUpdateActions.setOriginalDropdownData();\n }\n\n updateFormState() {\n const noCheckedIssues = !$('.issuable-list input[type=\"checkbox\"]:checked').length;\n\n this.toggleSubmitButtonDisabled(noCheckedIssues);\n this.updateSelectedIssuableIds();\n\n IssuableBulkUpdateActions.setOriginalDropdownData();\n\n issuableEventHub.$emit('issuables:selectionChanged', !noCheckedIssues);\n }\n\n prepForSubmit() {\n // if submit button is disabled, submission is blocked. This ensures we disable after\n // form submission is carried out\n setTimeout(() => this.$bulkEditSubmitBtn.disable());\n this.updateSelectedIssuableIds();\n }\n\n toggleBulkEdit(e, enable) {\n e?.preventDefault();\n\n issuableEventHub.$emit('issuables:toggleBulkEdit', enable);\n\n this.toggleSidebarDisplay(enable);\n this.toggleBulkEditButtonDisabled(enable);\n this.toggleOtherFiltersDisabled(enable);\n this.toggleCheckboxDisplay(enable);\n }\n\n updateSelectedIssuableIds() {\n this.$issuableIdsInput.val(IssuableBulkUpdateSidebar.getCheckedIssueIds());\n }\n\n selectAll() {\n const checkAllButtonState = this.$checkAllContainer.find('input').prop('checked');\n\n this.$issuesList.prop('checked', checkAllButtonState);\n }\n\n toggleSidebarDisplay(show) {\n this.$page.toggleClass(SIDEBAR_EXPANDED_CLASS, show);\n this.$page.toggleClass(SIDEBAR_COLLAPSED_CLASS, !show);\n this.$sidebarInnerContainer.toggleClass(HIDDEN_CLASS, !show);\n this.$sidebar.toggleClass(SIDEBAR_EXPANDED_CLASS, show);\n this.$sidebar.toggleClass(SIDEBAR_COLLAPSED_CLASS, !show);\n }\n\n toggleBulkEditButtonDisabled(disable) {\n if (disable) {\n this.$bulkUpdateEnableBtn.disable();\n } else {\n this.$bulkUpdateEnableBtn.enable();\n }\n }\n\n toggleCheckboxDisplay(show) {\n this.$checkAllContainer.toggleClass(HIDDEN_CLASS, !show);\n this.$issueChecks.toggleClass(HIDDEN_CLASS, !show);\n }\n\n toggleOtherFiltersDisabled(disable) {\n this.$otherFilters.toggleClass(DISABLED_CONTENT_CLASS, disable);\n }\n\n toggleSubmitButtonDisabled(disable) {\n if (disable) {\n this.$bulkEditSubmitBtn.disable();\n } else {\n this.$bulkEditSubmitBtn.enable();\n }\n }\n\n static getCheckedIssueIds() {\n const $checkedIssues = $('.issuable-list input[type=\"checkbox\"]:checked');\n\n if ($checkedIssues.length > 0) {\n return $.map($checkedIssues, (value) => $(value).data('id'));\n }\n\n return [];\n }\n}\n","import { GlBreakpointInstance as bp } from '@gitlab/ui/dist/utils';\nimport $ from 'jquery';\nimport { setCookie } from '~/lib/utils/common_utils';\nimport UsersSelect from '~/users_select';\n\nexport default class IssuableContext {\n constructor(currentUser) {\n this.reviewersSelect = new UsersSelect(currentUser, '.js-reviewer-search');\n\n this.reviewersSelect.dropdowns.forEach((glDropdownInstance) => {\n const jQueryWrapper = glDropdownInstance.dropdown;\n const domElement = jQueryWrapper[0];\n const content = domElement.querySelector('.dropdown-content');\n const loader = domElement.querySelector('.dropdown-loading');\n const spinner = loader.querySelector('.gl-spinner-container');\n const realParent = loader.parentNode;\n\n domElement.classList.add('non-blocking-loader');\n spinner.classList.remove('gl-mt-7');\n spinner.classList.add('gl-mt-2');\n\n jQueryWrapper.on('shown.bs.dropdown', () => {\n glDropdownInstance.filterInput.focus();\n });\n jQueryWrapper.on('toggle.on.loading.gl.dropdown filtering.gl.dropdown', () => {\n content.appendChild(loader);\n });\n jQueryWrapper.on('done.remote.loading.gl.dropdown done.filtering.gl.dropdown', () => {\n realParent.appendChild(loader);\n });\n });\n\n $('.issuable-sidebar .inline-update').on('change', 'select', function onClickSelect() {\n return $(this).submit();\n });\n $(document)\n .off('click', '.issuable-sidebar .dropdown-content a')\n .on('click', '.issuable-sidebar .dropdown-content a', (e) => e.preventDefault());\n\n $(document)\n .off('click', '.edit-link')\n .on('click', '.edit-link', function onClickEdit(e) {\n e.preventDefault();\n const $block = $(this).parents('.block');\n const $selectbox = $block.find('.selectbox');\n if ($selectbox.is(':visible')) {\n $selectbox.hide();\n $block.find('.value:not(.dont-hide)').show();\n } else {\n $selectbox.show();\n $block.find('.value:not(.dont-hide)').hide();\n }\n\n if ($selectbox.is(':visible')) {\n setTimeout(() => $block.find('.dropdown-menu-toggle').trigger('click'), 0);\n }\n });\n\n window.addEventListener('beforeunload', () => {\n // collapsed_gutter cookie hides the sidebar\n const bpBreakpoint = bp.getBreakpointSize();\n const supportedSizes = ['xs', 'sm', 'md'];\n\n if (supportedSizes.includes(bpBreakpoint)) {\n setCookie('collapsed_gutter', true);\n }\n });\n }\n}\n","import { GlToast } from '@gitlab/ui';\nimport Vue from 'vue';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport Sidebar from '~/right_sidebar';\nimport { getSidebarOptions } from '~/sidebar/mount_sidebar';\nimport CsvImportExportButtons from './components/csv_import_export_buttons.vue';\nimport IssuableByEmail from './components/issuable_by_email.vue';\nimport issuableBulkUpdateActions from './issuable_bulk_update_actions';\nimport IssuableBulkUpdateSidebar from './issuable_bulk_update_sidebar';\nimport IssuableContext from './issuable_context';\n\nexport function initBulkUpdateSidebar(prefixId) {\n const el = document.querySelector('.issues-bulk-update');\n\n if (!el) {\n return;\n }\n\n issuableBulkUpdateActions.init({ prefixId });\n new IssuableBulkUpdateSidebar(); // eslint-disable-line no-new\n}\n\nexport function initCsvImportExportButtons() {\n const el = document.querySelector('.js-csv-import-export-buttons');\n\n if (!el) {\n return null;\n }\n\n const {\n showExportButton,\n showImportButton,\n issuableType,\n issuableCount,\n email,\n exportCsvPath,\n importCsvIssuesPath,\n canEdit,\n projectImportJiraPath,\n maxAttachmentSize,\n } = el.dataset;\n\n return new Vue({\n el,\n name: 'CsvImportExportButtonsRoot',\n provide: {\n showExportButton: parseBoolean(showExportButton),\n showImportButton: parseBoolean(showImportButton),\n issuableType,\n email,\n importCsvIssuesPath,\n canEdit: parseBoolean(canEdit),\n projectImportJiraPath,\n maxAttachmentSize,\n },\n render: (createElement) =>\n createElement(CsvImportExportButtons, {\n props: {\n exportCsvPath,\n issuableCount: parseInt(issuableCount, 10),\n },\n }),\n });\n}\n\nexport function initIssuableByEmail() {\n const el = document.querySelector('.js-issuable-by-email');\n\n if (!el) {\n return null;\n }\n\n Vue.use(GlToast);\n\n const {\n initialEmail,\n issuableType,\n emailsHelpPagePath,\n quickActionsHelpPath,\n markdownHelpPath,\n resetPath,\n } = el.dataset;\n\n return new Vue({\n el,\n name: 'IssuableByEmailRoot',\n provide: {\n initialEmail,\n issuableType,\n emailsHelpPagePath,\n quickActionsHelpPath,\n markdownHelpPath,\n resetPath,\n },\n render: (createElement) => createElement(IssuableByEmail),\n });\n}\n\nexport function initIssuableSidebar() {\n const el = document.querySelector('.js-sidebar-options');\n\n if (!el) {\n return;\n }\n\n const sidebarOptions = getSidebarOptions(el);\n\n new IssuableContext(sidebarOptions.currentUser); // eslint-disable-line no-new\n Sidebar.initialize();\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',[(_vm.loading)?_c('gl-loading-icon',{attrs:{\"size\":\"sm\",\"inline\":true}}):(_vm.isSymlink)?_c('gl-icon',{attrs:{\"name\":\"symlink\",\"size\":_vm.size}}):(!_vm.folder)?_c('svg',{key:_vm.spriteHref,class:[_vm.iconSizeClass, _vm.cssClasses]},[_c('use',{attrs:{\"href\":_vm.spriteHref}})]):_c('gl-icon',{staticClass:\"folder-icon\",attrs:{\"name\":_vm.folderIconName,\"size\":_vm.size}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file_icon.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file_icon.vue?vue&type=script&lang=js\"","<script>\nimport { getIconForFile } from '@gitlab/svgs/src/file_icon_map';\nimport { GlLoadingIcon, GlIcon } from '@gitlab/ui';\nimport { FILE_SYMLINK_MODE } from '../constants';\n\n/* This is a re-usable vue component for rendering a svg sprite\n icon\n\n Sample configuration:\n\n <file-icon\n name=\"retry\"\n :size=\"32\"\n css-classes=\"top\"\n />\n\n */\nexport default {\n components: {\n GlLoadingIcon,\n GlIcon,\n },\n props: {\n fileName: {\n type: String,\n required: true,\n },\n fileMode: {\n type: String,\n required: false,\n default: '',\n },\n folder: {\n type: Boolean,\n required: false,\n default: false,\n },\n submodule: {\n type: Boolean,\n required: false,\n default: false,\n },\n opened: {\n type: Boolean,\n required: false,\n default: false,\n },\n loading: {\n type: Boolean,\n required: false,\n default: false,\n },\n size: {\n type: Number,\n required: false,\n default: 16,\n },\n cssClasses: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n isSymlink() {\n return this.fileMode === FILE_SYMLINK_MODE;\n },\n spriteHref() {\n const iconName = this.submodule ? 'folder-git' : getIconForFile(this.fileName) || 'file';\n\n return `${gon.sprite_file_icons}#${iconName}`;\n },\n folderIconName() {\n return this.opened ? 'folder-open' : 'folder';\n },\n iconSizeClass() {\n return this.size ? `s${this.size}` : '';\n },\n },\n};\n</script>\n<template>\n <span>\n <gl-loading-icon v-if=\"loading\" size=\"sm\" :inline=\"true\" />\n <gl-icon v-else-if=\"isSymlink\" name=\"symlink\" :size=\"size\" />\n <svg v-else-if=\"!folder\" :key=\"spriteHref\" :class=\"[iconSizeClass, cssClasses]\">\n <use :href=\"spriteHref\" />\n </svg>\n <gl-icon v-else :name=\"folderIconName\" :size=\"size\" class=\"folder-icon\" />\n </span>\n</template>\n","import { render, staticRenderFns } from \"./file_icon.vue?vue&type=template&id=baba2178\"\nimport script from \"./file_icon.vue?vue&type=script&lang=js\"\nexport * from \"./file_icon.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueReference\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"full\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":186}};\n doc.loc.source = {\"body\":\"query issueReference($fullPath: ID!, $iid: String) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n reference(full: true)\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueReference\"] = oneQuery(doc, \"issueReference\");\n \n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","import createEventHub from '~/helpers/event_hub_factory';\n\nexport default createEventHub();\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-badge',{attrs:{\"variant\":\"muted\"}},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_access_role_badge.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_access_role_badge.vue?vue&type=script&lang=js\"","<script>\n/**\n * This component applies particular styling to GlBadge that isn't\n * available in the current GlBadge variants.\n * Where possible, prefer one of the supported GlBadge variants.\n * Discussion issue: https://gitlab.com/gitlab-org/gitlab-ui/-/issues/1247\n */\nimport { GlBadge } from '@gitlab/ui';\n\nexport default {\n name: 'UserAccessRoleBadge',\n components: {\n GlBadge,\n },\n};\n</script>\n\n<template>\n <gl-badge variant=\"muted\">\n <slot></slot>\n </gl-badge>\n</template>\n","import { render, staticRenderFns } from \"./user_access_role_badge.vue?vue&type=template&id=6096c5c6\"\nimport script from \"./user_access_role_badge.vue?vue&type=script&lang=js\"\nexport * from \"./user_access_role_badge.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","(function() {\n var AcronymResult, computeScore, emptyAcronymResult, isAcronymFullWord, isMatch, isSeparator, isWordEnd, isWordStart, miss_coeff, pos_bonus, scoreAcronyms, scoreCharacter, scoreConsecutives, scoreExact, scoreExactMatch, scorePattern, scorePosition, scoreSize, tau_size, wm;\n\n wm = 150;\n\n pos_bonus = 20;\n\n tau_size = 150;\n\n miss_coeff = 0.75;\n\n exports.score = function(string, query, options) {\n var allowErrors, preparedQuery, score, string_lw;\n preparedQuery = options.preparedQuery, allowErrors = options.allowErrors;\n if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n return 0;\n }\n string_lw = string.toLowerCase();\n score = computeScore(string, string_lw, preparedQuery);\n return Math.ceil(score);\n };\n\n exports.isMatch = isMatch = function(subject, query_lw, query_up) {\n var i, j, m, n, qj_lw, qj_up, si;\n m = subject.length;\n n = query_lw.length;\n if (!m || n > m) {\n return false;\n }\n i = -1;\n j = -1;\n while (++j < n) {\n qj_lw = query_lw.charCodeAt(j);\n qj_up = query_up.charCodeAt(j);\n while (++i < m) {\n si = subject.charCodeAt(i);\n if (si === qj_lw || si === qj_up) {\n break;\n }\n }\n if (i === m) {\n return false;\n }\n }\n return true;\n };\n\n exports.computeScore = computeScore = function(subject, subject_lw, preparedQuery) {\n var acro, acro_score, align, csc_diag, csc_row, csc_score, csc_should_rebuild, i, j, m, miss_budget, miss_left, n, pos, query, query_lw, record_miss, score, score_diag, score_row, score_up, si_lw, start, sz;\n query = preparedQuery.query;\n query_lw = preparedQuery.query_lw;\n m = subject.length;\n n = query.length;\n acro = scoreAcronyms(subject, subject_lw, query, query_lw);\n acro_score = acro.score;\n if (acro.count === n) {\n return scoreExact(n, m, acro_score, acro.pos);\n }\n pos = subject_lw.indexOf(query_lw);\n if (pos > -1) {\n return scoreExactMatch(subject, subject_lw, query, query_lw, pos, n, m);\n }\n score_row = new Array(n);\n csc_row = new Array(n);\n sz = scoreSize(n, m);\n miss_budget = Math.ceil(miss_coeff * n) + 5;\n miss_left = miss_budget;\n csc_should_rebuild = true;\n j = -1;\n while (++j < n) {\n score_row[j] = 0;\n csc_row[j] = 0;\n }\n i = -1;\n while (++i < m) {\n si_lw = subject_lw[i];\n if (!si_lw.charCodeAt(0) in preparedQuery.charCodes) {\n if (csc_should_rebuild) {\n j = -1;\n while (++j < n) {\n csc_row[j] = 0;\n }\n csc_should_rebuild = false;\n }\n continue;\n }\n score = 0;\n score_diag = 0;\n csc_diag = 0;\n record_miss = true;\n csc_should_rebuild = true;\n j = -1;\n while (++j < n) {\n score_up = score_row[j];\n if (score_up > score) {\n score = score_up;\n }\n csc_score = 0;\n if (query_lw[j] === si_lw) {\n start = isWordStart(i, subject, subject_lw);\n csc_score = csc_diag > 0 ? csc_diag : scoreConsecutives(subject, subject_lw, query, query_lw, i, j, start);\n align = score_diag + scoreCharacter(i, j, start, acro_score, csc_score);\n if (align > score) {\n score = align;\n miss_left = miss_budget;\n } else {\n if (record_miss && --miss_left <= 0) {\n return Math.max(score, score_row[n - 1]) * sz;\n }\n record_miss = false;\n }\n }\n score_diag = score_up;\n csc_diag = csc_row[j];\n csc_row[j] = csc_score;\n score_row[j] = score;\n }\n }\n score = score_row[n - 1];\n return score * sz;\n };\n\n exports.isWordStart = isWordStart = function(pos, subject, subject_lw) {\n var curr_s, prev_s;\n if (pos === 0) {\n return true;\n }\n curr_s = subject[pos];\n prev_s = subject[pos - 1];\n return isSeparator(prev_s) || (curr_s !== subject_lw[pos] && prev_s === subject_lw[pos - 1]);\n };\n\n exports.isWordEnd = isWordEnd = function(pos, subject, subject_lw, len) {\n var curr_s, next_s;\n if (pos === len - 1) {\n return true;\n }\n curr_s = subject[pos];\n next_s = subject[pos + 1];\n return isSeparator(next_s) || (curr_s === subject_lw[pos] && next_s !== subject_lw[pos + 1]);\n };\n\n isSeparator = function(c) {\n return c === ' ' || c === '.' || c === '-' || c === '_' || c === '/' || c === '\\\\';\n };\n\n scorePosition = function(pos) {\n var sc;\n if (pos < pos_bonus) {\n sc = pos_bonus - pos;\n return 100 + sc * sc;\n } else {\n return Math.max(100 + pos_bonus - pos, 0);\n }\n };\n\n exports.scoreSize = scoreSize = function(n, m) {\n return tau_size / (tau_size + Math.abs(m - n));\n };\n\n scoreExact = function(n, m, quality, pos) {\n return 2 * n * (wm * quality + scorePosition(pos)) * scoreSize(n, m);\n };\n\n exports.scorePattern = scorePattern = function(count, len, sameCase, start, end) {\n var bonus, sz;\n sz = count;\n bonus = 6;\n if (sameCase === count) {\n bonus += 2;\n }\n if (start) {\n bonus += 3;\n }\n if (end) {\n bonus += 1;\n }\n if (count === len) {\n if (start) {\n if (sameCase === len) {\n sz += 2;\n } else {\n sz += 1;\n }\n }\n if (end) {\n bonus += 1;\n }\n }\n return sameCase + sz * (sz + bonus);\n };\n\n exports.scoreCharacter = scoreCharacter = function(i, j, start, acro_score, csc_score) {\n var posBonus;\n posBonus = scorePosition(i);\n if (start) {\n return posBonus + wm * ((acro_score > csc_score ? acro_score : csc_score) + 10);\n }\n return posBonus + wm * csc_score;\n };\n\n exports.scoreConsecutives = scoreConsecutives = function(subject, subject_lw, query, query_lw, i, j, startOfWord) {\n var k, m, mi, n, nj, sameCase, sz;\n m = subject.length;\n n = query.length;\n mi = m - i;\n nj = n - j;\n k = mi < nj ? mi : nj;\n sameCase = 0;\n sz = 0;\n if (query[j] === subject[i]) {\n sameCase++;\n }\n while (++sz < k && query_lw[++j] === subject_lw[++i]) {\n if (query[j] === subject[i]) {\n sameCase++;\n }\n }\n if (sz < k) {\n i--;\n }\n if (sz === 1) {\n return 1 + 2 * sameCase;\n }\n return scorePattern(sz, n, sameCase, startOfWord, isWordEnd(i, subject, subject_lw, m));\n };\n\n exports.scoreExactMatch = scoreExactMatch = function(subject, subject_lw, query, query_lw, pos, n, m) {\n var end, i, pos2, sameCase, start;\n start = isWordStart(pos, subject, subject_lw);\n if (!start) {\n pos2 = subject_lw.indexOf(query_lw, pos + 1);\n if (pos2 > -1) {\n start = isWordStart(pos2, subject, subject_lw);\n if (start) {\n pos = pos2;\n }\n }\n }\n i = -1;\n sameCase = 0;\n while (++i < n) {\n if (query[pos + i] === subject[i]) {\n sameCase++;\n }\n }\n end = isWordEnd(pos + n - 1, subject, subject_lw, m);\n return scoreExact(n, m, scorePattern(n, n, sameCase, start, end), pos);\n };\n\n AcronymResult = (function() {\n function AcronymResult(score, pos, count) {\n this.score = score;\n this.pos = pos;\n this.count = count;\n }\n\n return AcronymResult;\n\n })();\n\n emptyAcronymResult = new AcronymResult(0, 0.1, 0);\n\n exports.scoreAcronyms = scoreAcronyms = function(subject, subject_lw, query, query_lw) {\n var count, fullWord, i, j, m, n, qj_lw, sameCase, score, sepCount, sumPos;\n m = subject.length;\n n = query.length;\n if (!(m > 1 && n > 1)) {\n return emptyAcronymResult;\n }\n count = 0;\n sepCount = 0;\n sumPos = 0;\n sameCase = 0;\n i = -1;\n j = -1;\n while (++j < n) {\n qj_lw = query_lw[j];\n if (isSeparator(qj_lw)) {\n i = subject_lw.indexOf(qj_lw, i + 1);\n if (i > -1) {\n sepCount++;\n continue;\n } else {\n break;\n }\n }\n while (++i < m) {\n if (qj_lw === subject_lw[i] && isWordStart(i, subject, subject_lw)) {\n if (query[j] === subject[i]) {\n sameCase++;\n }\n sumPos += i;\n count++;\n break;\n }\n }\n if (i === m) {\n break;\n }\n }\n if (count < 2) {\n return emptyAcronymResult;\n }\n fullWord = count === n ? isAcronymFullWord(subject, subject_lw, query, count) : false;\n score = scorePattern(count, n, sameCase, true, fullWord);\n return new AcronymResult(score, sumPos / count, count + sepCount);\n };\n\n isAcronymFullWord = function(subject, subject_lw, query, nbAcronymInQuery) {\n var count, i, m, n;\n m = subject.length;\n n = query.length;\n count = 0;\n if (m > 12 * n) {\n return false;\n }\n i = -1;\n while (++i < m) {\n if (isWordStart(i, subject, subject_lw) && ++count > nbAcronymInQuery) {\n return false;\n }\n }\n return true;\n };\n\n}).call(this);\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateTimelineEvent\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"TimelineEventCreateInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelineEventCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelineEvent\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"note\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"noteHtml\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"action\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"occurredAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelineEventTags\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":317}};\n doc.loc.source = {\"body\":\"mutation CreateTimelineEvent($input: TimelineEventCreateInput!) {\\n timelineEventCreate(input: $input) {\\n timelineEvent {\\n id\\n note\\n noteHtml\\n action\\n occurredAt\\n createdAt\\n timelineEventTags {\\n nodes {\\n id\\n name\\n }\\n }\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"CreateTimelineEvent\"] = oneQuery(doc, \"CreateTimelineEvent\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:({ placement: _vm.tooltipPlacement, container: _vm.tooltipContainer }),expression:\"{ placement: tooltipPlacement, container: tooltipContainer }\"}],class:_vm.cssClasses,attrs:{\"id\":_vm.id,\"data-clipboard-target\":_vm.target,\"data-clipboard-text\":_vm.text,\"title\":_vm.title,\"aria-label\":_vm.title,\"category\":_vm.category,\"icon\":\"copy-to-clipboard\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./modal_copy_button.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./modal_copy_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlTooltipDirective } from '@gitlab/ui';\nimport ClipboardJS from 'clipboard';\nimport { uniqueId } from 'lodash';\nimport { __ } from '~/locale';\nimport { BV_HIDE_TOOLTIP } from '~/lib/utils/constants';\n\nexport default {\n components: {\n GlButton,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n text: {\n type: String,\n required: false,\n default: '',\n },\n id: {\n type: String,\n required: false,\n default: () => uniqueId('modal-copy-button-'),\n },\n container: {\n type: String,\n required: false,\n default: '',\n },\n cssClasses: {\n type: String,\n required: false,\n default: '',\n },\n modalId: {\n type: String,\n required: false,\n default: '',\n },\n target: {\n type: String,\n required: false,\n default: '',\n },\n title: {\n type: String,\n required: false,\n default: __('Copy'),\n },\n tooltipPlacement: {\n type: String,\n required: false,\n default: 'top',\n },\n tooltipContainer: {\n type: String,\n required: false,\n default: null,\n },\n category: {\n type: String,\n required: false,\n default: 'primary',\n },\n },\n computed: {\n modalDomId() {\n return this.modalId ? `#${this.modalId}` : '';\n },\n },\n mounted() {\n this.$nextTick(() => {\n this.clipboard = new ClipboardJS(this.$el, {\n container:\n document.querySelector(`${this.modalDomId} div.modal-content`) ||\n document.getElementById(this.container) ||\n document.body,\n });\n this.clipboard\n .on('success', (e) => {\n this.$root.$emit(BV_HIDE_TOOLTIP, this.id);\n this.$emit('success', e);\n // Clear the selection and blur the trigger so it loses its border\n e.clearSelection();\n e.trigger.blur();\n })\n .on('error', (e) => this.$emit('error', e));\n });\n },\n destroyed() {\n if (this.clipboard) {\n this.clipboard.destroy();\n }\n },\n};\n</script>\n<template>\n <gl-button\n :id=\"id\"\n v-gl-tooltip=\"{ placement: tooltipPlacement, container: tooltipContainer }\"\n :class=\"cssClasses\"\n :data-clipboard-target=\"target\"\n :data-clipboard-text=\"text\"\n :title=\"title\"\n :aria-label=\"title\"\n :category=\"category\"\n icon=\"copy-to-clipboard\"\n />\n</template>\n","import { render, staticRenderFns } from \"./modal_copy_button.vue?vue&type=template&id=4c7472d6\"\nimport script from \"./modal_copy_button.vue?vue&type=script&lang=js\"\nexport * from \"./modal_copy_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/*\n * TODO: Make this URL configurable\n */\nexport const DRAWIO_PARAMS = {\n ui: 'sketch',\n noSaveBtn: 1,\n saveAndExit: 1,\n keepmodified: 1,\n spin: 1,\n embed: 1,\n libraries: 1,\n configure: 1,\n proto: 'json',\n toSvg: 1,\n};\nexport const DRAWIO_FRAME_ID = 'drawio-frame';\n\nexport const DARK_BACKGROUND_COLOR = '#202020';\n\nexport const DIAGRAM_BACKGROUND_COLOR = '#ffffff';\n\nexport const DRAWIO_IFRAME_TIMEOUT = 4000;\n\nexport const DIAGRAM_MAX_SIZE = 10 * 1024 * 1024; // 1MB\n","import { isNil } from 'lodash';\nimport { createAlert, VARIANT_SUCCESS } from '~/alert';\nimport { darkModeEnabled } from '~/lib/utils/color_utils';\nimport { base64DecodeUnicode } from '~/lib/utils/text_utility';\nimport { __ } from '~/locale';\nimport { setAttributes } from '~/lib/utils/dom_utils';\nimport {\n DRAWIO_PARAMS,\n DARK_BACKGROUND_COLOR,\n DRAWIO_FRAME_ID,\n DIAGRAM_BACKGROUND_COLOR,\n DRAWIO_IFRAME_TIMEOUT,\n DIAGRAM_MAX_SIZE,\n} from './constants';\n\nfunction updateDrawioEditorState(drawIOEditorState, data) {\n Object.assign(drawIOEditorState, data);\n}\n\nfunction postMessageToDrawioEditor(drawIOEditorState, message) {\n const { origin } = new URL(drawIOEditorState.drawioUrl);\n\n drawIOEditorState.iframe.contentWindow.postMessage(JSON.stringify(message), origin);\n}\n\nfunction disposeDrawioEditor(drawIOEditorState) {\n drawIOEditorState.disposeEventListener();\n drawIOEditorState.iframe.remove();\n}\n\nfunction getSvg(data) {\n const svgPath = base64DecodeUnicode(data.substring(data.indexOf(',') + 1));\n\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n\\\n <!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\\n\\\n ${svgPath}`;\n}\n\nasync function saveDiagram(drawIOEditorState, editorFacade) {\n const { newDiagram, diagramMarkdown, filename, diagramSvg } = drawIOEditorState;\n const filenameWithExt = filename.endsWith('.drawio.svg') ? filename : `${filename}.drawio.svg`;\n\n postMessageToDrawioEditor(drawIOEditorState, {\n action: 'spinner',\n show: true,\n messageKey: 'saving',\n });\n\n try {\n const uploadResults = await editorFacade.uploadDiagram({\n filename: filenameWithExt,\n diagramSvg,\n });\n\n if (newDiagram) {\n editorFacade.insertDiagram({ uploadResults });\n } else {\n editorFacade.updateDiagram({ diagramMarkdown, uploadResults });\n }\n\n createAlert({\n message: __('Diagram saved successfully.'),\n variant: VARIANT_SUCCESS,\n fadeTransition: true,\n });\n setTimeout(() => disposeDrawioEditor(drawIOEditorState), 10);\n } catch {\n postMessageToDrawioEditor(drawIOEditorState, { action: 'spinner', show: false });\n postMessageToDrawioEditor(drawIOEditorState, {\n action: 'dialog',\n titleKey: 'error',\n modified: true,\n buttonKey: 'close',\n messageKey: 'errorSavingFile',\n });\n }\n}\n\nfunction promptName(drawIOEditorState, name, errKey) {\n postMessageToDrawioEditor(drawIOEditorState, {\n action: 'prompt',\n titleKey: 'filename',\n okKey: 'save',\n defaultValue: name || '',\n });\n\n if (errKey !== null) {\n postMessageToDrawioEditor(drawIOEditorState, {\n action: 'dialog',\n titleKey: 'error',\n messageKey: errKey,\n buttonKey: 'ok',\n });\n }\n}\n\nfunction sendLoadDiagramMessage(drawIOEditorState) {\n postMessageToDrawioEditor(drawIOEditorState, {\n action: 'load',\n xml: drawIOEditorState.diagramSvg,\n border: 8,\n background: DIAGRAM_BACKGROUND_COLOR,\n dark: drawIOEditorState.dark,\n title: drawIOEditorState.filename,\n });\n}\n\nasync function loadExistingDiagram(drawIOEditorState, editorFacade) {\n let diagram = null;\n\n try {\n diagram = await editorFacade.getDiagram();\n } catch (e) {\n throw new Error(__('Cannot load the diagram into the diagrams.net editor'));\n }\n\n if (diagram) {\n const { diagramMarkdown, filename, diagramSvg, contentType, diagramURL } = diagram;\n const resolvedURL = new URL(diagramURL, window.location.origin);\n const diagramSvgSize = new Blob([diagramSvg]).size;\n\n if (contentType !== 'image/svg+xml') {\n throw new Error(__('The selected image is not a valid SVG diagram'));\n }\n\n if (resolvedURL.origin !== window.location.origin) {\n throw new Error(__('The selected image is not an asset uploaded in the application'));\n }\n\n if (diagramSvgSize > DIAGRAM_MAX_SIZE) {\n throw new Error(__('The selected image is too large.'));\n }\n\n updateDrawioEditorState(drawIOEditorState, {\n newDiagram: false,\n filename,\n diagramMarkdown,\n diagramSvg,\n });\n } else {\n updateDrawioEditorState(drawIOEditorState, {\n newDiagram: true,\n });\n }\n\n sendLoadDiagramMessage(drawIOEditorState);\n}\n\nasync function prepareEditor(drawIOEditorState, editorFacade) {\n const { iframe } = drawIOEditorState;\n\n iframe.style.cursor = 'wait';\n\n try {\n await loadExistingDiagram(drawIOEditorState, editorFacade);\n\n iframe.style.visibility = 'visible';\n iframe.style.cursor = '';\n window.scrollTo(0, 0);\n } catch (e) {\n createAlert({\n message: e.message,\n error: e,\n });\n disposeDrawioEditor(drawIOEditorState);\n }\n}\n\nfunction configureDrawIOEditor(drawIOEditorState) {\n postMessageToDrawioEditor(drawIOEditorState, {\n action: 'configure',\n config: {\n darkColor: DARK_BACKGROUND_COLOR,\n settingsName: 'gitlab',\n },\n colorSchemeMeta: drawIOEditorState.dark, // For transparent iframe background in dark mode\n });\n updateDrawioEditorState(drawIOEditorState, {\n initialized: true,\n });\n}\n\nfunction onDrawIOEditorMessage(drawIOEditorState, editorFacade, evt) {\n if (isNil(evt) || evt.source !== drawIOEditorState.iframe.contentWindow) {\n return;\n }\n\n const msg = JSON.parse(evt.data);\n\n if (msg.event === 'configure') {\n configureDrawIOEditor(drawIOEditorState);\n } else if (msg.event === 'init') {\n prepareEditor(drawIOEditorState, editorFacade);\n } else if (msg.event === 'exit') {\n disposeDrawioEditor(drawIOEditorState);\n } else if (msg.event === 'prompt') {\n updateDrawioEditorState(drawIOEditorState, {\n filename: msg.value,\n });\n\n if (!drawIOEditorState.filename) {\n promptName(drawIOEditorState, 'diagram.drawio.svg', 'filenameShort');\n } else {\n saveDiagram(drawIOEditorState, editorFacade);\n }\n } else if (msg.event === 'export') {\n updateDrawioEditorState(drawIOEditorState, {\n diagramSvg: getSvg(msg.data),\n });\n // TODO Add this to draw.io editor configuration\n sendLoadDiagramMessage(drawIOEditorState); // Save removes diagram from the editor, so we need to reload it.\n postMessageToDrawioEditor(drawIOEditorState, { action: 'status', modified: true }); // And set editor modified flag to true.\n if (!drawIOEditorState.filename) {\n promptName(drawIOEditorState, 'diagram.drawio.svg', null);\n } else {\n saveDiagram(drawIOEditorState, editorFacade);\n }\n }\n}\n\nfunction createEditorIFrame(drawIOEditorState) {\n const iframe = document.createElement('iframe');\n\n setAttributes(iframe, {\n id: DRAWIO_FRAME_ID,\n src: drawIOEditorState.drawioUrl,\n class: 'drawio-editor',\n });\n\n document.body.appendChild(iframe);\n\n setTimeout(() => {\n if (drawIOEditorState.initialized === false) {\n disposeDrawioEditor(drawIOEditorState);\n createAlert({ message: __('The diagrams.net editor could not be loaded.') });\n }\n }, DRAWIO_IFRAME_TIMEOUT);\n\n updateDrawioEditorState(drawIOEditorState, {\n iframe,\n });\n}\n\nfunction attachDrawioIFrameMessageListener(drawIOEditorState, editorFacade) {\n const evtHandler = (evt) => {\n onDrawIOEditorMessage(drawIOEditorState, editorFacade, evt);\n };\n\n window.addEventListener('message', evtHandler);\n\n // Stores a function in the editor state object that allows disposing\n // the message event listener when the editor exits.\n updateDrawioEditorState(drawIOEditorState, {\n disposeEventListener: () => {\n window.removeEventListener('message', evtHandler);\n },\n });\n}\n\nconst createDrawioEditorState = ({ filename = null, drawioUrl }) => ({\n newDiagram: true,\n filename,\n diagramSvg: null,\n diagramMarkdown: null,\n iframe: null,\n isBusy: false,\n initialized: false,\n dark: darkModeEnabled(),\n disposeEventListener: null,\n drawioUrl,\n});\n\nexport function launchDrawioEditor({ editorFacade, filename, drawioUrl = gon.diagramsnet_url }) {\n const url = new URL(drawioUrl);\n\n for (const [key, value] of Object.entries(DRAWIO_PARAMS)) {\n url.searchParams.set(key, value);\n }\n\n const drawIOEditorState = createDrawioEditorState({ filename, drawioUrl: url.href });\n\n // The execution order of these two functions matter\n attachDrawioIFrameMessageListener(drawIOEditorState, editorFacade);\n createEditorIFrame(drawIOEditorState);\n}\n","var baseSlice = require('./_baseSlice'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nmodule.exports = chunk;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"testCaseConfidential\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":183}};\n doc.loc.source = {\"body\":\"query testCaseConfidential($fullPath: ID!, $iid: String) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n confidential\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"testCaseConfidential\"] = oneQuery(doc, \"testCaseConfidential\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.textOnly)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.title),expression:\"title\"}]},[_vm._v(\"\\n \"+_vm._s(_vm.__('Imported'))+\"\\n\")]):_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.title),expression:\"title\"}],staticClass:\"gl-shrink-0\"},[_vm._v(\"\\n \"+_vm._s(_vm.__('Imported'))+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlBadge, GlTooltipDirective } from '@gitlab/ui';\nimport { __, s__, sprintf } from '~/locale';\n\nimport { TYPE_EPIC, TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { TYPE_ACTIVITY, TYPE_COMMENT, TYPE_DESIGN, TYPE_SNIPPET } from '~/import/constants';\n\nconst importableTypeText = {\n [TYPE_ACTIVITY]: __('activity'),\n [TYPE_COMMENT]: __('comment'),\n [TYPE_DESIGN]: __('design'),\n [TYPE_EPIC]: __('epic'),\n [TYPE_ISSUE]: __('issue'),\n [TYPE_MERGE_REQUEST]: __('merge request'),\n [TYPE_SNIPPET]: __('snippet'),\n};\n\nexport default {\n components: {\n GlBadge,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n importableType: {\n type: String,\n required: false,\n default: '',\n },\n textOnly: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n title() {\n return sprintf(s__('BulkImport|This %{importable} was imported from another instance.'), {\n importable: importableTypeText[this.importableType],\n });\n },\n },\n};\n</script>\n\n<template>\n <span v-if=\"textOnly\" v-gl-tooltip=\"title\">\n {{ __('Imported') }}\n </span>\n <gl-badge v-else v-gl-tooltip=\"title\" class=\"gl-shrink-0\">\n {{ __('Imported') }}\n </gl-badge>\n</template>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./imported_badge.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./imported_badge.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./imported_badge.vue?vue&type=template&id=03c38d80\"\nimport script from \"./imported_badge.vue?vue&type=script&lang=js\"\nexport * from \"./imported_badge.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Tracking from '~/tracking';\n\nexport const MARKDOWN_EDITOR_TRACKING_LABEL = 'markdown_editor';\nexport const RICH_TEXT_EDITOR_TRACKING_LABEL = 'rich_text_editor';\n\nexport const SAVE_MARKDOWN_TRACKING_ACTION = 'save_markdown';\nexport const TOOLBAR_CONTROL_TRACKING_ACTION = 'execute_toolbar_control';\n\nexport const trackSavedUsingEditor = (isRichText, property) => {\n Tracking.event(undefined, SAVE_MARKDOWN_TRACKING_ACTION, {\n label: isRichText ? RICH_TEXT_EDITOR_TRACKING_LABEL : MARKDOWN_EDITOR_TRACKING_LABEL,\n property,\n });\n};\n","export const MAX_WINDOW_HEIGHT_COMPACT = 750;\n\n// Commit message textarea\nexport const MAX_TITLE_LENGTH = 50;\nexport const MAX_BODY_LENGTH = 72;\n\nexport const SIDEBAR_INIT_WIDTH = 340;\nexport const SIDEBAR_MIN_WIDTH = 260;\nexport const SIDEBAR_NAV_WIDTH = 60;\n\n// File view modes\nexport const FILE_VIEW_MODE_EDITOR = 'editor';\nexport const FILE_VIEW_MODE_PREVIEW = 'preview';\n\nexport const PERMISSION_CREATE_MR = 'createMergeRequestIn';\nexport const PERMISSION_READ_MR = 'readMergeRequest';\nexport const PERMISSION_PUSH_CODE = 'pushCode';\nexport const PUSH_RULE_REJECT_UNSIGNED_COMMITS = 'rejectUnsignedCommits';\n\n// The default permission object to use when the project data isn't available yet.\n// This helps us encapsulate checks like `canPushCode` without requiring an\n// additional check like `currentProject && canPushCode`.\nexport const DEFAULT_PERMISSIONS = {\n [PERMISSION_PUSH_CODE]: true,\n};\n\nexport const viewerTypes = {\n mr: 'mrdiff',\n edit: 'editor',\n diff: 'diff',\n};\n\nexport const diffModes = {\n replaced: 'replaced',\n new: 'new',\n deleted: 'deleted',\n renamed: 'renamed',\n mode_changed: 'mode_changed',\n};\n\nexport const diffViewerModes = Object.freeze({\n not_diffable: 'not_diffable',\n no_preview: 'no_preview',\n added: 'added',\n deleted: 'deleted',\n renamed: 'renamed',\n mode_changed: 'mode_changed',\n text: 'text',\n image: 'image',\n});\n\nexport const diffViewerErrors = Object.freeze({\n too_large: 'too_large',\n stored_externally: 'server_side_but_stored_externally',\n});\n\nexport const leftSidebarViews = {\n edit: { name: 'ide-tree' },\n review: { name: 'ide-review' },\n commit: { name: 'repo-commit-section' },\n};\n\nexport const rightSidebarViews = {\n pipelines: { name: 'pipelines-list', keepAlive: true },\n jobsDetail: { name: 'jobs-detail', keepAlive: false },\n mergeRequestInfo: { name: 'merge-request-info', keepAlive: true },\n terminal: { name: 'terminal', keepAlive: true },\n};\n\nexport const stageKeys = {\n unstaged: 'unstaged',\n staged: 'staged',\n};\n\nexport const commitItemIconMap = {\n addition: {\n icon: 'file-addition',\n class: 'file-addition ide-file-addition',\n },\n modified: {\n icon: 'file-modified',\n class: 'file-modified ide-file-modified',\n },\n deleted: {\n icon: 'file-deletion',\n class: 'file-deletion ide-file-deletion',\n },\n};\n\nexport const modalTypes = {\n rename: 'rename',\n tree: 'tree',\n blob: 'blob',\n};\n\nexport const commitActionTypes = {\n move: 'move',\n delete: 'delete',\n create: 'create',\n update: 'update',\n};\n\nexport const SIDE_LEFT = 'left';\nexport const SIDE_RIGHT = 'right';\n\n// This is the maximum number of files to auto open when opening the Web IDE\n// from a merge request\nexport const MAX_MR_FILES_AUTO_OPEN = 10;\n\nexport const DEFAULT_BRANCH = 'main';\n\nexport const GITLAB_WEB_IDE_FEEDBACK_ISSUE = 'https://gitlab.com/gitlab-org/gitlab/-/issues/377367';\n\nexport const IDE_ELEMENT_ID = 'ide';\n\n// note: This path comes from `config/routes.rb`\nexport const IDE_PATH = '/-/ide';\nexport const WEB_IDE_OAUTH_CALLBACK_URL_PATH = '/-/ide/oauth_redirect';\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemHierarchy\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItem\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iconName\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"deleteWorkItem\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateWorkItem\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"adminParentLink\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"setWorkItemMetadata\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createNote\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"adminWorkItemLink\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"markNoteAsInternal\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetHierarchy\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasChildren\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"depthLimitReachedByType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"depthLimitReached\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rolledUpCountsByType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"countsByState\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"opened\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"all\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"closed\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iconName\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parent\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"children\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"after\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"endCursor\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pageInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PageInfo\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iconName\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"namespace\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"full\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetHierarchy\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasChildren\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rolledUpCountsByType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"countsByState\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"all\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"closed\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iconName\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemMetadataWidgets\"},\"directives\":[]}]}}]}}]}}]}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemMetadataWidgets\"},\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":1869}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/page_info.fragment.graphql\\\"\\n#import \\\"ee_else_ce/work_items/graphql/work_item_metadata_widgets.fragment.graphql\\\"\\n\\nfragment WorkItemHierarchy on WorkItem {\\n id\\n workItemType {\\n id\\n name\\n iconName\\n }\\n title\\n confidential\\n userPermissions {\\n deleteWorkItem\\n updateWorkItem\\n adminParentLink\\n setWorkItemMetadata\\n createNote\\n adminWorkItemLink\\n markNoteAsInternal\\n }\\n widgets {\\n type\\n ... on WorkItemWidgetHierarchy {\\n type\\n hasChildren\\n depthLimitReachedByType {\\n workItemType {\\n id\\n name\\n }\\n depthLimitReached\\n }\\n rolledUpCountsByType {\\n countsByState {\\n opened\\n all\\n closed\\n }\\n workItemType {\\n id\\n name\\n iconName\\n }\\n }\\n parent {\\n id\\n }\\n children(first: $pageSize, after: $endCursor) {\\n pageInfo {\\n ...PageInfo\\n }\\n count\\n nodes {\\n id\\n iid\\n confidential\\n workItemType {\\n id\\n name\\n iconName\\n }\\n namespace {\\n id\\n fullPath\\n name\\n }\\n title\\n state\\n createdAt\\n closedAt\\n webUrl\\n reference(full: true)\\n widgets {\\n ... on WorkItemWidgetHierarchy {\\n type\\n hasChildren\\n rolledUpCountsByType {\\n countsByState {\\n all\\n closed\\n }\\n workItemType {\\n id\\n name\\n iconName\\n }\\n }\\n }\\n ...WorkItemMetadataWidgets\\n }\\n }\\n }\\n }\\n ...WorkItemMetadataWidgets\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/page_info.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/work_items/graphql/work_item_metadata_widgets.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"WorkItemHierarchy\"] = oneQuery(doc, \"WorkItemHierarchy\");\n \n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"epicDueDate\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDateIsFixed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDateFixed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDateFromMilestones\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":230}};\n doc.loc.source = {\"body\":\"query epicDueDate($fullPath: ID!, $iid: ID) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n issuable: epic(iid: $iid) {\\n id\\n dueDate\\n dueDateIsFixed\\n dueDateFixed\\n dueDateFromMilestones\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"epicDueDate\"] = oneQuery(doc, \"epicDueDate\");\n \n","const DISCLOSURE_DROPDOWN_ITEM_NAME = 'GlDisclosureDropdownItem';\nconst DISCLOSURE_DROPDOWN_GROUP_NAME = 'GlDisclosureDropdownGroup';\nconst DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS = {\n top: 'top',\n bottom: 'bottom'\n};\n\nexport { DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS, DISCLOSURE_DROPDOWN_GROUP_NAME, DISCLOSURE_DROPDOWN_ITEM_NAME };\n","var baseAssignValue = require('./_baseAssignValue'),\n createAggregator = require('./_createAggregator');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nmodule.exports = groupBy;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom.hover\",modifiers:{\"bottom\":true,\"hover\":true}}],staticClass:\"btn-icon\",attrs:{\"disabled\":_vm.isLoading,\"title\":_vm.buttonLabel,\"category\":_vm.todosButtonType,\"aria-label\":_vm.buttonLabel},on:{\"click\":_vm.onToggle}},[_c('gl-animated-todo-icon',{class:{ '!gl-text-blue-500': _vm.pendingTodo },attrs:{\"is-on\":_vm.pendingTodo,\"name\":_vm.buttonIcon}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./todos_toggle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./todos_toggle.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlTooltipDirective, GlAnimatedTodoIcon } from '@gitlab/ui';\n\nimport { s__ } from '~/locale';\nimport { updateGlobalTodoCount } from '~/sidebar/utils';\nimport createWorkItemTodosMutation from '../../graphql/create_work_item_todos.mutation.graphql';\nimport markDoneWorkItemTodosMutation from '../../graphql/mark_done_work_item_todos.mutation.graphql';\n\nimport {\n TODO_ADD_ICON,\n TODO_DONE_ICON,\n TODO_PENDING_STATE,\n TODO_DONE_STATE,\n} from '../../constants';\n\nexport default {\n i18n: {\n addATodo: s__('WorkItem|Add a to-do item'),\n markAsDone: s__('WorkItem|Mark as done'),\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlButton,\n GlAnimatedTodoIcon,\n },\n props: {\n itemId: {\n type: String,\n required: true,\n },\n currentUserTodos: {\n type: Array,\n required: false,\n default: () => [],\n },\n todosButtonType: {\n type: String,\n required: false,\n default: 'tertiary',\n },\n },\n data() {\n return {\n isLoading: false,\n buttonLabel:\n this.currentUserTodos.length > 0\n ? this.$options.i18n.markAsDone\n : this.$options.i18n.addATodo,\n };\n },\n computed: {\n todoId() {\n return this.currentUserTodos[0]?.id || '';\n },\n pendingTodo() {\n return this.todoId !== '';\n },\n buttonIcon() {\n return this.pendingTodo ? TODO_DONE_ICON : TODO_ADD_ICON;\n },\n },\n methods: {\n onToggle() {\n this.isLoading = true;\n this.buttonLabel = '';\n let mutation = createWorkItemTodosMutation;\n let inputVariables = {\n targetId: this.itemId,\n };\n if (this.pendingTodo) {\n mutation = markDoneWorkItemTodosMutation;\n inputVariables = {\n id: this.todoId,\n };\n }\n\n this.$apollo\n .mutate({\n mutation,\n variables: {\n input: inputVariables,\n },\n optimisticResponse: {\n todoMutation: {\n todo: {\n id: this.todoId,\n state: this.pendingTodo ? TODO_DONE_STATE : TODO_PENDING_STATE,\n },\n errors: [],\n },\n },\n update: (\n cache,\n {\n data: {\n todoMutation: { todo = {} },\n },\n },\n ) => {\n const todos = [];\n\n if (todo.state === TODO_PENDING_STATE) {\n todos.push({\n __typename: 'Todo',\n id: todo.id,\n });\n }\n this.$emit('todosUpdated', { cache, todos });\n },\n })\n .then(\n ({\n data: {\n todoMutation: { errors },\n },\n }) => {\n if (errors?.length) {\n throw new Error(errors[0]);\n }\n if (this.pendingTodo) {\n updateGlobalTodoCount(1);\n this.buttonLabel = this.$options.i18n.markAsDone;\n } else {\n updateGlobalTodoCount(-1);\n this.buttonLabel = this.$options.i18n.addATodo;\n }\n },\n )\n .catch((error) => {\n this.$emit('error', error.message);\n })\n .finally(() => {\n this.isLoading = false;\n });\n },\n },\n};\n</script>\n\n<template>\n <gl-button\n v-gl-tooltip.bottom.hover\n :disabled=\"isLoading\"\n :title=\"buttonLabel\"\n :category=\"todosButtonType\"\n class=\"btn-icon\"\n :aria-label=\"buttonLabel\"\n @click=\"onToggle\"\n >\n <gl-animated-todo-icon\n :is-on=\"pendingTodo\"\n :class=\"{ '!gl-text-blue-500': pendingTodo }\"\n :name=\"buttonIcon\"\n />\n </gl-button>\n</template>\n","import { render, staticRenderFns } from \"./todos_toggle.vue?vue&type=template&id=1b016b00\"\nimport script from \"./todos_toggle.vue?vue&type=script&lang=js\"\nexport * from \"./todos_toggle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import clamp from 'lodash/clamp';\nimport uniqueId from 'lodash/uniqueId';\nimport { stopEvent, filterVisible } from '../../../../utils/utils';\nimport { GL_DROPDOWN_SHOWN, GL_DROPDOWN_HIDDEN, GL_DROPDOWN_BEFORE_CLOSE, GL_DROPDOWN_FOCUS_CONTENT, POSITION_ABSOLUTE, POSITION_FIXED, HOME, END, ARROW_UP, ARROW_DOWN, ENTER, SPACE, GL_DROPDOWN_CONTENTS_CLASS } from '../constants';\nimport { buttonCategoryOptions, dropdownVariantOptions, buttonSizeOptions, dropdownPlacements } from '../../../../utils/constants';\nimport GlBaseDropdown, { BASE_DROPDOWN_CLASS } from '../base_dropdown/base_dropdown';\nimport GlDisclosureDropdownItem, { ITEM_CLASS } from './disclosure_dropdown_item';\nimport GlDisclosureDropdownGroup from './disclosure_dropdown_group';\nimport { itemsValidator, hasOnlyListItems, isItem } from './utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst DROPDOWN_SELECTOR = `.${BASE_DROPDOWN_CLASS}`;\nconst ITEM_SELECTOR = `.${ITEM_CLASS}`;\nvar script = {\n name: 'GlDisclosureDropdown',\n events: {\n GL_DROPDOWN_SHOWN,\n GL_DROPDOWN_HIDDEN,\n GL_DROPDOWN_BEFORE_CLOSE,\n GL_DROPDOWN_FOCUS_CONTENT\n },\n components: {\n GlBaseDropdown,\n GlDisclosureDropdownItem,\n GlDisclosureDropdownGroup\n },\n props: {\n /**\n * Items to display in the dropdown\n */\n items: {\n type: Array,\n required: false,\n default: () => [],\n validator: itemsValidator\n },\n /**\n * Toggle button text\n */\n toggleText: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Toggle text to be read by screen readers only\n */\n textSrOnly: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Styling option - dropdown's toggle category\n */\n category: {\n type: String,\n required: false,\n default: buttonCategoryOptions.primary,\n validator: value => value in buttonCategoryOptions\n },\n /**\n * Styling option - dropdown's toggle variant\n */\n variant: {\n type: String,\n required: false,\n default: dropdownVariantOptions.default,\n validator: value => value in dropdownVariantOptions\n },\n /**\n * The size of the dropdown toggle\n */\n size: {\n type: String,\n required: false,\n default: 'medium',\n validator: value => value in buttonSizeOptions\n },\n /**\n * Icon name that will be rendered in the toggle button\n */\n icon: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Set to \"true\" to disable the dropdown\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Set to \"true\" when dropdown content (items) is loading\n * It will render a small loader in the dropdown toggle and make it disabled\n */\n loading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Custom toggle id.\n * For instance, it can be referenced by tooltip or popover\n */\n toggleId: {\n type: String,\n required: false,\n default: () => uniqueId('dropdown-toggle-btn-')\n },\n /**\n * Additional CSS classes to customize toggle appearance\n */\n toggleClass: {\n type: [String, Array, Object],\n required: false,\n default: null\n },\n /**\n * Set to \"true\" to hide the caret\n */\n noCaret: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Align disclosure dropdown with respect to the toggle button\n */\n placement: {\n type: String,\n required: false,\n default: 'bottom-start',\n validator: value => Object.keys(dropdownPlacements).includes(value)\n },\n /**\n * The `aria-labelledby` attribute value for the toggle button\n * Provide the string of ids seperated by space\n */\n toggleAriaLabelledBy: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The `aria-labelledby` attribute value for the list of options\n * Provide the string of ids seperated by space\n */\n listAriaLabelledBy: {\n type: String,\n required: false,\n default: null\n },\n /**\n * Render the toggle button as a block element\n */\n block: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Custom offset to be applied to Floating UI's offset middleware.\n * https://floating-ui.com/docs/offset\n */\n dropdownOffset: {\n type: [Number, Object],\n required: false,\n default: undefined\n },\n /**\n * Lets the dropdown extend to match its content's width, up to a maximum width\n * defined by the `$gl-new-dropdown-max-width` variable.\n */\n fluidWidth: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Close the dropdown on item click (action)\n */\n autoClose: {\n type: Boolean,\n required: false,\n default: true\n },\n /**\n * Strategy to be applied by computePosition. If the dropdown's container is too short for it to\n * fit in, setting this to fixed will let it position itself above its container.\n * https://floating-ui.com/docs/computePosition#strategy\n */\n positioningStrategy: {\n type: String,\n required: false,\n default: POSITION_ABSOLUTE,\n validator: strategy => [POSITION_ABSOLUTE, POSITION_FIXED].includes(strategy)\n },\n /**\n * Opens dropdown on render\n */\n startOpened: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n data() {\n return {\n disclosureId: uniqueId('disclosure-'),\n nextFocusedItemIndex: null\n };\n },\n computed: {\n disclosureTag() {\n var _this$items;\n if ((_this$items = this.items) !== null && _this$items !== void 0 && _this$items.length ||\n // eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots\n hasOnlyListItems(this.$scopedSlots.default || this.$slots.default)) {\n return 'ul';\n }\n return 'div';\n },\n hasCustomToggle() {\n return Boolean(this.$scopedSlots.toggle);\n }\n },\n mounted() {\n if (this.startOpened) {\n this.open();\n }\n },\n methods: {\n open() {\n this.$refs.baseDropdown.open();\n },\n close() {\n this.$refs.baseDropdown.close();\n },\n onShow() {\n /**\n * Emitted when dropdown is shown\n *\n * @event shown\n */\n this.$emit(GL_DROPDOWN_SHOWN);\n },\n onBeforeClose(event) {\n /**\n * Emitted when dropdown is about to be closed\n *\n * @event beforeClose\n */\n this.$emit(GL_DROPDOWN_BEFORE_CLOSE, event);\n },\n onHide() {\n /**\n * Emitted when dropdown is hidden\n *\n * @event hidden\n */\n this.$emit(GL_DROPDOWN_HIDDEN);\n this.nextFocusedItemIndex = null;\n },\n onKeydown(event) {\n const {\n code\n } = event;\n const elements = this.getFocusableListItemElements();\n if (elements.length < 1) return;\n let stop = true;\n if (code === HOME) {\n this.focusItem(0, elements);\n } else if (code === END) {\n this.focusItem(elements.length - 1, elements);\n } else if (code === ARROW_UP) {\n this.focusNextItem(event, elements, -1);\n } else if (code === ARROW_DOWN) {\n this.focusNextItem(event, elements, 1);\n } else if (code === ENTER || code === SPACE) {\n this.handleAutoClose(event);\n } else {\n stop = false;\n }\n if (stop) {\n stopEvent(event);\n }\n },\n getFocusableListItemElements() {\n var _this$$refs$content;\n const items = (_this$$refs$content = this.$refs.content) === null || _this$$refs$content === void 0 ? void 0 : _this$$refs$content.querySelectorAll(ITEM_SELECTOR);\n return filterVisible(Array.from(items || []));\n },\n focusNextItem(event, elements, offset) {\n const {\n target\n } = event;\n const currentIndex = elements.indexOf(target);\n const nextIndex = clamp(currentIndex + offset, 0, elements.length - 1);\n this.focusItem(nextIndex, elements);\n },\n focusItem(index, elements) {\n var _elements$index;\n this.nextFocusedItemIndex = index;\n (_elements$index = elements[index]) === null || _elements$index === void 0 ? void 0 : _elements$index.focus();\n },\n closeAndFocus() {\n this.$refs.baseDropdown.closeAndFocus();\n },\n handleAction(action) {\n // See https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/4376 for\n // detailed explanation why we need requestAnimationFrame\n window.requestAnimationFrame(() => {\n /**\n * Emitted when one of disclosure dropdown items is clicked\n *\n * @event action\n */\n this.$emit('action', action);\n });\n },\n handleAutoClose(e) {\n if (this.autoClose && e.target.closest(ITEM_SELECTOR) && e.target.closest(DROPDOWN_SELECTOR) === this.$refs.baseDropdown.$el) {\n this.closeAndFocus();\n }\n },\n uniqueItemId() {\n return uniqueId(`disclosure-item-`);\n },\n isItem\n },\n GL_DROPDOWN_CONTENTS_CLASS\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-base-dropdown',{ref:\"baseDropdown\",staticClass:\"gl-disclosure-dropdown\",attrs:{\"aria-labelledby\":_vm.toggleAriaLabelledBy,\"toggle-id\":_vm.toggleId,\"toggle-text\":_vm.toggleText,\"toggle-class\":_vm.toggleClass,\"text-sr-only\":_vm.textSrOnly,\"category\":_vm.category,\"variant\":_vm.variant,\"size\":_vm.size,\"icon\":_vm.icon,\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"no-caret\":_vm.noCaret,\"placement\":_vm.placement,\"block\":_vm.block,\"offset\":_vm.dropdownOffset,\"fluid-width\":_vm.fluidWidth,\"positioning-strategy\":_vm.positioningStrategy},on:_vm._d({},[_vm.$options.events.GL_DROPDOWN_SHOWN,_vm.onShow,_vm.$options.events.GL_DROPDOWN_HIDDEN,_vm.onHide,_vm.$options.events.GL_DROPDOWN_BEFORE_CLOSE,_vm.onBeforeClose,_vm.$options.events.GL_DROPDOWN_FOCUS_CONTENT,_vm.onKeydown]),scopedSlots:_vm._u([(_vm.hasCustomToggle)?{key:\"toggle\",fn:function(){return [_vm._t(\"toggle\")]},proxy:true}:null],null,true)},[_vm._v(\" \"),_vm._t(\"header\"),_vm._v(\" \"),_c(_vm.disclosureTag,{ref:\"content\",tag:\"component\",class:_vm.$options.GL_DROPDOWN_CONTENTS_CLASS,attrs:{\"id\":_vm.disclosureId,\"aria-labelledby\":_vm.listAriaLabelledBy || _vm.toggleId,\"data-testid\":\"disclosure-content\",\"tabindex\":\"-1\"},on:{\"keydown\":_vm.onKeydown,\"click\":_vm.handleAutoClose}},[_vm._t(\"default\",function(){return [_vm._l((_vm.items),function(item,index){return [(_vm.isItem(item))?[_c('gl-disclosure-dropdown-item',{key:_vm.uniqueItemId(),attrs:{\"item\":item},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([('list-item' in _vm.$scopedSlots)?{key:\"list-item\",fn:function(){return [_vm._t(\"list-item\",null,{\"item\":item})]},proxy:true}:null],null,true)})]:[_c('gl-disclosure-dropdown-group',{key:item.name,attrs:{\"bordered\":index !== 0,\"group\":item},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([(_vm.$scopedSlots['group-label'])?{key:\"group-label\",fn:function(){return [_vm._t(\"group-label\",null,{\"group\":item})]},proxy:true}:null],null,true)},[_vm._v(\" \"),(_vm.$scopedSlots['list-item'])?_vm._l((item.items),function(groupItem){return _c('gl-disclosure-dropdown-item',{key:_vm.uniqueItemId(),attrs:{\"item\":groupItem},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._t(\"list-item\",null,{\"item\":groupItem})]},proxy:true}],null,true)})}):_vm._e()],2)]]})]})],2),_vm._v(\" \"),_vm._t(\"footer\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\nexport { DROPDOWN_SELECTOR, ITEM_SELECTOR };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.canUpdate && _vm.showForm)?_c('div',[_c('form-component',{attrs:{\"endpoint\":_vm.endpoint,\"form-state\":_vm.formState,\"initial-description-text\":_vm.initialDescriptionText,\"issuable-templates\":_vm.formState.issuableTemplates,\"markdown-docs-path\":_vm.markdownDocsPath,\"markdown-preview-path\":_vm.markdownPreviewPath,\"project-path\":_vm.projectPath,\"project-id\":_vm.projectId,\"project-namespace\":_vm.projectNamespace,\"can-attach-file\":_vm.canAttachFile,\"enable-autocomplete\":_vm.enableAutocomplete,\"issuable-type\":_vm.issuableType},on:{\"updateForm\":_vm.setFormState}})],1):_c('div',[_c('title-component',{ref:\"title\",attrs:{\"issuable-ref\":_vm.issuableRef,\"can-update\":_vm.canUpdate,\"title-html\":_vm.state.titleHtml,\"title-text\":_vm.state.titleText},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"actions\",function(){return [_c('header-actions')]})]},proxy:true}],null,true)}),_vm._v(\" \"),(_vm.shouldShowStickyHeader)?_c('sticky-header',{attrs:{\"is-confidential\":_vm.isConfidential,\"is-hidden\":_vm.isHidden,\"is-imported\":_vm.isImported,\"is-locked\":_vm.isLocked,\"issuable-state\":_vm.issuableStatus,\"issuable-type\":_vm.issuableType,\"show\":_vm.isStickyHeaderShowing,\"title\":_vm.state.titleText,\"duplicated-to-issue-url\":_vm.duplicatedToIssueUrl,\"moved-to-issue-url\":_vm.movedToIssueUrl,\"promoted-to-epic-url\":_vm.promotedToEpicUrl},on:{\"hide\":_vm.hideStickyHeader,\"show\":_vm.showStickyHeader}}):_vm._e(),_vm._v(\" \"),_vm._t(\"header\",function(){return [_c('issue-header',{staticClass:\"gl-mt-2 gl-p-0\",class:_vm.headerClasses,attrs:{\"author\":_vm.author,\"confidential\":_vm.isConfidential,\"created-at\":_vm.createdAt,\"duplicated-to-issue-url\":_vm.duplicatedToIssueUrl,\"is-first-contribution\":_vm.isFirstContribution,\"is-hidden\":_vm.isHidden,\"is-imported\":_vm.isImported,\"is-locked\":_vm.isLocked,\"issuable-state\":_vm.issuableStatus,\"issuable-type\":_vm.issuableType,\"moved-to-issue-url\":_vm.movedToIssueUrl,\"promoted-to-epic-url\":_vm.promotedToEpicUrl,\"service-desk-reply-to\":_vm.serviceDeskReplyTo}})]}),_vm._v(\" \"),_c('pinned-links',{class:_vm.pinnedLinkClasses,attrs:{\"zoom-meeting-url\":_vm.zoomMeetingUrl,\"published-incident-url\":_vm.publishedIncidentUrl}}),_vm._v(\" \"),_c(_vm.descriptionComponent,{tag:\"component\",attrs:{\"issue-id\":_vm.issueId,\"issue-iid\":_vm.issueIid,\"can-update\":_vm.canUpdate,\"description-html\":_vm.state.descriptionHtml,\"description-text\":_vm.state.descriptionText,\"updated-at\":_vm.state.updatedAt,\"issuable-type\":_vm.issuableType,\"update-url\":_vm.updateEndpoint,\"lock-version\":_vm.state.lock_version,\"is-updating\":_vm.formState.updateLoading},on:{\"saveDescription\":_vm.handleSaveDescription,\"taskListUpdateStarted\":_vm.taskListUpdateStarted,\"taskListUpdateSucceeded\":_vm.taskListUpdateSucceeded,\"taskListUpdateFailed\":_vm.taskListUpdateFailed,\"updateDescription\":function($event){_vm.state.descriptionHtml = $event}}}),_vm._v(\" \"),_c('edited-component',{staticClass:\"gl-mt-4\",attrs:{\"task-completion-status\":_vm.state.taskCompletionStatus,\"updated-at\":_vm.state.updatedAt,\"updated-by-name\":_vm.state.updatedByName,\"updated-by-path\":_vm.state.updatedByPath}})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Function that replaces the open attribute for the <details> element.\n *\n * @param {String} descriptionHtml - The html string passed back from the server as a result of polling\n * @param {Array} details - All detail nodes inside of the issue description.\n */\n\nconst updateDescription = (descriptionHtml = '', details) => {\n let detailNodes = details;\n\n if (!details.length) {\n detailNodes = [];\n }\n\n const placeholder = document.createElement('div');\n // eslint-disable-next-line no-unsanitized/property\n placeholder.innerHTML = descriptionHtml;\n\n const newDetails = placeholder.getElementsByTagName('details');\n\n if (newDetails.length !== detailNodes.length) {\n return descriptionHtml;\n }\n\n Array.from(newDetails).forEach((el, i) => {\n /*\n * <details> has an open attribute that can have a value, \"\", \"true\", \"false\"\n * and will show the dropdown, which is why we are setting the attribute\n * explicitly to true.\n */\n if (detailNodes[i].open) el.setAttribute('open', true);\n });\n\n return placeholder.innerHTML;\n};\n\nexport default updateDescription;\n","import axios from '~/lib/utils/axios_utils';\n\nexport default class Service {\n constructor(endpoint) {\n this.endpoint = `${endpoint}.json`;\n this.realtimeEndpoint = `${endpoint}/realtime_changes`;\n }\n\n getData() {\n return axios.get(this.realtimeEndpoint);\n }\n\n deleteIssuable(payload) {\n return axios.delete(this.endpoint, { params: payload });\n }\n\n updateIssuable(data) {\n return axios.put(this.endpoint, data);\n }\n\n // eslint-disable-next-line class-methods-use-this\n loadTemplates(templateNamesEndpoint) {\n if (!templateNamesEndpoint) {\n return Promise.resolve([]);\n }\n\n return axios.get(templateNamesEndpoint);\n }\n}\n","import eventHub from '../event_hub';\n\nexport default {\n methods: {\n updateIssuable() {\n eventHub.$emit('update.issuable');\n },\n },\n};\n","<script>\nimport { GlButton } from '@gitlab/ui';\nimport Tracking from '~/tracking';\nimport eventHub from '../event_hub';\nimport updateMixin from '../mixins/update';\nimport getIssueStateQuery from '../queries/get_issue_state.query.graphql';\n\nconst trackingMixin = Tracking.mixin({ label: 'delete_issue' });\n\nexport default {\n components: {\n GlButton,\n },\n mixins: [trackingMixin, updateMixin],\n props: {\n endpoint: {\n required: true,\n type: String,\n },\n formState: {\n type: Object,\n required: true,\n },\n issuableType: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n deleteLoading: false,\n skipApollo: false,\n issueState: {},\n };\n },\n apollo: {\n issueState: {\n query: getIssueStateQuery,\n skip() {\n return this.skipApollo;\n },\n result() {\n this.skipApollo = true;\n },\n },\n },\n computed: {\n isSubmitEnabled() {\n return this.formState.title.trim() !== '';\n },\n },\n methods: {\n closeForm() {\n eventHub.$emit('close.form');\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-mb-3 gl-mt-3 gl-flex\">\n <gl-button\n :loading=\"formState.updateLoading\"\n :disabled=\"formState.updateLoading || !isSubmitEnabled\"\n category=\"primary\"\n variant=\"confirm\"\n class=\"gl-mr-3\"\n data-testid=\"issuable-save-button\"\n type=\"submit\"\n @click.prevent=\"updateIssuable\"\n >\n {{ __('Save changes') }}\n </gl-button>\n <gl-button data-testid=\"issuable-cancel-button\" @click=\"closeForm\">\n {{ __('Cancel') }}\n </gl-button>\n </div>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit_actions.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit_actions.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./edit_actions.vue?vue&type=template&id=6049953c\"\nimport script from \"./edit_actions.vue?vue&type=script&lang=js\"\nexport * from \"./edit_actions.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-mb-3 gl-mt-3 gl-flex\"},[_c('gl-button',{staticClass:\"gl-mr-3\",attrs:{\"loading\":_vm.formState.updateLoading,\"disabled\":_vm.formState.updateLoading || !_vm.isSubmitEnabled,\"category\":\"primary\",\"variant\":\"confirm\",\"data-testid\":\"issuable-save-button\",\"type\":\"submit\"},on:{\"click\":function($event){$event.preventDefault();return _vm.updateIssuable.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Save changes'))+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{attrs:{\"data-testid\":\"issuable-cancel-button\"},on:{\"click\":_vm.closeForm}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Cancel'))+\"\\n \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./description.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./description.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { __ } from '~/locale';\nimport MarkdownEditor from '~/vue_shared/components/markdown/markdown_editor.vue';\nimport { trackSavedUsingEditor } from '~/vue_shared/components/markdown/tracking';\nimport { ISSUE_NOTEABLE_TYPE } from '~/notes/constants';\nimport updateMixin from '../../mixins/update';\n\nexport default {\n components: {\n MarkdownEditor,\n },\n mixins: [updateMixin],\n props: {\n value: {\n type: String,\n required: true,\n },\n markdownPreviewPath: {\n type: String,\n required: true,\n },\n markdownDocsPath: {\n type: String,\n required: true,\n },\n canAttachFile: {\n type: Boolean,\n required: false,\n default: true,\n },\n enableAutocomplete: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n data() {\n return {\n formFieldProps: {\n id: 'issue-description',\n name: 'issue-description',\n placeholder: __('Write a comment or drag your files here…'),\n 'aria-label': __('Description'),\n },\n };\n },\n computed: {\n autocompleteDataSources() {\n return gl.GfmAutoComplete?.dataSources;\n },\n },\n mounted() {\n this.focus();\n },\n methods: {\n focus() {\n this.$refs.textarea?.focus();\n },\n saveIssuable() {\n trackSavedUsingEditor(this.$refs.markdownEditor.isContentEditorActive, ISSUE_NOTEABLE_TYPE);\n this.updateIssuable();\n },\n },\n};\n</script>\n\n<template>\n <div class=\"common-note-form\">\n <label class=\"sr-only\" for=\"issue-description\">{{ __('Description') }}</label>\n <markdown-editor\n ref=\"markdownEditor\"\n class=\"gl-mt-3\"\n :value=\"value\"\n :render-markdown-path=\"markdownPreviewPath\"\n :markdown-docs-path=\"markdownDocsPath\"\n :form-field-props=\"formFieldProps\"\n :enable-autocomplete=\"enableAutocomplete\"\n :autocomplete-data-sources=\"autocompleteDataSources\"\n supports-quick-actions\n autofocus\n @input=\"$emit('input', $event)\"\n @keydown.meta.enter=\"saveIssuable\"\n @keydown.ctrl.enter=\"saveIssuable\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./description.vue?vue&type=template&id=501db415\"\nimport script from \"./description.vue?vue&type=script&lang=js\"\nexport * from \"./description.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"common-note-form\"},[_c('label',{staticClass:\"sr-only\",attrs:{\"for\":\"issue-description\"}},[_vm._v(_vm._s(_vm.__('Description')))]),_vm._v(\" \"),_c('markdown-editor',{ref:\"markdownEditor\",staticClass:\"gl-mt-3\",attrs:{\"value\":_vm.value,\"render-markdown-path\":_vm.markdownPreviewPath,\"markdown-docs-path\":_vm.markdownDocsPath,\"form-field-props\":_vm.formFieldProps,\"enable-autocomplete\":_vm.enableAutocomplete,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"supports-quick-actions\":\"\",\"autofocus\":\"\"},on:{\"input\":function($event){return _vm.$emit('input', $event)},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.metaKey)return null;return _vm.saveIssuable.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.ctrlKey)return null;return _vm.saveIssuable.apply(null, arguments)}]}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./description_template.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./description_template.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\nimport $ from 'jquery';\nimport IssuableTemplateSelectors from '~/issuable/issuable_template_selectors';\n\nexport default {\n components: {\n GlIcon,\n },\n props: {\n value: {\n type: String,\n required: true,\n },\n issuableTemplates: {\n type: [Object, Array],\n required: false,\n default: () => ({}),\n },\n projectPath: {\n type: String,\n required: true,\n },\n projectId: {\n type: Number,\n required: true,\n },\n projectNamespace: {\n type: String,\n required: true,\n },\n },\n computed: {\n issuableTemplatesJson() {\n return JSON.stringify(this.issuableTemplates);\n },\n },\n mounted() {\n // Create the editor for the template\n const editor = document.querySelector('.detail-page-description .note-textarea') || {};\n editor.setValue = (val) => {\n this.$emit('input', val);\n };\n editor.getValue = () => this.value;\n\n this.issuableTemplate = new IssuableTemplateSelectors({\n $dropdowns: $(this.$refs.toggle),\n editor,\n });\n },\n};\n</script>\n\n<template>\n <!-- eslint-disable @gitlab/vue-no-data-toggle -->\n <div class=\"dropdown js-issuable-selector-wrap gl-mb-0\" data-issuable-type=\"issues\">\n <button\n ref=\"toggle\"\n :data-namespace-path=\"projectNamespace\"\n :data-project-path=\"projectPath\"\n :data-project-id=\"projectId\"\n :data-data=\"issuableTemplatesJson\"\n class=\"dropdown-menu-toggle js-issuable-selector gl-button !gl-py-3\"\n type=\"button\"\n data-field-name=\"issuable_template\"\n data-selected=\"null\"\n data-toggle=\"dropdown\"\n >\n <span class=\"dropdown-toggle-text\">{{ __('Choose a template') }}</span>\n <gl-icon\n name=\"chevron-down\"\n class=\"dropdown-menu-toggle-icon gl-absolute gl-right-3 gl-top-3 gl-text-subtle\"\n />\n </button>\n <div class=\"dropdown-menu dropdown-select\">\n <div class=\"dropdown-title gl-flex gl-justify-center\">\n <span class=\"gl-ml-auto\">{{ __('Choose a template') }}</span>\n <button\n class=\"dropdown-title-button dropdown-menu-close gl-ml-auto\"\n :aria-label=\"__('Close')\"\n type=\"button\"\n >\n <gl-icon name=\"close\" class=\"dropdown-menu-close-icon\" />\n </button>\n </div>\n <div class=\"dropdown-input\">\n <input\n type=\"search\"\n class=\"dropdown-input-field\"\n :placeholder=\"__('Filter')\"\n autocomplete=\"off\"\n />\n <gl-icon name=\"search\" class=\"dropdown-input-search\" />\n <gl-icon\n name=\"close\"\n class=\"dropdown-input-clear js-dropdown-input-clear\"\n :aria-label=\"__('Clear templates search input')\"\n />\n </div>\n <div class=\"dropdown-content\"></div>\n <div class=\"dropdown-footer\">\n <ul class=\"dropdown-footer-list\">\n <li>\n <a class=\"no-template\">{{ __('No template') }}</a>\n </li>\n <li>\n <a class=\"reset-template\">{{ __('Reset template') }}</a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./description_template.vue?vue&type=template&id=691a9a98\"\nimport script from \"./description_template.vue?vue&type=script&lang=js\"\nexport * from \"./description_template.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"dropdown js-issuable-selector-wrap gl-mb-0\",attrs:{\"data-issuable-type\":\"issues\"}},[_c('button',{ref:\"toggle\",staticClass:\"dropdown-menu-toggle js-issuable-selector gl-button !gl-py-3\",attrs:{\"data-namespace-path\":_vm.projectNamespace,\"data-project-path\":_vm.projectPath,\"data-project-id\":_vm.projectId,\"data-data\":_vm.issuableTemplatesJson,\"type\":\"button\",\"data-field-name\":\"issuable_template\",\"data-selected\":\"null\",\"data-toggle\":\"dropdown\"}},[_c('span',{staticClass:\"dropdown-toggle-text\"},[_vm._v(_vm._s(_vm.__('Choose a template')))]),_vm._v(\" \"),_c('gl-icon',{staticClass:\"dropdown-menu-toggle-icon gl-absolute gl-right-3 gl-top-3 gl-text-subtle\",attrs:{\"name\":\"chevron-down\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-menu dropdown-select\"},[_c('div',{staticClass:\"dropdown-title gl-flex gl-justify-center\"},[_c('span',{staticClass:\"gl-ml-auto\"},[_vm._v(_vm._s(_vm.__('Choose a template')))]),_vm._v(\" \"),_c('button',{staticClass:\"dropdown-title-button dropdown-menu-close gl-ml-auto\",attrs:{\"aria-label\":_vm.__('Close'),\"type\":\"button\"}},[_c('gl-icon',{staticClass:\"dropdown-menu-close-icon\",attrs:{\"name\":\"close\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-input\"},[_c('input',{staticClass:\"dropdown-input-field\",attrs:{\"type\":\"search\",\"placeholder\":_vm.__('Filter'),\"autocomplete\":\"off\"}}),_vm._v(\" \"),_c('gl-icon',{staticClass:\"dropdown-input-search\",attrs:{\"name\":\"search\"}}),_vm._v(\" \"),_c('gl-icon',{staticClass:\"dropdown-input-clear js-dropdown-input-clear\",attrs:{\"name\":\"close\",\"aria-label\":_vm.__('Clear templates search input')}})],1),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-content\"}),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-footer\"},[_c('ul',{staticClass:\"dropdown-footer-list\"},[_c('li',[_c('a',{staticClass:\"no-template\"},[_vm._v(_vm._s(_vm.__('No template')))])]),_vm._v(\" \"),_c('li',[_c('a',{staticClass:\"reset-template\"},[_vm._v(_vm._s(_vm.__('Reset template')))])])])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./title.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./title.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlFormGroup, GlFormInput } from '@gitlab/ui';\nimport updateMixin from '../../mixins/update';\n\nexport default {\n components: {\n GlFormGroup,\n GlFormInput,\n },\n mixins: [updateMixin],\n props: {\n value: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <gl-form-group\n :label=\"__('Title')\"\n label-for=\"issuable-title\"\n label-class=\"gl-sr-only\"\n class=\"gl-mb-0\"\n >\n <gl-form-input\n id=\"issuable-title\"\n ref=\"input\"\n :value=\"value\"\n class=\"form-control\"\n dir=\"auto\"\n type=\"text\"\n :placeholder=\"__('Title')\"\n :aria-label=\"__('Title')\"\n @input=\"(val) => $emit('input', val)\"\n @keydown.meta.enter.native=\"updateIssuable\"\n @keydown.ctrl.enter.native=\"updateIssuable\"\n />\n </gl-form-group>\n</template>\n","import { render, staticRenderFns } from \"./title.vue?vue&type=template&id=035c0b70\"\nimport script from \"./title.vue?vue&type=script&lang=js\"\nexport * from \"./title.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-form-group',{staticClass:\"gl-mb-0\",attrs:{\"label\":_vm.__('Title'),\"label-for\":\"issuable-title\",\"label-class\":\"gl-sr-only\"}},[_c('gl-form-input',{ref:\"input\",staticClass:\"form-control\",attrs:{\"id\":\"issuable-title\",\"value\":_vm.value,\"dir\":\"auto\",\"type\":\"text\",\"placeholder\":_vm.__('Title'),\"aria-label\":_vm.__('Title')},on:{\"input\":(val) => _vm.$emit('input', val)},nativeOn:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.metaKey)return null;return _vm.updateIssuable.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.ctrlKey)return null;return _vm.updateIssuable.apply(null, arguments)}]}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlFormGroup, GlIcon, GlCollapsibleListbox } from '@gitlab/ui';\nimport { TYPE_INCIDENT, TYPE_ISSUE } from '~/issues/constants';\nimport { __ } from '~/locale';\nimport { issuableTypes } from '../../constants';\nimport getIssueStateQuery from '../../queries/get_issue_state.query.graphql';\nimport updateIssueStateMutation from '../../queries/update_issue_state.mutation.graphql';\n\nexport const i18n = {\n label: __('Issue Type'),\n};\n\nexport default {\n i18n,\n issuableTypes,\n components: {\n GlFormGroup,\n GlIcon,\n GlCollapsibleListbox,\n },\n inject: {\n canCreateIncident: {\n default: false,\n },\n issueType: {\n default: TYPE_ISSUE,\n },\n },\n data() {\n return {\n issueState: {},\n selectedIssueType: '',\n };\n },\n apollo: {\n issueState: {\n query: getIssueStateQuery,\n result({\n data: {\n issueState: { issueType },\n },\n }) {\n this.selectedIssueType = issueType;\n },\n },\n },\n computed: {\n shouldShowIncident() {\n return this.issueType === TYPE_INCIDENT || this.canCreateIncident;\n },\n },\n methods: {\n updateIssueType(issueType) {\n this.$apollo.mutate({\n mutation: updateIssueStateMutation,\n variables: {\n issueType,\n isDirty: true,\n },\n });\n },\n isShown(type) {\n return type.value !== TYPE_INCIDENT || this.shouldShowIncident;\n },\n },\n};\n</script>\n\n<template>\n <gl-form-group\n :label=\"$options.i18n.label\"\n label-class=\"sr-only\"\n label-for=\"issuable-type\"\n class=\"gl-mb-0\"\n >\n <gl-collapsible-listbox\n v-model=\"selectedIssueType\"\n toggle-class=\"gl-mb-0\"\n :items=\"$options.issuableTypes\"\n :header-text=\"$options.i18n.label\"\n :list-aria-labelled-by=\"$options.i18n.label\"\n block\n @select=\"updateIssueType\"\n >\n <template #list-item=\"{ item }\">\n <span v-show=\"isShown(item)\" data-testid=\"issue-type-list-item\">\n <gl-icon :name=\"item.icon\" />\n {{ item.text }}\n </span>\n </template>\n </gl-collapsible-listbox>\n </gl-form-group>\n</template>\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./type.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./type.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./type.vue?vue&type=template&id=734430ff\"\nimport script from \"./type.vue?vue&type=script&lang=js\"\nexport * from \"./type.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-form-group',{staticClass:\"gl-mb-0\",attrs:{\"label\":_vm.$options.i18n.label,\"label-class\":\"sr-only\",\"label-for\":\"issuable-type\"}},[_c('gl-collapsible-listbox',{attrs:{\"toggle-class\":\"gl-mb-0\",\"items\":_vm.$options.issuableTypes,\"header-text\":_vm.$options.i18n.label,\"list-aria-labelled-by\":_vm.$options.i18n.label,\"block\":\"\"},on:{\"select\":_vm.updateIssueType},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isShown(item)),expression:\"isShown(item)\"}],attrs:{\"data-testid\":\"issue-type-list-item\"}},[_c('gl-icon',{attrs:{\"name\":item.icon}}),_vm._v(\"\\n \"+_vm._s(item.text)+\"\\n \")],1)]}}]),model:{value:(_vm.selectedIssueType),callback:function ($$v) {_vm.selectedIssueType=$$v},expression:\"selectedIssueType\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlSprintf, GlLink, GlAlert } from '@gitlab/ui';\nimport { __, sprintf } from '~/locale';\nimport {\n TYPE_ALERT,\n TYPE_EPIC,\n TYPE_ISSUE,\n TYPE_MERGE_REQUEST,\n TYPE_TEST_CASE,\n} from '~/issues/constants';\n\nexport const i18n = Object.freeze({\n alertMessage: __(\n \"Someone edited the %{issuableType} at the same time you did. Review %{linkStart}the %{issuableType}%{linkEnd} and make sure you don't unintentionally overwrite their changes.\",\n ),\n});\n\nexport default {\n components: {\n GlSprintf,\n GlLink,\n GlAlert,\n },\n props: {\n issuableType: {\n type: String,\n required: true,\n validator(value) {\n return [TYPE_ALERT, TYPE_EPIC, TYPE_ISSUE, TYPE_MERGE_REQUEST, TYPE_TEST_CASE].includes(\n value,\n );\n },\n },\n },\n computed: {\n currentPath() {\n return window.location.pathname;\n },\n alertMessage() {\n return sprintf(this.$options.i18n.alertMessage, { issuableType: this.issuableType });\n },\n },\n i18n,\n};\n</script>\n\n<template>\n <gl-alert variant=\"danger\" class=\"gl-mb-5\" :dismissible=\"false\">\n <gl-sprintf :message=\"alertMessage\">\n <template #link=\"{ content }\">\n <gl-link :href=\"currentPath\" target=\"_blank\" rel=\"nofollow\">\n {{ content }}\n </gl-link>\n </template>\n </gl-sprintf>\n </gl-alert>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./locked_warning.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./locked_warning.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./locked_warning.vue?vue&type=template&id=9fa117f8\"\nimport script from \"./locked_warning.vue?vue&type=script&lang=js\"\nexport * from \"./locked_warning.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-alert',{staticClass:\"gl-mb-5\",attrs:{\"variant\":\"danger\",\"dismissible\":false}},[_c('gl-sprintf',{attrs:{\"message\":_vm.alertMessage},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.currentPath,\"target\":\"_blank\",\"rel\":\"nofollow\"}},[_vm._v(\"\\n \"+_vm._s(content)+\"\\n \")])]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./form.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlAlert } from '@gitlab/ui';\nimport { getDraft, updateDraft, getLockVersion, clearDraft } from '~/lib/utils/autosave';\nimport { TYPE_INCIDENT, TYPE_ISSUE } from '~/issues/constants';\nimport eventHub from '../event_hub';\nimport EditActions from './edit_actions.vue';\nimport DescriptionField from './fields/description.vue';\nimport DescriptionTemplateField from './fields/description_template.vue';\nimport IssuableTitleField from './fields/title.vue';\nimport IssuableTypeField from './fields/type.vue';\nimport LockedWarning from './locked_warning.vue';\n\nexport default {\n components: {\n DescriptionField,\n DescriptionTemplateField,\n EditActions,\n GlAlert,\n IssuableTitleField,\n IssuableTypeField,\n LockedWarning,\n },\n props: {\n endpoint: {\n type: String,\n required: true,\n },\n formState: {\n type: Object,\n required: true,\n },\n issuableTemplates: {\n type: [Object, Array],\n required: false,\n default: () => [],\n },\n issuableType: {\n type: String,\n required: true,\n },\n markdownPreviewPath: {\n type: String,\n required: true,\n },\n markdownDocsPath: {\n type: String,\n required: true,\n },\n projectPath: {\n type: String,\n required: true,\n },\n projectId: {\n type: Number,\n required: true,\n },\n projectNamespace: {\n type: String,\n required: true,\n },\n canAttachFile: {\n type: Boolean,\n required: false,\n default: true,\n },\n enableAutocomplete: {\n type: Boolean,\n required: false,\n default: true,\n },\n initialDescriptionText: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n const autosaveKey = [document.location.pathname, document.location.search];\n const descriptionAutosaveKey = [...autosaveKey, 'description'];\n const titleAutosaveKey = [...autosaveKey, 'title'];\n\n return {\n titleAutosaveKey,\n descriptionAutosaveKey,\n autosaveReset: false,\n formData: {\n title: getDraft(titleAutosaveKey) || this.formState.title,\n description: getDraft(descriptionAutosaveKey) || this.formState.description,\n },\n showOutdatedDescriptionWarning: false,\n };\n },\n computed: {\n hasIssuableTemplates() {\n return Object.values(Object(this.issuableTemplates)).length;\n },\n showLockedWarning() {\n return this.formState.lockedWarningVisible && !this.formState.updateLoading;\n },\n showTypeField() {\n return [TYPE_INCIDENT, TYPE_ISSUE].includes(this.issuableType);\n },\n },\n watch: {\n formData: {\n handler(value) {\n this.$emit('updateForm', value);\n },\n deep: true,\n },\n },\n created() {\n eventHub.$on('delete.issuable', this.resetAutosave);\n eventHub.$on('update.issuable', this.resetAutosave);\n eventHub.$on('close.form', this.resetAutosave);\n },\n mounted() {\n this.initAutosave();\n },\n beforeDestroy() {\n eventHub.$off('delete.issuable', this.resetAutosave);\n eventHub.$off('update.issuable', this.resetAutosave);\n eventHub.$off('close.form', this.resetAutosave);\n },\n methods: {\n initAutosave() {\n const savedLockVersion = getLockVersion(this.descriptionAutosaveKey);\n\n this.showOutdatedDescriptionWarning =\n savedLockVersion && String(this.formState.lock_version) !== savedLockVersion;\n },\n resetAutosave() {\n this.autosaveReset = true;\n clearDraft(this.descriptionAutosaveKey);\n clearDraft(this.titleAutosaveKey);\n },\n keepAutosave() {\n this.$refs.description.focus();\n this.showOutdatedDescriptionWarning = false;\n },\n discardAutosave() {\n this.formData.description = this.initialDescriptionText;\n clearDraft(this.descriptionAutosaveKey);\n this.$refs.description.focus();\n this.showOutdatedDescriptionWarning = false;\n },\n updateTitleDraft(title) {\n updateDraft(this.titleAutosaveKey, title);\n },\n updateDescriptionDraft(description) {\n /*\n * This conditional statement prevents a race-condition\n * between clearing the draft and submitting a new draft\n * update while the user is typing. It happens when saving\n * using the cmd + enter keyboard shortcut.\n */\n if (!this.autosaveReset) {\n updateDraft(this.descriptionAutosaveKey, description, this.formState.lock_version);\n }\n },\n },\n};\n</script>\n\n<template>\n <form data-testid=\"issuable-form\" class=\"gl-mt-1\">\n <locked-warning v-if=\"showLockedWarning\" :issuable-type=\"issuableType\" />\n <gl-alert\n v-if=\"showOutdatedDescriptionWarning\"\n class=\"gl-mb-5\"\n variant=\"warning\"\n :primary-button-text=\"__('Keep')\"\n :secondary-button-text=\"__('Discard')\"\n :dismissible=\"false\"\n @primaryAction=\"keepAutosave\"\n @secondaryAction=\"discardAutosave\"\n >{{\n __(\n 'The comment you are editing has been changed by another user. Would you like to keep your changes and overwrite the new description or discard your changes?',\n )\n }}</gl-alert\n >\n <div class=\"row gl-mb-3\">\n <div class=\"col-12\">\n <issuable-title-field ref=\"title\" v-model=\"formData.title\" @input=\"updateTitleDraft\" />\n </div>\n </div>\n <div class=\"row gl-gap-3\">\n <div v-if=\"showTypeField\" class=\"col-12 col-md-4 pr-md-0\">\n <issuable-type-field ref=\"issue-type\" />\n </div>\n\n <div v-if=\"hasIssuableTemplates\" class=\"col-12 col-md-4 md:gl-pl-0 md:gl-pr-0\">\n <description-template-field\n v-model=\"formData.description\"\n :issuable-templates=\"issuableTemplates\"\n :project-path=\"projectPath\"\n :project-id=\"projectId\"\n :project-namespace=\"projectNamespace\"\n />\n </div>\n </div>\n\n <description-field\n ref=\"description\"\n v-model=\"formData.description\"\n :markdown-preview-path=\"markdownPreviewPath\"\n :markdown-docs-path=\"markdownDocsPath\"\n :can-attach-file=\"canAttachFile\"\n :enable-autocomplete=\"enableAutocomplete\"\n @input=\"updateDescriptionDraft\"\n />\n\n <edit-actions :endpoint=\"endpoint\" :form-state=\"formState\" :issuable-type=\"issuableType\" />\n </form>\n</template>\n","import { render, staticRenderFns } from \"./form.vue?vue&type=template&id=5231fffa\"\nimport script from \"./form.vue?vue&type=script&lang=js\"\nexport * from \"./form.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{staticClass:\"gl-mt-1\",attrs:{\"data-testid\":\"issuable-form\"}},[(_vm.showLockedWarning)?_c('locked-warning',{attrs:{\"issuable-type\":_vm.issuableType}}):_vm._e(),_vm._v(\" \"),(_vm.showOutdatedDescriptionWarning)?_c('gl-alert',{staticClass:\"gl-mb-5\",attrs:{\"variant\":\"warning\",\"primary-button-text\":_vm.__('Keep'),\"secondary-button-text\":_vm.__('Discard'),\"dismissible\":false},on:{\"primaryAction\":_vm.keepAutosave,\"secondaryAction\":_vm.discardAutosave}},[_vm._v(_vm._s(_vm.__(\n 'The comment you are editing has been changed by another user. Would you like to keep your changes and overwrite the new description or discard your changes?',\n )))]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"row gl-mb-3\"},[_c('div',{staticClass:\"col-12\"},[_c('issuable-title-field',{ref:\"title\",on:{\"input\":_vm.updateTitleDraft},model:{value:(_vm.formData.title),callback:function ($$v) {_vm.$set(_vm.formData, \"title\", $$v)},expression:\"formData.title\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row gl-gap-3\"},[(_vm.showTypeField)?_c('div',{staticClass:\"col-12 col-md-4 pr-md-0\"},[_c('issuable-type-field',{ref:\"issue-type\"})],1):_vm._e(),_vm._v(\" \"),(_vm.hasIssuableTemplates)?_c('div',{staticClass:\"col-12 col-md-4 md:gl-pl-0 md:gl-pr-0\"},[_c('description-template-field',{attrs:{\"issuable-templates\":_vm.issuableTemplates,\"project-path\":_vm.projectPath,\"project-id\":_vm.projectId,\"project-namespace\":_vm.projectNamespace},model:{value:(_vm.formData.description),callback:function ($$v) {_vm.$set(_vm.formData, \"description\", $$v)},expression:\"formData.description\"}})],1):_vm._e()]),_vm._v(\" \"),_c('description-field',{ref:\"description\",attrs:{\"markdown-preview-path\":_vm.markdownPreviewPath,\"markdown-docs-path\":_vm.markdownDocsPath,\"can-attach-file\":_vm.canAttachFile,\"enable-autocomplete\":_vm.enableAutocomplete},on:{\"input\":_vm.updateDescriptionDraft},model:{value:(_vm.formData.description),callback:function ($$v) {_vm.$set(_vm.formData, \"description\", $$v)},expression:\"formData.description\"}}),_vm._v(\" \"),_c('edit-actions',{attrs:{\"endpoint\":_vm.endpoint,\"form-state\":_vm.formState,\"issuable-type\":_vm.issuableType}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header_actions_confidentiality_toggle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header_actions_confidentiality_toggle.vue?vue&type=script&lang=js\"","<script>\nimport { GlDisclosureDropdownItem } from '@gitlab/ui';\n\nimport { createAlert } from '~/alert';\nimport { s__, __, sprintf } from '~/locale';\n\nimport { confidentialityQueries } from '~/sidebar/queries/constants';\nimport { issuableTypeText } from '~/issues/constants';\n\nexport default {\n i18n: {\n enableConfidentiality: s__('WorkItem|Turn on confidentiality'),\n confidentialityEnabled: s__('WorkItem|Confidentiality turned on.'),\n disableConfidentiality: s__('WorkItem|Turn off confidentiality'),\n confidentialityDisabled: s__('WorkItem|Confidentiality turned off.'),\n },\n components: {\n GlDisclosureDropdownItem,\n },\n inject: ['iid', 'issueType', 'projectPath', 'fullPath'],\n data() {\n return {\n confidential: false,\n };\n },\n apollo: {\n confidential: {\n query() {\n return confidentialityQueries[this.issueType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n iid: String(this.iid),\n };\n },\n update(data) {\n return data.workspace?.issuable?.confidential || false;\n },\n skip() {\n return !this.iid;\n },\n error() {\n createAlert({\n message: sprintf(\n __('Something went wrong while getting %{issuableType} confidentiality status.'),\n {\n issuableType: this.issueTypeText,\n },\n ),\n });\n },\n },\n },\n computed: {\n issueTypeText() {\n const { issueType } = this;\n\n return issuableTypeText[issueType] ?? issueType;\n },\n confidentialItem() {\n return {\n text: this.confidential\n ? this.$options.i18n.disableConfidentiality\n : this.$options.i18n.enableConfidentiality,\n };\n },\n confidentialityText() {\n return this.confidential\n ? this.$options.i18n.confidentialityEnabled\n : this.$options.i18n.confidentialityDisabled;\n },\n },\n methods: {\n handleToggleWorkItemConfidentiality() {\n this.$apollo\n .mutate({\n mutation: confidentialityQueries[this.issueType].mutation,\n variables: {\n input: {\n iid: String(this.iid),\n projectPath: this.projectPath,\n confidential: !this.confidential,\n },\n },\n })\n .then(\n ({\n data: {\n issuableSetConfidential: { errors },\n },\n }) => {\n if (errors.length) {\n createAlert({\n message: errors[0],\n });\n } else {\n this.$emit('closeActionsDropdown');\n this.$toast.show(this.confidentialityText);\n }\n },\n )\n .catch(() => {\n createAlert({\n message: sprintf(\n __('Something went wrong while setting %{issuableType} confidentiality.'),\n {\n issuableType: this.issueTypeText,\n },\n ),\n });\n });\n },\n },\n};\n</script>\n\n<template>\n <gl-disclosure-dropdown-item\n :item=\"confidentialItem\"\n data-testid=\"confidentiality-toggle-action\"\n @action=\"handleToggleWorkItemConfidentiality\"\n />\n</template>\n","import { render, staticRenderFns } from \"./header_actions_confidentiality_toggle.vue?vue&type=template&id=0f97906a\"\nimport script from \"./header_actions_confidentiality_toggle.vue?vue&type=script&lang=js\"\nexport * from \"./header_actions_confidentiality_toggle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.confidentialItem,\"data-testid\":\"confidentiality-toggle-action\"},on:{\"action\":_vm.handleToggleWorkItemConfidentiality}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport {\n GlButton,\n GlDisclosureDropdown,\n GlDropdownDivider,\n GlDisclosureDropdownItem,\n GlLink,\n GlModal,\n GlModalDirective,\n GlTooltipDirective,\n} from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { createAlert, VARIANT_SUCCESS } from '~/alert';\nimport { EVENT_ISSUABLE_VUE_APP_CHANGE } from '~/issuable/constants';\nimport { keysFor, ISSUABLE_EDIT_DESCRIPTION } from '~/behaviors/shortcuts/keybindings';\nimport { shouldDisableShortcuts } from '~/behaviors/shortcuts/shortcuts_toggle';\nimport { sanitize } from '~/lib/dompurify';\nimport { STATUS_CLOSED, TYPE_ISSUE, TYPE_INCIDENT, issuableTypeText } from '~/issues/constants';\nimport { ISSUE_STATE_EVENT_CLOSE, ISSUE_STATE_EVENT_REOPEN } from '~/issues/show/constants';\nimport { capitalizeFirstCharacter } from '~/lib/utils/text_utility';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport { visitUrl } from '~/lib/utils/url_utility';\nimport { __, sprintf } from '~/locale';\nimport eventHub from '~/notes/event_hub';\nimport Tracking from '~/tracking';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport AbuseCategorySelector from '~/abuse_reports/components/abuse_category_selector.vue';\nimport SidebarSubscriptionsWidget from '~/sidebar/components/subscriptions/sidebar_subscriptions_widget.vue';\nimport IssuableLockForm from '~/sidebar/components/lock/issuable_lock_form.vue';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport issueReferenceQuery from '~/sidebar/queries/issue_reference.query.graphql';\nimport issuesEventHub from '../event_hub';\nimport promoteToEpicMutation from '../queries/promote_to_epic.mutation.graphql';\nimport updateIssueMutation from '../queries/update_issue.mutation.graphql';\nimport DeleteIssueModal from './delete_issue_modal.vue';\nimport HeaderActionsConfidentialityToggle from './header_actions_confidentiality_toggle.vue';\n\nconst trackingMixin = Tracking.mixin({ label: 'delete_issue' });\n\nexport default {\n actionCancel: {\n text: __('Cancel'),\n },\n actionPrimary: {\n text: __('Yes, close issue'),\n },\n deleteModalId: 'delete-modal-id',\n i18n: {\n edit: __('Edit'),\n editTitleAndDescription: __('Edit title and description'),\n promoteErrorMessage: __(\n 'Something went wrong while promoting the issue to an epic. Please try again.',\n ),\n promoteSuccessMessage: __(\n 'The issue was successfully promoted to an epic. Redirecting to epic...',\n ),\n reportAbuse: __('Report abuse'),\n referenceFetchError: __('An error occurred while fetching reference'),\n copyReferenceText: __('Copy reference'),\n },\n components: {\n DeleteIssueModal,\n GlButton,\n GlDisclosureDropdown,\n GlDropdownDivider,\n GlDisclosureDropdownItem,\n GlLink,\n GlModal,\n AbuseCategorySelector,\n SidebarSubscriptionsWidget,\n IssuableLockForm,\n HeaderActionsConfidentialityToggle,\n },\n directives: {\n GlModal: GlModalDirective,\n GlTooltip: GlTooltipDirective,\n },\n mixins: [trackingMixin, glFeatureFlagMixin()],\n inject: [\n 'canCreateIssue',\n 'canDestroyIssue',\n 'canPromoteToEpic',\n 'canReopenIssue',\n 'canReportSpam',\n 'canUpdateIssue',\n 'iid',\n 'isIssueAuthor',\n 'issuePath',\n 'issueType',\n 'newIssuePath',\n 'projectPath',\n 'submitAsSpamPath',\n 'reportedUserId',\n 'reportedFromUrl',\n 'issuableEmailAddress',\n 'fullPath',\n ],\n data() {\n return {\n isReportAbuseDrawerOpen: false,\n isUserSignedIn: isLoggedIn(),\n isDesktopDropdownVisible: false,\n };\n },\n apollo: {\n // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n issuableReference: {\n query: issueReferenceQuery,\n variables() {\n return {\n fullPath: this.fullPath,\n iid: String(this.iid),\n };\n },\n update(data) {\n return data.workspace?.issuable?.reference || '';\n },\n error(error) {\n createAlert({ message: this.$options.i18n.referenceFetchError });\n Sentry.captureException(error);\n },\n },\n },\n computed: {\n ...mapState(['isToggleStateButtonLoading']),\n ...mapGetters(['openState', 'getBlockedByIssues']),\n ...mapGetters(['getNoteableData']),\n isLocked() {\n return this.getNoteableData.discussion_locked;\n },\n isClosed() {\n return this.openState === STATUS_CLOSED;\n },\n issueTypeText() {\n const { issueType } = this;\n\n return issuableTypeText[issueType] ?? issueType;\n },\n buttonText() {\n return this.isClosed\n ? sprintf(__('Reopen %{issueType}'), { issueType: this.issueTypeText })\n : sprintf(__('Close %{issueType}'), { issueType: this.issueTypeText });\n },\n deleteButtonText() {\n return sprintf(__('Delete %{issuableType}'), { issuableType: this.issueTypeText });\n },\n testId() {\n return this.isClosed ? 'reopen-issue-button' : 'close-issue-button';\n },\n dropdownText() {\n return sprintf(__('%{issueType} actions'), {\n issueType: capitalizeFirstCharacter(this.issueTypeText),\n });\n },\n newIssueTypeText() {\n return sprintf(__('New related %{issueType}'), { issueType: this.issueTypeText });\n },\n showToggleIssueStateButton() {\n const canClose = !this.isClosed && this.canUpdateIssue;\n const canReopen = this.isClosed && this.canReopenIssue;\n return canClose || canReopen;\n },\n hasDesktopDropdown() {\n return (\n this.canCreateIssue ||\n this.canPromoteToEpic ||\n !this.isIssueAuthor ||\n this.canReportSpam ||\n this.issuableReference\n );\n },\n hasMobileDropdown() {\n return this.hasDesktopDropdown || this.showToggleIssueStateButton;\n },\n copyMailAddressText() {\n return sprintf(__('Copy %{issueType} email address'), {\n issueType: this.issueTypeText,\n });\n },\n showLockIssueOption() {\n return this.issueType === TYPE_ISSUE && this.isUserSignedIn;\n },\n showMovedSidebarOptions() {\n return this.isUserSignedIn;\n },\n newIssueItem() {\n return {\n text: this.newIssueTypeText,\n href: this.newIssuePath,\n };\n },\n submitSpamItem() {\n return {\n text: __('Submit as spam'),\n href: this.submitAsSpamPath,\n };\n },\n editShortcutKey() {\n return shouldDisableShortcuts() ? null : keysFor(ISSUABLE_EDIT_DESCRIPTION)[0];\n },\n editTooltip() {\n const description = this.$options.i18n.editTitleAndDescription;\n const key = this.editShortcutKey;\n return shouldDisableShortcuts()\n ? description\n : sanitize(`${description} <kbd class=\"flat gl-ml-1\" aria-hidden=true>${key}</kbd>`);\n },\n showDropdownTooltip() {\n return !this.isDesktopDropdownVisible ? this.dropdownText : '';\n },\n promoteToEpicItem() {\n return {\n text: __('Promote to epic'),\n extraAttrs: {\n disabled: this.isToggleStateButtonLoading,\n },\n };\n },\n showConfidentialityToggle() {\n return [TYPE_ISSUE, TYPE_INCIDENT].includes(this.issueType) && this.canUpdateIssue;\n },\n },\n created() {\n eventHub.$on('toggle.issuable.state', this.toggleIssueState);\n },\n beforeDestroy() {\n eventHub.$off('toggle.issuable.state', this.toggleIssueState);\n },\n methods: {\n ...mapActions(['toggleStateButtonLoading']),\n ...mapActions(['updateLockedAttribute']),\n toggleIssueState() {\n if (!this.isClosed && this.getBlockedByIssues?.length) {\n this.$refs.blockedByIssuesModal.show();\n this.closeActionsDropdown();\n return;\n }\n\n this.invokeUpdateIssueMutation();\n },\n toggleReportAbuseDrawer(isOpen) {\n this.isReportAbuseDrawerOpen = isOpen;\n this.closeActionsDropdown();\n },\n invokeUpdateIssueMutation() {\n this.toggleStateButtonLoading(true);\n\n this.$apollo\n .mutate({\n mutation: updateIssueMutation,\n variables: {\n input: {\n iid: String(this.iid),\n projectPath: this.projectPath,\n stateEvent: this.isClosed ? ISSUE_STATE_EVENT_REOPEN : ISSUE_STATE_EVENT_CLOSE,\n },\n },\n })\n .then(({ data }) => {\n if (data.updateIssue.errors.length) {\n throw new Error();\n }\n\n const payload = {\n detail: {\n data: { id: this.iid },\n isClosed: !this.isClosed,\n },\n };\n\n // Dispatch event which updates open/close state, shared among the issue show page\n document.dispatchEvent(new CustomEvent(EVENT_ISSUABLE_VUE_APP_CHANGE, payload));\n })\n .catch(() => createAlert({ message: __('Error occurred while updating the issue status') }))\n .finally(() => {\n this.toggleStateButtonLoading(false);\n this.closeActionsDropdown();\n });\n },\n promoteToEpic() {\n this.toggleStateButtonLoading(true);\n\n this.$apollo\n .mutate({\n mutation: promoteToEpicMutation,\n variables: {\n input: {\n iid: String(this.iid),\n projectPath: this.projectPath,\n },\n },\n })\n .then(({ data }) => {\n if (data.promoteToEpic.errors.length) {\n throw new Error();\n }\n\n createAlert({\n message: this.$options.i18n.promoteSuccessMessage,\n variant: VARIANT_SUCCESS,\n });\n\n visitUrl(data.promoteToEpic.epic.webPath);\n })\n .catch(() => createAlert({ message: this.$options.i18n.promoteErrorMessage }))\n .finally(() => {\n this.toggleStateButtonLoading(false);\n this.closeActionsDropdown();\n });\n },\n edit() {\n issuesEventHub.$emit('open.form');\n this.closeActionsDropdown();\n },\n copyReference() {\n toast(__('Reference copied'));\n this.closeActionsDropdown();\n },\n copyEmailAddress() {\n toast(__('Email address copied'));\n this.closeActionsDropdown();\n },\n closeActionsDropdown() {\n this.$refs.issuableActionsDropdownMobile?.close();\n this.$refs.issuableActionsDropdownDesktop?.close();\n },\n showDesktopDropdown() {\n this.isDesktopDropdownVisible = true;\n },\n hideDesktopDropdown() {\n this.isDesktopDropdownVisible = false;\n },\n },\n TYPE_ISSUE,\n};\n</script>\n\n<template>\n <div\n class=\"detail-page-header-actions gl-mt-1 gl-flex gl-w-full gl-self-start sm:gl-gap-3 md:gl-w-auto\"\n >\n <div class=\"gl-w-full md:!gl-hidden\">\n <gl-disclosure-dropdown\n v-if=\"hasMobileDropdown\"\n ref=\"issuableActionsDropdownMobile\"\n toggle-class=\"gl-w-full\"\n block\n :toggle-text=\"dropdownText\"\n :auto-close=\"false\"\n data-testid=\"mobile-dropdown\"\n :loading=\"isToggleStateButtonLoading\"\n placement=\"bottom-end\"\n >\n <template v-if=\"showMovedSidebarOptions && !glFeatures.notificationsTodosButtons\">\n <sidebar-subscriptions-widget\n :iid=\"String(iid)\"\n :full-path=\"fullPath\"\n :issuable-type=\"$options.TYPE_ISSUE\"\n data-testid=\"notification-toggle\"\n />\n\n <gl-dropdown-divider />\n </template>\n\n <gl-disclosure-dropdown-item v-if=\"canUpdateIssue\" @action=\"edit\">\n <template #list-item>{{ $options.i18n.edit }}</template>\n </gl-disclosure-dropdown-item>\n <gl-disclosure-dropdown-item\n v-if=\"showToggleIssueStateButton\"\n :data-testid=\"`mobile-${testId}`\"\n @action=\"toggleIssueState\"\n >\n <template #list-item>{{ buttonText }}</template>\n </gl-disclosure-dropdown-item>\n <gl-disclosure-dropdown-item v-if=\"canCreateIssue\" :item=\"newIssueItem\" />\n <gl-disclosure-dropdown-item\n v-if=\"canPromoteToEpic\"\n :item=\"promoteToEpicItem\"\n @action=\"promoteToEpic\"\n />\n <template v-if=\"showLockIssueOption\">\n <issuable-lock-form :is-editable=\"false\" data-testid=\"lock-issue-toggle\" />\n </template>\n <header-actions-confidentiality-toggle\n v-if=\"showConfidentialityToggle\"\n @closeActionsDropdown=\"closeActionsDropdown\"\n />\n <gl-disclosure-dropdown-item\n :data-clipboard-text=\"issuableReference\"\n class=\"js-copy-reference\"\n data-testid=\"copy-reference\"\n @action=\"copyReference\"\n ><template #list-item>{{\n $options.i18n.copyReferenceText\n }}</template></gl-disclosure-dropdown-item\n >\n <gl-disclosure-dropdown-item\n v-if=\"issuableEmailAddress && showMovedSidebarOptions\"\n :data-clipboard-text=\"issuableEmailAddress\"\n data-testid=\"copy-email\"\n @action=\"copyEmailAddress\"\n ><template #list-item>{{ copyMailAddressText }}</template></gl-disclosure-dropdown-item\n >\n <gl-disclosure-dropdown-item\n v-if=\"canReportSpam\"\n :item=\"submitSpamItem\"\n data-method=\"post\"\n rel=\"nofollow\"\n />\n <template v-if=\"canDestroyIssue\">\n <gl-dropdown-divider />\n <gl-disclosure-dropdown-item\n v-gl-modal=\"$options.deleteModalId\"\n @action=\"track('click_dropdown')\"\n >\n <template #list-item>\n <span class=\"gl-text-red-500\">{{ deleteButtonText }}</span>\n </template>\n </gl-disclosure-dropdown-item>\n </template>\n <gl-disclosure-dropdown-item\n v-if=\"!isIssueAuthor && isUserSignedIn\"\n data-testid=\"report-abuse-item\"\n @action=\"toggleReportAbuseDrawer(true)\"\n >\n <template #list-item>{{ $options.i18n.reportAbuse }}</template>\n </gl-disclosure-dropdown-item>\n </gl-disclosure-dropdown>\n </div>\n\n <gl-button\n v-if=\"canUpdateIssue\"\n v-gl-tooltip.viewport.html\n :title=\"editTooltip\"\n :aria-label=\"$options.i18n.editTitleAndDescription\"\n :aria-keyshortcuts=\"editShortcutKey\"\n class=\"js-issuable-edit !gl-hidden md:!gl-block\"\n data-testid=\"edit-button\"\n @click=\"edit\"\n >\n {{ $options.i18n.edit }}\n </gl-button>\n\n <gl-disclosure-dropdown\n v-if=\"hasDesktopDropdown\"\n id=\"new-actions-header-dropdown\"\n ref=\"issuableActionsDropdownDesktop\"\n v-gl-tooltip=\"showDropdownTooltip\"\n class=\"gl-hidden md:!gl-inline-flex\"\n icon=\"ellipsis_v\"\n category=\"tertiary\"\n :toggle-text=\"dropdownText\"\n text-sr-only\n :title=\"dropdownText\"\n :aria-label=\"dropdownText\"\n :auto-close=\"false\"\n data-testid=\"desktop-dropdown\"\n no-caret\n @shown=\"showDesktopDropdown\"\n @hidden=\"hideDesktopDropdown\"\n >\n <template v-if=\"showMovedSidebarOptions && !glFeatures.notificationsTodosButtons\">\n <sidebar-subscriptions-widget\n :iid=\"String(iid)\"\n :full-path=\"fullPath\"\n :issuable-type=\"$options.TYPE_ISSUE\"\n data-testid=\"notification-toggle\"\n />\n <gl-dropdown-divider />\n </template>\n <gl-disclosure-dropdown-item\n v-if=\"showToggleIssueStateButton\"\n data-testid=\"toggle-issue-state-button\"\n @action=\"toggleIssueState\"\n >\n <template #list-item>{{ buttonText }}</template>\n </gl-disclosure-dropdown-item>\n <gl-disclosure-dropdown-item v-if=\"canCreateIssue && isUserSignedIn\" :item=\"newIssueItem\" />\n <gl-disclosure-dropdown-item\n v-if=\"canPromoteToEpic\"\n :item=\"promoteToEpicItem\"\n data-testid=\"promote-button\"\n @action=\"promoteToEpic\"\n />\n <template v-if=\"showLockIssueOption\">\n <issuable-lock-form :is-editable=\"false\" data-testid=\"lock-issue-toggle\" />\n </template>\n <header-actions-confidentiality-toggle\n v-if=\"showConfidentialityToggle\"\n @closeActionsDropdown=\"closeActionsDropdown\"\n />\n <gl-disclosure-dropdown-item\n :data-clipboard-text=\"issuableReference\"\n class=\"js-copy-reference\"\n data-testid=\"copy-reference\"\n @action=\"copyReference\"\n ><template #list-item>{{\n $options.i18n.copyReferenceText\n }}</template></gl-disclosure-dropdown-item\n >\n <gl-disclosure-dropdown-item\n v-if=\"issuableEmailAddress && showMovedSidebarOptions\"\n :data-clipboard-text=\"issuableEmailAddress\"\n data-testid=\"copy-email\"\n @action=\"copyEmailAddress\"\n ><template #list-item>{{ copyMailAddressText }}</template></gl-disclosure-dropdown-item\n >\n <gl-dropdown-divider v-if=\"canDestroyIssue || canReportSpam || !isIssueAuthor\" />\n <gl-disclosure-dropdown-item\n v-if=\"canReportSpam\"\n :item=\"submitSpamItem\"\n data-method=\"post\"\n rel=\"nofollow\"\n />\n <gl-disclosure-dropdown-item\n v-if=\"!isIssueAuthor && isUserSignedIn\"\n data-testid=\"report-abuse-item\"\n @action=\"toggleReportAbuseDrawer(true)\"\n >\n <template #list-item>{{ $options.i18n.reportAbuse }}</template>\n </gl-disclosure-dropdown-item>\n <template v-if=\"canDestroyIssue\">\n <gl-disclosure-dropdown-item\n v-gl-modal=\"$options.deleteModalId\"\n data-testid=\"delete-issue-button\"\n @action=\"track('click_dropdown')\"\n >\n <template #list-item>\n <span class=\"gl-text-danger\">\n {{ deleteButtonText }}\n </span>\n </template>\n </gl-disclosure-dropdown-item>\n </template>\n </gl-disclosure-dropdown>\n\n <gl-modal\n ref=\"blockedByIssuesModal\"\n modal-id=\"blocked-by-issues-modal\"\n :action-cancel=\"$options.actionCancel\"\n :action-primary=\"$options.actionPrimary\"\n :title=\"__('Are you sure you want to close this blocked issue?')\"\n @primary=\"invokeUpdateIssueMutation\"\n >\n <p>{{ __('This issue is currently blocked by the following issues:') }}</p>\n <ul>\n <li v-for=\"issue in getBlockedByIssues\" :key=\"issue.iid\">\n <gl-link :href=\"issue.web_url\">#{{ issue.iid }}</gl-link>\n </li>\n </ul>\n </gl-modal>\n\n <delete-issue-modal\n :issue-path=\"issuePath\"\n :issue-type=\"issueType\"\n :modal-id=\"$options.deleteModalId\"\n :title=\"deleteButtonText\"\n />\n\n <!-- IMPORTANT: show this component lazily because it causes layout thrashing -->\n <!-- https://gitlab.com/gitlab-org/gitlab/-/issues/331172#note_1269378396 -->\n <abuse-category-selector\n v-if=\"isReportAbuseDrawerOpen\"\n :reported-user-id=\"reportedUserId\"\n :reported-from-url=\"reportedFromUrl\"\n :show-drawer=\"isReportAbuseDrawerOpen\"\n @close-drawer=\"toggleReportAbuseDrawer(false)\"\n />\n </div>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header_actions.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header_actions.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./header_actions.vue?vue&type=template&id=64f7a40f\"\nimport script from \"./header_actions.vue?vue&type=script&lang=js\"\nexport * from \"./header_actions.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"detail-page-header-actions gl-mt-1 gl-flex gl-w-full gl-self-start sm:gl-gap-3 md:gl-w-auto\"},[_c('div',{staticClass:\"gl-w-full md:!gl-hidden\"},[(_vm.hasMobileDropdown)?_c('gl-disclosure-dropdown',{ref:\"issuableActionsDropdownMobile\",attrs:{\"toggle-class\":\"gl-w-full\",\"block\":\"\",\"toggle-text\":_vm.dropdownText,\"auto-close\":false,\"data-testid\":\"mobile-dropdown\",\"loading\":_vm.isToggleStateButtonLoading,\"placement\":\"bottom-end\"}},[(_vm.showMovedSidebarOptions && !_vm.glFeatures.notificationsTodosButtons)?[_c('sidebar-subscriptions-widget',{attrs:{\"iid\":String(_vm.iid),\"full-path\":_vm.fullPath,\"issuable-type\":_vm.$options.TYPE_ISSUE,\"data-testid\":\"notification-toggle\"}}),_vm._v(\" \"),_c('gl-dropdown-divider')]:_vm._e(),_vm._v(\" \"),(_vm.canUpdateIssue)?_c('gl-disclosure-dropdown-item',{on:{\"action\":_vm.edit},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(_vm._s(_vm.$options.i18n.edit))]},proxy:true}],null,false,1675257228)}):_vm._e(),_vm._v(\" \"),(_vm.showToggleIssueStateButton)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":`mobile-${_vm.testId}`},on:{\"action\":_vm.toggleIssueState},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(_vm._s(_vm.buttonText))]},proxy:true}],null,false,3197841089)}):_vm._e(),_vm._v(\" \"),(_vm.canCreateIssue)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.newIssueItem}}):_vm._e(),_vm._v(\" \"),(_vm.canPromoteToEpic)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.promoteToEpicItem},on:{\"action\":_vm.promoteToEpic}}):_vm._e(),_vm._v(\" \"),(_vm.showLockIssueOption)?[_c('issuable-lock-form',{attrs:{\"is-editable\":false,\"data-testid\":\"lock-issue-toggle\"}})]:_vm._e(),_vm._v(\" \"),(_vm.showConfidentialityToggle)?_c('header-actions-confidentiality-toggle',{on:{\"closeActionsDropdown\":_vm.closeActionsDropdown}}):_vm._e(),_vm._v(\" \"),_c('gl-disclosure-dropdown-item',{staticClass:\"js-copy-reference\",attrs:{\"data-clipboard-text\":_vm.issuableReference,\"data-testid\":\"copy-reference\"},on:{\"action\":_vm.copyReference},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(_vm._s(_vm.$options.i18n.copyReferenceText))]},proxy:true}],null,false,1322238531)}),_vm._v(\" \"),(_vm.issuableEmailAddress && _vm.showMovedSidebarOptions)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-clipboard-text\":_vm.issuableEmailAddress,\"data-testid\":\"copy-email\"},on:{\"action\":_vm.copyEmailAddress},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(_vm._s(_vm.copyMailAddressText))]},proxy:true}],null,false,3371067373)}):_vm._e(),_vm._v(\" \"),(_vm.canReportSpam)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.submitSpamItem,\"data-method\":\"post\",\"rel\":\"nofollow\"}}):_vm._e(),_vm._v(\" \"),(_vm.canDestroyIssue)?[_c('gl-dropdown-divider'),_vm._v(\" \"),_c('gl-disclosure-dropdown-item',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.$options.deleteModalId),expression:\"$options.deleteModalId\"}],on:{\"action\":function($event){return _vm.track('click_dropdown')}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('span',{staticClass:\"gl-text-red-500\"},[_vm._v(_vm._s(_vm.deleteButtonText))])]},proxy:true}],null,false,4271360056)})]:_vm._e(),_vm._v(\" \"),(!_vm.isIssueAuthor && _vm.isUserSignedIn)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"report-abuse-item\"},on:{\"action\":function($event){return _vm.toggleReportAbuseDrawer(true)}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(_vm._s(_vm.$options.i18n.reportAbuse))]},proxy:true}],null,false,3173336638)}):_vm._e()],2):_vm._e()],1),_vm._v(\" \"),(_vm.canUpdateIssue)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.html\",modifiers:{\"viewport\":true,\"html\":true}}],staticClass:\"js-issuable-edit !gl-hidden md:!gl-block\",attrs:{\"title\":_vm.editTooltip,\"aria-label\":_vm.$options.i18n.editTitleAndDescription,\"aria-keyshortcuts\":_vm.editShortcutKey,\"data-testid\":\"edit-button\"},on:{\"click\":_vm.edit}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.edit)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.hasDesktopDropdown)?_c('gl-disclosure-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.showDropdownTooltip),expression:\"showDropdownTooltip\"}],ref:\"issuableActionsDropdownDesktop\",staticClass:\"gl-hidden md:!gl-inline-flex\",attrs:{\"id\":\"new-actions-header-dropdown\",\"icon\":\"ellipsis_v\",\"category\":\"tertiary\",\"toggle-text\":_vm.dropdownText,\"text-sr-only\":\"\",\"title\":_vm.dropdownText,\"aria-label\":_vm.dropdownText,\"auto-close\":false,\"data-testid\":\"desktop-dropdown\",\"no-caret\":\"\"},on:{\"shown\":_vm.showDesktopDropdown,\"hidden\":_vm.hideDesktopDropdown}},[(_vm.showMovedSidebarOptions && !_vm.glFeatures.notificationsTodosButtons)?[_c('sidebar-subscriptions-widget',{attrs:{\"iid\":String(_vm.iid),\"full-path\":_vm.fullPath,\"issuable-type\":_vm.$options.TYPE_ISSUE,\"data-testid\":\"notification-toggle\"}}),_vm._v(\" \"),_c('gl-dropdown-divider')]:_vm._e(),_vm._v(\" \"),(_vm.showToggleIssueStateButton)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"toggle-issue-state-button\"},on:{\"action\":_vm.toggleIssueState},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(_vm._s(_vm.buttonText))]},proxy:true}],null,false,3197841089)}):_vm._e(),_vm._v(\" \"),(_vm.canCreateIssue && _vm.isUserSignedIn)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.newIssueItem}}):_vm._e(),_vm._v(\" \"),(_vm.canPromoteToEpic)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.promoteToEpicItem,\"data-testid\":\"promote-button\"},on:{\"action\":_vm.promoteToEpic}}):_vm._e(),_vm._v(\" \"),(_vm.showLockIssueOption)?[_c('issuable-lock-form',{attrs:{\"is-editable\":false,\"data-testid\":\"lock-issue-toggle\"}})]:_vm._e(),_vm._v(\" \"),(_vm.showConfidentialityToggle)?_c('header-actions-confidentiality-toggle',{on:{\"closeActionsDropdown\":_vm.closeActionsDropdown}}):_vm._e(),_vm._v(\" \"),_c('gl-disclosure-dropdown-item',{staticClass:\"js-copy-reference\",attrs:{\"data-clipboard-text\":_vm.issuableReference,\"data-testid\":\"copy-reference\"},on:{\"action\":_vm.copyReference},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(_vm._s(_vm.$options.i18n.copyReferenceText))]},proxy:true}],null,false,1322238531)}),_vm._v(\" \"),(_vm.issuableEmailAddress && _vm.showMovedSidebarOptions)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-clipboard-text\":_vm.issuableEmailAddress,\"data-testid\":\"copy-email\"},on:{\"action\":_vm.copyEmailAddress},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(_vm._s(_vm.copyMailAddressText))]},proxy:true}],null,false,3371067373)}):_vm._e(),_vm._v(\" \"),(_vm.canDestroyIssue || _vm.canReportSpam || !_vm.isIssueAuthor)?_c('gl-dropdown-divider'):_vm._e(),_vm._v(\" \"),(_vm.canReportSpam)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.submitSpamItem,\"data-method\":\"post\",\"rel\":\"nofollow\"}}):_vm._e(),_vm._v(\" \"),(!_vm.isIssueAuthor && _vm.isUserSignedIn)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"report-abuse-item\"},on:{\"action\":function($event){return _vm.toggleReportAbuseDrawer(true)}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(_vm._s(_vm.$options.i18n.reportAbuse))]},proxy:true}],null,false,3173336638)}):_vm._e(),_vm._v(\" \"),(_vm.canDestroyIssue)?[_c('gl-disclosure-dropdown-item',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.$options.deleteModalId),expression:\"$options.deleteModalId\"}],attrs:{\"data-testid\":\"delete-issue-button\"},on:{\"action\":function($event){return _vm.track('click_dropdown')}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('span',{staticClass:\"gl-text-danger\"},[_vm._v(\"\\n \"+_vm._s(_vm.deleteButtonText)+\"\\n \")])]},proxy:true}],null,false,3090695912)})]:_vm._e()],2):_vm._e(),_vm._v(\" \"),_c('gl-modal',{ref:\"blockedByIssuesModal\",attrs:{\"modal-id\":\"blocked-by-issues-modal\",\"action-cancel\":_vm.$options.actionCancel,\"action-primary\":_vm.$options.actionPrimary,\"title\":_vm.__('Are you sure you want to close this blocked issue?')},on:{\"primary\":_vm.invokeUpdateIssueMutation}},[_c('p',[_vm._v(_vm._s(_vm.__('This issue is currently blocked by the following issues:')))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.getBlockedByIssues),function(issue){return _c('li',{key:issue.iid},[_c('gl-link',{attrs:{\"href\":issue.web_url}},[_vm._v(\"#\"+_vm._s(issue.iid))])],1)}),0)]),_vm._v(\" \"),_c('delete-issue-modal',{attrs:{\"issue-path\":_vm.issuePath,\"issue-type\":_vm.issueType,\"modal-id\":_vm.$options.deleteModalId,\"title\":_vm.deleteButtonText}}),_vm._v(\" \"),(_vm.isReportAbuseDrawerOpen)?_c('abuse-category-selector',{attrs:{\"reported-user-id\":_vm.reportedUserId,\"reported-from-url\":_vm.reportedFromUrl,\"show-drawer\":_vm.isReportAbuseDrawerOpen},on:{\"close-drawer\":function($event){return _vm.toggleReportAbuseDrawer(false)}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issue_header.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issue_header.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink, GlSprintf } from '@gitlab/ui';\nimport { STATUS_OPEN, STATUS_REOPENED, WORKSPACE_PROJECT } from '~/issues/constants';\nimport { __, s__ } from '~/locale';\nimport IssuableHeader from '~/vue_shared/issuable/show/components/issuable_header.vue';\n\nexport default {\n WORKSPACE_PROJECT,\n components: {\n GlLink,\n GlSprintf,\n IssuableHeader,\n },\n props: {\n author: {\n type: Object,\n required: true,\n },\n confidential: {\n type: Boolean,\n required: true,\n },\n createdAt: {\n type: String,\n required: true,\n },\n duplicatedToIssueUrl: {\n type: String,\n required: true,\n },\n isFirstContribution: {\n type: Boolean,\n required: true,\n },\n isHidden: {\n type: Boolean,\n required: true,\n },\n isImported: {\n type: Boolean,\n required: true,\n },\n isLocked: {\n type: Boolean,\n required: true,\n },\n issuableState: {\n type: String,\n required: true,\n },\n issuableType: {\n type: String,\n required: true,\n },\n movedToIssueUrl: {\n type: String,\n required: true,\n },\n promotedToEpicUrl: {\n type: String,\n required: true,\n },\n serviceDeskReplyTo: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n closedStatusLink() {\n return this.duplicatedToIssueUrl || this.movedToIssueUrl || this.promotedToEpicUrl;\n },\n closedStatusText() {\n if (this.duplicatedToIssueUrl) {\n return s__('IssuableStatus|duplicated');\n }\n if (this.movedToIssueUrl) {\n return s__('IssuableStatus|moved');\n }\n if (this.promotedToEpicUrl) {\n return s__('IssuableStatus|promoted');\n }\n return '';\n },\n isOpen() {\n return this.issuableState === STATUS_OPEN || this.issuableState === STATUS_REOPENED;\n },\n statusIcon() {\n return this.isOpen ? 'issue-open-m' : 'issue-close';\n },\n statusText() {\n if (this.isOpen) {\n return __('Open');\n }\n if (this.closedStatusLink) {\n return s__('IssuableStatus|Closed (%{link})');\n }\n return s__('IssuableStatus|Closed');\n },\n },\n};\n</script>\n\n<template>\n <issuable-header\n :author=\"author\"\n :blocked=\"isLocked\"\n :confidential=\"confidential\"\n :created-at=\"createdAt\"\n :is-first-contribution=\"isFirstContribution\"\n :is-hidden=\"isHidden\"\n :is-imported=\"isImported\"\n :issuable-state=\"issuableState\"\n :issuable-type=\"issuableType\"\n :service-desk-reply-to=\"serviceDeskReplyTo\"\n show-work-item-type-icon\n :status-icon=\"statusIcon\"\n :workspace-type=\"$options.WORKSPACE_PROJECT\"\n >\n <template #status-badge>\n <gl-sprintf v-if=\"closedStatusLink\" :message=\"statusText\">\n <template #link>\n <gl-link class=\"!gl-text-inherit gl-underline\" :href=\"closedStatusLink\">{{\n closedStatusText\n }}</gl-link>\n </template>\n </gl-sprintf>\n <template v-else>{{ statusText }}</template>\n </template>\n </issuable-header>\n</template>\n","import { render, staticRenderFns } from \"./issue_header.vue?vue&type=template&id=11fd72b0\"\nimport script from \"./issue_header.vue?vue&type=script&lang=js\"\nexport * from \"./issue_header.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('issuable-header',{attrs:{\"author\":_vm.author,\"blocked\":_vm.isLocked,\"confidential\":_vm.confidential,\"created-at\":_vm.createdAt,\"is-first-contribution\":_vm.isFirstContribution,\"is-hidden\":_vm.isHidden,\"is-imported\":_vm.isImported,\"issuable-state\":_vm.issuableState,\"issuable-type\":_vm.issuableType,\"service-desk-reply-to\":_vm.serviceDeskReplyTo,\"show-work-item-type-icon\":\"\",\"status-icon\":_vm.statusIcon,\"workspace-type\":_vm.$options.WORKSPACE_PROJECT},scopedSlots:_vm._u([{key:\"status-badge\",fn:function(){return [(_vm.closedStatusLink)?_c('gl-sprintf',{attrs:{\"message\":_vm.statusText},scopedSlots:_vm._u([{key:\"link\",fn:function(){return [_c('gl-link',{staticClass:\"!gl-text-inherit gl-underline\",attrs:{\"href\":_vm.closedStatusLink}},[_vm._v(_vm._s(_vm.closedStatusText))])]},proxy:true}],null,false,3728443003)}):[_vm._v(_vm._s(_vm.statusText))]]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pinned_links.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pinned_links.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { STATUS_PAGE_PUBLISHED, JOIN_ZOOM_MEETING } from '../constants';\n\nexport default {\n components: {\n GlButton,\n },\n props: {\n zoomMeetingUrl: {\n type: String,\n required: false,\n default: '',\n },\n publishedIncidentUrl: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n pinnedLinks() {\n const links = [];\n if (this.publishedIncidentUrl) {\n links.push({\n id: 'publishedIncidentUrl',\n url: this.publishedIncidentUrl,\n text: STATUS_PAGE_PUBLISHED,\n icon: 'tanuki',\n });\n }\n if (this.zoomMeetingUrl) {\n links.push({\n id: 'zoomMeetingUrl',\n url: this.zoomMeetingUrl,\n text: JOIN_ZOOM_MEETING,\n icon: 'brand-zoom',\n });\n }\n\n return links;\n },\n },\n methods: {\n needsPaddingClass(i) {\n return i < this.pinnedLinks.length - 1;\n },\n },\n};\n</script>\n\n<template>\n <div v-if=\"pinnedLinks && pinnedLinks.length\" class=\"gl-flex gl-justify-start\">\n <template v-for=\"(link, i) in pinnedLinks\">\n <div v-if=\"link.url\" :key=\"link.id\" :class=\"{ 'gl-pr-3': needsPaddingClass(i) }\">\n <gl-button\n :href=\"link.url\"\n target=\"_blank\"\n :icon=\"link.icon\"\n size=\"small\"\n class=\"gl-mb-5 gl-font-bold\"\n :data-testid=\"link.id\"\n >{{ link.text }}</gl-button\n >\n </div>\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./pinned_links.vue?vue&type=template&id=dee806a0\"\nimport script from \"./pinned_links.vue?vue&type=script&lang=js\"\nexport * from \"./pinned_links.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.pinnedLinks && _vm.pinnedLinks.length)?_c('div',{staticClass:\"gl-flex gl-justify-start\"},[_vm._l((_vm.pinnedLinks),function(link,i){return [(link.url)?_c('div',{key:link.id,class:{ 'gl-pr-3': _vm.needsPaddingClass(i) }},[_c('gl-button',{staticClass:\"gl-mb-5 gl-font-bold\",attrs:{\"href\":link.url,\"target\":\"_blank\",\"icon\":link.icon,\"size\":\"small\",\"data-testid\":link.id}},[_vm._v(_vm._s(link.text))])],1):_vm._e()]})],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sticky_header.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sticky_header.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlIntersectionObserver, GlLink, GlSprintf } from '@gitlab/ui';\nimport HiddenBadge from '~/issuable/components/hidden_badge.vue';\nimport LockedBadge from '~/issuable/components/locked_badge.vue';\nimport { STATUS_OPEN, STATUS_REOPENED, STATUS_CLOSED, WORKSPACE_PROJECT } from '~/issues/constants';\nimport ConfidentialityBadge from '~/vue_shared/components/confidentiality_badge.vue';\nimport ImportedBadge from '~/vue_shared/components/imported_badge.vue';\nimport { __, s__ } from '~/locale';\n\nexport default {\n WORKSPACE_PROJECT,\n components: {\n ConfidentialityBadge,\n GlBadge,\n GlIntersectionObserver,\n GlLink,\n GlSprintf,\n HiddenBadge,\n ImportedBadge,\n LockedBadge,\n },\n props: {\n isConfidential: {\n type: Boolean,\n required: false,\n default: false,\n },\n isHidden: {\n type: Boolean,\n required: false,\n default: false,\n },\n isImported: {\n type: Boolean,\n required: false,\n default: false,\n },\n isLocked: {\n type: Boolean,\n required: false,\n default: false,\n },\n issuableState: {\n type: String,\n required: true,\n },\n issuableType: {\n type: String,\n required: true,\n },\n show: {\n type: Boolean,\n required: false,\n default: false,\n },\n title: {\n type: String,\n required: true,\n },\n duplicatedToIssueUrl: {\n type: String,\n required: true,\n },\n movedToIssueUrl: {\n type: String,\n required: true,\n },\n promotedToEpicUrl: {\n type: String,\n required: true,\n },\n },\n computed: {\n isOpen() {\n return this.issuableState === STATUS_OPEN || this.issuableState === STATUS_REOPENED;\n },\n isClosed() {\n return this.issuableState === STATUS_CLOSED;\n },\n statusIcon() {\n return this.isClosed ? 'issue-close' : 'issue-open-m';\n },\n statusText() {\n if (this.isOpen) {\n return __('Open');\n }\n if (this.closedStatusLink) {\n return s__('IssuableStatus|Closed (%{link})');\n }\n return s__('IssuableStatus|Closed');\n },\n closedStatusLink() {\n return this.duplicatedToIssueUrl || this.movedToIssueUrl || this.promotedToEpicUrl;\n },\n closedStatusText() {\n if (this.duplicatedToIssueUrl) {\n return s__('IssuableStatus|duplicated');\n }\n if (this.movedToIssueUrl) {\n return s__('IssuableStatus|moved');\n }\n if (this.promotedToEpicUrl) {\n return s__('IssuableStatus|promoted');\n }\n return '';\n },\n statusVariant() {\n return this.isClosed ? 'info' : 'success';\n },\n },\n};\n</script>\n\n<template>\n <gl-intersection-observer @appear=\"$emit('hide')\" @disappear=\"$emit('show')\">\n <transition name=\"issuable-header-slide\">\n <div\n v-if=\"show\"\n class=\"issue-sticky-header gl-border-b gl-fixed gl-z-3 gl-bg-default gl-py-3\"\n data-testid=\"issue-sticky-header\"\n >\n <div class=\"issue-sticky-header-text gl-mx-auto gl-flex gl-items-center gl-gap-2\">\n <gl-badge :variant=\"statusVariant\" :icon=\"statusIcon\" class=\"gl-shrink-0\">\n <gl-sprintf v-if=\"closedStatusLink\" :message=\"statusText\">\n <template #link>\n <gl-link\n data-testid=\"sticky-header-closed-status-link\"\n class=\"!gl-text-inherit gl-underline\"\n :href=\"closedStatusLink\"\n >{{ closedStatusText }}</gl-link\n >\n </template>\n </gl-sprintf>\n <template v-else>{{ statusText }}</template>\n </gl-badge>\n <confidentiality-badge\n v-if=\"isConfidential\"\n :issuable-type=\"issuableType\"\n :workspace-type=\"$options.WORKSPACE_PROJECT\"\n />\n <locked-badge v-if=\"isLocked\" :issuable-type=\"issuableType\" />\n <hidden-badge v-if=\"isHidden\" :issuable-type=\"issuableType\" />\n <imported-badge v-if=\"isImported\" :importable-type=\"issuableType\" />\n\n <gl-link class=\"gl-truncate gl-font-bold gl-text-default\" href=\"#top\" :title=\"title\">\n {{ title }}\n </gl-link>\n </div>\n </div>\n </transition>\n </gl-intersection-observer>\n</template>\n","import { render, staticRenderFns } from \"./sticky_header.vue?vue&type=template&id=0e6b0ada\"\nimport script from \"./sticky_header.vue?vue&type=script&lang=js\"\nexport * from \"./sticky_header.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-intersection-observer',{on:{\"appear\":function($event){return _vm.$emit('hide')},\"disappear\":function($event){return _vm.$emit('show')}}},[_c('transition',{attrs:{\"name\":\"issuable-header-slide\"}},[(_vm.show)?_c('div',{staticClass:\"issue-sticky-header gl-border-b gl-fixed gl-z-3 gl-bg-default gl-py-3\",attrs:{\"data-testid\":\"issue-sticky-header\"}},[_c('div',{staticClass:\"issue-sticky-header-text gl-mx-auto gl-flex gl-items-center gl-gap-2\"},[_c('gl-badge',{staticClass:\"gl-shrink-0\",attrs:{\"variant\":_vm.statusVariant,\"icon\":_vm.statusIcon}},[(_vm.closedStatusLink)?_c('gl-sprintf',{attrs:{\"message\":_vm.statusText},scopedSlots:_vm._u([{key:\"link\",fn:function(){return [_c('gl-link',{staticClass:\"!gl-text-inherit gl-underline\",attrs:{\"data-testid\":\"sticky-header-closed-status-link\",\"href\":_vm.closedStatusLink}},[_vm._v(_vm._s(_vm.closedStatusText))])]},proxy:true}],null,false,836977613)}):[_vm._v(_vm._s(_vm.statusText))]],2),_vm._v(\" \"),(_vm.isConfidential)?_c('confidentiality-badge',{attrs:{\"issuable-type\":_vm.issuableType,\"workspace-type\":_vm.$options.WORKSPACE_PROJECT}}):_vm._e(),_vm._v(\" \"),(_vm.isLocked)?_c('locked-badge',{attrs:{\"issuable-type\":_vm.issuableType}}):_vm._e(),_vm._v(\" \"),(_vm.isHidden)?_c('hidden-badge',{attrs:{\"issuable-type\":_vm.issuableType}}):_vm._e(),_vm._v(\" \"),(_vm.isImported)?_c('imported-badge',{attrs:{\"importable-type\":_vm.issuableType}}):_vm._e(),_vm._v(\" \"),_c('gl-link',{staticClass:\"gl-truncate gl-font-bold gl-text-default\",attrs:{\"href\":\"#top\",\"title\":_vm.title}},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")])],1)]):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./title.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./title.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlTooltipDirective } from '@gitlab/ui';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport animateMixin from '../mixins/animate';\n\nexport default {\n directives: {\n GlTooltip: GlTooltipDirective,\n SafeHtml,\n },\n mixins: [animateMixin],\n props: {\n issuableRef: {\n type: [String, Number],\n required: true,\n },\n canUpdate: {\n required: false,\n type: Boolean,\n default: false,\n },\n titleHtml: {\n type: String,\n required: true,\n },\n titleText: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n preAnimation: false,\n pulseAnimation: false,\n titleEl: document.querySelector('title'),\n };\n },\n watch: {\n titleHtml() {\n this.setPageTitle();\n this.animateChange();\n },\n },\n methods: {\n setPageTitle() {\n const currentPageTitleScope = this.titleEl.innerText.split('·');\n currentPageTitleScope[0] = `${this.titleText} (${this.issuableRef}) `;\n this.titleEl.textContent = currentPageTitleScope.join('·');\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-flex gl-flex-col gl-items-start gl-gap-3 gl-pt-3 md:gl-flex-row\">\n <h1\n v-safe-html=\"titleHtml\"\n :class=\"{\n 'issue-realtime-pre-pulse': preAnimation,\n 'issue-realtime-trigger-pulse': pulseAnimation,\n }\"\n class=\"title gl-heading-1 !gl-m-0\"\n data-testid=\"issue-title\"\n dir=\"auto\"\n ></h1>\n <slot name=\"actions\"></slot>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./title.vue?vue&type=template&id=293da349\"\nimport script from \"./title.vue?vue&type=script&lang=js\"\nexport * from \"./title.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-flex gl-flex-col gl-items-start gl-gap-3 gl-pt-3 md:gl-flex-row\"},[_c('h1',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.titleHtml),expression:\"titleHtml\"}],staticClass:\"title gl-heading-1 !gl-m-0\",class:{\n 'issue-realtime-pre-pulse': _vm.preAnimation,\n 'issue-realtime-trigger-pulse': _vm.pulseAnimation,\n },attrs:{\"data-testid\":\"issue-title\",\"dir\":\"auto\"}}),_vm._v(\" \"),_vm._t(\"actions\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport Visibility from 'visibilityjs';\nimport { createAlert } from '~/alert';\nimport { TYPE_EPIC, TYPE_INCIDENT, TYPE_ISSUE } from '~/issues/constants';\nimport updateDescription from '~/issues/show/utils/update_description';\nimport { sanitize } from '~/lib/dompurify';\nimport { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';\nimport Poll from '~/lib/utils/poll';\nimport { detectAndConfirmSensitiveTokens, CONTENT_TYPE } from '~/lib/utils/secret_detection';\nimport { visitUrl } from '~/lib/utils/url_utility';\nimport { __, sprintf } from '~/locale';\nimport { ISSUE_TYPE_PATH, INCIDENT_TYPE_PATH, POLLING_DELAY } from '../constants';\nimport eventHub from '../event_hub';\nimport getIssueStateQuery from '../queries/get_issue_state.query.graphql';\nimport Service from '../services/index';\nimport DescriptionComponent from './description.vue';\nimport EditedComponent from './edited.vue';\nimport FormComponent from './form.vue';\nimport HeaderActions from './header_actions.vue';\nimport IssueHeader from './issue_header.vue';\nimport PinnedLinks from './pinned_links.vue';\nimport StickyHeader from './sticky_header.vue';\nimport TitleComponent from './title.vue';\n\nconst STICKY_HEADER_VISIBLE_CLASS = 'issuable-sticky-header-visible';\n\nfunction stripClientState(html) {\n // remove all attributes of details tags\n return html.replace(/<details[^>]*>/g, '<details>');\n}\n\nfunction hasDescriptionChanged(oldDesc, newDesc) {\n return stripClientState(oldDesc) !== stripClientState(newDesc);\n}\n\nexport default {\n components: {\n HeaderActions,\n IssueHeader,\n TitleComponent,\n EditedComponent,\n FormComponent,\n PinnedLinks,\n StickyHeader,\n },\n props: {\n author: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n endpoint: {\n required: true,\n type: String,\n },\n updateEndpoint: {\n required: true,\n type: String,\n },\n canUpdate: {\n required: true,\n type: Boolean,\n },\n createdAt: {\n type: String,\n required: false,\n default: '',\n },\n enableAutocomplete: {\n type: Boolean,\n required: false,\n default: true,\n },\n zoomMeetingUrl: {\n type: String,\n required: false,\n default: '',\n },\n publishedIncidentUrl: {\n type: String,\n required: false,\n default: '',\n },\n issuableRef: {\n type: String,\n required: true,\n },\n issuableStatus: {\n type: String,\n required: false,\n default: '',\n },\n initialTitleHtml: {\n type: String,\n required: true,\n },\n initialTitleText: {\n type: String,\n required: true,\n },\n initialDescriptionHtml: {\n type: String,\n required: false,\n default: '',\n },\n initialDescriptionText: {\n type: String,\n required: false,\n default: '',\n },\n initialTaskCompletionStatus: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n updatedAt: {\n type: String,\n required: false,\n default: '',\n },\n updatedByName: {\n type: String,\n required: false,\n default: '',\n },\n updatedByPath: {\n type: String,\n required: false,\n default: '',\n },\n issuableTemplateNamesPath: {\n type: String,\n required: false,\n default: '',\n },\n markdownPreviewPath: {\n type: String,\n required: true,\n },\n markdownDocsPath: {\n type: String,\n required: true,\n },\n projectPath: {\n type: String,\n required: true,\n },\n projectId: {\n type: Number,\n required: true,\n },\n projectNamespace: {\n type: String,\n required: true,\n },\n isConfidential: {\n type: Boolean,\n required: false,\n default: false,\n },\n isImported: {\n type: Boolean,\n required: false,\n default: false,\n },\n isLocked: {\n type: Boolean,\n required: false,\n default: false,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n canAttachFile: {\n type: Boolean,\n required: false,\n default: true,\n },\n lockVersion: {\n type: Number,\n required: false,\n default: 0,\n },\n descriptionComponent: {\n type: Object,\n required: false,\n default: () => {\n return DescriptionComponent;\n },\n },\n showTitleBorder: {\n type: Boolean,\n required: false,\n default: true,\n },\n isHidden: {\n type: Boolean,\n required: false,\n default: false,\n },\n issueId: {\n type: String,\n required: false,\n default: null,\n },\n issueIid: {\n type: String,\n required: false,\n default: null,\n },\n duplicatedToIssueUrl: {\n type: String,\n required: false,\n default: '',\n },\n movedToIssueUrl: {\n type: String,\n required: false,\n default: '',\n },\n promotedToEpicUrl: {\n type: String,\n required: false,\n default: '',\n },\n isFirstContribution: {\n type: Boolean,\n required: false,\n default: false,\n },\n serviceDeskReplyTo: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n formState: {\n title: '',\n description: '',\n lockedWarningVisible: false,\n updateLoading: false,\n lock_version: 0,\n issuableTemplates: {},\n },\n state: {\n titleHtml: this.initialTitleHtml,\n titleText: this.initialTitleText,\n descriptionHtml: this.initialDescriptionHtml,\n descriptionText: this.initialDescriptionText,\n updatedAt: this.updatedAt,\n updatedByName: this.updatedByName,\n updatedByPath: this.updatedByPath,\n taskCompletionStatus: this.initialTaskCompletionStatus,\n lock_version: this.lockVersion,\n },\n showForm: false,\n templatesRequested: false,\n isStickyHeaderShowing: false,\n issueState: {},\n };\n },\n apollo: {\n issueState: {\n query: getIssueStateQuery,\n },\n },\n computed: {\n headerClasses() {\n return this.issuableType === TYPE_INCIDENT ? 'gl-mb-3' : 'gl-mb-6';\n },\n issueChanged() {\n const {\n formState: { description, title },\n initialDescriptionText,\n initialTitleText,\n } = this;\n\n if (initialDescriptionText || description) {\n return initialDescriptionText !== description;\n }\n\n if (initialTitleText || title) {\n return initialTitleText !== title;\n }\n\n return false;\n },\n defaultErrorMessage() {\n return sprintf(__('Error updating %{issuableType}'), { issuableType: this.issuableType });\n },\n\n pinnedLinkClasses() {\n return this.showTitleBorder\n ? 'gl-border-b-1 gl-border-b-default gl-border-b-solid gl-mb-6'\n : '';\n },\n\n shouldShowStickyHeader() {\n return [TYPE_INCIDENT, TYPE_ISSUE, TYPE_EPIC].includes(this.issuableType);\n },\n },\n created() {\n this.alert = null;\n this.service = new Service(this.endpoint);\n this.poll = new Poll({\n resource: this.service,\n method: 'getData',\n successCallback: (res) => this.updateState(res.data),\n errorCallback(err) {\n throw new Error(err);\n },\n });\n\n if (!Visibility.hidden()) {\n this.poll.makeDelayedRequest(POLLING_DELAY);\n }\n\n Visibility.change(() => {\n if (!Visibility.hidden()) {\n this.poll.restart();\n } else {\n this.poll.stop();\n }\n });\n\n window.addEventListener('beforeunload', this.handleBeforeUnloadEvent);\n\n eventHub.$on('update.issuable', this.updateIssuable);\n eventHub.$on('close.form', this.closeForm);\n eventHub.$on('open.form', this.openForm);\n },\n beforeDestroy() {\n eventHub.$off('update.issuable', this.updateIssuable);\n eventHub.$off('close.form', this.closeForm);\n eventHub.$off('open.form', this.openForm);\n window.removeEventListener('beforeunload', this.handleBeforeUnloadEvent);\n this.hideStickyHeader();\n },\n methods: {\n handleBeforeUnloadEvent(e) {\n const event = e;\n if (this.showForm && this.issueChanged && !this.issueState.isDirty) {\n event.returnValue = __('Are you sure you want to lose your issue information?');\n }\n return undefined;\n },\n updateState(data) {\n const stateShouldUpdate =\n this.state.titleText !== data.title_text ||\n this.state.descriptionText !== data.description_text;\n\n if (stateShouldUpdate) {\n this.formState.lockedWarningVisible = true;\n }\n\n Object.assign(this.state, convertObjectPropsToCamelCase(data));\n // find if there is an open details node inside of the issue description.\n const descriptionSection = document.body.querySelector(\n '.detail-page-description.content-block',\n );\n const details =\n descriptionSection != null && descriptionSection.getElementsByTagName('details');\n\n const newDescriptionHtml = updateDescription(sanitize(data.description), details);\n\n if (hasDescriptionChanged(this.state.descriptionHtml, newDescriptionHtml)) {\n this.state.descriptionHtml = newDescriptionHtml;\n }\n\n this.state.titleHtml = sanitize(data.title);\n this.state.lock_version = data.lock_version;\n },\n refetchData() {\n return this.service\n .getData()\n .then((res) => res.data)\n .then(this.updateState)\n .catch(() => createAlert({ message: this.defaultErrorMessage }));\n },\n\n setFormState(state) {\n this.formState = { ...this.formState, ...state };\n },\n\n updateFormState(templates = {}) {\n this.setFormState({\n title: this.state.titleText,\n description: this.state.descriptionText,\n lock_version: this.state.lock_version,\n lockedWarningVisible: false,\n updateLoading: false,\n issuableTemplates: templates,\n });\n },\n\n updateAndShowForm(templates) {\n if (!this.showForm) {\n this.updateFormState(templates);\n this.showForm = true;\n }\n },\n\n requestTemplatesAndShowForm() {\n return this.service\n .loadTemplates(this.issuableTemplateNamesPath)\n .then((res) => {\n this.updateAndShowForm(res.data);\n })\n .catch(() => {\n createAlert({\n message: this.defaultErrorMessage,\n });\n this.updateAndShowForm();\n });\n },\n\n openForm() {\n if (!this.templatesRequested) {\n this.templatesRequested = true;\n this.requestTemplatesAndShowForm();\n } else {\n this.updateAndShowForm(this.formState.issuableTemplates);\n }\n },\n\n closeForm() {\n this.showForm = false;\n },\n\n async updateIssuable() {\n this.setFormState({ updateLoading: true });\n\n const { formState, issueState } = this;\n const issuablePayload = issueState.isDirty\n ? { ...formState, issue_type: issueState.issueType }\n : formState;\n\n this.alert?.dismiss();\n\n const confirmSubmit = await detectAndConfirmSensitiveTokens({\n content: issuablePayload.description,\n contentType: CONTENT_TYPE.DESCRIPTION,\n });\n\n if (!confirmSubmit) {\n this.setFormState({ updateLoading: false });\n return false;\n }\n\n return this.service\n .updateIssuable(issuablePayload)\n .then((res) => res.data)\n .then((data) => {\n if (\n !window.location.pathname.includes(data.web_url) &&\n issueState.issueType !== TYPE_INCIDENT\n ) {\n visitUrl(data.web_url);\n }\n\n if (issueState.isDirty) {\n const URI =\n issueState.issueType === TYPE_INCIDENT\n ? data.web_url.replace(ISSUE_TYPE_PATH, INCIDENT_TYPE_PATH)\n : data.web_url;\n visitUrl(URI);\n }\n })\n .then(this.refetchData)\n .then(() => {\n eventHub.$emit('close.form');\n })\n .catch((error = {}) => {\n const { message, response = {} } = error;\n\n let errMsg = this.defaultErrorMessage;\n\n if (response.data && response.data.errors) {\n errMsg += `. ${response.data.errors.join(' ')}`;\n } else if (message) {\n errMsg += `. ${message}`;\n }\n\n this.alert = createAlert({\n message: errMsg,\n });\n })\n .finally(() => {\n this.setFormState({ updateLoading: false });\n });\n },\n\n hideStickyHeader() {\n this.isStickyHeaderShowing = false;\n\n document.body.classList?.remove(STICKY_HEADER_VISIBLE_CLASS);\n },\n\n showStickyHeader() {\n // only if scrolled under the issue's title\n if (this.$refs.title.$el.offsetTop < window.pageYOffset) {\n this.isStickyHeaderShowing = true;\n }\n\n document.body.classList?.add(STICKY_HEADER_VISIBLE_CLASS);\n },\n\n handleSaveDescription(description) {\n this.updateFormState();\n this.setFormState({ description });\n this.updateIssuable();\n },\n\n taskListUpdateStarted() {\n this.poll.stop();\n },\n\n taskListUpdateSucceeded() {\n this.poll.enable();\n this.poll.makeDelayedRequest(POLLING_DELAY);\n },\n\n taskListUpdateFailed() {\n this.poll.enable();\n this.poll.makeDelayedRequest(POLLING_DELAY);\n\n this.refetchData();\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div v-if=\"canUpdate && showForm\">\n <form-component\n :endpoint=\"endpoint\"\n :form-state=\"formState\"\n :initial-description-text=\"initialDescriptionText\"\n :issuable-templates=\"formState.issuableTemplates\"\n :markdown-docs-path=\"markdownDocsPath\"\n :markdown-preview-path=\"markdownPreviewPath\"\n :project-path=\"projectPath\"\n :project-id=\"projectId\"\n :project-namespace=\"projectNamespace\"\n :can-attach-file=\"canAttachFile\"\n :enable-autocomplete=\"enableAutocomplete\"\n :issuable-type=\"issuableType\"\n @updateForm=\"setFormState\"\n />\n </div>\n <div v-else>\n <title-component\n ref=\"title\"\n :issuable-ref=\"issuableRef\"\n :can-update=\"canUpdate\"\n :title-html=\"state.titleHtml\"\n :title-text=\"state.titleText\"\n >\n <template #actions>\n <slot name=\"actions\">\n <header-actions />\n </slot>\n </template>\n </title-component>\n\n <sticky-header\n v-if=\"shouldShowStickyHeader\"\n :is-confidential=\"isConfidential\"\n :is-hidden=\"isHidden\"\n :is-imported=\"isImported\"\n :is-locked=\"isLocked\"\n :issuable-state=\"issuableStatus\"\n :issuable-type=\"issuableType\"\n :show=\"isStickyHeaderShowing\"\n :title=\"state.titleText\"\n :duplicated-to-issue-url=\"duplicatedToIssueUrl\"\n :moved-to-issue-url=\"movedToIssueUrl\"\n :promoted-to-epic-url=\"promotedToEpicUrl\"\n @hide=\"hideStickyHeader\"\n @show=\"showStickyHeader\"\n />\n\n <slot name=\"header\">\n <issue-header\n class=\"gl-mt-2 gl-p-0\"\n :class=\"headerClasses\"\n :author=\"author\"\n :confidential=\"isConfidential\"\n :created-at=\"createdAt\"\n :duplicated-to-issue-url=\"duplicatedToIssueUrl\"\n :is-first-contribution=\"isFirstContribution\"\n :is-hidden=\"isHidden\"\n :is-imported=\"isImported\"\n :is-locked=\"isLocked\"\n :issuable-state=\"issuableStatus\"\n :issuable-type=\"issuableType\"\n :moved-to-issue-url=\"movedToIssueUrl\"\n :promoted-to-epic-url=\"promotedToEpicUrl\"\n :service-desk-reply-to=\"serviceDeskReplyTo\"\n />\n </slot>\n\n <pinned-links\n :zoom-meeting-url=\"zoomMeetingUrl\"\n :published-incident-url=\"publishedIncidentUrl\"\n :class=\"pinnedLinkClasses\"\n />\n\n <component\n :is=\"descriptionComponent\"\n :issue-id=\"issueId\"\n :issue-iid=\"issueIid\"\n :can-update=\"canUpdate\"\n :description-html=\"state.descriptionHtml\"\n :description-text=\"state.descriptionText\"\n :updated-at=\"state.updatedAt\"\n :issuable-type=\"issuableType\"\n :update-url=\"updateEndpoint\"\n :lock-version=\"state.lock_version\"\n :is-updating=\"formState.updateLoading\"\n @saveDescription=\"handleSaveDescription\"\n @taskListUpdateStarted=\"taskListUpdateStarted\"\n @taskListUpdateSucceeded=\"taskListUpdateSucceeded\"\n @taskListUpdateFailed=\"taskListUpdateFailed\"\n @updateDescription=\"state.descriptionHtml = $event\"\n />\n\n <edited-component\n class=\"gl-mt-4\"\n :task-completion-status=\"state.taskCompletionStatus\"\n :updated-at=\"state.updatedAt\"\n :updated-by-name=\"state.updatedByName\"\n :updated-by-path=\"state.updatedByPath\"\n />\n </div>\n </div>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./app.vue?vue&type=template&id=cb001c3a\"\nimport script from \"./app.vue?vue&type=script&lang=js\"\nexport * from \"./app.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"DestroyBoardList\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"listId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ListID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"destroyBoardList\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"listId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"listId\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":112}};\n doc.loc.source = {\"body\":\"mutation DestroyBoardList($listId: ListID!) {\\n destroyBoardList(input: { listId: $listId }) {\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"DestroyBoardList\"] = oneQuery(doc, \"DestroyBoardList\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('reviewer-title',{attrs:{\"reviewers\":_vm.reviewers,\"number-of-reviewers\":_vm.reviewers.length,\"loading\":_vm.isLoading,\"editable\":_vm.canUpdate},on:{\"request-review\":_vm.requestReview,\"remove-reviewer\":_vm.removeReviewerById}}),_vm._v(\" \"),_c('approval-summary',{staticClass:\"gl-mb-2\",attrs:{\"short-text\":\"\"}},[_c('gl-button',{staticClass:\"gl-ml-2 !gl-text-sm\",attrs:{\"size\":\"small\",\"category\":\"tertiary\",\"variant\":\"confirm\"},on:{\"click\":function($event){return _vm.toggleDrawerOpen()}}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Assign'))+\"\\n \")])],1),_vm._v(\" \"),(!_vm.initialLoading)?_c('reviewers',{staticClass:\"gl-pt-2\",attrs:{\"root-path\":_vm.relativeUrlRoot,\"users\":_vm.reviewers,\"editable\":_vm.canUpdate,\"issuable-type\":_vm.issuableType},on:{\"request-review\":_vm.requestReview,\"assign-self\":_vm.reviewBySelf,\"remove-reviewer\":_vm.removeReviewerById}}):_vm._e(),_vm._v(\" \"),_c('mounting-portal',{attrs:{\"mount-to\":\"#js-reviewer-drawer-portal\"}},[_c('reviewer-drawer',{attrs:{\"open\":_vm.drawerOpen},on:{\"request-review\":_vm.requestReview,\"remove-reviewer\":_vm.removeReviewerById,\"close\":function($event){return _vm.toggleDrawerOpen(false)}}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./reviewer_drawer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./reviewer_drawer.vue?vue&type=script&lang=js\"","<script>\nimport { GlDrawer } from '@gitlab/ui';\nimport { DRAWER_Z_INDEX } from '~/lib/utils/constants';\nimport { getContentWrapperHeight } from '~/lib/utils/dom_utils';\nimport getMergeRequestReviewers from '~/sidebar/queries/get_merge_request_reviewers.query.graphql';\n\nexport default {\n apollo: {\n reviewers: {\n query: getMergeRequestReviewers,\n variables() {\n return {\n fullPath: this.projectPath,\n iid: this.issuableIid,\n };\n },\n update: (data) => data.workspace?.issuable?.reviewers?.nodes || [],\n skip() {\n return !this.open;\n },\n },\n },\n components: {\n GlDrawer,\n ApprovalSummary: () =>\n import('ee_component/merge_requests/components/reviewers/approval_summary.vue'),\n ApprovalRulesWrapper: () =>\n import('ee_component/merge_requests/components/reviewers/approval_rules_wrapper.vue'),\n },\n inject: ['projectPath', 'issuableIid'],\n props: {\n open: {\n type: Boolean,\n required: true,\n },\n },\n data() {\n return {\n reviewers: [],\n };\n },\n computed: {\n getDrawerHeaderHeight() {\n if (!this.open) return '0';\n return getContentWrapperHeight();\n },\n loadingReviewers() {\n return this.$apollo.queries.reviewers.loading;\n },\n },\n DRAWER_Z_INDEX,\n};\n</script>\n\n<template>\n <gl-drawer\n :header-height=\"getDrawerHeaderHeight\"\n :z-index=\"$options.DRAWER_Z_INDEX\"\n :open=\"open\"\n @close=\"$emit('close')\"\n >\n <template #title>\n <h4 class=\"gl-my-0\">{{ __('Assign reviewers') }}</h4>\n </template>\n <template #header>\n <approval-summary class=\"gl-mt-3\" />\n </template>\n <approval-rules-wrapper\n :reviewers=\"reviewers\"\n @request-review=\"(data) => $emit('request-review', data)\"\n @remove-reviewer=\"(data) => $emit('remove-reviewer', data)\"\n />\n </gl-drawer>\n</template>\n","import { render, staticRenderFns } from \"./reviewer_drawer.vue?vue&type=template&id=2848a406\"\nimport script from \"./reviewer_drawer.vue?vue&type=script&lang=js\"\nexport * from \"./reviewer_drawer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-drawer',{attrs:{\"header-height\":_vm.getDrawerHeaderHeight,\"z-index\":_vm.$options.DRAWER_Z_INDEX,\"open\":_vm.open},on:{\"close\":function($event){return _vm.$emit('close')}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('h4',{staticClass:\"gl-my-0\"},[_vm._v(_vm._s(_vm.__('Assign reviewers')))])]},proxy:true},{key:\"header\",fn:function(){return [_c('approval-summary',{staticClass:\"gl-mt-3\"})]},proxy:true}])},[_vm._v(\" \"),_vm._v(\" \"),_c('approval-rules-wrapper',{attrs:{\"reviewers\":_vm.reviewers},on:{\"request-review\":(data) => _vm.$emit('request-review', data),\"remove-reviewer\":(data) => _vm.$emit('remove-reviewer', data)}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./reviewer_title.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./reviewer_title.vue?vue&type=script&lang=js\"","<script>\nimport { GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { n__, s__ } from '~/locale';\nimport ReviewerDropdown from '~/merge_requests/components/reviewers/reviewer_dropdown.vue';\n\nexport default {\n name: 'ReviewerTitle',\n components: {\n GlLoadingIcon,\n ReviewerDropdown,\n },\n directives: {\n Tooltip: GlTooltipDirective,\n },\n props: {\n loading: {\n type: Boolean,\n required: false,\n default: false,\n },\n numberOfReviewers: {\n type: Number,\n required: true,\n },\n editable: {\n type: Boolean,\n required: true,\n },\n reviewers: {\n type: Array,\n required: false,\n default: () => [],\n },\n },\n computed: {\n reviewerTitle() {\n const reviewers = this.numberOfReviewers;\n return n__('Reviewer', `%d Reviewers`, reviewers);\n },\n },\n i18n: {\n changeReviewer: s__('MergeRequest|Change reviewer'),\n },\n};\n</script>\n<template>\n <div\n class=\"hide-collapsed gl-flex gl-items-center gl-gap-2 gl-font-bold gl-leading-20 gl-text-default\"\n >\n {{ reviewerTitle }}\n <gl-loading-icon v-if=\"loading\" size=\"sm\" inline class=\"align-bottom\" />\n <template v-if=\"editable\">\n <reviewer-dropdown\n class=\"gl-ml-auto\"\n :selected-reviewers=\"reviewers\"\n :visible-reviewers=\"reviewers\"\n />\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./reviewer_title.vue?vue&type=template&id=652e150e\"\nimport script from \"./reviewer_title.vue?vue&type=script&lang=js\"\nexport * from \"./reviewer_title.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"hide-collapsed gl-flex gl-items-center gl-gap-2 gl-font-bold gl-leading-20 gl-text-default\"},[_vm._v(\"\\n \"+_vm._s(_vm.reviewerTitle)+\"\\n \"),(_vm.loading)?_c('gl-loading-icon',{staticClass:\"align-bottom\",attrs:{\"size\":\"sm\",\"inline\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.editable)?[_c('reviewer-dropdown',{staticClass:\"gl-ml-auto\",attrs:{\"selected-reviewers\":_vm.reviewers,\"visible-reviewers\":_vm.reviewers}})]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./reviewers.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./reviewers.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlButton } from '@gitlab/ui';\n// NOTE! For the first iteration, we are simply copying the implementation of Assignees\n// It will soon be overhauled in Issue https://gitlab.com/gitlab-org/gitlab/-/issues/233736\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport UncollapsedReviewerList from './uncollapsed_reviewer_list.vue';\n\nexport default {\n // name: 'Reviewers' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26#possible-false-positives\n // eslint-disable-next-line @gitlab/require-i18n-strings\n name: 'Reviewers',\n components: {\n GlButton,\n UncollapsedReviewerList,\n },\n props: {\n rootPath: {\n type: String,\n required: true,\n },\n users: {\n type: Array,\n required: true,\n },\n editable: {\n type: Boolean,\n required: true,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n },\n computed: {\n hasNoUsers() {\n return !this.users.length;\n },\n sortedReviewers() {\n const canMergeUsers = this.users.filter((user) => user.mergeRequestInteraction?.canMerge);\n const canNotMergeUsers = this.users.filter((user) => !user.mergeRequestInteraction?.canMerge);\n\n return [...canMergeUsers, ...canNotMergeUsers];\n },\n },\n methods: {\n assignSelf() {\n this.$emit('assign-self');\n },\n requestReview(data) {\n this.$emit('request-review', data);\n },\n removeReviewer(data) {\n this.$emit('remove-reviewer', data);\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div class=\"value hide-collapsed\">\n <span\n v-if=\"hasNoUsers\"\n class=\"no-value gl-flex gl-text-base gl-leading-normal !gl-text-subtle\"\n data-testid=\"no-value\"\n >\n {{ __('None') }}\n <template v-if=\"editable\">\n -\n <gl-button\n category=\"tertiary\"\n variant=\"link\"\n class=\"gl-ml-2\"\n data-testid=\"assign-yourself\"\n @click=\"assignSelf\"\n >\n <span class=\"gl-text-subtle hover:gl-text-blue-800\">{{ __('assign yourself') }}</span>\n </gl-button>\n </template>\n </span>\n\n <uncollapsed-reviewer-list\n v-else\n :users=\"sortedReviewers\"\n :root-path=\"rootPath\"\n :issuable-type=\"issuableType\"\n @request-review=\"requestReview\"\n @remove-reviewer=\"removeReviewer\"\n />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./reviewers.vue?vue&type=template&id=2b416e42\"\nimport script from \"./reviewers.vue?vue&type=script&lang=js\"\nexport * from \"./reviewers.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"value hide-collapsed\"},[(_vm.hasNoUsers)?_c('span',{staticClass:\"no-value gl-flex gl-text-base gl-leading-normal !gl-text-subtle\",attrs:{\"data-testid\":\"no-value\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('None'))+\"\\n \"),(_vm.editable)?[_vm._v(\"\\n -\\n \"),_c('gl-button',{staticClass:\"gl-ml-2\",attrs:{\"category\":\"tertiary\",\"variant\":\"link\",\"data-testid\":\"assign-yourself\"},on:{\"click\":_vm.assignSelf}},[_c('span',{staticClass:\"gl-text-subtle hover:gl-text-blue-800\"},[_vm._v(_vm._s(_vm.__('assign yourself')))])])]:_vm._e()],2):_c('uncollapsed-reviewer-list',{attrs:{\"users\":_vm.sortedReviewers,\"root-path\":_vm.rootPath,\"issuable-type\":_vm.issuableType},on:{\"request-review\":_vm.requestReview,\"remove-reviewer\":_vm.removeReviewer}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\n// NOTE! For the first iteration, we are simply copying the implementation of Assignees\n// It will soon be overhauled in Issue https://gitlab.com/gitlab-org/gitlab/-/issues/233736\nimport Vue from 'vue';\nimport { MountingPortal } from 'portal-vue';\nimport { GlButton } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { __ } from '~/locale';\nimport { isGid, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { fetchUserCounts } from '~/super_sidebar/user_counts_fetch';\nimport ReviewerDrawer from '~/merge_requests/components/reviewers/reviewer_drawer.vue';\nimport eventHub from '../../event_hub';\nimport getMergeRequestReviewersQuery from '../../queries/get_merge_request_reviewers.query.graphql';\nimport mergeRequestReviewersUpdatedSubscription from '../../queries/merge_request_reviewers.subscription.graphql';\nimport Store from '../../stores/sidebar_store';\nimport ReviewerTitle from './reviewer_title.vue';\nimport Reviewers from './reviewers.vue';\n\nexport const state = Vue.observable({\n issuable: {},\n loading: false,\n initialLoading: true,\n drawerOpen: false,\n});\n\nexport default {\n name: 'SidebarReviewers',\n components: {\n MountingPortal,\n GlButton,\n ReviewerTitle,\n Reviewers,\n ReviewerDrawer,\n ApprovalSummary: () =>\n import('ee_component/merge_requests/components/reviewers/approval_summary.vue'),\n },\n props: {\n mediator: {\n type: Object,\n required: true,\n },\n field: {\n type: String,\n required: true,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n issuableIid: {\n type: String,\n required: true,\n },\n projectPath: {\n type: String,\n required: true,\n },\n },\n apollo: {\n // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n issuable: {\n query: getMergeRequestReviewersQuery,\n variables() {\n return {\n iid: this.issuableIid,\n fullPath: this.projectPath,\n };\n },\n update(data) {\n return data.workspace?.issuable;\n },\n result() {\n this.initialLoading = false;\n },\n error() {\n createAlert({ message: __('An error occurred while fetching reviewers.') });\n },\n subscribeToMore: {\n document() {\n return mergeRequestReviewersUpdatedSubscription;\n },\n variables() {\n return {\n issuableId: this.issuable?.id,\n };\n },\n skip() {\n return !this.issuable?.id;\n },\n updateQuery(\n _,\n {\n subscriptionData: {\n data: { mergeRequestReviewersUpdated },\n },\n },\n ) {\n if (mergeRequestReviewersUpdated) {\n this.store.setReviewersFromRealtime(\n mergeRequestReviewersUpdated.reviewers.nodes.map((r) => ({\n ...r,\n id: getIdFromGraphQLId(r.id),\n })),\n );\n }\n },\n },\n },\n },\n data() {\n return state;\n },\n computed: {\n relativeUrlRoot() {\n return gon.relative_url_root ?? '';\n },\n reviewers() {\n return this.issuable.reviewers?.nodes || [];\n },\n graphqlFetching() {\n return this.$apollo.queries.issuable.loading;\n },\n isLoading() {\n return this.loading || this.$apollo.queries.issuable.loading;\n },\n canUpdate() {\n return this.issuable.userPermissions?.adminMergeRequest || false;\n },\n },\n created() {\n this.store = new Store();\n\n this.removeReviewer = this.store.removeReviewer.bind(this.store);\n this.addReviewer = this.store.addReviewer.bind(this.store);\n this.removeAllReviewers = this.store.removeAllReviewers.bind(this.store);\n\n // Get events from deprecatedJQueryDropdown\n eventHub.$on('sidebar.removeReviewer', this.removeReviewer);\n eventHub.$on('sidebar.addReviewer', this.addReviewer);\n eventHub.$on('sidebar.removeAllReviewers', this.removeAllReviewers);\n eventHub.$on('sidebar.saveReviewers', this.saveReviewers);\n eventHub.$on('sidebar.toggleReviewerDrawer', this.toggleDrawerOpen);\n },\n beforeDestroy() {\n eventHub.$off('sidebar.removeReviewer', this.removeReviewer);\n eventHub.$off('sidebar.addReviewer', this.addReviewer);\n eventHub.$off('sidebar.removeAllReviewers', this.removeAllReviewers);\n eventHub.$off('sidebar.saveReviewers', this.saveReviewers);\n eventHub.$off('sidebar.toggleReviewerDrawer', this.toggleDrawerOpen);\n },\n methods: {\n reviewBySelf() {\n // Notify gl dropdown that we are now assigning to current user\n this.$el.parentElement.dispatchEvent(new Event('assignYourself'));\n\n this.mediator.addSelfReview();\n this.saveReviewers();\n },\n saveReviewers() {\n this.loading = true;\n\n this.mediator\n .saveReviewers(this.field)\n .then(() => {\n this.loading = false;\n fetchUserCounts();\n this.$apollo.queries.issuable.refetch();\n })\n .catch(() => {\n this.loading = false;\n return createAlert({\n message: __('Error occurred when saving reviewers'),\n });\n });\n },\n requestReview(data) {\n this.mediator.requestReview(data);\n },\n async removeReviewerById(event) {\n const userId = isGid(event.userId) ? getIdFromGraphQLId(event.userId) : event.userId;\n this.store.reviewers = this.store.reviewers.filter((user) => user.id !== userId);\n try {\n await this.saveReviewers();\n } catch (error) {\n createAlert(__('Unable to remove a reviewer at the moment, try again later'), { error });\n } finally {\n event.done();\n }\n },\n toggleDrawerOpen(drawerOpen = !this.drawerOpen) {\n this.drawerOpen = drawerOpen;\n },\n },\n};\n</script>\n\n<template>\n <div>\n <reviewer-title\n :reviewers=\"reviewers\"\n :number-of-reviewers=\"reviewers.length\"\n :loading=\"isLoading\"\n :editable=\"canUpdate\"\n @request-review=\"requestReview\"\n @remove-reviewer=\"removeReviewerById\"\n />\n <approval-summary short-text class=\"gl-mb-2\">\n <gl-button\n size=\"small\"\n category=\"tertiary\"\n variant=\"confirm\"\n class=\"gl-ml-2 !gl-text-sm\"\n @click=\"toggleDrawerOpen()\"\n >\n {{ __('Assign') }}\n </gl-button>\n </approval-summary>\n <reviewers\n v-if=\"!initialLoading\"\n :root-path=\"relativeUrlRoot\"\n :users=\"reviewers\"\n :editable=\"canUpdate\"\n :issuable-type=\"issuableType\"\n class=\"gl-pt-2\"\n @request-review=\"requestReview\"\n @assign-self=\"reviewBySelf\"\n @remove-reviewer=\"removeReviewerById\"\n />\n <mounting-portal mount-to=\"#js-reviewer-drawer-portal\">\n <reviewer-drawer\n :open=\"drawerOpen\"\n @request-review=\"requestReview\"\n @remove-reviewer=\"removeReviewerById\"\n @close=\"toggleDrawerOpen(false)\"\n />\n </mounting-portal>\n </div>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_reviewers.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_reviewers.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./sidebar_reviewers.vue?vue&type=template&id=660c3939\"\nimport script from \"./sidebar_reviewers.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_reviewers.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { invert } from 'lodash';\nimport { __, s__, sprintf } from '~/locale';\nimport {\n STATUS_TRIGGERED,\n STATUS_ACKNOWLEDGED,\n STATUS_RESOLVED,\n IssuableAttributeType as IssuableAttributeTypeFoss,\n IssuableAttributeState as IssuableAttributeStateFoss,\n LocalizedIssuableAttributeType as LocalizedIssuableAttributeTypeFoss,\n dropdowni18nText as dropdowni18nTextFoss,\n Tracking,\n defaultEpicSort,\n epicIidPattern,\n} from '~/sidebar/constants';\n\nexport { Tracking, defaultEpicSort, epicIidPattern };\n\nexport const edit = __('Edit');\nexport const none = __('None');\n\nexport const HEALTH_STATUS_I18N_ASSIGN_HEALTH_STATUS = s__('Sidebar|Select health status');\nexport const HEALTH_STATUS_I18N_FETCH_ERROR = __(\n 'An error occurred while fetching the health status.',\n);\nexport const HEALTH_STATUS_I18N_HEALTH_STATUS = s__('Sidebar|Health status');\nexport const HEALTH_STATUS_I18N_NO_STATUS = s__('Sidebar|No status');\nexport const HEALTH_STATUS_I18N_NONE = s__('Sidebar|None');\nexport const HEALTH_STATUS_I18N_SELECT_HEALTH_STATUS = __('Select health status');\nexport const HEALTH_STATUS_I18N_UPDATE_ERROR = __(\n 'Something went wrong while setting %{issuableType} health status.',\n);\nexport const HEALTH_STATUS_OPEN_DROPDOWN_DELAY = 100;\n\nexport const HEALTH_STATUS_AT_RISK = 'atRisk';\nexport const HEALTH_STATUS_NEEDS_ATTENTION = 'needsAttention';\nexport const HEALTH_STATUS_ON_TRACK = 'onTrack';\n\nexport const healthStatusTextMap = {\n [HEALTH_STATUS_ON_TRACK]: __('On track'),\n [HEALTH_STATUS_NEEDS_ATTENTION]: __('Needs attention'),\n [HEALTH_STATUS_AT_RISK]: __('At risk'),\n};\n\nexport const healthStatusVariantMap = {\n [HEALTH_STATUS_ON_TRACK]: 'success',\n [HEALTH_STATUS_NEEDS_ATTENTION]: 'warning',\n [HEALTH_STATUS_AT_RISK]: 'danger',\n};\n\nexport const healthStatusIconMap = {\n [HEALTH_STATUS_ON_TRACK]: 'status-health',\n [HEALTH_STATUS_NEEDS_ATTENTION]: 'warning',\n [HEALTH_STATUS_AT_RISK]: 'error',\n};\n\nexport const healthStatusColorMap = {\n [HEALTH_STATUS_ON_TRACK]: 'gl-text-success',\n [HEALTH_STATUS_NEEDS_ATTENTION]: 'gl-text-orange-500',\n [HEALTH_STATUS_AT_RISK]: 'gl-text-red-500',\n};\n\nexport const healthStatusForRestApi = {\n NO_STATUS: '0',\n [HEALTH_STATUS_ON_TRACK]: 'on_track',\n [HEALTH_STATUS_NEEDS_ATTENTION]: 'needs_attention',\n [HEALTH_STATUS_AT_RISK]: 'at_risk',\n};\n\nexport const healthStatusDropdownOptions = [\n { text: __('On track'), value: HEALTH_STATUS_ON_TRACK },\n { text: __('Needs attention'), value: HEALTH_STATUS_NEEDS_ATTENTION },\n { text: __('At risk'), value: HEALTH_STATUS_AT_RISK },\n];\n\nexport const healthStatusTracking = {\n event: Tracking.editEvent,\n label: Tracking.rightSidebarLabel,\n property: 'health_status',\n};\n\nexport const iterationSelectTextMap = {\n iteration: __('Iteration'),\n noIteration: __('No iteration'),\n assignIteration: __('Select iteration'),\n iterationSelectFail: __('Failed to set iteration on this issue. Please try again.'),\n currentIterationFetchError: __('Failed to fetch the iteration for this issue. Please try again.'),\n iterationsFetchError: __('Failed to fetch the iterations for the group. Please try again.'),\n noIterationsFound: s__('Iterations|No iterations found'),\n};\n\nexport const noAttributeId = null;\n\nexport const noEpic = {\n id: 0,\n title: __('No Epic'),\n};\n\nexport const placeholderEpic = {\n id: -1,\n title: __('Select epic'),\n};\n\nexport const SIDEBAR_ESCALATION_POLICY_TITLE = __('Escalation policy');\n\nexport const MAX_DISPLAY_WEIGHT = 99999;\n\nexport const CVE_ID_REQUEST_SIDEBAR_I18N = {\n action: s__('CVE|Request CVE ID'),\n description: s__('CVE|CVE ID Request'),\n createRequest: s__('CVE|Create CVE ID Request'),\n whyRequest: s__('CVE|Why Request a CVE ID?'),\n whyText1: s__(\n 'CVE|Common Vulnerability Enumeration (CVE) identifiers are used to track distinct vulnerabilities in specific versions of code.',\n ),\n whyText2: s__(\n 'CVE|As a maintainer, requesting a CVE for a vulnerability in your project will help your users stay secure and informed.',\n ),\n learnMore: __('Learn more'),\n};\n\nexport const IssuableAttributeType = {\n ...IssuableAttributeTypeFoss,\n Iteration: 'iteration',\n Epic: 'epic',\n EscalationPolicy: 'escalation policy', // eslint-disable-line @gitlab/require-i18n-strings\n Parent: 'parent',\n};\n\nexport const LocalizedIssuableAttributeType = {\n ...LocalizedIssuableAttributeTypeFoss,\n Iteration: s__('Issuable|iteration'),\n Epic: s__('Issuable|epic'),\n EscalationPolicy: s__('Issuable|escalation policy'),\n};\n\n// The reason we did this conversion is that we want to keep track of the keys via referencing the object itself\n// Thus we have to convert value as key, and use is in the method.\nexport const IssuableAttributeTypeKeyMap = invert(IssuableAttributeType);\n\nexport const IssuableAttributeState = {\n ...IssuableAttributeStateFoss,\n [IssuableAttributeType.Iteration]: 'opened',\n [IssuableAttributeType.Epic]: 'opened',\n};\n\nexport function dropdowni18nText(issuableAttribute, issuableType) {\n let noAttributesFound = s__('DropdownWidget|No %{issuableAttribute} found');\n\n if (issuableAttribute === LocalizedIssuableAttributeType.Iteration) {\n noAttributesFound = s__('DropdownWidget|No open %{issuableAttribute} found');\n }\n\n return {\n ...dropdowni18nTextFoss(issuableAttribute, issuableType),\n noAttributesFound: sprintf(noAttributesFound, {\n issuableAttribute,\n }),\n };\n}\n\nexport const i18nHelpText = {\n title: s__('IncidentManagement|Page your team with escalation policies'),\n detail: s__(\n 'IncidentManagement|Use escalation policies to automatically page your team when incidents are created.',\n ),\n linkText: __('Learn more'),\n};\n\nexport const i18nPolicyText = {\n paged: s__('IncidentManagement|Paged'),\n title: SIDEBAR_ESCALATION_POLICY_TITLE,\n none,\n};\n\nexport const i18nStatusHeaderText = s__('IncidentManagement|Assign paging status');\nconst STOPS_PAGING = s__('IncidentManagement|Stops paging');\n\nexport const STATUS_SUBTEXTS = {\n [STATUS_TRIGGERED]: '',\n\n [STATUS_ACKNOWLEDGED]: STOPS_PAGING,\n [STATUS_RESOLVED]: STOPS_PAGING,\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateIssuableSeverity\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"severity\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableSeverity\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issueSetSeverity\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"severity\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"severity\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"severity\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":258}};\n doc.loc.source = {\"body\":\"mutation updateIssuableSeverity($projectPath: ID!, $severity: IssuableSeverity!, $iid: String!) {\\n issueSetSeverity(input: { iid: $iid, severity: $severity, projectPath: $projectPath }) {\\n errors\\n issue {\\n iid\\n id\\n severity\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateIssuableSeverity\"] = oneQuery(doc, \"updateIssuableSeverity\");\n \n","// eslint-disable-next-line no-restricted-imports\nimport { mapGetters } from 'vuex';\nimport { sprintf, s__, __ } from '~/locale';\n\nexport default {\n props: {\n discussionId: {\n type: String,\n required: false,\n default: null,\n },\n resolveDiscussion: {\n type: Boolean,\n required: false,\n default: false,\n },\n isDraft: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n ...mapGetters(['isDiscussionResolved']),\n resolvedStatusMessage() {\n let message;\n const discussionResolved = this.isDiscussionResolved(\n 'draft' in this ? this.draft.discussion_id : this.discussionId,\n );\n const discussionToBeResolved =\n 'draft' in this ? this.draft.resolve_discussion : this.resolveDiscussion;\n\n if (discussionToBeResolved && discussionResolved && !this.$options.showStaysResolved) {\n return undefined;\n }\n\n if (discussionToBeResolved) {\n message = discussionResolved\n ? s__('MergeRequests|Thread stays resolved')\n : s__('MergeRequests|Thread will be resolved');\n } else if (discussionResolved) {\n message = s__('MergeRequests|Thread will be unresolved');\n } else if (this.$options.showStaysResolved) {\n message = s__('MergeRequests|Thread stays unresolved');\n }\n\n return message;\n },\n componentClasses() {\n return this.resolveDiscussion ? 'is-resolving-discussion' : 'is-unresolving-discussion';\n },\n resolveButtonTitle() {\n const escapeParameters = false;\n\n if (this.isDraft || this.discussionId) return this.resolvedStatusMessage;\n\n let title = __('Resolve thread');\n\n if (this.resolvedBy) {\n title = sprintf(\n __('Resolved by %{name}'),\n { name: this.resolvedBy.name },\n escapeParameters,\n );\n }\n\n return title;\n },\n },\n showStaysResolved: true,\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"DestroyTimelineEvent\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"TimelineEventDestroyInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelineEventDestroy\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelineEvent\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":160}};\n doc.loc.source = {\"body\":\"mutation DestroyTimelineEvent($input: TimelineEventDestroyInput!) {\\n timelineEventDestroy(input: $input) {\\n timelineEvent {\\n id\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"DestroyTimelineEvent\"] = oneQuery(doc, \"DestroyTimelineEvent\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"fetchRelatedMergeRequests\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"after\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"defaultValue\":{\"kind\":\"StringValue\",\"value\":\"\",\"block\":false},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"relatedMergeRequests\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"after\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"after\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pageInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PageInfo\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"milestone\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MilestoneFragment\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignees\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"headPipeline\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detailedStatus\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"CiIcon\"},\"directives\":[]}]}}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1034}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/ci_icon.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/page_info.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/milestone.fragment.graphql\\\"\\n\\nquery fetchRelatedMergeRequests($projectPath: ID!, $iid: String!, $after: String = \\\"\\\") {\\n project(fullPath: $projectPath) {\\n id\\n issue(iid: $iid) {\\n id\\n relatedMergeRequests(after: $after) {\\n count\\n pageInfo {\\n ...PageInfo\\n }\\n nodes {\\n id\\n reference\\n state\\n title\\n createdAt\\n mergedAt\\n webUrl\\n milestone {\\n ...MilestoneFragment\\n }\\n project {\\n id\\n fullPath\\n }\\n assignees {\\n nodes {\\n ...User\\n }\\n }\\n headPipeline {\\n id\\n detailedStatus {\\n ...CiIcon\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/ci_icon.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/page_info.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/milestone.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"fetchRelatedMergeRequests\"] = oneQuery(doc, \"fetchRelatedMergeRequests\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"file-container\"},[_c('div',{staticClass:\"file-content\"},[_c('p',{staticClass:\"file-info gl-mt-3\"},[_vm._v(\"\\n \"+_vm._s(_vm.fileName)+\"\\n \"),(_vm.fileSize > 0)?[_vm._v(\" (\"+_vm._s(_vm.fileSizeReadable)+\") \")]:_vm._e()],2),_vm._v(\" \"),_c('a',{staticClass:\"btn btn-default\",attrs:{\"href\":_vm.path,\"rel\":\"nofollow\",\"download\":_vm.fileName,\"target\":\"_blank\"}},[_c('gl-icon',{staticClass:\"float-left gl-mr-3\",attrs:{\"size\":16,\"name\":\"download\"}}),_vm._v(\"\\n \"+_vm._s(_vm.__('Download'))+\"\\n \")],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./download_viewer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./download_viewer.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\nimport { numberToHumanSize } from '~/lib/utils/number_utils';\n\nexport default {\n components: {\n GlIcon,\n },\n props: {\n path: {\n type: String,\n required: true,\n },\n filePath: {\n type: String,\n required: false,\n default: '',\n },\n fileSize: {\n type: Number,\n required: false,\n default: 0,\n },\n },\n computed: {\n fileSizeReadable() {\n return numberToHumanSize(this.fileSize);\n },\n fileName() {\n // path could be a base64 uri too, so check if filePath was passed additionally\n return (this.filePath || this.path).split('/').pop();\n },\n },\n};\n</script>\n\n<template>\n <div class=\"file-container\">\n <div class=\"file-content\">\n <p class=\"file-info gl-mt-3\">\n {{ fileName }}\n <template v-if=\"fileSize > 0\"> ({{ fileSizeReadable }}) </template>\n </p>\n <a :href=\"path\" class=\"btn btn-default\" rel=\"nofollow\" :download=\"fileName\" target=\"_blank\">\n <gl-icon :size=\"16\" name=\"download\" class=\"float-left gl-mr-3\" />\n {{ __('Download') }}\n </a>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./download_viewer.vue?vue&type=template&id=535df327\"\nimport script from \"./download_viewer.vue?vue&type=script&lang=js\"\nexport * from \"./download_viewer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n/*\n *\n * More info at [www.dropzonejs.com](http://www.dropzonejs.com)\n *\n * Copyright (c) 2012, Matias Meno\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n */\n\n(function() {\n var Dropzone, Emitter, camelize, contentLoaded, detectVerticalSquash, drawImageIOSFix, noop, without,\n __slice = [].slice,\n __hasProp = {}.hasOwnProperty,\n __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n noop = function() {};\n\n Emitter = (function() {\n function Emitter() {}\n\n Emitter.prototype.addEventListener = Emitter.prototype.on;\n\n Emitter.prototype.on = function(event, fn) {\n this._callbacks = this._callbacks || {};\n if (!this._callbacks[event]) {\n this._callbacks[event] = [];\n }\n this._callbacks[event].push(fn);\n return this;\n };\n\n Emitter.prototype.emit = function() {\n var args, callback, callbacks, event, _i, _len;\n event = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n this._callbacks = this._callbacks || {};\n callbacks = this._callbacks[event];\n if (callbacks) {\n for (_i = 0, _len = callbacks.length; _i < _len; _i++) {\n callback = callbacks[_i];\n callback.apply(this, args);\n }\n }\n return this;\n };\n\n Emitter.prototype.removeListener = Emitter.prototype.off;\n\n Emitter.prototype.removeAllListeners = Emitter.prototype.off;\n\n Emitter.prototype.removeEventListener = Emitter.prototype.off;\n\n Emitter.prototype.off = function(event, fn) {\n var callback, callbacks, i, _i, _len;\n if (!this._callbacks || arguments.length === 0) {\n this._callbacks = {};\n return this;\n }\n callbacks = this._callbacks[event];\n if (!callbacks) {\n return this;\n }\n if (arguments.length === 1) {\n delete this._callbacks[event];\n return this;\n }\n for (i = _i = 0, _len = callbacks.length; _i < _len; i = ++_i) {\n callback = callbacks[i];\n if (callback === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n return this;\n };\n\n return Emitter;\n\n })();\n\n Dropzone = (function(_super) {\n var extend, resolveOption;\n\n __extends(Dropzone, _super);\n\n Dropzone.prototype.Emitter = Emitter;\n\n\n /*\n This is a list of all available events you can register on a dropzone object.\n \n You can register an event handler like this:\n \n dropzone.on(\"dragEnter\", function() { });\n */\n\n Dropzone.prototype.events = [\"drop\", \"dragstart\", \"dragend\", \"dragenter\", \"dragover\", \"dragleave\", \"addedfile\", \"addedfiles\", \"removedfile\", \"thumbnail\", \"error\", \"errormultiple\", \"processing\", \"processingmultiple\", \"uploadprogress\", \"totaluploadprogress\", \"sending\", \"sendingmultiple\", \"success\", \"successmultiple\", \"canceled\", \"canceledmultiple\", \"complete\", \"completemultiple\", \"reset\", \"maxfilesexceeded\", \"maxfilesreached\", \"queuecomplete\"];\n\n Dropzone.prototype.defaultOptions = {\n url: null,\n method: \"post\",\n withCredentials: false,\n parallelUploads: 2,\n uploadMultiple: false,\n maxFilesize: 256,\n paramName: \"file\",\n createImageThumbnails: true,\n maxThumbnailFilesize: 10,\n thumbnailWidth: 120,\n thumbnailHeight: 120,\n filesizeBase: 1000,\n maxFiles: null,\n params: {},\n clickable: true,\n ignoreHiddenFiles: true,\n acceptedFiles: null,\n acceptedMimeTypes: null,\n autoProcessQueue: true,\n autoQueue: true,\n addRemoveLinks: false,\n previewsContainer: null,\n hiddenInputContainer: \"body\",\n capture: null,\n dictDefaultMessage: \"Drop files here to upload\",\n dictFallbackMessage: \"Your browser does not support drag'n'drop file uploads.\",\n dictFallbackText: \"Please use the fallback form below to upload your files like in the olden days.\",\n dictFileTooBig: \"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.\",\n dictInvalidFileType: \"You can't upload files of this type.\",\n dictResponseError: \"Server responded with {{statusCode}} code.\",\n dictCancelUpload: \"Cancel upload\",\n dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\n dictRemoveFile: \"Remove file\",\n dictRemoveFileConfirmation: null,\n dictMaxFilesExceeded: \"You can not upload any more files.\",\n accept: function(file, done) {\n return done();\n },\n init: function() {\n return noop;\n },\n forceFallback: false,\n fallback: function() {\n var child, messageElement, span, _i, _len, _ref;\n this.element.className = \"\" + this.element.className + \" dz-browser-not-supported\";\n _ref = this.element.getElementsByTagName(\"div\");\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n child = _ref[_i];\n if (/(^| )dz-message($| )/.test(child.className)) {\n messageElement = child;\n child.className = \"dz-message\";\n continue;\n }\n }\n if (!messageElement) {\n messageElement = Dropzone.createElement(\"<div class=\\\"dz-message\\\"><span></span></div>\");\n this.element.appendChild(messageElement);\n }\n span = messageElement.getElementsByTagName(\"span\")[0];\n if (span) {\n if (span.textContent != null) {\n span.textContent = this.options.dictFallbackMessage;\n } else if (span.innerText != null) {\n span.innerText = this.options.dictFallbackMessage;\n }\n }\n return this.element.appendChild(this.getFallbackForm());\n },\n resize: function(file) {\n var info, srcRatio, trgRatio;\n info = {\n srcX: 0,\n srcY: 0,\n srcWidth: file.width,\n srcHeight: file.height\n };\n srcRatio = file.width / file.height;\n info.optWidth = this.options.thumbnailWidth;\n info.optHeight = this.options.thumbnailHeight;\n if ((info.optWidth == null) && (info.optHeight == null)) {\n info.optWidth = info.srcWidth;\n info.optHeight = info.srcHeight;\n } else if (info.optWidth == null) {\n info.optWidth = srcRatio * info.optHeight;\n } else if (info.optHeight == null) {\n info.optHeight = (1 / srcRatio) * info.optWidth;\n }\n trgRatio = info.optWidth / info.optHeight;\n if (file.height < info.optHeight || file.width < info.optWidth) {\n info.trgHeight = info.srcHeight;\n info.trgWidth = info.srcWidth;\n } else {\n if (srcRatio > trgRatio) {\n info.srcHeight = file.height;\n info.srcWidth = info.srcHeight * trgRatio;\n } else {\n info.srcWidth = file.width;\n info.srcHeight = info.srcWidth / trgRatio;\n }\n }\n info.srcX = (file.width - info.srcWidth) / 2;\n info.srcY = (file.height - info.srcHeight) / 2;\n return info;\n },\n\n /*\n Those functions register themselves to the events on init and handle all\n the user interface specific stuff. Overwriting them won't break the upload\n but can break the way it's displayed.\n You can overwrite them if you don't like the default behavior. If you just\n want to add an additional event handler, register it on the dropzone object\n and don't overwrite those options.\n */\n drop: function(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n dragstart: noop,\n dragend: function(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n dragenter: function(e) {\n return this.element.classList.add(\"dz-drag-hover\");\n },\n dragover: function(e) {\n return this.element.classList.add(\"dz-drag-hover\");\n },\n dragleave: function(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n paste: noop,\n reset: function() {\n return this.element.classList.remove(\"dz-started\");\n },\n addedfile: function(file) {\n var node, removeFileEvent, removeLink, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results;\n if (this.element === this.previewsContainer) {\n this.element.classList.add(\"dz-started\");\n }\n if (this.previewsContainer) {\n file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim());\n file.previewTemplate = file.previewElement;\n this.previewsContainer.appendChild(file.previewElement);\n _ref = file.previewElement.querySelectorAll(\"[data-dz-name]\");\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n node = _ref[_i];\n node.textContent = file.name;\n }\n _ref1 = file.previewElement.querySelectorAll(\"[data-dz-size]\");\n for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {\n node = _ref1[_j];\n node.innerHTML = this.filesize(file.size);\n }\n if (this.options.addRemoveLinks) {\n file._removeLink = Dropzone.createElement(\"<a class=\\\"dz-remove\\\" href=\\\"javascript:undefined;\\\" data-dz-remove>\" + this.options.dictRemoveFile + \"</a>\");\n file.previewElement.appendChild(file._removeLink);\n }\n removeFileEvent = (function(_this) {\n return function(e) {\n e.preventDefault();\n e.stopPropagation();\n if (file.status === Dropzone.UPLOADING) {\n return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function() {\n return _this.removeFile(file);\n });\n } else {\n if (_this.options.dictRemoveFileConfirmation) {\n return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function() {\n return _this.removeFile(file);\n });\n } else {\n return _this.removeFile(file);\n }\n }\n };\n })(this);\n _ref2 = file.previewElement.querySelectorAll(\"[data-dz-remove]\");\n _results = [];\n for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n removeLink = _ref2[_k];\n _results.push(removeLink.addEventListener(\"click\", removeFileEvent));\n }\n return _results;\n }\n },\n removedfile: function(file) {\n var _ref;\n if (file.previewElement) {\n if ((_ref = file.previewElement) != null) {\n _ref.parentNode.removeChild(file.previewElement);\n }\n }\n return this._updateMaxFilesReachedClass();\n },\n thumbnail: function(file, dataUrl) {\n var thumbnailElement, _i, _len, _ref;\n if (file.previewElement) {\n file.previewElement.classList.remove(\"dz-file-preview\");\n _ref = file.previewElement.querySelectorAll(\"[data-dz-thumbnail]\");\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n thumbnailElement = _ref[_i];\n thumbnailElement.alt = file.name;\n thumbnailElement.src = dataUrl;\n }\n return setTimeout(((function(_this) {\n return function() {\n return file.previewElement.classList.add(\"dz-image-preview\");\n };\n })(this)), 1);\n }\n },\n error: function(file, message) {\n var node, _i, _len, _ref, _results;\n if (file.previewElement) {\n file.previewElement.classList.add(\"dz-error\");\n if (typeof message !== \"String\" && message.error) {\n message = message.error;\n }\n _ref = file.previewElement.querySelectorAll(\"[data-dz-errormessage]\");\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n node = _ref[_i];\n _results.push(node.textContent = message);\n }\n return _results;\n }\n },\n errormultiple: noop,\n processing: function(file) {\n if (file.previewElement) {\n file.previewElement.classList.add(\"dz-processing\");\n if (file._removeLink) {\n return file._removeLink.textContent = this.options.dictCancelUpload;\n }\n }\n },\n processingmultiple: noop,\n uploadprogress: function(file, progress, bytesSent) {\n var node, _i, _len, _ref, _results;\n if (file.previewElement) {\n _ref = file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\");\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n node = _ref[_i];\n if (node.nodeName === 'PROGRESS') {\n _results.push(node.value = progress);\n } else {\n _results.push(node.style.width = \"\" + progress + \"%\");\n }\n }\n return _results;\n }\n },\n totaluploadprogress: noop,\n sending: noop,\n sendingmultiple: noop,\n success: function(file) {\n if (file.previewElement) {\n return file.previewElement.classList.add(\"dz-success\");\n }\n },\n successmultiple: noop,\n canceled: function(file) {\n return this.emit(\"error\", file, \"Upload canceled.\");\n },\n canceledmultiple: noop,\n complete: function(file) {\n if (file._removeLink) {\n file._removeLink.textContent = this.options.dictRemoveFile;\n }\n if (file.previewElement) {\n return file.previewElement.classList.add(\"dz-complete\");\n }\n },\n completemultiple: noop,\n maxfilesexceeded: noop,\n maxfilesreached: noop,\n queuecomplete: noop,\n addedfiles: noop,\n previewTemplate: \"<div class=\\\"dz-preview dz-file-preview\\\">\\n <div class=\\\"dz-image\\\"><img data-dz-thumbnail /></div>\\n <div class=\\\"dz-details\\\">\\n <div class=\\\"dz-size\\\"><span data-dz-size></span></div>\\n <div class=\\\"dz-filename\\\"><span data-dz-name></span></div>\\n </div>\\n <div class=\\\"dz-progress\\\"><span class=\\\"dz-upload\\\" data-dz-uploadprogress></span></div>\\n <div class=\\\"dz-error-message\\\"><span data-dz-errormessage></span></div>\\n <div class=\\\"dz-success-mark\\\">\\n <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xmlns:sketch=\\\"http://www.bohemiancoding.com/sketch/ns\\\">\\n <title>Check</title>\\n <defs></defs>\\n <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" sketch:type=\\\"MSPage\\\">\\n <path d=\\\"M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" id=\\\"Oval-2\\\" stroke-opacity=\\\"0.198794158\\\" stroke=\\\"#747474\\\" fill-opacity=\\\"0.816519475\\\" fill=\\\"#FFFFFF\\\" sketch:type=\\\"MSShapeGroup\\\"></path>\\n </g>\\n </svg>\\n </div>\\n <div class=\\\"dz-error-mark\\\">\\n <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xmlns:sketch=\\\"http://www.bohemiancoding.com/sketch/ns\\\">\\n <title>Error</title>\\n <defs></defs>\\n <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" sketch:type=\\\"MSPage\\\">\\n <g id=\\\"Check-+-Oval-2\\\" sketch:type=\\\"MSLayerGroup\\\" stroke=\\\"#747474\\\" stroke-opacity=\\\"0.198794158\\\" fill=\\\"#FFFFFF\\\" fill-opacity=\\\"0.816519475\\\">\\n <path d=\\\"M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" id=\\\"Oval-2\\\" sketch:type=\\\"MSShapeGroup\\\"></path>\\n </g>\\n </g>\\n </svg>\\n </div>\\n</div>\"\n };\n\n extend = function() {\n var key, object, objects, target, val, _i, _len;\n target = arguments[0], objects = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n for (_i = 0, _len = objects.length; _i < _len; _i++) {\n object = objects[_i];\n for (key in object) {\n val = object[key];\n target[key] = val;\n }\n }\n return target;\n };\n\n function Dropzone(element, options) {\n var elementOptions, fallback, _ref;\n this.element = element;\n this.version = Dropzone.version;\n this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\\n*/g, \"\");\n this.clickableElements = [];\n this.listeners = [];\n this.files = [];\n if (typeof this.element === \"string\") {\n this.element = document.querySelector(this.element);\n }\n if (!(this.element && (this.element.nodeType != null))) {\n throw new Error(\"Invalid dropzone element.\");\n }\n if (this.element.dropzone) {\n throw new Error(\"Dropzone already attached.\");\n }\n Dropzone.instances.push(this);\n this.element.dropzone = this;\n elementOptions = (_ref = Dropzone.optionsForElement(this.element)) != null ? _ref : {};\n this.options = extend({}, this.defaultOptions, elementOptions, options != null ? options : {});\n if (this.options.forceFallback || !Dropzone.isBrowserSupported()) {\n return this.options.fallback.call(this);\n }\n if (this.options.url == null) {\n this.options.url = this.element.getAttribute(\"action\");\n }\n if (!this.options.url) {\n throw new Error(\"No URL provided.\");\n }\n if (this.options.acceptedFiles && this.options.acceptedMimeTypes) {\n throw new Error(\"You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.\");\n }\n if (this.options.acceptedMimeTypes) {\n this.options.acceptedFiles = this.options.acceptedMimeTypes;\n delete this.options.acceptedMimeTypes;\n }\n this.options.method = this.options.method.toUpperCase();\n if ((fallback = this.getExistingFallback()) && fallback.parentNode) {\n fallback.parentNode.removeChild(fallback);\n }\n if (this.options.previewsContainer !== false) {\n if (this.options.previewsContainer) {\n this.previewsContainer = Dropzone.getElement(this.options.previewsContainer, \"previewsContainer\");\n } else {\n this.previewsContainer = this.element;\n }\n }\n if (this.options.clickable) {\n if (this.options.clickable === true) {\n this.clickableElements = [this.element];\n } else {\n this.clickableElements = Dropzone.getElements(this.options.clickable, \"clickable\");\n }\n }\n this.init();\n }\n\n Dropzone.prototype.getAcceptedFiles = function() {\n var file, _i, _len, _ref, _results;\n _ref = this.files;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n file = _ref[_i];\n if (file.accepted) {\n _results.push(file);\n }\n }\n return _results;\n };\n\n Dropzone.prototype.getRejectedFiles = function() {\n var file, _i, _len, _ref, _results;\n _ref = this.files;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n file = _ref[_i];\n if (!file.accepted) {\n _results.push(file);\n }\n }\n return _results;\n };\n\n Dropzone.prototype.getFilesWithStatus = function(status) {\n var file, _i, _len, _ref, _results;\n _ref = this.files;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n file = _ref[_i];\n if (file.status === status) {\n _results.push(file);\n }\n }\n return _results;\n };\n\n Dropzone.prototype.getQueuedFiles = function() {\n return this.getFilesWithStatus(Dropzone.QUEUED);\n };\n\n Dropzone.prototype.getUploadingFiles = function() {\n return this.getFilesWithStatus(Dropzone.UPLOADING);\n };\n\n Dropzone.prototype.getAddedFiles = function() {\n return this.getFilesWithStatus(Dropzone.ADDED);\n };\n\n Dropzone.prototype.getActiveFiles = function() {\n var file, _i, _len, _ref, _results;\n _ref = this.files;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n file = _ref[_i];\n if (file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED) {\n _results.push(file);\n }\n }\n return _results;\n };\n\n Dropzone.prototype.init = function() {\n var eventName, noPropagation, setupHiddenFileInput, _i, _len, _ref, _ref1;\n if (this.element.tagName === \"form\") {\n this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n }\n if (this.element.classList.contains(\"dropzone\") && !this.element.querySelector(\".dz-message\")) {\n this.element.appendChild(Dropzone.createElement(\"<div class=\\\"dz-default dz-message\\\"><span>\" + this.options.dictDefaultMessage + \"</span></div>\"));\n }\n if (this.clickableElements.length) {\n setupHiddenFileInput = (function(_this) {\n return function() {\n if (_this.hiddenFileInput) {\n _this.hiddenFileInput.parentNode.removeChild(_this.hiddenFileInput);\n }\n _this.hiddenFileInput = document.createElement(\"input\");\n _this.hiddenFileInput.setAttribute(\"type\", \"file\");\n if ((_this.options.maxFiles == null) || _this.options.maxFiles > 1) {\n _this.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\n }\n _this.hiddenFileInput.className = \"dz-hidden-input\";\n if (_this.options.acceptedFiles != null) {\n _this.hiddenFileInput.setAttribute(\"accept\", _this.options.acceptedFiles);\n }\n if (_this.options.capture != null) {\n _this.hiddenFileInput.setAttribute(\"capture\", _this.options.capture);\n }\n _this.hiddenFileInput.style.visibility = \"hidden\";\n _this.hiddenFileInput.style.position = \"absolute\";\n _this.hiddenFileInput.style.top = \"0\";\n _this.hiddenFileInput.style.left = \"0\";\n _this.hiddenFileInput.style.height = \"0\";\n _this.hiddenFileInput.style.width = \"0\";\n document.querySelector(_this.options.hiddenInputContainer).appendChild(_this.hiddenFileInput);\n return _this.hiddenFileInput.addEventListener(\"change\", function() {\n var file, files, _i, _len;\n files = _this.hiddenFileInput.files;\n if (files.length) {\n for (_i = 0, _len = files.length; _i < _len; _i++) {\n file = files[_i];\n _this.addFile(file);\n }\n }\n _this.emit(\"addedfiles\", files);\n return setupHiddenFileInput();\n });\n };\n })(this);\n setupHiddenFileInput();\n }\n this.URL = (_ref = window.URL) != null ? _ref : window.webkitURL;\n _ref1 = this.events;\n for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\n eventName = _ref1[_i];\n this.on(eventName, this.options[eventName]);\n }\n this.on(\"uploadprogress\", (function(_this) {\n return function() {\n return _this.updateTotalUploadProgress();\n };\n })(this));\n this.on(\"removedfile\", (function(_this) {\n return function() {\n return _this.updateTotalUploadProgress();\n };\n })(this));\n this.on(\"canceled\", (function(_this) {\n return function(file) {\n return _this.emit(\"complete\", file);\n };\n })(this));\n this.on(\"complete\", (function(_this) {\n return function(file) {\n if (_this.getAddedFiles().length === 0 && _this.getUploadingFiles().length === 0 && _this.getQueuedFiles().length === 0) {\n return setTimeout((function() {\n return _this.emit(\"queuecomplete\");\n }), 0);\n }\n };\n })(this));\n noPropagation = function(e) {\n e.stopPropagation();\n if (e.preventDefault) {\n return e.preventDefault();\n } else {\n return e.returnValue = false;\n }\n };\n this.listeners = [\n {\n element: this.element,\n events: {\n \"dragstart\": (function(_this) {\n return function(e) {\n return _this.emit(\"dragstart\", e);\n };\n })(this),\n \"dragenter\": (function(_this) {\n return function(e) {\n noPropagation(e);\n return _this.emit(\"dragenter\", e);\n };\n })(this),\n \"dragover\": (function(_this) {\n return function(e) {\n var efct;\n try {\n efct = e.dataTransfer.effectAllowed;\n } catch (_error) {}\n e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy';\n noPropagation(e);\n return _this.emit(\"dragover\", e);\n };\n })(this),\n \"dragleave\": (function(_this) {\n return function(e) {\n return _this.emit(\"dragleave\", e);\n };\n })(this),\n \"drop\": (function(_this) {\n return function(e) {\n noPropagation(e);\n return _this.drop(e);\n };\n })(this),\n \"dragend\": (function(_this) {\n return function(e) {\n return _this.emit(\"dragend\", e);\n };\n })(this)\n }\n }\n ];\n this.clickableElements.forEach((function(_this) {\n return function(clickableElement) {\n return _this.listeners.push({\n element: clickableElement,\n events: {\n \"click\": function(evt) {\n if ((clickableElement !== _this.element) || (evt.target === _this.element || Dropzone.elementInside(evt.target, _this.element.querySelector(\".dz-message\")))) {\n _this.hiddenFileInput.click();\n }\n return true;\n }\n }\n });\n };\n })(this));\n this.enable();\n return this.options.init.call(this);\n };\n\n Dropzone.prototype.destroy = function() {\n var _ref;\n this.disable();\n this.removeAllFiles(true);\n if ((_ref = this.hiddenFileInput) != null ? _ref.parentNode : void 0) {\n this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n this.hiddenFileInput = null;\n }\n delete this.element.dropzone;\n return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\n };\n\n Dropzone.prototype.updateTotalUploadProgress = function() {\n var activeFiles, file, totalBytes, totalBytesSent, totalUploadProgress, _i, _len, _ref;\n totalBytesSent = 0;\n totalBytes = 0;\n activeFiles = this.getActiveFiles();\n if (activeFiles.length) {\n _ref = this.getActiveFiles();\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n file = _ref[_i];\n totalBytesSent += file.upload.bytesSent;\n totalBytes += file.upload.total;\n }\n totalUploadProgress = 100 * totalBytesSent / totalBytes;\n } else {\n totalUploadProgress = 100;\n }\n return this.emit(\"totaluploadprogress\", totalUploadProgress, totalBytes, totalBytesSent);\n };\n\n Dropzone.prototype._getParamName = function(n) {\n if (typeof this.options.paramName === \"function\") {\n return this.options.paramName(n);\n } else {\n return \"\" + this.options.paramName + (this.options.uploadMultiple ? \"[\" + n + \"]\" : \"\");\n }\n };\n\n Dropzone.prototype.getFallbackForm = function() {\n var existingFallback, fields, fieldsString, form;\n if (existingFallback = this.getExistingFallback()) {\n return existingFallback;\n }\n fieldsString = \"<div class=\\\"dz-fallback\\\">\";\n if (this.options.dictFallbackText) {\n fieldsString += \"<p>\" + this.options.dictFallbackText + \"</p>\";\n }\n fieldsString += \"<input type=\\\"file\\\" name=\\\"\" + (this._getParamName(0)) + \"\\\" \" + (this.options.uploadMultiple ? 'multiple=\"multiple\"' : void 0) + \" /><input type=\\\"submit\\\" value=\\\"Upload!\\\"></div>\";\n fields = Dropzone.createElement(fieldsString);\n if (this.element.tagName !== \"FORM\") {\n form = Dropzone.createElement(\"<form action=\\\"\" + this.options.url + \"\\\" enctype=\\\"multipart/form-data\\\" method=\\\"\" + this.options.method + \"\\\"></form>\");\n form.appendChild(fields);\n } else {\n this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n this.element.setAttribute(\"method\", this.options.method);\n }\n return form != null ? form : fields;\n };\n\n Dropzone.prototype.getExistingFallback = function() {\n var fallback, getFallback, tagName, _i, _len, _ref;\n getFallback = function(elements) {\n var el, _i, _len;\n for (_i = 0, _len = elements.length; _i < _len; _i++) {\n el = elements[_i];\n if (/(^| )fallback($| )/.test(el.className)) {\n return el;\n }\n }\n };\n _ref = [\"div\", \"form\"];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n tagName = _ref[_i];\n if (fallback = getFallback(this.element.getElementsByTagName(tagName))) {\n return fallback;\n }\n }\n };\n\n Dropzone.prototype.setupEventListeners = function() {\n var elementListeners, event, listener, _i, _len, _ref, _results;\n _ref = this.listeners;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n elementListeners = _ref[_i];\n _results.push((function() {\n var _ref1, _results1;\n _ref1 = elementListeners.events;\n _results1 = [];\n for (event in _ref1) {\n listener = _ref1[event];\n _results1.push(elementListeners.element.addEventListener(event, listener, false));\n }\n return _results1;\n })());\n }\n return _results;\n };\n\n Dropzone.prototype.removeEventListeners = function() {\n var elementListeners, event, listener, _i, _len, _ref, _results;\n _ref = this.listeners;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n elementListeners = _ref[_i];\n _results.push((function() {\n var _ref1, _results1;\n _ref1 = elementListeners.events;\n _results1 = [];\n for (event in _ref1) {\n listener = _ref1[event];\n _results1.push(elementListeners.element.removeEventListener(event, listener, false));\n }\n return _results1;\n })());\n }\n return _results;\n };\n\n Dropzone.prototype.disable = function() {\n var file, _i, _len, _ref, _results;\n this.clickableElements.forEach(function(element) {\n return element.classList.remove(\"dz-clickable\");\n });\n this.removeEventListeners();\n _ref = this.files;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n file = _ref[_i];\n _results.push(this.cancelUpload(file));\n }\n return _results;\n };\n\n Dropzone.prototype.enable = function() {\n this.clickableElements.forEach(function(element) {\n return element.classList.add(\"dz-clickable\");\n });\n return this.setupEventListeners();\n };\n\n Dropzone.prototype.filesize = function(size) {\n var cutoff, i, selectedSize, selectedUnit, unit, units, _i, _len;\n selectedSize = 0;\n selectedUnit = \"b\";\n if (size > 0) {\n units = ['TB', 'GB', 'MB', 'KB', 'b'];\n for (i = _i = 0, _len = units.length; _i < _len; i = ++_i) {\n unit = units[i];\n cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n if (size >= cutoff) {\n selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n selectedUnit = unit;\n break;\n }\n }\n selectedSize = Math.round(10 * selectedSize) / 10;\n }\n return \"<strong>\" + selectedSize + \"</strong> \" + selectedUnit;\n };\n\n Dropzone.prototype._updateMaxFilesReachedClass = function() {\n if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n if (this.getAcceptedFiles().length === this.options.maxFiles) {\n this.emit('maxfilesreached', this.files);\n }\n return this.element.classList.add(\"dz-max-files-reached\");\n } else {\n return this.element.classList.remove(\"dz-max-files-reached\");\n }\n };\n\n Dropzone.prototype.drop = function(e) {\n var files, items;\n if (!e.dataTransfer) {\n return;\n }\n this.emit(\"drop\", e);\n files = e.dataTransfer.files;\n this.emit(\"addedfiles\", files);\n if (files.length) {\n items = e.dataTransfer.items;\n if (items && items.length && (items[0].webkitGetAsEntry != null)) {\n this._addFilesFromItems(items);\n } else {\n this.handleFiles(files);\n }\n }\n };\n\n Dropzone.prototype.paste = function(e) {\n var items, _ref;\n if ((e != null ? (_ref = e.clipboardData) != null ? _ref.items : void 0 : void 0) == null) {\n return;\n }\n this.emit(\"paste\", e);\n items = e.clipboardData.items;\n if (items.length) {\n return this._addFilesFromItems(items);\n }\n };\n\n Dropzone.prototype.handleFiles = function(files) {\n var file, _i, _len, _results;\n _results = [];\n for (_i = 0, _len = files.length; _i < _len; _i++) {\n file = files[_i];\n _results.push(this.addFile(file));\n }\n return _results;\n };\n\n Dropzone.prototype._addFilesFromItems = function(items) {\n var entry, item, _i, _len, _results;\n _results = [];\n for (_i = 0, _len = items.length; _i < _len; _i++) {\n item = items[_i];\n if ((item.webkitGetAsEntry != null) && (entry = item.webkitGetAsEntry())) {\n if (entry.isFile) {\n _results.push(this.addFile(item.getAsFile()));\n } else if (entry.isDirectory) {\n _results.push(this._addFilesFromDirectory(entry, entry.name));\n } else {\n _results.push(void 0);\n }\n } else if (item.getAsFile != null) {\n if ((item.kind == null) || item.kind === \"file\") {\n _results.push(this.addFile(item.getAsFile()));\n } else {\n _results.push(void 0);\n }\n } else {\n _results.push(void 0);\n }\n }\n return _results;\n };\n\n Dropzone.prototype._addFilesFromDirectory = function(directory, path) {\n var dirReader, entriesReader;\n dirReader = directory.createReader();\n entriesReader = (function(_this) {\n return function(entries) {\n var entry, _i, _len;\n for (_i = 0, _len = entries.length; _i < _len; _i++) {\n entry = entries[_i];\n if (entry.isFile) {\n entry.file(function(file) {\n if (_this.options.ignoreHiddenFiles && file.name.substring(0, 1) === '.') {\n return;\n }\n file.fullPath = \"\" + path + \"/\" + file.name;\n return _this.addFile(file);\n });\n } else if (entry.isDirectory) {\n _this._addFilesFromDirectory(entry, \"\" + path + \"/\" + entry.name);\n }\n }\n };\n })(this);\n return dirReader.readEntries(entriesReader, function(error) {\n return typeof console !== \"undefined\" && console !== null ? typeof console.log === \"function\" ? console.log(error) : void 0 : void 0;\n });\n };\n\n Dropzone.prototype.accept = function(file, done) {\n if (file.size > this.options.maxFilesize * 1024 * 1024) {\n return done(this.options.dictFileTooBig.replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100).replace(\"{{maxFilesize}}\", this.options.maxFilesize));\n } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\n return done(this.options.dictInvalidFileType);\n } else if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n done(this.options.dictMaxFilesExceeded.replace(\"{{maxFiles}}\", this.options.maxFiles));\n return this.emit(\"maxfilesexceeded\", file);\n } else {\n return this.options.accept.call(this, file, done);\n }\n };\n\n Dropzone.prototype.addFile = function(file) {\n file.upload = {\n progress: 0,\n total: file.size,\n bytesSent: 0\n };\n this.files.push(file);\n file.status = Dropzone.ADDED;\n this.emit(\"addedfile\", file);\n this._enqueueThumbnail(file);\n return this.accept(file, (function(_this) {\n return function(error) {\n if (error) {\n file.accepted = false;\n _this._errorProcessing([file], error);\n } else {\n file.accepted = true;\n if (_this.options.autoQueue) {\n _this.enqueueFile(file);\n }\n }\n return _this._updateMaxFilesReachedClass();\n };\n })(this));\n };\n\n Dropzone.prototype.enqueueFiles = function(files) {\n var file, _i, _len;\n for (_i = 0, _len = files.length; _i < _len; _i++) {\n file = files[_i];\n this.enqueueFile(file);\n }\n return null;\n };\n\n Dropzone.prototype.enqueueFile = function(file) {\n if (file.status === Dropzone.ADDED && file.accepted === true) {\n file.status = Dropzone.QUEUED;\n if (this.options.autoProcessQueue) {\n return setTimeout(((function(_this) {\n return function() {\n return _this.processQueue();\n };\n })(this)), 0);\n }\n } else {\n throw new Error(\"This file can't be queued because it has already been processed or was rejected.\");\n }\n };\n\n Dropzone.prototype._thumbnailQueue = [];\n\n Dropzone.prototype._processingThumbnail = false;\n\n Dropzone.prototype._enqueueThumbnail = function(file) {\n if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) {\n this._thumbnailQueue.push(file);\n return setTimeout(((function(_this) {\n return function() {\n return _this._processThumbnailQueue();\n };\n })(this)), 0);\n }\n };\n\n Dropzone.prototype._processThumbnailQueue = function() {\n if (this._processingThumbnail || this._thumbnailQueue.length === 0) {\n return;\n }\n this._processingThumbnail = true;\n return this.createThumbnail(this._thumbnailQueue.shift(), (function(_this) {\n return function() {\n _this._processingThumbnail = false;\n return _this._processThumbnailQueue();\n };\n })(this));\n };\n\n Dropzone.prototype.removeFile = function(file) {\n if (file.status === Dropzone.UPLOADING) {\n this.cancelUpload(file);\n }\n this.files = without(this.files, file);\n this.emit(\"removedfile\", file);\n if (this.files.length === 0) {\n return this.emit(\"reset\");\n }\n };\n\n Dropzone.prototype.removeAllFiles = function(cancelIfNecessary) {\n var file, _i, _len, _ref;\n if (cancelIfNecessary == null) {\n cancelIfNecessary = false;\n }\n _ref = this.files.slice();\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n file = _ref[_i];\n if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) {\n this.removeFile(file);\n }\n }\n return null;\n };\n\n Dropzone.prototype.createThumbnail = function(file, callback) {\n var fileReader;\n fileReader = new FileReader;\n fileReader.onload = (function(_this) {\n return function() {\n if (file.type === \"image/svg+xml\") {\n _this.emit(\"thumbnail\", file, fileReader.result);\n if (callback != null) {\n callback();\n }\n return;\n }\n return _this.createThumbnailFromUrl(file, fileReader.result, callback);\n };\n })(this);\n return fileReader.readAsDataURL(file);\n };\n\n Dropzone.prototype.createThumbnailFromUrl = function(file, imageUrl, callback, crossOrigin) {\n var img;\n img = document.createElement(\"img\");\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n }\n img.onload = (function(_this) {\n return function() {\n var canvas, ctx, resizeInfo, thumbnail, _ref, _ref1, _ref2, _ref3;\n file.width = img.width;\n file.height = img.height;\n resizeInfo = _this.options.resize.call(_this, file);\n if (resizeInfo.trgWidth == null) {\n resizeInfo.trgWidth = resizeInfo.optWidth;\n }\n if (resizeInfo.trgHeight == null) {\n resizeInfo.trgHeight = resizeInfo.optHeight;\n }\n canvas = document.createElement(\"canvas\");\n ctx = canvas.getContext(\"2d\");\n canvas.width = resizeInfo.trgWidth;\n canvas.height = resizeInfo.trgHeight;\n drawImageIOSFix(ctx, img, (_ref = resizeInfo.srcX) != null ? _ref : 0, (_ref1 = resizeInfo.srcY) != null ? _ref1 : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, (_ref2 = resizeInfo.trgX) != null ? _ref2 : 0, (_ref3 = resizeInfo.trgY) != null ? _ref3 : 0, resizeInfo.trgWidth, resizeInfo.trgHeight);\n thumbnail = canvas.toDataURL(\"image/png\");\n _this.emit(\"thumbnail\", file, thumbnail);\n if (callback != null) {\n return callback();\n }\n };\n })(this);\n if (callback != null) {\n img.onerror = callback;\n }\n return img.src = imageUrl;\n };\n\n Dropzone.prototype.processQueue = function() {\n var i, parallelUploads, processingLength, queuedFiles;\n parallelUploads = this.options.parallelUploads;\n processingLength = this.getUploadingFiles().length;\n i = processingLength;\n if (processingLength >= parallelUploads) {\n return;\n }\n queuedFiles = this.getQueuedFiles();\n if (!(queuedFiles.length > 0)) {\n return;\n }\n if (this.options.uploadMultiple) {\n return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength));\n } else {\n while (i < parallelUploads) {\n if (!queuedFiles.length) {\n return;\n }\n this.processFile(queuedFiles.shift());\n i++;\n }\n }\n };\n\n Dropzone.prototype.processFile = function(file) {\n return this.processFiles([file]);\n };\n\n Dropzone.prototype.processFiles = function(files) {\n var file, _i, _len;\n for (_i = 0, _len = files.length; _i < _len; _i++) {\n file = files[_i];\n file.processing = true;\n file.status = Dropzone.UPLOADING;\n this.emit(\"processing\", file);\n }\n if (this.options.uploadMultiple) {\n this.emit(\"processingmultiple\", files);\n }\n return this.uploadFiles(files);\n };\n\n Dropzone.prototype._getFilesWithXhr = function(xhr) {\n var file, files;\n return files = (function() {\n var _i, _len, _ref, _results;\n _ref = this.files;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n file = _ref[_i];\n if (file.xhr === xhr) {\n _results.push(file);\n }\n }\n return _results;\n }).call(this);\n };\n\n Dropzone.prototype.cancelUpload = function(file) {\n var groupedFile, groupedFiles, _i, _j, _len, _len1, _ref;\n if (file.status === Dropzone.UPLOADING) {\n groupedFiles = this._getFilesWithXhr(file.xhr);\n for (_i = 0, _len = groupedFiles.length; _i < _len; _i++) {\n groupedFile = groupedFiles[_i];\n groupedFile.status = Dropzone.CANCELED;\n }\n file.xhr.abort();\n for (_j = 0, _len1 = groupedFiles.length; _j < _len1; _j++) {\n groupedFile = groupedFiles[_j];\n this.emit(\"canceled\", groupedFile);\n }\n if (this.options.uploadMultiple) {\n this.emit(\"canceledmultiple\", groupedFiles);\n }\n } else if ((_ref = file.status) === Dropzone.ADDED || _ref === Dropzone.QUEUED) {\n file.status = Dropzone.CANCELED;\n this.emit(\"canceled\", file);\n if (this.options.uploadMultiple) {\n this.emit(\"canceledmultiple\", [file]);\n }\n }\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n };\n\n resolveOption = function() {\n var args, option;\n option = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n if (typeof option === 'function') {\n return option.apply(this, args);\n }\n return option;\n };\n\n Dropzone.prototype.uploadFile = function(file) {\n return this.uploadFiles([file]);\n };\n\n Dropzone.prototype.uploadFiles = function(files) {\n var file, formData, handleError, headerName, headerValue, headers, i, input, inputName, inputType, key, method, option, progressObj, response, updateProgress, url, value, xhr, _i, _j, _k, _l, _len, _len1, _len2, _len3, _m, _ref, _ref1, _ref2, _ref3, _ref4, _ref5;\n xhr = new XMLHttpRequest();\n for (_i = 0, _len = files.length; _i < _len; _i++) {\n file = files[_i];\n file.xhr = xhr;\n }\n method = resolveOption(this.options.method, files);\n url = resolveOption(this.options.url, files);\n xhr.open(method, url, true);\n xhr.withCredentials = !!this.options.withCredentials;\n response = null;\n handleError = (function(_this) {\n return function() {\n var _j, _len1, _results;\n _results = [];\n for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n file = files[_j];\n _results.push(_this._errorProcessing(files, response || _this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status), xhr));\n }\n return _results;\n };\n })(this);\n updateProgress = (function(_this) {\n return function(e) {\n var allFilesFinished, progress, _j, _k, _l, _len1, _len2, _len3, _results;\n if (e != null) {\n progress = 100 * e.loaded / e.total;\n for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n file = files[_j];\n file.upload = {\n progress: progress,\n total: e.total,\n bytesSent: e.loaded\n };\n }\n } else {\n allFilesFinished = true;\n progress = 100;\n for (_k = 0, _len2 = files.length; _k < _len2; _k++) {\n file = files[_k];\n if (!(file.upload.progress === 100 && file.upload.bytesSent === file.upload.total)) {\n allFilesFinished = false;\n }\n file.upload.progress = progress;\n file.upload.bytesSent = file.upload.total;\n }\n if (allFilesFinished) {\n return;\n }\n }\n _results = [];\n for (_l = 0, _len3 = files.length; _l < _len3; _l++) {\n file = files[_l];\n _results.push(_this.emit(\"uploadprogress\", file, progress, file.upload.bytesSent));\n }\n return _results;\n };\n })(this);\n xhr.onload = (function(_this) {\n return function(e) {\n var _ref;\n if (files[0].status === Dropzone.CANCELED) {\n return;\n }\n if (xhr.readyState !== 4) {\n return;\n }\n response = xhr.responseText;\n if (xhr.getResponseHeader(\"content-type\") && ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")) {\n try {\n response = JSON.parse(response);\n } catch (_error) {\n e = _error;\n response = \"Invalid JSON response from server.\";\n }\n }\n updateProgress();\n if (!((200 <= (_ref = xhr.status) && _ref < 300))) {\n return handleError();\n } else {\n return _this._finished(files, response, e);\n }\n };\n })(this);\n xhr.onerror = (function(_this) {\n return function() {\n if (files[0].status === Dropzone.CANCELED) {\n return;\n }\n return handleError();\n };\n })(this);\n progressObj = (_ref = xhr.upload) != null ? _ref : xhr;\n progressObj.onprogress = updateProgress;\n headers = {\n \"Accept\": \"application/json\",\n \"Cache-Control\": \"no-cache\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n };\n if (this.options.headers) {\n extend(headers, this.options.headers);\n }\n for (headerName in headers) {\n headerValue = headers[headerName];\n if (headerValue) {\n xhr.setRequestHeader(headerName, headerValue);\n }\n }\n formData = new FormData();\n if (this.options.params) {\n _ref1 = this.options.params;\n for (key in _ref1) {\n value = _ref1[key];\n formData.append(key, value);\n }\n }\n for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n file = files[_j];\n this.emit(\"sending\", file, xhr, formData);\n }\n if (this.options.uploadMultiple) {\n this.emit(\"sendingmultiple\", files, xhr, formData);\n }\n if (this.element.tagName === \"FORM\") {\n _ref2 = this.element.querySelectorAll(\"input, textarea, select, button\");\n for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n input = _ref2[_k];\n inputName = input.getAttribute(\"name\");\n inputType = input.getAttribute(\"type\");\n if (input.tagName === \"SELECT\" && input.hasAttribute(\"multiple\")) {\n _ref3 = input.options;\n for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) {\n option = _ref3[_l];\n if (option.selected) {\n formData.append(inputName, option.value);\n }\n }\n } else if (!inputType || ((_ref4 = inputType.toLowerCase()) !== \"checkbox\" && _ref4 !== \"radio\") || input.checked) {\n formData.append(inputName, input.value);\n }\n }\n }\n for (i = _m = 0, _ref5 = files.length - 1; 0 <= _ref5 ? _m <= _ref5 : _m >= _ref5; i = 0 <= _ref5 ? ++_m : --_m) {\n formData.append(this._getParamName(i), files[i], files[i].name);\n }\n return this.submitRequest(xhr, formData, files);\n };\n\n Dropzone.prototype.submitRequest = function(xhr, formData, files) {\n return xhr.send(formData);\n };\n\n Dropzone.prototype._finished = function(files, responseText, e) {\n var file, _i, _len;\n for (_i = 0, _len = files.length; _i < _len; _i++) {\n file = files[_i];\n file.status = Dropzone.SUCCESS;\n this.emit(\"success\", file, responseText, e);\n this.emit(\"complete\", file);\n }\n if (this.options.uploadMultiple) {\n this.emit(\"successmultiple\", files, responseText, e);\n this.emit(\"completemultiple\", files);\n }\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n };\n\n Dropzone.prototype._errorProcessing = function(files, message, xhr) {\n var file, _i, _len;\n for (_i = 0, _len = files.length; _i < _len; _i++) {\n file = files[_i];\n file.status = Dropzone.ERROR;\n this.emit(\"error\", file, message, xhr);\n this.emit(\"complete\", file);\n }\n if (this.options.uploadMultiple) {\n this.emit(\"errormultiple\", files, message, xhr);\n this.emit(\"completemultiple\", files);\n }\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n };\n\n return Dropzone;\n\n })(Emitter);\n\n Dropzone.version = \"4.2.0\";\n\n Dropzone.options = {};\n\n Dropzone.optionsForElement = function(element) {\n if (element.getAttribute(\"id\")) {\n return Dropzone.options[camelize(element.getAttribute(\"id\"))];\n } else {\n return void 0;\n }\n };\n\n Dropzone.instances = [];\n\n Dropzone.forElement = function(element) {\n if (typeof element === \"string\") {\n element = document.querySelector(element);\n }\n if ((element != null ? element.dropzone : void 0) == null) {\n throw new Error(\"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\");\n }\n return element.dropzone;\n };\n\n Dropzone.autoDiscover = true;\n\n Dropzone.discover = function() {\n var checkElements, dropzone, dropzones, _i, _len, _results;\n if (document.querySelectorAll) {\n dropzones = document.querySelectorAll(\".dropzone\");\n } else {\n dropzones = [];\n checkElements = function(elements) {\n var el, _i, _len, _results;\n _results = [];\n for (_i = 0, _len = elements.length; _i < _len; _i++) {\n el = elements[_i];\n if (/(^| )dropzone($| )/.test(el.className)) {\n _results.push(dropzones.push(el));\n } else {\n _results.push(void 0);\n }\n }\n return _results;\n };\n checkElements(document.getElementsByTagName(\"div\"));\n checkElements(document.getElementsByTagName(\"form\"));\n }\n _results = [];\n for (_i = 0, _len = dropzones.length; _i < _len; _i++) {\n dropzone = dropzones[_i];\n if (Dropzone.optionsForElement(dropzone) !== false) {\n _results.push(new Dropzone(dropzone));\n } else {\n _results.push(void 0);\n }\n }\n return _results;\n };\n\n Dropzone.blacklistedBrowsers = [/opera.*Macintosh.*version\\/12/i];\n\n Dropzone.isBrowserSupported = function() {\n var capableBrowser, regex, _i, _len, _ref;\n capableBrowser = true;\n if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {\n if (!(\"classList\" in document.createElement(\"a\"))) {\n capableBrowser = false;\n } else {\n _ref = Dropzone.blacklistedBrowsers;\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n regex = _ref[_i];\n if (regex.test(navigator.userAgent)) {\n capableBrowser = false;\n continue;\n }\n }\n }\n } else {\n capableBrowser = false;\n }\n return capableBrowser;\n };\n\n without = function(list, rejectedItem) {\n var item, _i, _len, _results;\n _results = [];\n for (_i = 0, _len = list.length; _i < _len; _i++) {\n item = list[_i];\n if (item !== rejectedItem) {\n _results.push(item);\n }\n }\n return _results;\n };\n\n camelize = function(str) {\n return str.replace(/[\\-_](\\w)/g, function(match) {\n return match.charAt(1).toUpperCase();\n });\n };\n\n Dropzone.createElement = function(string) {\n var div;\n div = document.createElement(\"div\");\n div.innerHTML = string;\n return div.childNodes[0];\n };\n\n Dropzone.elementInside = function(element, container) {\n if (element === container) {\n return true;\n }\n while (element = element.parentNode) {\n if (element === container) {\n return true;\n }\n }\n return false;\n };\n\n Dropzone.getElement = function(el, name) {\n var element;\n if (typeof el === \"string\") {\n element = document.querySelector(el);\n } else if (el.nodeType != null) {\n element = el;\n }\n if (element == null) {\n throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector or a plain HTML element.\");\n }\n return element;\n };\n\n Dropzone.getElements = function(els, name) {\n var e, el, elements, _i, _j, _len, _len1, _ref;\n if (els instanceof Array) {\n elements = [];\n try {\n for (_i = 0, _len = els.length; _i < _len; _i++) {\n el = els[_i];\n elements.push(this.getElement(el, name));\n }\n } catch (_error) {\n e = _error;\n elements = null;\n }\n } else if (typeof els === \"string\") {\n elements = [];\n _ref = document.querySelectorAll(els);\n for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\n el = _ref[_j];\n elements.push(el);\n }\n } else if (els.nodeType != null) {\n elements = [els];\n }\n if (!((elements != null) && elements.length)) {\n throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.\");\n }\n return elements;\n };\n\n Dropzone.confirm = function(question, accepted, rejected) {\n if (window.confirm(question)) {\n return accepted();\n } else if (rejected != null) {\n return rejected();\n }\n };\n\n Dropzone.isValidFile = function(file, acceptedFiles) {\n var baseMimeType, mimeType, validType, _i, _len;\n if (!acceptedFiles) {\n return true;\n }\n acceptedFiles = acceptedFiles.split(\",\");\n mimeType = file.type;\n baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n for (_i = 0, _len = acceptedFiles.length; _i < _len; _i++) {\n validType = acceptedFiles[_i];\n validType = validType.trim();\n if (validType.charAt(0) === \".\") {\n if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) {\n return true;\n }\n } else if (/\\/\\*$/.test(validType)) {\n if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\n return true;\n }\n } else {\n if (mimeType === validType) {\n return true;\n }\n }\n }\n return false;\n };\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null) {\n jQuery.fn.dropzone = function(options) {\n return this.each(function() {\n return new Dropzone(this, options);\n });\n };\n }\n\n if (typeof module !== \"undefined\" && module !== null) {\n module.exports = Dropzone;\n } else {\n window.Dropzone = Dropzone;\n }\n\n Dropzone.ADDED = \"added\";\n\n Dropzone.QUEUED = \"queued\";\n\n Dropzone.ACCEPTED = Dropzone.QUEUED;\n\n Dropzone.UPLOADING = \"uploading\";\n\n Dropzone.PROCESSING = Dropzone.UPLOADING;\n\n Dropzone.CANCELED = \"canceled\";\n\n Dropzone.ERROR = \"error\";\n\n Dropzone.SUCCESS = \"success\";\n\n\n /*\n \n Bugfix for iOS 6 and 7\n Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\n based on the work of https://github.com/stomita/ios-imagefile-megapixel\n */\n\n detectVerticalSquash = function(img) {\n var alpha, canvas, ctx, data, ey, ih, iw, py, ratio, sy;\n iw = img.naturalWidth;\n ih = img.naturalHeight;\n canvas = document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = ih;\n ctx = canvas.getContext(\"2d\");\n ctx.drawImage(img, 0, 0);\n data = ctx.getImageData(0, 0, 1, ih).data;\n sy = 0;\n ey = ih;\n py = ih;\n while (py > sy) {\n alpha = data[(py - 1) * 4 + 3];\n if (alpha === 0) {\n ey = py;\n } else {\n sy = py;\n }\n py = (ey + sy) >> 1;\n }\n ratio = py / ih;\n if (ratio === 0) {\n return 1;\n } else {\n return ratio;\n }\n };\n\n drawImageIOSFix = function(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\n var vertSquashRatio;\n vertSquashRatio = detectVerticalSquash(img);\n return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\n };\n\n\n /*\n * contentloaded.js\n *\n * Author: Diego Perini (diego.perini at gmail.com)\n * Summary: cross-browser wrapper for DOMContentLoaded\n * Updated: 20101020\n * License: MIT\n * Version: 1.2\n *\n * URL:\n * http://javascript.nwbox.com/ContentLoaded/\n * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\n */\n\n contentLoaded = function(win, fn) {\n var add, doc, done, init, poll, pre, rem, root, top;\n done = false;\n top = true;\n doc = win.document;\n root = doc.documentElement;\n add = (doc.addEventListener ? \"addEventListener\" : \"attachEvent\");\n rem = (doc.addEventListener ? \"removeEventListener\" : \"detachEvent\");\n pre = (doc.addEventListener ? \"\" : \"on\");\n init = function(e) {\n if (e.type === \"readystatechange\" && doc.readyState !== \"complete\") {\n return;\n }\n (e.type === \"load\" ? win : doc)[rem](pre + e.type, init, false);\n if (!done && (done = true)) {\n return fn.call(win, e.type || e);\n }\n };\n poll = function() {\n var e;\n try {\n root.doScroll(\"left\");\n } catch (_error) {\n e = _error;\n setTimeout(poll, 50);\n return;\n }\n return init(\"poll\");\n };\n if (doc.readyState !== \"complete\") {\n if (doc.createEventObject && root.doScroll) {\n try {\n top = !win.frameElement;\n } catch (_error) {}\n if (top) {\n poll();\n }\n }\n doc[add](pre + \"DOMContentLoaded\", init, false);\n doc[add](pre + \"readystatechange\", init, false);\n return win[add](pre + \"load\", init, false);\n }\n };\n\n Dropzone._autoDiscoverFunction = function() {\n if (Dropzone.autoDiscover) {\n return Dropzone.discover();\n }\n };\n\n contentLoaded(window, Dropzone._autoDiscoverFunction);\n\n}).call(this);\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./local_storage_sync.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./local_storage_sync.vue?vue&type=script&lang=js\"","<script>\nimport { isEqual, isString } from 'lodash';\n\n/**\n * This component will save and restore a value to and from localStorage.\n * The value will be saved only when the value changes; the initial value won't be saved.\n *\n * By default, the value will be saved using JSON.stringify(), and retrieved back using JSON.parse().\n *\n * If you would like to save the raw string instead, you may set the 'asString' prop to true, though be aware that this is a\n * legacy prop to maintain backwards compatibility.\n *\n * For new components saving data for the first time, it's recommended to not use 'asString' even if you're saving a string; it will still be\n * saved and restored properly using JSON.stringify()/JSON.parse().\n */\nexport default {\n props: {\n storageKey: {\n type: String,\n required: true,\n },\n value: {\n type: [String, Number, Boolean, Array, Object],\n required: false,\n default: '',\n },\n asString: {\n type: Boolean,\n required: false,\n default: false,\n },\n persist: {\n type: Boolean,\n required: false,\n default: true,\n },\n clear: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n watch: {\n value(newVal) {\n if (!this.persist) return;\n\n this.saveValue(this.serialize(newVal));\n },\n clear(newVal) {\n if (newVal) {\n localStorage.removeItem(this.storageKey);\n }\n },\n },\n mounted() {\n // On mount, trigger update if we actually have a localStorageValue\n const { exists, value } = this.getStorageValue();\n\n if (exists && !isEqual(value, this.value)) {\n this.$emit('input', value);\n }\n },\n methods: {\n getStorageValue() {\n const value = localStorage.getItem(this.storageKey);\n\n if (value === null) {\n return { exists: false };\n }\n\n try {\n return { exists: true, value: this.deserialize(value) };\n } catch {\n // eslint-disable-next-line no-console\n console.warn(\n `[gitlab] Failed to deserialize value from localStorage (key=${this.storageKey})`,\n value,\n );\n // default to \"don't use localStorage value\"\n return { exists: false };\n }\n },\n saveValue(val) {\n localStorage.setItem(this.storageKey, val);\n },\n serialize(val) {\n if (!isString(val) && this.asString) {\n // eslint-disable-next-line no-console\n console.warn(\n `[gitlab] LocalStorageSync is saving`,\n val,\n `to the key \"${this.storageKey}\", but it is not a string and the 'asString' prop is true. This will save and restore the stringified value rather than the original value. If this is not intended, please remove or set the 'asString' prop to false.`,\n );\n }\n\n return this.asString ? val : JSON.stringify(val);\n },\n deserialize(val) {\n return this.asString ? val : JSON.parse(val);\n },\n },\n render() {\n return this.$scopedSlots.default?.();\n },\n};\n</script>\n","var render, staticRenderFns\nimport script from \"./local_storage_sync.vue?vue&type=script&lang=js\"\nexport * from \"./local_storage_sync.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import createEventHub from '~/helpers/event_hub_factory';\n\nexport default createEventHub();\n","/**\n * Returns parsed notes filter data from a given element's dataset\n *\n * @param {Element} el containing info in the dataset\n */\nexport const getNotesFilterData = (el) => {\n const { notesFilterValue: valueData, notesFilters: filtersData } = el.dataset;\n\n const filtersParsed = filtersData ? JSON.parse(filtersData) : {};\n const filters = Object.keys(filtersParsed).map((key) => ({\n title: key,\n value: filtersParsed[key],\n }));\n\n const value = valueData ? Number(valueData) : undefined;\n\n return {\n notesFilters: filters,\n notesFilterValue: value,\n };\n};\n","var baseSet = require('./_baseSet');\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nmodule.exports = set;\n","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('gl-button',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.$options.modalId),expression:\"$options.modalId\"}],attrs:{\"variant\":\"link\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.__('Email a new %{name} to this project')},scopedSlots:_vm._u([{key:\"name\",fn:function(){return [_vm._v(_vm._s(_vm.issuableName))]},proxy:true}])})],1),_vm._v(\" \"),_c('gl-modal',{ref:\"modal\",attrs:{\"modal-id\":_vm.$options.modalId},scopedSlots:_vm._u([{key:\"modal-title\",fn:function(){return [_c('gl-sprintf',{attrs:{\"message\":_vm.__('Create new %{name} by email')},scopedSlots:_vm._u([{key:\"name\",fn:function(){return [_vm._v(_vm._s(_vm.issuableName))]},proxy:true}])})]},proxy:true},{key:\"modal-footer\",fn:function(){return [_c('gl-button',{attrs:{\"category\":\"secondary\"},on:{\"click\":_vm.cancelHandler}},[_vm._v(_vm._s(_vm.__('Cancel')))])]},proxy:true}])},[_vm._v(\" \"),_c('p',[_c('gl-sprintf',{attrs:{\"message\":_vm.__(\n 'You can create a new %{name} inside this project by sending an email to the following email address:',\n )},scopedSlots:_vm._u([{key:\"name\",fn:function(){return [_vm._v(_vm._s(_vm.issuableName))]},proxy:true}])})],1),_vm._v(\" \"),_c('gl-form-input-group',{staticClass:\"gl-mb-4\",attrs:{\"value\":_vm.email,\"readonly\":\"\",\"select-on-click\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('modal-copy-button',{attrs:{\"text\":_vm.email,\"title\":_vm.__('Copy'),\"modal-id\":_vm.$options.modalId}}),_vm._v(\" \"),_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"href\":_vm.mailToLink,\"title\":_vm.$options.i18n.sendEmail,\"aria-label\":_vm.$options.i18n.sendEmail,\"icon\":\"mail\"}})]},proxy:true}])}),_vm._v(\" \"),_c('p',[_c('gl-sprintf',{attrs:{\"message\":_vm.__(\n 'The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported.',\n )},scopedSlots:_vm._u([{key:\"quickActionsLink\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.quickActionsHelpPath,\"target\":\"_blank\"}},[_vm._v(_vm._s(content))])]}},{key:\"markdownLink\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.markdownHelpPath,\"target\":\"_blank\"}},[_vm._v(_vm._s(content))])]}}])})],1),_vm._v(\" \"),_c('p',[_c('gl-sprintf',{attrs:{\"message\":_vm.__(\n 'This is a private email address %{helpIcon} generated just for you. Anyone who has it can create issues or merge requests as if they were you. If that happens, %{resetLinkStart}reset this token%{resetLinkEnd}.',\n )},scopedSlots:_vm._u([{key:\"helpIcon\",fn:function(){return [_c('gl-link',{attrs:{\"href\":_vm.emailsHelpPagePath,\"target\":\"_blank\"}},[_c('help-icon')],1)]},proxy:true},{key:\"resetLink\",fn:function({ content }){return [_c('gl-button',{attrs:{\"variant\":\"link\",\"data-testid\":\"reset_email_token_link\"},on:{\"click\":_vm.resetIncomingEmailToken}},[_vm._v(\"\\n \"+_vm._s(content)+\"\\n \")])]}}])})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_by_email.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_by_email.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlButton,\n GlModal,\n GlModalDirective,\n GlTooltipDirective,\n GlSprintf,\n GlLink,\n GlFormInputGroup,\n} from '@gitlab/ui';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport axios from '~/lib/utils/axios_utils';\nimport { sprintf, __ } from '~/locale';\nimport ModalCopyButton from '~/vue_shared/components/modal_copy_button.vue';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\n\nexport default {\n i18n: {\n sendEmail: __('Send email'),\n },\n name: 'IssuableByEmail',\n components: {\n GlButton,\n GlModal,\n GlSprintf,\n GlLink,\n GlFormInputGroup,\n HelpIcon,\n ModalCopyButton,\n },\n directives: {\n GlModal: GlModalDirective,\n GlTooltip: GlTooltipDirective,\n },\n inject: {\n initialEmail: {\n default: null,\n },\n issuableType: {\n default: TYPE_ISSUE,\n },\n emailsHelpPagePath: {\n default: '',\n },\n quickActionsHelpPath: {\n default: '',\n },\n markdownHelpPath: {\n default: '',\n },\n resetPath: {\n default: '',\n },\n },\n data() {\n return {\n email: this.initialEmail,\n issuableName: this.issuableType === TYPE_ISSUE ? __('issue') : __('merge request'),\n };\n },\n computed: {\n mailToLink() {\n const subject = sprintf(__('Enter the %{name} title'), {\n name: this.issuableName,\n });\n const body = sprintf(__('Enter the %{name} description'), {\n name: this.issuableName,\n });\n return `mailto:${this.email}?subject=${subject}&body=${body}`;\n },\n },\n methods: {\n async resetIncomingEmailToken() {\n try {\n const {\n data: { new_address: newAddress },\n } = await axios.put(this.resetPath);\n this.email = newAddress;\n } catch {\n this.$toast.show(__('There was an error when reseting email token.'));\n }\n },\n cancelHandler() {\n this.$refs.modal.hide();\n },\n },\n modalId: 'issuable-email-modal',\n};\n</script>\n\n<template>\n <div>\n <gl-button v-gl-modal=\"$options.modalId\" variant=\"link\"\n ><gl-sprintf :message=\"__('Email a new %{name} to this project')\"\n ><template #name>{{ issuableName }}</template></gl-sprintf\n ></gl-button\n >\n <gl-modal ref=\"modal\" :modal-id=\"$options.modalId\">\n <template #modal-title>\n <gl-sprintf :message=\"__('Create new %{name} by email')\">\n <template #name>{{ issuableName }}</template>\n </gl-sprintf>\n </template>\n <p>\n <gl-sprintf\n :message=\"\n __(\n 'You can create a new %{name} inside this project by sending an email to the following email address:',\n )\n \"\n >\n <template #name>{{ issuableName }}</template>\n </gl-sprintf>\n </p>\n <gl-form-input-group :value=\"email\" readonly select-on-click class=\"gl-mb-4\">\n <template #append>\n <modal-copy-button :text=\"email\" :title=\"__('Copy')\" :modal-id=\"$options.modalId\" />\n <gl-button\n v-gl-tooltip.hover\n :href=\"mailToLink\"\n :title=\"$options.i18n.sendEmail\"\n :aria-label=\"$options.i18n.sendEmail\"\n icon=\"mail\"\n />\n </template>\n </gl-form-input-group>\n <p>\n <gl-sprintf\n :message=\"\n __(\n 'The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported.',\n )\n \"\n >\n <template #quickActionsLink=\"{ content }\">\n <gl-link :href=\"quickActionsHelpPath\" target=\"_blank\">{{ content }}</gl-link>\n </template>\n <template #markdownLink=\"{ content }\">\n <gl-link :href=\"markdownHelpPath\" target=\"_blank\">{{ content }}</gl-link>\n </template>\n </gl-sprintf>\n </p>\n <p>\n <gl-sprintf\n :message=\"\n __(\n 'This is a private email address %{helpIcon} generated just for you. Anyone who has it can create issues or merge requests as if they were you. If that happens, %{resetLinkStart}reset this token%{resetLinkEnd}.',\n )\n \"\n >\n <template #helpIcon>\n <gl-link :href=\"emailsHelpPagePath\" target=\"_blank\">\n <help-icon />\n </gl-link>\n </template>\n <template #resetLink=\"{ content }\">\n <gl-button\n variant=\"link\"\n data-testid=\"reset_email_token_link\"\n @click=\"resetIncomingEmailToken\"\n >\n {{ content }}\n </gl-button>\n </template>\n </gl-sprintf>\n </p>\n <template #modal-footer>\n <gl-button category=\"secondary\" @click=\"cancelHandler\">{{ __('Cancel') }}</gl-button>\n </template>\n </gl-modal>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./issuable_by_email.vue?vue&type=template&id=063f56ce\"\nimport script from \"./issuable_by_email.vue?vue&type=script&lang=js\"\nexport * from \"./issuable_by_email.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestSetLabels\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestSetLabelsInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"updateIssuableLabels\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestSetLabels\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":310}};\n doc.loc.source = {\"body\":\"mutation mergeRequestSetLabels($input: MergeRequestSetLabelsInput!) {\\n updateIssuableLabels: mergeRequestSetLabels(input: $input) {\\n errors\\n issuable: mergeRequest {\\n id\\n labels {\\n nodes {\\n color\\n description\\n id\\n title\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"mergeRequestSetLabels\"] = oneQuery(doc, \"mergeRequestSetLabels\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"issueMoveList\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"boardId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fromListId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"toListId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"moveBeforeId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"moveAfterId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableMoveList\"},\"name\":{\"kind\":\"Name\",\"value\":\"issueMoveList\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"boardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"boardId\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"fromListId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fromListId\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"toListId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"toListId\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"moveBeforeId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"moveBeforeId\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"moveAfterId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"moveAfterId\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":532}};\n doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/boards/graphql/issue.fragment.graphql\\\"\\n\\nmutation issueMoveList(\\n $projectPath: ID!\\n $iid: String!\\n $boardId: BoardID!\\n $fromListId: ID\\n $toListId: ID\\n $moveBeforeId: ID\\n $moveAfterId: ID\\n) {\\n issuableMoveList: issueMoveList(\\n input: {\\n projectPath: $projectPath\\n iid: $iid\\n boardId: $boardId\\n fromListId: $fromListId\\n toListId: $toListId\\n moveBeforeId: $moveBeforeId\\n moveAfterId: $moveAfterId\\n }\\n ) {\\n issuable: issue {\\n ...Issue\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/boards/graphql/issue.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueMoveList\"] = oneQuery(doc, \"issueMoveList\");\n \n","import $ from 'jquery';\nimport { difference, intersection, union } from 'lodash';\nimport { createAlert } from '~/alert';\nimport axios from '~/lib/utils/axios_utils';\nimport { __ } from '~/locale';\n\nexport default {\n init({ form, issues, prefixId } = {}) {\n this.prefixId = prefixId || 'issue_';\n this.form = form || this.getElement('.bulk-update');\n this.$labelDropdown = this.form.find('.js-label-select');\n this.issues = issues || this.getElement('.issues-list .issue');\n this.willUpdateLabels = false;\n this.bindEvents();\n },\n\n bindEvents() {\n // eslint-disable-next-line @gitlab/no-global-event-off\n return this.form.off('submit').on('submit', this.onFormSubmit.bind(this));\n },\n\n onFormSubmit(e) {\n e.preventDefault();\n return this.submit();\n },\n\n submit() {\n axios[this.form.attr('method')](this.form.attr('action'), this.getFormDataAsObject())\n .then(() => window.location.reload())\n .catch(() => this.onFormSubmitFailure());\n },\n\n onFormSubmitFailure() {\n this.form.find('[type=\"submit\"]').enable();\n return createAlert({\n message: __('Issue update failed'),\n });\n },\n\n /**\n * Simple form serialization, it will return just what we need\n * Returns key/value pairs from form data\n */\n\n getFormDataAsObject() {\n const assigneeIds = this.form.find('input[name=\"update[assignee_ids][]\"]').val();\n const formData = {\n update: {\n state_event: this.form.find('input[name=\"update[state_event]\"]').val(),\n milestone_id: this.form.find('input[name=\"update[milestone_id]\"]').val(),\n issuable_ids: this.form.find('input[name=\"update[issuable_ids]\"]').val(),\n subscription_event: this.form.find('input[name=\"update[subscription_event]\"]').val(),\n health_status: this.form.find('input[name=\"update[health_status]\"]').val(),\n epic_id: this.form.find('input[name=\"update[epic_id]\"]').val(),\n sprint_id: this.form.find('input[name=\"update[iteration_id]\"]').val(),\n add_label_ids: [],\n remove_label_ids: [],\n confidential: this.form.find('input[name=\"update[confidentiality]\"]').val(),\n },\n };\n if (assigneeIds) {\n formData.update.assignee_ids = [assigneeIds];\n }\n if (this.willUpdateLabels) {\n formData.update.add_label_ids = this.$labelDropdown.data('user-checked');\n formData.update.remove_label_ids = this.$labelDropdown.data('user-unchecked');\n }\n return formData;\n },\n\n setOriginalDropdownData() {\n const $labelSelect = $('.bulk-update .js-label-select');\n const userCheckedIds = $labelSelect.data('user-checked') || [];\n const userUncheckedIds = $labelSelect.data('user-unchecked') || [];\n\n // Common labels plus user checked labels minus user unchecked labels\n const checkedIdsToShow = difference(\n union(this.getOriginalCommonIds(), userCheckedIds),\n userUncheckedIds,\n );\n\n // Indeterminate labels minus user checked labels minus user unchecked labels\n const indeterminateIdsToShow = difference(\n this.getOriginalIndeterminateIds(),\n userCheckedIds,\n userUncheckedIds,\n );\n\n $labelSelect.data('marked', checkedIdsToShow);\n $labelSelect.data('indeterminate', indeterminateIdsToShow);\n },\n\n // From issuable's initial bulk selection\n getOriginalCommonIds() {\n const labelIds = [];\n this.getElement('.issuable-list input[type=\"checkbox\"]:checked').each((i, el) => {\n labelIds.push(this.getElement(`#${this.prefixId}${el.dataset.id}`).data('labels'));\n });\n return intersection.apply(this, labelIds);\n },\n\n // From issuable's initial bulk selection\n getOriginalIndeterminateIds() {\n const uniqueIds = [];\n const labelIds = [];\n let issuableLabels = [];\n\n // Collect unique label IDs for all checked issues\n this.getElement('.issuable-list input[type=\"checkbox\"]:checked').each((i, el) => {\n issuableLabels = this.getElement(`#${this.prefixId}${el.dataset.id}`).data('labels');\n issuableLabels.forEach((labelId) => {\n // Store unique IDs\n if (uniqueIds.indexOf(labelId) === -1) {\n uniqueIds.push(labelId);\n }\n });\n // Store array of IDs per issuable\n labelIds.push(issuableLabels);\n });\n // Add uniqueIds to add it as argument for _.intersection\n labelIds.unshift(uniqueIds);\n // Return IDs that are present but not in all selected issuables\n return uniqueIds.filter((x) => !intersection.apply(this, labelIds).includes(x));\n },\n\n getElement(selector) {\n this.scopeEl = this.scopeEl || $('.content');\n return this.scopeEl.find(selector);\n },\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableTodoCreate\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"TodoCreateInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"todoMutation\"},\"name\":{\"kind\":\"Name\",\"value\":\"todoCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"todo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":143}};\n doc.loc.source = {\"body\":\"mutation issuableTodoCreate($input: TodoCreateInput!) {\\n todoMutation: todoCreate(input: $input) {\\n todo {\\n id\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issuableTodoCreate\"] = oneQuery(doc, \"issuableTodoCreate\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _vm._m(0)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-flex gl-py-2\"},[_c('div',{staticClass:\"gl-border-l gl-ml-2 gl-pl-3\"})])\n}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header_divider.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header_divider.vue?vue&type=script&lang=js\"","<script>\nexport default {};\n</script>\n<template>\n <div class=\"gl-flex gl-py-2\">\n <div class=\"gl-border-l gl-ml-2 gl-pl-3\"></div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./header_divider.vue?vue&type=template&id=6b5d95c6\"\nimport script from \"./header_divider.vue?vue&type=script&lang=js\"\nexport * from \"./header_divider.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"groupWorkItems\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTerm\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueType\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableSearchableField\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestors\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":false},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"includeDescendants\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":false},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"defaultValue\":{\"kind\":\"NullValue\"},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchByIid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":false},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchByText\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":true},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItems\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTerm\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestors\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestors\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeDescendants\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"includeDescendants\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"include\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchByText\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iconName\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workItemsByIid\"},\"name\":{\"kind\":\"Name\",\"value\":\"workItems\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestors\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestors\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeDescendants\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"includeDescendants\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"include\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchByIid\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iconName\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1060}};\n doc.loc.source = {\"body\":\"query groupWorkItems(\\n $searchTerm: String\\n $fullPath: ID!\\n $types: [IssueType!]\\n $in: [IssuableSearchableField!]\\n $includeAncestors: Boolean = false\\n $includeDescendants: Boolean = false\\n $iid: String = null\\n $searchByIid: Boolean = false\\n $searchByText: Boolean = true\\n) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n workItems(\\n search: $searchTerm\\n types: $types\\n in: $in\\n includeAncestors: $includeAncestors\\n includeDescendants: $includeDescendants\\n ) @include(if: $searchByText) {\\n nodes {\\n id\\n iid\\n title\\n confidential\\n workItemType {\\n id\\n name\\n iconName\\n }\\n }\\n }\\n workItemsByIid: workItems(\\n iid: $iid\\n types: $types\\n includeAncestors: $includeAncestors\\n includeDescendants: $includeDescendants\\n ) @include(if: $searchByIid) {\\n nodes {\\n id\\n iid\\n title\\n confidential\\n workItemType {\\n id\\n name\\n iconName\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"groupWorkItems\"] = oneQuery(doc, \"groupWorkItems\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isIssuable)?_c('li',{staticClass:\"gl-new-dropdown-item\"},[_c('button',{staticClass:\"gl-new-dropdown-item-content\",attrs:{\"type\":\"button\",\"data-testid\":\"issuable-lock\"},on:{\"click\":_vm.toggleLocked}},[_c('span',{staticClass:\"gl-new-dropdown-item-text-wrapper\"},[(_vm.isLoading)?[_c('gl-loading-icon',{attrs:{\"inline\":\"\",\"size\":\"sm\"}}),_vm._v(\" \"+_vm._s(_vm.lockToggleInProgressText)+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(_vm.lockToggleText)+\"\\n \")]],2)])]):_c('gl-disclosure-dropdown-item',[_c('button',{staticClass:\"gl-new-dropdown-item-content\",attrs:{\"type\":\"button\",\"data-testid\":\"issuable-lock\"},on:{\"click\":_vm.toggleLocked}},[_c('span',{staticClass:\"gl-new-dropdown-item-text-wrapper\"},[(_vm.isLoading)?[_c('gl-loading-icon',{attrs:{\"inline\":\"\",\"size\":\"sm\"}}),_vm._v(\" \"+_vm._s(_vm.lockToggleInProgressText)+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(_vm.lockToggleText)+\"\\n \")]],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_lock_form.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_lock_form.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlLoadingIcon,\n GlDisclosureDropdownItem,\n GlTooltipDirective,\n GlOutsideDirective as Outside,\n} from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapActions } from 'vuex';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { __, sprintf } from '~/locale';\nimport { createAlert } from '~/alert';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport eventHub from '../../event_hub';\n\nexport default {\n locked: {\n icon: 'lock',\n class: 'value',\n displayText: __('Locked'),\n },\n unlocked: {\n class: ['no-value hide-collapsed'],\n icon: 'lock-open',\n displayText: __('Unlocked'),\n },\n components: {\n GlLoadingIcon,\n GlDisclosureDropdownItem,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n Outside,\n },\n inject: ['fullPath'],\n props: {\n isEditable: {\n required: true,\n type: Boolean,\n },\n },\n i18n: {\n issue: __('issue'),\n issueCapitalized: __('Issue'),\n mergeRequest: __('merge request'),\n mergeRequestCapitalized: __('Merge request'),\n lockingMergeRequest: __('Locking discussion'),\n unlockingMergeRequest: __('Unlocking discussion'),\n lockMergeRequest: __('Lock discussion'),\n unlockMergeRequest: __('Unlock discussion'),\n lockedMessage: __('Discussion locked.'),\n unlockedMessage: __('Discussion unlocked.'),\n },\n data() {\n return {\n isLoading: false,\n isLockDialogOpen: false,\n };\n },\n computed: {\n ...mapGetters(['getNoteableData']),\n isIssuable() {\n return this.getNoteableData.targetType === TYPE_ISSUE;\n },\n issuableDisplayName() {\n return this.isIssuable ? this.$options.i18n.issue : this.$options.i18n.mergeRequest;\n },\n issuableDisplayNameCapitalized() {\n return this.isIssuable\n ? this.$options.i18n.issueCapitalized\n : this.$options.i18n.mergeRequestCapitalized;\n },\n isLocked() {\n return this.getNoteableData.discussion_locked;\n },\n lockStatus() {\n return this.isLocked ? this.$options.locked : this.$options.unlocked;\n },\n lockToggleInProgressText() {\n return this.isLocked ? this.unlockingMergeRequestText : this.lockingMergeRequestText;\n },\n lockToggleText() {\n return this.isLocked ? this.unlockMergeRequestText : this.lockMergeRequestText;\n },\n lockingMergeRequestText() {\n return sprintf(this.$options.i18n.lockingMergeRequest, {\n issuableDisplayName: this.issuableDisplayName,\n });\n },\n unlockingMergeRequestText() {\n return sprintf(this.$options.i18n.unlockingMergeRequest, {\n issuableDisplayName: this.issuableDisplayName,\n });\n },\n lockMergeRequestText() {\n return sprintf(this.$options.i18n.lockMergeRequest, {\n issuableDisplayName: this.issuableDisplayName,\n });\n },\n unlockMergeRequestText() {\n return sprintf(this.$options.i18n.unlockMergeRequest, {\n issuableDisplayName: this.issuableDisplayName,\n });\n },\n lockedMessageText() {\n return sprintf(this.$options.i18n.lockedMessage, {\n issuableDisplayName: this.issuableDisplayNameCapitalized,\n });\n },\n unlockedMessageText() {\n return sprintf(this.$options.i18n.unlockedMessage, {\n issuableDisplayName: this.issuableDisplayNameCapitalized,\n });\n },\n },\n\n created() {\n eventHub.$on('closeLockForm', this.toggleForm);\n },\n\n beforeDestroy() {\n eventHub.$off('closeLockForm', this.toggleForm);\n },\n\n methods: {\n ...mapActions(['updateLockedAttribute']),\n toggleForm() {\n if (this.isEditable) {\n this.isLockDialogOpen = !this.isLockDialogOpen;\n }\n },\n toggleLocked() {\n this.isLoading = true;\n\n this.updateLockedAttribute({\n locked: !this.isLocked,\n fullPath: this.fullPath,\n })\n .then(() => {\n toast(this.isLocked ? this.lockedMessageText : this.unlockedMessageText);\n })\n .catch(() => {\n const alertMessage = __(\n 'Something went wrong trying to change the locked state of the discussion',\n );\n createAlert({\n message: sprintf(alertMessage, { issuableDisplayName: this.issuableDisplayName }),\n });\n })\n .finally(() => {\n this.isLoading = false;\n });\n },\n closeForm() {\n this.isLockDialogOpen = false;\n },\n },\n};\n</script>\n\n<template>\n <li v-if=\"isIssuable\" class=\"gl-new-dropdown-item\">\n <button\n type=\"button\"\n class=\"gl-new-dropdown-item-content\"\n data-testid=\"issuable-lock\"\n @click=\"toggleLocked\"\n >\n <span class=\"gl-new-dropdown-item-text-wrapper\">\n <template v-if=\"isLoading\">\n <gl-loading-icon inline size=\"sm\" /> {{ lockToggleInProgressText }}\n </template>\n <template v-else>\n {{ lockToggleText }}\n </template>\n </span>\n </button>\n </li>\n <gl-disclosure-dropdown-item v-else>\n <button\n type=\"button\"\n class=\"gl-new-dropdown-item-content\"\n data-testid=\"issuable-lock\"\n @click=\"toggleLocked\"\n >\n <span class=\"gl-new-dropdown-item-text-wrapper\">\n <template v-if=\"isLoading\">\n <gl-loading-icon inline size=\"sm\" /> {{ lockToggleInProgressText }}\n </template>\n <template v-else>\n {{ lockToggleText }}\n </template>\n </span>\n </button>\n </gl-disclosure-dropdown-item>\n</template>\n","import { render, staticRenderFns } from \"./issuable_lock_form.vue?vue&type=template&id=3aebf866\"\nimport script from \"./issuable_lock_form.vue?vue&type=script&lang=js\"\nexport * from \"./issuable_lock_form.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export default __webpack_public_path__ + \"empty-activity-md.9368030d.svg\";","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"image-diff-overlay gl-absolute gl-h-full gl-w-full\"},[(_vm.canComment)?_c('button',{staticClass:\"image-diff-overlay-add-comment js-add-image-diff-note-button gl-absolute gl-h-full gl-w-full gl-border-0 gl-bg-transparent\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.clickedImage($event.offsetX, $event.offsetY)}}},[_c('span',{staticClass:\"sr-only\"},[_vm._v(\" \"+_vm._s(_vm.__('Add image comment'))+\" \")])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.allDiscussions),function(discussion,index){return _c('design-note-pin',{key:discussion.id,staticClass:\"js-image-badge\",class:_vm.badgeClass,attrs:{\"label\":_vm.showCommentIcon ? null : _vm.toggleText(discussion, index),\"position\":_vm.getPosition(discussion),\"aria-label\":_vm.__('Show comments'),\"is-draft\":discussion.isDraft,\"is-resolved\":discussion.resolved,\"is-on-image\":\"\",\"disabled\":!_vm.shouldToggleDiscussion},on:{\"click\":function($event){return _vm.clickedToggle(discussion)}}})}),_vm._v(\" \"),(_vm.canComment && _vm.currentCommentForm)?_c('design-note-pin',{attrs:{\"position\":/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */ {\n left: `${_vm.currentCommentForm.xPercent}%`,\n top: `${_vm.currentCommentForm.yPercent}%`,\n } /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */}}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// eslint-disable-next-line no-restricted-imports\nimport { mapActions } from 'vuex';\n\nexport default {\n computed: {\n diffFileDiscussions() {\n return this.allDiscussions.filter((d) => !d.isDraft);\n },\n },\n methods: {\n ...mapActions(['toggleDiscussion']),\n clickedToggle(discussion) {\n if (!discussion.isDraft) {\n this.toggleDiscussion({ discussionId: discussion.id });\n }\n },\n toggleText(discussion, index) {\n const count = index + 1;\n\n return discussion.isDraft ? count - this.diffFileDiscussions.length : count;\n },\n },\n};\n","<script>\nimport { isArray } from 'lodash';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters } from 'vuex';\nimport imageDiffMixin from 'ee_else_ce/diffs/mixins/image_diff';\nimport DesignNotePin from '~/vue_shared/components/design_management/design_note_pin.vue';\n\nfunction calcPercent(pos, renderedSize) {\n return (100 * pos) / renderedSize;\n}\n\nexport default {\n name: 'ImageDiffOverlay',\n components: {\n DesignNotePin,\n },\n mixins: [imageDiffMixin],\n props: {\n discussions: {\n type: [Array, Object],\n required: true,\n },\n fileHash: {\n type: String,\n required: true,\n },\n canComment: {\n type: Boolean,\n required: false,\n default: false,\n },\n showCommentIcon: {\n type: Boolean,\n required: false,\n default: false,\n },\n badgeClass: {\n type: String,\n required: false,\n default: '',\n },\n shouldToggleDiscussion: {\n type: Boolean,\n required: false,\n default: true,\n },\n renderedWidth: {\n type: Number,\n required: true,\n },\n renderedHeight: {\n type: Number,\n required: true,\n },\n },\n computed: {\n ...mapGetters('diffs', ['getDiffFileByHash', 'getCommentFormForDiffFile']),\n currentCommentForm() {\n return this.getCommentFormForDiffFile(this.fileHash);\n },\n allDiscussions() {\n return isArray(this.discussions) ? this.discussions : [this.discussions];\n },\n },\n methods: {\n ...mapActions('diffs', ['openDiffFileCommentForm']),\n getImageDimensions() {\n return {\n width: Math.round(this.$parent.width),\n height: Math.round(this.$parent.height),\n };\n },\n getPositionForObject(meta) {\n const { x, y, width, height } = meta;\n\n return {\n x: (x / width) * 100,\n y: (y / height) * 100,\n };\n },\n getPosition(discussion) {\n const { x, y } = this.getPositionForObject(discussion.position);\n\n return {\n left: `${x}%`,\n top: `${y}%`,\n };\n },\n clickedImage(x, y) {\n const { width, height } = this.getImageDimensions();\n const xPercent = calcPercent(x, this.renderedWidth);\n const yPercent = calcPercent(y, this.renderedHeight);\n\n this.openDiffFileCommentForm({\n fileHash: this.fileHash,\n width,\n height,\n x: Math.round(width * (xPercent / 100)),\n y: Math.round(height * (yPercent / 100)),\n xPercent,\n yPercent,\n });\n },\n },\n};\n</script>\n\n<template>\n <div class=\"image-diff-overlay gl-absolute gl-h-full gl-w-full\">\n <button\n v-if=\"canComment\"\n type=\"button\"\n class=\"image-diff-overlay-add-comment js-add-image-diff-note-button gl-absolute gl-h-full gl-w-full gl-border-0 gl-bg-transparent\"\n @click=\"clickedImage($event.offsetX, $event.offsetY)\"\n >\n <span class=\"sr-only\"> {{ __('Add image comment') }} </span>\n </button>\n\n <design-note-pin\n v-for=\"(discussion, index) in allDiscussions\"\n :key=\"discussion.id\"\n :label=\"showCommentIcon ? null : toggleText(discussion, index)\"\n :position=\"getPosition(discussion)\"\n :aria-label=\"__('Show comments')\"\n class=\"js-image-badge\"\n :class=\"badgeClass\"\n :is-draft=\"discussion.isDraft\"\n :is-resolved=\"discussion.resolved\"\n is-on-image\n :disabled=\"!shouldToggleDiscussion\"\n @click=\"clickedToggle(discussion)\"\n />\n\n <design-note-pin\n v-if=\"canComment && currentCommentForm\"\n :position=\"/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */ {\n left: `${currentCommentForm.xPercent}%`,\n top: `${currentCommentForm.yPercent}%`,\n } /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */\"\n />\n </div>\n</template>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./image_diff_overlay.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./image_diff_overlay.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./image_diff_overlay.vue?vue&type=template&id=50229185\"\nimport script from \"./image_diff_overlay.vue?vue&type=script&lang=js\"\nexport * from \"./image_diff_overlay.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"TimelogFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemTimelog\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timeSpent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"user\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"spentAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"note\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"body\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"summary\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"adminTimelog\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":197}};\n doc.loc.source = {\"body\":\"fragment TimelogFragment on WorkItemTimelog {\\n __typename\\n id\\n timeSpent\\n user {\\n id\\n name\\n }\\n spentAt\\n note {\\n id\\n body\\n }\\n summary\\n userPermissions {\\n adminTimelog\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"TimelogFragment\"] = oneQuery(doc, \"TimelogFragment\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.taskStatus || _vm.updatedAt)?_c('small',{staticClass:\"js-issue-widgets gl-inline-block gl-text-sm gl-text-subtle\"},[(_vm.taskStatus)?[(_vm.showCheck)?[_vm._v(\"✓\")]:_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.taskStatus)+\"\\n \"),(_vm.updatedAt)?[_vm._v(\"·\")]:_vm._e()]:_vm._e(),_vm._v(\" \"),(_vm.updatedAt)?[(!_vm.hasUpdatedBy)?_c('gl-sprintf',{attrs:{\"message\":_vm.__('Edited %{timeago}')},scopedSlots:_vm._u([{key:\"timeago\",fn:function(){return [_c('time-ago-tooltip',{attrs:{\"time\":_vm.updatedAt,\"tooltip-placement\":\"bottom\"}})]},proxy:true}],null,false,3148754604)}):_c('gl-sprintf',{attrs:{\"message\":_vm.__('Edited %{timeago} by %{author}')},scopedSlots:_vm._u([{key:\"timeago\",fn:function(){return [_c('time-ago-tooltip',{attrs:{\"time\":_vm.updatedAt,\"tooltip-placement\":\"bottom\"}})]},proxy:true},{key:\"author\",fn:function(){return [_c('gl-link',{staticClass:\"gl-text-subtle hover:gl-text-subtle\",attrs:{\"href\":_vm.updatedByPath}},[_vm._v(\"\\n \"+_vm._s(_vm.updatedByName)+\"\\n \")])]},proxy:true}],null,false,1851124434)})]:_vm._e()],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edited.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edited.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlLink, GlSprintf } from '@gitlab/ui';\nimport { n__, sprintf } from '~/locale';\nimport TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';\n\nexport default {\n components: {\n TimeAgoTooltip,\n GlLink,\n GlSprintf,\n },\n props: {\n taskCompletionStatus: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n updatedAt: {\n type: String,\n required: false,\n default: '',\n },\n updatedByName: {\n type: String,\n required: false,\n default: '',\n },\n updatedByPath: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n completedCount() {\n // The new Work Item GraphQL endpoint returns `completedCount` instead, so added a fallback\n // to it for the work item view\n return this.taskCompletionStatus.completed_count ?? this.taskCompletionStatus.completedCount;\n },\n count() {\n return this.taskCompletionStatus.count;\n },\n hasUpdatedBy() {\n return this.updatedByName && this.updatedByPath;\n },\n showCheck() {\n return this.completedCount === this.count;\n },\n taskStatus() {\n const { completedCount, count } = this;\n if (!count) {\n return undefined;\n }\n\n return sprintf(\n n__(\n '%{completedCount} of %{count} checklist item completed',\n '%{completedCount} of %{count} checklist items completed',\n count,\n ),\n { completedCount, count },\n );\n },\n },\n};\n</script>\n\n<template>\n <small\n v-if=\"taskStatus || updatedAt\"\n class=\"js-issue-widgets gl-inline-block gl-text-sm gl-text-subtle\"\n >\n <template v-if=\"taskStatus\">\n <template v-if=\"showCheck\">✓</template>\n {{ taskStatus }}\n <template v-if=\"updatedAt\">·</template>\n </template>\n\n <template v-if=\"updatedAt\">\n <gl-sprintf v-if=\"!hasUpdatedBy\" :message=\"__('Edited %{timeago}')\">\n <template #timeago>\n <time-ago-tooltip :time=\"updatedAt\" tooltip-placement=\"bottom\" />\n </template>\n </gl-sprintf>\n <gl-sprintf v-else :message=\"__('Edited %{timeago} by %{author}')\">\n <template #timeago>\n <time-ago-tooltip :time=\"updatedAt\" tooltip-placement=\"bottom\" />\n </template>\n <template #author>\n <gl-link :href=\"updatedByPath\" class=\"gl-text-subtle hover:gl-text-subtle\">\n {{ updatedByName }}\n </gl-link>\n </template>\n </gl-sprintf>\n </template>\n </small>\n</template>\n","import { render, staticRenderFns } from \"./edited.vue?vue&type=template&id=57541c0a\"\nimport script from \"./edited.vue?vue&type=script&lang=js\"\nexport * from \"./edited.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","const maxColumnWidth = (rows, columnIndex) =>\n Math.max(...rows.map((row) => row[columnIndex].length));\n\nexport default class PasteMarkdownTable {\n constructor(clipboardData) {\n this.data = clipboardData;\n this.columnWidths = [];\n this.rows = [];\n this.tableFound = this.parseTable();\n }\n\n isTable() {\n return this.tableFound;\n }\n\n convertToTableMarkdown() {\n this.calculateColumnWidths();\n\n const markdownRows = this.rows.map(\n (row) =>\n // | Name | Title | Email Address |\n // |--------------|-------|----------------|\n // | Jane Atler | CEO | jane@acme.com |\n // | John Doherty | CTO | john@acme.com |\n // | Sally Smith | CFO | sally@acme.com |\n `| ${row.map((column, index) => this.formatColumn(column, index)).join(' | ')} |`,\n );\n\n // Insert a header break (e.g. -----) to the second row\n markdownRows.splice(1, 0, this.generateHeaderBreak());\n\n return markdownRows.join('\\n');\n }\n\n // Private methods below\n\n // To determine whether the cut data is a table, the following criteria\n // must be satisfied with the clipboard data:\n //\n // 1. MIME types \"text/plain\" and \"text/html\" exist\n // 2. The \"text/html\" data must have a single <table> element\n // 3. The number of rows in the \"text/plain\" data matches that of the \"text/html\" data\n // 4. The max number of columns in \"text/plain\" matches that of the \"text/html\" data\n parseTable() {\n if (!this.data.types.includes('text/html') || !this.data.types.includes('text/plain')) {\n return false;\n }\n\n const htmlData = this.data.getData('text/html');\n this.doc = new DOMParser().parseFromString(htmlData, 'text/html');\n // Avoid formatting lines that were copied from a diff\n const tables = this.doc.querySelectorAll('table:not(.diff-wrap-lines)');\n\n // We're only looking for exactly one table. If there happens to be\n // multiple tables, it's possible an application copied data into\n // the clipboard that is not related to a simple table. It may also be\n // complicated converting multiple tables into Markdown.\n if (tables.length !== 1) {\n return false;\n }\n\n const text = this.data.getData('text/plain').trim();\n const splitRows = text.split(/[\\n\\u0085\\u2028\\u2029]|\\r\\n?/g);\n\n // Now check that the number of rows matches between HTML and text\n if (this.doc.querySelectorAll('tr').length !== splitRows.length) {\n return false;\n }\n\n this.rows = splitRows.map((row) => row.split('\\t'));\n this.normalizeRows();\n\n // Check that the max number of columns in the HTML matches the number of\n // columns in the text. GitHub, for example, copies a line number and the\n // line itself into the HTML data.\n if (!this.columnCountsMatch()) {\n return false;\n }\n\n return true;\n }\n\n // Ensure each row has the same number of columns\n normalizeRows() {\n const rowLengths = this.rows.map((row) => row.length);\n const maxLength = Math.max(...rowLengths);\n\n this.rows.forEach((row) => {\n while (row.length < maxLength) {\n row.push('');\n }\n });\n }\n\n calculateColumnWidths() {\n this.columnWidths = this.rows[0].map((_column, columnIndex) =>\n maxColumnWidth(this.rows, columnIndex),\n );\n }\n\n columnCountsMatch() {\n const textColumnCount = this.rows[0].length;\n let htmlColumnCount = 0;\n\n this.doc.querySelectorAll('table tr').forEach((row) => {\n htmlColumnCount = Math.max(row.cells.length, htmlColumnCount);\n });\n\n return textColumnCount === htmlColumnCount;\n }\n\n formatColumn(column, index) {\n const spaces = Array(this.columnWidths[index] - column.length + 1).join(' ');\n return column + spaces;\n }\n\n generateHeaderBreak() {\n // Add 3 dashes to line things up: there is additional spacing for the pipe characters\n const dashes = this.columnWidths.map((width, index) =>\n Array(this.columnWidths[index] + 3).join('-'),\n );\n return `|${dashes.join('|')}|`;\n }\n}\n","import Dropzone from 'dropzone';\nimport $ from 'jquery';\nimport { escape } from 'lodash';\nimport './behaviors/preview_markdown';\nimport { spriteIcon } from '~/lib/utils/common_utils';\nimport { getFilename } from '~/lib/utils/file_upload';\nimport { truncate } from '~/lib/utils/text_utility';\nimport { n__, __ } from '~/locale';\nimport { getRetinaDimensions } from '~/lib/utils/image_utils';\nimport PasteMarkdownTable from './behaviors/markdown/paste_markdown_table';\nimport axios from './lib/utils/axios_utils';\nimport csrf from './lib/utils/csrf';\n\nDropzone.autoDiscover = false;\n\n/**\n * Return the error message string from the given response.\n *\n * @param {String|Object} res\n */\nfunction getErrorMessage(res) {\n if (!res || typeof res === 'string') {\n return res;\n }\n\n return res.message;\n}\n\nexport default function dropzoneInput(form, config = { parallelUploads: 2 }) {\n const divHover = '<div class=\"div-dropzone-hover\"></div>';\n const iconPaperclip = spriteIcon('paperclip', 'div-dropzone-icon s24');\n const $attachingFileMessage = form.find('.attaching-file-message');\n const $cancelButton = form.find('.button-cancel-uploading-files');\n const $retryLink = form.find('.retry-uploading-link');\n const $uploadProgress = form.find('.uploading-progress');\n const $uploadingErrorContainer = form.find('.uploading-error-container');\n const $uploadingErrorMessage = form.find('.uploading-error-message');\n const $uploadingProgressContainer = form.find('.uploading-progress-container');\n const uploadsPath = form.data('uploads-path') || window.uploads_path || null;\n const maxFileSize = gon.max_file_size || 10;\n const formTextarea = form.find('.js-gfm-input');\n let handlePaste;\n let pasteText;\n let addFileToForm;\n let updateAttachingMessage;\n let uploadFile;\n let hasPlainText;\n\n formTextarea.wrap('<div class=\"div-dropzone\"></div>');\n\n // Add dropzone area to the form.\n const $mdArea = formTextarea.closest('.md-area');\n const $formDropzone = form.find('.div-dropzone');\n $formDropzone.parent().addClass('div-dropzone-wrapper');\n $formDropzone.append(divHover);\n $formDropzone.find('.div-dropzone-hover').append(iconPaperclip);\n\n if (!uploadsPath) {\n $formDropzone.addClass('js-invalid-dropzone');\n return null;\n }\n\n formTextarea.on('paste', (event) => handlePaste(event));\n\n const dropzone = $formDropzone.dropzone({\n url: uploadsPath,\n dictDefaultMessage: '',\n clickable: form.get(0).querySelector('[data-button-type=\"attach-file\"]') ?? true,\n paramName: 'file',\n maxFilesize: maxFileSize,\n uploadMultiple: false,\n headers: csrf.headers,\n previewContainer: false,\n ...config,\n dragover: () => {\n $mdArea.addClass('is-dropzone-hover');\n form.find('.div-dropzone-hover').css('opacity', 0.7);\n },\n dragleave: () => {\n $mdArea.removeClass('is-dropzone-hover');\n form.find('.div-dropzone-hover').css('opacity', 0);\n },\n drop: () => {\n $mdArea.removeClass('is-dropzone-hover');\n form.find('.div-dropzone-hover').css('opacity', 0);\n formTextarea.focus();\n },\n success(header, response) {\n const processingFileCount = this.getQueuedFiles().length + this.getUploadingFiles().length;\n const shouldPad = processingFileCount >= 1;\n\n addFileToForm(response.link.url, header.size);\n pasteText(response.link.markdown, shouldPad);\n },\n error: (file, errorMessage = __('Attaching the file failed.'), xhr) => {\n // If 'error' event is fired by dropzone, the second parameter is error message.\n // If the 'errorMessage' parameter is empty, the default error message is set.\n // If the 'error' event is fired by backend (xhr) error response, the third parameter is\n // xhr object (xhr.responseText is error message).\n // On error we hide the 'Attach' and 'Cancel' buttons\n // and show an error.\n const message = getErrorMessage(errorMessage || xhr.responseText);\n\n $uploadingErrorContainer.removeClass('hide');\n $uploadingErrorMessage.html(message);\n $cancelButton.addClass('hide');\n },\n totaluploadprogress(totalUploadProgress) {\n updateAttachingMessage(this.files, $attachingFileMessage);\n $uploadProgress.text(`${Math.round(totalUploadProgress)}%`);\n },\n sending: () => {\n // DOM elements already exist.\n // Instead of dynamically generating them,\n // we just either hide or show them.\n $uploadingErrorContainer.addClass('hide');\n $uploadingProgressContainer.removeClass('hide');\n $cancelButton.removeClass('hide');\n },\n removedfile: () => {\n $cancelButton.addClass('hide');\n $uploadingProgressContainer.addClass('hide');\n $uploadingErrorContainer.addClass('hide');\n },\n queuecomplete: () => {\n $('.dz-preview').remove();\n $('.markdown-area').trigger('input');\n\n $uploadingProgressContainer.addClass('hide');\n $cancelButton.addClass('hide');\n },\n });\n\n const child = $(dropzone[0]).children('textarea');\n\n // removeAllFiles(true) stops uploading files (if any)\n // and remove them from dropzone files queue.\n $cancelButton.on('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n Dropzone.forElement($formDropzone.get(0)).removeAllFiles(true);\n });\n\n // If 'error' event is fired, we store a failed files,\n // clear dropzone files queue, change status of failed files to undefined,\n // and add that files to the dropzone files queue again.\n // addFile() adds file to dropzone files queue and upload it.\n $retryLink.on('click', (e) => {\n const dropzoneInstance = Dropzone.forElement(\n e.target.closest('.js-main-target-form').querySelector('.div-dropzone'),\n );\n const failedFiles = dropzoneInstance.files;\n\n e.preventDefault();\n\n // 'true' parameter of removeAllFiles() cancels\n // uploading of files that are being uploaded at the moment.\n dropzoneInstance.removeAllFiles(true);\n\n failedFiles.map((failedFile) => {\n const file = failedFile;\n\n if (file.status === Dropzone.ERROR) {\n file.status = undefined;\n file.accepted = undefined;\n }\n\n return dropzoneInstance.addFile(file);\n });\n });\n\n handlePaste = (event) => {\n const pasteEvent = event.originalEvent;\n const { clipboardData } = pasteEvent;\n if (clipboardData && clipboardData.items) {\n const converter = new PasteMarkdownTable(clipboardData);\n // Apple Numbers copies a table as an image, HTML, and text, so\n // we need to check for the presence of a table first.\n if (converter.isTable()) {\n event.preventDefault();\n const text = converter.convertToTableMarkdown();\n pasteText(text);\n } else if (!hasPlainText(pasteEvent)) {\n const fileList = [...clipboardData.files];\n fileList.forEach((file) => {\n if (file.type.indexOf('image') !== -1) {\n event.preventDefault();\n const MAX_FILE_NAME_LENGTH = 246;\n\n const filename = getFilename(file) || 'image.png';\n const truncateFilename = truncate(filename, MAX_FILE_NAME_LENGTH);\n const text = `{{${truncateFilename}}}`;\n pasteText(text);\n\n uploadFile(file, truncateFilename);\n }\n });\n }\n }\n };\n\n hasPlainText = (data) => {\n const clipboardDataList = [...data.clipboardData.items];\n return clipboardDataList.some((item) => item.type === 'text/plain');\n };\n\n pasteText = (text, shouldPad) => {\n let formattedText = text;\n if (shouldPad) {\n formattedText += '\\n\\n';\n }\n const textarea = child.get(0);\n const caretStart = textarea.selectionStart;\n const caretEnd = textarea.selectionEnd;\n const textEnd = $(child).val().length;\n const beforeSelection = $(child).val().substring(0, caretStart);\n const afterSelection = $(child).val().substring(caretEnd, textEnd);\n $(child).val(beforeSelection + formattedText + afterSelection);\n textarea.setSelectionRange(caretStart + formattedText.length, caretEnd + formattedText.length);\n textarea.style.height = `${textarea.scrollHeight}px`;\n formTextarea.get(0).dispatchEvent(new Event('input'));\n return formTextarea.trigger('input');\n };\n\n addFileToForm = (path) => {\n $(form).append(`<input type=\"hidden\" name=\"files[]\" value=\"${escape(path)}\">`);\n };\n\n const showSpinner = () => $uploadingProgressContainer.removeClass('hide');\n\n const closeSpinner = () => $uploadingProgressContainer.addClass('hide');\n\n const showError = (message) => {\n $uploadingErrorContainer.removeClass('hide');\n $uploadingErrorMessage.html(message);\n };\n\n const insertToTextArea = (filename, url) => {\n const $child = $(child);\n const textarea = $child.get(0);\n const caretStart = textarea.selectionStart;\n const caretEnd = textarea.selectionEnd;\n const formattedText = `{{${filename}}}`;\n $child.val((index, val) => val.replace(formattedText, url));\n textarea.setSelectionRange(\n caretStart - formattedText.length + url.length,\n caretEnd - formattedText.length + url.length,\n );\n $child.trigger('change');\n };\n\n uploadFile = (item, filename) => {\n const formData = new FormData();\n formData.append('file', item, filename);\n\n showSpinner();\n\n axios\n .post(uploadsPath, formData)\n .then(async ({ data }) => {\n let md = data.link.markdown;\n\n const { width, height } = (await getRetinaDimensions(item)) || {};\n if (width && height) {\n // eslint-disable-next-line @gitlab/require-i18n-strings\n md += `{width=${width} height=${height}}`;\n }\n\n insertToTextArea(filename, md);\n closeSpinner();\n })\n .catch((e) => {\n showError(e.response.data.message);\n closeSpinner();\n });\n };\n\n updateAttachingMessage = (files, messageContainer) => {\n const filesCount = files.filter(\n (file) => file.status === 'uploading' || file.status === 'queued',\n ).length;\n const attachingMessage = n__('Attaching a file', 'Attaching %d files', filesCount);\n\n messageContainer.text(`${attachingMessage} -`);\n };\n\n function handleAttachFile(e) {\n e.preventDefault();\n $(this).closest('.gfm-form').find('.div-dropzone').click();\n formTextarea.focus();\n }\n\n form.find('.markdown-selector').click(handleAttachFile);\n\n const $attachFileButton = form.find('.js-attach-file-button');\n if ($attachFileButton.length) {\n $attachFileButton.get(0).addEventListener('click', handleAttachFile);\n }\n\n return $formDropzone.get(0) ? Dropzone.forElement($formDropzone.get(0)) : null;\n}\n","import autosize from 'autosize';\nimport $ from 'jquery';\nimport { isEmpty } from 'lodash';\nimport GfmAutoComplete, { defaultAutocompleteConfig } from 'ee_else_ce/gfm_auto_complete';\nimport { disableButtonIfEmptyField } from '~/lib/utils/common_utils';\nimport dropzoneInput from './dropzone_input';\nimport { addMarkdownListeners, removeMarkdownListeners } from './lib/utils/text_markdown';\n\nexport default class GLForm {\n /**\n * Create a GLForm\n *\n * @param {jQuery} form Root element of the GLForm\n * @param {Object} enableGFM Which autocomplete features should be enabled?\n * @param {Boolean} forceNew If true, treat the element as a **new** form even if `gfm-form` class already exists.\n * @param {Object} gfmDataSources The paths of the autocomplete data sources to use for GfmAutoComplete\n * By default, the backend embeds these in the global object gl.GfmAutocomplete.dataSources.\n * Use this param to override them.\n */\n // eslint-disable-next-line max-params\n constructor(form, enableGFM = {}, forceNew = false, gfmDataSources = {}) {\n this.form = form;\n this.textarea = this.form.find('textarea.js-gfm-input');\n this.enableGFM = { ...defaultAutocompleteConfig, ...enableGFM };\n\n // Disable autocomplete for keywords which do not have dataSources available\n let dataSources = (gl.GfmAutoComplete && gl.GfmAutoComplete.dataSources) || {};\n\n if (!isEmpty(gfmDataSources)) {\n dataSources = gfmDataSources;\n }\n\n Object.keys(this.enableGFM).forEach((item) => {\n if (item !== 'emojis' && !dataSources[item]) {\n this.enableGFM[item] = false;\n }\n });\n\n // Before we start, we should clean up any previous data for this form\n this.destroy();\n // Set up the form\n this.setupForm(dataSources, forceNew);\n this.form.data('glForm', this);\n }\n\n destroy() {\n // Clean form listeners\n this.clearEventListeners();\n if (this.autoComplete) {\n this.autoComplete.destroy();\n }\n if (this.formDropzone) {\n this.formDropzone.destroy();\n }\n\n this.form.data('glForm', null);\n }\n\n setupForm(dataSources, forceNew = false) {\n const isNewForm = this.form.is(':not(.gfm-form)') || forceNew;\n this.form.removeClass('js-new-note-form');\n if (isNewForm) {\n this.form.find('.div-dropzone').remove();\n this.form.addClass('gfm-form');\n // remove notify commit author checkbox for non-commit notes\n disableButtonIfEmptyField(\n this.form.find('.js-note-text'),\n this.form.find('.js-comment-button, .js-note-new-discussion'),\n );\n this.autoComplete = new GfmAutoComplete(dataSources);\n this.autoComplete.setup(this.form.find('.js-gfm-input'), this.enableGFM);\n this.formDropzone = dropzoneInput(this.form, { parallelUploads: 1 });\n\n if (this.form.is(':not(.js-no-autosize)')) {\n autosize(this.textarea);\n }\n }\n // form and textarea event listeners\n this.addEventListeners();\n addMarkdownListeners(this.form);\n this.form.show();\n if (this.isAutosizeable) this.setupAutosize();\n if (this.textarea.data('autofocus') === true) this.textarea.focus();\n }\n\n updateAutocompleteDataSources(dataSources) {\n if (this.autoComplete) {\n this.autoComplete.updateDataSources(dataSources);\n }\n }\n\n setupAutosize() {\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.textarea.off('autosize:resized').on('autosize:resized', this.setHeightData.bind(this));\n\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.textarea.off('mouseup.autosize').on('mouseup.autosize', this.destroyAutosize.bind(this));\n\n setTimeout(() => {\n autosize(this.textarea);\n this.textarea.css('resize', 'vertical');\n }, 0);\n }\n\n setHeightData() {\n this.textarea.data('height', this.textarea.outerHeight());\n }\n\n destroyAutosize() {\n const outerHeight = this.textarea.outerHeight();\n\n if (this.textarea.data('height') === outerHeight) return;\n\n autosize.destroy(this.textarea);\n\n this.textarea.data('height', outerHeight);\n this.textarea.outerHeight(outerHeight);\n this.textarea.css('max-height', window.outerHeight);\n }\n\n clearEventListeners() {\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.textarea.off('focus');\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.textarea.off('blur');\n removeMarkdownListeners(this.form);\n }\n\n addEventListeners() {\n this.textarea.on('focus', function focusTextArea() {\n $(this).closest('.md-area').addClass('is-focused');\n });\n this.textarea.on('blur', function blurTextArea() {\n $(this).closest('.md-area').removeClass('is-focused');\n });\n }\n\n get supportsQuickActions() {\n return Boolean(this.textarea.data('supports-quick-actions'));\n }\n}\n","import { n__, s__, sprintf } from '~/locale';\n\nexport const DESIGN_DETAIL_LAYOUT_CLASSLIST = [\n 'design-detail-layout',\n 'gl-overflow-hidden',\n 'gl-m-0',\n];\n\nexport const ACTIVE_DISCUSSION_SOURCE_TYPES = {\n pin: 'pin',\n discussion: 'discussion',\n url: 'url',\n};\n\nexport const ALERT_VARIANTS = {\n danger: 'danger',\n info: 'info',\n};\n\nexport const VALID_DESIGN_FILE_MIMETYPE = {\n mimetype: 'image/png, image/jpg, image/jpeg, image/gif, image/bmp, image/tiff, image/ico',\n regex: /image\\/.+/,\n};\n\nexport const MAXIMUM_FILE_UPLOAD_LIMIT = 10;\n\nexport const MAXIMUM_FILE_UPLOAD_LIMIT_REACHED = sprintf(\n s__(\n 'DesignManagement|The maximum number of designs allowed to be uploaded is %{upload_limit}. Please try again.',\n ),\n {\n upload_limit: MAXIMUM_FILE_UPLOAD_LIMIT,\n },\n);\n\nexport const DESIGN_NOT_FOUND_ERROR = s__('DesignManagement|Could not find design.');\n\nexport const DESIGN_VERSION_NOT_EXIST_ERROR = s__(\n 'DesignManagement|Requested design version does not exist.',\n);\n\nexport const DESIGN_SINGLE_ARCHIVE_ERROR = s__(\n 'DesignManagement|Failed to archive a design. Please try again.',\n);\n\nconst DESIGN_UPLOAD_SKIPPED_MESSAGE = s__('DesignManagement|Upload skipped. %{reason}');\nconst MAX_SKIPPED_FILES_LISTINGS = 5;\n\nexport const UPDATE_DESCRIPTION_ERROR = s__(\n 'DesignManagement|Could not update description. Please try again.',\n);\n\nexport const UPLOAD_DESIGN_ERROR_MESSAGE = s__(\n 'DesignManagement|Error uploading a new design. Please try again.',\n);\n\nexport const ADD_DISCUSSION_COMMENT_ERROR = s__(\n 'DesignManagement|Could not add a new comment. Please try again.',\n);\n\nexport const ADD_IMAGE_DIFF_NOTE_ERROR = s__(\n 'DesignManagement|Could not create new discussion. Please try again.',\n);\n\nexport const UPDATE_IMAGE_DIFF_NOTE_ERROR = s__(\n 'DesignManagement|Could not update discussion. Please try again.',\n);\n\nexport const UPDATE_NOTE_ERROR = s__(\n 'DesignManagement|Could not update comment. Please try again.',\n);\n\nexport const DELETE_NOTE_ERROR = s__(\n 'DesignManagement|Could not delete comment. Please try again.',\n);\n\nexport const RESOLVE_NOTE_ERROR = s__(\n 'DesignManagement|Could not resolve comment. Please try again.',\n);\n\nexport const AWARD_EMOJI_TO_NOTE_ERROR = s__(\n 'DesignManagement|Could not award emoji. Please try again.',\n);\n\nexport const TYPENAME_DISCUSSION = 'Discussion';\nexport const TYPENAME_USER = 'User';\n\nexport const MOVE_DESIGN_ERROR = s__(\n 'DesignManagement|Something went wrong when reordering designs. Please try again',\n);\n\n/**\n * Return warning message indicating that some (but not all) uploaded\n * files were skipped.\n * @param {Array<{ filename }>} skippedFiles\n */\nconst someDesignsSkippedMessage = (skippedFiles) => {\n const skippedFilesList = skippedFiles\n .slice(0, MAX_SKIPPED_FILES_LISTINGS)\n .map(({ filename }) => filename)\n .join(', ');\n\n const uploadSkippedReason =\n skippedFiles.length > MAX_SKIPPED_FILES_LISTINGS\n ? sprintf(\n s__(\n 'DesignManagement|Some of the designs you tried uploading did not change: %{skippedFiles} and %{moreCount} more.',\n ),\n {\n skippedFiles: skippedFilesList,\n moreCount: skippedFiles.length - MAX_SKIPPED_FILES_LISTINGS,\n },\n )\n : sprintf(\n s__(\n 'DesignManagement|Some of the designs you tried uploading did not change: %{skippedFiles}.',\n ),\n { skippedFiles: skippedFilesList },\n );\n\n return sprintf(DESIGN_UPLOAD_SKIPPED_MESSAGE, {\n reason: uploadSkippedReason,\n });\n};\n\n/**\n * Return warning message, if applicable, that one, some or all uploaded\n * files were skipped.\n * @param {Array<{ filename }>} uploadedDesigns\n * @param {Array<{ filename }>} skippedFiles\n */\nexport const designUploadSkippedWarning = (uploadedDesigns, skippedFiles) => {\n if (skippedFiles.length === 0) {\n return null;\n }\n\n if (skippedFiles.length === uploadedDesigns.length) {\n const { filename } = skippedFiles[0];\n\n const uploadSkippedReason = sprintf(\n n__(\n 'DesignManagement|%{filename} did not change.',\n 'DesignManagement|The designs you tried uploading did not change.',\n skippedFiles.length,\n ),\n { filename },\n );\n\n return sprintf(DESIGN_UPLOAD_SKIPPED_MESSAGE, {\n reason: uploadSkippedReason,\n });\n }\n\n return someDesignsSkippedMessage(skippedFiles);\n};\n\nexport const designArchiveError = (designsCount = 1) => {\n return n__(\n 'DesignManagement|Failed to archive a design. Please try again.',\n 'DesignManagement|Failed to archive designs. Please try again.',\n designsCount,\n );\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"namespaceWorkItem\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"namespace\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItem\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":206}};\n doc.loc.source = {\"body\":\"#import \\\"./work_item.fragment.graphql\\\"\\n\\nquery namespaceWorkItem($fullPath: ID!, $iid: String!) {\\n workspace: namespace(fullPath: $fullPath) {\\n id\\n workItem(iid: $iid) {\\n ...WorkItem\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./work_item.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"namespaceWorkItem\"] = oneQuery(doc, \"namespaceWorkItem\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('time',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport\",value:({ placement: _vm.tooltipPlacement }),expression:\"{ placement: tooltipPlacement }\",modifiers:{\"viewport\":true}}],class:_vm.cssClass,attrs:{\"title\":_vm.tooltipText,\"datetime\":_vm.time}},[_vm._t(\"default\",function(){return [(_vm.enableTruncation)?[_c('gl-truncate',{attrs:{\"text\":_vm.timeAgo,\"with-tooltip\":\"\"}})]:[_vm._v(_vm._s(_vm.timeAgo))]]},{\"timeAgo\":_vm.timeAgo})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./time_ago_tooltip.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./time_ago_tooltip.vue?vue&type=script&lang=js\"","<script>\nimport { GlTruncate, GlTooltipDirective } from '@gitlab/ui';\n\nimport { DATE_TIME_FORMATS, DEFAULT_DATE_TIME_FORMAT } from '~/lib/utils/datetime_utility';\nimport timeagoMixin from '../mixins/timeago';\n\n/**\n * Port of ruby helper time_ago_with_tooltip\n */\n\nexport default {\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlTruncate,\n },\n mixins: [timeagoMixin],\n props: {\n time: {\n type: [String, Number, Date],\n required: true,\n },\n tooltipPlacement: {\n type: String,\n required: false,\n default: 'top',\n },\n cssClass: {\n type: String,\n required: false,\n default: '',\n },\n dateTimeFormat: {\n type: String,\n required: false,\n default: DEFAULT_DATE_TIME_FORMAT,\n validator: (timeFormat) => DATE_TIME_FORMATS.includes(timeFormat),\n },\n enableTruncation: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n timeAgo() {\n return this.timeFormatted(this.time, this.dateTimeFormat);\n },\n tooltipText() {\n return this.enableTruncation ? undefined : this.tooltipTitle(this.time);\n },\n },\n};\n</script>\n<template>\n <time\n v-gl-tooltip.viewport=\"{ placement: tooltipPlacement }\"\n :class=\"cssClass\"\n :title=\"tooltipText\"\n :datetime=\"time\"\n ><slot :time-ago=\"timeAgo\"\n ><template v-if=\"enableTruncation\"><gl-truncate :text=\"timeAgo\" with-tooltip /></template\n ><template v-else>{{ timeAgo }}</template></slot\n ></time\n >\n</template>\n","import { render, staticRenderFns } from \"./time_ago_tooltip.vue?vue&type=template&id=26d04390\"\nimport script from \"./time_ago_tooltip.vue?vue&type=script&lang=js\"\nexport * from \"./time_ago_tooltip.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { isArray } from 'lodash';\nimport Visibility from 'visibilityjs';\nimport { QUERY_PARAM_START_CURSOR, QUERY_PARAM_END_CURSOR } from './constants';\n\n/**\n * Ids generated by GraphQL endpoints are usually in the format\n * gid://gitlab/Environments/123. This method checks if the passed id follows that format\n *\n * @param {String|Number} id The id value\n * @returns {Boolean}\n */\nexport const isGid = (id) => {\n if (typeof id === 'string' && id.startsWith('gid://gitlab/')) {\n return true;\n }\n\n return false;\n};\n\nexport const parseGid = (gid) => {\n const [type, id] = `${gid}`.replace(/gid:\\/\\/gitlab\\//g, '').split('/');\n return { type, id };\n};\n\n/**\n * Ids generated by GraphQL endpoints are usually in the format\n * gid://gitlab/Environments/123. This method extracts Id number\n * from the Id path\n *\n * @param {String} gid GraphQL global ID\n * @returns {Number}\n */\nexport const getIdFromGraphQLId = (gid = '') => {\n const rawId = isGid(gid) ? parseGid(gid).id : gid;\n const id = parseInt(rawId, 10);\n return Number.isInteger(id) ? id : null;\n};\n\n/**\n * Ids generated by GraphQL endpoints are usually in the format\n * gid://gitlab/Environments/123. This method extracts Type string\n * from the Id path\n *\n * @param {String} gid GraphQL global ID\n * @returns {String}\n */\nexport const getTypeFromGraphQLId = (gid = '') => {\n if (!isGid(gid)) return null;\n\n const { type } = parseGid(gid);\n return type || null;\n};\n\nexport const mutationOperationMode = {\n append: 'APPEND',\n remove: 'REMOVE',\n replace: 'REPLACE',\n};\n\n/**\n * Ids generated by GraphQL endpoints are usually in the format\n * gid://gitlab/Groups/123. This method takes a type and an id\n * and interpolates the 2 values into the expected GraphQL ID format.\n *\n * @param {String} type The entity type\n * @param {String|Number} id The id value\n * @returns {String}\n */\nexport const convertToGraphQLId = (type, id) => {\n if (typeof type !== 'string') {\n throw new TypeError(`type must be a string; got ${typeof type}`);\n }\n\n if (!['number', 'string'].includes(typeof id)) {\n throw new TypeError(`id must be a number or string; got ${typeof id}`);\n }\n\n if (isGid(id)) {\n return id;\n }\n\n return `gid://gitlab/${type}/${id}`;\n};\n\n/**\n * Ids generated by GraphQL endpoints are usually in the format\n * gid://gitlab/Groups/123. This method takes a type and an\n * array of ids and tranforms the array values into the expected\n * GraphQL ID format.\n *\n * @param {String} type The entity type\n * @param {Array} ids An array of id values\n * @returns {Array}\n */\nexport const convertToGraphQLIds = (type, ids) => ids.map((id) => convertToGraphQLId(type, id));\n\n/**\n * Ids generated by GraphQL endpoints are usually in the format\n * gid://gitlab/Groups/123. This method takes an array of\n * GraphQL Ids and converts them to a number.\n *\n * @param {Array} ids An array of GraphQL IDs\n * @returns {Array}\n */\nexport const convertFromGraphQLIds = (ids) => {\n if (!isArray(ids)) {\n throw new TypeError(`ids must be an array; got ${typeof ids}`);\n }\n\n return ids.map((id) => getIdFromGraphQLId(id));\n};\n\n/**\n * Ids generated by GraphQL endpoints are usually in the format\n * gid://gitlab/Groups/123. This method takes an array of nodes\n * and converts the `id` properties from a GraphQL Id to a number.\n *\n * @param {Array} nodes An array of nodes with an `id` property\n * @returns {Array}\n */\nexport const convertNodeIdsFromGraphQLIds = (nodes) => {\n if (!isArray(nodes)) {\n throw new TypeError(`nodes must be an array; got ${typeof nodes}`);\n }\n\n return nodes.map((node) => (node.id ? { ...node, id: getIdFromGraphQLId(node.id) } : node));\n};\n\n/**\n * This function takes a GraphQL query data as a required argument and\n * the field name to resolve as an optional argument\n * and returns resolved field's data or an empty array\n * @param {Object} queryData\n * @param {String} nodesField (in most cases it will be 'nodes')\n * @returns {Array}\n */\nexport const getNodesOrDefault = (queryData, nodesField = 'nodes') => {\n return queryData?.[nodesField] ?? [];\n};\n\nexport const toggleQueryPollingByVisibility = (queryRef, interval = 10000) => {\n const stopStartQuery = (query) => {\n if (!Visibility.hidden()) {\n query.startPolling(interval);\n } else {\n query.stopPolling();\n }\n };\n\n stopStartQuery(queryRef);\n Visibility.change(stopStartQuery.bind(null, queryRef));\n};\n\nexport const etagQueryHeaders = (featureCorrelation, etagResource = '') => {\n return {\n fetchOptions: {\n method: 'GET',\n },\n headers: {\n 'X-GITLAB-GRAPHQL-FEATURE-CORRELATION': featureCorrelation,\n 'X-GITLAB-GRAPHQL-RESOURCE-ETAG': etagResource,\n 'X-Requested-With': 'XMLHttpRequest',\n },\n };\n};\n\nexport const calculateGraphQLPaginationQueryParams = ({\n startCursor,\n endCursor,\n routeQuery: { start_cursor, end_cursor, ...routeQuery },\n}) => {\n if (startCursor) {\n return {\n ...routeQuery,\n [QUERY_PARAM_START_CURSOR]: startCursor,\n };\n }\n\n if (endCursor) {\n return {\n ...routeQuery,\n [QUERY_PARAM_END_CURSOR]: endCursor,\n };\n }\n\n return routeQuery;\n};\n","import { createAlert } from '~/alert';\nimport { __ } from '~/locale';\n\nexport default {\n computed: {\n discussionResolved() {\n if (this.discussion) {\n return Boolean(this.discussion.resolved);\n }\n\n return this.note.resolved;\n },\n resolveButtonTitle() {\n return this.discussionResolved ? __('Unresolve thread') : __('Resolve thread');\n },\n },\n methods: {\n resolveHandler(resolvedState = false) {\n if (this.note && this.note.isDraft) {\n return this.$emit('toggleResolveStatus');\n }\n\n this.isResolving = true;\n const isResolved = this.discussionResolved || resolvedState;\n const discussion = this.resolveAsThread;\n let endpoint =\n discussion && this.discussion ? this.discussion.resolve_path : `${this.note.path}/resolve`;\n\n if (this.discussionResolvePath) {\n endpoint = this.discussionResolvePath;\n }\n\n return this.toggleResolveNote({ endpoint, isResolved, discussion })\n .then(() => {\n this.isResolving = false;\n })\n .catch(() => {\n this.isResolving = false;\n\n const msg = __('Something went wrong while resolving this discussion. Please try again.');\n createAlert({\n message: msg,\n parent: this.$el,\n });\n });\n },\n },\n};\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"issueSetLabels\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateIssueInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"updateIssuableLabels\"},\"name\":{\"kind\":\"Name\",\"value\":\"updateIssue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":289}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/label.fragment.graphql\\\"\\n\\nmutation issueSetLabels($input: UpdateIssueInput!) {\\n updateIssuableLabels: updateIssue(input: $input) {\\n issuable: issue {\\n id\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/label.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueSetLabels\"] = oneQuery(doc, \"issueSetLabels\");\n \n","import { mountSidebar, getSidebarOptions } from 'ee_else_ce/sidebar/mount_sidebar';\nimport Mediator from './sidebar_mediator';\n\nexport default (store) => {\n const mediator = new Mediator(getSidebarOptions());\n mediator.fetch();\n\n mountSidebar(mediator, store);\n};\n","import axios from './axios_utils';\nimport Cache from './cache';\n\nclass AjaxCache extends Cache {\n constructor() {\n super();\n this.pendingRequests = {};\n }\n\n override(endpoint, data) {\n this.internalStorage[endpoint] = data;\n }\n\n retrieve(endpoint, forceRetrieve) {\n if (this.hasData(endpoint) && !forceRetrieve) {\n return Promise.resolve(this.get(endpoint));\n }\n\n let pendingRequest = this.pendingRequests[endpoint];\n\n if (!pendingRequest) {\n pendingRequest = axios\n .get(endpoint)\n .then(({ data }) => {\n this.internalStorage[endpoint] = data;\n delete this.pendingRequests[endpoint];\n })\n .catch((e) => {\n const error = new Error(`${endpoint}: ${e.message}`);\n error.textStatus = e.message;\n\n delete this.pendingRequests[endpoint];\n throw error;\n });\n\n this.pendingRequests[endpoint] = pendingRequest;\n }\n\n return pendingRequest.then(() => this.get(endpoint));\n }\n}\n\nexport default new AjaxCache();\n","import { diffViewerModes as viewerModes } from '~/ide/constants';\nimport { changeInPercent, numberToHumanSize } from '~/lib/utils/number_utils';\nimport { truncateSha } from '~/lib/utils/text_utility';\nimport { uuids } from '~/lib/utils/uuids';\n\nimport {\n DIFF_FILE_SYMLINK_MODE,\n DIFF_FILE_DELETED_MODE,\n DIFF_FILE_MANUAL_COLLAPSE,\n DIFF_FILE_AUTOMATIC_COLLAPSE,\n} from '../constants';\nimport { getDerivedMergeRequestInformation } from './merge_request';\n\nfunction fileSymlinkInformation(file, fileList) {\n const duplicates = fileList.filter((iteratedFile) => iteratedFile.file_hash === file.file_hash);\n const includesSymlink = duplicates.some((iteratedFile) => {\n return [iteratedFile.a_mode, iteratedFile.b_mode].includes(DIFF_FILE_SYMLINK_MODE);\n });\n const brokenSymlinkScenario = duplicates.length > 1 && includesSymlink;\n\n return (\n brokenSymlinkScenario && {\n replaced: file.b_mode === DIFF_FILE_DELETED_MODE,\n wasSymbolic: file.a_mode === DIFF_FILE_SYMLINK_MODE,\n isSymbolic: file.b_mode === DIFF_FILE_SYMLINK_MODE,\n wasReal: ![DIFF_FILE_SYMLINK_MODE, DIFF_FILE_DELETED_MODE].includes(file.a_mode),\n isReal: ![DIFF_FILE_SYMLINK_MODE, DIFF_FILE_DELETED_MODE].includes(file.b_mode),\n }\n );\n}\n\nfunction collapsed(file) {\n const viewer = file.viewer || {};\n\n return {\n automaticallyCollapsed: viewer.automaticallyCollapsed || viewer.collapsed || false,\n manuallyCollapsed: null,\n forceOpen: false,\n };\n}\n\nfunction identifier(file) {\n const { namespace, project, id } = getDerivedMergeRequestInformation({\n endpoint: file.load_collapsed_diff_url,\n });\n\n return uuids({\n seeds: [namespace, project, id, file.file_identifier_hash, file.blob?.id],\n })[0];\n}\n\nexport function isNotDiffable(file) {\n return file?.viewer?.name === viewerModes.not_diffable;\n}\n\nexport function prepareRawDiffFile({ file, allFiles, meta = false, index = -1 }) {\n const additionalProperties = {\n brokenSymlink: fileSymlinkInformation(file, allFiles),\n hasCommentForm: false,\n discussions: file.discussions || [],\n drafts: [],\n viewer: {\n ...file.viewer,\n ...collapsed(file),\n },\n };\n\n // It's possible, but not confirmed, that `blob.id` isn't available sometimes\n // See: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49506#note_464692057\n // We don't want duplicate IDs if that's the case, so we just don't assign an ID\n if (!meta && file.blob?.id && file.load_collapsed_diff_url) {\n additionalProperties.id = identifier(file);\n }\n\n if (index >= 0 && Number(index) === index) {\n additionalProperties.order = index;\n }\n\n return Object.assign(file, additionalProperties);\n}\n\nexport function collapsedType(file) {\n const isManual = typeof file?.viewer?.manuallyCollapsed === 'boolean';\n\n return isManual ? DIFF_FILE_MANUAL_COLLAPSE : DIFF_FILE_AUTOMATIC_COLLAPSE;\n}\n\nexport function isCollapsed(file) {\n const type = collapsedType(file);\n const collapsedStates = {\n [DIFF_FILE_AUTOMATIC_COLLAPSE]: file?.viewer?.automaticallyCollapsed || false,\n [DIFF_FILE_MANUAL_COLLAPSE]: file?.viewer?.manuallyCollapsed,\n };\n\n return collapsedStates[type];\n}\n\nexport function getShortShaFromFile(file) {\n return file.content_sha ? truncateSha(String(file.content_sha)) : null;\n}\n\nexport function match({ fileA, fileB, mode = 'universal' } = {}) {\n const matching = {\n universal: (a, b) => (a?.id && b?.id ? a.id === b.id : false),\n /*\n * MR mode can be wildly incorrect if there is ever the possibility of files from multiple MRs\n * (e.g. a browser-local merge request/file cache).\n * That's why the default here is \"universal\" mode: UUIDs can't conflict, but you can opt into\n * the dangerous one.\n *\n * For reference:\n * file_identifier_hash === sha1( `${filePath}-${Boolean(isNew)}-${Boolean(isDeleted)}-${Boolean(isRenamed)}` )\n */\n mr: (a, b) =>\n a?.file_identifier_hash && b?.file_identifier_hash\n ? a.file_identifier_hash === b.file_identifier_hash\n : false,\n };\n\n return (matching[mode] || (() => false))(fileA, fileB);\n}\n\nexport function stats(file) {\n let valid = false;\n let classes = '';\n let sign = '';\n let text = '';\n let percent = 0;\n let diff = 0;\n\n if (file) {\n percent = changeInPercent(file.old_size, file.new_size);\n diff = file.new_size - file.old_size;\n sign = diff >= 0 ? '+' : '';\n text = `${sign}${numberToHumanSize(diff)} (${sign}${percent}%)`;\n valid = true;\n\n if (diff > 0) {\n classes = 'gl-text-success';\n } else if (diff < 0) {\n classes = 'gl-text-danger';\n }\n }\n\n return {\n changed: diff,\n text,\n percent,\n classes,\n sign,\n valid,\n };\n}\n\nexport function countLinesInBetween(lines, index) {\n if (index === 0 || !lines[index + 1]) {\n return -1;\n }\n\n const prev = lines[index - 1];\n const next = lines[index + 1];\n return Number((next.left || next).new_line) - Number((prev.left || prev).new_line);\n}\n\nexport function findClosestMatchLine(lines, target) {\n return (\n lines.find((line, index) => {\n if (!line.meta_data) return false;\n const prevLine = lines[index - 1];\n if (prevLine) {\n return prevLine.new_line < target && target <= line.meta_data.new_pos;\n }\n return target <= line.meta_data.new_pos;\n }) || lines[lines.length - 1]\n );\n}\n\nexport function lineExists(lines, oldLineNumber, newLineNumber) {\n return lines.some((line) => line.old_line === oldLineNumber && line.new_line === newLineNumber);\n}\n","import { __, sprintf } from '~/locale';\nimport { TYPE_EPIC, TYPE_INCIDENT, TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\n\nexport const linkedIssueTypesMap = {\n BLOCKS: 'blocks',\n IS_BLOCKED_BY: 'is_blocked_by',\n RELATES_TO: 'relates_to',\n};\n\nexport const linkedIssueTypesTextMap = {\n [linkedIssueTypesMap.RELATES_TO]: __('Relates to'),\n [linkedIssueTypesMap.BLOCKS]: __('Blocks'),\n [linkedIssueTypesMap.IS_BLOCKED_BY]: __('Is blocked by'),\n};\n\nexport const autoCompleteTextMap = {\n true: {\n [TYPE_ISSUE]: sprintf(\n __(' or %{emphasisStart}#issue ID%{emphasisEnd}'),\n { emphasisStart: '<', emphasisEnd: '>' },\n false,\n ),\n [TYPE_INCIDENT]: sprintf(\n __(' or %{emphasisStart}#ID%{emphasisEnd}'),\n { emphasisStart: '<', emphasisEnd: '>' },\n false,\n ),\n [TYPE_EPIC]: sprintf(\n __(' or %{emphasisStart}&epic ID%{emphasisEnd}'),\n { emphasisStart: '<', emphasisEnd: '>' },\n false,\n ),\n [TYPE_MERGE_REQUEST]: sprintf(\n __(' or %{emphasisStart}!merge request ID%{emphasisEnd}'),\n { emphasisStart: '<', emphasisEnd: '>' },\n false,\n ),\n },\n false: {\n [TYPE_ISSUE]: '',\n [TYPE_EPIC]: '',\n [TYPE_MERGE_REQUEST]: __(' or references'),\n },\n};\n\nexport const inputPlaceholderTextMap = {\n [TYPE_ISSUE]: __('Enter issue URL'),\n [TYPE_INCIDENT]: __('Enter URL'),\n [TYPE_EPIC]: __('Enter epic URL'),\n [TYPE_MERGE_REQUEST]: __('Enter merge request URLs'),\n};\n\nexport const inputPlaceholderConfidentialTextMap = {\n [TYPE_ISSUE]: __('Enter confidential issue URL'),\n [TYPE_EPIC]: __('Enter confidential epic URL'),\n [TYPE_MERGE_REQUEST]: __('Enter merge request URLs'),\n};\n\nexport const relatedIssuesRemoveErrorMap = {\n [TYPE_ISSUE]: __('An error occurred while removing issues.'),\n [TYPE_EPIC]: __('An error occurred while removing epics.'),\n};\n\nexport const pathIndeterminateErrorMap = {\n [TYPE_ISSUE]: __('We could not determine the path to remove the issue'),\n [TYPE_EPIC]: __('We could not determine the path to remove the epic'),\n};\n\nexport const itemAddFailureTypesMap = {\n NOT_FOUND: 'not_found',\n MAX_NUMBER_OF_CHILD_EPICS: 'conflict',\n};\n\nexport const addRelatedIssueErrorMap = {\n [TYPE_ISSUE]: __('Issue cannot be found.'),\n [TYPE_EPIC]: __('Epic cannot be found.'),\n};\n\nexport const addRelatedItemErrorMap = {\n [itemAddFailureTypesMap.MAX_NUMBER_OF_CHILD_EPICS]: __(\n 'This epic already has the maximum number of child epics.',\n ),\n};\n\n/**\n * These are used to map issuableType to the correct icon.\n * Since these are never used for any display purposes, don't wrap\n * them inside i18n functions.\n */\nexport const issuableIconMap = {\n [TYPE_ISSUE]: 'issues',\n [TYPE_INCIDENT]: 'issues',\n [TYPE_EPIC]: 'epic',\n};\n\nexport const PathIdSeparator = {\n Epic: '&',\n Issue: '#',\n};\n\nexport const issuablesBlockHeaderTextMap = {\n [TYPE_ISSUE]: __('Linked items'),\n [TYPE_INCIDENT]: __('Linked incidents or issues'),\n [TYPE_EPIC]: __('Linked epics'),\n};\n\nexport const issuablesBlockHelpTextMap = {\n [TYPE_ISSUE]: __('Learn more about linking issues'),\n [TYPE_INCIDENT]: __('Learn more about linking issues and incidents'),\n [TYPE_EPIC]: __('Learn more about linking epics'),\n};\n\nexport const issuablesBlockAddButtonTextMap = {\n [TYPE_ISSUE]: __('Add a related issue'),\n [TYPE_EPIC]: __('Add a related epic'),\n};\n\nexport const issuablesFormCategoryHeaderTextMap = {\n [TYPE_ISSUE]: __('The current issue'),\n [TYPE_INCIDENT]: __('The current incident'),\n [TYPE_EPIC]: __('The current epic'),\n};\n\nexport const issuablesFormInputTextMap = {\n [TYPE_ISSUE]: __('the following issues'),\n [TYPE_INCIDENT]: __('the following incidents or issues'),\n [TYPE_EPIC]: __('the following epics'),\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"design-detail js-design-detail fixed-top gl-flex gl-w-full gl-flex-col gl-justify-center gl-bg-gray-10 lg:gl-flex-row\"},[_c('div',{staticClass:\"gl-relative gl-flex gl-grow gl-flex-col gl-overflow-hidden\"},[_c('design-toolbar',{attrs:{\"work-item-title\":_vm.workItemTitle,\"design\":_vm.design,\"design-filename\":_vm.$route.params.id,\"is-loading\":_vm.isLoading,\"is-sidebar-open\":_vm.isSidebarOpen,\"is-latest-version\":_vm.isLatestVersion,\"all-designs\":_vm.allDesigns,\"current-user-design-todos\":_vm.currentUserDesignTodos},on:{\"toggle-sidebar\":_vm.toggleSidebar,\"archive-design\":_vm.onArchiveDesign,\"todosUpdated\":_vm.updateWorkItemDesignCurrentTodosWidgetCache}}),_vm._v(\" \"),_c('div',{staticClass:\"gl-relative gl-flex gl-grow gl-flex-col gl-overflow-hidden lg:gl-flex-row\"},[_c('div',{staticClass:\"gl-relative gl-flex gl-grow-2 gl-flex-col gl-overflow-hidden\"},[(_vm.errorMessage)?_c('div',{staticClass:\"gl-p-5\"},[_c('gl-alert',{attrs:{\"variant\":\"danger\"},on:{\"dismiss\":function($event){_vm.errorMessage = null}}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),_c('design-presentation',{attrs:{\"image\":_vm.design.image,\"image-name\":_vm.design.filename,\"discussions\":_vm.discussions,\"is-annotating\":_vm.isAnnotating,\"scale\":_vm.scale,\"resolved-discussions-expanded\":_vm.resolvedDiscussionsExpanded,\"is-sidebar-open\":_vm.isSidebarOpen,\"is-loading\":_vm.isLoading,\"disable-commenting\":!_vm.isSidebarOpen},on:{\"openCommentForm\":_vm.openCommentForm,\"moveNote\":_vm.onMoveNote,\"setMaxScale\":_vm.setMaxScale}})],1),_vm._v(\" \"),_c('div',{staticClass:\"design-scaler-wrapper gl-absolute gl-mb-6 gl-flex gl-items-center gl-justify-center\"},[_c('design-scaler',{attrs:{\"max-scale\":_vm.maxScale},on:{\"scale\":function($event){_vm.scale = $event}}})],1),_vm._v(\" \"),_c('design-sidebar',{attrs:{\"design\":_vm.design,\"design-variables\":_vm.designVariables,\"is-loading\":_vm.isLoading,\"is-open\":_vm.isSidebarOpen,\"markdown-preview-path\":_vm.markdownPreviewPath,\"resolved-discussions-expanded\":_vm.resolvedDiscussionsExpanded,\"is-comment-form-present\":_vm.isAnnotating},on:{\"deleteNoteError\":_vm.onDeleteNoteError,\"resolveDiscussionError\":_vm.onResolveDiscussionError,\"toggleResolvedComments\":_vm.toggleResolvedComments},scopedSlots:_vm._u([{key:\"reply-form\",fn:function(){return [(_vm.isAnnotating)?_c('design-reply-form',{ref:\"newDiscussionForm\",attrs:{\"design-note-mutation\":_vm.$options.createImageDiffNoteMutation,\"mutation-variables\":_vm.mutationVariables,\"markdown-preview-path\":_vm.markdownPreviewPath,\"noteable-id\":_vm.design.id,\"iid\":_vm.iid},on:{\"note-submit-complete\":_vm.addImageDiffNoteToStore,\"cancel-form\":_vm.closeCommentForm}}):_vm._e()]},proxy:true}])})],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_reply_form.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_reply_form.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlAlert } from '@gitlab/ui';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { s__, __ } from '~/locale';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport { getIdFromGraphQLId, isGid } from '~/graphql_shared/utils';\nimport MarkdownEditor from '~/vue_shared/components/markdown/markdown_editor.vue';\nimport markdownEditorEventHub from '~/vue_shared/components/markdown/eventhub';\nimport { CLEAR_AUTOSAVE_ENTRY_EVENT } from '~/vue_shared/constants';\nimport { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal';\nimport {\n ADD_DISCUSSION_COMMENT_ERROR,\n ADD_IMAGE_DIFF_NOTE_ERROR,\n UPDATE_IMAGE_DIFF_NOTE_ERROR,\n UPDATE_NOTE_ERROR,\n} from '../constants';\n\nexport default {\n name: 'WorkItemDesignReplyForm',\n i18n: {\n primaryBtn: s__('DesignManagement|Discard changes'),\n cancelBtnCreate: s__('DesignManagement|Continue creating'),\n cancelBtnUpdate: s__('DesignManagement|Continue editing'),\n cancelCreate: s__('DesignManagement|Are you sure you want to cancel creating this comment?'),\n cancelUpdate: s__('DesignManagement|Are you sure you want to cancel editing this comment?'),\n newCommentButton: s__('DesignManagement|Comment'),\n updateCommentButton: s__('DesignManagement|Save comment'),\n },\n markdownDocsPath: helpPagePath('user/markdown'),\n components: {\n MarkdownEditor,\n GlButton,\n GlAlert,\n },\n inject: ['fullPath'],\n props: {\n designNoteMutation: {\n type: Object,\n required: true,\n },\n mutationVariables: {\n type: Object,\n required: false,\n default: null,\n },\n markdownPreviewPath: {\n type: String,\n required: false,\n default: '',\n },\n isNewComment: {\n type: Boolean,\n required: false,\n default: true,\n },\n isDiscussion: {\n type: Boolean,\n required: false,\n default: true,\n },\n noteableId: {\n type: String,\n required: true,\n },\n discussionId: {\n type: String,\n required: false,\n default: 'new',\n },\n value: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n noteText: this.value,\n saving: false,\n noteUpdateDirty: false,\n isLoggedIn: isLoggedIn(),\n errorMessage: '',\n formFieldProps: {\n id: 'design-reply',\n name: 'design-reply',\n 'aria-label': __('Description'),\n placeholder: __('Write a comment…'),\n 'data-testid': 'note-textarea',\n class: 'note-textarea js-gfm-input js-autosize markdown-area',\n },\n };\n },\n computed: {\n hasValue() {\n return this.noteText.length > 0;\n },\n buttonText() {\n return this.isNewComment\n ? this.$options.i18n.newCommentButton\n : this.$options.i18n.updateCommentButton;\n },\n shortDiscussionId() {\n return isGid(this.discussionId) ? getIdFromGraphQLId(this.discussionId) : this.discussionId;\n },\n autosaveKey() {\n if (this.isLoggedIn) {\n return [\n s__('DesignManagement|Discussion'),\n getIdFromGraphQLId(this.noteableId),\n this.shortDiscussionId,\n ].join('/');\n }\n return '';\n },\n hasDirtyFreshComment() {\n return this.hasValue && this.noteUpdateDirty && this.noteText !== this.value;\n },\n },\n beforeDestroy() {\n /**\n * https://gitlab.com/gitlab-org/gitlab/-/issues/388314\n * Reply form closes and component destroys\n * only when comment submission was successful,\n * so we're safe to clear autosave data here conditionally.\n */\n this.$nextTick(() => {\n markdownEditorEventHub.$emit(CLEAR_AUTOSAVE_ENTRY_EVENT, this.autosaveKey);\n });\n },\n methods: {\n handleInput() {\n /**\n * While the form is saving using ctrl+enter\n * Do not mark it as dirty.\n *\n */\n if (!this.saving) {\n this.noteUpdateDirty = true;\n }\n },\n async submitForm() {\n if (!this.hasValue) {\n return;\n }\n\n this.saving = true;\n try {\n await this.$apollo.mutate({\n mutation: this.designNoteMutation,\n variables: {\n input: {\n ...this.mutationVariables,\n body: this.noteText,\n },\n },\n update: this.afterNoteMutation,\n });\n } catch (error) {\n this.errorMessage = this.getErrorMessage();\n Sentry.captureException(error);\n } finally {\n this.saving = false;\n }\n },\n afterNoteMutation(store, { data }) {\n this.$emit('note-submit-complete', { store, data });\n },\n getErrorMessage() {\n if (this.isNewComment) {\n return this.isDiscussion ? ADD_IMAGE_DIFF_NOTE_ERROR : ADD_DISCUSSION_COMMENT_ERROR;\n }\n return this.isDiscussion ? UPDATE_IMAGE_DIFF_NOTE_ERROR : UPDATE_NOTE_ERROR;\n },\n cancelComment() {\n if (this.hasDirtyFreshComment) {\n this.confirmCancelCommentModal();\n } else {\n this.$emit('cancel-form');\n this.noteUpdateDirty = false;\n }\n },\n async confirmCancelCommentModal() {\n const msg = this.isNewComment\n ? this.$options.i18n.cancelCreate\n : this.$options.i18n.cancelUpdate;\n\n const cancelBtn = this.isNewComment\n ? this.$options.i18n.cancelBtnCreate\n : this.$options.i18n.cancelBtnUpdate;\n\n const confirmed = await confirmAction(msg, {\n primaryBtnText: this.$options.i18n.primaryBtn,\n cancelBtnText: cancelBtn,\n primaryBtnVariant: 'danger',\n });\n\n if (!confirmed) {\n return;\n }\n\n this.$emit('cancel-form');\n markdownEditorEventHub.$emit(CLEAR_AUTOSAVE_ENTRY_EVENT, this.autosaveKey);\n },\n },\n};\n</script>\n\n<template>\n <form class=\"new-note common-note-form\" @submit.prevent>\n <div v-if=\"errorMessage\" class=\"gl-pb-3\">\n <gl-alert variant=\"danger\" @dismiss=\"errorMessage = null\">\n {{ errorMessage }}\n </gl-alert>\n </div>\n <markdown-editor\n v-model=\"noteText\"\n autofocus\n :markdown-docs-path=\"$options.markdownDocsPath\"\n :render-markdown-path=\"markdownPreviewPath\"\n :enable-autocomplete=\"true\"\n :supports-quick-actions=\"false\"\n :form-field-props=\"formFieldProps\"\n @input=\"handleInput\"\n @keydown.meta.enter=\"submitForm\"\n @keydown.ctrl.enter=\"submitForm\"\n @keydown.esc.stop=\"cancelComment\"\n />\n <slot name=\"resolve-checkbox\"></slot>\n <div class=\"note-form-actions !gl-mt-4 gl-flex\">\n <gl-button\n ref=\"submitButton\"\n :disabled=\"!hasValue\"\n :loading=\"saving\"\n class=\"gl-mr-3 !gl-w-auto\"\n category=\"primary\"\n variant=\"confirm\"\n type=\"submit\"\n data-track-action=\"click_button\"\n @click=\"submitForm\"\n >\n {{ buttonText }}\n </gl-button>\n <gl-button\n ref=\"cancelButton\"\n class=\"!gl-w-auto\"\n variant=\"default\"\n category=\"primary\"\n @click=\"cancelComment\"\n >{{ __('Cancel') }}</gl-button\n >\n </div>\n </form>\n</template>\n","import { render, staticRenderFns } from \"./design_reply_form.vue?vue&type=template&id=e2819952\"\nimport script from \"./design_reply_form.vue?vue&type=script&lang=js\"\nexport * from \"./design_reply_form.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{staticClass:\"new-note common-note-form\",on:{\"submit\":function($event){$event.preventDefault();}}},[(_vm.errorMessage)?_c('div',{staticClass:\"gl-pb-3\"},[_c('gl-alert',{attrs:{\"variant\":\"danger\"},on:{\"dismiss\":function($event){_vm.errorMessage = null}}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),_c('markdown-editor',{attrs:{\"autofocus\":\"\",\"markdown-docs-path\":_vm.$options.markdownDocsPath,\"render-markdown-path\":_vm.markdownPreviewPath,\"enable-autocomplete\":true,\"supports-quick-actions\":false,\"form-field-props\":_vm.formFieldProps},on:{\"input\":_vm.handleInput,\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.metaKey)return null;return _vm.submitForm.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.ctrlKey)return null;return _vm.submitForm.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;$event.stopPropagation();return _vm.cancelComment.apply(null, arguments)}]},model:{value:(_vm.noteText),callback:function ($$v) {_vm.noteText=$$v},expression:\"noteText\"}}),_vm._v(\" \"),_vm._t(\"resolve-checkbox\"),_vm._v(\" \"),_c('div',{staticClass:\"note-form-actions !gl-mt-4 gl-flex\"},[_c('gl-button',{ref:\"submitButton\",staticClass:\"gl-mr-3 !gl-w-auto\",attrs:{\"disabled\":!_vm.hasValue,\"loading\":_vm.saving,\"category\":\"primary\",\"variant\":\"confirm\",\"type\":\"submit\",\"data-track-action\":\"click_button\"},on:{\"click\":_vm.submitForm}},[_vm._v(\"\\n \"+_vm._s(_vm.buttonText)+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{ref:\"cancelButton\",staticClass:\"!gl-w-auto\",attrs:{\"variant\":\"default\",\"category\":\"primary\"},on:{\"click\":_vm.cancelComment}},[_vm._v(_vm._s(_vm.__('Cancel')))])],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./image.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./image.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlIcon } from '@gitlab/ui';\nimport { throttle } from 'lodash';\nimport { DESIGN_MARK_APP_START, DESIGN_MAIN_IMAGE_OUTPUT } from '~/performance/constants';\nimport { performanceMarkAndMeasure } from '~/performance/utils';\n\nexport default {\n components: {\n GlIcon,\n },\n props: {\n image: {\n type: String,\n required: false,\n default: '',\n },\n name: {\n type: String,\n required: false,\n default: '',\n },\n scale: {\n type: Number,\n required: false,\n default: 1,\n },\n },\n data() {\n return {\n baseImageSize: null,\n imageStyle: null,\n imageError: false,\n };\n },\n watch: {\n scale(val) {\n this.zoom(val);\n },\n },\n beforeDestroy() {\n window.removeEventListener('resize', this.resizeThrottled, false);\n },\n mounted() {\n if (!this.image) {\n this.onImgLoad();\n }\n\n this.resizeThrottled = throttle(() => {\n // NOTE: if imageStyle is set, then baseImageSize\n // won't change due to resize. We must still emit a\n // `resize` event so that the parent can handle\n // resizes appropriately (e.g. for design_overlay)\n this.setBaseImageSize();\n }, 400);\n window.addEventListener('resize', this.resizeThrottled, false);\n },\n methods: {\n onImgLoad() {\n requestIdleCallback(this.setBaseImageSize, { timeout: 1000 });\n requestIdleCallback(this.setImageNaturalScale, { timeout: 1000 });\n performanceMarkAndMeasure({\n measures: [\n {\n name: DESIGN_MAIN_IMAGE_OUTPUT,\n start: DESIGN_MARK_APP_START,\n },\n ],\n });\n },\n onImgError() {\n this.imageError = true;\n },\n setBaseImageSize() {\n const { contentImg } = this.$refs;\n if (!contentImg) return;\n if (contentImg.offsetHeight === 0 || contentImg.offsetWidth === 0) {\n this.baseImageSize = {\n height: contentImg.naturalHeight,\n width: contentImg.naturalWidth,\n };\n } else {\n this.baseImageSize = {\n height: contentImg.offsetHeight,\n width: contentImg.offsetWidth,\n };\n }\n\n this.onResize({ width: this.baseImageSize.width, height: this.baseImageSize.height });\n },\n setImageNaturalScale() {\n const { contentImg } = this.$refs;\n\n if (!contentImg) {\n return;\n }\n\n const { naturalHeight, naturalWidth } = contentImg;\n\n // In case image 404s\n if (naturalHeight === 0 || naturalWidth === 0) {\n return;\n }\n\n const { height, width } = this.baseImageSize;\n\n this.imageStyle = {\n width: `${width}px`,\n height: `${height}px`,\n };\n\n this.$parent.$emit(\n 'setMaxScale',\n Math.round(((height + width) / (naturalHeight + naturalWidth)) * 100) / 100,\n );\n },\n onResize({ width, height }) {\n this.$emit('resize', { width, height });\n },\n zoom(amount) {\n if (amount === 1) {\n this.imageStyle = null;\n this.$nextTick(() => {\n this.setBaseImageSize();\n });\n return;\n }\n const width = this.baseImageSize.width * amount;\n const height = this.baseImageSize.height * amount;\n\n this.imageStyle = {\n width: `${width}px`,\n height: `${height}px`,\n };\n\n this.onResize({ width, height });\n },\n },\n};\n</script>\n\n<template>\n <div class=\"js-design-image gl-mx-auto gl-my-auto\">\n <gl-icon v-if=\"imageError\" name=\"media-broken\" :size=\"48\" variant=\"disabled\" />\n <img\n v-show=\"!imageError\"\n ref=\"contentImg\"\n class=\"gl-border gl-max-h-full\"\n :src=\"image\"\n :alt=\"name\"\n :style=\"imageStyle\"\n :class=\"{ 'img-fluid': !imageStyle }\"\n @error=\"onImgError\"\n @load=\"onImgLoad\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./image.vue?vue&type=template&id=03a50347\"\nimport script from \"./image.vue?vue&type=script&lang=js\"\nexport * from \"./image.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"js-design-image gl-mx-auto gl-my-auto\"},[(_vm.imageError)?_c('gl-icon',{attrs:{\"name\":\"media-broken\",\"size\":48,\"variant\":\"disabled\"}}):_vm._e(),_vm._v(\" \"),_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.imageError),expression:\"!imageError\"}],ref:\"contentImg\",staticClass:\"gl-border gl-max-h-full\",class:{ 'img-fluid': !_vm.imageStyle },style:(_vm.imageStyle),attrs:{\"src\":_vm.image,\"alt\":_vm.name},on:{\"error\":_vm.onImgError,\"load\":_vm.onImgLoad}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_overlay.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_overlay.vue?vue&type=script&lang=js\"","<script>\nimport { __ } from '~/locale';\nimport DesignNotePin from '~/vue_shared/components/design_management/design_note_pin.vue';\nimport { ACTIVE_DISCUSSION_SOURCE_TYPES } from '../constants';\nimport updateActiveDiscussionMutation from '../graphql/client/update_active_design_discussion.mutation.graphql';\nimport activeDiscussionQuery from '../graphql/client/active_design_discussion.query.graphql';\n\nexport default {\n name: 'DesignOverlay',\n components: {\n DesignNotePin,\n },\n props: {\n dimensions: {\n type: Object,\n required: true,\n },\n position: {\n type: Object,\n required: true,\n },\n notes: {\n type: Array,\n required: false,\n default: () => [],\n },\n currentCommentForm: {\n type: Object,\n required: false,\n default: null,\n },\n disableCommenting: {\n type: Boolean,\n required: false,\n default: false,\n },\n resolvedDiscussionsExpanded: {\n type: Boolean,\n required: true,\n },\n disableNotes: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n apollo: {\n activeDesignDiscussion: {\n query: activeDiscussionQuery,\n },\n },\n data() {\n return {\n movingNoteNewPosition: null,\n movingNoteStartPosition: null,\n activeDesignDiscussion: {},\n };\n },\n computed: {\n overlayStyle() {\n const cursor = this.disableCommenting ? 'unset' : undefined;\n\n return {\n cursor,\n width: `${this.dimensions.width}px`,\n height: `${this.dimensions.height}px`,\n ...this.position,\n };\n },\n isMovingCurrentComment() {\n return Boolean(this.movingNoteStartPosition && !this.movingNoteStartPosition.noteId);\n },\n currentCommentPositionStyle() {\n return this.isMovingCurrentComment && this.movingNoteNewPosition\n ? this.getNotePositionStyle(this.movingNoteNewPosition)\n : this.getNotePositionStyle(this.currentCommentForm);\n },\n visibleNotes() {\n if (this.resolvedDiscussionsExpanded) {\n return this.notes;\n }\n\n return this.notes.filter((note) => !note.resolved);\n },\n },\n methods: {\n setNewNoteCoordinates({ x, y }) {\n this.$emit('openCommentForm', { x, y });\n },\n getNoteRelativePosition(position) {\n const { x, y, width, height } = position;\n const widthRatio = this.dimensions.width / width;\n const heightRatio = this.dimensions.height / height;\n return {\n left: Math.round(x * widthRatio),\n top: Math.round(y * heightRatio),\n };\n },\n getNotePositionStyle(position) {\n const { left, top } = this.getNoteRelativePosition(position);\n return {\n left: `${left}px`,\n top: `${top}px`,\n };\n },\n getMovingNotePositionDelta(e) {\n let deltaX = 0;\n let deltaY = 0;\n\n if (this.movingNoteStartPosition) {\n const { clientX, clientY } = this.movingNoteStartPosition;\n deltaX = e.clientX - clientX;\n deltaY = e.clientY - clientY;\n }\n\n return {\n deltaX,\n deltaY,\n };\n },\n isMovingNote(noteId) {\n const movingNoteId = this.movingNoteStartPosition?.noteId;\n return Boolean(movingNoteId && movingNoteId === noteId);\n },\n canMoveNote(note) {\n const { userPermissions } = note;\n const { repositionNote } = userPermissions || {};\n\n return Boolean(repositionNote);\n },\n isPositionInOverlay(position) {\n const { top, left } = this.getNoteRelativePosition(position);\n const { height, width } = this.dimensions;\n\n return top >= 0 && top <= height && left >= 0 && left <= width;\n },\n onNewNoteMove(e) {\n if (!this.isMovingCurrentComment) return;\n\n const { deltaX, deltaY } = this.getMovingNotePositionDelta(e);\n const x = this.currentCommentForm.x + deltaX;\n const y = this.currentCommentForm.y + deltaY;\n\n const movingNoteNewPosition = {\n x,\n y,\n width: this.dimensions.width,\n height: this.dimensions.height,\n };\n\n if (!this.isPositionInOverlay(movingNoteNewPosition)) {\n this.onNewNoteMouseup();\n return;\n }\n\n this.movingNoteNewPosition = movingNoteNewPosition;\n },\n onExistingNoteMove(e) {\n const note = this.notes.find(({ id }) => id === this.movingNoteStartPosition.noteId);\n if (!note || !this.canMoveNote(note)) return;\n\n const { position } = note;\n const { width, height } = position;\n const widthRatio = this.dimensions.width / width;\n const heightRatio = this.dimensions.height / height;\n\n const { deltaX, deltaY } = this.getMovingNotePositionDelta(e);\n const x = position.x * widthRatio + deltaX;\n const y = position.y * heightRatio + deltaY;\n\n const movingNoteNewPosition = {\n x,\n y,\n width: this.dimensions.width,\n height: this.dimensions.height,\n };\n\n if (!this.isPositionInOverlay(movingNoteNewPosition)) {\n this.onExistingNoteMouseup();\n return;\n }\n\n this.movingNoteNewPosition = movingNoteNewPosition;\n },\n onNewNoteMouseup() {\n if (!this.movingNoteNewPosition) return;\n\n const { x, y } = this.movingNoteNewPosition;\n this.setNewNoteCoordinates({ x, y });\n },\n onExistingNoteMouseup(note) {\n if (!this.movingNoteStartPosition || !this.movingNoteNewPosition) {\n this.updateActiveDesignDiscussion(note.id);\n this.$emit('closeCommentForm');\n return;\n }\n\n const { x, y } = this.movingNoteNewPosition;\n this.$emit('moveNote', {\n noteId: this.movingNoteStartPosition.noteId,\n discussionId: this.movingNoteStartPosition.discussionId,\n coordinates: { x, y },\n });\n },\n onNoteMousedown({ clientX, clientY }, note) {\n this.movingNoteStartPosition = {\n noteId: note?.id,\n discussionId: note?.discussion.id,\n clientX,\n clientY,\n };\n },\n onOverlayMousemove(e) {\n if (!this.movingNoteStartPosition) return;\n\n if (this.isMovingCurrentComment) {\n this.onNewNoteMove(e);\n } else {\n this.onExistingNoteMove(e);\n }\n },\n onNoteMouseup(note) {\n if (!this.movingNoteStartPosition) return;\n\n if (this.isMovingCurrentComment) {\n this.onNewNoteMouseup();\n } else {\n this.onExistingNoteMouseup(note);\n }\n\n this.movingNoteStartPosition = null;\n this.movingNoteNewPosition = null;\n },\n onAddCommentMouseup({ offsetX, offsetY }) {\n if (this.disableCommenting) return;\n if (this.activeDesignDiscussion.id) {\n this.updateActiveDesignDiscussion();\n }\n\n this.setNewNoteCoordinates({ x: offsetX, y: offsetY });\n },\n updateActiveDesignDiscussion(id) {\n this.$apollo.mutate({\n mutation: updateActiveDiscussionMutation,\n variables: {\n id,\n source: ACTIVE_DISCUSSION_SOURCE_TYPES.pin,\n },\n });\n },\n isNoteInactive(note) {\n const discussionNotes = note.discussion.notes.nodes || [];\n\n return (\n this.activeDesignDiscussion.id &&\n !discussionNotes.some(({ id }) => id === this.activeDesignDiscussion.id)\n );\n },\n },\n i18n: {\n newCommentButtonLabel: __('Add comment to design'),\n },\n};\n</script>\n\n<template>\n <div\n class=\"frame gl-absolute gl-left-0 gl-top-0\"\n :style=\"overlayStyle\"\n data-testid=\"design-overlay\"\n @mousemove=\"onOverlayMousemove\"\n @mouseleave=\"onNoteMouseup\"\n >\n <button\n v-show=\"!disableCommenting\"\n type=\"button\"\n role=\"button\"\n :aria-label=\"$options.i18n.newCommentButtonLabel\"\n class=\"gl-absolute gl-left-0 gl-top-0 gl-h-full gl-w-full gl-border-0 !gl-bg-transparent gl-p-0 gl-text-subtle !gl-shadow-none gl-outline-none hover:gl-cursor-crosshair\"\n data-testid=\"design-image-button\"\n @mouseup=\"onAddCommentMouseup\"\n ></button>\n\n <template v-if=\"!disableNotes\">\n <design-note-pin\n v-for=\"note in visibleNotes\"\n :key=\"note.id\"\n :label=\"note.index\"\n :position=\"\n isMovingNote(note.id) && movingNoteNewPosition\n ? getNotePositionStyle(movingNoteNewPosition)\n : getNotePositionStyle(note.position)\n \"\n :is-inactive=\"isNoteInactive(note)\"\n :is-resolved=\"note.resolved\"\n is-on-image\n data-testid=\"note-pin\"\n @mousedown.stop=\"onNoteMousedown($event, note)\"\n @mouseup.stop=\"onNoteMouseup(note)\"\n />\n\n <design-note-pin\n v-if=\"currentCommentForm\"\n :position=\"currentCommentPositionStyle\"\n data-testid=\"comment-badge\"\n @mousedown.stop=\"onNoteMousedown\"\n @mouseup.stop=\"onNoteMouseup\"\n />\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./design_overlay.vue?vue&type=template&id=db369a72\"\nimport script from \"./design_overlay.vue?vue&type=script&lang=js\"\nexport * from \"./design_overlay.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"frame gl-absolute gl-left-0 gl-top-0\",style:(_vm.overlayStyle),attrs:{\"data-testid\":\"design-overlay\"},on:{\"mousemove\":_vm.onOverlayMousemove,\"mouseleave\":_vm.onNoteMouseup}},[_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.disableCommenting),expression:\"!disableCommenting\"}],staticClass:\"gl-absolute gl-left-0 gl-top-0 gl-h-full gl-w-full gl-border-0 !gl-bg-transparent gl-p-0 gl-text-subtle !gl-shadow-none gl-outline-none hover:gl-cursor-crosshair\",attrs:{\"type\":\"button\",\"role\":\"button\",\"aria-label\":_vm.$options.i18n.newCommentButtonLabel,\"data-testid\":\"design-image-button\"},on:{\"mouseup\":_vm.onAddCommentMouseup}}),_vm._v(\" \"),(!_vm.disableNotes)?[_vm._l((_vm.visibleNotes),function(note){return _c('design-note-pin',{key:note.id,attrs:{\"label\":note.index,\"position\":_vm.isMovingNote(note.id) && _vm.movingNoteNewPosition\n ? _vm.getNotePositionStyle(_vm.movingNoteNewPosition)\n : _vm.getNotePositionStyle(note.position),\"is-inactive\":_vm.isNoteInactive(note),\"is-resolved\":note.resolved,\"is-on-image\":\"\",\"data-testid\":\"note-pin\"},on:{\"mousedown\":function($event){$event.stopPropagation();return _vm.onNoteMousedown($event, note)},\"mouseup\":function($event){$event.stopPropagation();return _vm.onNoteMouseup(note)}}})}),_vm._v(\" \"),(_vm.currentCommentForm)?_c('design-note-pin',{attrs:{\"position\":_vm.currentCommentPositionStyle,\"data-testid\":\"comment-badge\"},on:{\"mousedown\":function($event){$event.stopPropagation();return _vm.onNoteMousedown.apply(null, arguments)},\"mouseup\":function($event){$event.stopPropagation();return _vm.onNoteMouseup.apply(null, arguments)}}}):_vm._e()]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlLoadingIcon } from '@gitlab/ui';\nimport { throttle } from 'lodash';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport DesignImage from './image.vue';\nimport DesignOverlay from './design_overlay.vue';\n\nconst CLICK_DRAG_BUFFER_PX = 2;\n\nexport default {\n components: {\n DesignImage,\n DesignOverlay,\n GlLoadingIcon,\n },\n props: {\n image: {\n type: String,\n required: false,\n default: '',\n },\n imageName: {\n type: String,\n required: false,\n default: '',\n },\n discussions: {\n type: Array,\n required: true,\n },\n isAnnotating: {\n type: Boolean,\n required: false,\n default: false,\n },\n scale: {\n type: Number,\n required: false,\n default: 1,\n },\n resolvedDiscussionsExpanded: {\n type: Boolean,\n required: true,\n },\n isLoading: {\n type: Boolean,\n required: true,\n },\n disableCommenting: {\n type: Boolean,\n required: true,\n },\n isSidebarOpen: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n data() {\n return {\n overlayDimensions: null,\n overlayPosition: null,\n currentAnnotationPosition: null,\n zoomFocalPoint: {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n },\n initialLoad: true,\n lastDragPosition: null,\n isDraggingDesign: false,\n isLoggedIn: isLoggedIn(),\n };\n },\n computed: {\n discussionStartingNotes() {\n return this.discussions.map((discussion) => ({\n ...discussion.notes[0],\n index: discussion.index,\n }));\n },\n currentCommentForm() {\n return (this.isAnnotating && this.currentAnnotationPosition) || null;\n },\n presentationStyle() {\n return {\n cursor: this.isDraggingDesign ? 'grabbing' : undefined,\n };\n },\n },\n beforeDestroy() {\n const { presentationViewport } = this.$refs;\n if (!presentationViewport) return;\n\n presentationViewport.removeEventListener('scroll', this.scrollThrottled, false);\n },\n mounted() {\n const { presentationViewport } = this.$refs;\n if (!presentationViewport) return;\n\n this.scrollThrottled = throttle(() => {\n this.shiftZoomFocalPoint();\n }, 400);\n\n presentationViewport.addEventListener('scroll', this.scrollThrottled, false);\n },\n methods: {\n syncCurrentAnnotationPosition() {\n if (!this.currentAnnotationPosition) return;\n\n const widthRatio = this.overlayDimensions.width / this.currentAnnotationPosition.width;\n const heightRatio = this.overlayDimensions.height / this.currentAnnotationPosition.height;\n const x = this.currentAnnotationPosition.x * widthRatio;\n const y = this.currentAnnotationPosition.y * heightRatio;\n\n this.currentAnnotationPosition = this.getAnnotationPosition({ x, y });\n },\n setOverlayDimensions(overlayDimensions) {\n this.overlayDimensions = overlayDimensions;\n\n // every time we set overlay dimensions, we need to\n // update the current annotation as well\n this.syncCurrentAnnotationPosition();\n },\n setOverlayPosition() {\n if (!this.overlayDimensions) {\n this.overlayPosition = {};\n }\n\n const { presentationViewport } = this.$refs;\n if (!presentationViewport) return;\n\n // default to center\n this.overlayPosition = {\n left: `calc(50% - ${this.overlayDimensions.width / 2}px)`,\n top: `calc(50% - ${this.overlayDimensions.height / 2}px)`,\n };\n\n // if the overlay overflows, then don't center\n if (this.overlayDimensions.width > presentationViewport.offsetWidth) {\n this.overlayPosition.left = '0';\n }\n if (this.overlayDimensions.height > presentationViewport.offsetHeight) {\n this.overlayPosition.top = '0';\n }\n },\n /**\n * Return a point that represents the center of an\n * overflowing child element w.r.t it's parent\n */\n getViewportCenter() {\n const { presentationViewport } = this.$refs;\n if (!presentationViewport) return {};\n\n // get height of scroll bars (i.e. the max values for scrollTop, scrollLeft)\n const scrollBarWidth = presentationViewport.scrollWidth - presentationViewport.offsetWidth;\n const scrollBarHeight = presentationViewport.scrollHeight - presentationViewport.offsetHeight;\n\n // determine how many child pixels have been scrolled\n const xScrollRatio =\n presentationViewport.scrollLeft > 0 ? presentationViewport.scrollLeft / scrollBarWidth : 0;\n const yScrollRatio =\n presentationViewport.scrollTop > 0 ? presentationViewport.scrollTop / scrollBarHeight : 0;\n const xScrollOffset =\n // eslint-disable-next-line no-implicit-coercion\n (presentationViewport.scrollWidth - presentationViewport.offsetWidth - 0) * xScrollRatio;\n const yScrollOffset =\n // eslint-disable-next-line no-implicit-coercion\n (presentationViewport.scrollHeight - presentationViewport.offsetHeight - 0) * yScrollRatio;\n\n const viewportCenterX = presentationViewport.offsetWidth / 2;\n const viewportCenterY = presentationViewport.offsetHeight / 2;\n const focalPointX = viewportCenterX + xScrollOffset;\n const focalPointY = viewportCenterY + yScrollOffset;\n\n return {\n x: focalPointX,\n y: focalPointY,\n };\n },\n /**\n * Scroll the viewport such that the focal point is positioned centrally\n */\n scrollToFocalPoint() {\n const { presentationViewport } = this.$refs;\n if (!presentationViewport) return;\n\n const scrollX = this.zoomFocalPoint.x - presentationViewport.offsetWidth / 2;\n const scrollY = this.zoomFocalPoint.y - presentationViewport.offsetHeight / 2;\n\n presentationViewport.scrollTo(scrollX, scrollY);\n },\n scaleZoomFocalPoint() {\n const { x, y, width, height } = this.zoomFocalPoint;\n const widthRatio = this.overlayDimensions.width / width;\n const heightRatio = this.overlayDimensions.height / height;\n\n this.zoomFocalPoint = {\n x: Math.round(x * widthRatio * 100) / 100,\n y: Math.round(y * heightRatio * 100) / 100,\n ...this.overlayDimensions,\n };\n },\n shiftZoomFocalPoint() {\n this.zoomFocalPoint = {\n ...this.getViewportCenter(),\n ...this.overlayDimensions,\n };\n },\n onImageResize(imageDimensions) {\n this.setOverlayDimensions(imageDimensions);\n this.setOverlayPosition();\n\n this.$nextTick(() => {\n if (this.initialLoad) {\n // set focal point on initial load\n this.shiftZoomFocalPoint();\n this.initialLoad = false;\n } else {\n this.scaleZoomFocalPoint();\n this.scrollToFocalPoint();\n }\n });\n },\n getAnnotationPosition(coordinates) {\n const { x, y } = coordinates;\n const { width, height } = this.overlayDimensions;\n return {\n x: Math.round(x),\n y: Math.round(y),\n width: Math.round(width),\n height: Math.round(height),\n };\n },\n openCommentForm(coordinates) {\n this.currentAnnotationPosition = this.getAnnotationPosition(coordinates);\n this.$emit('openCommentForm', this.currentAnnotationPosition);\n },\n closeCommentForm() {\n this.currentAnnotationPosition = null;\n this.$emit('closeCommentForm');\n },\n moveNote({ noteId, discussionId, coordinates }) {\n const position = this.getAnnotationPosition(coordinates);\n this.$emit('moveNote', { noteId, discussionId, position });\n },\n onPresentationMousedown({ clientX, clientY }) {\n if (!this.isDesignOverflowing()) return;\n\n this.lastDragPosition = {\n x: clientX,\n y: clientY,\n };\n },\n getDragDelta(clientX, clientY) {\n return {\n deltaX: this.lastDragPosition.x - clientX,\n deltaY: this.lastDragPosition.y - clientY,\n };\n },\n exceedsDragThreshold(clientX, clientY) {\n const { deltaX, deltaY } = this.getDragDelta(clientX, clientY);\n\n return Math.abs(deltaX) > CLICK_DRAG_BUFFER_PX || Math.abs(deltaY) > CLICK_DRAG_BUFFER_PX;\n },\n shouldDragDesign(clientX, clientY) {\n return (\n this.lastDragPosition &&\n (this.isDraggingDesign || this.exceedsDragThreshold(clientX, clientY))\n );\n },\n onPresentationMousemove({ clientX, clientY }) {\n const { presentationViewport } = this.$refs;\n if (!presentationViewport || !this.shouldDragDesign(clientX, clientY)) return;\n\n this.isDraggingDesign = true;\n\n const { scrollLeft, scrollTop } = presentationViewport;\n const { deltaX, deltaY } = this.getDragDelta(clientX, clientY);\n presentationViewport.scrollTo(scrollLeft + deltaX, scrollTop + deltaY);\n\n this.lastDragPosition = {\n x: clientX,\n y: clientY,\n };\n },\n onPresentationMouseup() {\n this.lastDragPosition = null;\n this.isDraggingDesign = false;\n },\n isDesignOverflowing() {\n const { presentationViewport } = this.$refs;\n if (!presentationViewport) return false;\n\n return (\n presentationViewport.scrollWidth > presentationViewport.offsetWidth ||\n presentationViewport.scrollHeight > presentationViewport.offsetHeight\n );\n },\n },\n};\n</script>\n\n<template>\n <div\n ref=\"presentationViewport\"\n data-testid=\"presentation-viewport\"\n class=\"overflow-auto gl-relative gl-h-full gl-w-full gl-p-5\"\n :style=\"presentationStyle\"\n @mousedown=\"onPresentationMousedown\"\n @mousemove=\"onPresentationMousemove\"\n @mouseup=\"onPresentationMouseup\"\n @mouseleave=\"onPresentationMouseup\"\n @touchstart=\"onPresentationMousedown\"\n @touchmove=\"onPresentationMousemove\"\n @touchend=\"onPresentationMouseup\"\n @touchcancel=\"onPresentationMouseup\"\n >\n <gl-loading-icon v-if=\"isLoading\" size=\"xl\" class=\"gl-flex gl-h-full gl-items-center\" />\n <div v-else class=\"gl-relative gl-flex gl-h-full gl-w-full gl-items-center\">\n <design-image\n v-if=\"image\"\n :image=\"image\"\n :name=\"imageName\"\n :scale=\"scale\"\n @resize=\"onImageResize\"\n />\n <design-overlay\n v-if=\"overlayDimensions && overlayPosition\"\n :dimensions=\"overlayDimensions\"\n :position=\"overlayPosition\"\n :notes=\"discussionStartingNotes\"\n :current-comment-form=\"currentCommentForm\"\n :disable-commenting=\"!isLoggedIn || isDraggingDesign || disableCommenting\"\n :disable-notes=\"!isSidebarOpen\"\n :resolved-discussions-expanded=\"resolvedDiscussionsExpanded\"\n @openCommentForm=\"openCommentForm\"\n @closeCommentForm=\"closeCommentForm\"\n @moveNote=\"moveNote\"\n />\n </div>\n </div>\n</template>\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_presentation.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_presentation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./design_presentation.vue?vue&type=template&id=0b1fc5c5\"\nimport script from \"./design_presentation.vue?vue&type=script&lang=js\"\nexport * from \"./design_presentation.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"presentationViewport\",staticClass:\"overflow-auto gl-relative gl-h-full gl-w-full gl-p-5\",style:(_vm.presentationStyle),attrs:{\"data-testid\":\"presentation-viewport\"},on:{\"mousedown\":_vm.onPresentationMousedown,\"mousemove\":_vm.onPresentationMousemove,\"mouseup\":_vm.onPresentationMouseup,\"mouseleave\":_vm.onPresentationMouseup,\"touchstart\":_vm.onPresentationMousedown,\"touchmove\":_vm.onPresentationMousemove,\"touchend\":_vm.onPresentationMouseup,\"touchcancel\":_vm.onPresentationMouseup}},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"gl-flex gl-h-full gl-items-center\",attrs:{\"size\":\"xl\"}}):_c('div',{staticClass:\"gl-relative gl-flex gl-h-full gl-w-full gl-items-center\"},[(_vm.image)?_c('design-image',{attrs:{\"image\":_vm.image,\"name\":_vm.imageName,\"scale\":_vm.scale},on:{\"resize\":_vm.onImageResize}}):_vm._e(),_vm._v(\" \"),(_vm.overlayDimensions && _vm.overlayPosition)?_c('design-overlay',{attrs:{\"dimensions\":_vm.overlayDimensions,\"position\":_vm.overlayPosition,\"notes\":_vm.discussionStartingNotes,\"current-comment-form\":_vm.currentCommentForm,\"disable-commenting\":!_vm.isLoggedIn || _vm.isDraggingDesign || _vm.disableCommenting,\"disable-notes\":!_vm.isSidebarOpen,\"resolved-discussions-expanded\":_vm.resolvedDiscussionsExpanded},on:{\"openCommentForm\":_vm.openCommentForm,\"closeCommentForm\":_vm.closeCommentForm,\"moveNote\":_vm.moveNote}}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close_button.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\nimport { ROUTES } from '../../../constants';\n\nexport default {\n components: {\n GlIcon,\n },\n ROUTES,\n};\n</script>\n\n<template>\n <div class=\"gl-border-l\">\n <router-link\n :to=\"{\n name: $options.ROUTES.workItem,\n query: $route.query,\n }\"\n :aria-label=\"s__('DesignManagement|Go back to designs')\"\n class=\"btn btn-icon gl-mx-3 gl-border-0 gl-px-3\"\n >\n <gl-icon name=\"close\" />\n </router-link>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./close_button.vue?vue&type=template&id=280721f8\"\nimport script from \"./close_button.vue?vue&type=script&lang=js\"\nexport * from \"./close_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-border-l\"},[_c('router-link',{staticClass:\"btn btn-icon gl-mx-3 gl-border-0 gl-px-3\",attrs:{\"to\":{\n name: _vm.$options.ROUTES.workItem,\n query: _vm.$route.query,\n },\"aria-label\":_vm.s__('DesignManagement|Go back to designs')}},[_c('gl-icon',{attrs:{\"name\":\"close\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_navigation.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_navigation.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlButtonGroup, GlTooltipDirective } from '@gitlab/ui';\nimport {\n keysFor,\n ISSUE_PREVIOUS_DESIGN,\n ISSUE_NEXT_DESIGN,\n} from '~/behaviors/shortcuts/keybindings';\nimport { Mousetrap } from '~/lib/mousetrap';\nimport { s__, sprintf } from '~/locale';\nimport { ROUTES } from '../../../constants';\n\nexport default {\n i18n: {\n nextButton: s__('DesignManagement|Go to next design'),\n previousButton: s__('DesignManagement|Go to previous design'),\n },\n components: {\n GlButton,\n GlButtonGroup,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n filename: {\n type: String,\n required: true,\n },\n allDesigns: {\n type: Array,\n required: false,\n default: () => [],\n },\n },\n computed: {\n designsCount() {\n return this.allDesigns.length;\n },\n currentIndex() {\n return this.allDesigns.findIndex((design) => design.filename === this.filename);\n },\n paginationText() {\n return sprintf(s__('DesignManagement|of %{designs_count}'), {\n designs_count: this.designsCount,\n });\n },\n previousDesign() {\n if (this.currentIndex === 0) return null;\n\n return this.allDesigns[this.currentIndex - 1];\n },\n nextDesign() {\n if (this.currentIndex + 1 === this.designsCount) return null;\n\n return this.allDesigns[this.currentIndex + 1];\n },\n },\n mounted() {\n Mousetrap.bind(keysFor(ISSUE_PREVIOUS_DESIGN), () =>\n this.navigateToDesign(this.previousDesign),\n );\n Mousetrap.bind(keysFor(ISSUE_NEXT_DESIGN), () => this.navigateToDesign(this.nextDesign));\n },\n beforeDestroy() {\n Mousetrap.unbind(keysFor(ISSUE_PREVIOUS_DESIGN));\n Mousetrap.unbind(keysFor(ISSUE_NEXT_DESIGN));\n },\n methods: {\n navigateToDesign(design) {\n if (design) {\n this.$router.push({\n name: ROUTES.design,\n params: { id: design.filename },\n query: this.$route.query,\n });\n }\n },\n },\n};\n</script>\n\n<template>\n <div v-if=\"designsCount\" class=\"gl-flex gl-shrink-0 gl-items-center\">\n <div class=\"gl-mr-2 gl-w-5 gl-text-right\">{{ currentIndex + 1 }}</div>\n <div>{{ paginationText }}</div>\n <gl-button-group class=\"gl-ml-3\">\n <gl-button\n v-gl-tooltip.bottom\n :disabled=\"!previousDesign\"\n :title=\"$options.i18n.previousButton\"\n :aria-label=\"$options.i18n.previousButton\"\n icon=\"chevron-lg-left\"\n class=\"js-previous-design\"\n @click=\"navigateToDesign(previousDesign)\"\n />\n <gl-button\n v-gl-tooltip.bottom\n :disabled=\"!nextDesign\"\n :title=\"$options.i18n.nextButton\"\n :aria-label=\"$options.i18n.nextButton\"\n icon=\"chevron-lg-right\"\n class=\"js-next-design\"\n @click=\"navigateToDesign(nextDesign)\"\n />\n </gl-button-group>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./design_navigation.vue?vue&type=template&id=30e86152\"\nimport script from \"./design_navigation.vue?vue&type=script&lang=js\"\nexport * from \"./design_navigation.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.designsCount)?_c('div',{staticClass:\"gl-flex gl-shrink-0 gl-items-center\"},[_c('div',{staticClass:\"gl-mr-2 gl-w-5 gl-text-right\"},[_vm._v(_vm._s(_vm.currentIndex + 1))]),_vm._v(\" \"),_c('div',[_vm._v(_vm._s(_vm.paginationText))]),_vm._v(\" \"),_c('gl-button-group',{staticClass:\"gl-ml-3\"},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom\",modifiers:{\"bottom\":true}}],staticClass:\"js-previous-design\",attrs:{\"disabled\":!_vm.previousDesign,\"title\":_vm.$options.i18n.previousButton,\"aria-label\":_vm.$options.i18n.previousButton,\"icon\":\"chevron-lg-left\"},on:{\"click\":function($event){return _vm.navigateToDesign(_vm.previousDesign)}}}),_vm._v(\" \"),_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom\",modifiers:{\"bottom\":true}}],staticClass:\"js-next-design\",attrs:{\"disabled\":!_vm.nextDesign,\"title\":_vm.$options.i18n.nextButton,\"aria-label\":_vm.$options.i18n.nextButton,\"icon\":\"chevron-lg-right\"},on:{\"click\":function($event){return _vm.navigateToDesign(_vm.nextDesign)}}})],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_toolbar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_toolbar.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlIcon, GlSkeletonLoader, GlTooltipDirective } from '@gitlab/ui';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport { TYPE_DESIGN } from '~/import/constants';\nimport { s__ } from '~/locale';\nimport ImportedBadge from '~/vue_shared/components/imported_badge.vue';\nimport TodosToggle from '../../shared/todos_toggle.vue';\nimport ArchiveDesignButton from '../archive_design_button.vue';\nimport CloseButton from './close_button.vue';\nimport DesignNavigation from './design_navigation.vue';\n\nexport default {\n i18n: {\n downloadButtonLabel: s__('DesignManagement|Download design'),\n hideCommentsButtonLabel: s__('DesignManagement|Hide comments'),\n showCommentsButtonLabel: s__('DesignManagement|Show comments'),\n archiveButtonLabel: s__('DesignManagement|Archive design'),\n },\n isLoggedIn: isLoggedIn(),\n components: {\n GlButton,\n GlIcon,\n GlSkeletonLoader,\n ImportedBadge,\n CloseButton,\n DesignNavigation,\n TodosToggle,\n ArchiveDesignButton,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n workItemTitle: {\n type: String,\n required: true,\n },\n design: {\n type: Object,\n required: true,\n },\n designFilename: {\n type: String,\n required: true,\n },\n isLoading: {\n type: Boolean,\n required: true,\n },\n isLatestVersion: {\n type: Boolean,\n required: true,\n },\n isSidebarOpen: {\n type: Boolean,\n required: true,\n },\n allDesigns: {\n type: Array,\n required: false,\n default: () => [],\n },\n currentUserDesignTodos: {\n type: Array,\n required: false,\n default: () => [],\n },\n },\n computed: {\n toggleCommentsButtonLabel() {\n return this.isSidebarOpen\n ? this.$options.i18n.hideCommentsButtonLabel\n : this.$options.i18n.showCommentsButtonLabel;\n },\n },\n TYPE_DESIGN,\n};\n</script>\n\n<template>\n <header\n class=\"js-design-header gl-border-b gl-flex gl-max-w-full gl-flex-col gl-justify-between gl-bg-white gl-py-4 gl-pl-5 md:gl-flex-row md:gl-items-center\"\n >\n <div class=\"gl-mb-3 gl-flex gl-flex-row gl-items-center gl-overflow-hidden md:gl-mb-0\">\n <div class=\"gl-mr-3 gl-flex gl-overflow-hidden\">\n <gl-skeleton-loader v-if=\"isLoading\" :lines=\"1\" />\n <h2 v-else class=\"gl-m-0 gl-flex gl-items-center gl-overflow-hidden gl-text-base\">\n <span class=\"gl-truncate gl-text-heading gl-no-underline\">\n {{ workItemTitle }}\n </span>\n <gl-icon name=\"chevron-right\" class=\"gl-shrink-0\" variant=\"disabled\" />\n <span class=\"gl-truncate gl-font-normal\">{{ design.filename }}</span>\n <imported-badge\n v-if=\"design.imported\"\n :importable-type=\"$options.TYPE_DESIGN\"\n class=\"gl-ml-2\"\n />\n </h2>\n </div>\n <close-button class=\"gl-ml-auto md:gl-hidden\" />\n </div>\n <div\n v-if=\"!isLoading && design.id\"\n class=\"gl-mr-5 gl-flex gl-shrink-0 md:gl-ml-auto md:gl-flex-row\"\n >\n <todos-toggle\n v-if=\"$options.isLoggedIn\"\n :item-id=\"design.id\"\n :current-user-todos=\"currentUserDesignTodos\"\n todos-button-type=\"tertiary\"\n @todosUpdated=\"$emit('todosUpdated', $event)\"\n />\n <gl-button\n v-gl-tooltip.bottom\n category=\"tertiary\"\n class=\"gl-ml-2\"\n :href=\"design.image\"\n icon=\"download\"\n :title=\"$options.i18n.downloadButtonLabel\"\n :aria-label=\"$options.i18n.downloadButtonLabel\"\n />\n <archive-design-button\n v-if=\"isLatestVersion\"\n v-gl-tooltip.bottom\n button-size=\"medium\"\n :title=\"$options.i18n.archiveButtonLabel\"\n :aria-label=\"$options.i18n.archiveButtonLabel\"\n button-icon=\"archive\"\n class=\"gl-ml-2\"\n button-category=\"tertiary\"\n @archive-selected-designs=\"$emit('archive-design')\"\n />\n <gl-button\n v-gl-tooltip.bottom\n category=\"tertiary\"\n icon=\"comments\"\n :title=\"toggleCommentsButtonLabel\"\n :aria-label=\"toggleCommentsButtonLabel\"\n class=\"gl-ml-2 gl-mr-5\"\n data-testid=\"toggle-design-sidebar\"\n @click=\"$emit('toggle-sidebar')\"\n />\n <design-navigation :filename=\"designFilename\" :all-designs=\"allDesigns\" class=\"gl-ml-auto\" />\n </div>\n <close-button class=\"gl-hidden md:gl-flex\" />\n </header>\n</template>\n","import { render, staticRenderFns } from \"./design_toolbar.vue?vue&type=template&id=037d5f4c\"\nimport script from \"./design_toolbar.vue?vue&type=script&lang=js\"\nexport * from \"./design_toolbar.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('header',{staticClass:\"js-design-header gl-border-b gl-flex gl-max-w-full gl-flex-col gl-justify-between gl-bg-white gl-py-4 gl-pl-5 md:gl-flex-row md:gl-items-center\"},[_c('div',{staticClass:\"gl-mb-3 gl-flex gl-flex-row gl-items-center gl-overflow-hidden md:gl-mb-0\"},[_c('div',{staticClass:\"gl-mr-3 gl-flex gl-overflow-hidden\"},[(_vm.isLoading)?_c('gl-skeleton-loader',{attrs:{\"lines\":1}}):_c('h2',{staticClass:\"gl-m-0 gl-flex gl-items-center gl-overflow-hidden gl-text-base\"},[_c('span',{staticClass:\"gl-truncate gl-text-heading gl-no-underline\"},[_vm._v(\"\\n \"+_vm._s(_vm.workItemTitle)+\"\\n \")]),_vm._v(\" \"),_c('gl-icon',{staticClass:\"gl-shrink-0\",attrs:{\"name\":\"chevron-right\",\"variant\":\"disabled\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-truncate gl-font-normal\"},[_vm._v(_vm._s(_vm.design.filename))]),_vm._v(\" \"),(_vm.design.imported)?_c('imported-badge',{staticClass:\"gl-ml-2\",attrs:{\"importable-type\":_vm.$options.TYPE_DESIGN}}):_vm._e()],1)],1),_vm._v(\" \"),_c('close-button',{staticClass:\"gl-ml-auto md:gl-hidden\"})],1),_vm._v(\" \"),(!_vm.isLoading && _vm.design.id)?_c('div',{staticClass:\"gl-mr-5 gl-flex gl-shrink-0 md:gl-ml-auto md:gl-flex-row\"},[(_vm.$options.isLoggedIn)?_c('todos-toggle',{attrs:{\"item-id\":_vm.design.id,\"current-user-todos\":_vm.currentUserDesignTodos,\"todos-button-type\":\"tertiary\"},on:{\"todosUpdated\":function($event){return _vm.$emit('todosUpdated', $event)}}}):_vm._e(),_vm._v(\" \"),_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom\",modifiers:{\"bottom\":true}}],staticClass:\"gl-ml-2\",attrs:{\"category\":\"tertiary\",\"href\":_vm.design.image,\"icon\":\"download\",\"title\":_vm.$options.i18n.downloadButtonLabel,\"aria-label\":_vm.$options.i18n.downloadButtonLabel}}),_vm._v(\" \"),(_vm.isLatestVersion)?_c('archive-design-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom\",modifiers:{\"bottom\":true}}],staticClass:\"gl-ml-2\",attrs:{\"button-size\":\"medium\",\"title\":_vm.$options.i18n.archiveButtonLabel,\"aria-label\":_vm.$options.i18n.archiveButtonLabel,\"button-icon\":\"archive\",\"button-category\":\"tertiary\"},on:{\"archive-selected-designs\":function($event){return _vm.$emit('archive-design')}}}):_vm._e(),_vm._v(\" \"),_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom\",modifiers:{\"bottom\":true}}],staticClass:\"gl-ml-2 gl-mr-5\",attrs:{\"category\":\"tertiary\",\"icon\":\"comments\",\"title\":_vm.toggleCommentsButtonLabel,\"aria-label\":_vm.toggleCommentsButtonLabel,\"data-testid\":\"toggle-design-sidebar\"},on:{\"click\":function($event){return _vm.$emit('toggle-sidebar')}}}),_vm._v(\" \"),_c('design-navigation',{staticClass:\"gl-ml-auto\",attrs:{\"filename\":_vm.designFilename,\"all-designs\":_vm.allDesigns}})],1):_vm._e(),_vm._v(\" \"),_c('close-button',{staticClass:\"gl-hidden md:gl-flex\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_note_signed_out.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_note_signed_out.vue?vue&type=script&lang=js\"","<script>\nimport { GlSprintf, GlLink } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n components: {\n GlSprintf,\n GlLink,\n },\n props: {\n registerPath: {\n type: String,\n required: true,\n },\n signInPath: {\n type: String,\n required: true,\n },\n isAddDiscussion: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n signedOutText() {\n return this.isAddDiscussion\n ? __(\n 'Please %{registerLinkStart}register%{registerLinkEnd} or %{signInLinkStart}sign in%{signInLinkEnd} to start a new discussion.',\n )\n : __(\n 'Please %{registerLinkStart}register%{registerLinkEnd} or %{signInLinkStart}sign in%{signInLinkEnd} to reply.',\n );\n },\n },\n};\n</script>\n\n<template>\n <div class=\"disabled-comment !gl-border-none gl-text-center gl-text-subtle\">\n <gl-sprintf :message=\"signedOutText\">\n <template #registerLink=\"{ content }\">\n <gl-link :href=\"registerPath\">{{ content }}</gl-link>\n </template>\n <template #signInLink=\"{ content }\">\n <gl-link :href=\"signInPath\">{{ content }}</gl-link>\n </template>\n </gl-sprintf>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./design_note_signed_out.vue?vue&type=template&id=2d562d2f\"\nimport script from \"./design_note_signed_out.vue?vue&type=script&lang=js\"\nexport * from \"./design_note_signed_out.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"disabled-comment !gl-border-none gl-text-center gl-text-subtle\"},[_c('gl-sprintf',{attrs:{\"message\":_vm.signedOutText},scopedSlots:_vm._u([{key:\"registerLink\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.registerPath}},[_vm._v(_vm._s(content))])]}},{key:\"signInLink\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.signInPath}},[_vm._v(_vm._s(content))])]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_reply_placeholder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_reply_placeholder.vue?vue&type=script&lang=js\"","<script>\nimport { GlFormInput } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n name: 'ReplyPlaceholder',\n components: {\n GlFormInput,\n },\n props: {\n placeholderText: {\n type: String,\n required: false,\n default: __('Reply…'),\n },\n labelText: {\n type: String,\n required: false,\n default: __('Reply to comment'),\n },\n },\n};\n</script>\n\n<template>\n <gl-form-input\n class=\"reply-placeholder-input-field js-discussion-reply-field-placeholder\"\n data-testid=\"discussion-reply-tab\"\n :placeholder=\"placeholderText\"\n :aria-label=\"labelText\"\n @focus=\"$emit('focus')\"\n />\n</template>\n","import { render, staticRenderFns } from \"./discussion_reply_placeholder.vue?vue&type=template&id=a8cdae4e\"\nimport script from \"./discussion_reply_placeholder.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_reply_placeholder.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-form-input',{staticClass:\"reply-placeholder-input-field js-discussion-reply-field-placeholder\",attrs:{\"data-testid\":\"discussion-reply-tab\",\"placeholder\":_vm.placeholderText,\"aria-label\":_vm.labelText},on:{\"focus\":function($event){return _vm.$emit('focus')}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_note.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_note.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlAvatar,\n GlAvatarLink,\n GlLink,\n GlTooltipDirective,\n GlButton,\n GlDisclosureDropdown,\n} from '@gitlab/ui';\nimport { isEmpty } from 'lodash';\nimport { produce } from 'immer';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { getIdFromGraphQLId, convertToGraphQLId } from '~/graphql_shared/utils';\nimport AwardsList from '~/vue_shared/components/awards_list.vue';\nimport { __ } from '~/locale';\nimport { setUrlFragment } from '~/lib/utils/url_utility';\nimport ImportedBadge from '~/vue_shared/components/imported_badge.vue';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport EmojiPicker from '~/emoji/components/picker.vue';\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\nimport TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';\nimport { TYPE_COMMENT } from '~/import/constants';\nimport { TYPENAME_USER } from '~/graphql_shared/constants';\nimport updateNoteMutation from '../graphql/update_note.mutation.graphql';\nimport designNoteAwardEmojiToggleMutation from '../graphql/design_note_award_emoji_toggle.mutation.graphql';\nimport getDesignQuery from '../graphql/design_details.query.graphql';\nimport { findNoteId } from '../utils';\nimport { hasErrors } from '../cache_updates';\nimport { AWARD_EMOJI_TO_NOTE_ERROR } from '../constants';\nimport DesignReplyForm from './design_reply_form.vue';\n\nexport default {\n i18n: {\n editCommentLabel: __('Edit comment'),\n moreActionsLabel: __('More actions'),\n deleteCommentText: __('Delete comment'),\n copyCommentLink: __('Copy link'),\n },\n components: {\n AwardsList,\n GlAvatar,\n GlButton,\n GlAvatarLink,\n GlLink,\n GlDisclosureDropdown,\n ImportedBadge,\n TimeAgoTooltip,\n TimelineEntryItem,\n DesignReplyForm,\n EmojiPicker,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n SafeHtml,\n },\n props: {\n note: {\n type: Object,\n required: true,\n },\n noteableId: {\n type: String,\n required: true,\n },\n designVariables: {\n type: Object,\n required: true,\n },\n isDiscussion: {\n type: Boolean,\n required: false,\n default: false,\n },\n markdownPreviewPath: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n isEditing: false,\n };\n },\n computed: {\n mutationVariables() {\n return {\n id: this.note.id,\n };\n },\n author() {\n return this.note.author || {};\n },\n hasAuthor() {\n return !isEmpty(this.author);\n },\n authorId() {\n return getIdFromGraphQLId(this.author.id);\n },\n noteAnchorId() {\n return findNoteId(this.note.id);\n },\n isImported() {\n return this.note.imported;\n },\n currentUserId() {\n return window.gon?.current_user_id;\n },\n currentUserFullName() {\n return window.gon?.current_user_fullname;\n },\n canAwardEmoji() {\n return this.note.userPermissions.awardEmoji;\n },\n adminPermissions() {\n return this.note.userPermissions.adminNote;\n },\n hasPermissions() {\n return this.adminPermissions;\n },\n awards() {\n return this.note.awardEmoji.nodes.map((award) => {\n return {\n ...award,\n user: {\n ...award.user,\n id: getIdFromGraphQLId(award.user.id),\n },\n };\n });\n },\n dropdownItems() {\n return [\n {\n text: this.$options.i18n.editCommentLabel,\n action: () => {\n this.isEditing = true;\n },\n extraAttrs: {\n class: 'sm:!gl-hidden',\n },\n },\n {\n text: this.$options.i18n.copyCommentLink,\n action: () => {\n this.$toast.show(__('Link copied to clipboard.'));\n },\n extraAttrs: {\n 'data-clipboard-text': setUrlFragment(\n window.location.href,\n `note_${this.noteAnchorId}`,\n ),\n },\n },\n {\n text: this.$options.i18n.deleteCommentText,\n action: () => {\n this.$emit('delete-note', this.note);\n },\n extraAttrs: {\n class: ['!gl-text-red-500', { '!gl-hidden': !this.hasPermissions }],\n },\n },\n ];\n },\n },\n methods: {\n hideForm() {\n this.isEditing = false;\n },\n onDone({ data }) {\n this.hideForm();\n if (hasErrors(data.updateNote)) {\n this.$emit('error', data.errors[0]);\n }\n },\n isEmojiPresentForCurrentUser(name) {\n return (\n this.awards.findIndex(\n (emoji) => emoji.name === name && emoji.user.id === this.currentUserId,\n ) > -1\n );\n },\n /**\n * Prepare emoji reaction nodes based on emoji name\n * and whether the user has toggled the emoji off or on\n */\n getAwardEmojiNodes(name, toggledOn) {\n // If the emoji toggled on, add the emoji\n if (toggledOn) {\n // If emoji is already present in award list, no action is needed\n if (this.isEmojiPresentForCurrentUser(name)) {\n return this.note.awardEmoji.nodes;\n }\n\n // else return the list with new emoji added\n const newEmoji = {\n name,\n __typename: 'AwardEmoji',\n user: {\n id: convertToGraphQLId(TYPENAME_USER, this.currentUserId),\n name: this.currentUserFullName,\n __typename: 'UserCore',\n },\n };\n\n return [...this.note.awardEmoji.nodes, newEmoji];\n }\n\n // else just filter the emoji\n return this.note.awardEmoji.nodes.filter(\n (emoji) =>\n !(emoji.name === name && getIdFromGraphQLId(emoji.user.id) === this.currentUserId),\n );\n },\n async handleAwardEmoji(name) {\n try {\n await this.$apollo.mutate({\n mutation: designNoteAwardEmojiToggleMutation,\n variables: {\n name,\n awardableId: this.note.id,\n },\n optimisticResponse: {\n awardEmojiToggle: {\n errors: [],\n toggledOn: !this.isEmojiPresentForCurrentUser(name),\n },\n },\n update: (\n cache,\n {\n data: {\n awardEmojiToggle: { toggledOn },\n },\n },\n ) => {\n const query = {\n query: getDesignQuery,\n variables: this.designVariables,\n };\n const sourceData = cache.readQuery(query);\n\n const newData = produce(sourceData, (draftState) => {\n const { awardEmoji } =\n draftState.designManagement.designAtVersion.design.discussions.nodes\n .find((d) => d.id === this.note.discussion.id)\n .notes.nodes.find((n) => n.id === this.note.id);\n\n awardEmoji.nodes = this.getAwardEmojiNodes(name, toggledOn);\n });\n\n cache.writeQuery({ ...query, data: newData });\n },\n });\n } catch (error) {\n Sentry.captureException(error);\n this.$emit('error', AWARD_EMOJI_TO_NOTE_ERROR);\n }\n },\n },\n updateNoteMutation,\n TYPE_COMMENT,\n};\n</script>\n\n<template>\n <timeline-entry-item :id=\"`note_${noteAnchorId}`\" class=\"design-note note-form\">\n <gl-avatar-link\n :href=\"author.webUrl\"\n :data-user-id=\"authorId\"\n :data-username=\"author.username\"\n class=\"link-inherit-color js-user-link gl-float-left gl-mr-3\"\n >\n <gl-avatar\n :size=\"32\"\n :src=\"author.avatarUrl\"\n :entity-name=\"author.username\"\n :alt=\"author.username\"\n />\n </gl-avatar-link>\n\n <div class=\"gl-flex gl-justify-between\">\n <div class=\"gl-my-[6px]\">\n <gl-link\n v-if=\"hasAuthor\"\n v-once\n :href=\"author.webUrl\"\n class=\"js-user-link link-inherit-color\"\n data-testid=\"user-link\"\n :data-user-id=\"authorId\"\n :data-username=\"author.username\"\n >\n <span class=\"note-header-author-name gl-font-bold\">{{ author.name }}</span>\n <span v-if=\"author.status_tooltip_html\" v-safe-html=\"author.status_tooltip_html\"></span>\n <span class=\"note-headline-light\">@{{ author.username }}</span>\n </gl-link>\n <span v-else>{{ __('A deleted user') }}</span>\n <span class=\"note-headline-light note-headline-meta\">\n <span class=\"system-note-message\"> <slot></slot> </span>\n <gl-link\n class=\"note-timestamp system-note-separator link-inherit-color gl-inline-block gl-text-sm\"\n :href=\"`#note_${noteAnchorId}`\"\n >\n <time-ago-tooltip :time=\"note.createdAt\" tooltip-placement=\"bottom\" />\n </gl-link>\n <imported-badge v-if=\"isImported\" :importable-type=\"$options.TYPE_COMMENT\" size=\"sm\" />\n </span>\n </div>\n <div class=\"gl-flex gl-items-start\">\n <slot name=\"resolve-discussion\"></slot>\n <emoji-picker\n v-if=\"canAwardEmoji\"\n toggle-class=\"add-reaction-button btn-default-tertiary\"\n :right=\"false\"\n data-testid=\"note-emoji-button\"\n @click=\"handleAwardEmoji\"\n />\n <gl-button\n v-if=\"!isEditing && hasPermissions\"\n v-gl-tooltip\n class=\"gl-hidden sm:!gl-flex\"\n :aria-label=\"$options.i18n.editCommentLabel\"\n :title=\"$options.i18n.editCommentLabel\"\n category=\"tertiary\"\n data-testid=\"note-edit\"\n icon=\"pencil\"\n @click=\"isEditing = true\"\n />\n <gl-disclosure-dropdown\n v-if=\"!isEditing\"\n v-gl-tooltip\n icon=\"ellipsis_v\"\n category=\"tertiary\"\n text-sr-only\n :title=\"$options.i18n.moreActionsLabel\"\n :aria-label=\"$options.i18n.moreActionsLabel\"\n no-caret\n left\n :items=\"dropdownItems\"\n data-testid=\"more-actions\"\n />\n </div>\n </div>\n <template v-if=\"!isEditing\">\n <div v-safe-html=\"note.bodyHtml\" class=\"note-text md\" data-testid=\"note-text\"></div>\n <slot name=\"resolved-status\"></slot>\n </template>\n <awards-list\n v-if=\"awards.length\"\n :awards=\"awards\"\n :can-award-emoji=\"note.userPermissions.awardEmoji\"\n :current-user-id=\"currentUserId\"\n class=\"gl-mt-5 gl-px-2\"\n @award=\"handleAwardEmoji\"\n />\n <design-reply-form\n v-if=\"isEditing\"\n :markdown-preview-path=\"markdownPreviewPath\"\n :design-note-mutation=\"$options.updateNoteMutation\"\n :mutation-variables=\"mutationVariables\"\n :value=\"note.body\"\n :is-new-comment=\"false\"\n :is-discussion=\"isDiscussion\"\n :noteable-id=\"noteableId\"\n class=\"gl-mt-5\"\n @note-submit-complete=\"onDone\"\n @cancel-form=\"hideForm\"\n />\n </timeline-entry-item>\n</template>\n","import { render, staticRenderFns } from \"./design_note.vue?vue&type=template&id=707af03b\"\nimport script from \"./design_note.vue?vue&type=script&lang=js\"\nexport * from \"./design_note.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('timeline-entry-item',{staticClass:\"design-note note-form\",attrs:{\"id\":`note_${_vm.noteAnchorId}`}},[_c('gl-avatar-link',{staticClass:\"link-inherit-color js-user-link gl-float-left gl-mr-3\",attrs:{\"href\":_vm.author.webUrl,\"data-user-id\":_vm.authorId,\"data-username\":_vm.author.username}},[_c('gl-avatar',{attrs:{\"size\":32,\"src\":_vm.author.avatarUrl,\"entity-name\":_vm.author.username,\"alt\":_vm.author.username}})],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-justify-between\"},[_c('div',{staticClass:\"gl-my-[6px]\"},[(_vm.hasAuthor)?_vm._m(0):_c('span',[_vm._v(_vm._s(_vm.__('A deleted user')))]),_vm._v(\" \"),_c('span',{staticClass:\"note-headline-light note-headline-meta\"},[_c('span',{staticClass:\"system-note-message\"},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('gl-link',{staticClass:\"note-timestamp system-note-separator link-inherit-color gl-inline-block gl-text-sm\",attrs:{\"href\":`#note_${_vm.noteAnchorId}`}},[_c('time-ago-tooltip',{attrs:{\"time\":_vm.note.createdAt,\"tooltip-placement\":\"bottom\"}})],1),_vm._v(\" \"),(_vm.isImported)?_c('imported-badge',{attrs:{\"importable-type\":_vm.$options.TYPE_COMMENT,\"size\":\"sm\"}}):_vm._e()],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-items-start\"},[_vm._t(\"resolve-discussion\"),_vm._v(\" \"),(_vm.canAwardEmoji)?_c('emoji-picker',{attrs:{\"toggle-class\":\"add-reaction-button btn-default-tertiary\",\"right\":false,\"data-testid\":\"note-emoji-button\"},on:{\"click\":_vm.handleAwardEmoji}}):_vm._e(),_vm._v(\" \"),(!_vm.isEditing && _vm.hasPermissions)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-hidden sm:!gl-flex\",attrs:{\"aria-label\":_vm.$options.i18n.editCommentLabel,\"title\":_vm.$options.i18n.editCommentLabel,\"category\":\"tertiary\",\"data-testid\":\"note-edit\",\"icon\":\"pencil\"},on:{\"click\":function($event){_vm.isEditing = true}}}):_vm._e(),_vm._v(\" \"),(!_vm.isEditing)?_c('gl-disclosure-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"icon\":\"ellipsis_v\",\"category\":\"tertiary\",\"text-sr-only\":\"\",\"title\":_vm.$options.i18n.moreActionsLabel,\"aria-label\":_vm.$options.i18n.moreActionsLabel,\"no-caret\":\"\",\"left\":\"\",\"items\":_vm.dropdownItems,\"data-testid\":\"more-actions\"}}):_vm._e()],2)]),_vm._v(\" \"),(!_vm.isEditing)?[_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.note.bodyHtml),expression:\"note.bodyHtml\"}],staticClass:\"note-text md\",attrs:{\"data-testid\":\"note-text\"}}),_vm._v(\" \"),_vm._t(\"resolved-status\")]:_vm._e(),_vm._v(\" \"),(_vm.awards.length)?_c('awards-list',{staticClass:\"gl-mt-5 gl-px-2\",attrs:{\"awards\":_vm.awards,\"can-award-emoji\":_vm.note.userPermissions.awardEmoji,\"current-user-id\":_vm.currentUserId},on:{\"award\":_vm.handleAwardEmoji}}):_vm._e(),_vm._v(\" \"),(_vm.isEditing)?_c('design-reply-form',{staticClass:\"gl-mt-5\",attrs:{\"markdown-preview-path\":_vm.markdownPreviewPath,\"design-note-mutation\":_vm.$options.updateNoteMutation,\"mutation-variables\":_vm.mutationVariables,\"value\":_vm.note.body,\"is-new-comment\":false,\"is-discussion\":_vm.isDiscussion,\"noteable-id\":_vm.noteableId},on:{\"note-submit-complete\":_vm.onDone,\"cancel-form\":_vm.hideForm}}):_vm._e()],2)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('gl-link',{staticClass:\"js-user-link link-inherit-color\",attrs:{\"href\":_vm.author.webUrl,\"data-testid\":\"user-link\",\"data-user-id\":_vm.authorId,\"data-username\":_vm.author.username}},[_c('span',{staticClass:\"note-header-author-name gl-font-bold\"},[_vm._v(_vm._s(_vm.author.name))]),_vm._v(\" \"),(_vm.author.status_tooltip_html)?_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.author.status_tooltip_html),expression:\"author.status_tooltip_html\"}]}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"note-headline-light\"},[_vm._v(\"@\"+_vm._s(_vm.author.username))])])\n}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./toggle_replies_widget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./toggle_replies_widget.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlAvatar, GlAvatarLink, GlAvatarsInline, GlTooltipDirective } from '@gitlab/ui';\nimport { __, n__ } from '~/locale';\n\nexport default {\n name: 'ToggleNotesWidget',\n components: {\n GlButton,\n GlAvatar,\n GlAvatarLink,\n GlAvatarsInline,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n collapsed: {\n type: Boolean,\n required: true,\n },\n replies: {\n type: Array,\n required: true,\n },\n },\n computed: {\n iconName() {\n return this.collapsed ? 'chevron-right' : 'chevron-down';\n },\n toggleText() {\n return this.collapsed\n ? n__('%d reply', '%d replies', this.replies.length)\n : __('Collapse replies');\n },\n toggleTextColor() {\n return this.collapsed ? 'gl-text-link' : 'gl-text-default';\n },\n authors() {\n return [...new Set(this.replies.map((item) => item.author))];\n },\n authorCollapsedTooltip() {\n if (this.authors.length > 2) {\n return n__('%d reply', '%d replies', this.authors.length);\n }\n return '';\n },\n ariaState() {\n return String(!this.collapsed);\n },\n },\n};\n</script>\n\n<template>\n <li\n class=\"toggle-comments gl-flex gl-min-h-8 gl-items-center gl-rounded-bl-base gl-rounded-br-base gl-bg-gray-10 gl-p-3\"\n :class=\"{ expanded: !collapsed }\"\n :aria-expanded=\"ariaState\"\n data-testid=\"toggle-comments-wrapper\"\n >\n <gl-button\n category=\"tertiary\"\n data-testid=\"toggle-replies-button\"\n class=\"gl-my-2 gl-mr-3 !gl-p-0\"\n :icon=\"iconName\"\n :aria-label=\"toggleText\"\n @click=\"$emit('toggle')\"\n />\n <template v-if=\"collapsed\">\n <gl-avatars-inline\n v-if=\"authors.length\"\n :avatars=\"authors\"\n collapsed\n :max-visible=\"2\"\n :avatar-size=\"24\"\n badge-tooltip-prop=\"name\"\n :badge-sr-only-text=\"authorCollapsedTooltip\"\n class=\"gl-mr-3 gl-whitespace-nowrap\"\n >\n <template #avatar=\"{ avatar }\">\n <gl-avatar-link v-gl-tooltip :href=\"avatar.webUrl\" :title=\"avatar.name\">\n <gl-avatar :alt=\"avatar.name\" :src=\"avatar.avatarUrl\" :size=\"24\" />\n </gl-avatar-link>\n </template>\n </gl-avatars-inline>\n </template>\n <gl-button\n variant=\"link\"\n data-testid=\"replies-button\"\n class=\"toggle-comments-button\"\n @click=\"$emit('toggle')\"\n >\n <span :class=\"toggleTextColor\">{{ toggleText }}</span>\n </gl-button>\n </li>\n</template>\n","import { render, staticRenderFns } from \"./toggle_replies_widget.vue?vue&type=template&id=09a82685\"\nimport script from \"./toggle_replies_widget.vue?vue&type=script&lang=js\"\nexport * from \"./toggle_replies_widget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"toggle-comments gl-flex gl-min-h-8 gl-items-center gl-rounded-bl-base gl-rounded-br-base gl-bg-gray-10 gl-p-3\",class:{ expanded: !_vm.collapsed },attrs:{\"aria-expanded\":_vm.ariaState,\"data-testid\":\"toggle-comments-wrapper\"}},[_c('gl-button',{staticClass:\"gl-my-2 gl-mr-3 !gl-p-0\",attrs:{\"category\":\"tertiary\",\"data-testid\":\"toggle-replies-button\",\"icon\":_vm.iconName,\"aria-label\":_vm.toggleText},on:{\"click\":function($event){return _vm.$emit('toggle')}}}),_vm._v(\" \"),(_vm.collapsed)?[(_vm.authors.length)?_c('gl-avatars-inline',{staticClass:\"gl-mr-3 gl-whitespace-nowrap\",attrs:{\"avatars\":_vm.authors,\"collapsed\":\"\",\"max-visible\":2,\"avatar-size\":24,\"badge-tooltip-prop\":\"name\",\"badge-sr-only-text\":_vm.authorCollapsedTooltip},scopedSlots:_vm._u([{key:\"avatar\",fn:function({ avatar }){return [_c('gl-avatar-link',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"href\":avatar.webUrl,\"title\":avatar.name}},[_c('gl-avatar',{attrs:{\"alt\":avatar.name,\"src\":avatar.avatarUrl,\"size\":24}})],1)]}}],null,false,3624126802)}):_vm._e()]:_vm._e(),_vm._v(\" \"),_c('gl-button',{staticClass:\"toggle-comments-button\",attrs:{\"variant\":\"link\",\"data-testid\":\"replies-button\"},on:{\"click\":function($event){return _vm.$emit('toggle')}}},[_c('span',{class:_vm.toggleTextColor},[_vm._v(_vm._s(_vm.toggleText))])])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_discussion.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_discussion.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlLink, GlTooltipDirective, GlFormCheckbox } from '@gitlab/ui';\nimport { __, s__ } from '~/locale';\nimport { createAlert } from '~/alert';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport highlightCurrentUser from '~/behaviors/markdown/highlight_current_user';\nimport TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { getLocationHash } from '~/lib/utils/url_utility';\nimport DesignNotePin from '~/vue_shared/components/design_management/design_note_pin.vue';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport { updateGlobalTodoCount } from '~/sidebar/utils';\nimport { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal';\nimport { TYPENAME_NOTE, TYPENAME_DISCUSSION } from '~/graphql_shared/constants';\nimport activeDiscussionQuery from '../graphql/client/active_design_discussion.query.graphql';\nimport createNoteMutation from '../graphql/create_note.mutation.graphql';\nimport getDesignQuery from '../graphql/design_details.query.graphql';\nimport toggleResolveDiscussionMutation from '../graphql/toggle_resolve_discussion.mutation.graphql';\nimport destroyNoteMutation from '../graphql/destroy_note.mutation.graphql';\nimport { hasErrors } from '../cache_updates';\n\nimport {\n ACTIVE_DISCUSSION_SOURCE_TYPES,\n ADD_DISCUSSION_COMMENT_ERROR,\n DELETE_NOTE_ERROR,\n RESOLVE_NOTE_ERROR,\n} from '../constants';\nimport DesignNoteSignedOut from './design_note_signed_out.vue';\nimport DiscussionReplyPlaceholder from './discussion_reply_placeholder.vue';\nimport DesignReplyForm from './design_reply_form.vue';\nimport DesignNote from './design_note.vue';\nimport ToggleRepliesWidget from './toggle_replies_widget.vue';\n\nexport default {\n isLoggedIn: isLoggedIn(),\n i18n: {\n deleteNote: {\n confirmationText: __('Are you sure you want to delete this comment?'),\n primaryModalBtnText: __('Delete comment'),\n },\n },\n components: {\n DesignNote,\n DesignNotePin,\n DiscussionReplyPlaceholder,\n DesignReplyForm,\n DesignNoteSignedOut,\n GlFormCheckbox,\n GlButton,\n GlLink,\n TimeAgoTooltip,\n ToggleRepliesWidget,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n discussion: {\n type: Object,\n required: true,\n },\n noteableId: {\n type: String,\n required: true,\n },\n discussionWithOpenForm: {\n type: String,\n required: true,\n },\n registerPath: {\n type: String,\n required: true,\n },\n signInPath: {\n type: String,\n required: true,\n },\n resolvedDiscussionsExpanded: {\n type: Boolean,\n required: true,\n },\n markdownPreviewPath: {\n type: String,\n required: false,\n default: '',\n },\n designVariables: {\n type: Object,\n required: true,\n },\n },\n apollo: {\n activeDesignDiscussion: {\n query: activeDiscussionQuery,\n result({ data }) {\n if (this.discussion.resolved && !this.resolvedDiscussionsExpanded) {\n return;\n }\n\n this.$nextTick(() => {\n // We watch any changes to the active discussion from the design pins and scroll to this discussion if it exists.\n // We don't want scrollIntoView to be triggered from the discussion click itself.\n if (this.$el && this.shouldScrollToDiscussion(data.activeDesignDiscussion)) {\n this.$el.scrollIntoView({\n behavior: 'smooth',\n inline: 'start',\n });\n }\n });\n },\n },\n },\n data() {\n return {\n isFormRendered: false,\n noteToDelete: null,\n isResolving: false,\n shouldChangeResolvedStatus: false,\n areRepliesCollapsed: this.discussion.resolved,\n activeDesignDiscussion: {},\n };\n },\n computed: {\n mutationVariables() {\n return {\n noteableId: this.noteableId,\n discussionId: this.discussion.id,\n };\n },\n resolveCheckboxText() {\n return this.discussion.resolved\n ? s__('DesignManagement|Unresolve thread')\n : s__('DesignManagement|Resolve thread');\n },\n firstNote() {\n return this.discussion.notes[0];\n },\n discussionReplies() {\n return this.discussion.notes.slice(1);\n },\n areRepliesShown() {\n return !this.areRepliesCollapsed;\n },\n resolveIconName() {\n return this.discussion.resolved ? 'check-circle-filled' : 'check-circle';\n },\n isRepliesWidgetVisible() {\n return this.discussionReplies.length > 0;\n },\n isDiscussionActive() {\n return this.discussion.notes.some(({ id }) => {\n return (\n id === this.activeDesignDiscussion.id ||\n getLocationHash()?.includes(getIdFromGraphQLId(id))\n );\n });\n },\n isReplyPlaceholderVisible() {\n return this.areRepliesShown || !this.discussionReplies.length;\n },\n isFormVisible() {\n return this.isFormRendered && this.discussionWithOpenForm === this.discussion.id;\n },\n designsVersion() {\n return this.$route.query.version\n ? `gid://gitlab/DesignManagement::Version/${this.$route.query.version}`\n : null;\n },\n },\n mounted() {\n this.$nextTick(() => {\n highlightCurrentUser(this.$el.querySelectorAll('.gfm-project_member'));\n if (this.isDiscussionActive) {\n this.$el.scrollIntoView({\n behavior: 'smooth',\n inline: 'start',\n });\n }\n });\n },\n updated() {\n this.$nextTick(() => {\n highlightCurrentUser(this.$el.querySelectorAll('.gfm-project_member'));\n });\n },\n methods: {\n onSubmitComplete({ data: { createNote } }) {\n if (hasErrors(createNote)) {\n createAlert({ message: ADD_DISCUSSION_COMMENT_ERROR });\n } else {\n /**\n * https://gitlab.com/gitlab-org/gitlab/-/issues/388314\n *\n * Hide the form once the create note mutation is completed.\n */\n this.hideForm();\n }\n\n if (this.shouldChangeResolvedStatus) {\n this.toggleResolvedStatus();\n }\n },\n shouldScrollToDiscussion(activeDesignDiscussion) {\n const ALLOWED_ACTIVE_DISCUSSION_SOURCES = [\n ACTIVE_DISCUSSION_SOURCE_TYPES.pin,\n ACTIVE_DISCUSSION_SOURCE_TYPES.url,\n ];\n const { source } = activeDesignDiscussion;\n return ALLOWED_ACTIVE_DISCUSSION_SOURCES.includes(source) && this.isDiscussionActive;\n },\n hideForm() {\n this.isFormRendered = false;\n },\n showForm() {\n this.$emit('open-form', this.discussion.id);\n this.isFormRendered = true;\n },\n async toggleResolvedStatus() {\n this.isResolving = true;\n\n /**\n * Get previous todo count\n */\n const { defaultClient: client } = this.$apollo.provider.clients;\n\n const sourceData = client.readQuery({\n query: getDesignQuery,\n variables: this.designVariables,\n });\n\n const currentDesign = sourceData.designManagement.designAtVersion.design;\n const prevTodoCount = currentDesign.currentUserTodos?.nodes?.length || 0;\n\n try {\n await this.$apollo.mutate({\n mutation: toggleResolveDiscussionMutation,\n variables: { id: this.discussion.id, resolve: !this.discussion.resolved },\n update: ({ data }) => {\n if (data.errors?.length > 0) {\n this.$emit('resolve-discussion-error', data.errors[0]);\n }\n const newTodoCount =\n data?.discussionToggleResolve?.discussion?.noteable?.currentUserTodos?.nodes\n ?.length || 0;\n updateGlobalTodoCount(newTodoCount - prevTodoCount);\n },\n });\n } catch (error) {\n this.$emit('resolve-discussion-error', RESOLVE_NOTE_ERROR);\n Sentry.captureException(error);\n } finally {\n this.isResolving = false;\n }\n },\n async showDeleteNoteConfirmationModal(note) {\n const isLast = note?.discussion?.notes?.nodes.length === 1;\n this.noteToDelete = { ...note, isLast };\n\n const confirmed = await confirmAction(this.$options.i18n.deleteNote.confirmationText, {\n primaryBtnVariant: 'danger',\n primaryBtnText: this.$options.i18n.deleteNote.primaryModalBtnText,\n });\n\n if (confirmed) {\n await this.deleteNote();\n }\n },\n async deleteNote() {\n const { id, discussion, isLast } = this.noteToDelete;\n try {\n await this.$apollo.mutate({\n mutation: destroyNoteMutation,\n variables: {\n input: {\n id,\n },\n },\n update: (cache, { data }) => {\n const { errors } = data.destroyNote;\n\n if (errors?.length) {\n this.$emit('delete-note-error', errors[0]);\n }\n\n const objectToIdentify = isLast\n ? { __typename: TYPENAME_DISCUSSION, id: discussion?.id }\n : { __typename: TYPENAME_NOTE, id };\n\n cache.modify({\n id: cache.identify(objectToIdentify),\n fields: (_, { DELETE }) => DELETE,\n });\n cache.gc();\n },\n optimisticResponse: {\n destroyNote: {\n note: null,\n errors: [],\n __typename: 'DestroyNotePayload',\n },\n },\n });\n } catch (error) {\n this.$emit('delete-note-error', DELETE_NOTE_ERROR);\n Sentry.captureException(error);\n }\n },\n },\n createNoteMutation,\n};\n</script>\n\n<template>\n <div class=\"design-discussion-wrapper\" @click=\"$emit('update-active-discussion')\">\n <design-note-pin :is-resolved=\"discussion.resolved\" :label=\"discussion.index\" />\n <ul\n class=\"design-discussion gl-border gl-relative gl-list-none gl-rounded-base gl-border-section gl-p-0\"\n :class=\"{ 'gl-bg-blue-50': isDiscussionActive }\"\n data-testid=\"design-discussion-content\"\n >\n <design-note\n :note=\"firstNote\"\n :markdown-preview-path=\"markdownPreviewPath\"\n :is-resolving=\"isResolving\"\n is-discussion\n :noteable-id=\"noteableId\"\n :design-variables=\"designVariables\"\n @delete-note=\"showDeleteNoteConfirmationModal($event)\"\n >\n <template v-if=\"$options.isLoggedIn && discussion.resolvable\" #resolve-discussion>\n <gl-button\n v-gl-tooltip\n :aria-label=\"resolveCheckboxText\"\n :icon=\"resolveIconName\"\n :title=\"resolveCheckboxText\"\n :loading=\"isResolving\"\n category=\"tertiary\"\n data-testid=\"resolve-button\"\n @click=\"toggleResolvedStatus\"\n />\n </template>\n <template v-if=\"discussion.resolved\" #resolved-status>\n <p class=\"gl-m-0 gl-mt-5 gl-text-sm gl-text-subtle\" data-testid=\"resolved-message\">\n {{ __('Resolved by') }}\n <gl-link\n class=\"link-inherit-color gl-text-sm gl-text-subtle gl-no-underline\"\n :href=\"discussion.resolvedBy.webUrl\"\n target=\"_blank\"\n >{{ discussion.resolvedBy.name }}</gl-link\n >\n <time-ago-tooltip :time=\"discussion.resolvedAt\" tooltip-placement=\"bottom\" />\n </p>\n </template>\n </design-note>\n <toggle-replies-widget\n v-if=\"isRepliesWidgetVisible\"\n :collapsed=\"areRepliesCollapsed\"\n :replies=\"discussionReplies\"\n @toggle=\"areRepliesCollapsed = !areRepliesCollapsed\"\n />\n <design-note\n v-for=\"note in discussionReplies\"\n v-show=\"areRepliesShown\"\n :key=\"note.id\"\n :note=\"note\"\n :markdown-preview-path=\"markdownPreviewPath\"\n :is-resolving=\"isResolving\"\n :noteable-id=\"noteableId\"\n :is-discussion=\"false\"\n :design-variables=\"designVariables\"\n @delete-note=\"showDeleteNoteConfirmationModal($event)\"\n />\n <li\n v-show=\"isReplyPlaceholderVisible\"\n class=\"reply-wrapper discussion-reply-holder\"\n :class=\"{ 'gl-bg-gray-10': !$options.isLoggedIn }\"\n >\n <template v-if=\"!$options.isLoggedIn\">\n <design-note-signed-out :register-path=\"registerPath\" :sign-in-path=\"signInPath\" />\n </template>\n <template v-else>\n <discussion-reply-placeholder v-if=\"!isFormVisible\" @focus=\"showForm\" />\n <design-reply-form\n v-else\n :design-note-mutation=\"$options.createNoteMutation\"\n :mutation-variables=\"mutationVariables\"\n :markdown-preview-path=\"markdownPreviewPath\"\n :noteable-id=\"noteableId\"\n :discussion-id=\"discussion.id\"\n :is-discussion=\"false\"\n @note-submit-complete=\"onSubmitComplete\"\n @cancel-form=\"hideForm\"\n >\n <template v-if=\"discussion.resolvable\" #resolve-checkbox>\n <gl-form-checkbox\n v-model=\"shouldChangeResolvedStatus\"\n class=\"-gl-mb-3 gl-mt-5\"\n data-testid=\"resolve-checkbox\"\n >\n {{ resolveCheckboxText }}\n </gl-form-checkbox>\n </template>\n </design-reply-form>\n </template>\n </li>\n </ul>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./design_discussion.vue?vue&type=template&id=2b0a31d5\"\nimport script from \"./design_discussion.vue?vue&type=script&lang=js\"\nexport * from \"./design_discussion.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"design-discussion-wrapper\",on:{\"click\":function($event){return _vm.$emit('update-active-discussion')}}},[_c('design-note-pin',{attrs:{\"is-resolved\":_vm.discussion.resolved,\"label\":_vm.discussion.index}}),_vm._v(\" \"),_c('ul',{staticClass:\"design-discussion gl-border gl-relative gl-list-none gl-rounded-base gl-border-section gl-p-0\",class:{ 'gl-bg-blue-50': _vm.isDiscussionActive },attrs:{\"data-testid\":\"design-discussion-content\"}},[_c('design-note',{attrs:{\"note\":_vm.firstNote,\"markdown-preview-path\":_vm.markdownPreviewPath,\"is-resolving\":_vm.isResolving,\"is-discussion\":\"\",\"noteable-id\":_vm.noteableId,\"design-variables\":_vm.designVariables},on:{\"delete-note\":function($event){return _vm.showDeleteNoteConfirmationModal($event)}},scopedSlots:_vm._u([(_vm.$options.isLoggedIn && _vm.discussion.resolvable)?{key:\"resolve-discussion\",fn:function(){return [_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"aria-label\":_vm.resolveCheckboxText,\"icon\":_vm.resolveIconName,\"title\":_vm.resolveCheckboxText,\"loading\":_vm.isResolving,\"category\":\"tertiary\",\"data-testid\":\"resolve-button\"},on:{\"click\":_vm.toggleResolvedStatus}})]},proxy:true}:null,(_vm.discussion.resolved)?{key:\"resolved-status\",fn:function(){return [_c('p',{staticClass:\"gl-m-0 gl-mt-5 gl-text-sm gl-text-subtle\",attrs:{\"data-testid\":\"resolved-message\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Resolved by'))+\"\\n \"),_c('gl-link',{staticClass:\"link-inherit-color gl-text-sm gl-text-subtle gl-no-underline\",attrs:{\"href\":_vm.discussion.resolvedBy.webUrl,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.discussion.resolvedBy.name))]),_vm._v(\" \"),_c('time-ago-tooltip',{attrs:{\"time\":_vm.discussion.resolvedAt,\"tooltip-placement\":\"bottom\"}})],1)]},proxy:true}:null],null,true)}),_vm._v(\" \"),(_vm.isRepliesWidgetVisible)?_c('toggle-replies-widget',{attrs:{\"collapsed\":_vm.areRepliesCollapsed,\"replies\":_vm.discussionReplies},on:{\"toggle\":function($event){_vm.areRepliesCollapsed = !_vm.areRepliesCollapsed}}}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.discussionReplies),function(note){return _c('design-note',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.areRepliesShown),expression:\"areRepliesShown\"}],key:note.id,attrs:{\"note\":note,\"markdown-preview-path\":_vm.markdownPreviewPath,\"is-resolving\":_vm.isResolving,\"noteable-id\":_vm.noteableId,\"is-discussion\":false,\"design-variables\":_vm.designVariables},on:{\"delete-note\":function($event){return _vm.showDeleteNoteConfirmationModal($event)}}})}),_vm._v(\" \"),_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isReplyPlaceholderVisible),expression:\"isReplyPlaceholderVisible\"}],staticClass:\"reply-wrapper discussion-reply-holder\",class:{ 'gl-bg-gray-10': !_vm.$options.isLoggedIn }},[(!_vm.$options.isLoggedIn)?[_c('design-note-signed-out',{attrs:{\"register-path\":_vm.registerPath,\"sign-in-path\":_vm.signInPath}})]:[(!_vm.isFormVisible)?_c('discussion-reply-placeholder',{on:{\"focus\":_vm.showForm}}):_c('design-reply-form',{attrs:{\"design-note-mutation\":_vm.$options.createNoteMutation,\"mutation-variables\":_vm.mutationVariables,\"markdown-preview-path\":_vm.markdownPreviewPath,\"noteable-id\":_vm.noteableId,\"discussion-id\":_vm.discussion.id,\"is-discussion\":false},on:{\"note-submit-complete\":_vm.onSubmitComplete,\"cancel-form\":_vm.hideForm},scopedSlots:_vm._u([(_vm.discussion.resolvable)?{key:\"resolve-checkbox\",fn:function(){return [_c('gl-form-checkbox',{staticClass:\"-gl-mb-3 gl-mt-5\",attrs:{\"data-testid\":\"resolve-checkbox\"},model:{value:(_vm.shouldChangeResolvedStatus),callback:function ($$v) {_vm.shouldChangeResolvedStatus=$$v},expression:\"shouldChangeResolvedStatus\"}},[_vm._v(\"\\n \"+_vm._s(_vm.resolveCheckboxText)+\"\\n \")])]},proxy:true}:null],null,true)})]],2)],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlButton, GlFormGroup, GlAlert, GlTooltipDirective } from '@gitlab/ui';\nimport { s__ } from '~/locale';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { trackSavedUsingEditor } from '~/vue_shared/components/markdown/tracking';\nimport { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal';\nimport MarkdownEditor from '~/vue_shared/components/markdown/markdown_editor.vue';\nimport markdownEditorEventHub from '~/vue_shared/components/markdown/eventhub';\nimport { CLEAR_AUTOSAVE_ENTRY_EVENT } from '~/vue_shared/constants';\nimport { renderGFM } from '~/behaviors/markdown/render_gfm';\nimport { toggleMarkCheckboxes } from '~/behaviors/markdown/utils';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport updateDesignDescriptionMutation from '../graphql/update_design_description.mutation.graphql';\nimport { UPDATE_DESCRIPTION_ERROR } from '../constants';\n\nconst isCheckbox = (target) => target?.classList.contains('task-list-item-checkbox');\n\nexport default {\n components: {\n MarkdownEditor,\n GlAlert,\n GlButton,\n GlFormGroup,\n },\n directives: {\n SafeHtml,\n GlTooltip: GlTooltipDirective,\n },\n i18n: {\n editDescription: s__('DesignManagement|Edit description'),\n descriptionLabel: s__('DesignManagement|Description'),\n addDescriptionLabel: s__('DesignManagement|Add a description'),\n cancelEdit: s__('DesignManagement|Are you sure you want to cancel editing the description?'),\n primaryModalButton: s__('DesignManagement|Discard changes'),\n cancelModalButton: s__('DesignManagement|Continue editing'),\n },\n formFieldProps: {\n id: 'design-description',\n name: 'design-description',\n placeholder: s__('DesignManagement|Write a comment or drag your files here…'),\n 'aria-label': s__('DesignManagement|Design description'),\n },\n markdownDocsPath: helpPagePath('user/markdown'),\n quickActionsDocsPath: helpPagePath('user/project/quick_actions'),\n props: {\n design: {\n type: Object,\n required: true,\n },\n markdownPreviewPath: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n descriptionText: this.design.description || '',\n showEditor: false,\n isSubmitting: false,\n errorMessage: '',\n autosaveKey: `WorkItem/${getIdFromGraphQLId(this.design.issue.id)}/Design/${getIdFromGraphQLId(\n this.design.id,\n )}`,\n };\n },\n computed: {\n canUpdate() {\n return this.design.issue?.userPermissions?.updateDesign && !this.showEditor;\n },\n showAddDescriptionButton() {\n return this.design.issue?.userPermissions?.updateDesign && !this.design.descriptionHtml;\n },\n },\n watch: {\n 'design.descriptionHtml': {\n handler(newDescriptionHtml, oldDescriptionHtml) {\n if (newDescriptionHtml !== oldDescriptionHtml) {\n this.renderGFM();\n }\n },\n immediate: true,\n },\n },\n methods: {\n startEditing() {\n this.showEditor = true;\n },\n closeForm() {\n // If description text is empty on cancel,\n // restore the old description\n if (!this.descriptionText) {\n this.descriptionText = this.design.description;\n }\n this.showEditor = false;\n },\n async cancelDescription() {\n if (this.descriptionText && this.descriptionText !== this.design.description) {\n const confirmed = await confirmAction(this.$options.i18n.cancelEdit, {\n primaryBtnText: this.$options.i18n.primaryModalButton,\n cancelBtnText: this.$options.i18n.cancelModalButton,\n primaryBtnVariant: 'danger',\n });\n\n if (!confirmed) {\n return;\n }\n\n // Update markdown's placeholder text based on if\n // an existing description was being edited or\n // a totally new description was being added\n if (!this.design.descriptionHtml) {\n this.descriptionText = '';\n } else {\n this.descriptionText = this.design.description;\n }\n\n markdownEditorEventHub.$emit(CLEAR_AUTOSAVE_ENTRY_EVENT, this.autosaveKey);\n this.showEditor = false;\n this.enableCheckboxes();\n } else {\n this.descriptionText = this.design.description;\n this.showEditor = false;\n await this.$nextTick();\n this.enableCheckboxes();\n }\n },\n enableCheckboxes() {\n if (this.canUpdate) {\n const checkboxes = this.$el.querySelectorAll('.task-list-item-checkbox');\n\n // enable boxes, disabled by default in markdown\n checkboxes.forEach((checkbox) => {\n // eslint-disable-next-line no-param-reassign\n checkbox.disabled = false;\n });\n }\n },\n async renderGFM() {\n await this.$nextTick();\n renderGFM(this.$refs['gfm-content']);\n this.enableCheckboxes();\n },\n setDescriptionText(newText) {\n // Do not update when cmd+enter is executed\n if (!this.isSubmitting) {\n this.descriptionText = newText;\n }\n },\n async updateDesignDescription() {\n this.isSubmitting = true;\n\n if (this.$refs.markdownEditor) {\n // eslint-disable-next-line @gitlab/require-i18n-strings\n trackSavedUsingEditor(this.$refs.markdownEditor.isContentEditorActive, 'Design');\n }\n\n try {\n const descriptionInput = { description: this.descriptionText, id: this.design.id };\n\n await this.$apollo.mutate({\n mutation: updateDesignDescriptionMutation,\n variables: {\n input: descriptionInput,\n },\n });\n\n this.closeForm();\n } catch (error) {\n Sentry.captureException(error);\n this.errorMessage = UPDATE_DESCRIPTION_ERROR;\n } finally {\n await this.$nextTick();\n this.enableCheckboxes();\n this.isSubmitting = false;\n }\n },\n toggleCheckboxes(event) {\n const { target } = event;\n\n if (isCheckbox(target)) {\n target.disabled = true;\n\n const { sourcepos } = target.parentElement.dataset;\n\n if (!sourcepos) return;\n\n // Toggle checkboxes based on user input\n this.descriptionText = toggleMarkCheckboxes({\n rawMarkdown: this.descriptionText,\n checkboxChecked: target.checked,\n sourcepos,\n });\n\n // Update the desciption text using mutation\n this.updateDesignDescription();\n }\n },\n },\n};\n</script>\n\n<template>\n <div class=\"design-description-container\">\n <gl-form-group\n v-if=\"showEditor\"\n class=\"design-description-form common-note-form\"\n :label=\"$options.i18n.descriptionLabel\"\n label-class=\"!gl-leading-20 !gl-text-lg\"\n >\n <div v-if=\"errorMessage\" class=\"gl-pb-3\">\n <gl-alert variant=\"danger\" @dismiss=\"errorMessage = null\">\n {{ errorMessage }}\n </gl-alert>\n </div>\n <markdown-editor\n ref=\"markdownEditor\"\n :value=\"descriptionText\"\n :render-markdown-path=\"markdownPreviewPath\"\n :markdown-docs-path=\"$options.markdownDocsPath\"\n :form-field-props=\"$options.formFieldProps\"\n :quick-actions-docs-path=\"$options.quickActionsDocsPath\"\n :autosave-key=\"autosaveKey\"\n enable-autocomplete\n :supports-quick-actions=\"false\"\n autofocus\n @input=\"setDescriptionText\"\n @keydown.meta.enter=\"updateDesignDescription\"\n @keydown.ctrl.enter=\"updateDesignDescription\"\n @keydown.esc.stop=\"cancelDescription\"\n />\n <div class=\"gl-mt-3 gl-flex\">\n <gl-button\n category=\"primary\"\n variant=\"confirm\"\n :loading=\"isSubmitting\"\n data-testid=\"save-description\"\n @click=\"updateDesignDescription\"\n >{{ s__('DesignManagement|Save changes') }}\n </gl-button>\n <gl-button\n category=\"tertiary\"\n class=\"gl-ml-3\"\n data-testid=\"cancel\"\n @click=\"cancelDescription\"\n >{{ s__('DesignManagement|Cancel') }}\n </gl-button>\n </div>\n </gl-form-group>\n <div v-else class=\"design-description-view\">\n <gl-button\n v-if=\"showAddDescriptionButton\"\n class=\"gl-mb-5 gl-ml-auto\"\n size=\"small\"\n data-testid=\"add-design-description\"\n :aria-label=\"$options.i18n.addDescriptionLabel\"\n @click=\"startEditing\"\n >\n {{ $options.i18n.addDescriptionLabel }}\n </gl-button>\n <template v-else>\n <div class=\"design-description-header gl-mb-2 gl-flex gl-justify-between\">\n <h3 class=\"gl-m-0 gl-text-lg !gl-leading-20\">\n {{ $options.i18n.descriptionLabel }}\n </h3>\n <gl-button\n v-if=\"canUpdate\"\n v-gl-tooltip\n class=\"gl-ml-auto\"\n size=\"small\"\n category=\"tertiary\"\n :aria-label=\"$options.i18n.editDescription\"\n :title=\"$options.i18n.editDescription\"\n data-testid=\"edit-description\"\n icon=\"pencil\"\n @click=\"startEditing\"\n />\n </div>\n <div v-if=\"design.descriptionHtml\" class=\"design-description js-task-list-container\">\n <div\n ref=\"gfm-content\"\n v-safe-html=\"design.descriptionHtml\"\n class=\"md gl-mb-4\"\n data-testid=\"design-description-content\"\n @change=\"toggleCheckboxes\"\n ></div>\n </div>\n </template>\n </div>\n </div>\n</template>\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_description.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_description.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./design_description.vue?vue&type=template&id=4d5d9901\"\nimport script from \"./design_description.vue?vue&type=script&lang=js\"\nexport * from \"./design_description.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"design-description-container\"},[(_vm.showEditor)?_c('gl-form-group',{staticClass:\"design-description-form common-note-form\",attrs:{\"label\":_vm.$options.i18n.descriptionLabel,\"label-class\":\"!gl-leading-20 !gl-text-lg\"}},[(_vm.errorMessage)?_c('div',{staticClass:\"gl-pb-3\"},[_c('gl-alert',{attrs:{\"variant\":\"danger\"},on:{\"dismiss\":function($event){_vm.errorMessage = null}}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),_c('markdown-editor',{ref:\"markdownEditor\",attrs:{\"value\":_vm.descriptionText,\"render-markdown-path\":_vm.markdownPreviewPath,\"markdown-docs-path\":_vm.$options.markdownDocsPath,\"form-field-props\":_vm.$options.formFieldProps,\"quick-actions-docs-path\":_vm.$options.quickActionsDocsPath,\"autosave-key\":_vm.autosaveKey,\"enable-autocomplete\":\"\",\"supports-quick-actions\":false,\"autofocus\":\"\"},on:{\"input\":_vm.setDescriptionText,\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.metaKey)return null;return _vm.updateDesignDescription.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.ctrlKey)return null;return _vm.updateDesignDescription.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;$event.stopPropagation();return _vm.cancelDescription.apply(null, arguments)}]}}),_vm._v(\" \"),_c('div',{staticClass:\"gl-mt-3 gl-flex\"},[_c('gl-button',{attrs:{\"category\":\"primary\",\"variant\":\"confirm\",\"loading\":_vm.isSubmitting,\"data-testid\":\"save-description\"},on:{\"click\":_vm.updateDesignDescription}},[_vm._v(_vm._s(_vm.s__('DesignManagement|Save changes'))+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-ml-3\",attrs:{\"category\":\"tertiary\",\"data-testid\":\"cancel\"},on:{\"click\":_vm.cancelDescription}},[_vm._v(_vm._s(_vm.s__('DesignManagement|Cancel'))+\"\\n \")])],1)],1):_c('div',{staticClass:\"design-description-view\"},[(_vm.showAddDescriptionButton)?_c('gl-button',{staticClass:\"gl-mb-5 gl-ml-auto\",attrs:{\"size\":\"small\",\"data-testid\":\"add-design-description\",\"aria-label\":_vm.$options.i18n.addDescriptionLabel},on:{\"click\":_vm.startEditing}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.addDescriptionLabel)+\"\\n \")]):[_c('div',{staticClass:\"design-description-header gl-mb-2 gl-flex gl-justify-between\"},[_c('h3',{staticClass:\"gl-m-0 gl-text-lg !gl-leading-20\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.descriptionLabel)+\"\\n \")]),_vm._v(\" \"),(_vm.canUpdate)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-ml-auto\",attrs:{\"size\":\"small\",\"category\":\"tertiary\",\"aria-label\":_vm.$options.i18n.editDescription,\"title\":_vm.$options.i18n.editDescription,\"data-testid\":\"edit-description\",\"icon\":\"pencil\"},on:{\"click\":_vm.startEditing}}):_vm._e()],1),_vm._v(\" \"),(_vm.design.descriptionHtml)?_c('div',{staticClass:\"design-description js-task-list-container\"},[_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.design.descriptionHtml),expression:\"design.descriptionHtml\"}],ref:\"gfm-content\",staticClass:\"md gl-mb-4\",attrs:{\"data-testid\":\"design-description-content\"},on:{\"change\":_vm.toggleCheckboxes}})]):_vm._e()]],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_sidebar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_sidebar.vue?vue&type=script&lang=js\"","<script>\nimport { GlAccordion, GlAccordionItem, GlSkeletonLoader, GlEmptyState } from '@gitlab/ui';\nimport EMPTY_DISCUSSION_URL from '@gitlab/svgs/dist/illustrations/empty-state/empty-activity-md.svg';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport { s__, n__ } from '~/locale';\nimport DesignDisclosure from '~/vue_shared/components/design_management/design_disclosure.vue';\nimport { ACTIVE_DISCUSSION_SOURCE_TYPES } from '../constants';\nimport { extractDiscussions } from '../utils';\nimport updateActiveDiscussionMutation from '../graphql/client/update_active_design_discussion.mutation.graphql';\nimport DesignDiscussion from '../design_notes/design_discussion.vue';\nimport DesignNoteSignedOut from '../design_notes/design_note_signed_out.vue';\nimport DesignDescription from './design_description.vue';\n\nexport default {\n isLoggedIn: isLoggedIn(),\n components: {\n DesignDescription,\n DesignDisclosure,\n DesignDiscussion,\n DesignNoteSignedOut,\n GlAccordion,\n GlAccordionItem,\n GlSkeletonLoader,\n GlEmptyState,\n },\n inject: ['registerPath', 'signInPath'],\n props: {\n design: {\n type: Object,\n required: true,\n },\n isLoading: {\n type: Boolean,\n required: true,\n },\n isOpen: {\n type: Boolean,\n required: true,\n },\n resolvedDiscussionsExpanded: {\n type: Boolean,\n required: true,\n },\n markdownPreviewPath: {\n type: String,\n required: true,\n },\n isCommentFormPresent: {\n type: Boolean,\n required: true,\n },\n designVariables: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n discussionWithOpenForm: '',\n };\n },\n computed: {\n showDescriptionForm() {\n // user either has permission to add or update description,\n // or the existing description should be shown read-only.\n return (\n !this.isLoading &&\n (this.design.issue?.userPermissions?.updateDesign || Boolean(this.design.descriptionHtml))\n );\n },\n discussions() {\n return this.design?.discussions ? extractDiscussions(this.design.discussions) : [];\n },\n unresolvedDiscussions() {\n return this.discussions.filter((discussion) => !discussion.resolved);\n },\n unresolvedDiscussionsCount() {\n return n__('%d Thread', '%d Threads', this.unresolvedDiscussions.length);\n },\n resolvedDiscussions() {\n return this.discussions.filter((discussion) => discussion.resolved);\n },\n hasResolvedDiscussions() {\n return this.resolvedDiscussions.length > 0;\n },\n resolvedDiscussionsTitle() {\n return `${this.$options.i18n.resolveCommentsToggleText} (${this.resolvedDiscussions.length})`;\n },\n isResolvedDiscussionsExpanded: {\n get() {\n return this.resolvedDiscussionsExpanded;\n },\n set(isExpanded) {\n this.$emit('toggleResolvedComments', isExpanded);\n },\n },\n },\n methods: {\n handleSidebarClick() {\n this.updateActiveDesignDiscussion();\n },\n updateActiveDesignDiscussion(discussion) {\n if (discussion?.resolved) {\n return;\n }\n\n this.$apollo.mutate({\n mutation: updateActiveDiscussionMutation,\n variables: {\n id: discussion?.notes[0].id,\n source: ACTIVE_DISCUSSION_SOURCE_TYPES.discussion,\n },\n });\n },\n updateDiscussionWithOpenForm(id) {\n this.discussionWithOpenForm = id;\n },\n },\n i18n: {\n resolveCommentsToggleText: s__('DesignManagement|Resolved threads'),\n newDiscussionText: s__(\n `DesignManagement|Click on the image where you'd like to add a new comment.`,\n ),\n },\n EMPTY_DISCUSSION_URL,\n};\n</script>\n\n<template>\n <design-disclosure :open=\"isOpen\">\n <template #default>\n <div class=\"image-notes gl-h-full gl-pt-0\" @click.self=\"handleSidebarClick\">\n <design-description\n v-if=\"showDescriptionForm\"\n :design=\"design\"\n :markdown-preview-path=\"markdownPreviewPath\"\n class=\"gl-border-b gl-my-5\"\n />\n <div v-if=\"isLoading\" class=\"gl-my-5\">\n <gl-skeleton-loader />\n </div>\n <template v-else>\n <h3 data-testid=\"unresolved-discussion-count\" class=\"gl-my-5 gl-text-lg !gl-leading-20\">\n {{ unresolvedDiscussionsCount }}\n </h3>\n <gl-empty-state\n v-if=\"\n $options.isLoggedIn && unresolvedDiscussions.length === 0 && !isCommentFormPresent\n \"\n data-testid=\"new-discussion-disclaimer\"\n :svg-path=\"$options.EMPTY_DISCUSSION_URL\"\n >\n <template #description>\n {{ $options.i18n.newDiscussionText }}\n </template>\n </gl-empty-state>\n <design-note-signed-out\n v-if=\"!$options.isLoggedIn\"\n class=\"gl-mb-4\"\n :register-path=\"registerPath\"\n :sign-in-path=\"signInPath\"\n :is-add-discussion=\"true\"\n />\n <design-discussion\n v-for=\"discussion in unresolvedDiscussions\"\n :key=\"discussion.id\"\n :discussion=\"discussion\"\n :design-variables=\"designVariables\"\n :noteable-id=\"design.id\"\n :markdown-preview-path=\"markdownPreviewPath\"\n :register-path=\"registerPath\"\n :sign-in-path=\"signInPath\"\n :resolved-discussions-expanded=\"resolvedDiscussionsExpanded\"\n :discussion-with-open-form=\"discussionWithOpenForm\"\n data-testid=\"unresolved-discussion\"\n @create-note-error=\"$emit('onDesignDiscussionError', $event)\"\n @update-note-error=\"$emit('updateNoteError', $event)\"\n @delete-note-error=\"$emit('deleteNoteError', $event)\"\n @resolve-discussion-error=\"$emit('resolveDiscussionError', $event)\"\n @update-active-discussion=\"updateActiveDesignDiscussion(discussion)\"\n @open-form=\"updateDiscussionWithOpenForm\"\n />\n <slot name=\"reply-form\"></slot>\n <gl-accordion v-if=\"hasResolvedDiscussions\" :header-level=\"3\" class=\"gl-my-5\">\n <gl-accordion-item\n v-model=\"isResolvedDiscussionsExpanded\"\n :title=\"resolvedDiscussionsTitle\"\n header-class=\"!gl-mb-5\"\n >\n <design-discussion\n v-for=\"discussion in resolvedDiscussions\"\n :key=\"discussion.id\"\n :discussion=\"discussion\"\n :design-variables=\"designVariables\"\n :noteable-id=\"design.id\"\n :markdown-preview-path=\"markdownPreviewPath\"\n :register-path=\"registerPath\"\n :sign-in-path=\"signInPath\"\n :resolved-discussions-expanded=\"resolvedDiscussionsExpanded\"\n :discussion-with-open-form=\"discussionWithOpenForm\"\n data-testid=\"resolved-discussion\"\n @error=\"$emit('onDesignDiscussionError', $event)\"\n @update-note-error=\"$emit('updateNoteError', $event)\"\n @delete-note-error=\"$emit('deleteNoteError', $event)\"\n @update-active-discussion=\"updateActiveDesignDiscussion(discussion)\"\n @open-form=\"updateDiscussionWithOpenForm\"\n />\n </gl-accordion-item>\n </gl-accordion>\n </template>\n </div>\n </template>\n </design-disclosure>\n</template>\n","import { render, staticRenderFns } from \"./design_sidebar.vue?vue&type=template&id=1e9b3500\"\nimport script from \"./design_sidebar.vue?vue&type=script&lang=js\"\nexport * from \"./design_sidebar.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('design-disclosure',{attrs:{\"open\":_vm.isOpen},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('div',{staticClass:\"image-notes gl-h-full gl-pt-0\",on:{\"click\":function($event){if($event.target !== $event.currentTarget)return null;return _vm.handleSidebarClick.apply(null, arguments)}}},[(_vm.showDescriptionForm)?_c('design-description',{staticClass:\"gl-border-b gl-my-5\",attrs:{\"design\":_vm.design,\"markdown-preview-path\":_vm.markdownPreviewPath}}):_vm._e(),_vm._v(\" \"),(_vm.isLoading)?_c('div',{staticClass:\"gl-my-5\"},[_c('gl-skeleton-loader')],1):[_c('h3',{staticClass:\"gl-my-5 gl-text-lg !gl-leading-20\",attrs:{\"data-testid\":\"unresolved-discussion-count\"}},[_vm._v(\"\\n \"+_vm._s(_vm.unresolvedDiscussionsCount)+\"\\n \")]),_vm._v(\" \"),(\n _vm.$options.isLoggedIn && _vm.unresolvedDiscussions.length === 0 && !_vm.isCommentFormPresent\n )?_c('gl-empty-state',{attrs:{\"data-testid\":\"new-discussion-disclaimer\",\"svg-path\":_vm.$options.EMPTY_DISCUSSION_URL},scopedSlots:_vm._u([{key:\"description\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.newDiscussionText)+\"\\n \")]},proxy:true}],null,false,716832205)}):_vm._e(),_vm._v(\" \"),(!_vm.$options.isLoggedIn)?_c('design-note-signed-out',{staticClass:\"gl-mb-4\",attrs:{\"register-path\":_vm.registerPath,\"sign-in-path\":_vm.signInPath,\"is-add-discussion\":true}}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.unresolvedDiscussions),function(discussion){return _c('design-discussion',{key:discussion.id,attrs:{\"discussion\":discussion,\"design-variables\":_vm.designVariables,\"noteable-id\":_vm.design.id,\"markdown-preview-path\":_vm.markdownPreviewPath,\"register-path\":_vm.registerPath,\"sign-in-path\":_vm.signInPath,\"resolved-discussions-expanded\":_vm.resolvedDiscussionsExpanded,\"discussion-with-open-form\":_vm.discussionWithOpenForm,\"data-testid\":\"unresolved-discussion\"},on:{\"create-note-error\":function($event){return _vm.$emit('onDesignDiscussionError', $event)},\"update-note-error\":function($event){return _vm.$emit('updateNoteError', $event)},\"delete-note-error\":function($event){return _vm.$emit('deleteNoteError', $event)},\"resolve-discussion-error\":function($event){return _vm.$emit('resolveDiscussionError', $event)},\"update-active-discussion\":function($event){return _vm.updateActiveDesignDiscussion(discussion)},\"open-form\":_vm.updateDiscussionWithOpenForm}})}),_vm._v(\" \"),_vm._t(\"reply-form\"),_vm._v(\" \"),(_vm.hasResolvedDiscussions)?_c('gl-accordion',{staticClass:\"gl-my-5\",attrs:{\"header-level\":3}},[_c('gl-accordion-item',{attrs:{\"title\":_vm.resolvedDiscussionsTitle,\"header-class\":\"!gl-mb-5\"},model:{value:(_vm.isResolvedDiscussionsExpanded),callback:function ($$v) {_vm.isResolvedDiscussionsExpanded=$$v},expression:\"isResolvedDiscussionsExpanded\"}},_vm._l((_vm.resolvedDiscussions),function(discussion){return _c('design-discussion',{key:discussion.id,attrs:{\"discussion\":discussion,\"design-variables\":_vm.designVariables,\"noteable-id\":_vm.design.id,\"markdown-preview-path\":_vm.markdownPreviewPath,\"register-path\":_vm.registerPath,\"sign-in-path\":_vm.signInPath,\"resolved-discussions-expanded\":_vm.resolvedDiscussionsExpanded,\"discussion-with-open-form\":_vm.discussionWithOpenForm,\"data-testid\":\"resolved-discussion\"},on:{\"error\":function($event){return _vm.$emit('onDesignDiscussionError', $event)},\"update-note-error\":function($event){return _vm.$emit('updateNoteError', $event)},\"delete-note-error\":function($event){return _vm.$emit('deleteNoteError', $event)},\"update-active-discussion\":function($event){return _vm.updateActiveDesignDiscussion(discussion)},\"open-form\":_vm.updateDiscussionWithOpenForm}})}),1)],1):_vm._e()]],2)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlButtonGroup, GlButton } from '@gitlab/ui';\nimport { sprintf, __ } from '~/locale';\n\nconst DEFAULT_SCALE = 1;\nconst MIN_SCALE = 1;\nconst ZOOM_LEVELS = 5;\n\nexport default {\n components: {\n GlButtonGroup,\n GlButton,\n },\n props: {\n maxScale: {\n type: Number,\n required: true,\n },\n },\n data() {\n return {\n scale: DEFAULT_SCALE,\n };\n },\n computed: {\n disableDecrease() {\n return this.scale === MIN_SCALE;\n },\n disableIncrease() {\n return this.scale >= this.maxScale;\n },\n stepSize() {\n return (this.maxScale - MIN_SCALE) / ZOOM_LEVELS;\n },\n scaleLabel() {\n return sprintf(__(`%{scaleValue}%%`), { scaleValue: Math.ceil(this.scale * 100) });\n },\n },\n methods: {\n setScale(scale) {\n if (scale < MIN_SCALE) {\n return;\n }\n this.scale = Math.round(scale * 100) / 100;\n this.$emit('scale', this.scale);\n },\n incrementScale() {\n this.setScale(Math.min(this.scale + this.stepSize, this.maxScale));\n },\n decrementScale() {\n this.setScale(this.scale - this.stepSize);\n },\n },\n};\n</script>\n\n<template>\n <gl-button-group class=\"gl-z-1\">\n <gl-button\n icon=\"dash\"\n :disabled=\"disableDecrease\"\n :aria-label=\"__('Decrease')\"\n @click=\"decrementScale\"\n />\n <span data-testid=\"scale-value\" class=\"gl-border-t gl-border-b gl-bg-white gl-p-3 gl-text-sm\">{{\n scaleLabel\n }}</span>\n <gl-button\n icon=\"plus\"\n :disabled=\"disableIncrease\"\n :aria-label=\"__('Increase')\"\n @click=\"incrementScale\"\n />\n </gl-button-group>\n</template>\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_scaler.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_scaler.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./design_scaler.vue?vue&type=template&id=24ad165c\"\nimport script from \"./design_scaler.vue?vue&type=script&lang=js\"\nexport * from \"./design_scaler.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button-group',{staticClass:\"gl-z-1\"},[_c('gl-button',{attrs:{\"icon\":\"dash\",\"disabled\":_vm.disableDecrease,\"aria-label\":_vm.__('Decrease')},on:{\"click\":_vm.decrementScale}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-border-t gl-border-b gl-bg-white gl-p-3 gl-text-sm\",attrs:{\"data-testid\":\"scale-value\"}},[_vm._v(_vm._s(_vm.scaleLabel))]),_vm._v(\" \"),_c('gl-button',{attrs:{\"icon\":\"plus\",\"disabled\":_vm.disableIncrease,\"aria-label\":_vm.__('Increase')},on:{\"click\":_vm.incrementScale}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlAlert } from '@gitlab/ui';\nimport { isNull } from 'lodash';\nimport { createAlert } from '~/alert';\nimport { Mousetrap } from '~/lib/mousetrap';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { keysFor, ISSUE_CLOSE_DESIGN } from '~/behaviors/shortcuts/keybindings';\nimport { updateGlobalTodoCount } from '~/sidebar/utils';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { ROUTES } from '../../../constants';\nimport getDesignQuery from '../graphql/design_details.query.graphql';\nimport getWorkItemDesignListQuery from '../graphql/design_collection.query.graphql';\nimport createImageDiffNoteMutation from '../graphql/create_image_diff_note.mutation.graphql';\nimport repositionImageDiffNoteMutation from '../graphql/reposition_image_diff_note.mutation.graphql';\nimport archiveDesignMutation from '../graphql/archive_design.mutation.graphql';\nimport {\n extractDiscussions,\n getPageLayoutElement,\n findVersionId,\n repositionImageDiffNoteOptimisticResponse,\n} from '../utils';\nimport {\n updateStoreAfterDesignsArchive,\n updateWorkItemDesignCurrentTodosWidget,\n updateStoreAfterAddImageDiffNote,\n updateStoreAfterRepositionImageDiffNote,\n} from '../cache_updates';\nimport {\n DESIGN_DETAIL_LAYOUT_CLASSLIST,\n DESIGN_NOT_FOUND_ERROR,\n DESIGN_SINGLE_ARCHIVE_ERROR,\n UPDATE_IMAGE_DIFF_NOTE_ERROR,\n DELETE_NOTE_ERROR,\n DESIGN_VERSION_NOT_EXIST_ERROR,\n} from '../constants';\nimport DesignReplyForm from '../design_notes/design_reply_form.vue';\nimport DesignPresentation from './design_presentation.vue';\nimport DesignToolbar from './design_toolbar.vue';\nimport DesignSidebar from './design_sidebar.vue';\nimport DesignScaler from './design_scaler.vue';\n\nconst DEFAULT_SCALE = 1;\nconst DEFAULT_MAX_SCALE = 2;\n\nexport default {\n components: {\n DesignPresentation,\n DesignSidebar,\n DesignToolbar,\n DesignScaler,\n DesignReplyForm,\n GlAlert,\n },\n inject: ['fullPath'],\n beforeRouteUpdate(to, from, next) {\n // reset scale when the active design changes\n this.scale = DEFAULT_SCALE;\n next();\n },\n beforeRouteEnter(to, from, next) {\n const pageEl = getPageLayoutElement();\n if (pageEl) {\n pageEl.classList.add(...DESIGN_DETAIL_LAYOUT_CLASSLIST);\n }\n\n next();\n },\n beforeRouteLeave(to, from, next) {\n const pageEl = getPageLayoutElement();\n if (pageEl) {\n pageEl.classList.remove(...DESIGN_DETAIL_LAYOUT_CLASSLIST);\n }\n\n next();\n },\n props: {\n iid: {\n type: String,\n required: true,\n },\n allDesigns: {\n type: Array,\n required: false,\n default: () => [],\n },\n allVersions: {\n type: Array,\n required: false,\n default: () => [],\n },\n },\n data() {\n return {\n design: {},\n annotationCoordinates: null,\n errorMessage: '',\n scale: DEFAULT_SCALE,\n resolvedDiscussionsExpanded: false,\n prevCurrentUserTodos: null,\n maxScale: DEFAULT_MAX_SCALE,\n workItemId: '',\n workItemTitle: '',\n isSidebarOpen: true,\n };\n },\n apollo: {\n design: {\n query: getDesignQuery,\n variables() {\n return this.designVariables;\n },\n update(data) {\n const { event, image, imageV432x230 } = data.designManagement.designAtVersion;\n return {\n ...data.designManagement.designAtVersion.design,\n event,\n image,\n imageV432x230,\n };\n },\n result({ data }) {\n if (!data?.designManagement?.designAtVersion?.design) {\n this.onQueryError(DESIGN_NOT_FOUND_ERROR);\n } else if (this.$route.query.version && !this.hasValidVersion) {\n this.onQueryError(DESIGN_VERSION_NOT_EXIST_ERROR);\n }\n },\n error() {\n this.onQueryError(DESIGN_NOT_FOUND_ERROR);\n },\n },\n },\n computed: {\n designId() {\n const design = this.allDesigns.find((d) => d.filename === this.$route.params.id);\n return design?.id;\n },\n isLoading() {\n return this.$apollo.queries.design.loading;\n },\n markdownPreviewPath() {\n return `/${this.fullPath}/-/preview_markdown?target_type=Issue`;\n },\n designVariables() {\n const versionId = getIdFromGraphQLId(\n this.hasValidVersion ? this.designsVersion : this.latestVersionId,\n );\n const designId = getIdFromGraphQLId(this.designId);\n return {\n id: `gid://gitlab/DesignManagement::DesignAtVersion/${designId}.${versionId}`,\n };\n },\n mutationVariables() {\n const { x, y, width, height } = this.annotationCoordinates;\n return {\n noteableId: this.design.id,\n position: {\n headSha: this.design.diffRefs.headSha,\n baseSha: this.design.diffRefs.baseSha,\n startSha: this.design.diffRefs.startSha,\n x,\n y,\n width,\n height,\n paths: {\n newPath: this.design.fullPath,\n },\n },\n };\n },\n hasValidVersion() {\n return this.$route.query.version;\n },\n designsVersion() {\n return this.hasValidVersion\n ? `gid://gitlab/DesignManagement::Version/${this.$route.query.version}`\n : null;\n },\n discussions() {\n if (!this.design.discussions) {\n return [];\n }\n return extractDiscussions(this.design.discussions);\n },\n resolvedDiscussions() {\n return this.discussions.filter((discussion) => discussion.resolved);\n },\n currentUserDesignTodos() {\n return this.design?.currentUserTodos?.nodes;\n },\n designCollectionQueryBody() {\n return {\n query: getWorkItemDesignListQuery,\n variables: { id: this.workItemId, atVersion: null },\n };\n },\n latestVersionId() {\n const latestVersion = this.allVersions[0];\n return latestVersion && findVersionId(latestVersion.id);\n },\n isLatestVersion() {\n if (this.allVersions.length > 0) {\n return (\n !this.hasValidVersion ||\n !this.latestVersionId ||\n this.hasValidVersion === this.latestVersionId\n );\n }\n return true;\n },\n isAnnotating() {\n return Boolean(this.annotationCoordinates);\n },\n },\n watch: {\n resolvedDiscussions(val) {\n if (!val.length) {\n this.resolvedDiscussionsExpanded = false;\n }\n },\n },\n mounted() {\n Mousetrap.bind(keysFor(ISSUE_CLOSE_DESIGN), this.closeDesign);\n },\n methods: {\n addImageDiffNoteToStore({ store, data }) {\n const { createImageDiffNote } = data;\n\n updateStoreAfterAddImageDiffNote(\n store,\n createImageDiffNote,\n getDesignQuery,\n this.designVariables,\n );\n this.closeCommentForm(data);\n },\n async onMoveNote({ noteId, discussionId, position }) {\n const currentDiscussion = this.discussions.find((el) => el.id === discussionId);\n const note = currentDiscussion?.notes.find(\n ({ discussion }) => discussion?.id === discussionId,\n );\n\n try {\n await this.$apollo.mutate({\n mutation: repositionImageDiffNoteMutation,\n variables: {\n input: {\n id: noteId,\n position,\n },\n },\n optimisticResponse:\n note &&\n repositionImageDiffNoteOptimisticResponse(note, {\n position,\n }),\n update: this.afterDesignMove,\n });\n } catch (error) {\n Sentry.captureException(error);\n this.onQueryError(UPDATE_IMAGE_DIFF_NOTE_ERROR);\n this.errorMessage = UPDATE_IMAGE_DIFF_NOTE_ERROR;\n }\n },\n afterDesignMove(store, { data: { repositionImageDiffNote } }) {\n return updateStoreAfterRepositionImageDiffNote(\n store,\n repositionImageDiffNote,\n getDesignQuery,\n this.designVariables,\n );\n },\n onError(message, e) {\n this.errorMessage = message;\n if (e) throw e;\n },\n onQueryError(message) {\n // because we redirect user to work item page,\n // we want to create these alerts on the work item page\n createAlert({ message });\n this.$router.push({ name: ROUTES.workItem });\n },\n onDeleteNoteError(e) {\n this.onError(DELETE_NOTE_ERROR, e);\n },\n onResolveDiscussionError(e) {\n this.onError(UPDATE_IMAGE_DIFF_NOTE_ERROR, e);\n },\n closeDesign() {\n this.$router.push({\n name: ROUTES.workItem,\n query: this.$route.query,\n });\n },\n setMaxScale(event) {\n this.maxScale = 1 / event;\n },\n toggleSidebar() {\n this.isSidebarOpen = !this.isSidebarOpen;\n },\n toggleResolvedComments(newValue) {\n this.resolvedDiscussionsExpanded = newValue;\n },\n updateWorkItemDesignCurrentTodosWidgetCache({ cache, todos }) {\n updateWorkItemDesignCurrentTodosWidget({\n store: cache,\n todos,\n query: {\n query: getDesignQuery,\n variables: this.designVariables,\n },\n });\n },\n async onArchiveDesign() {\n try {\n await this.$apollo.mutate({\n mutation: archiveDesignMutation,\n variables: {\n filenames: [this.design.filename],\n projectPath: this.fullPath,\n iid: this.iid,\n },\n update: this.afterArchiveDesign,\n });\n } catch (error) {\n this.onQueryError(DESIGN_SINGLE_ARCHIVE_ERROR);\n this.errorMessage = DESIGN_SINGLE_ARCHIVE_ERROR;\n } finally {\n this.closeDesign();\n }\n },\n afterArchiveDesign(store, { data: { designManagementDelete } }) {\n updateStoreAfterDesignsArchive(\n store,\n designManagementDelete,\n this.designCollectionQueryBody,\n [this.design.filename],\n );\n },\n openCommentForm(annotationCoordinates) {\n this.annotationCoordinates = annotationCoordinates;\n },\n closeCommentForm(data) {\n this.annotationCoordinates = null;\n\n if (data?.data && !isNull(this.prevCurrentUserTodos)) {\n updateGlobalTodoCount(this.currentUserTodos - this.prevCurrentUserTodos);\n this.prevCurrentUserTodos = this.currentUserTodos;\n }\n },\n },\n createImageDiffNoteMutation,\n};\n</script>\n\n<template>\n <div\n class=\"design-detail js-design-detail fixed-top gl-flex gl-w-full gl-flex-col gl-justify-center gl-bg-gray-10 lg:gl-flex-row\"\n >\n <div class=\"gl-relative gl-flex gl-grow gl-flex-col gl-overflow-hidden\">\n <design-toolbar\n :work-item-title=\"workItemTitle\"\n :design=\"design\"\n :design-filename=\"$route.params.id\"\n :is-loading=\"isLoading\"\n :is-sidebar-open=\"isSidebarOpen\"\n :is-latest-version=\"isLatestVersion\"\n :all-designs=\"allDesigns\"\n :current-user-design-todos=\"currentUserDesignTodos\"\n @toggle-sidebar=\"toggleSidebar\"\n @archive-design=\"onArchiveDesign\"\n @todosUpdated=\"updateWorkItemDesignCurrentTodosWidgetCache\"\n />\n <div class=\"gl-relative gl-flex gl-grow gl-flex-col gl-overflow-hidden lg:gl-flex-row\">\n <div class=\"gl-relative gl-flex gl-grow-2 gl-flex-col gl-overflow-hidden\">\n <div v-if=\"errorMessage\" class=\"gl-p-5\">\n <gl-alert variant=\"danger\" @dismiss=\"errorMessage = null\">\n {{ errorMessage }}\n </gl-alert>\n </div>\n <design-presentation\n :image=\"design.image\"\n :image-name=\"design.filename\"\n :discussions=\"discussions\"\n :is-annotating=\"isAnnotating\"\n :scale=\"scale\"\n :resolved-discussions-expanded=\"resolvedDiscussionsExpanded\"\n :is-sidebar-open=\"isSidebarOpen\"\n :is-loading=\"isLoading\"\n :disable-commenting=\"!isSidebarOpen\"\n @openCommentForm=\"openCommentForm\"\n @moveNote=\"onMoveNote\"\n @setMaxScale=\"setMaxScale\"\n />\n </div>\n <div\n class=\"design-scaler-wrapper gl-absolute gl-mb-6 gl-flex gl-items-center gl-justify-center\"\n >\n <design-scaler :max-scale=\"maxScale\" @scale=\"scale = $event\" />\n </div>\n <design-sidebar\n :design=\"design\"\n :design-variables=\"designVariables\"\n :is-loading=\"isLoading\"\n :is-open=\"isSidebarOpen\"\n :markdown-preview-path=\"markdownPreviewPath\"\n :resolved-discussions-expanded=\"resolvedDiscussionsExpanded\"\n :is-comment-form-present=\"isAnnotating\"\n @deleteNoteError=\"onDeleteNoteError\"\n @resolveDiscussionError=\"onResolveDiscussionError\"\n @toggleResolvedComments=\"toggleResolvedComments\"\n >\n <template #reply-form>\n <design-reply-form\n v-if=\"isAnnotating\"\n ref=\"newDiscussionForm\"\n :design-note-mutation=\"$options.createImageDiffNoteMutation\"\n :mutation-variables=\"mutationVariables\"\n :markdown-preview-path=\"markdownPreviewPath\"\n :noteable-id=\"design.id\"\n :iid=\"iid\"\n @note-submit-complete=\"addImageDiffNoteToStore\"\n @cancel-form=\"closeCommentForm\"\n />\n </template>\n </design-sidebar>\n </div>\n </div>\n </div>\n</template>\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_details.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_details.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./design_details.vue?vue&type=template&id=18ed4e31\"\nimport script from \"./design_details.vue?vue&type=script&lang=js\"\nexport * from \"./design_details.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { invert } from 'lodash';\nimport { s__, __, sprintf } from '~/locale';\n\nexport const defaultEpicSort = 'TITLE_ASC';\n\nexport const epicIidPattern = /^&(?<iid>\\d+)$/;\n\nexport const dateTypes = {\n start: 'startDate',\n due: 'dueDate',\n};\n\nexport const dateFields = {\n [dateTypes.start]: {\n isDateFixed: 'startDateIsFixed',\n dateFixed: 'startDateFixed',\n dateFromMilestones: 'startDateFromMilestones',\n },\n [dateTypes.due]: {\n isDateFixed: 'dueDateIsFixed',\n dateFixed: 'dueDateFixed',\n dateFromMilestones: 'dueDateFromMilestones',\n },\n};\n\nexport const Tracking = {\n editEvent: 'click_edit_button',\n rightSidebarLabel: 'right_sidebar',\n};\n\nexport const noAttributeId = null;\n\nexport const IssuableAttributeType = {\n Milestone: 'milestone',\n};\n\nexport const LocalizedIssuableAttributeType = {\n Milestone: s__('Issuable|milestone'),\n};\n\nexport const IssuableAttributeTypeKeyMap = invert(IssuableAttributeType);\n\nexport const IssuableAttributeState = {\n [IssuableAttributeType.Milestone]: 'active',\n};\n\nexport const todoMutationTypes = {\n create: 'create',\n markDone: 'mark-done',\n};\n\nexport function dropdowni18nText(issuableAttribute, issuableType) {\n return {\n noAttribute: sprintf(s__('DropdownWidget|No %{issuableAttribute}'), {\n issuableAttribute,\n }),\n assignAttribute: sprintf(s__('DropdownWidget|Select %{issuableAttribute}'), {\n issuableAttribute,\n }),\n noAttributesFound: sprintf(s__('DropdownWidget|No %{issuableAttribute} found'), {\n issuableAttribute,\n }),\n updateError: sprintf(\n s__(\n 'DropdownWidget|Failed to set %{issuableAttribute} on this %{issuableType}. Please try again.',\n ),\n { issuableAttribute, issuableType },\n ),\n listFetchError: sprintf(\n s__(\n 'DropdownWidget|Failed to fetch the %{issuableAttribute} for this %{issuableType}. Please try again.',\n ),\n { issuableAttribute, issuableType },\n ),\n currentFetchError: sprintf(\n s__(\n 'DropdownWidget|An error occurred while fetching the assigned %{issuableAttribute} of the selected %{issuableType}.',\n ),\n { issuableAttribute, issuableType },\n ),\n noPermissionToView: sprintf(\n s__(\"DropdownWidget|You don't have permission to view this %{issuableAttribute}.\"),\n { issuableAttribute },\n ),\n editConfirmation: sprintf(\n s__(\n 'DropdownWidget|You do not have permission to view the currently assigned %{issuableAttribute} and will not be able to choose it again if you reassign it.',\n ),\n {\n issuableAttribute,\n },\n ),\n editConfirmationCta: sprintf(s__('DropdownWidget|Edit %{issuableAttribute}'), {\n issuableAttribute,\n }),\n editConfirmationCancel: s__('DropdownWidget|Cancel'),\n };\n}\n\nexport const statusDropdownOptions = [\n {\n text: __('Open'),\n value: 'reopen',\n },\n {\n text: __('Closed'),\n value: 'close',\n },\n];\n\nexport const subscriptionsDropdownOptions = [\n {\n text: __('Subscribe'),\n value: 'subscribe',\n },\n {\n text: __('Unsubscribe'),\n value: 'unsubscribe',\n },\n];\n\nexport const INCIDENT_SEVERITY = {\n CRITICAL: {\n value: 'CRITICAL',\n icon: 'critical',\n label: s__('IncidentManagement|Critical - S1'),\n },\n HIGH: {\n value: 'HIGH',\n icon: 'high',\n label: s__('IncidentManagement|High - S2'),\n },\n MEDIUM: {\n value: 'MEDIUM',\n icon: 'medium',\n label: s__('IncidentManagement|Medium - S3'),\n },\n LOW: {\n value: 'LOW',\n icon: 'low',\n label: s__('IncidentManagement|Low - S4'),\n },\n UNKNOWN: {\n value: 'UNKNOWN',\n icon: 'unknown',\n label: s__('IncidentManagement|Unknown'),\n },\n};\n\nexport const MILESTONE_STATE = {\n ACTIVE: 'active',\n CLOSED: 'closed',\n};\n\nexport const SEVERITY_I18N = {\n UPDATE_SEVERITY_ERROR: s__('SeverityWidget|There was an error while updating severity.'),\n TRY_AGAIN: __('Please try again'),\n EDIT: __('Edit'),\n SEVERITY: s__('SeverityWidget|Severity'),\n SEVERITY_VALUE: s__('SeverityWidget|Severity: %{severity}'),\n};\n\nexport const STATUS_TRIGGERED = 'TRIGGERED';\nexport const STATUS_ACKNOWLEDGED = 'ACKNOWLEDGED';\nexport const STATUS_RESOLVED = 'RESOLVED';\n\nexport const STATUS_TRIGGERED_LABEL = s__('IncidentManagement|Triggered');\nexport const STATUS_ACKNOWLEDGED_LABEL = s__('IncidentManagement|Acknowledged');\nexport const STATUS_RESOLVED_LABEL = s__('IncidentManagement|Resolved');\n\nexport const STATUS_LABELS = {\n [STATUS_TRIGGERED]: STATUS_TRIGGERED_LABEL,\n [STATUS_ACKNOWLEDGED]: STATUS_ACKNOWLEDGED_LABEL,\n [STATUS_RESOLVED]: STATUS_RESOLVED_LABEL,\n};\n\nexport const INCIDENTS_I18N = {\n fetchError: s__(\n 'IncidentManagement|An error occurred while fetching the incident status. Please reload the page.',\n ),\n title: s__('IncidentManagement|Status'),\n updateError: s__(\n 'IncidentManagement|An error occurred while updating the incident status. Please reload the page and try again.',\n ),\n};\n","var baseFlatten = require('./_baseFlatten');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n}\n\nmodule.exports = flattenDeep;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"VersionListItem\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignVersion\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sha\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"author\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":114}};\n doc.loc.source = {\"body\":\"fragment VersionListItem on DesignVersion {\\n id\\n sha\\n createdAt\\n author {\\n id\\n name\\n avatarUrl\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"VersionListItem\"] = oneQuery(doc, \"VersionListItem\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableLabelsUpdatedEE\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableLabelsUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Epic\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":495}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/label.fragment.graphql\\\"\\n\\nsubscription issuableLabelsUpdatedEE($issuableId: IssuableID!) {\\n issuableLabelsUpdated(issuableId: $issuableId) {\\n ... on Issue {\\n id\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n }\\n ... on MergeRequest {\\n id\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n }\\n ... on Epic {\\n id\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/label.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issuableLabelsUpdatedEE\"] = oneQuery(doc, \"issuableLabelsUpdatedEE\");\n \n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nmodule.exports = difference;\n","import GlBaseAnimatedIcon from './base_animated_icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlAnimatedNotificationIcon',\n extends: GlBaseAnimatedIcon\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:_vm.iconStateClass,attrs:{\"aria-label\":_vm.ariaLabel,\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{staticClass:\"gl-animated-notifications-bottom-part\",attrs:{\"d\":\"M3.72 11.25L2.35519 12.837C2.21579 12.9991 2.33095 13.25 2.54473 13.25H13.4428C13.6586 13.25 13.773 12.995 13.6296 12.8338L12.22 11.25V7C12.22 6.06556 11.9184 5.20155 11.4073 4.5\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-notifications-top-part\",attrs:{\"d\":\"M3.72 11.75V7C3.72 4.65279 5.62279 2.75 7.97 2.75C9.38277 2.75 10.6345 3.43933 11.4073 4.5\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-notifications-line\",attrs:{\"d\":\"M1.75 14.25L14.2461 1.75391\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M6 13H10V13C10 14.1046 9.10457 15 8 15V15C6.89543 15 6 14.1046 6 13V13Z\",\"fill\":\"currentColor\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M7 2C7 1.44772 7.44772 1 8 1V1C8.55228 1 9 1.44772 9 2V2C9 2.55228 8.55228 3 8 3V3C7.44772 3 7 2.55228 7 2V2Z\",\"fill\":\"currentColor\"}})])};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"isExpandedHierarchyTreeChild\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isExpandedHierarchyTreeChild\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isExpanded\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":133}};\n doc.loc.source = {\"body\":\"query isExpandedHierarchyTreeChild($id: WorkItemID!) {\\n isExpandedHierarchyTreeChild(id: $id) @client {\\n id\\n isExpanded\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"isExpandedHierarchyTreeChild\"] = oneQuery(doc, \"isExpandedHierarchyTreeChild\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemTreeQuery\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"defaultValue\":{\"kind\":\"IntValue\",\"value\":\"100\"},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"endCursor\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"namespace\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullName\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemHierarchy\"},\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":235}};\n doc.loc.source = {\"body\":\"#import \\\"./work_item_hierarchy.fragment.graphql\\\"\\n\\nquery workItemTreeQuery($id: WorkItemID!, $pageSize: Int = 100, $endCursor: String) {\\n workItem(id: $id) {\\n namespace {\\n id\\n fullName\\n }\\n ...WorkItemHierarchy\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./work_item_hierarchy.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"workItemTreeQuery\"] = oneQuery(doc, \"workItemTreeQuery\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"epicConfidential\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":172}};\n doc.loc.source = {\"body\":\"query epicConfidential($fullPath: ID!, $iid: ID) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n issuable: epic(iid: $iid) {\\n id\\n confidential\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"epicConfidential\"] = oneQuery(doc, \"epicConfidential\");\n \n","import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';\nimport { __, s__ } from '~/locale';\n\nexport const TYPE_ACTIVITY = 'activity';\nexport const TYPE_COMMENT = 'comment';\nexport const TYPE_DESIGN = 'design';\nexport const TYPE_SNIPPET = 'snippet';\n\nexport const BULK_IMPORT_STATIC_ITEMS = {\n badges: __('Badge'),\n boards: s__('Boards|Board'),\n epics: __('Epic'),\n issues: __('Issue'),\n labels: __('Label'),\n iterations: __('Iteration'),\n iterations_cadences: s__('Iterations|Iteration cadence'),\n members: __('Member'),\n merge_requests: __('Merge request'),\n milestones: __('Milestone'),\n namespace_settings: s__('GroupSettings|Namespace setting'),\n project: __('Project'),\n self: __('Group'),\n auto_devops: __('Auto DevOps'),\n ci_pipelines: __('CI pipeline'),\n container_expiration_policy: __('Container expiration policy'),\n design: __('Design'),\n project_feature: __('Project feature'),\n protected_branches: __('Protected Branch'),\n push_rule: __('Push rule'),\n repository: __('Repository'),\n service_desk_setting: __('Service Desk'),\n vulnerabilities: __('Vulnerabilities'),\n commit_notes: __('Commit notes'),\n};\n\nconst STATISTIC_ITEMS = {\n diff_note: __('Diff notes'),\n issue: __('Issues'),\n issue_attachment: s__('GithubImporter|Issue attachments'),\n issue_event: __('Issue events'),\n label: __('Labels'),\n lfs_object: __('LFS objects'),\n merge_request_attachment: s__('GithubImporter|PR attachments'),\n milestone: __('Milestones'),\n note: __('Notes'),\n note_attachment: s__('GithubImporter|Note attachments'),\n protected_branch: __('Protected branches'),\n collaborator: s__('GithubImporter|Collaborators'),\n pull_request: s__('GithubImporter|Pull requests'),\n pull_request_merged_by: s__('GithubImporter|PR mergers'),\n pull_request_review: s__('GithubImporter|PR reviews'),\n pull_request_review_request: s__('GithubImporter|PR reviewers'),\n release: __('Releases'),\n release_attachment: s__('GithubImporter|Release attachments'),\n};\n\n// support both camel case and snake case versions\nObject.assign(STATISTIC_ITEMS, convertObjectPropsToCamelCase(STATISTIC_ITEMS));\n\nexport { STATISTIC_ITEMS };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',[_c('gl-modal',{ref:\"modal\",attrs:{\"title\":_vm.__('Select a comment template'),\"scrollable\":\"\",\"modal-id\":_vm.modalId,\"modal-class\":\"comment-templates-modal\"},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('gl-disclosure-dropdown',{attrs:{\"items\":_vm.newCommentTemplatePaths,\"toggle-text\":_vm.__('Manage comment templates'),\"placement\":\"bottom-end\",\"fluid-width\":\"\",\"data-testid\":\"manage-dropdown\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',{staticClass:\"gl-min-h-8 gl-border-b-1 gl-border-b-dropdown !gl-p-4 gl-text-sm gl-font-bold gl-border-b-solid\"},[_vm._v(\"\\n \"+_vm._s(_vm.__('Manage'))+\"\\n \")])]},proxy:true}])})]},proxy:true}]),model:{value:(_vm.shouldFetchCommentTemplates),callback:function ($$v) {_vm.shouldFetchCommentTemplates=$$v},expression:\"shouldFetchCommentTemplates\"}},[_c('gl-search-box-by-type',{ref:\"searchInput\",attrs:{\"placeholder\":_vm.__('Search comment templates')},on:{\"keydown\":_vm.onKeydown},model:{value:(_vm.commentTemplateSearch),callback:function ($$v) {_vm.commentTemplateSearch=$$v},expression:\"commentTemplateSearch\"}}),_vm._v(\" \"),(!_vm.filteredSavedReplies.length)?_c('section',{staticClass:\"gl-mt-3\"},[_vm._v(\"\\n \"+_vm._s(_vm.__('No comment templates found.'))+\"\\n \")]):_c('ul',{ref:\"resultsList\",staticClass:\"comment-templates-options gl-m-0 gl-list-none gl-p-0\",attrs:{\"data-testid\":\"comment-templates-list\"},on:{\"keydown\":_vm.onKeydown}},_vm._l((_vm.filteredSavedReplies),function(commentTemplateGroup,index){return _c('gl-disclosure-dropdown-group',{key:commentTemplateGroup.name,class:{ '!gl-mt-0 !gl-border-t-0 gl-pt-0': index === 0 },attrs:{\"group\":commentTemplateGroup,\"bordered\":\"\"},on:{\"action\":_vm.onSelect},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('strong',{staticClass:\"gl-block gl-w-full\"},[_vm._v(_vm._s(item.text))]),_vm._v(\" \"),_c('gl-truncate',{staticClass:\"gl-mt-2 gl-text-subtle\",attrs:{\"text\":item.content,\"position\":\"end\"}})]}}],null,true)})}),1)],1),_vm._v(\" \"),_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"js-comment-template-toggle\",attrs:{\"title\":_vm.__('Insert comment template'),\"aria-label\":_vm.__('Insert comment template'),\"category\":\"tertiary\",\"size\":\"small\",\"icon\":\"comment-lines\",\"data-testid\":\"comment-templates-dropdown-toggle\"},on:{\"click\":_vm.toggleModal}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { __ } from '~/locale';\nimport {\n COMMENT_TEMPLATES_KEYS as COMMENT_TEMPLATES_KEYS_FOSS,\n COMMENT_TEMPLATES_TITLES as COMMENT_TEMPLATES_TITLES_FOSS,\n} from '~/vue_shared/components/markdown/constants';\n\nexport {\n TRACKING_SAVED_REPLIES_USE,\n TRACKING_SAVED_REPLIES_USE_IN_MR,\n TRACKING_SAVED_REPLIES_USE_IN_OTHER,\n} from '~/vue_shared/components/markdown/constants';\n\nexport const COMMENT_TEMPLATES_KEYS = [...COMMENT_TEMPLATES_KEYS_FOSS, 'project', 'group'];\nexport const COMMENT_TEMPLATES_TITLES = {\n ...COMMENT_TEMPLATES_TITLES_FOSS,\n project: __('Project'),\n group: __('Group'),\n};\n","<script>\nimport {\n GlTooltipDirective,\n GlButton,\n GlModal,\n GlSearchBoxByType,\n GlTruncate,\n GlDisclosureDropdown,\n GlDisclosureDropdownGroup,\n} from '@gitlab/ui';\nimport fuzzaldrinPlus from 'fuzzaldrin-plus';\nimport { uniqueId } from 'lodash';\nimport modalKeyboardNavigationMixin from '~/vue_shared/mixins/modal_keyboard_navigation_mixin';\nimport { getDerivedMergeRequestInformation } from '~/diffs/utils/merge_request';\nimport { InternalEvents } from '~/tracking';\nimport savedRepliesQuery from 'ee_else_ce/vue_shared/components/markdown/saved_replies.query.graphql';\nimport {\n TRACKING_SAVED_REPLIES_USE,\n TRACKING_SAVED_REPLIES_USE_IN_MR,\n TRACKING_SAVED_REPLIES_USE_IN_OTHER,\n COMMENT_TEMPLATES_KEYS,\n COMMENT_TEMPLATES_TITLES,\n} from 'ee_else_ce/vue_shared/components/markdown/constants';\n\nexport default {\n apollo: {\n savedReplies: {\n query: savedRepliesQuery,\n manual: true,\n result({ data, loading }) {\n if (!loading) {\n this.savedReplies = data;\n }\n },\n variables() {\n const groupPath = document.body.dataset.groupFullPath;\n const projectPath = document.body.dataset.projectFullPath;\n\n return {\n groupPath,\n hideGroup: !groupPath,\n projectPath,\n hideProject: !projectPath,\n };\n },\n skip() {\n return !this.shouldFetchCommentTemplates;\n },\n },\n },\n components: {\n GlButton,\n GlModal,\n GlSearchBoxByType,\n GlTruncate,\n GlDisclosureDropdown,\n GlDisclosureDropdownGroup,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [InternalEvents.mixin(), modalKeyboardNavigationMixin],\n props: {\n newCommentTemplatePaths: {\n type: Array,\n required: true,\n },\n },\n data() {\n return {\n shouldFetchCommentTemplates: false,\n savedReplies: {},\n commentTemplateSearch: '',\n loadingSavedReplies: false,\n };\n },\n computed: {\n allSavedReplies() {\n return COMMENT_TEMPLATES_KEYS.map((key) => ({\n name: COMMENT_TEMPLATES_TITLES[key],\n items: (this.savedReplies[key]?.savedReplies?.nodes || []).map((r) => ({\n value: r.id,\n text: r.name,\n content: r.content,\n })),\n }));\n },\n filteredSavedReplies() {\n let savedReplies = this.allSavedReplies;\n\n if (this.commentTemplateSearch) {\n savedReplies = savedReplies\n .map((group) => ({\n ...group,\n items: fuzzaldrinPlus.filter(group.items, this.commentTemplateSearch, {\n key: ['text'],\n }),\n }))\n .filter(({ items }) => items.length);\n }\n\n return savedReplies.filter(({ items }) => items.length);\n },\n modalId() {\n return uniqueId('insert-comment-template-modal-');\n },\n },\n methods: {\n onSelect(savedReply) {\n const isInMr = Boolean(getDerivedMergeRequestInformation({ endpoint: window.location }).id);\n\n this.$emit('select', savedReply.content);\n this.trackEvent(TRACKING_SAVED_REPLIES_USE);\n this.trackEvent(\n isInMr ? TRACKING_SAVED_REPLIES_USE_IN_MR : TRACKING_SAVED_REPLIES_USE_IN_OTHER,\n );\n this.shouldFetchCommentTemplates = false;\n },\n toggleModal() {\n this.shouldFetchCommentTemplates = !this.shouldFetchCommentTemplates;\n },\n },\n};\n</script>\n\n<template>\n <span>\n <gl-modal\n ref=\"modal\"\n v-model=\"shouldFetchCommentTemplates\"\n :title=\"__('Select a comment template')\"\n scrollable\n :modal-id=\"modalId\"\n modal-class=\"comment-templates-modal\"\n >\n <gl-search-box-by-type\n ref=\"searchInput\"\n v-model=\"commentTemplateSearch\"\n :placeholder=\"__('Search comment templates')\"\n @keydown=\"onKeydown\"\n />\n <section v-if=\"!filteredSavedReplies.length\" class=\"gl-mt-3\">\n {{ __('No comment templates found.') }}\n </section>\n <ul\n v-else\n ref=\"resultsList\"\n class=\"comment-templates-options gl-m-0 gl-list-none gl-p-0\"\n data-testid=\"comment-templates-list\"\n @keydown=\"onKeydown\"\n >\n <gl-disclosure-dropdown-group\n v-for=\"(commentTemplateGroup, index) in filteredSavedReplies\"\n :key=\"commentTemplateGroup.name\"\n :class=\"{ '!gl-mt-0 !gl-border-t-0 gl-pt-0': index === 0 }\"\n :group=\"commentTemplateGroup\"\n bordered\n @action=\"onSelect\"\n >\n <template #list-item=\"{ item }\">\n <strong class=\"gl-block gl-w-full\">{{ item.text }}</strong>\n <gl-truncate class=\"gl-mt-2 gl-text-subtle\" :text=\"item.content\" position=\"end\" />\n </template>\n </gl-disclosure-dropdown-group>\n </ul>\n <template #modal-footer>\n <gl-disclosure-dropdown\n :items=\"newCommentTemplatePaths\"\n :toggle-text=\"__('Manage comment templates')\"\n placement=\"bottom-end\"\n fluid-width\n data-testid=\"manage-dropdown\"\n >\n <template #header>\n <div\n class=\"gl-min-h-8 gl-border-b-1 gl-border-b-dropdown !gl-p-4 gl-text-sm gl-font-bold gl-border-b-solid\"\n >\n {{ __('Manage') }}\n </div>\n </template>\n </gl-disclosure-dropdown>\n </template>\n </gl-modal>\n <gl-button\n v-gl-tooltip\n :title=\"__('Insert comment template')\"\n :aria-label=\"__('Insert comment template')\"\n category=\"tertiary\"\n size=\"small\"\n icon=\"comment-lines\"\n class=\"js-comment-template-toggle\"\n data-testid=\"comment-templates-dropdown-toggle\"\n @click=\"toggleModal\"\n />\n </span>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comment_templates_modal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comment_templates_modal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./comment_templates_modal.vue?vue&type=template&id=38a839f1\"\nimport script from \"./comment_templates_modal.vue?vue&type=script&lang=js\"\nexport * from \"./comment_templates_modal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateEpicStartDate\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateEpicInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetDate\"},\"name\":{\"kind\":\"Name\",\"value\":\"updateEpic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDateIsFixed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDateFixed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDateFromMilestones\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":247}};\n doc.loc.source = {\"body\":\"mutation updateEpicStartDate($input: UpdateEpicInput!) {\\n issuableSetDate: updateEpic(input: $input) {\\n issuable: epic {\\n id\\n startDateIsFixed\\n startDateFixed\\n startDate\\n startDateFromMilestones\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateEpicStartDate\"] = oneQuery(doc, \"updateEpicStartDate\");\n \n","import GlBaseAnimatedIcon from './base_animated_icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlAnimatedTodoIcon',\n extends: GlBaseAnimatedIcon\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:_vm.iconStateClass,attrs:{\"aria-label\":_vm.ariaLabel,\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{staticClass:\"gl-animated-todo-box\",attrs:{\"d\":\"M14.25 6.75L14.25 13C14.25 13.6904 13.6904 14.25 13 14.25L3 14.25C2.30964 14.25 1.75 13.6904 1.75 13L1.75 3C1.75 2.30964 2.30964 1.75 3 1.75L13.25 1.75\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-todo-plus-line\",attrs:{\"d\":\"M10.75 3L15.25 3\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-todo-plus-line\",attrs:{\"d\":\"M13 5.25L13 0.75\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-todo-check\",attrs:{\"d\":\"M6.75 7.76299L9.15312 10.2469L15.25 4.15\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})])};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateIssueLocked\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueSetLockedInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issueSetLocked\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"discussionLocked\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":160}};\n doc.loc.source = {\"body\":\"mutation updateIssueLocked($input: IssueSetLockedInput!) {\\n issueSetLocked(input: $input) {\\n issue {\\n id\\n discussionLocked\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateIssueLocked\"] = oneQuery(doc, \"updateIssueLocked\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.displayAsText)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:({ disabled: _vm.disableTooltip }),expression:\"{ disabled: disableTooltip }\"}],staticClass:\"gl-inline-flex gl-items-center\",class:[_vm.statusColor, _vm.textSizeClass, !_vm.disableTooltip ? 'gl-cursor-help' : undefined],attrs:{\"data-testid\":\"status-text\",\"title\":_vm.__('Health status')}},[_c('gl-icon',{staticClass:\"gl-mr-2\",attrs:{\"size\":16,\"name\":_vm.statusIcon}}),_vm._v(_vm._s(_vm.statusText))],1):_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-font-bold\",attrs:{\"title\":_vm.__('Health status'),\"variant\":_vm.statusClass}},[_vm._v(\"\\n \"+_vm._s(_vm.statusText)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issue_health_status.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issue_health_status.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport {\n healthStatusTextMap,\n healthStatusVariantMap,\n healthStatusIconMap,\n healthStatusColorMap,\n} from 'ee/sidebar/constants';\n\nexport default {\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlBadge,\n GlIcon,\n },\n props: {\n healthStatus: {\n type: String,\n required: true,\n validator: (value) => Object.keys(healthStatusTextMap).includes(value),\n },\n displayAsText: {\n type: Boolean,\n required: false,\n },\n textSize: {\n type: String,\n required: false,\n default: 'base',\n validator: (value) => ['base', 'sm'].includes(value),\n },\n disableTooltip: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n statusText() {\n return healthStatusTextMap[this.healthStatus];\n },\n statusClass() {\n return healthStatusVariantMap[this.healthStatus];\n },\n statusIcon() {\n return healthStatusIconMap[this.healthStatus];\n },\n statusColor() {\n return healthStatusColorMap[this.healthStatus];\n },\n textSizeClass() {\n switch (this.textSize) {\n case 'sm':\n return 'gl-text-sm';\n case 'base':\n default:\n return 'gl-text-base';\n }\n },\n },\n};\n</script>\n\n<template>\n <span\n v-if=\"displayAsText\"\n v-gl-tooltip=\"{ disabled: disableTooltip }\"\n data-testid=\"status-text\"\n :title=\"__('Health status')\"\n class=\"gl-inline-flex gl-items-center\"\n :class=\"[statusColor, textSizeClass, !disableTooltip ? 'gl-cursor-help' : undefined]\"\n ><gl-icon class=\"gl-mr-2\" :size=\"16\" :name=\"statusIcon\" />{{ statusText }}</span\n >\n <gl-badge\n v-else\n v-gl-tooltip\n class=\"gl-font-bold\"\n :title=\"__('Health status')\"\n :variant=\"statusClass\"\n >\n {{ statusText }}\n </gl-badge>\n</template>\n","import { render, staticRenderFns } from \"./issue_health_status.vue?vue&type=template&id=a58aa410\"\nimport script from \"./issue_health_status.vue?vue&type=script&lang=js\"\nexport * from \"./issue_health_status.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"projectIssueEpicMutation\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"attributeId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetAttribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"issueSetEpic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"attributeId\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasParent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":345}};\n doc.loc.source = {\"body\":\"mutation projectIssueEpicMutation($fullPath: ID!, $iid: String!, $attributeId: EpicID) {\\n issuableSetAttribute: issueSetEpic(\\n input: { projectPath: $fullPath, iid: $iid, epicId: $attributeId }\\n ) {\\n errors\\n issuable: issue {\\n id\\n hasParent\\n attribute: epic {\\n title\\n id\\n state\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"projectIssueEpicMutation\"] = oneQuery(doc, \"projectIssueEpicMutation\");\n \n","import { __assign, __rest as __rest_1, __spreadArray } from \"tslib\";\nimport { __rest } from \"tslib\";\nimport { mergeDeep } from \"../common/mergeDeep.js\";\nexport function concatPagination(keyArgs) {\n if (keyArgs === void 0) { keyArgs = false; }\n return {\n keyArgs: keyArgs,\n merge: function (existing, incoming) {\n return existing ? __spreadArray(__spreadArray([], existing, true), incoming, true) : incoming;\n },\n };\n}\nexport function offsetLimitPagination(keyArgs) {\n if (keyArgs === void 0) { keyArgs = false; }\n return {\n keyArgs: keyArgs,\n merge: function (existing, incoming, _a) {\n var args = _a.args;\n var merged = existing ? existing.slice(0) : [];\n if (args) {\n var _b = args.offset, offset = _b === void 0 ? 0 : _b;\n for (var i = 0; i < incoming.length; ++i) {\n merged[offset + i] = incoming[i];\n }\n }\n else {\n merged.push.apply(merged, incoming);\n }\n return merged;\n },\n };\n}\nexport function relayStylePagination(keyArgs) {\n if (keyArgs === void 0) { keyArgs = false; }\n return {\n keyArgs: keyArgs,\n read: function (existing, _a) {\n var canRead = _a.canRead, readField = _a.readField;\n if (!existing)\n return existing;\n var edges = [];\n var firstEdgeCursor = \"\";\n var lastEdgeCursor = \"\";\n existing.edges.forEach(function (edge) {\n if (canRead(readField(\"node\", edge))) {\n edges.push(edge);\n if (edge.cursor) {\n firstEdgeCursor = firstEdgeCursor || edge.cursor || \"\";\n lastEdgeCursor = edge.cursor || lastEdgeCursor;\n }\n }\n });\n var _b = existing.pageInfo || {}, startCursor = _b.startCursor, endCursor = _b.endCursor;\n return __assign(__assign({}, getExtras(existing)), { edges: edges, pageInfo: __assign(__assign({}, existing.pageInfo), { startCursor: startCursor || firstEdgeCursor, endCursor: endCursor || lastEdgeCursor }) });\n },\n merge: function (existing, incoming, _a) {\n var args = _a.args, isReference = _a.isReference, readField = _a.readField;\n if (!existing) {\n existing = makeEmptyData();\n }\n if (!incoming) {\n return existing;\n }\n var incomingEdges = incoming.edges ? incoming.edges.map(function (edge) {\n if (isReference(edge = __assign({}, edge))) {\n edge.cursor = readField(\"cursor\", edge);\n }\n return edge;\n }) : [];\n if (incoming.pageInfo) {\n var pageInfo_1 = incoming.pageInfo;\n var startCursor = pageInfo_1.startCursor, endCursor = pageInfo_1.endCursor;\n var firstEdge = incomingEdges[0];\n var lastEdge = incomingEdges[incomingEdges.length - 1];\n if (firstEdge && startCursor) {\n firstEdge.cursor = startCursor;\n }\n if (lastEdge && endCursor) {\n lastEdge.cursor = endCursor;\n }\n var firstCursor = firstEdge && firstEdge.cursor;\n if (firstCursor && !startCursor) {\n incoming = mergeDeep(incoming, {\n pageInfo: {\n startCursor: firstCursor,\n },\n });\n }\n var lastCursor = lastEdge && lastEdge.cursor;\n if (lastCursor && !endCursor) {\n incoming = mergeDeep(incoming, {\n pageInfo: {\n endCursor: lastCursor,\n },\n });\n }\n }\n var prefix = existing.edges;\n var suffix = [];\n if (args && args.after) {\n var index = prefix.findIndex(function (edge) { return edge.cursor === args.after; });\n if (index >= 0) {\n prefix = prefix.slice(0, index + 1);\n }\n }\n else if (args && args.before) {\n var index = prefix.findIndex(function (edge) { return edge.cursor === args.before; });\n suffix = index < 0 ? prefix : prefix.slice(index);\n prefix = [];\n }\n else if (incoming.edges) {\n prefix = [];\n }\n var edges = __spreadArray(__spreadArray(__spreadArray([], prefix, true), incomingEdges, true), suffix, true);\n var pageInfo = __assign(__assign({}, incoming.pageInfo), existing.pageInfo);\n if (incoming.pageInfo) {\n var _b = incoming.pageInfo, hasPreviousPage = _b.hasPreviousPage, hasNextPage = _b.hasNextPage, startCursor = _b.startCursor, endCursor = _b.endCursor, extras = __rest_1(_b, [\"hasPreviousPage\", \"hasNextPage\", \"startCursor\", \"endCursor\"]);\n Object.assign(pageInfo, extras);\n if (!prefix.length) {\n if (void 0 !== hasPreviousPage)\n pageInfo.hasPreviousPage = hasPreviousPage;\n if (void 0 !== startCursor)\n pageInfo.startCursor = startCursor;\n }\n if (!suffix.length) {\n if (void 0 !== hasNextPage)\n pageInfo.hasNextPage = hasNextPage;\n if (void 0 !== endCursor)\n pageInfo.endCursor = endCursor;\n }\n }\n return __assign(__assign(__assign({}, getExtras(existing)), getExtras(incoming)), { edges: edges, pageInfo: pageInfo });\n },\n };\n}\nvar getExtras = function (obj) { return __rest(obj, notExtras); };\nvar notExtras = [\"edges\", \"pageInfo\"];\nfunction makeEmptyData() {\n return {\n edges: [],\n pageInfo: {\n hasPreviousPage: false,\n hasNextPage: true,\n startCursor: \"\",\n endCursor: \"\",\n },\n };\n}\n//# sourceMappingURL=pagination.js.map","import truncate from 'lodash/truncate';\nimport get from 'lodash/get';\nimport { avatarsInlineSizeOptions } from '../../../utils/constants';\nimport GlAvatar from '../avatar/avatar';\nimport GlTooltip from '../tooltip/tooltip';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'AvatarsInline',\n components: {\n GlAvatar,\n GlTooltip\n },\n props: {\n avatars: {\n type: Array,\n required: true\n },\n maxVisible: {\n type: Number,\n required: true\n },\n avatarSize: {\n type: Number,\n required: true,\n validator: value => avatarsInlineSizeOptions.includes(value)\n },\n collapsed: {\n type: Boolean,\n required: false,\n default: false\n },\n badgeSrOnlyText: {\n type: String,\n required: true\n },\n badgeTooltipProp: {\n type: String,\n required: false,\n default: ''\n },\n badgeTooltipMaxChars: {\n type: Number,\n required: false,\n default: null\n }\n },\n computed: {\n hiddenAvatars() {\n return this.avatars.slice(this.maxVisible);\n },\n collapsable() {\n return this.hiddenAvatars.length > 0;\n },\n visibleAvatars() {\n return this.collapsed ? this.avatars.slice(0, this.maxVisible) : this.avatars;\n },\n badgeSize() {\n return {\n 16: 'sm',\n 24: 'md',\n 32: 'lg'\n }[this.avatarSize] || 'lg';\n },\n badgeLabel() {\n return `+${this.hiddenAvatars.length}`;\n },\n badgeTooltipTitle() {\n if (!this.badgeTooltipProp) {\n return '';\n }\n const tooltipTitle = this.hiddenAvatars.map(avatar => get(avatar, this.badgeTooltipProp, '').trim()).join(', ');\n\n // truncate will append '...'\n // we need to take these extra 3 characters into account in badgeTooltipMaxChars\n return this.badgeTooltipMaxChars ? truncate(tooltipTitle, {\n length: this.badgeTooltipMaxChars\n }) : tooltipTitle;\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-avatars-inline\",class:(\"gl-avatars-inline-\" + _vm.badgeSize)},[_vm._l((_vm.visibleAvatars),function(avatar,index){return _c('div',{key:index,staticClass:\"gl-avatars-inline-child\"},[_vm._t(\"avatar\",function(){return [_c('gl-avatar',_vm._b({attrs:{\"size\":_vm.avatarSize}},'gl-avatar',avatar,false))]},{\"avatar\":avatar})],2)}),_vm._v(\" \"),(_vm.collapsed && _vm.collapsable)?_c('div',{staticClass:\"gl-avatars-inline-child\"},[(_vm.badgeTooltipProp)?_c('gl-tooltip',{attrs:{\"target\":function () { return _vm.$refs.badge; }}},[_vm._v(\"\\n \"+_vm._s(_vm.badgeTooltipTitle)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('span',{ref:\"badge\",class:['gl-avatars-inline-badge', _vm.badgeSize],attrs:{\"data-testid\":\"collapsed-avatars-badge\",\"aria-hidden\":\"true\"}},[_vm._v(\"\\n \"+_vm._s(_vm.badgeLabel)+\"\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"gl-sr-only\",attrs:{\"data-testid\":\"badge-sr-only-text\"}},[_vm._v(_vm._s(_vm.badgeSrOnlyText))])],1):_vm._e()],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueIterationsAliased\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IterationState\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attributes\"},\"name\":{\"kind\":\"Name\",\"value\":\"iterations\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"EnumValue\",\"value\":\"TITLE\"},{\"kind\":\"EnumValue\",\"value\":\"CADENCE_TITLE\"}]}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"IterationFragment\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":341}};\n doc.loc.source = {\"body\":\"#import \\\"./iteration.fragment.graphql\\\"\\n\\nquery issueIterationsAliased($fullPath: ID!, $title: String, $state: IterationState) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n attributes: iterations(search: $title, in: [TITLE, CADENCE_TITLE], state: $state) {\\n nodes {\\n ...IterationFragment\\n state\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./iteration.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueIterationsAliased\"] = oneQuery(doc, \"issueIterationsAliased\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueConfidential\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":180}};\n doc.loc.source = {\"body\":\"query issueConfidential($fullPath: ID!, $iid: String) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n confidential\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueConfidential\"] = oneQuery(doc, \"issueConfidential\");\n \n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAAAAAAdJSU2AAACNElEQVR4AdXYBa7jMBCA4b3/JZahzIkjp2qt+BWUWnG5ln2XxaJJb2b5F2ukL4wvzK/rP7bUcbf92u6oftLSe1ldk8efsfaVeEjusZZeC6e1RllaCk/yG6ag1lZ4WwPX69uyD6tAe/g2ipAlNMRS37awDLaFrpcMWxXQOi0jnWCWjFkSZomYJWDWKmatYNZyEWkJsvQimoZYah5NgdaLxagCtF6GRy0DshZPkeYwS/KIJWGWYjwYUzDLxCwDtJ54OKglimBLqHWahii2g1pmHLLGBmwVoRjcKlmgOdw65H5qKuGWCVi5Qlhs6m1sENZi4q3AWNvca5UYy2RjT/SAsiZey6CsIvc0wVlV5lJ0ibPMyLUGCmlxQq0IM0hLdWyro7CWEc3sXsqaK4O2zLxOsmtpfW5Q1u68ZrVmepaaNXEewawtI9X5Xl3U3n1qND6+rfPzvqoIWz/fklNCSLY153YV53J/XUxGCJnKZ1lajsn3/Ffegf6Y5pV2LUsSNL2UHzxUfh3TlYpZqqTpXZm0KZk9zJcqaEmaWPHDw0pxe05K7bWOLHFLWXVetqpYmrjle4+1y0aBaF4UOQ1NU+lYezJClkjLUnSEjqhH6zjAW4OjtY39Ibq+sawUb6W2RQfoqG0VeKuwrRJvlba17faRdbe2pTtYq6Nty/S7yAbGsQjWIq41wVoT1+IdZNy1djUcVdu5lklQWC0xHkt1X31qNEE1Pr3qKv/9XiSNj6Aaifj3/69+AYujsR/MvkpZAAAAAElFTkSuQmCC\"","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItem\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItem\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"archived\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"full\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createNoteEmail\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"namespace\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"author\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Author\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iconName\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"deleteWorkItem\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateWorkItem\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"adminParentLink\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"setWorkItemMetadata\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createNote\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"adminWorkItemLink\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"markNoteAsInternal\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgets\"},\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":666}};\n doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/work_items/graphql/work_item_widgets.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/author.fragment.graphql\\\"\\n\\nfragment WorkItem on WorkItem {\\n id\\n iid\\n archived\\n title\\n state\\n description\\n confidential\\n createdAt\\n closedAt\\n webUrl\\n reference(full: true)\\n createNoteEmail\\n project {\\n id\\n }\\n namespace {\\n id\\n fullPath\\n name\\n }\\n author {\\n ...Author\\n }\\n workItemType {\\n id\\n name\\n iconName\\n }\\n userPermissions {\\n deleteWorkItem\\n updateWorkItem\\n adminParentLink\\n setWorkItemMetadata\\n createNote\\n adminWorkItemLink\\n markNoteAsInternal\\n }\\n widgets {\\n ...WorkItemWidgets\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/work_items/graphql/work_item_widgets.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/author.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"WorkItem\"] = oneQuery(doc, \"WorkItem\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateActiveDesignDiscussion\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"source\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateActiveDesignDiscussion\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"source\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"source\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}]}]}}],\"loc\":{\"start\":0,\"end\":137}};\n doc.loc.source = {\"body\":\"mutation updateActiveDesignDiscussion($id: String, $source: String) {\\n updateActiveDesignDiscussion(id: $id, source: $source) @client\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateActiveDesignDiscussion\"] = oneQuery(doc, \"updateActiveDesignDiscussion\");\n \n","var baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n baseUniq = require('./_baseUniq'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nmodule.exports = union;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"gl-form\",staticClass:\"js-vue-markdown-field md-area position-relative gfm-form\",attrs:{\"data-uploads-path\":_vm.uploadsPath}},[_c('markdown-header',{attrs:{\"preview-markdown\":_vm.previewMarkdown,\"line-content\":_vm.lineContent,\"can-suggest\":_vm.canSuggest,\"enable-preview\":_vm.enablePreview,\"show-suggest-popover\":_vm.showSuggestPopover,\"suggestion-start-index\":_vm.suggestionsStartIndex,\"uploads-path\":_vm.uploadsPath,\"markdown-preview-path\":_vm.markdownPreviewPath,\"drawio-enabled\":_vm.drawioEnabled,\"supports-quick-actions\":_vm.supportsQuickActions,\"data-testid\":\"markdownHeader\",\"restricted-tool-bar-items\":_vm.restrictedToolBarItems},on:{\"showPreview\":_vm.showPreview,\"hidePreview\":_vm.hidePreview,\"handleSuggestDismissed\":() => _vm.$emit('handleSuggestDismissed')},scopedSlots:_vm._u([{key:\"header-buttons\",fn:function(){return [_vm._t(\"header-buttons\")]},proxy:true}],null,true)}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.previewMarkdown),expression:\"!previewMarkdown\"}],staticClass:\"md-write-holder\"},[_c('div',{staticClass:\"zen-backdrop\"},[_vm._t(\"textarea\"),_vm._v(\" \"),_c('a',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.placement.left\",modifiers:{\"placement\":true,\"left\":true}}],staticClass:\"zen-control zen-control-leave js-zen-leave gl-button btn-default-tertiary btn-icon btn-sm\",attrs:{\"href\":\"#\",\"title\":_vm.__('Exit full screen'),\"aria-label\":_vm.__('Exit full screen')}},[_c('gl-icon',{attrs:{\"variant\":\"subtle\",\"size\":24,\"name\":\"minimize\"}})],1),_vm._v(\" \"),_c('markdown-toolbar',{attrs:{\"markdown-docs-path\":_vm.markdownDocsPath,\"can-attach-file\":_vm.canAttachFile,\"show-comment-tool-bar\":_vm.showCommentToolBar,\"show-content-editor-switcher\":_vm.showContentEditorSwitcher},on:{\"enableContentEditor\":function($event){return _vm.$emit('enableContentEditor')}},scopedSlots:_vm._u([{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)})],2)]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.previewMarkdown),expression:\"previewMarkdown\"}],ref:\"markdown-preview\",staticClass:\"js-vue-md-preview md-preview-holder gl-px-5\"},[(_vm.hasSuggestion)?_c('suggestions',{attrs:{\"note-html\":_vm.markdownPreview,\"line-type\":_vm.lineType,\"disabled\":true,\"suggestions\":_vm.suggestions,\"help-page-path\":_vm.helpPagePath}}):[_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(_vm.markdownPreview),expression:\"markdownPreview\",arg:_vm.$options.safeHtmlConfig}],staticClass:\"md\"})]],2),_vm._v(\" \"),(_vm.referencedCommands && _vm.previewMarkdown && !_vm.markdownPreviewLoading)?_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(_vm.referencedCommands),expression:\"referencedCommands\",arg:_vm.$options.safeHtmlConfig}],staticClass:\"referenced-commands gl-mx-2 gl-mb-2 gl-rounded-bl-base gl-rounded-br-base gl-px-4\",attrs:{\"data-testid\":\"referenced-commands\"}}):_vm._e(),_vm._v(\" \"),(_vm.shouldShowReferencedUsers)?_c('div',{staticClass:\"referenced-users\"},[_c('gl-icon',{attrs:{\"name\":\"warning-solid\"}}),_vm._v(\" \"),_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(_vm.addMultipleToDiscussionWarning),expression:\"addMultipleToDiscussionWarning\",arg:_vm.$options.safeHtmlConfig}]})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./toolbar_button.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./toolbar_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective, GlButton } from '@gitlab/ui';\nimport { TOOLBAR_CONTROL_TRACKING_ACTION, MARKDOWN_EDITOR_TRACKING_LABEL } from './tracking';\n\nexport default {\n components: {\n GlButton,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n buttonTitle: {\n type: String,\n required: true,\n },\n icon: {\n type: String,\n required: true,\n },\n tag: {\n type: String,\n required: false,\n default: '',\n },\n tagBlock: {\n type: String,\n required: false,\n default: '',\n },\n tagSelect: {\n type: String,\n required: false,\n default: '',\n },\n prepend: {\n type: Boolean,\n required: false,\n default: false,\n },\n tagContent: {\n type: String,\n required: false,\n default: '',\n },\n cursorOffset: {\n type: Number,\n required: false,\n default: 0,\n },\n command: {\n type: String,\n required: false,\n default: '',\n },\n\n /**\n * A string (or an array of strings) of\n * [mousetrap](https://craig.is/killing/mice) keyboard shortcuts\n * that should be attached to this button. For example:\n * \"command+k\"\n * ...or...\n * [\"command+k\", \"ctrl+k\"]\n */\n shortcuts: {\n type: [String, Array],\n required: false,\n default: () => [],\n },\n trackingProperty: {\n type: String,\n required: false,\n default: null,\n },\n },\n computed: {\n shortcutsString() {\n const shortcutArray = Array.isArray(this.shortcuts) ? this.shortcuts : [this.shortcuts];\n return JSON.stringify(shortcutArray);\n },\n trackingProps() {\n const { trackingProperty } = this;\n\n return trackingProperty\n ? {\n 'data-track-action': TOOLBAR_CONTROL_TRACKING_ACTION,\n 'data-track-label': MARKDOWN_EDITOR_TRACKING_LABEL,\n 'data-track-property': trackingProperty,\n }\n : {};\n },\n },\n};\n</script>\n\n<template>\n <gl-button\n v-gl-tooltip\n :data-md-tag=\"tag\"\n :data-md-cursor-offset=\"cursorOffset\"\n :data-md-select=\"tagSelect\"\n :data-md-block=\"tagBlock\"\n :data-md-tag-content=\"tagContent\"\n :data-md-prepend=\"prepend\"\n :data-md-shortcuts=\"shortcutsString\"\n :data-md-command=\"command\"\n :title=\"buttonTitle\"\n :aria-label=\"buttonTitle\"\n :icon=\"icon\"\n v-bind=\"trackingProps\"\n type=\"button\"\n category=\"tertiary\"\n size=\"small\"\n class=\"js-md gl-mr-2\"\n data-container=\"body\"\n @click=\"$emit('click', $event)\"\n />\n</template>\n","import { render, staticRenderFns } from \"./toolbar_button.vue?vue&type=template&id=2ec83b6b\"\nimport script from \"./toolbar_button.vue?vue&type=script&lang=js\"\nexport * from \"./toolbar_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button',_vm._b({directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"js-md gl-mr-2\",attrs:{\"data-md-tag\":_vm.tag,\"data-md-cursor-offset\":_vm.cursorOffset,\"data-md-select\":_vm.tagSelect,\"data-md-block\":_vm.tagBlock,\"data-md-tag-content\":_vm.tagContent,\"data-md-prepend\":_vm.prepend,\"data-md-shortcuts\":_vm.shortcutsString,\"data-md-command\":_vm.command,\"title\":_vm.buttonTitle,\"aria-label\":_vm.buttonTitle,\"icon\":_vm.icon,\"type\":\"button\",\"category\":\"tertiary\",\"size\":\"small\",\"data-container\":\"body\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'gl-button',_vm.trackingProps,false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { insertMarkdownText, resolveSelectedImage } from '~/lib/utils/text_markdown';\nimport axios from '~/lib/utils/axios_utils';\n\n/**\n * A set of functions to decouple the markdown_field component from\n * the draw.io editor.\n * It allows the draw.io editor to obtain a selected drawio_diagram\n * and replace it or insert a new drawio_diagram node without coupling\n * the drawio_editor to the Markdown Field implementation details\n *\n * @param {Object} params Factory function parameters\n * @param {Object} params.textArea Textarea used to edit and display markdown source\n * @param {String} params.markdownPreviewPath API endpoint to render Markdown\n * @param {String} params.uploadsPath API endpoint to upload files\n *\n * @returns A markdown_field_facade object with operations\n * with operations to get a selected diagram, upload a diagram,\n * insert a new one in the Markdown Field, and update\n * an existing’s diagram URL.\n */\nexport const create = ({ textArea, markdownPreviewPath, uploadsPath }) => ({\n getDiagram: async () => {\n const image = await resolveSelectedImage(textArea, markdownPreviewPath);\n\n if (!image) {\n return null;\n }\n\n const { imageURL, imageMarkdown, filename } = image;\n const response = await axios.get(imageURL, { responseType: 'text' });\n const diagramSvg = response.data;\n const contentType = response.headers['content-type'];\n\n return {\n diagramURL: imageURL,\n diagramMarkdown: imageMarkdown,\n filename,\n diagramSvg,\n contentType,\n };\n },\n updateDiagram: ({ uploadResults, diagramMarkdown }) => {\n textArea.focus();\n\n // eslint-disable-next-line no-param-reassign\n textArea.value = textArea.value.replace(diagramMarkdown, uploadResults.link.markdown);\n textArea.dispatchEvent(new Event('input'));\n },\n insertDiagram: ({ uploadResults }) => {\n textArea.focus();\n const markdown = textArea.value;\n const selectedMD = markdown.substring(textArea.selectionStart, textArea.selectionEnd);\n\n // This method dispatches the input event.\n insertMarkdownText({\n textArea,\n text: markdown,\n tag: uploadResults.link.markdown,\n selected: selectedMD,\n });\n },\n uploadDiagram: async ({ filename, diagramSvg }) => {\n const blob = new Blob([diagramSvg], { type: 'image/svg+xml' });\n const formData = new FormData();\n\n formData.append('file', blob, filename);\n\n const response = await axios.post(uploadsPath, formData);\n\n return response.data;\n },\n});\n","<script>\nimport { GlButton, GlTooltipDirective } from '@gitlab/ui';\nimport { launchDrawioEditor } from '~/drawio/drawio_editor';\nimport { create } from '~/drawio/markdown_field_editor_facade';\n\nexport default {\n components: {\n GlButton,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n uploadsPath: {\n type: String,\n required: true,\n },\n markdownPreviewPath: {\n type: String,\n required: true,\n },\n },\n methods: {\n getTextArea() {\n return document.querySelector('.js-gfm-input');\n },\n launchDrawioEditor() {\n launchDrawioEditor({\n editorFacade: create({\n uploadsPath: this.uploadsPath,\n textArea: this.getTextArea(),\n markdownPreviewPath: this.markdownPreviewPath,\n }),\n });\n },\n },\n};\n</script>\n<template>\n <gl-button\n v-gl-tooltip\n :title=\"__('Insert or edit diagram')\"\n :aria-label=\"__('Insert or edit diagram')\"\n category=\"tertiary\"\n icon=\"diagram\"\n size=\"small\"\n @click=\"launchDrawioEditor\"\n />\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./drawio_toolbar_button.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./drawio_toolbar_button.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./drawio_toolbar_button.vue?vue&type=template&id=0826a930\"\nimport script from \"./drawio_toolbar_button.vue?vue&type=script&lang=js\"\nexport * from \"./drawio_toolbar_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"title\":_vm.__('Insert or edit diagram'),\"aria-label\":_vm.__('Insert or edit diagram'),\"category\":\"tertiary\",\"icon\":\"diagram\",\"size\":\"small\"},on:{\"click\":_vm.launchDrawioEditor}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlPopover, GlButton, GlTooltipDirective, GlFormInput } from '@gitlab/ui';\nimport $ from 'jquery';\nimport {\n keysFor,\n BOLD_TEXT,\n ITALIC_TEXT,\n STRIKETHROUGH_TEXT,\n LINK_TEXT,\n INDENT_LINE,\n OUTDENT_LINE,\n FIND_AND_REPLACE,\n} from '~/behaviors/shortcuts/keybindings';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { getModifierKey } from '~/constants';\nimport { getSelectedFragment } from '~/lib/utils/common_utils';\nimport { truncateSha } from '~/lib/utils/text_utility';\nimport { s__, __, sprintf } from '~/locale';\nimport { CopyAsGFM } from '~/behaviors/markdown/copy_as_gfm';\nimport { updateText, repeatCodeBackticks } from '~/lib/utils/text_markdown';\nimport ToolbarButton from './toolbar_button.vue';\nimport DrawioToolbarButton from './drawio_toolbar_button.vue';\nimport CommentTemplatesModal from './comment_templates_modal.vue';\nimport HeaderDivider from './header_divider.vue';\n\nexport default {\n components: {\n ToolbarButton,\n GlPopover,\n GlButton,\n GlFormInput,\n DrawioToolbarButton,\n CommentTemplatesModal,\n AiActionsDropdown: () => import('ee_component/ai/components/ai_actions_dropdown.vue'),\n HeaderDivider,\n SummarizeCodeChanges: () =>\n import('ee_component/merge_requests/components/summarize_code_changes.vue'),\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [glFeatureFlagsMixin()],\n inject: {\n newCommentTemplatePaths: {\n default: () => [],\n },\n editorAiActions: { default: () => [] },\n mrGeneratedContent: { default: null },\n canSummarizeChanges: { default: false },\n },\n props: {\n previewMarkdown: {\n type: Boolean,\n required: true,\n },\n lineContent: {\n type: String,\n required: false,\n default: '',\n },\n canSuggest: {\n type: Boolean,\n required: false,\n default: true,\n },\n showSuggestPopover: {\n type: Boolean,\n required: false,\n default: false,\n },\n suggestionStartIndex: {\n type: Number,\n required: false,\n default: 0,\n },\n enablePreview: {\n type: Boolean,\n required: false,\n default: true,\n },\n restrictedToolBarItems: {\n type: Array,\n required: false,\n default: () => [],\n },\n uploadsPath: {\n type: String,\n required: false,\n default: '',\n },\n markdownPreviewPath: {\n type: String,\n required: false,\n default: '',\n },\n drawioEnabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n supportsQuickActions: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n const modifierKey = getModifierKey();\n return {\n tag: '> ',\n suggestPopoverVisible: false,\n shouldShowFindAndReplaceBar: false,\n findAndReplace: {\n find: '',\n replace: '',\n },\n modifierKey,\n shiftKey: modifierKey === '⌘' ? '⇧' : 'Shift+',\n };\n },\n computed: {\n mdTable() {\n const header = s__('MarkdownEditor|header');\n const divider = '-'.repeat(header.length);\n const cell = ' '.repeat(header.length);\n\n return [\n `| ${header} | ${header} |`,\n `| ${divider} | ${divider} |`,\n `| ${cell} | ${cell} |`,\n `| ${cell} | ${cell} |`,\n ].join('\\n');\n },\n mdSuggestion() {\n const codeblockChars = repeatCodeBackticks(this.lineContent);\n\n return [\n `${codeblockChars}suggestion:-${this.suggestionStartIndex}+0`,\n `{text}`,\n codeblockChars,\n ].join('\\n');\n },\n mdCollapsibleSection() {\n const expandText = s__('MarkdownEditor|Click to expand');\n return [`<details><summary>${expandText}</summary>`, `{text}`, '</details>'].join('\\n');\n },\n hideDividerBeforeTable() {\n return (\n this.previewMarkdown ||\n (this.restrictedToolBarItems.includes('table') &&\n this.restrictedToolBarItems.includes('attach-file') &&\n !this.drawioEnabled &&\n !this.supportsQuickActions &&\n !this.newCommentTemplatePath)\n );\n },\n showFindAndReplaceButton() {\n return (\n this.glFeatures.findAndReplace && !this.restrictedToolBarItems.includes('find-and-replace')\n );\n },\n },\n watch: {\n showSuggestPopover() {\n this.updateSuggestPopoverVisibility();\n },\n },\n mounted() {\n $(document).on('markdown-preview:show.vue', this.showMarkdownPreview);\n $(document).on('markdown-preview:hide.vue', this.hideMarkdownPreview);\n $(document).on('markdown-editor:find-and-replace:show', this.showFindAndReplaceBar);\n\n this.updateSuggestPopoverVisibility();\n },\n beforeDestroy() {\n $(document).off('markdown-preview:show.vue', this.showMarkdownPreview);\n $(document).off('markdown-preview:hide.vue', this.hideMarkdownPreview);\n $(document).off('markdown-editor:find-and-replace:show', this.showFindAndReplaceBar);\n },\n methods: {\n async updateSuggestPopoverVisibility() {\n await this.$nextTick();\n\n this.suggestPopoverVisible = this.showSuggestPopover && this.canSuggest;\n },\n isValid(form) {\n return (\n !form ||\n (form.find('.js-vue-markdown-field').length && $(this.$el).closest('form')[0] === form[0])\n );\n },\n showMarkdownPreview(_, form) {\n if (!this.isValid(form)) return;\n\n this.$emit('showPreview');\n },\n hideMarkdownPreview(_, form) {\n if (!this.isValid(form)) return;\n\n this.$emit('hidePreview');\n },\n handleSuggestDismissed() {\n this.$emit('handleSuggestDismissed');\n },\n handleQuote() {\n const documentFragment = getSelectedFragment();\n\n if (!documentFragment || !documentFragment.textContent) {\n this.tag = '> ';\n return;\n }\n this.tag = '';\n\n const transformed = CopyAsGFM.transformGFMSelection(documentFragment);\n const area = this.$el.parentNode.querySelector('textarea');\n\n CopyAsGFM.nodeToGFM(transformed)\n .then((gfm) => {\n CopyAsGFM.insertPastedText(area, documentFragment.textContent, CopyAsGFM.quoted(gfm));\n })\n .catch(() => {});\n },\n insertIntoTextarea(text) {\n const textArea = this.$el.closest('.md-area')?.querySelector('textarea');\n if (textArea) {\n updateText({\n textArea,\n tag: text,\n cursorOffset: 0,\n wrap: false,\n });\n }\n },\n replaceTextarea(text) {\n const { description, descriptionForSha } = this.$options.i18n;\n const headSha = document.getElementById('merge_request_diff_head_sha').value;\n const addendum = headSha\n ? sprintf(descriptionForSha, { revision: truncateSha(headSha) })\n : description;\n\n if (this.mrGeneratedContent) {\n this.mrGeneratedContent.setGeneratedContent(`${text}\\n\\n---\\n\\n_${addendum}_`);\n this.mrGeneratedContent.showWarning();\n }\n },\n switchPreview() {\n if (this.previewMarkdown) {\n this.hideMarkdownPreview();\n } else {\n this.showMarkdownPreview();\n }\n },\n insertAIAction(text) {\n this.insertIntoTextarea(`${text}\\n\\n---\\n\\n_${__('This comment was generated by AI')}_`);\n },\n insertSavedReply(savedReply) {\n this.insertIntoTextarea(savedReply);\n\n setTimeout(() => {\n this.$el.closest('.md-area')?.querySelector('textarea')?.focus();\n }, 500);\n },\n showFindAndReplaceBar(_, form) {\n if (!this.isValid(form)) return;\n\n this.shouldShowFindAndReplaceBar = true;\n },\n handleKeyDown(e) {\n if (e.key === 'Enter') {\n e.preventDefault();\n return;\n }\n\n if (e.key === 'Escape') {\n this.shouldShowFindAndReplaceBar = false;\n }\n },\n },\n shortcuts: {\n bold: keysFor(BOLD_TEXT),\n italic: keysFor(ITALIC_TEXT),\n strikethrough: keysFor(STRIKETHROUGH_TEXT),\n link: keysFor(LINK_TEXT),\n indent: keysFor(INDENT_LINE),\n outdent: keysFor(OUTDENT_LINE),\n findAndReplace: keysFor(FIND_AND_REPLACE),\n },\n i18n: {\n comment: __('This comment was generated by AI'),\n description: s__('MergeRequest|This description was generated using AI'),\n descriptionForSha: s__(\n 'MergeRequest|This description was generated for revision %{revision} using AI',\n ),\n hidePreview: __('Continue editing'),\n preview: __('Preview'),\n },\n};\n</script>\n\n<template>\n <div\n class=\"md-header gl-border-b gl-z-2 gl-rounded-lg gl-rounded-b-none gl-border-default gl-px-3\"\n :class=\"{ 'md-header-preview': previewMarkdown }\"\n >\n <div class=\"gl-flex gl-flex-wrap gl-items-center\">\n <div\n data-testid=\"md-header-toolbar\"\n class=\"md-header-toolbar gl-flex gl-grow gl-items-start gl-gap-y-2 gl-py-3\"\n >\n <div class=\"gl-flex gl-flex-wrap gl-gap-y-2\">\n <gl-button\n v-if=\"enablePreview\"\n data-testid=\"preview-toggle\"\n :value=\"previewMarkdown ? 'preview' : 'edit'\"\n :label=\"$options.i18n.previewTabTitle\"\n class=\"js-md-preview-button gl-flex-row-reverse gl-items-center !gl-font-normal\"\n size=\"small\"\n category=\"tertiary\"\n @click=\"switchPreview\"\n >{{ previewMarkdown ? $options.i18n.hidePreview : $options.i18n.preview }}</gl-button\n >\n <template v-if=\"!previewMarkdown && canSuggest\">\n <div class=\"gl-flex gl-gap-y-2\">\n <header-divider v-if=\"!previewMarkdown\" />\n <toolbar-button\n ref=\"suggestButton\"\n :tag=\"mdSuggestion\"\n :prepend=\"true\"\n :button-title=\"__('Insert suggestion')\"\n :cursor-offset=\"4\"\n :tag-content=\"lineContent\"\n tracking-property=\"codeSuggestion\"\n icon=\"doc-code\"\n data-testid=\"suggestion-button\"\n class=\"js-suggestion-btn\"\n @click=\"handleSuggestDismissed\"\n />\n <gl-popover\n v-if=\"suggestPopoverVisible\"\n :target=\"$refs.suggestButton.$el\"\n :css-classes=\"['diff-suggest-popover']\"\n placement=\"bottom\"\n :show=\"suggestPopoverVisible\"\n triggers=\"\"\n >\n <strong>{{ __('New! Suggest changes directly') }}</strong>\n <p class=\"mb-2\">\n {{\n __(\n 'Suggest code changes which can be immediately applied in one click. Try it out!',\n )\n }}\n </p>\n <gl-button\n variant=\"confirm\"\n category=\"primary\"\n size=\"small\"\n data-testid=\"dismiss-suggestion-popover-button\"\n @click=\"handleSuggestDismissed\"\n >\n {{ __('Got it') }}\n </gl-button>\n </gl-popover>\n </div>\n </template>\n <div class=\"gl-flex gl-gap-y-2\">\n <div v-if=\"!previewMarkdown && editorAiActions.length\" class=\"gl-flex gl-gap-y-2\">\n <header-divider v-if=\"!previewMarkdown\" />\n <ai-actions-dropdown\n :actions=\"editorAiActions\"\n @input=\"insertAIAction\"\n @replace=\"replaceTextarea\"\n />\n </div>\n <header-divider v-if=\"enablePreview && !previewMarkdown\" />\n </div>\n <toolbar-button\n v-show=\"!previewMarkdown\"\n tag=\"**\"\n :button-title=\"\n /* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */\n sprintf(s__('MarkdownEditor|Add bold text (%{modifierKey}B)'), {\n modifierKey,\n }) /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */\n \"\n :shortcuts=\"$options.shortcuts.bold\"\n icon=\"bold\"\n tracking-property=\"bold\"\n />\n <toolbar-button\n v-show=\"!previewMarkdown\"\n tag=\"_\"\n :button-title=\"\n /* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */\n sprintf(s__('MarkdownEditor|Add italic text (%{modifierKey}I)'), {\n modifierKey,\n }) /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */\n \"\n :shortcuts=\"$options.shortcuts.italic\"\n icon=\"italic\"\n tracking-property=\"italic\"\n />\n <div class=\"gl-flex gl-gap-y-2\">\n <toolbar-button\n v-if=\"!restrictedToolBarItems.includes('strikethrough')\"\n v-show=\"!previewMarkdown\"\n tag=\"~~\"\n :button-title=\"\n /* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */\n sprintf(s__('MarkdownEditor|Add strikethrough text (%{modifierKey}%{shiftKey}X)'), {\n modifierKey,\n shiftKey /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */,\n })\n \"\n :shortcuts=\"$options.shortcuts.strikethrough\"\n icon=\"strikethrough\"\n tracking-property=\"strike\"\n />\n <header-divider v-if=\"!previewMarkdown\" />\n </div>\n <toolbar-button\n v-if=\"!restrictedToolBarItems.includes('quote')\"\n v-show=\"!previewMarkdown\"\n :prepend=\"true\"\n :tag=\"tag\"\n :button-title=\"__('Insert a quote')\"\n icon=\"quote\"\n tracking-property=\"blockquote\"\n @click=\"handleQuote\"\n />\n <toolbar-button\n v-if=\"!restrictedToolBarItems.includes('code')\"\n v-show=\"!previewMarkdown\"\n tag=\"`\"\n tag-block=\"```\"\n :button-title=\"__('Insert code')\"\n icon=\"code\"\n tracking-property=\"code\"\n />\n <toolbar-button\n v-show=\"!previewMarkdown\"\n tag=\"[{text}](url)\"\n tag-select=\"url\"\n :button-title=\"\n /* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */\n sprintf(s__('MarkdownEditor|Add a link (%{modifierKey}K)'), {\n modifierKey,\n }) /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */\n \"\n :shortcuts=\"$options.shortcuts.link\"\n icon=\"link\"\n tracking-property=\"link\"\n />\n <toolbar-button\n v-if=\"!restrictedToolBarItems.includes('bullet-list')\"\n v-show=\"!previewMarkdown\"\n :prepend=\"true\"\n tag=\"- \"\n :button-title=\"__('Add a bullet list')\"\n icon=\"list-bulleted\"\n tracking-property=\"bulletList\"\n />\n <toolbar-button\n v-if=\"!restrictedToolBarItems.includes('numbered-list')\"\n v-show=\"!previewMarkdown\"\n :prepend=\"true\"\n tag=\"1. \"\n :button-title=\"__('Add a numbered list')\"\n icon=\"list-numbered\"\n tracking-property=\"orderedList\"\n />\n <toolbar-button\n v-if=\"!restrictedToolBarItems.includes('task-list')\"\n v-show=\"!previewMarkdown\"\n :prepend=\"true\"\n tag=\"- [ ] \"\n :button-title=\"__('Add a checklist')\"\n icon=\"list-task\"\n tracking-property=\"taskList\"\n />\n <toolbar-button\n v-if=\"!restrictedToolBarItems.includes('indent')\"\n v-show=\"!previewMarkdown\"\n class=\"gl-hidden\"\n :button-title=\"\n /* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */\n sprintf(s__('MarkdownEditor|Indent line (%{modifierKey}])'), {\n modifierKey /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */,\n })\n \"\n :shortcuts=\"$options.shortcuts.indent\"\n command=\"indentLines\"\n icon=\"list-indent\"\n tracking-property=\"indent\"\n />\n <toolbar-button\n v-if=\"!restrictedToolBarItems.includes('outdent')\"\n v-show=\"!previewMarkdown\"\n class=\"gl-hidden\"\n :button-title=\"\n /* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */\n sprintf(s__('MarkdownEditor|Outdent line (%{modifierKey}[)'), {\n modifierKey /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */,\n })\n \"\n :shortcuts=\"$options.shortcuts.outdent\"\n command=\"outdentLines\"\n icon=\"list-outdent\"\n tracking-property=\"outdent\"\n />\n <div class=\"gl-flex gl-gap-y-2\">\n <toolbar-button\n v-if=\"!restrictedToolBarItems.includes('collapsible-section')\"\n v-show=\"!previewMarkdown\"\n :tag=\"mdCollapsibleSection\"\n :prepend=\"true\"\n tag-select=\"Click to expand\"\n :button-title=\"__('Add a collapsible section')\"\n icon=\"details-block\"\n tracking-property=\"details\"\n />\n <header-divider v-if=\"!hideDividerBeforeTable\" />\n </div>\n <toolbar-button\n v-if=\"!restrictedToolBarItems.includes('table')\"\n v-show=\"!previewMarkdown\"\n :tag=\"mdTable\"\n :prepend=\"true\"\n :button-title=\"__('Add a table')\"\n icon=\"table\"\n tracking-property=\"table\"\n />\n <!--\n The attach file button's click behavior is added by\n dropzone_input.js.\n -->\n <toolbar-button\n v-show=\"!previewMarkdown && !restrictedToolBarItems.includes('attach-file')\"\n data-testid=\"button-attach-file\"\n data-button-type=\"attach-file\"\n :button-title=\"__('Attach a file or image')\"\n icon=\"paperclip\"\n class=\"gl-mr-2\"\n tracking-property=\"upload\"\n />\n <drawio-toolbar-button\n v-if=\"!previewMarkdown && drawioEnabled\"\n :uploads-path=\"uploadsPath\"\n :markdown-preview-path=\"markdownPreviewPath\"\n />\n <!-- TODO Add icon and trigger functionality from here -->\n <toolbar-button\n v-if=\"supportsQuickActions\"\n v-show=\"!previewMarkdown\"\n :prepend=\"true\"\n tag=\"/\"\n :button-title=\"__('Add a quick action')\"\n icon=\"quick-actions\"\n tracking-property=\"quickAction\"\n />\n <comment-templates-modal\n v-if=\"!previewMarkdown && newCommentTemplatePaths.length\"\n :new-comment-template-paths=\"newCommentTemplatePaths\"\n @select=\"insertSavedReply\"\n />\n <template v-if=\"!previewMarkdown && canSummarizeChanges\">\n <header-divider />\n <summarize-code-changes />\n </template>\n <slot v-if=\"!previewMarkdown\" name=\"header-buttons\"></slot>\n </div>\n <div v-if=\"!previewMarkdown\" class=\"full-screen gl-flex gl-grow gl-justify-end\">\n <toolbar-button\n v-if=\"!restrictedToolBarItems.includes('full-screen')\"\n class=\"js-zen-enter !gl-mr-0\"\n icon=\"maximize\"\n :button-title=\"__('Go full screen')\"\n :prepend=\"true\"\n tracking-property=\"fullScreen\"\n />\n </div>\n <toolbar-button\n v-if=\"showFindAndReplaceButton\"\n v-show=\"!previewMarkdown\"\n class=\"gl-hidden\"\n :button-title=\"s__('MarkdownEditor|Find and replace')\"\n :shortcuts=\"$options.shortcuts.findAndReplace\"\n icon=\"retry\"\n />\n </div>\n </div>\n <div\n v-if=\"shouldShowFindAndReplaceBar\"\n class=\"gl-border gl-absolute gl-right-0 gl-z-1 gl-flex gl-w-34 gl-rounded-bl-base gl-border-r-0 gl-bg-section gl-p-3 gl-shadow-sm\"\n data-testid=\"find-and-replace\"\n >\n <gl-form-input\n v-model=\"findAndReplace.find\"\n :placeholder=\"__('Find')\"\n autofocus\n data-testid=\"find-btn\"\n @keydown=\"handleKeyDown\"\n />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./header.vue?vue&type=template&id=b13bf05c\"\nimport script from \"./header.vue?vue&type=script&lang=js\"\nexport * from \"./header.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"md-header gl-border-b gl-z-2 gl-rounded-lg gl-rounded-b-none gl-border-default gl-px-3\",class:{ 'md-header-preview': _vm.previewMarkdown }},[_c('div',{staticClass:\"gl-flex gl-flex-wrap gl-items-center\"},[_c('div',{staticClass:\"md-header-toolbar gl-flex gl-grow gl-items-start gl-gap-y-2 gl-py-3\",attrs:{\"data-testid\":\"md-header-toolbar\"}},[_c('div',{staticClass:\"gl-flex gl-flex-wrap gl-gap-y-2\"},[(_vm.enablePreview)?_c('gl-button',{staticClass:\"js-md-preview-button gl-flex-row-reverse gl-items-center !gl-font-normal\",attrs:{\"data-testid\":\"preview-toggle\",\"value\":_vm.previewMarkdown ? 'preview' : 'edit',\"label\":_vm.$options.i18n.previewTabTitle,\"size\":\"small\",\"category\":\"tertiary\"},on:{\"click\":_vm.switchPreview}},[_vm._v(_vm._s(_vm.previewMarkdown ? _vm.$options.i18n.hidePreview : _vm.$options.i18n.preview))]):_vm._e(),_vm._v(\" \"),(!_vm.previewMarkdown && _vm.canSuggest)?[_c('div',{staticClass:\"gl-flex gl-gap-y-2\"},[(!_vm.previewMarkdown)?_c('header-divider'):_vm._e(),_vm._v(\" \"),_c('toolbar-button',{ref:\"suggestButton\",staticClass:\"js-suggestion-btn\",attrs:{\"tag\":_vm.mdSuggestion,\"prepend\":true,\"button-title\":_vm.__('Insert suggestion'),\"cursor-offset\":4,\"tag-content\":_vm.lineContent,\"tracking-property\":\"codeSuggestion\",\"icon\":\"doc-code\",\"data-testid\":\"suggestion-button\"},on:{\"click\":_vm.handleSuggestDismissed}}),_vm._v(\" \"),(_vm.suggestPopoverVisible)?_c('gl-popover',{attrs:{\"target\":_vm.$refs.suggestButton.$el,\"css-classes\":['diff-suggest-popover'],\"placement\":\"bottom\",\"show\":_vm.suggestPopoverVisible,\"triggers\":\"\"}},[_c('strong',[_vm._v(_vm._s(_vm.__('New! Suggest changes directly')))]),_vm._v(\" \"),_c('p',{staticClass:\"mb-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.__(\n 'Suggest code changes which can be immediately applied in one click. Try it out!',\n ))+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{attrs:{\"variant\":\"confirm\",\"category\":\"primary\",\"size\":\"small\",\"data-testid\":\"dismiss-suggestion-popover-button\"},on:{\"click\":_vm.handleSuggestDismissed}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Got it'))+\"\\n \")])],1):_vm._e()],1)]:_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-gap-y-2\"},[(!_vm.previewMarkdown && _vm.editorAiActions.length)?_c('div',{staticClass:\"gl-flex gl-gap-y-2\"},[(!_vm.previewMarkdown)?_c('header-divider'):_vm._e(),_vm._v(\" \"),_c('ai-actions-dropdown',{attrs:{\"actions\":_vm.editorAiActions},on:{\"input\":_vm.insertAIAction,\"replace\":_vm.replaceTextarea}})],1):_vm._e(),_vm._v(\" \"),(_vm.enablePreview && !_vm.previewMarkdown)?_c('header-divider'):_vm._e()],1),_vm._v(\" \"),_c('toolbar-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.previewMarkdown),expression:\"!previewMarkdown\"}],attrs:{\"tag\":\"**\",\"button-title\":/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */\n _vm.sprintf(_vm.s__('MarkdownEditor|Add bold text (%{modifierKey}B)'), {\n modifierKey: _vm.modifierKey,\n }) /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */,\"shortcuts\":_vm.$options.shortcuts.bold,\"icon\":\"bold\",\"tracking-property\":\"bold\"}}),_vm._v(\" \"),_c('toolbar-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.previewMarkdown),expression:\"!previewMarkdown\"}],attrs:{\"tag\":\"_\",\"button-title\":/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */\n _vm.sprintf(_vm.s__('MarkdownEditor|Add italic text (%{modifierKey}I)'), {\n modifierKey: _vm.modifierKey,\n }) /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */,\"shortcuts\":_vm.$options.shortcuts.italic,\"icon\":\"italic\",\"tracking-property\":\"italic\"}}),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-gap-y-2\"},[(!_vm.restrictedToolBarItems.includes('strikethrough'))?_c('toolbar-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.previewMarkdown),expression:\"!previewMarkdown\"}],attrs:{\"tag\":\"~~\",\"button-title\":/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */\n _vm.sprintf(_vm.s__('MarkdownEditor|Add strikethrough text (%{modifierKey}%{shiftKey}X)'), {\n modifierKey: _vm.modifierKey,\n shiftKey: _vm.shiftKey /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */,\n }),\"shortcuts\":_vm.$options.shortcuts.strikethrough,\"icon\":\"strikethrough\",\"tracking-property\":\"strike\"}}):_vm._e(),_vm._v(\" \"),(!_vm.previewMarkdown)?_c('header-divider'):_vm._e()],1),_vm._v(\" \"),(!_vm.restrictedToolBarItems.includes('quote'))?_c('toolbar-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.previewMarkdown),expression:\"!previewMarkdown\"}],attrs:{\"prepend\":true,\"tag\":_vm.tag,\"button-title\":_vm.__('Insert a quote'),\"icon\":\"quote\",\"tracking-property\":\"blockquote\"},on:{\"click\":_vm.handleQuote}}):_vm._e(),_vm._v(\" \"),(!_vm.restrictedToolBarItems.includes('code'))?_c('toolbar-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.previewMarkdown),expression:\"!previewMarkdown\"}],attrs:{\"tag\":\"`\",\"tag-block\":\"```\",\"button-title\":_vm.__('Insert code'),\"icon\":\"code\",\"tracking-property\":\"code\"}}):_vm._e(),_vm._v(\" \"),_c('toolbar-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.previewMarkdown),expression:\"!previewMarkdown\"}],attrs:{\"tag\":\"[{text}](url)\",\"tag-select\":\"url\",\"button-title\":/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */\n _vm.sprintf(_vm.s__('MarkdownEditor|Add a link (%{modifierKey}K)'), {\n modifierKey: _vm.modifierKey,\n }) /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */,\"shortcuts\":_vm.$options.shortcuts.link,\"icon\":\"link\",\"tracking-property\":\"link\"}}),_vm._v(\" \"),(!_vm.restrictedToolBarItems.includes('bullet-list'))?_c('toolbar-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.previewMarkdown),expression:\"!previewMarkdown\"}],attrs:{\"prepend\":true,\"tag\":\"- \",\"button-title\":_vm.__('Add a bullet list'),\"icon\":\"list-bulleted\",\"tracking-property\":\"bulletList\"}}):_vm._e(),_vm._v(\" \"),(!_vm.restrictedToolBarItems.includes('numbered-list'))?_c('toolbar-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.previewMarkdown),expression:\"!previewMarkdown\"}],attrs:{\"prepend\":true,\"tag\":\"1. \",\"button-title\":_vm.__('Add a numbered list'),\"icon\":\"list-numbered\",\"tracking-property\":\"orderedList\"}}):_vm._e(),_vm._v(\" \"),(!_vm.restrictedToolBarItems.includes('task-list'))?_c('toolbar-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.previewMarkdown),expression:\"!previewMarkdown\"}],attrs:{\"prepend\":true,\"tag\":\"- [ ] \",\"button-title\":_vm.__('Add a checklist'),\"icon\":\"list-task\",\"tracking-property\":\"taskList\"}}):_vm._e(),_vm._v(\" \"),(!_vm.restrictedToolBarItems.includes('indent'))?_c('toolbar-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.previewMarkdown),expression:\"!previewMarkdown\"}],staticClass:\"gl-hidden\",attrs:{\"button-title\":/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */\n _vm.sprintf(_vm.s__('MarkdownEditor|Indent line (%{modifierKey}])'), {\n modifierKey: _vm.modifierKey /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */,\n }),\"shortcuts\":_vm.$options.shortcuts.indent,\"command\":\"indentLines\",\"icon\":\"list-indent\",\"tracking-property\":\"indent\"}}):_vm._e(),_vm._v(\" \"),(!_vm.restrictedToolBarItems.includes('outdent'))?_c('toolbar-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.previewMarkdown),expression:\"!previewMarkdown\"}],staticClass:\"gl-hidden\",attrs:{\"button-title\":/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */\n _vm.sprintf(_vm.s__('MarkdownEditor|Outdent line (%{modifierKey}[)'), {\n modifierKey: _vm.modifierKey /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */,\n }),\"shortcuts\":_vm.$options.shortcuts.outdent,\"command\":\"outdentLines\",\"icon\":\"list-outdent\",\"tracking-property\":\"outdent\"}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-gap-y-2\"},[(!_vm.restrictedToolBarItems.includes('collapsible-section'))?_c('toolbar-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.previewMarkdown),expression:\"!previewMarkdown\"}],attrs:{\"tag\":_vm.mdCollapsibleSection,\"prepend\":true,\"tag-select\":\"Click to expand\",\"button-title\":_vm.__('Add a collapsible section'),\"icon\":\"details-block\",\"tracking-property\":\"details\"}}):_vm._e(),_vm._v(\" \"),(!_vm.hideDividerBeforeTable)?_c('header-divider'):_vm._e()],1),_vm._v(\" \"),(!_vm.restrictedToolBarItems.includes('table'))?_c('toolbar-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.previewMarkdown),expression:\"!previewMarkdown\"}],attrs:{\"tag\":_vm.mdTable,\"prepend\":true,\"button-title\":_vm.__('Add a table'),\"icon\":\"table\",\"tracking-property\":\"table\"}}):_vm._e(),_vm._v(\" \"),_c('toolbar-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.previewMarkdown && !_vm.restrictedToolBarItems.includes('attach-file')),expression:\"!previewMarkdown && !restrictedToolBarItems.includes('attach-file')\"}],staticClass:\"gl-mr-2\",attrs:{\"data-testid\":\"button-attach-file\",\"data-button-type\":\"attach-file\",\"button-title\":_vm.__('Attach a file or image'),\"icon\":\"paperclip\",\"tracking-property\":\"upload\"}}),_vm._v(\" \"),(!_vm.previewMarkdown && _vm.drawioEnabled)?_c('drawio-toolbar-button',{attrs:{\"uploads-path\":_vm.uploadsPath,\"markdown-preview-path\":_vm.markdownPreviewPath}}):_vm._e(),_vm._v(\" \"),(_vm.supportsQuickActions)?_c('toolbar-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.previewMarkdown),expression:\"!previewMarkdown\"}],attrs:{\"prepend\":true,\"tag\":\"/\",\"button-title\":_vm.__('Add a quick action'),\"icon\":\"quick-actions\",\"tracking-property\":\"quickAction\"}}):_vm._e(),_vm._v(\" \"),(!_vm.previewMarkdown && _vm.newCommentTemplatePaths.length)?_c('comment-templates-modal',{attrs:{\"new-comment-template-paths\":_vm.newCommentTemplatePaths},on:{\"select\":_vm.insertSavedReply}}):_vm._e(),_vm._v(\" \"),(!_vm.previewMarkdown && _vm.canSummarizeChanges)?[_c('header-divider'),_vm._v(\" \"),_c('summarize-code-changes')]:_vm._e(),_vm._v(\" \"),(!_vm.previewMarkdown)?_vm._t(\"header-buttons\"):_vm._e()],2),_vm._v(\" \"),(!_vm.previewMarkdown)?_c('div',{staticClass:\"full-screen gl-flex gl-grow gl-justify-end\"},[(!_vm.restrictedToolBarItems.includes('full-screen'))?_c('toolbar-button',{staticClass:\"js-zen-enter !gl-mr-0\",attrs:{\"icon\":\"maximize\",\"button-title\":_vm.__('Go full screen'),\"prepend\":true,\"tracking-property\":\"fullScreen\"}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.showFindAndReplaceButton)?_c('toolbar-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.previewMarkdown),expression:\"!previewMarkdown\"}],staticClass:\"gl-hidden\",attrs:{\"button-title\":_vm.s__('MarkdownEditor|Find and replace'),\"shortcuts\":_vm.$options.shortcuts.findAndReplace,\"icon\":\"retry\"}}):_vm._e()],1)]),_vm._v(\" \"),(_vm.shouldShowFindAndReplaceBar)?_c('div',{staticClass:\"gl-border gl-absolute gl-right-0 gl-z-1 gl-flex gl-w-34 gl-rounded-bl-base gl-border-r-0 gl-bg-section gl-p-3 gl-shadow-sm\",attrs:{\"data-testid\":\"find-and-replace\"}},[_c('gl-form-input',{attrs:{\"placeholder\":_vm.__('Find'),\"autofocus\":\"\",\"data-testid\":\"find-btn\"},on:{\"keydown\":_vm.handleKeyDown},model:{value:(_vm.findAndReplace.find),callback:function ($$v) {_vm.$set(_vm.findAndReplace, \"find\", $$v)},expression:\"findAndReplace.find\"}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./toolbar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./toolbar.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlButton, GlLoadingIcon, GlSprintf, GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { updateText } from '~/lib/utils/text_markdown';\nimport EditorModeSwitcher from './editor_mode_switcher.vue';\n\nexport default {\n components: {\n GlButton,\n GlLoadingIcon,\n GlSprintf,\n GlIcon,\n EditorModeSwitcher,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n markdownDocsPath: {\n type: String,\n required: true,\n },\n canAttachFile: {\n type: Boolean,\n required: false,\n default: true,\n },\n showCommentToolBar: {\n type: Boolean,\n required: false,\n default: true,\n },\n showContentEditorSwitcher: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n showEditorModeSwitcher() {\n return this.showContentEditorSwitcher;\n },\n },\n methods: {\n insertIntoTextarea(...lines) {\n const text = lines.join('\\n');\n const textArea = this.$el.closest('.md-area')?.querySelector('textarea');\n if (textArea && !textArea.value) {\n updateText({\n textArea,\n tag: text,\n cursorOffset: 0,\n wrap: false,\n });\n }\n },\n },\n};\n</script>\n\n<template>\n <div\n v-if=\"showCommentToolBar\"\n class=\"comment-toolbar gl-flex gl-flex-row gl-rounded-b-base gl-px-2\"\n :class=\"\n showContentEditorSwitcher\n ? 'gl-border-t gl-items-center gl-justify-between gl-border-default'\n : 'gl-my-2 gl-justify-end'\n \"\n >\n <editor-mode-switcher\n v-if=\"showEditorModeSwitcher\"\n size=\"small\"\n value=\"markdown\"\n @switch=\"$emit('enableContentEditor')\"\n />\n <div class=\"gl-flex\">\n <div v-if=\"canAttachFile\" class=\"uploading-container gl-mr-3 gl-text-sm gl-leading-32\">\n <span class=\"uploading-progress-container hide\">\n <gl-icon name=\"paperclip\" />\n <span class=\"attaching-file-message\"></span>\n <!-- eslint-disable-next-line @gitlab/vue-require-i18n-strings -->\n <span class=\"uploading-progress\">0%</span>\n <gl-loading-icon size=\"sm\" inline />\n </span>\n <span class=\"uploading-error-container hide\">\n <span class=\"uploading-error-icon\">\n <gl-icon name=\"paperclip\" />\n </span>\n <span class=\"uploading-error-message\"></span>\n\n <gl-sprintf\n :message=\"\n __(\n '%{retryButtonStart}Try again%{retryButtonEnd} or %{newFileButtonStart}attach a new file%{newFileButtonEnd}.',\n )\n \"\n >\n <template #retryButton=\"{ content }\">\n <gl-button\n variant=\"link\"\n category=\"primary\"\n class=\"retry-uploading-link gl-align-baseline !gl-text-sm\"\n >\n {{ content }}\n </gl-button>\n </template>\n <template #newFileButton=\"{ content }\">\n <gl-button\n variant=\"link\"\n category=\"primary\"\n class=\"markdown-selector attach-new-file gl-align-baseline !gl-text-sm\"\n >\n {{ content }}\n </gl-button>\n </template>\n </gl-sprintf>\n </span>\n <gl-button\n variant=\"link\"\n category=\"primary\"\n class=\"button-cancel-uploading-files hide gl-align-baseline !gl-text-sm\"\n >\n {{ __('Cancel') }}\n </gl-button>\n </div>\n <slot name=\"toolbar\"></slot>\n <gl-button\n v-if=\"markdownDocsPath\"\n v-gl-tooltip\n icon=\"markdown-mark\"\n :href=\"markdownDocsPath\"\n target=\"_blank\"\n category=\"tertiary\"\n size=\"small\"\n :title=\"__('Markdown is supported')\"\n :aria-label=\"__('Markdown is supported')\"\n class=\"!gl-px-3\"\n />\n </div>\n </div>\n</template>\n","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport $ from 'jquery';\nimport { debounce, isEqual, unescape } from 'lodash';\nimport { createAlert } from '~/alert';\nimport GLForm from '~/gl_form';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport axios from '~/lib/utils/axios_utils';\nimport { stripHtml } from '~/lib/utils/text_utility';\nimport { __, sprintf } from '~/locale';\nimport Suggestions from '~/vue_shared/components/markdown/suggestions.vue';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { renderGFM } from '~/behaviors/markdown/render_gfm';\nimport { MARKDOWN_EDITOR_READY_EVENT } from '~/vue_shared/constants';\nimport markdownEditorEventHub from '~/vue_shared/components/markdown/eventhub';\nimport MarkdownHeader from './header.vue';\nimport MarkdownToolbar from './toolbar.vue';\n\nfunction cleanUpLine(content) {\n return unescape(stripHtml(content).replace(/\\\\n/g, '%br').replace(/\\n/g, ''));\n}\n\nexport default {\n components: {\n MarkdownHeader,\n MarkdownToolbar,\n GlIcon,\n Suggestions,\n },\n directives: {\n SafeHtml,\n GlTooltip: GlTooltipDirective,\n },\n mixins: [glFeatureFlagsMixin()],\n props: {\n /**\n * This prop should be bound to the value of the `<textarea>` element\n * that is rendered as a child of this component (in the `textarea` slot)\n */\n textareaValue: {\n type: String,\n required: true,\n },\n markdownDocsPath: {\n type: String,\n required: true,\n },\n isSubmitting: {\n type: Boolean,\n required: false,\n default: false,\n },\n markdownPreviewPath: {\n type: String,\n required: false,\n default: '',\n },\n enablePreview: {\n type: Boolean,\n required: false,\n default: true,\n },\n addSpacingClasses: {\n type: Boolean,\n required: false,\n default: true,\n },\n removeBorder: {\n type: Boolean,\n required: false,\n default: false,\n },\n supportsQuickActions: {\n type: Boolean,\n required: false,\n default: false,\n },\n canAttachFile: {\n type: Boolean,\n required: false,\n default: true,\n },\n uploadsPath: {\n type: String,\n required: false,\n default: '',\n },\n enableAutocomplete: {\n type: Boolean,\n required: false,\n default: true,\n },\n autocompleteDataSources: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n line: {\n type: Object,\n required: false,\n default: null,\n },\n lines: {\n type: Array,\n required: false,\n default: () => [],\n },\n note: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n canSuggest: {\n type: Boolean,\n required: false,\n default: false,\n },\n helpPagePath: {\n type: String,\n required: false,\n default: '',\n },\n showSuggestPopover: {\n type: Boolean,\n required: false,\n default: false,\n },\n showCommentToolBar: {\n type: Boolean,\n required: false,\n default: true,\n },\n restrictedToolBarItems: {\n type: Array,\n required: false,\n default: () => [],\n },\n showContentEditorSwitcher: {\n type: Boolean,\n required: false,\n default: false,\n },\n drawioEnabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n glForm: null,\n markdownPreview: '',\n referencedCommands: '',\n referencedUsers: [],\n hasSuggestion: false,\n markdownPreviewLoading: false,\n previewMarkdown: false,\n suggestions: this.note.suggestions || [],\n debouncedFetchMarkdownLoading: false,\n };\n },\n computed: {\n shouldShowReferencedUsers() {\n const referencedUsersThreshold = 10;\n return this.referencedUsers.length >= referencedUsersThreshold;\n },\n lineContent() {\n if (this.lines.length) {\n return this.lines\n .map((line) => {\n const { rich_text: richText, text } = line;\n\n if (text) {\n return text;\n }\n\n return cleanUpLine(richText);\n })\n .join('\\\\n');\n }\n\n if (this.line) {\n const { rich_text: richText, text } = this.line;\n\n if (text) {\n return text;\n }\n\n return cleanUpLine(richText);\n }\n\n return '';\n },\n lineNumber() {\n let lineNumber;\n if (this.line) {\n const { new_line: newLine, old_line: oldLine } = this.line;\n lineNumber = newLine || oldLine;\n }\n return lineNumber;\n },\n lineType() {\n return this.line ? this.line.type : '';\n },\n addMultipleToDiscussionWarning() {\n return sprintf(\n __(\n 'You are about to add %{usersTag} people to the discussion. They will all receive a notification.',\n ),\n {\n usersTag: `<strong><span class=\"js-referenced-users-count\">${this.referencedUsers.length}</span></strong>`,\n },\n false,\n );\n },\n suggestionsStartIndex() {\n return Math.max(this.lines.length - 1, 0);\n },\n },\n watch: {\n isSubmitting(isSubmitting) {\n if (!isSubmitting || !this.$refs['markdown-preview'].querySelectorAll) {\n return;\n }\n const mediaInPreview = this.$refs['markdown-preview'].querySelectorAll('video, audio');\n\n if (mediaInPreview) {\n mediaInPreview.forEach((media) => {\n media.pause();\n });\n }\n },\n\n textareaValue: {\n immediate: true,\n handler(textareaValue, oldVal) {\n const all = /@all([^\\w._-]|$)/;\n const hasAll = all.test(textareaValue);\n const hadAll = all.test(oldVal);\n\n const justAddedAll = !hadAll && hasAll;\n const justRemovedAll = hadAll && !hasAll;\n\n if (justAddedAll) {\n this.debouncedFetchMarkdownLoading = false;\n this.debouncedFetchMarkdown();\n } else if (justRemovedAll) {\n this.debouncedFetchMarkdownLoading = true;\n this.referencedUsers = [];\n }\n },\n },\n enablePreview: {\n immediate: true,\n handler(newVal) {\n if (!newVal) {\n this.hidePreview();\n }\n },\n },\n autocompleteDataSources: {\n immediate: true,\n handler(newDataSources, oldDataSources) {\n if (!isEqual(newDataSources, oldDataSources) && this.glForm) {\n this.glForm.updateAutocompleteDataSources(newDataSources);\n }\n },\n },\n },\n mounted() {\n this.glForm = new GLForm(\n $(this.$refs['gl-form']),\n {\n emojis: this.enableAutocomplete,\n members: this.enableAutocomplete,\n issues: this.enableAutocomplete,\n mergeRequests: this.enableAutocomplete,\n epics: this.enableAutocomplete,\n milestones: this.enableAutocomplete,\n labels: this.enableAutocomplete,\n snippets: this.enableAutocomplete,\n vulnerabilities: this.enableAutocomplete,\n contacts: this.enableAutocomplete,\n },\n true,\n this.autocompleteDataSources,\n );\n\n markdownEditorEventHub.$emit(MARKDOWN_EDITOR_READY_EVENT);\n },\n beforeDestroy() {\n if (this.glForm) {\n this.glForm.destroy();\n }\n },\n methods: {\n showPreview() {\n if (this.previewMarkdown) return;\n\n this.previewMarkdown = true;\n\n if (this.textareaValue) {\n this.markdownPreviewLoading = true;\n this.markdownPreview = __('Loading…');\n\n this.fetchMarkdown()\n .then((data) => this.renderMarkdown(data))\n .catch(() =>\n createAlert({\n message: __('Error loading markdown preview'),\n }),\n );\n } else {\n this.renderMarkdown();\n }\n },\n\n hidePreview() {\n this.markdownPreview = '';\n this.previewMarkdown = false;\n },\n\n fetchMarkdown() {\n return axios.post(this.markdownPreviewPath, { text: this.textareaValue }).then(({ data }) => {\n const { references } = data;\n if (references) {\n this.referencedCommands = references.commands;\n this.referencedUsers = references.users;\n this.hasSuggestion = references.suggestions?.length > 0;\n this.suggestions = references.suggestions;\n }\n\n return data;\n });\n },\n\n debouncedFetchMarkdown: debounce(function debouncedFetchMarkdown() {\n return this.fetchMarkdown().then(() => {\n if (this.debouncedFetchMarkdownLoading) {\n this.referencedUsers = [];\n this.debouncedFetchMarkdownLoading = false;\n }\n });\n }, 400),\n\n renderMarkdown(data = {}) {\n const { references } = data;\n if (!references) {\n this.referencedCommands = '';\n }\n\n this.markdownPreviewLoading = false;\n this.markdownPreview = data.body || data.html || __('Nothing to preview.');\n\n this.$nextTick()\n .then(() => {\n renderGFM(this.$refs['markdown-preview']);\n })\n .catch(() =>\n createAlert({\n message: __('Error rendering Markdown preview'),\n }),\n );\n },\n },\n safeHtmlConfig: {\n ADD_TAGS: ['gl-emoji'],\n },\n};\n</script>\n\n<template>\n <div\n ref=\"gl-form\"\n class=\"js-vue-markdown-field md-area position-relative gfm-form\"\n :data-uploads-path=\"uploadsPath\"\n >\n <markdown-header\n :preview-markdown=\"previewMarkdown\"\n :line-content=\"lineContent\"\n :can-suggest=\"canSuggest\"\n :enable-preview=\"enablePreview\"\n :show-suggest-popover=\"showSuggestPopover\"\n :suggestion-start-index=\"suggestionsStartIndex\"\n :uploads-path=\"uploadsPath\"\n :markdown-preview-path=\"markdownPreviewPath\"\n :drawio-enabled=\"drawioEnabled\"\n :supports-quick-actions=\"supportsQuickActions\"\n data-testid=\"markdownHeader\"\n :restricted-tool-bar-items=\"restrictedToolBarItems\"\n @showPreview=\"showPreview\"\n @hidePreview=\"hidePreview\"\n @handleSuggestDismissed=\"() => $emit('handleSuggestDismissed')\"\n >\n <template #header-buttons><slot name=\"header-buttons\"></slot></template>\n </markdown-header>\n <div v-show=\"!previewMarkdown\" class=\"md-write-holder\">\n <div class=\"zen-backdrop\">\n <slot name=\"textarea\"></slot>\n <a\n v-gl-tooltip.placement.left\n class=\"zen-control zen-control-leave js-zen-leave gl-button btn-default-tertiary btn-icon btn-sm\"\n href=\"#\"\n :title=\"__('Exit full screen')\"\n :aria-label=\"__('Exit full screen')\"\n ><gl-icon variant=\"subtle\" :size=\"24\" name=\"minimize\"\n /></a>\n <markdown-toolbar\n :markdown-docs-path=\"markdownDocsPath\"\n :can-attach-file=\"canAttachFile\"\n :show-comment-tool-bar=\"showCommentToolBar\"\n :show-content-editor-switcher=\"showContentEditorSwitcher\"\n @enableContentEditor=\"$emit('enableContentEditor')\"\n >\n <template #toolbar><slot name=\"toolbar\"></slot></template>\n </markdown-toolbar>\n </div>\n </div>\n <div\n v-show=\"previewMarkdown\"\n ref=\"markdown-preview\"\n class=\"js-vue-md-preview md-preview-holder gl-px-5\"\n >\n <suggestions\n v-if=\"hasSuggestion\"\n :note-html=\"markdownPreview\"\n :line-type=\"lineType\"\n :disabled=\"true\"\n :suggestions=\"suggestions\"\n :help-page-path=\"helpPagePath\"\n />\n <template v-else>\n <div v-safe-html:[$options.safeHtmlConfig]=\"markdownPreview\" class=\"md\"></div>\n </template>\n </div>\n <div\n v-if=\"referencedCommands && previewMarkdown && !markdownPreviewLoading\"\n v-safe-html:[$options.safeHtmlConfig]=\"referencedCommands\"\n class=\"referenced-commands gl-mx-2 gl-mb-2 gl-rounded-bl-base gl-rounded-br-base gl-px-4\"\n data-testid=\"referenced-commands\"\n ></div>\n <div v-if=\"shouldShowReferencedUsers\" class=\"referenced-users\">\n <gl-icon name=\"warning-solid\" />\n <span v-safe-html:[$options.safeHtmlConfig]=\"addMultipleToDiscussionWarning\"></span>\n </div>\n </div>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./field.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./field.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./toolbar.vue?vue&type=template&id=e7a7c9ea\"\nimport script from \"./toolbar.vue?vue&type=script&lang=js\"\nexport * from \"./toolbar.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showCommentToolBar)?_c('div',{staticClass:\"comment-toolbar gl-flex gl-flex-row gl-rounded-b-base gl-px-2\",class:_vm.showContentEditorSwitcher\n ? 'gl-border-t gl-items-center gl-justify-between gl-border-default'\n : 'gl-my-2 gl-justify-end'},[(_vm.showEditorModeSwitcher)?_c('editor-mode-switcher',{attrs:{\"size\":\"small\",\"value\":\"markdown\"},on:{\"switch\":function($event){return _vm.$emit('enableContentEditor')}}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex\"},[(_vm.canAttachFile)?_c('div',{staticClass:\"uploading-container gl-mr-3 gl-text-sm gl-leading-32\"},[_c('span',{staticClass:\"uploading-progress-container hide\"},[_c('gl-icon',{attrs:{\"name\":\"paperclip\"}}),_vm._v(\" \"),_c('span',{staticClass:\"attaching-file-message\"}),_vm._v(\" \"),_c('span',{staticClass:\"uploading-progress\"},[_vm._v(\"0%\")]),_vm._v(\" \"),_c('gl-loading-icon',{attrs:{\"size\":\"sm\",\"inline\":\"\"}})],1),_vm._v(\" \"),_c('span',{staticClass:\"uploading-error-container hide\"},[_c('span',{staticClass:\"uploading-error-icon\"},[_c('gl-icon',{attrs:{\"name\":\"paperclip\"}})],1),_vm._v(\" \"),_c('span',{staticClass:\"uploading-error-message\"}),_vm._v(\" \"),_c('gl-sprintf',{attrs:{\"message\":_vm.__(\n '%{retryButtonStart}Try again%{retryButtonEnd} or %{newFileButtonStart}attach a new file%{newFileButtonEnd}.',\n )},scopedSlots:_vm._u([{key:\"retryButton\",fn:function({ content }){return [_c('gl-button',{staticClass:\"retry-uploading-link gl-align-baseline !gl-text-sm\",attrs:{\"variant\":\"link\",\"category\":\"primary\"}},[_vm._v(\"\\n \"+_vm._s(content)+\"\\n \")])]}},{key:\"newFileButton\",fn:function({ content }){return [_c('gl-button',{staticClass:\"markdown-selector attach-new-file gl-align-baseline !gl-text-sm\",attrs:{\"variant\":\"link\",\"category\":\"primary\"}},[_vm._v(\"\\n \"+_vm._s(content)+\"\\n \")])]}}],null,false,3239805150)})],1),_vm._v(\" \"),_c('gl-button',{staticClass:\"button-cancel-uploading-files hide gl-align-baseline !gl-text-sm\",attrs:{\"variant\":\"link\",\"category\":\"primary\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Cancel'))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),_vm._t(\"toolbar\"),_vm._v(\" \"),(_vm.markdownDocsPath)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"!gl-px-3\",attrs:{\"icon\":\"markdown-mark\",\"href\":_vm.markdownDocsPath,\"target\":\"_blank\",\"category\":\"tertiary\",\"size\":\"small\",\"title\":_vm.__('Markdown is supported'),\"aria-label\":_vm.__('Markdown is supported')}}):_vm._e()],2)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./field.vue?vue&type=template&id=4ae0f370\"\nimport script from \"./field.vue?vue&type=script&lang=js\"\nexport * from \"./field.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardListFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardList\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardListShared\"},\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":113}};\n doc.loc.source = {\"body\":\"#import \\\"./board_list_shared.fragment.graphql\\\"\\n\\nfragment BoardListFragment on BoardList {\\n ...BoardListShared\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./board_list_shared.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"BoardListFragment\"] = oneQuery(doc, \"BoardListFragment\");\n \n","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport { apolloProvider } from '~/graphql_shared/issuable_client';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport { getLocationHash } from '~/lib/utils/url_utility';\nimport NotesApp from './components/notes_app.vue';\nimport { store } from './stores';\nimport { getNotesFilterData } from './utils/get_notes_filter_data';\n\nexport default ({ editorAiActions = [] } = {}) => {\n const el = document.getElementById('js-vue-notes');\n if (!el) {\n return;\n }\n\n Vue.use(VueApollo);\n\n const notesFilterProps = getNotesFilterData(el);\n const showTimelineViewToggle = parseBoolean(el.dataset.showTimelineViewToggle);\n\n const notesDataset = el.dataset;\n const parsedUserData = JSON.parse(notesDataset.currentUserData);\n const noteableData = JSON.parse(notesDataset.noteableData);\n let currentUserData = {};\n\n noteableData.noteableType = notesDataset.noteableType;\n noteableData.targetType = notesDataset.targetType;\n noteableData.discussion_locked = parseBoolean(noteableData.discussion_locked);\n\n if (parsedUserData) {\n currentUserData = {\n id: parsedUserData.id,\n name: parsedUserData.name,\n username: parsedUserData.username,\n avatar_url: parsedUserData.avatar_path || parsedUserData.avatar_url,\n path: parsedUserData.path,\n can_add_timeline_events: parseBoolean(notesDataset.canAddTimelineEvents),\n };\n }\n\n const notesData = JSON.parse(notesDataset.notesData);\n\n store.dispatch('setNotesData', notesData);\n store.dispatch('setNoteableData', noteableData);\n store.dispatch('setUserData', currentUserData);\n store.dispatch('setTargetNoteHash', getLocationHash());\n store.dispatch('fetchNotes');\n\n // eslint-disable-next-line no-new\n new Vue({\n el,\n name: 'NotesRoot',\n components: {\n NotesApp,\n },\n store,\n apolloProvider,\n provide: {\n showTimelineViewToggle,\n reportAbusePath: notesDataset.reportAbusePath,\n newCommentTemplatePaths: JSON.parse(notesDataset.newCommentTemplatePaths),\n resourceGlobalId: convertToGraphQLId(noteableData.noteableType, noteableData.id),\n editorAiActions: editorAiActions.map((factory) => factory(noteableData)),\n newCustomEmojiPath: notesDataset.newCustomEmojiPath,\n },\n data() {\n return {\n noteableData,\n currentUserData,\n notesData: JSON.parse(notesDataset.notesData),\n };\n },\n render(createElement) {\n return createElement('notes-app', {\n props: {\n noteableData: this.noteableData,\n notesData: this.notesData,\n userData: this.currentUserData,\n ...notesFilterProps,\n },\n });\n },\n });\n};\n","// eslint-disable-next-line no-restricted-imports\nimport { mapGetters } from 'vuex';\n\nexport default {\n computed: {\n ...mapGetters(['getNoteableDataByProp']),\n isProjectArchived() {\n return this.getNoteableDataByProp('is_project_archived');\n },\n archivedProjectDocsPath() {\n return this.getNoteableDataByProp('archived_project_docs_path');\n },\n lockedIssueDocsPath() {\n return this.getNoteableDataByProp('locked_discussion_docs_path');\n },\n },\n methods: {\n isLocked(issue) {\n return Boolean(issue.discussion_locked);\n },\n },\n};\n","// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport { getDraftReplyFormData, getDraftFormData } from '~/batch_comments/utils';\nimport {\n TEXT_DIFF_POSITION_TYPE,\n IMAGE_DIFF_POSITION_TYPE,\n FILE_DIFF_POSITION_TYPE,\n} from '~/diffs/constants';\nimport { createAlert } from '~/alert';\nimport { clearDraft } from '~/lib/utils/autosave';\nimport { sprintf } from '~/locale';\nimport { formatLineRange } from '~/notes/components/multiline_comment_utils';\nimport { SAVING_THE_COMMENT_FAILED, SOMETHING_WENT_WRONG } from '~/diffs/i18n';\n\nexport default {\n computed: {\n ...mapState({\n noteableData: (state) => state.notes.noteableData,\n notesData: (state) => state.notes.notesData,\n withBatchComments: (state) => state.batchComments?.withBatchComments,\n }),\n ...mapGetters('diffs', ['getDiffFileByHash']),\n ...mapGetters('batchComments', ['shouldRenderDraftRowInDiscussion', 'draftForDiscussion']),\n ...mapState('diffs', ['commit', 'showWhitespace']),\n },\n methods: {\n ...mapActions('diffs', ['cancelCommentForm', 'toggleFileCommentForm']),\n ...mapActions('batchComments', ['addDraftToReview', 'saveDraft', 'insertDraftIntoDrafts']),\n // eslint-disable-next-line max-params\n addReplyToReview(noteText, isResolving, parentElement, errorCallback) {\n const postData = getDraftReplyFormData({\n in_reply_to_discussion_id: this.discussion.reply_id,\n target_type: this.getNoteableData.targetType,\n notesData: this.notesData,\n draft_note: {\n note: noteText,\n resolve_discussion: isResolving,\n },\n });\n\n if (this.discussion.for_commit) {\n postData.note_project_id = this.discussion.project_id;\n }\n\n this.saveDraft(postData)\n .then(() => {\n this.isReplying = false;\n this.handleClearForm(this.discussion.line_code);\n })\n .catch((response) => {\n const reason = response?.data?.errors;\n const errorMessage = reason\n ? sprintf(SAVING_THE_COMMENT_FAILED, { reason })\n : SOMETHING_WENT_WRONG;\n\n createAlert({\n message: errorMessage,\n parent: parentElement,\n });\n\n errorCallback();\n });\n },\n // eslint-disable-next-line max-params\n addToReview(note, positionType = null, parentElement, errorCallback) {\n const lineRange =\n (this.line && this.commentLineStart && formatLineRange(this.commentLineStart, this.line)) ||\n {};\n const position =\n positionType ||\n (this.diffFileCommentForm ? IMAGE_DIFF_POSITION_TYPE : TEXT_DIFF_POSITION_TYPE);\n const diffFile = this.diffFile || this.file;\n const postData = getDraftFormData({\n note,\n notesData: this.notesData,\n noteableData: this.noteableData,\n noteableType: this.noteableType,\n noteTargetLine: this.noteTargetLine,\n diffViewType: this.diffViewType,\n diffFile,\n linePosition: this.position,\n positionType: position,\n ...this.diffFileCommentForm,\n lineRange,\n showWhitespace: this.showWhitespace,\n });\n\n const diffFileHeadSha = this.commit && diffFile?.diff_refs?.head_sha;\n\n postData.data.note.commit_id = diffFileHeadSha || null;\n\n return this.saveDraft(postData)\n .then(() => {\n if (position === IMAGE_DIFF_POSITION_TYPE) {\n this.closeDiffFileCommentForm(this.diffFileHash);\n } else if (this.line?.line_code) {\n this.handleClearForm(this.line.line_code);\n } else if (position === FILE_DIFF_POSITION_TYPE) {\n this.toggleFileCommentForm(diffFile.file_path);\n }\n })\n .catch((response) => {\n const reason = response?.data?.errors;\n const errorMessage = reason\n ? sprintf(SAVING_THE_COMMENT_FAILED, { reason })\n : SOMETHING_WENT_WRONG;\n\n createAlert({\n message: errorMessage,\n parent: parentElement,\n });\n\n errorCallback();\n });\n },\n handleClearForm(lineCode) {\n this.cancelCommentForm({\n lineCode,\n fileHash: this.diffFileHash,\n });\n this.$nextTick(() => {\n if (this.autosaveKey) {\n clearDraft(this.autosaveKey);\n } else {\n // TODO: remove the following after replacing the autosave mixin\n // https://gitlab.com/gitlab-org/gitlab-foss/issues/60587\n this.resetAutoSave();\n }\n });\n },\n showDraft(replyId) {\n return this.withBatchComments && this.shouldRenderDraftRowInDiscussion(replyId);\n },\n },\n};\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","import { translate } from '../../../utils/i18n';\nimport { progressBarVariantOptions } from '../../../utils/constants';\nimport { toFloat } from '../../../utils/number_utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst backgroundClasses = {\n [progressBarVariantOptions.primary]: 'gl-progress-bar-primary',\n [progressBarVariantOptions.success]: 'gl-progress-bar-success',\n [progressBarVariantOptions.danger]: 'gl-progress-bar-danger',\n [progressBarVariantOptions.warning]: 'gl-progress-bar-warning'\n};\nvar script = {\n name: 'GlProgressBar',\n props: {\n ariaLabel: {\n type: String,\n required: false,\n default: translate('GlProgressBar.ariaLabel', 'Progress bar')\n },\n value: {\n type: [Number, String],\n required: false,\n default: 0\n },\n variant: {\n type: String,\n required: false,\n default: 'primary',\n validator: value => Object.keys(progressBarVariantOptions).includes(value)\n },\n max: {\n type: [Number, String],\n required: false,\n default: 100\n },\n height: {\n type: String,\n required: false,\n default: null\n }\n },\n computed: {\n progressHeight() {\n return {\n height: this.height\n };\n },\n computedValue() {\n return toFloat(this.value, 0);\n },\n computedMax() {\n const max = toFloat(this.max, 100);\n return max > 0 ? max : 100;\n },\n progressBarStyles() {\n return {\n transform: `scaleX(${this.computedValue / this.computedMax})`\n };\n },\n classes() {\n return ['gl-progress', backgroundClasses[this.variant]];\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-progress-bar progress\",style:(_vm.progressHeight)},[_c('div',{class:_vm.classes,style:(_vm.progressBarStyles),attrs:{\"role\":\"progressbar\",\"aria-label\":_vm.ariaLabel,\"aria-valuemin\":\"0\",\"aria-valuemax\":String(_vm.computedMax),\"aria-valuenow\":_vm.computedValue}})])};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import { escapeRegExp } from 'lodash';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { queryToObject } from '~/lib/utils/url_utility';\nimport AccessorUtilities from '~/lib/utils/accessor';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport { TYPE_EPIC, TYPE_ISSUE } from '~/issues/constants';\n\nimport {\n NEW_WORK_ITEM_IID,\n WIDGET_TYPE_ASSIGNEES,\n WIDGET_TYPE_DESIGNS,\n WIDGET_TYPE_HEALTH_STATUS,\n WIDGET_TYPE_HIERARCHY,\n WIDGET_TYPE_LABELS,\n WIDGET_TYPE_MILESTONE,\n WIDGET_TYPE_NOTES,\n WIDGET_TYPE_START_AND_DUE_DATE,\n WIDGET_TYPE_WEIGHT,\n WIDGET_TYPE_AWARD_EMOJI,\n WIDGET_TYPE_LINKED_ITEMS,\n ISSUABLE_EPIC,\n WORK_ITEMS_TYPE_MAP,\n WORK_ITEM_TYPE_ENUM_EPIC,\n WORK_ITEM_TYPE_ENUM_INCIDENT,\n WORK_ITEM_TYPE_ENUM_ISSUE,\n WORK_ITEM_TYPE_ENUM_TASK,\n WORK_ITEM_TYPE_ENUM_TEST_CASE,\n WORK_ITEM_TYPE_ENUM_OBJECTIVE,\n WORK_ITEM_TYPE_ENUM_KEY_RESULT,\n WORK_ITEM_TYPE_ENUM_REQUIREMENTS,\n WORK_ITEM_TYPE_ROUTE_WORK_ITEM,\n NEW_WORK_ITEM_GID,\n DEFAULT_PAGE_SIZE_CHILD_ITEMS,\n STATE_CLOSED,\n} from './constants';\n\nexport const isAssigneesWidget = (widget) => widget.type === WIDGET_TYPE_ASSIGNEES;\n\nexport const isHealthStatusWidget = (widget) => widget.type === WIDGET_TYPE_HEALTH_STATUS;\n\nexport const isLabelsWidget = (widget) => widget.type === WIDGET_TYPE_LABELS;\n\nexport const isMilestoneWidget = (widget) => widget.type === WIDGET_TYPE_MILESTONE;\n\nexport const isNotesWidget = (widget) => widget.type === WIDGET_TYPE_NOTES;\n\nexport const isStartAndDueDateWidget = (widget) => widget.type === WIDGET_TYPE_START_AND_DUE_DATE;\n\nexport const isWeightWidget = (widget) => widget.type === WIDGET_TYPE_WEIGHT;\n\nexport const findHierarchyWidgets = (widgets) =>\n widgets?.find((widget) => widget.type === WIDGET_TYPE_HIERARCHY);\n\nexport const findLinkedItemsWidget = (workItem) =>\n workItem.widgets?.find((widget) => widget.type === WIDGET_TYPE_LINKED_ITEMS);\n\nexport const findStartAndDueDateWidget = (workItem) =>\n workItem.widgets?.find((widget) => widget.type === WIDGET_TYPE_START_AND_DUE_DATE);\n\nexport const findAwardEmojiWidget = (workItem) =>\n workItem.widgets?.find((widget) => widget.type === WIDGET_TYPE_AWARD_EMOJI);\n\nexport const findHierarchyWidgetChildren = (workItem) =>\n findHierarchyWidgets(workItem?.widgets)?.children?.nodes || [];\n\nexport const findHierarchyWidgetAncestors = (workItem) =>\n findHierarchyWidgets(workItem?.widgets)?.ancestors?.nodes || [];\n\nexport const findDesignWidget = (widgets) =>\n widgets?.find((widget) => widget.type === WIDGET_TYPE_DESIGNS);\n\nexport const getWorkItemIcon = (icon) => {\n if (icon === ISSUABLE_EPIC) return WORK_ITEMS_TYPE_MAP[WORK_ITEM_TYPE_ENUM_EPIC].icon;\n return icon;\n};\n\n/**\n * TODO: Remove this method with https://gitlab.com/gitlab-org/gitlab/-/issues/479637\n * We're currently setting children count per page based on `DEFAULT_PAGE_SIZE_CHILD_ITEMS`\n * but we need to find an ideal page size that's usable and fast enough. In order to test\n * correct page size in production with actual data, this method allows us to set page\n * size using query param (while falling back to `DEFAULT_PAGE_SIZE_CHILD_ITEMS`).\n */\nexport const getDefaultHierarchyChildrenCount = () => {\n const { children_count } = queryToObject(window.location.search);\n return Number(children_count) || DEFAULT_PAGE_SIZE_CHILD_ITEMS;\n};\n\nexport const formatAncestors = (workItem) =>\n findHierarchyWidgetAncestors(workItem).map((ancestor) => ({\n ...ancestor,\n icon: getWorkItemIcon(ancestor.workItemType?.iconName),\n href: ancestor.webUrl,\n }));\n\nexport const findHierarchyWidgetDefinition = (workItem) =>\n workItem.workItemType.widgetDefinitions?.find(\n (widgetDefinition) => widgetDefinition.type === WIDGET_TYPE_HIERARCHY,\n );\n\nconst autocompleteSourcesPath = ({ autocompleteType, fullPath, iid, workItemTypeId, isGroup }) => {\n const domain = gon.relative_url_root || '';\n const basePath = isGroup ? `groups/${fullPath}` : fullPath;\n\n const typeId =\n iid === NEW_WORK_ITEM_IID\n ? `work_item_type_id=${getIdFromGraphQLId(workItemTypeId)}`\n : `type_id=${iid}`;\n return `${domain}/${basePath}/-/autocomplete_sources/${autocompleteType}?type=WorkItem&${typeId}`;\n};\n\nexport const autocompleteDataSources = ({ fullPath, iid, workItemTypeId, isGroup = false }) => ({\n labels: autocompleteSourcesPath({\n autocompleteType: 'labels',\n fullPath,\n iid,\n isGroup,\n workItemTypeId,\n }),\n members: autocompleteSourcesPath({\n autocompleteType: 'members',\n fullPath,\n iid,\n isGroup,\n workItemTypeId,\n }),\n commands: autocompleteSourcesPath({\n autocompleteType: 'commands',\n fullPath,\n iid,\n isGroup,\n workItemTypeId,\n }),\n issues: autocompleteSourcesPath({\n autocompleteType: 'issues',\n fullPath,\n iid,\n isGroup,\n workItemTypeId,\n }),\n mergeRequests: autocompleteSourcesPath({\n autocompleteType: 'merge_requests',\n fullPath,\n iid,\n isGroup,\n workItemTypeId,\n }),\n epics: autocompleteSourcesPath({\n autocompleteType: 'epics',\n fullPath,\n iid,\n workItemTypeId,\n isGroup,\n }),\n milestones: autocompleteSourcesPath({\n autocompleteType: 'milestones',\n fullPath,\n iid,\n workItemTypeId,\n isGroup,\n }),\n iterations: autocompleteSourcesPath({\n autocompleteType: 'iterations',\n fullPath,\n iid,\n workItemTypeId,\n isGroup,\n }),\n});\n\nexport const markdownPreviewPath = ({ fullPath, iid, isGroup = false }) => {\n const domain = gon.relative_url_root || '';\n const basePath = isGroup ? `groups/${fullPath}` : fullPath;\n return `${domain}/${basePath}/-/preview_markdown?target_type=WorkItem&target_id=${iid}`;\n};\n\n// the path for creating a new work item of that type, e.g. /groups/gitlab-org/-/epics/new\nexport const newWorkItemPath = ({ fullPath, isGroup = false, workItemTypeName, query = '' }) => {\n const domain = gon.relative_url_root || '';\n const basePath = isGroup ? `groups/${fullPath}` : fullPath;\n const type =\n WORK_ITEMS_TYPE_MAP[workItemTypeName]?.routeParamName || WORK_ITEM_TYPE_ROUTE_WORK_ITEM;\n return `${domain}/${basePath}/-/${type}/new${query}`;\n};\n\nexport const getDisplayReference = (workItemFullPath, workitemReference) => {\n // The reference is replaced by work item fullpath in case the project and group are same.\n // e.g., gitlab-org/gitlab-test#45 will be shown as #45\n if (new RegExp(`${workItemFullPath}#`, 'g').test(workitemReference)) {\n return workitemReference.replace(new RegExp(`${workItemFullPath}`, 'g'), '');\n }\n return workitemReference;\n};\n\nexport const isReference = (input) => {\n /**\n * The regular expression checks if the `value` is\n * a project work item or group work item.\n * e.g., gitlab-org/project-path#101 or gitlab-org&101\n * or #1234\n */\n\n return /^([\\w-]+(?:\\/[\\w-]+)*)?[#&](\\d+)$/.test(input);\n};\n\nexport const sortNameAlphabetically = (a, b) => {\n return a.name.toLowerCase().localeCompare(b.name.toLowerCase());\n};\n\n/**\n * Builds path to Roadmap page pre-filtered by\n * work item iid\n *\n * @param {string} fullPath the path to the group\n * @param {string} iid the iid of the work item\n */\nexport const workItemRoadmapPath = (fullPath, iid) => {\n const domain = gon.relative_url_root || '';\n // We're hard-coding the values of `layout` & `timeframe_range_type` as those exist in `ee/app/assets/javascripts/roadmap/constants.js`\n // and importing those here also requires a corresponding file in non-EE scope and that's overengineering a query param.\n // This won't be needed once https://gitlab.com/gitlab-org/gitlab/-/issues/353191 is resolved.\n return `${domain}/groups/${fullPath}/-/roadmap?epic_iid=${iid}&layout=MONTHS&timeframe_range_type=CURRENT_YEAR`;\n};\n\n/**\n * Builds unique path for new work item\n *\n * @param {string} fullPath the path to the namespace\n * @param {string} workItemType the type of work item\n */\n\nexport const newWorkItemFullPath = (fullPath, workItemType) => {\n if (!workItemType) return undefined;\n\n const workItemTypeLowercase = workItemType.split(' ').join('-').toLowerCase();\n // eslint-disable-next-line @gitlab/require-i18n-strings\n return `${fullPath}-${workItemTypeLowercase}-id`;\n};\n\n/**\n * Checks whether the work item type is a valid enum\n *\n * @param {string} workItemType\n */\n\nexport const isWorkItemItemValidEnum = (workItemType) => {\n return (\n [\n WORK_ITEM_TYPE_ENUM_EPIC,\n WORK_ITEM_TYPE_ENUM_INCIDENT,\n WORK_ITEM_TYPE_ENUM_ISSUE,\n WORK_ITEM_TYPE_ENUM_TASK,\n WORK_ITEM_TYPE_ENUM_TEST_CASE,\n WORK_ITEM_TYPE_ENUM_OBJECTIVE,\n WORK_ITEM_TYPE_ENUM_KEY_RESULT,\n WORK_ITEM_TYPE_ENUM_REQUIREMENTS,\n ].indexOf(workItemType) >= 0\n );\n};\n\nexport const newWorkItemId = (workItemType) => {\n if (!workItemType) return undefined;\n\n const workItemTypeLowercase = workItemType.split(' ').join('-').toLowerCase();\n return `${NEW_WORK_ITEM_GID}-${workItemTypeLowercase}`;\n};\n\nexport const saveToggleToLocalStorage = (key, value) => {\n if (AccessorUtilities.canUseLocalStorage()) {\n localStorage.setItem(key, value);\n }\n};\n\nexport const getToggleFromLocalStorage = (key, defaultValue = true) => {\n if (AccessorUtilities.canUseLocalStorage()) {\n return parseBoolean(localStorage.getItem(key) ?? defaultValue);\n }\n return null;\n};\n\n/**\n * @param {{fullPath?: string, referencePath?: string}} activeItem\n * @param {string} fullPath\n * @param {string} issuableType\n * @returns {string}\n */\nexport const makeDrawerItemFullPath = (activeItem, fullPath, issuableType = TYPE_ISSUE) => {\n if (activeItem?.fullPath) {\n return activeItem.fullPath;\n }\n if (activeItem?.namespace?.fullPath) {\n return activeItem.namespace.fullPath;\n }\n\n const delimiter = issuableType === TYPE_EPIC ? '&' : '#';\n if (!activeItem?.referencePath) {\n return fullPath;\n }\n return activeItem.referencePath.split(delimiter)[0];\n};\n\n/**\n * since legacy epics don't have GID matching the work item ID, we need additional parameters\n * @param {{iid: string, id: string}} activeItem\n * @param {string} fullPath\n * @param {string} issuableType\n * @returns {{iid: string, full_path: string, id: number}}\n */\nexport const makeDrawerUrlParam = (activeItem, fullPath, issuableType = TYPE_ISSUE) => {\n return btoa(\n JSON.stringify({\n iid: activeItem.iid,\n full_path: makeDrawerItemFullPath(activeItem, fullPath, issuableType),\n id: getIdFromGraphQLId(activeItem.id),\n }),\n );\n};\n\nexport const getNewWorkItemAutoSaveKey = (fullPath, workItemType) => {\n if (!workItemType || !fullPath) return '';\n return `new-${fullPath}-${workItemType.toLowerCase()}-draft`;\n};\n\nexport const isItemDisplayable = (item, showClosed) => {\n return item.state !== STATE_CLOSED || (item.state === STATE_CLOSED && showClosed);\n};\n\nexport const getItems = (showClosed) => {\n return (children) => {\n return children.filter((item) => isItemDisplayable(item, showClosed));\n };\n};\n\nexport const canRouterNav = ({ fullPath, webUrl, isGroup, issueAsWorkItem }) => {\n const escapedFullPath = escapeRegExp(fullPath);\n // eslint-disable-next-line no-useless-escape\n const groupRegex = new RegExp(`groups\\/${escapedFullPath}\\/-\\/(work_items|epics)\\/\\\\d+`);\n // eslint-disable-next-line no-useless-escape\n const projectRegex = new RegExp(`${escapedFullPath}\\/-\\/(work_items|issues)\\/\\\\d+`);\n const canGroupNavigate = groupRegex.test(webUrl) && isGroup;\n const canProjectNavigate = projectRegex.test(webUrl) && issueAsWorkItem;\n return canGroupNavigate || canProjectNavigate;\n};\n\nexport const createBranchMRApiPathHelper = {\n canCreateBranch({ fullPath, workItemIid }) {\n return `/${fullPath}/-/issues/${workItemIid}/can_create_branch`;\n },\n createBranch({ fullPath, workItemIid, sourceBranch, targetBranch }) {\n return `/${fullPath}/-/branches?branch_name=${targetBranch}&format=json&issue_iid=${workItemIid}&ref=${sourceBranch}`;\n },\n createMR({ fullPath, workItemIid, sourceBranch, targetBranch }) {\n return `/${fullPath}/-/merge_requests/new?merge_request%5Bissue_iid%5D=${workItemIid}&merge_request%5Bsource_branch%5D=${sourceBranch}&merge_request%5Btarget_branch%5D=${targetBranch}`;\n },\n getRefs({ fullPath }) {\n return `/${fullPath}/refs?search=`;\n },\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ResolvedStatus\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Discussion\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resolvable\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resolved\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resolvedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resolvedBy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":130}};\n doc.loc.source = {\"body\":\"fragment ResolvedStatus on Discussion {\\n id\\n resolvable\\n resolved\\n resolvedAt\\n resolvedBy {\\n id\\n name\\n webUrl\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"ResolvedStatus\"] = oneQuery(doc, \"ResolvedStatus\");\n \n","import createEventHub from '~/helpers/event_hub_factory';\n\nexport default createEventHub();\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"data-testid\":\"image-viewer\"}},[_c('div',{staticClass:\"position-relative\",class:_vm.innerCssClasses},[_c('img',{ref:\"contentImg\",attrs:{\"src\":_vm.safePath},on:{\"load\":_vm.onImgLoad}}),_vm._v(\" \"),_vm._t(\"image-overlay\",null,{\"renderedWidth\":_vm.renderedWidth,\"renderedHeight\":_vm.renderedHeight})],2),_vm._v(\" \"),(_vm.renderInfo)?_c('p',{staticClass:\"image-info\"},[(_vm.hasFileSize)?[_vm._v(\"\\n \"+_vm._s(_vm.fileSizeReadable)+\"\\n \")]:_vm._e(),_vm._v(\" \"),(_vm.hasFileSize && _vm.hasDimensions)?[_vm._v(\" | \")]:_vm._e(),_vm._v(\" \"),(_vm.hasDimensions)?[_c('strong',[_vm._v(_vm._s(_vm.s__('ImageViewerDimensions|W')))]),_vm._v(\": \"+_vm._s(_vm.width)+\" | \"),_c('strong',[_vm._v(_vm._s(_vm.s__('ImageViewerDimensions|H')))]),_vm._v(\": \"+_vm._s(_vm.height)+\"\\n \")]:_vm._e()],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { throttle } from 'lodash';\nimport { numberToHumanSize } from '~/lib/utils/number_utils';\nimport { encodeSaferUrl } from '~/lib/utils/url_utility';\n\nconst BLOB_PREFIX = 'blob:';\n\nexport default {\n props: {\n path: {\n type: String,\n required: true,\n },\n fileSize: {\n type: Number,\n required: false,\n default: 0,\n },\n renderInfo: {\n type: Boolean,\n default: true,\n required: false,\n },\n innerCssClasses: {\n type: [Array, Object, String],\n required: false,\n default: '',\n },\n },\n data() {\n return {\n width: 0,\n height: 0,\n renderedWidth: 0,\n renderedHeight: 0,\n };\n },\n computed: {\n fileSizeReadable() {\n return numberToHumanSize(this.fileSize);\n },\n\n hasFileSize() {\n return this.fileSize > 0;\n },\n hasDimensions() {\n return this.width && this.height;\n },\n safePath() {\n return this.path.startsWith(BLOB_PREFIX) ? this.path : encodeSaferUrl(this.path);\n },\n },\n beforeDestroy() {\n window.removeEventListener('resize', this.resizeThrottled, false);\n },\n mounted() {\n // The onImgLoad may have happened before the control was actually mounted\n this.onImgLoad();\n this.resizeThrottled = throttle(this.onImgLoad, 400);\n window.addEventListener('resize', this.resizeThrottled, false);\n },\n methods: {\n onImgLoad() {\n requestIdleCallback(this.calculateImgSize, { timeout: 1000 });\n },\n calculateImgSize() {\n const { contentImg } = this.$refs;\n\n if (contentImg) {\n this.width = contentImg.naturalWidth;\n this.height = contentImg.naturalHeight;\n\n this.$nextTick(() => {\n this.renderedWidth = contentImg.clientWidth;\n this.renderedHeight = contentImg.clientHeight;\n\n this.$emit('imgLoaded', {\n width: this.width,\n height: this.height,\n renderedWidth: this.renderedWidth,\n renderedHeight: this.renderedHeight,\n });\n });\n }\n },\n },\n};\n</script>\n\n<template>\n <div data-testid=\"image-viewer\">\n <div :class=\"innerCssClasses\" class=\"position-relative\">\n <img ref=\"contentImg\" :src=\"safePath\" @load=\"onImgLoad\" />\n <slot\n name=\"image-overlay\"\n :rendered-width=\"renderedWidth\"\n :rendered-height=\"renderedHeight\"\n ></slot>\n </div>\n <p v-if=\"renderInfo\" class=\"image-info\">\n <template v-if=\"hasFileSize\">\n {{ fileSizeReadable }}\n </template>\n <template v-if=\"hasFileSize && hasDimensions\"> | </template>\n <template v-if=\"hasDimensions\">\n <strong>{{ s__('ImageViewerDimensions|W') }}</strong\n >: {{ width }} | <strong>{{ s__('ImageViewerDimensions|H') }}</strong\n >: {{ height }}\n </template>\n </p>\n </div>\n</template>\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./image_viewer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./image_viewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./image_viewer.vue?vue&type=template&id=bc7de830\"\nimport script from \"./image_viewer.vue?vue&type=script&lang=js\"\nexport * from \"./image_viewer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"md-area-wrapper gl-rounded-lg !gl-px-0\"},[(!_vm.isDefaultEditorEnabled)?_c('local-storage-sync',{attrs:{\"value\":_vm.editingMode,\"as-string\":\"\",\"storage-key\":_vm.$options.EDITING_MODE_KEY},on:{\"input\":_vm.onEditingModeRestored}}):_vm._e(),_vm._v(\" \"),(_vm.alert)?_c('gl-alert',{staticClass:\"gl-mb-4\",attrs:{\"variant\":_vm.alert.variant,\"primary-button-text\":_vm.alert.primaryButtonText,\"secondary-button-text\":_vm.alert.secondaryButtonText},on:{\"primaryAction\":_vm.alert.primaryAction,\"secondaryAction\":_vm.alert.secondaryAction,\"dismiss\":_vm.alert.dismiss}},[_vm._v(\"\\n \"+_vm._s(_vm.alert.message)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.isContentEditorActive)?_c('markdown-field',_vm._b({ref:\"markdownField\",attrs:{\"data-testid\":\"markdown-field\",\"markdown-preview-path\":_vm.renderMarkdownPath,\"can-attach-file\":!_vm.disableAttachments,\"can-suggest\":_vm.codeSuggestionsConfig.canSuggest,\"line\":_vm.codeSuggestionsConfig.line,\"lines\":_vm.codeSuggestionsConfig.lines,\"show-suggest-popover\":_vm.codeSuggestionsConfig.showPopover,\"textarea-value\":_vm.markdown,\"uploads-path\":_vm.uploadsPath,\"enable-autocomplete\":_vm.enableAutocomplete,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"markdown-docs-path\":_vm.markdownDocsPath,\"supports-quick-actions\":_vm.supportsQuickActions,\"show-content-editor-switcher\":_vm.enableContentEditor,\"drawio-enabled\":_vm.drawioEnabled,\"restricted-tool-bar-items\":_vm.markdownFieldRestrictedToolBarItems,\"remove-border\":true},on:{\"enableContentEditor\":function($event){return _vm.onEditingModeChange('contentEditor')},\"handleSuggestDismissed\":() => _vm.$emit('handleSuggestDismissed')},scopedSlots:_vm._u([{key:\"header-buttons\",fn:function(){return [_vm._t(\"header-buttons\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true},{key:\"textarea\",fn:function(){return [_c('textarea',_vm._b({ref:\"textarea\",staticClass:\"note-textarea js-gfm-input markdown-area\",attrs:{\"dir\":\"auto\",\"data-can-suggest\":_vm.codeSuggestionsConfig.canSuggest,\"data-noteable-type\":_vm.noteableType,\"data-supports-quick-actions\":_vm.supportsQuickActions,\"data-testid\":_vm.formFieldProps['data-testid'] || 'markdown-editor-form-field',\"disabled\":_vm.disabled},domProps:{\"value\":_vm.markdown},on:{\"input\":_vm.updateMarkdownFromMarkdownField,\"keydown\":function($event){return _vm.$emit('keydown', $event)}}},'textarea',_vm.formFieldProps,false))]},proxy:true}],null,true)},'markdown-field',_vm.$attrs,false)):_c('div',[_c('content-editor',{ref:\"contentEditor\",attrs:{\"render-markdown\":_vm.renderMarkdown,\"markdown-docs-path\":_vm.markdownDocsPath,\"uploads-path\":_vm.uploadsPath,\"markdown\":_vm.markdown,\"supports-quick-actions\":_vm.supportsQuickActions,\"autofocus\":_vm.contentEditorAutofocused,\"placeholder\":_vm.formFieldProps.placeholder,\"drawio-enabled\":_vm.drawioEnabled,\"enable-autocomplete\":_vm.enableAutocomplete,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"editable\":!_vm.disabled,\"disable-attachments\":_vm.disableAttachments,\"code-suggestions-config\":_vm.codeSuggestionsConfig,\"data-testid\":_vm.formFieldProps['data-testid'] || 'markdown-editor-form-field'},on:{\"initialized\":_vm.setEditorAsAutofocused,\"change\":_vm.updateMarkdownFromContentEditor,\"keydown\":_vm.onKeydown,\"enableMarkdownEditor\":function($event){return _vm.onEditingModeChange('markdownField')}},scopedSlots:_vm._u([{key:\"header-buttons\",fn:function(){return [_vm._t(\"header-buttons\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)}),_vm._v(\" \"),_c('input',_vm._b({attrs:{\"type\":\"hidden\"},domProps:{\"value\":_vm.markdown}},'input',_vm.formFieldProps,false))],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlAlert } from '@gitlab/ui';\nimport Autosize from 'autosize';\nimport { __ } from '~/locale';\nimport axios from '~/lib/utils/axios_utils';\nimport { updateDraft, clearDraft, getDraft } from '~/lib/utils/autosave';\nimport { setUrlParams, joinPaths } from '~/lib/utils/url_utility';\nimport LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';\nimport {\n EDITING_MODE_KEY,\n EDITING_MODE_MARKDOWN_FIELD,\n EDITING_MODE_CONTENT_EDITOR,\n CLEAR_AUTOSAVE_ENTRY_EVENT,\n} from '../../constants';\nimport MarkdownField from './field.vue';\nimport eventHub from './eventhub';\n\nasync function sleep(t = 10) {\n return new Promise((resolve) => {\n setTimeout(resolve, t);\n });\n}\n\nasync function waitFor(getEl, interval = 10, timeout = 2000) {\n if (timeout <= 0) return null;\n\n const el = getEl();\n if (el) return el;\n\n await sleep(interval);\n return waitFor(getEl, timeout - interval);\n}\n\nexport default {\n components: {\n GlAlert,\n MarkdownField,\n LocalStorageSync,\n ContentEditor: () =>\n import(\n /* webpackChunkName: 'content_editor' */ '~/content_editor/components/content_editor.vue'\n ),\n },\n props: {\n value: {\n type: String,\n required: true,\n },\n setFacade: {\n type: Function,\n required: false,\n default: null,\n },\n renderMarkdownPath: {\n type: String,\n required: true,\n },\n uploadsPath: {\n type: String,\n required: false,\n default: () => window.uploads_path || '',\n },\n enableContentEditor: {\n type: Boolean,\n required: false,\n default: true,\n },\n formFieldProps: {\n type: Object,\n required: true,\n },\n autofocus: {\n type: Boolean,\n required: false,\n default: false,\n },\n enableAutocomplete: {\n type: Boolean,\n required: false,\n default: true,\n },\n autocompleteDataSources: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n supportsQuickActions: {\n type: Boolean,\n required: false,\n default: false,\n },\n autosaveKey: {\n type: String,\n required: false,\n default: null,\n },\n markdownDocsPath: {\n type: String,\n required: false,\n default: '',\n },\n drawioEnabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n disableAttachments: {\n type: Boolean,\n required: false,\n default: false,\n },\n codeSuggestionsConfig: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n noteableType: {\n type: String,\n required: false,\n default: '',\n },\n restrictedToolBarItems: {\n type: Array,\n required: false,\n default: () => [],\n },\n restoreFromAutosave: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n let editingMode;\n switch (window.gon?.text_editor) {\n case 'rich_text_editor':\n editingMode = EDITING_MODE_CONTENT_EDITOR;\n break;\n case 'plain_text_editor':\n editingMode = EDITING_MODE_MARKDOWN_FIELD;\n break;\n default:\n editingMode =\n localStorage.getItem(this.$options.EDITING_MODE_KEY) || EDITING_MODE_MARKDOWN_FIELD;\n }\n\n const autosaveValue = this.autosaveKey ? getDraft(this.autosaveKey) : '';\n const initialValue = this.restoreFromAutosave ? autosaveValue : this.value;\n\n return {\n alert: null,\n markdown: initialValue || autosaveValue || '',\n editingMode,\n autofocused: false,\n };\n },\n computed: {\n isContentEditorActive() {\n return this.enableContentEditor && this.editingMode === EDITING_MODE_CONTENT_EDITOR;\n },\n contentEditorAutofocused() {\n // Match textarea focus behavior\n return this.autofocus && !this.autofocused ? 'end' : false;\n },\n markdownFieldRestrictedToolBarItems() {\n const restrictAttachments = this.disableAttachments ? ['attach-file'] : [];\n\n return [...this.restrictedToolBarItems, ...restrictAttachments];\n },\n isDefaultEditorEnabled() {\n return ['plain_text_editor', 'rich_text_editor'].includes(window.gon?.text_editor);\n },\n },\n watch: {\n value: 'updateValue',\n },\n mounted() {\n this.autofocusTextarea();\n\n this.$emit('input', this.markdown);\n this.saveDraft();\n\n this.setFacade?.({\n getValue: () => this.getValue(),\n setValue: (val) => this.setValue(val),\n });\n\n eventHub.$on(CLEAR_AUTOSAVE_ENTRY_EVENT, this.clearDraft);\n },\n beforeDestroy() {\n eventHub.$off(CLEAR_AUTOSAVE_ENTRY_EVENT, this.clearDraft);\n },\n methods: {\n getValue() {\n return this.markdown;\n },\n setValue(value) {\n this.$emit('input', value);\n this.updateValue(value);\n },\n updateValue(value) {\n this.markdown = value;\n this.saveDraft();\n this.autosizeTextarea();\n },\n append(value) {\n if (!value) {\n this.focus();\n return;\n }\n const newValue = [this.markdown.trim(), value].filter(Boolean).join('\\n\\n');\n this.updateValue(`${newValue}\\n\\n`);\n this.$nextTick(() => {\n this.focus();\n });\n },\n setTemplate(template, force = false) {\n if (!this.markdown || force) {\n this.setValue(template);\n } else {\n const dismiss = () => {\n this.alert = null;\n };\n this.alert = {\n message: this.$options.i18n.applyTemplateAlert.message,\n variant: 'warning',\n primaryButtonText: this.$options.i18n.applyTemplateAlert.primaryButtonText,\n secondaryButtonText: this.$options.i18n.applyTemplateAlert.secondaryButtonText,\n primaryAction: () => {\n this.setValue(template, true);\n dismiss();\n },\n secondaryAction: dismiss,\n dismiss,\n };\n }\n },\n updateMarkdownFromContentEditor({ markdown }) {\n this.markdown = markdown;\n this.$emit('input', markdown);\n\n this.saveDraft();\n },\n updateMarkdownFromMarkdownField({ target }) {\n this.markdown = target.value;\n this.$emit('input', target.value);\n\n this.saveDraft();\n },\n renderMarkdown(markdown) {\n const url = setUrlParams(\n { render_quick_actions: this.supportsQuickActions },\n joinPaths(window.location.origin, this.renderMarkdownPath),\n );\n return axios\n .post(url, { text: markdown })\n .then(({ data: { html, body, ...otherData } = {} } = {}) => ({\n body: body || html,\n ...otherData,\n }));\n },\n onEditingModeChange(editingMode) {\n this.editingMode = editingMode;\n this.notifyEditingModeChange(editingMode);\n },\n onEditingModeRestored(editingMode) {\n if (!this.isDefaultEditorEnabled) return;\n if (editingMode === EDITING_MODE_CONTENT_EDITOR && !this.enableContentEditor) {\n this.editingMode = EDITING_MODE_MARKDOWN_FIELD;\n return;\n }\n\n this.editingMode = editingMode;\n this.$emit(editingMode);\n this.notifyEditingModeChange(editingMode);\n },\n async notifyEditingModeChange(editingMode) {\n this.$emit(editingMode);\n\n const componentToFocus =\n editingMode === EDITING_MODE_CONTENT_EDITOR\n ? () => this.$refs.contentEditor\n : () => this.$refs.textarea;\n\n (await waitFor(componentToFocus)).focus();\n },\n autofocusTextarea() {\n if (this.autofocus && this.editingMode === EDITING_MODE_MARKDOWN_FIELD) {\n this.$refs.textarea.focus();\n this.setEditorAsAutofocused();\n }\n },\n focus() {\n if (this.editingMode === EDITING_MODE_MARKDOWN_FIELD) {\n this.$refs.textarea.focus();\n } else {\n this.$refs.contentEditor.focus();\n }\n },\n setEditorAsAutofocused() {\n this.autofocused = true;\n },\n saveDraft() {\n if (!this.autosaveKey) return;\n if (this.markdown) updateDraft(this.autosaveKey, this.markdown);\n else clearDraft(this.autosaveKey);\n },\n clearDraft(key) {\n if (!this.autosaveKey || key !== this.autosaveKey) return;\n clearDraft(this.autosaveKey);\n },\n togglePreview(value) {\n if (this.editingMode === EDITING_MODE_MARKDOWN_FIELD) {\n this.$refs.markdownField.previewMarkdown = value;\n }\n },\n autosizeTextarea() {\n if (this.editingMode === EDITING_MODE_MARKDOWN_FIELD) {\n this.$nextTick(() => {\n Autosize.update(this.$refs.textarea);\n });\n }\n },\n onKeydown(event) {\n const isModifierKey = event.ctrlKey || event.metaKey;\n if (isModifierKey && event.key === 'k') {\n event.preventDefault();\n }\n this.$emit('keydown', event);\n },\n },\n EDITING_MODE_KEY,\n i18n: {\n applyTemplateAlert: {\n message: __(\n 'Applying a template will replace the existing content. Any changes you have made will be lost.',\n ),\n primaryButtonText: __('Apply template'),\n secondaryButtonText: __('Cancel'),\n },\n },\n};\n</script>\n<template>\n <div class=\"md-area-wrapper gl-rounded-lg !gl-px-0\">\n <local-storage-sync\n v-if=\"!isDefaultEditorEnabled\"\n :value=\"editingMode\"\n as-string\n :storage-key=\"$options.EDITING_MODE_KEY\"\n @input=\"onEditingModeRestored\"\n />\n <gl-alert\n v-if=\"alert\"\n class=\"gl-mb-4\"\n :variant=\"alert.variant\"\n :primary-button-text=\"alert.primaryButtonText\"\n :secondary-button-text=\"alert.secondaryButtonText\"\n @primaryAction=\"alert.primaryAction\"\n @secondaryAction=\"alert.secondaryAction\"\n @dismiss=\"alert.dismiss\"\n >\n {{ alert.message }}\n </gl-alert>\n <markdown-field\n v-if=\"!isContentEditorActive\"\n ref=\"markdownField\"\n v-bind=\"$attrs\"\n data-testid=\"markdown-field\"\n :markdown-preview-path=\"renderMarkdownPath\"\n :can-attach-file=\"!disableAttachments\"\n :can-suggest=\"codeSuggestionsConfig.canSuggest\"\n :line=\"codeSuggestionsConfig.line\"\n :lines=\"codeSuggestionsConfig.lines\"\n :show-suggest-popover=\"codeSuggestionsConfig.showPopover\"\n :textarea-value=\"markdown\"\n :uploads-path=\"uploadsPath\"\n :enable-autocomplete=\"enableAutocomplete\"\n :autocomplete-data-sources=\"autocompleteDataSources\"\n :markdown-docs-path=\"markdownDocsPath\"\n :supports-quick-actions=\"supportsQuickActions\"\n :show-content-editor-switcher=\"enableContentEditor\"\n :drawio-enabled=\"drawioEnabled\"\n :restricted-tool-bar-items=\"markdownFieldRestrictedToolBarItems\"\n :remove-border=\"true\"\n @enableContentEditor=\"onEditingModeChange('contentEditor')\"\n @handleSuggestDismissed=\"() => $emit('handleSuggestDismissed')\"\n >\n <template #header-buttons><slot name=\"header-buttons\"></slot></template>\n <template #toolbar><slot name=\"toolbar\"></slot></template>\n <template #textarea>\n <textarea\n v-bind=\"formFieldProps\"\n ref=\"textarea\"\n :value=\"markdown\"\n class=\"note-textarea js-gfm-input markdown-area\"\n dir=\"auto\"\n :data-can-suggest=\"codeSuggestionsConfig.canSuggest\"\n :data-noteable-type=\"noteableType\"\n :data-supports-quick-actions=\"supportsQuickActions\"\n :data-testid=\"formFieldProps['data-testid'] || 'markdown-editor-form-field'\"\n :disabled=\"disabled\"\n @input=\"updateMarkdownFromMarkdownField\"\n @keydown=\"$emit('keydown', $event)\"\n ></textarea>\n </template>\n </markdown-field>\n <div v-else>\n <content-editor\n ref=\"contentEditor\"\n :render-markdown=\"renderMarkdown\"\n :markdown-docs-path=\"markdownDocsPath\"\n :uploads-path=\"uploadsPath\"\n :markdown=\"markdown\"\n :supports-quick-actions=\"supportsQuickActions\"\n :autofocus=\"contentEditorAutofocused\"\n :placeholder=\"formFieldProps.placeholder\"\n :drawio-enabled=\"drawioEnabled\"\n :enable-autocomplete=\"enableAutocomplete\"\n :autocomplete-data-sources=\"autocompleteDataSources\"\n :editable=\"!disabled\"\n :disable-attachments=\"disableAttachments\"\n :code-suggestions-config=\"codeSuggestionsConfig\"\n :data-testid=\"formFieldProps['data-testid'] || 'markdown-editor-form-field'\"\n @initialized=\"setEditorAsAutofocused\"\n @change=\"updateMarkdownFromContentEditor\"\n @keydown=\"onKeydown\"\n @enableMarkdownEditor=\"onEditingModeChange('markdownField')\"\n >\n <template #header-buttons><slot name=\"header-buttons\"></slot></template>\n <template #toolbar><slot name=\"toolbar\"></slot></template>\n </content-editor>\n <input v-bind=\"formFieldProps\" :value=\"markdown\" type=\"hidden\" />\n </div>\n </div>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./markdown_editor.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./markdown_editor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./markdown_editor.vue?vue&type=template&id=27f649d3\"\nimport script from \"./markdown_editor.vue?vue&type=script&lang=js\"\nexport * from \"./markdown_editor.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar charAt = require('../internals/string-multibyte').charAt;\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\n\n// `String.prototype.at` method\n// https://github.com/mathiasbynens/String.prototype.at\n$({ target: 'String', proto: true, forced: true }, {\n at: function at(index) {\n var S = toString(requireObjectCoercible(this));\n var len = S.length;\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : charAt(S, k);\n }\n});\n","import { GlBadge } from '@gitlab/ui';\nimport $ from 'jquery';\nimport '~/lib/utils/jquery_at_who';\nimport { escape as lodashEscape, sortBy, template, escapeRegExp, memoize } from 'lodash';\nimport * as Emoji from '~/emoji';\nimport axios from '~/lib/utils/axios_utils';\nimport { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';\nimport { loadingIconForLegacyJS } from '~/loading_icon_for_legacy_js';\nimport { s__, __, sprintf } from '~/locale';\nimport { isUserBusy } from '~/set_status_modal/utils';\nimport SidebarMediator from '~/sidebar/sidebar_mediator';\nimport { state } from '~/sidebar/components/reviewers/sidebar_reviewers.vue';\nimport {\n ISSUABLE_EPIC,\n WORK_ITEMS_TYPE_MAP,\n WORK_ITEM_TYPE_ENUM_EPIC,\n} from '~/work_items/constants';\nimport AjaxCache from './lib/utils/ajax_cache';\nimport { spriteIcon } from './lib/utils/common_utils';\nimport { newDate } from './lib/utils/datetime_utility';\nimport { unicodeLetters } from './lib/utils/regexp';\nimport { renderVueComponentForLegacyJS } from './render_vue_component_for_legacy_js';\n\nconst USERS_ALIAS = 'users';\nconst ISSUES_ALIAS = 'issues';\nconst MILESTONES_ALIAS = 'milestones';\nconst MERGEREQUESTS_ALIAS = 'mergerequests';\nconst LABELS_ALIAS = 'labels';\nconst SNIPPETS_ALIAS = 'snippets';\nconst CONTACTS_ALIAS = 'contacts';\nconst WIKIS_ALIAS = 'wikis';\n\nconst CADENCE_REFERENCE_PREFIX = '[cadence:';\nconst ITERATION_REFERENCE_PREFIX = '*iteration:';\n\nexport const AT_WHO_ACTIVE_CLASS = 'at-who-active';\nexport const CONTACT_STATE_ACTIVE = 'active';\nexport const CONTACTS_ADD_COMMAND = '/add_contacts';\nexport const CONTACTS_REMOVE_COMMAND = '/remove_contacts';\n\nconst busyBadge = memoize(\n () =>\n renderVueComponentForLegacyJS(\n GlBadge,\n {\n class: 'gl-ml-2',\n props: {\n variant: 'warning',\n size: 'sm',\n },\n },\n s__('UserProfile|Busy'),\n ).outerHTML,\n);\n\n/**\n * Escapes user input before we pass it to at.js, which\n * renders it as HTML in the autocomplete dropdown.\n *\n * at.js allows you to reference data using `${}` syntax\n * (e.g. ${search}) which it replaces with the actual data\n * before rendering it in the autocomplete dropdown.\n * To prevent user input from executing this `${}` syntax,\n * we also need to escape the $ character.\n *\n * @param string user input\n * @return {string} escaped user input\n */\nexport function escape(string) {\n // To prevent double (or multiple) enconding attack\n // Decode the user input repeatedly prior to escaping the final decoded string.\n let encodedString = string;\n let decodedString = decodeURIComponent(encodedString);\n\n while (decodedString !== encodedString) {\n encodedString = decodeURIComponent(decodedString);\n decodedString = decodeURIComponent(encodedString);\n }\n\n return lodashEscape(decodedString.replace(/\\$/g, '$'));\n}\n\nexport function showAndHideHelper($input, alias = '') {\n $input.on(`hidden${alias ? '-' : ''}${alias}.atwho`, () => {\n $input.removeClass(AT_WHO_ACTIVE_CLASS);\n });\n $input.on(`shown${alias ? '-' : ''}${alias}.atwho`, () => {\n $input.addClass(AT_WHO_ACTIVE_CLASS);\n });\n}\n\n// This should be kept in sync with the backend filtering in\n// `User#gfm_autocomplete_search` and `Namespace#gfm_autocomplete_search`\nfunction createMemberSearchString(member) {\n return `${member.name.replace(/ /g, '')} ${member.username}`;\n}\n\nexport function membersBeforeSave(members) {\n return members.map((member) => {\n const GROUP_TYPE = 'Group';\n\n let title = '';\n if (member.username == null) {\n return member;\n }\n title = member.name;\n if (member.count && !member.mentionsDisabled) {\n title += ` (${member.count})`;\n }\n\n const autoCompleteAvatar = member.avatar_url || member.username.charAt(0).toUpperCase();\n\n const rectAvatarClass = member.type === GROUP_TYPE ? 'rect-avatar' : '';\n const imgAvatar = `<img src=\"${member.avatar_url}\" alt=\"${member.username}\" class=\"avatar ${rectAvatarClass} avatar-inline s24 gl-mr-2\"/>`;\n const txtAvatar = `<div class=\"avatar ${rectAvatarClass} avatar-inline s24 gl-mr-2\">${autoCompleteAvatar}</div>`;\n const avatarIcon = member.mentionsDisabled\n ? spriteIcon('notifications-off', 's16 vertical-align-middle gl-ml-2')\n : '';\n\n return {\n username: member.username,\n avatarTag: autoCompleteAvatar.length === 1 ? txtAvatar : imgAvatar,\n title,\n search: createMemberSearchString(member),\n icon: avatarIcon,\n availability: member?.availability,\n };\n });\n}\n\nexport const highlighter = (li, query) => {\n // override default behaviour to escape dot character\n // see https://github.com/ichord/At.js/pull/576\n if (!query) {\n return li;\n }\n const escapedQuery = escapeRegExp(query);\n const regexp = new RegExp(`>\\\\s*([^<]*?)(${escapedQuery})([^<]*)\\\\s*<`, 'ig');\n // eslint-disable-next-line max-params\n return li.replace(regexp, (str, $1, $2, $3) => `> ${$1}<strong>${$2}</strong>${$3} <`);\n};\n\n/**\n * Sets up subommands for quickaction for the given\n * input with the provided command and the subcommand descriptions.\n *\n * @param {Object} $input input element\n * @param {string} cmd command that triggers subcommand selection\n * @param {Record<string, { header: string, description: string }>} data object containing names of commands as keys with description and header as values\n *\n */\nexport const setupSubcommands = ($input, cmd, data) => {\n $input.filter('[data-supports-quick-actions=\"true\"]').atwho({\n // Always keep the trailing space otherwise the command won't display correctly\n at: `/${cmd} `,\n alias: cmd,\n data: Object.keys(data),\n maxLen: 100,\n displayTpl({ name }) {\n const { header, description } = data[name];\n\n return `<li><span class=\"name gl-font-bold\">${lodashEscape(header)}</span><small class=\"description\"><em>${lodashEscape(description)}</em></small></li>`;\n },\n });\n};\n\nexport const defaultAutocompleteConfig = {\n emojis: true,\n members: true,\n issues: true,\n mergeRequests: true,\n epics: true,\n iterations: true,\n milestones: true,\n labels: true,\n snippets: true,\n vulnerabilities: true,\n contacts: true,\n wikis: true,\n};\n\nclass GfmAutoComplete {\n constructor(dataSources = {}) {\n this.dataSources = dataSources;\n this.cachedData = {};\n this.isLoadingData = {};\n this.previousQuery = undefined;\n this.currentBackendFilterRequestController = null;\n }\n\n setup(input, enableMap = defaultAutocompleteConfig) {\n // Add GFM auto-completion to all input fields, that accept GFM input.\n this.input = input || $('.js-gfm-input');\n this.enableMap = enableMap;\n this.setupLifecycle();\n }\n\n setupLifecycle() {\n this.input.each((i, input) => {\n const $input = $(input);\n if (!$input.hasClass('js-gfm-input-initialized')) {\n // eslint-disable-next-line @gitlab/no-global-event-off\n $input.off('focus.setupAtWho').on('focus.setupAtWho', this.setupAtWho.bind(this, $input));\n $input.on('change.atwho', () => input.dispatchEvent(new Event('input')));\n // This triggers at.js again\n // Needed for quick actions with suffixes (ex: /label ~)\n $input.on('inserted-commands.atwho', $input.trigger.bind($input, 'keyup'));\n $input.on('clear-commands-cache.atwho', () => this.clearCache());\n $input.addClass('js-gfm-input-initialized');\n }\n });\n }\n\n setupAtWho($input) {\n if (this.enableMap.emojis) this.setupEmoji($input);\n if (this.enableMap.members) this.setupMembers($input);\n if (this.enableMap.issues) this.setupIssues($input);\n if (this.enableMap.milestones) this.setupMilestones($input);\n if (this.enableMap.mergeRequests) this.setupMergeRequests($input);\n if (this.enableMap.labels) this.setupLabels($input);\n if (this.enableMap.snippets) this.setupSnippets($input);\n if (this.enableMap.contacts) this.setupContacts($input);\n if (this.enableMap.wikis) this.setupWikis($input);\n\n $input.filter('[data-supports-quick-actions=\"true\"]').atwho({\n at: '/',\n alias: 'commands',\n searchKey: 'search',\n limit: 100,\n skipSpecialCharacterTest: true,\n skipMarkdownCharacterTest: true,\n data: GfmAutoComplete.defaultLoadingData,\n maxLen: 100,\n displayTpl(value) {\n const cssClasses = [];\n\n if (GfmAutoComplete.isLoading(value)) return GfmAutoComplete.Loading.template;\n // eslint-disable-next-line no-template-curly-in-string\n let tpl = '<li class=\"<%- className %>\"><span class=\"name\">/${name}</span>';\n if (value.aliases.length > 0) {\n tpl += ' <small class=\"aliases\">(or /<%- aliases.join(\", /\") %>)</small>';\n }\n if (value.params.length > 0) {\n tpl += ' <small class=\"params\"><%- params.join(\" \") %></small>';\n }\n if (value.warning && value.icon && value.icon === 'confidential') {\n tpl += `<small class=\"description gl-flex gl-items-center\">${spriteIcon(\n 'eye-slash',\n 's16 gl-mr-2',\n )}<em><%- warning %></em></small>`;\n } else if (value.warning) {\n tpl += '<small class=\"description\"><em><%- warning %></em></small>';\n } else if (value.description !== '') {\n tpl += '<small class=\"description\"><em><%- description %></em></small>';\n }\n tpl += '</li>';\n\n if (value.warning) {\n cssClasses.push('has-warning');\n }\n\n return template(tpl)({\n ...value,\n className: cssClasses.join(' '),\n });\n },\n insertTpl(value) {\n // eslint-disable-next-line no-template-curly-in-string\n let tpl = '/${name} ';\n let referencePrefix = null;\n if (value.params.length > 0) {\n const regexp = /^\\[[a-z]+:/;\n const match = regexp.exec(value.params);\n if (match) {\n [referencePrefix] = match;\n\n // EE-ONLY; iteration quick action should autocomplete iteration reference only\n if (referencePrefix === CADENCE_REFERENCE_PREFIX)\n referencePrefix = ITERATION_REFERENCE_PREFIX;\n\n tpl += '<%- referencePrefix %>';\n } else {\n [[referencePrefix]] = value.params;\n if (/^[@%~]/.test(referencePrefix)) {\n tpl += '<%- referencePrefix %>';\n } else if (/^[*]/.test(referencePrefix)) {\n // EE-ONLY\n referencePrefix = ITERATION_REFERENCE_PREFIX;\n tpl += '<%- referencePrefix %>';\n }\n }\n }\n return template(tpl, { interpolate: /<%=([\\s\\S]+?)%>/g })({ referencePrefix });\n },\n suffix: '',\n callbacks: {\n ...this.getDefaultCallbacks(),\n beforeSave(commands) {\n if (GfmAutoComplete.isLoading(commands)) return commands;\n return $.map(commands, (c) => {\n let search = c.name;\n if (c.aliases.length > 0) {\n search = `${search} ${c.aliases.join(' ')}`;\n }\n return {\n name: c.name,\n aliases: c.aliases,\n params: c.params,\n description: c.description,\n warning: c.warning,\n icon: c.icon,\n search,\n };\n });\n },\n matcher(flag, subtext) {\n const regexp = /(?:^|\\n)\\/([A-Za-z_]*)$/gi;\n const match = regexp.exec(subtext);\n if (match) {\n return match[1];\n }\n return null;\n },\n },\n });\n }\n\n // eslint-disable-next-line class-methods-use-this\n setSubmitReviewStates($input) {\n const REVIEW_STATES = {\n reviewed: {\n header: __('Comment'),\n description: __('Submit general feedback without explicit approval.'),\n },\n approve: {\n header: __('Approve'),\n description: __('Submit feedback and approve these changes.'),\n },\n requested_changes: {\n header: __('Request changes'),\n description: __('Submit feedback that should be addressed before merging.'),\n },\n };\n\n setupSubcommands($input, 'submit_review', REVIEW_STATES);\n }\n\n setupEmoji($input) {\n const fetchData = this.fetchData.bind(this);\n\n // Emoji\n $input.atwho({\n at: ':',\n displayTpl: GfmAutoComplete.Emoji.templateFunction,\n insertTpl: GfmAutoComplete.Emoji.insertTemplateFunction,\n skipSpecialCharacterTest: true,\n data: GfmAutoComplete.defaultLoadingData,\n maxLen: 100,\n callbacks: {\n ...this.getDefaultCallbacks(),\n matcher(flag, subtext) {\n const regexp = new RegExp(`(?:[^${unicodeLetters}0-9:]|\\n|^):([^ :][^:]*)?$`, 'gi');\n const match = regexp.exec(subtext);\n\n if (match && match.length) {\n // Since we have \"?\" on the group, it's possible it is undefined\n return match[1] || '';\n }\n\n return null;\n },\n filter(query, items) {\n if (GfmAutoComplete.isLoading(items)) {\n fetchData(this.$inputor, this.at);\n return items;\n }\n\n return GfmAutoComplete.Emoji.filter(query);\n },\n sorter(query, items) {\n this.setting.highlightFirst = this.setting.alwaysHighlightFirst || query.length > 0;\n if (GfmAutoComplete.isLoading(items)) {\n this.setting.highlightFirst = false;\n return items;\n }\n\n if (query.length === 0) {\n return items;\n }\n\n return GfmAutoComplete.Emoji.sorter(items);\n },\n },\n });\n showAndHideHelper($input);\n }\n\n setupMembers($input) {\n const instance = this;\n const fetchData = this.fetchData.bind(this);\n const MEMBER_COMMAND = {\n ASSIGN: '/assign',\n UNASSIGN: '/unassign',\n ASSIGN_REVIEWER: '/assign_reviewer',\n UNASSIGN_REVIEWER: '/unassign_reviewer',\n REASSIGN: '/reassign',\n CC: '/cc',\n REQUEST_REVIEW: '/request_review',\n };\n let assignees = [];\n let reviewers = [];\n let command = '';\n\n // Team Members\n $input.atwho({\n at: '@',\n alias: USERS_ALIAS,\n maxLen: 100,\n displayTpl(value) {\n let tmpl = GfmAutoComplete.Loading.template;\n const { avatarTag, username, title, icon, availability } = value;\n if (username != null) {\n tmpl = GfmAutoComplete.Members.templateFunction({\n avatarTag,\n username,\n title,\n icon,\n availabilityStatus: availability && isUserBusy(availability) ? busyBadge() : '',\n });\n }\n return tmpl;\n },\n // eslint-disable-next-line no-template-curly-in-string\n insertTpl: '${atwho-at}${username}',\n limit: 10,\n delay: DEFAULT_DEBOUNCE_AND_THROTTLE_MS,\n searchKey: 'search',\n alwaysHighlightFirst: true,\n skipSpecialCharacterTest: true,\n data: GfmAutoComplete.defaultLoadingData,\n callbacks: {\n ...this.getDefaultCallbacks(),\n beforeSave: membersBeforeSave,\n matcher(flag, subtext) {\n const subtextNodes = subtext.split(/\\n+/g).pop().split(GfmAutoComplete.regexSubtext);\n\n // Check if @ is followed by '/assign', '/reassign', '/unassign' or '/cc' commands.\n command = subtextNodes.find((node) => {\n if (Object.values(MEMBER_COMMAND).includes(node)) {\n return node;\n }\n return null;\n });\n\n // Cache assignees & reviewers list for easier filtering later\n assignees =\n SidebarMediator.singleton?.store?.assignees?.map(createMemberSearchString) || [];\n reviewers = state.issuable?.reviewers?.nodes?.map(createMemberSearchString) || [];\n\n const match = GfmAutoComplete.defaultMatcher(flag, subtext, this.app.controllers);\n return match && match.length ? match[1] : null;\n },\n filter(query, data) {\n if (GfmAutoComplete.isLoading(data) || instance.previousQuery !== query) {\n instance.previousQuery = query;\n\n fetchData(this.$inputor, this.at, query);\n return data;\n }\n\n if (command === MEMBER_COMMAND.ASSIGN) {\n // Only include members which are not assigned to Issuable currently\n return data.filter((member) => !assignees.includes(member.search));\n }\n if (command === MEMBER_COMMAND.UNASSIGN) {\n // Only include members which are assigned to Issuable currently\n return data.filter((member) => assignees.includes(member.search));\n }\n if (command === MEMBER_COMMAND.ASSIGN_REVIEWER) {\n // Only include members which are not assigned as a reviewer to Issuable currently\n return data.filter((member) => !reviewers.includes(member.search));\n }\n if (command === MEMBER_COMMAND.UNASSIGN_REVIEWER) {\n // Only include members which are not assigned as a reviewer to Issuable currently\n return data.filter((member) => reviewers.includes(member.search));\n }\n\n return data;\n },\n sorter(query, items) {\n // Disable auto-selecting the loading icon\n this.setting.highlightFirst = this.setting.alwaysHighlightFirst;\n if (GfmAutoComplete.isLoading(items)) {\n this.setting.highlightFirst = false;\n return items;\n }\n\n if (!query) {\n return items;\n }\n\n return GfmAutoComplete.Members.sort(query, items);\n },\n },\n });\n showAndHideHelper($input, USERS_ALIAS);\n }\n\n setupIssues($input) {\n $input.atwho({\n at: '#',\n alias: ISSUES_ALIAS,\n searchKey: 'search',\n maxLen: 100,\n delay: DEFAULT_DEBOUNCE_AND_THROTTLE_MS,\n displayTpl(value) {\n let tmpl = GfmAutoComplete.Loading.template;\n if (value.title != null) {\n tmpl = GfmAutoComplete.Issues.templateFunction(value);\n }\n return tmpl;\n },\n data: GfmAutoComplete.defaultLoadingData,\n insertTpl: GfmAutoComplete.Issues.insertTemplateFunction,\n skipSpecialCharacterTest: true,\n callbacks: {\n ...this.getDefaultCallbacks(),\n beforeSave(issues) {\n return $.map(issues, (i) => {\n if (i.title == null) {\n return i;\n }\n return {\n id: i.iid,\n title: i.title,\n reference: i.reference,\n search: `${i.iid} ${i.title}`,\n iconName: i.icon_name,\n };\n });\n },\n },\n });\n showAndHideHelper($input, ISSUES_ALIAS);\n }\n\n setupMilestones($input) {\n $input.atwho({\n at: '%',\n alias: MILESTONES_ALIAS,\n searchKey: 'search',\n // eslint-disable-next-line no-template-curly-in-string\n insertTpl: '${atwho-at}${title}',\n maxLen: 100,\n displayTpl(value) {\n let tmpl = GfmAutoComplete.Loading.template;\n if (value.title != null) {\n tmpl = GfmAutoComplete.Milestones.templateFunction(value.title, value.expired);\n }\n return tmpl;\n },\n data: GfmAutoComplete.defaultLoadingData,\n callbacks: {\n ...this.getDefaultCallbacks(),\n beforeSave(milestones) {\n const parsedMilestones = $.map(milestones, (m) => {\n if (m.title == null) {\n return m;\n }\n\n const dueDate = m.due_date ? newDate(m.due_date) : null;\n const expired = dueDate ? Date.now() > dueDate.getTime() : false;\n\n return {\n id: m.iid,\n title: m.title,\n search: m.title,\n expired,\n dueDate,\n };\n });\n\n // Sort milestones by due date when present.\n if (typeof parsedMilestones[0] === 'object') {\n return parsedMilestones.sort((mA, mB) => {\n // Move all expired milestones to the bottom.\n if (mA.expired) return 1;\n if (mB.expired) return -1;\n\n // Move milestones without due dates just above expired milestones.\n if (!mA.dueDate) return 1;\n if (!mB.dueDate) return -1;\n\n // Sort by due date in ascending order.\n return mA.dueDate - mB.dueDate;\n });\n }\n return parsedMilestones;\n },\n },\n });\n showAndHideHelper($input, MILESTONES_ALIAS);\n }\n\n setupMergeRequests($input) {\n $input.atwho({\n at: '!',\n alias: MERGEREQUESTS_ALIAS,\n searchKey: 'search',\n maxLen: 100,\n displayTpl(value) {\n let tmpl = GfmAutoComplete.Loading.template;\n if (value.title != null) {\n tmpl = GfmAutoComplete.Issues.templateFunction(value);\n }\n return tmpl;\n },\n data: GfmAutoComplete.defaultLoadingData,\n insertTpl: GfmAutoComplete.Issues.insertTemplateFunction,\n skipSpecialCharacterTest: true,\n callbacks: {\n ...this.getDefaultCallbacks(),\n beforeSave(merges) {\n return $.map(merges, (m) => {\n if (m.title == null) {\n return m;\n }\n return {\n id: m.iid,\n title: m.title,\n reference: m.reference,\n search: `${m.iid} ${m.title}`,\n };\n });\n },\n },\n });\n showAndHideHelper($input, MERGEREQUESTS_ALIAS);\n }\n\n setupLabels($input) {\n const instance = this;\n const fetchData = this.fetchData.bind(this);\n const LABEL_COMMAND = {\n LABEL: '/label',\n LABELS: '/labels',\n UNLABEL: '/unlabel',\n RELABEL: '/relabel',\n };\n let command = '';\n\n $input.atwho({\n at: '~',\n alias: LABELS_ALIAS,\n searchKey: 'search',\n data: GfmAutoComplete.defaultLoadingData,\n maxLen: 100,\n displayTpl(value) {\n let tmpl = GfmAutoComplete.Labels.templateFunction(value.color, value.title);\n if (GfmAutoComplete.isLoading(value)) {\n tmpl = GfmAutoComplete.Loading.template;\n }\n return tmpl;\n },\n // eslint-disable-next-line no-template-curly-in-string\n insertTpl: '${atwho-at}${title}',\n limit: 20,\n callbacks: {\n ...this.getDefaultCallbacks(),\n beforeSave(merges) {\n if (GfmAutoComplete.isLoading(merges)) return merges;\n return $.map(merges, (m) => ({\n title: m.title,\n color: m.color,\n search: m.title,\n set: m.set,\n }));\n },\n matcher(flag, subtext) {\n const subtextNodes = subtext.split(/\\n+/g).pop().split(GfmAutoComplete.regexSubtext);\n\n // Check if ~ is followed by '/label', '/labels', '/relabel' or '/unlabel' commands.\n command = subtextNodes.find((node) => {\n if (Object.values(LABEL_COMMAND).includes(node)) {\n return node;\n }\n return null;\n });\n\n // If any label matches the inserted text after the last `~`, suggest those labels,\n // even if any spaces or funky characters were typed.\n // This allows matching labels like \"Accepting merge requests\".\n const labels = instance.cachedData[flag];\n if (labels) {\n if (!subtext.includes(flag)) {\n // Do not match if there is no `~` before the cursor\n return null;\n }\n if (subtext.endsWith('~~')) {\n // Do not match if there are two consecutive `~` characters (strikethrough) before the cursor\n return null;\n }\n const lastCandidate = subtext.split(flag).pop();\n if (labels.find((label) => label.title.startsWith(lastCandidate))) {\n return lastCandidate;\n }\n }\n\n const match = GfmAutoComplete.defaultMatcher(flag, subtext, this.app.controllers);\n return match && match.length ? match[1] : null;\n },\n filter(query, data, searchKey) {\n if (GfmAutoComplete.isLoading(data)) {\n fetchData(this.$inputor, this.at);\n return data;\n }\n\n if (data === GfmAutoComplete.defaultLoadingData) {\n return $.fn.atwho.default.callbacks.filter(query, data, searchKey);\n }\n\n // The `LABEL_COMMAND.RELABEL` is intentionally skipped\n // because we want to return all the labels (unfiltered) for that command.\n if (command === LABEL_COMMAND.LABEL || command === LABEL_COMMAND.LABELS) {\n // Return labels with set: undefined.\n return data.filter((label) => !label.set);\n }\n if (command === LABEL_COMMAND.UNLABEL) {\n // Return labels with set: true.\n return data.filter((label) => label.set);\n }\n\n return data;\n },\n },\n });\n showAndHideHelper($input, LABELS_ALIAS);\n }\n\n setupSnippets($input) {\n $input.atwho({\n at: '$',\n alias: SNIPPETS_ALIAS,\n searchKey: 'search',\n maxLen: 100,\n displayTpl(value) {\n let tmpl = GfmAutoComplete.Loading.template;\n if (value.title != null) {\n tmpl = GfmAutoComplete.Issues.templateFunction(value);\n }\n return tmpl;\n },\n data: GfmAutoComplete.defaultLoadingData,\n // eslint-disable-next-line no-template-curly-in-string\n insertTpl: '${atwho-at}${id}',\n callbacks: {\n ...this.getDefaultCallbacks(),\n beforeSave(snippets) {\n return $.map(snippets, (m) => {\n if (m.title == null) {\n return m;\n }\n return {\n id: m.id,\n title: m.title,\n search: `${m.id} ${m.title}`,\n };\n });\n },\n },\n });\n showAndHideHelper($input, SNIPPETS_ALIAS);\n }\n\n setupWikis($input) {\n $input.atwho({\n at: '[[',\n suffix: ']]',\n alias: WIKIS_ALIAS,\n searchKey: 'title',\n data: GfmAutoComplete.defaultLoadingData,\n displayTpl(value) {\n let tmpl = GfmAutoComplete.Loading.template;\n if (value.title != null) {\n tmpl = GfmAutoComplete.Wikis.templateFunction(value);\n }\n return tmpl;\n },\n // eslint-disable-next-line no-template-curly-in-string\n insertTpl: '${atwho-at}${title}|${slug}',\n callbacks: {\n ...this.getDefaultCallbacks(),\n beforeInsert(value) {\n const [title, slug] = value.substr(2).split('|');\n if (title.toLowerCase() === slug.toLowerCase()) {\n return `[[${slug}`;\n }\n return `[[${title}|${slug}`;\n },\n beforeSave(wikis) {\n return $.map(wikis, (m) => {\n if (m.title == null) {\n return m;\n }\n return {\n title: m.title,\n slug: m.slug,\n };\n });\n },\n },\n });\n showAndHideHelper($input, WIKIS_ALIAS);\n }\n\n setupContacts($input) {\n const fetchData = this.fetchData.bind(this);\n let command = '';\n\n $input.atwho({\n at: '[contact:',\n suffix: ']',\n alias: CONTACTS_ALIAS,\n searchKey: 'search',\n maxLen: 100,\n displayTpl(value) {\n let tmpl = GfmAutoComplete.Loading.template;\n if (value.email != null) {\n tmpl = GfmAutoComplete.Contacts.templateFunction(value);\n }\n return tmpl;\n },\n data: GfmAutoComplete.defaultLoadingData,\n // eslint-disable-next-line no-template-curly-in-string\n insertTpl: '${atwho-at}${email}',\n callbacks: {\n ...this.getDefaultCallbacks(),\n beforeSave(contacts) {\n return $.map(contacts, (m) => {\n if (m.email == null) {\n return m;\n }\n return {\n id: m.id,\n email: m.email,\n firstName: m.first_name,\n lastName: m.last_name,\n search: `${m.email}`,\n state: m.state,\n set: m.set,\n };\n });\n },\n matcher(flag, subtext) {\n const subtextNodes = subtext.split(/\\n+/g).pop().split(GfmAutoComplete.regexSubtext);\n\n command = subtextNodes.find((node) => {\n if (node === CONTACTS_ADD_COMMAND || node === CONTACTS_REMOVE_COMMAND) {\n return node;\n }\n return null;\n });\n\n const match = GfmAutoComplete.defaultMatcher(flag, subtext, this.app.controllers);\n return match?.length ? match[1] : null;\n },\n filter(query, data, searchKey) {\n if (GfmAutoComplete.isLoading(data)) {\n fetchData(this.$inputor, this.at);\n return data;\n }\n\n if (data === GfmAutoComplete.defaultLoadingData) {\n return $.fn.atwho.default.callbacks.filter(query, data, searchKey);\n }\n\n if (command === CONTACTS_ADD_COMMAND) {\n // Return contacts that are active and not already on the issue\n return data.filter((contact) => contact.state === CONTACT_STATE_ACTIVE && !contact.set);\n }\n if (command === CONTACTS_REMOVE_COMMAND) {\n // Return contacts already on the issue\n return data.filter((contact) => contact.set);\n }\n\n return data;\n },\n },\n });\n showAndHideHelper($input, CONTACTS_ALIAS);\n }\n\n getDefaultCallbacks() {\n const self = this;\n\n return {\n sorter(query, items, searchKey) {\n this.setting.highlightFirst = this.setting.alwaysHighlightFirst || query.length > 0;\n if (GfmAutoComplete.isLoading(items)) {\n this.setting.highlightFirst = false;\n return items;\n }\n return $.fn.atwho.default.callbacks.sorter(query, items, searchKey);\n },\n filter(query, data, searchKey) {\n if (GfmAutoComplete.isTypeWithBackendFiltering(this.at)) {\n if (GfmAutoComplete.isLoading(data) || self.previousQuery !== query) {\n self.previousQuery = query;\n self.fetchData(this.$inputor, this.at, query);\n return data;\n }\n }\n\n if (GfmAutoComplete.isLoading(data)) {\n self.fetchData(this.$inputor, this.at);\n return data;\n }\n\n return $.fn.atwho.default.callbacks.filter(query, data, searchKey);\n },\n beforeInsert(value) {\n let withoutAt = value.substring(1);\n const at = value.charAt();\n\n if (value && !this.setting.skipSpecialCharacterTest) {\n const regex = at === '~' ? /\\W|^\\d+$/ : /\\W/;\n if (withoutAt && regex.test(withoutAt)) {\n withoutAt = `\"${withoutAt}\"`;\n }\n }\n\n // We can ignore this for quick actions because they are processed\n // before Markdown.\n if (!this.setting.skipMarkdownCharacterTest) {\n withoutAt = withoutAt\n .replace(/(~~|`|\\*)/g, '\\\\$1')\n .replace(/(\\b)(_+)/g, '$1\\\\$2') // only escape underscores at the start\n .replace(/(_+)(\\b)/g, '\\\\$1$2'); // or end of words\n }\n\n return `${at}${withoutAt}`;\n },\n matcher(flag, subtext) {\n const match = GfmAutoComplete.defaultMatcher(flag, subtext, this.app.controllers);\n\n if (match) {\n return match[1];\n }\n return null;\n },\n highlighter,\n };\n }\n\n fetchData($input, at, search) {\n if (this.isLoadingData[at] && !GfmAutoComplete.isTypeWithBackendFiltering(at)) return;\n\n this.isLoadingData[at] = true;\n const dataSource = this.dataSources[GfmAutoComplete.atTypeMap[at]];\n\n if (GfmAutoComplete.isTypeWithBackendFiltering(at)) {\n if (this.cachedData[at]?.[search]) {\n this.loadData($input, at, this.cachedData[at][search], { search });\n } else {\n if (this.currentBackendFilterRequestController) {\n this.currentBackendFilterRequestController.abort();\n }\n\n this.currentBackendFilterRequestController = new AbortController();\n\n axios\n .get(dataSource, {\n params: { search },\n signal: this.currentBackendFilterRequestController.signal,\n })\n .then(({ data }) => {\n this.loadData($input, at, data, { search });\n })\n .catch(() => {\n this.isLoadingData[at] = false;\n })\n .finally(() => {\n this.currentBackendFilterRequestController = null;\n });\n }\n } else if (this.cachedData[at]) {\n this.loadData($input, at, this.cachedData[at]);\n } else if (GfmAutoComplete.atTypeMap[at] === 'emojis') {\n this.loadEmojiData($input, at).catch(() => {});\n } else if (dataSource) {\n AjaxCache.retrieve(dataSource, true)\n .then((data) => {\n this.loadSubcommands($input, data);\n this.loadData($input, at, data);\n })\n .catch(() => {\n this.isLoadingData[at] = false;\n });\n } else {\n this.isLoadingData[at] = false;\n }\n }\n\n loadSubcommands($input, data) {\n if (data.some((c) => c.name === 'submit_review')) {\n this.setSubmitReviewStates($input);\n }\n }\n\n // eslint-disable-next-line max-params\n loadData($input, at, data, { search } = {}) {\n this.isLoadingData[at] = false;\n\n if (search !== undefined) {\n if (this.cachedData[at] === undefined) {\n this.cachedData[at] = {};\n }\n\n this.cachedData[at][search] = data;\n } else {\n this.cachedData[at] = data;\n }\n\n $input.atwho('load', at, data);\n // This trigger at.js again\n // otherwise we would be stuck with loading until the user types\n return $input.trigger('keyup');\n }\n\n async loadEmojiData($input, at) {\n await Emoji.initEmojiMap();\n\n this.loadData($input, at, ['loaded']);\n\n GfmAutoComplete.glEmojiTag = Emoji.glEmojiTag;\n }\n\n updateDataSources(newDataSources) {\n this.dataSources = { ...this.dataSources, ...newDataSources };\n this.clearCache();\n }\n\n clearCache() {\n this.cachedData = {};\n }\n\n destroy() {\n this.input.each((i, input) => {\n const $input = $(input);\n $input.atwho('destroy');\n });\n }\n\n static isLoading(data) {\n let dataToInspect = data;\n if (data && data.length > 0) {\n [dataToInspect] = data;\n }\n\n const loadingState = GfmAutoComplete.defaultLoadingData[0];\n return dataToInspect && (dataToInspect === loadingState || dataToInspect.name === loadingState);\n }\n\n static defaultMatcher(flag, subtext, controllers) {\n // The below is taken from At.js source\n // Tweaked to commands to start without a space only if char before is a non-word character\n // https://github.com/ichord/At.js\n const atSymbolsWithBar = Object.keys(controllers)\n .join('|')\n .replace(/[$]/, '\\\\$&')\n .replace(/([[\\]:])/g, '\\\\$1')\n .replace(/([*])/g, '\\\\$1');\n\n const atSymbolsWithoutBar = Object.keys(controllers).join('');\n const targetSubtext = subtext.split(GfmAutoComplete.regexSubtext).pop();\n const resultantFlag = flag.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n\n const accentAChar = decodeURI('%C3%80');\n const accentYChar = decodeURI('%C3%BF');\n\n // Holy regex, batman!\n const regexp = new RegExp(\n `^(?:\\\\B|[^a-zA-Z0-9_\\`${atSymbolsWithoutBar}]|\\\\s)${resultantFlag}(?!${atSymbolsWithBar})((?:[A-Za-z${accentAChar}-${accentYChar}0-9_'.+-:]|[^\\\\x00-\\\\x7a])*)$`,\n 'gi',\n );\n\n return regexp.exec(targetSubtext);\n }\n}\n\nGfmAutoComplete.regexSubtext = /\\s+/g;\n\nGfmAutoComplete.defaultLoadingData = ['loading'];\n\nGfmAutoComplete.atTypeMap = {\n ':': 'emojis',\n '@': 'members',\n '#': 'issues',\n '!': 'mergeRequests',\n '&': 'epics',\n '*iteration:': 'iterations',\n '~': 'labels',\n '%': 'milestones',\n '/': 'commands',\n '[vulnerability:': 'vulnerabilities',\n $: 'snippets',\n '[contact:': 'contacts',\n '[[': 'wikis',\n};\n\nGfmAutoComplete.typesWithBackendFiltering = ['vulnerabilities', 'members', 'issues'];\n\nGfmAutoComplete.isTypeWithBackendFiltering = (type) =>\n GfmAutoComplete.typesWithBackendFiltering.includes(GfmAutoComplete.atTypeMap[type]);\n\n// Emoji\nGfmAutoComplete.glEmojiTag = null;\nGfmAutoComplete.Emoji = {\n insertTemplateFunction(value) {\n return `:${value.emoji.name}:`;\n },\n templateFunction(item) {\n if (GfmAutoComplete.isLoading(item)) {\n return GfmAutoComplete.Loading.template;\n }\n\n const escapedFieldValue = escape(item.fieldValue);\n if (!GfmAutoComplete.glEmojiTag) {\n return `<li>${escapedFieldValue}</li>`;\n }\n\n return `<li>${GfmAutoComplete.glEmojiTag(item.emoji.name)} ${escapedFieldValue}</li>`;\n },\n filter(query) {\n if (query.length === 0) {\n return Emoji.getAllEmoji()\n .map((emoji) => ({\n emoji,\n fieldValue: emoji.name,\n }))\n .slice(0, 20);\n }\n\n return Emoji.searchEmoji(query);\n },\n sorter(items) {\n return items.sort(Emoji.sortEmoji);\n },\n};\n// Team Members\nGfmAutoComplete.Members = {\n templateFunction({ avatarTag, username, title, icon, availabilityStatus }) {\n return `<li>${avatarTag} ${username} <small>${escape(\n title,\n )}${availabilityStatus}</small> ${icon}</li>`;\n },\n nameOrUsernameStartsWith(member, query) {\n // `member.search` is a name:username string like `MargeSimpson msimpson`\n return member.search.split(' ').some((name) => name.toLowerCase().startsWith(query));\n },\n nameOrUsernameIncludes(member, query) {\n // `member.search` is a name:username string like `MargeSimpson msimpson`\n return member.search.toLowerCase().includes(query);\n },\n // This should be kept in sync with the backend sorting in\n // `User#gfm_autocomplete_search` and `Namespace#gfm_autocomplete_search`\n sort(query, members) {\n const lowercaseQuery = query.toLowerCase();\n const { nameOrUsernameStartsWith, nameOrUsernameIncludes } = GfmAutoComplete.Members;\n\n return sortBy(\n members.filter((member) => nameOrUsernameIncludes(member, lowercaseQuery)),\n (member) => (nameOrUsernameStartsWith(member, lowercaseQuery) ? -1 : 0),\n );\n },\n};\nGfmAutoComplete.Labels = {\n templateFunction(color, title) {\n return `<li><span class=\"dropdown-label-box\" style=\"background: ${escape(\n color,\n )}\"></span> ${escape(title)}</li>`;\n },\n};\n// Issues, MergeRequests and Snippets\nGfmAutoComplete.Issues = {\n insertTemplateFunction(value) {\n // eslint-disable-next-line no-template-curly-in-string\n return value.reference || '${atwho-at}${id}';\n },\n templateFunction({ id, title, reference, iconName }) {\n const mappedIconName =\n iconName === ISSUABLE_EPIC ? WORK_ITEMS_TYPE_MAP[WORK_ITEM_TYPE_ENUM_EPIC].icon : iconName;\n const icon = mappedIconName\n ? spriteIcon(mappedIconName, 'gl-fill-icon-subtle s16 gl-mr-2')\n : '';\n return `<li>${icon}<small>${escape(reference || id)}</small> ${escape(title)}</li>`;\n },\n};\n// Milestones\nGfmAutoComplete.Milestones = {\n templateFunction(title, expired) {\n if (expired) {\n return `<li>${sprintf(__('%{milestone} (expired)'), {\n milestone: escape(title),\n })}</li>`;\n }\n return `<li>${escape(title)}</li>`;\n },\n};\nGfmAutoComplete.Contacts = {\n templateFunction({ email, firstName, lastName }) {\n return `<li><small>${escape(firstName)} ${escape(lastName)}</small> ${escape(email)}</li>`;\n },\n};\nGfmAutoComplete.Wikis = {\n templateFunction({ title, slug }) {\n const icon = spriteIcon('document', 's16 vertical-align-middle gl-mr-2');\n const slugSpan =\n title.toLowerCase() !== slug.toLowerCase() ? ` <small>(${escape(slug)})</small>` : '';\n return `<li>${icon} ${escape(title)} ${slugSpan}</li>`;\n },\n};\n\nconst loadingSpinner = loadingIconForLegacyJS({\n inline: true,\n classes: ['gl-mr-2'],\n}).outerHTML;\n\nGfmAutoComplete.Loading = {\n template: `<li style=\"pointer-events: none;\">${loadingSpinner}Loading...</li>`,\n};\n\nexport default GfmAutoComplete;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestMilestone\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"milestone\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MilestoneFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":279}};\n doc.loc.source = {\"body\":\"#import \\\"./milestone.fragment.graphql\\\"\\n\\nquery mergeRequestMilestone($fullPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: mergeRequest(iid: $iid) {\\n id\\n attribute: milestone {\\n ...MilestoneFragment\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./milestone.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"mergeRequestMilestone\"] = oneQuery(doc, \"mergeRequestMilestone\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"flash-container js-suggestions-flash gl-whitespace-pre-line\"}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isRendered),expression:\"isRendered\"},{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.noteHtml),expression:\"noteHtml\"}],ref:\"container\",staticClass:\"md suggestions\",attrs:{\"data-testid\":\"suggestions-container\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function trimFirstCharOfLineContent(text) {\n if (!text) {\n return text;\n }\n\n return text.replace(/^( |\\+|-)/, '');\n}\n\nfunction cleanSuggestionLine(line = {}) {\n return {\n ...line,\n text: trimFirstCharOfLineContent(line.text),\n rich_text: trimFirstCharOfLineContent(line.rich_text),\n };\n}\n\nexport function selectDiffLines(lines) {\n return lines.filter((line) => line.type !== 'match').map((line) => cleanSuggestionLine(line));\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"md-suggestion-header border-bottom-0 gl-flex-col gl-items-start gl-gap-3 gl-px-4 gl-py-3 sm:gl-flex-row sm:gl-flex-wrap\"},[_c('div',{staticClass:\"js-suggestion-diff-header gl-font-bold\"},[_vm._v(\"\\n \"+_vm._s(_vm.__('Suggested change'))+\"\\n \"),(_vm.helpPagePath)?_c('a',{staticClass:\"js-help-btn\",attrs:{\"href\":_vm.helpPagePath,\"aria-label\":_vm.__('Help')}},[_c('help-icon')],1):_vm._e()]),_vm._v(\" \"),(_vm.isApplied)?_c('gl-badge',{attrs:{\"variant\":\"success\",\"data-testid\":\"applied-badge\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Applied'))+\"\\n \")]):(_vm.isApplying)?_c('div',{staticClass:\"gl-flex gl-items-center gl-text-subtle\",attrs:{\"data-testid\":\"applying-badge\"}},[_c('gl-loading-icon',{staticClass:\"gl-mr-3 gl-items-center gl-justify-center\",attrs:{\"size\":\"sm\"}}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.applyingSuggestionsMessage))])],1):(_vm.isLoggedIn)?_c('div',{staticClass:\"gl-flex gl-flex-wrap gl-items-center gl-gap-3\"},[(_vm.isBatched)?_c('div',[_c('gl-button',{staticClass:\"btn-inverted js-remove-from-batch-btn\",attrs:{\"disabled\":_vm.isApplying,\"size\":\"small\"},on:{\"click\":_vm.removeSuggestionFromBatch}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Remove from batch'))+\"\\n \")])],1):(!_vm.isDisableButton && _vm.suggestionsCount > 1)?_c('div',[_c('gl-button',{staticClass:\"btn-inverted js-add-to-batch-btn\",attrs:{\"data-testid\":\"add-suggestion-batch-button\",\"disabled\":_vm.isDisableButton,\"size\":\"small\"},on:{\"click\":_vm.addSuggestionToBatch}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Add suggestion to batch'))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.showApplySuggestion)?_c('apply-suggestion',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport\",value:(_vm.tooltipMessage),expression:\"tooltipMessage\",modifiers:{\"viewport\":true}}],attrs:{\"disabled\":_vm.isDisableButton,\"default-commit-message\":_vm.defaultCommitMessage,\"batch-suggestions-count\":_vm.batchSuggestionsCount,\"error-message\":_vm.applySuggestionErrorMessage},on:{\"apply\":_vm.apply}}):_vm._e()],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./apply_suggestion.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./apply_suggestion.vue?vue&type=script&lang=js\"","<script>\nimport { GlDisclosureDropdown, GlForm, GlFormTextarea, GlButton, GlAlert } from '@gitlab/ui';\nimport { __, n__ } from '~/locale';\n\nexport default {\n components: { GlDisclosureDropdown, GlForm, GlFormTextarea, GlButton, GlAlert },\n props: {\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n defaultCommitMessage: {\n type: String,\n required: false,\n default: null,\n },\n batchSuggestionsCount: {\n type: Number,\n required: false,\n default: 0,\n },\n errorMessage: {\n type: String,\n required: false,\n default: null,\n },\n },\n data() {\n return {\n message: null,\n };\n },\n computed: {\n dropdownText() {\n if (this.batchSuggestionsCount <= 1) {\n return __('Apply suggestion');\n }\n\n return n__('Apply %d suggestion', 'Apply %d suggestions', this.batchSuggestionsCount);\n },\n helperText() {\n if (this.batchSuggestionsCount <= 1) {\n return __('This also resolves this thread');\n }\n\n return __('This also resolves all related threads');\n },\n },\n methods: {\n onApply() {\n this.$emit('apply', this.message);\n },\n focusCommitMessageInput() {\n this.$refs.commitMessage.$el.focus();\n },\n },\n};\n</script>\n\n<template>\n <gl-disclosure-dropdown\n data-testid=\"apply-suggestion-dropdown\"\n fluid-width\n placement=\"bottom-end\"\n size=\"small\"\n :disabled=\"disabled\"\n :toggle-text=\"dropdownText\"\n @shown=\"focusCommitMessageInput\"\n >\n <gl-form class=\"!gl-mx-0 !gl-my-2 gl-flex gl-flex-col !gl-px-4\">\n <label for=\"commit-message\">{{ __('Commit message') }}</label>\n <gl-alert v-if=\"errorMessage\" variant=\"danger\" :dismissible=\"false\" class=\"gl-mb-4\">\n {{ errorMessage }}\n </gl-alert>\n\n <gl-form-textarea\n id=\"commit-message\"\n ref=\"commitMessage\"\n v-model=\"message\"\n class=\"apply-suggestions-input-min-width\"\n :placeholder=\"defaultCommitMessage\"\n submit-on-enter\n data-testid=\"commit-message-field\"\n no-resize\n @submit=\"onApply\"\n />\n\n <span class=\"gl-mt-2 gl-text-subtle\">\n {{ helperText }}\n </span>\n\n <gl-button\n class=\"gl-mt-3 !gl-w-auto gl-self-end\"\n category=\"primary\"\n variant=\"confirm\"\n data-testid=\"commit-with-custom-message-button\"\n @click=\"onApply\"\n >\n {{ __('Apply') }}\n </gl-button>\n </gl-form>\n </gl-disclosure-dropdown>\n</template>\n","import { render, staticRenderFns } from \"./apply_suggestion.vue?vue&type=template&id=1bddda20\"\nimport script from \"./apply_suggestion.vue?vue&type=script&lang=js\"\nexport * from \"./apply_suggestion.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-disclosure-dropdown',{attrs:{\"data-testid\":\"apply-suggestion-dropdown\",\"fluid-width\":\"\",\"placement\":\"bottom-end\",\"size\":\"small\",\"disabled\":_vm.disabled,\"toggle-text\":_vm.dropdownText},on:{\"shown\":_vm.focusCommitMessageInput}},[_c('gl-form',{staticClass:\"!gl-mx-0 !gl-my-2 gl-flex gl-flex-col !gl-px-4\"},[_c('label',{attrs:{\"for\":\"commit-message\"}},[_vm._v(_vm._s(_vm.__('Commit message')))]),_vm._v(\" \"),(_vm.errorMessage)?_c('gl-alert',{staticClass:\"gl-mb-4\",attrs:{\"variant\":\"danger\",\"dismissible\":false}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('gl-form-textarea',{ref:\"commitMessage\",staticClass:\"apply-suggestions-input-min-width\",attrs:{\"id\":\"commit-message\",\"placeholder\":_vm.defaultCommitMessage,\"submit-on-enter\":\"\",\"data-testid\":\"commit-message-field\",\"no-resize\":\"\"},on:{\"submit\":_vm.onApply},model:{value:(_vm.message),callback:function ($$v) {_vm.message=$$v},expression:\"message\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-mt-2 gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(_vm.helperText)+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-mt-3 !gl-w-auto gl-self-end\",attrs:{\"category\":\"primary\",\"variant\":\"confirm\",\"data-testid\":\"commit-with-custom-message-button\"},on:{\"click\":_vm.onApply}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Apply'))+\"\\n \")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlBadge, GlButton, GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport { __ } from '~/locale';\nimport ApplySuggestion from './apply_suggestion.vue';\n\nconst APPLY_SUGGESTION_ERROR_MESSAGE = __(\n 'Unable to fully load the default commit message. You can still apply this suggestion and the commit message will be correct.',\n);\n\nexport default {\n components: { GlBadge, GlButton, GlLoadingIcon, ApplySuggestion, HelpIcon },\n directives: { GlTooltip: GlTooltipDirective },\n props: {\n batchSuggestionsCount: {\n type: Number,\n required: false,\n default: 0,\n },\n canApply: {\n type: Boolean,\n required: false,\n default: false,\n },\n isApplied: {\n type: Boolean,\n required: true,\n default: false,\n },\n isBatched: {\n type: Boolean,\n required: false,\n default: false,\n },\n isApplyingBatch: {\n type: Boolean,\n required: false,\n default: false,\n },\n helpPagePath: {\n type: String,\n required: true,\n },\n defaultCommitMessage: {\n type: String,\n required: false,\n default: null,\n },\n inapplicableReason: {\n type: String,\n required: false,\n default: null,\n },\n suggestionsCount: {\n type: Number,\n required: false,\n default: 0,\n },\n failedToLoadMetadata: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n isApplyingSingle: false,\n };\n },\n\n computed: {\n isApplying() {\n return this.isApplyingSingle || this.isApplyingBatch;\n },\n tooltipMessage() {\n if (!this.canApply) {\n return this.inapplicableReason;\n }\n\n return false;\n },\n isDisableButton() {\n return this.isApplying || !this.canApply;\n },\n applyingSuggestionsMessage() {\n if (this.isApplyingSingle || this.batchSuggestionsCount < 2) {\n return __('Applying suggestion...');\n }\n\n return __('Applying suggestions...');\n },\n isLoggedIn() {\n return isLoggedIn();\n },\n showApplySuggestion() {\n if (!this.isLoggedIn) return false;\n\n if (this.batchSuggestionsCount >= 1 && !this.isBatched) {\n return false;\n }\n\n return true;\n },\n applySuggestionErrorMessage() {\n return this.failedToLoadMetadata ? APPLY_SUGGESTION_ERROR_MESSAGE : null;\n },\n },\n methods: {\n apply(message) {\n if (this.batchSuggestionsCount > 1) {\n this.applySuggestionBatch(message);\n } else {\n this.applySuggestion(message);\n }\n },\n applySuggestion(message) {\n if (!this.canApply) return;\n this.isApplyingSingle = true;\n\n this.$emit('apply', this.applySuggestionCallback, message);\n },\n applySuggestionCallback() {\n this.isApplyingSingle = false;\n },\n applySuggestionBatch(message) {\n if (!this.canApply) return;\n this.$emit('applyBatch', message);\n },\n addSuggestionToBatch() {\n this.$emit('addToBatch');\n },\n removeSuggestionFromBatch() {\n this.$emit('removeFromBatch');\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"md-suggestion-header border-bottom-0 gl-flex-col gl-items-start gl-gap-3 gl-px-4 gl-py-3 sm:gl-flex-row sm:gl-flex-wrap\"\n >\n <div class=\"js-suggestion-diff-header gl-font-bold\">\n {{ __('Suggested change') }}\n <a v-if=\"helpPagePath\" :href=\"helpPagePath\" :aria-label=\"__('Help')\" class=\"js-help-btn\">\n <help-icon />\n </a>\n </div>\n <gl-badge v-if=\"isApplied\" variant=\"success\" data-testid=\"applied-badge\">\n {{ __('Applied') }}\n </gl-badge>\n <div\n v-else-if=\"isApplying\"\n class=\"gl-flex gl-items-center gl-text-subtle\"\n data-testid=\"applying-badge\"\n >\n <gl-loading-icon size=\"sm\" class=\"gl-mr-3 gl-items-center gl-justify-center\" />\n <span>{{ applyingSuggestionsMessage }}</span>\n </div>\n <div v-else-if=\"isLoggedIn\" class=\"gl-flex gl-flex-wrap gl-items-center gl-gap-3\">\n <div v-if=\"isBatched\">\n <gl-button\n class=\"btn-inverted js-remove-from-batch-btn\"\n :disabled=\"isApplying\"\n size=\"small\"\n @click=\"removeSuggestionFromBatch\"\n >\n {{ __('Remove from batch') }}\n </gl-button>\n </div>\n <div v-else-if=\"!isDisableButton && suggestionsCount > 1\">\n <gl-button\n class=\"btn-inverted js-add-to-batch-btn\"\n data-testid=\"add-suggestion-batch-button\"\n :disabled=\"isDisableButton\"\n size=\"small\"\n @click=\"addSuggestionToBatch\"\n >\n {{ __('Add suggestion to batch') }}\n </gl-button>\n </div>\n <apply-suggestion\n v-if=\"showApplySuggestion\"\n v-gl-tooltip.viewport=\"tooltipMessage\"\n :disabled=\"isDisableButton\"\n :default-commit-message=\"defaultCommitMessage\"\n :batch-suggestions-count=\"batchSuggestionsCount\"\n :error-message=\"applySuggestionErrorMessage\"\n @apply=\"apply\"\n />\n </div>\n </div>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./suggestion_diff_header.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./suggestion_diff_header.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./suggestion_diff_header.vue?vue&type=template&id=5a834525\"\nimport script from \"./suggestion_diff_header.vue?vue&type=script&lang=js\"\nexport * from \"./suggestion_diff_header.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./suggestion_diff_row.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./suggestion_diff_row.vue?vue&type=script&lang=js\"","<script>\nimport SafeHtml from '~/vue_shared/directives/safe_html';\n\nexport default {\n name: 'SuggestionDiffRow',\n directives: {\n SafeHtml,\n },\n props: {\n line: {\n type: Object,\n required: true,\n },\n },\n computed: {\n displayAsCell() {\n return !(this.line.rich_text || this.line.text);\n },\n lineType() {\n return this.line.type;\n },\n },\n};\n</script>\n\n<template>\n <tr class=\"line_holder\" :class=\"lineType\">\n <td class=\"diff-line-num old_line border-top-0 border-bottom-0\" :class=\"lineType\">\n {{ line.old_line }}\n </td>\n <td class=\"diff-line-num new_line border-top-0 border-bottom-0\" :class=\"lineType\">\n {{ line.new_line }}\n </td>\n <td\n class=\"line_content\"\n :class=\"[{ 'd-table-cell': displayAsCell }, lineType]\"\n data-testid=\"suggestion-diff-content\"\n >\n <span v-if=\"line.rich_text\" v-safe-html=\"line.rich_text\" class=\"line\"></span>\n <span v-else-if=\"line.text\" class=\"line\">{{ line.text }}</span>\n <span v-else class=\"line\"></span>\n </td>\n </tr>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./suggestion_diff.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./suggestion_diff.vue?vue&type=script&lang=js\"","<script>\nimport { selectDiffLines } from '../lib/utils/diff_utils';\nimport SuggestionDiffHeader from './suggestion_diff_header.vue';\nimport SuggestionDiffRow from './suggestion_diff_row.vue';\n\nexport default {\n components: {\n SuggestionDiffHeader,\n SuggestionDiffRow,\n },\n props: {\n suggestion: {\n type: Object,\n required: true,\n },\n batchSuggestionsInfo: {\n type: Array,\n required: false,\n default: () => [],\n },\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n helpPagePath: {\n type: String,\n required: true,\n },\n defaultCommitMessage: {\n type: String,\n required: true,\n },\n suggestionsCount: {\n type: Number,\n required: false,\n default: 0,\n },\n failedToLoadMetadata: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n batchSuggestionsCount() {\n return this.batchSuggestionsInfo.length;\n },\n isBatched() {\n return Boolean(\n this.batchSuggestionsInfo.find(({ suggestionId }) => suggestionId === this.suggestion.id),\n );\n },\n lines() {\n return selectDiffLines(this.suggestion.diff_lines);\n },\n },\n methods: {\n applySuggestion(callback, message) {\n this.$emit('apply', { suggestionId: this.suggestion.id, callback, message });\n },\n applySuggestionBatch(message) {\n this.$emit('applyBatch', message);\n },\n addSuggestionToBatch() {\n this.$emit('addToBatch', this.suggestion.id);\n },\n removeSuggestionFromBatch() {\n this.$emit('removeFromBatch', this.suggestion.id);\n },\n },\n};\n</script>\n\n<template>\n <div class=\"md-suggestion\">\n <suggestion-diff-header\n class=\"js-suggestion-diff-header\"\n :suggestions-count=\"suggestionsCount\"\n :can-apply=\"suggestion.appliable && suggestion.current_user.can_apply && !disabled\"\n :is-applied=\"suggestion.applied\"\n :is-batched=\"isBatched\"\n :is-applying-batch=\"suggestion.is_applying_batch\"\n :batch-suggestions-count=\"batchSuggestionsCount\"\n :help-page-path=\"helpPagePath\"\n :default-commit-message=\"defaultCommitMessage\"\n :inapplicable-reason=\"suggestion.inapplicable_reason\"\n :failed-to-load-metadata=\"failedToLoadMetadata\"\n @apply=\"applySuggestion\"\n @applyBatch=\"applySuggestionBatch\"\n @addToBatch=\"addSuggestionToBatch\"\n @removeFromBatch=\"removeSuggestionFromBatch\"\n />\n <table class=\"mb-3 md-suggestion-diff js-syntax-highlight code\">\n <tbody>\n <suggestion-diff-row\n v-for=\"(line, index) of lines\"\n :key=\"`${index}-${line.text}`\"\n :line=\"line\"\n />\n </tbody>\n </table>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./suggestion_diff_row.vue?vue&type=template&id=c2e1e36c\"\nimport script from \"./suggestion_diff_row.vue?vue&type=script&lang=js\"\nexport * from \"./suggestion_diff_row.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('tr',{staticClass:\"line_holder\",class:_vm.lineType},[_c('td',{staticClass:\"diff-line-num old_line border-top-0 border-bottom-0\",class:_vm.lineType},[_vm._v(\"\\n \"+_vm._s(_vm.line.old_line)+\"\\n \")]),_vm._v(\" \"),_c('td',{staticClass:\"diff-line-num new_line border-top-0 border-bottom-0\",class:_vm.lineType},[_vm._v(\"\\n \"+_vm._s(_vm.line.new_line)+\"\\n \")]),_vm._v(\" \"),_c('td',{staticClass:\"line_content\",class:[{ 'd-table-cell': _vm.displayAsCell }, _vm.lineType],attrs:{\"data-testid\":\"suggestion-diff-content\"}},[(_vm.line.rich_text)?_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.line.rich_text),expression:\"line.rich_text\"}],staticClass:\"line\"}):(_vm.line.text)?_c('span',{staticClass:\"line\"},[_vm._v(_vm._s(_vm.line.text))]):_c('span',{staticClass:\"line\"})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./suggestion_diff.vue?vue&type=template&id=72244c9a\"\nimport script from \"./suggestion_diff.vue?vue&type=script&lang=js\"\nexport * from \"./suggestion_diff.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"md-suggestion\"},[_c('suggestion-diff-header',{staticClass:\"js-suggestion-diff-header\",attrs:{\"suggestions-count\":_vm.suggestionsCount,\"can-apply\":_vm.suggestion.appliable && _vm.suggestion.current_user.can_apply && !_vm.disabled,\"is-applied\":_vm.suggestion.applied,\"is-batched\":_vm.isBatched,\"is-applying-batch\":_vm.suggestion.is_applying_batch,\"batch-suggestions-count\":_vm.batchSuggestionsCount,\"help-page-path\":_vm.helpPagePath,\"default-commit-message\":_vm.defaultCommitMessage,\"inapplicable-reason\":_vm.suggestion.inapplicable_reason,\"failed-to-load-metadata\":_vm.failedToLoadMetadata},on:{\"apply\":_vm.applySuggestion,\"applyBatch\":_vm.applySuggestionBatch,\"addToBatch\":_vm.addSuggestionToBatch,\"removeFromBatch\":_vm.removeSuggestionFromBatch}}),_vm._v(\" \"),_c('table',{staticClass:\"mb-3 md-suggestion-diff js-syntax-highlight code\"},[_c('tbody',_vm._l((_vm.lines),function(line,index){return _c('suggestion-diff-row',{key:`${index}-${line.text}`,attrs:{\"line\":line}})}),1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./suggestions.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./suggestions.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport Vue from 'vue';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { createAlert } from '~/alert';\nimport { __ } from '~/locale';\nimport SuggestionDiff from './suggestion_diff.vue';\n\nexport default {\n directives: {\n SafeHtml,\n },\n props: {\n lineType: {\n type: String,\n required: false,\n default: '',\n },\n suggestions: {\n type: Array,\n required: false,\n default: () => [],\n },\n batchSuggestionsInfo: {\n type: Array,\n required: false,\n default: () => [],\n },\n noteHtml: {\n type: String,\n required: true,\n },\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n helpPagePath: {\n type: String,\n required: true,\n },\n defaultCommitMessage: {\n type: String,\n required: false,\n default: null,\n },\n suggestionsCount: {\n type: Number,\n required: false,\n default: 0,\n },\n failedToLoadMetadata: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n isRendered: false,\n };\n },\n watch: {\n suggestions() {\n this.reset();\n },\n noteHtml() {\n this.reset();\n },\n failedToLoadMetadata() {\n this.reset();\n },\n },\n mounted() {\n this.renderSuggestions();\n },\n beforeDestroy() {\n if (this.suggestionsWatch) {\n this.suggestionsWatch();\n }\n\n if (this.defaultCommitMessageWatch) {\n this.defaultCommitMessageWatch();\n }\n },\n methods: {\n renderSuggestions() {\n // swaps out suggestion(s) markdown with rich diff components\n // (while still keeping non-suggestion markdown in place)\n\n if (!this.noteHtml) return;\n const { container } = this.$refs;\n const suggestionElements = container.querySelectorAll('.js-render-suggestion');\n\n if (this.lineType === 'old') {\n createAlert({\n message: __('Unable to apply suggestions to a deleted line.'),\n parent: this.$el,\n });\n }\n\n suggestionElements.forEach((suggestionEl, i) => {\n const suggestionParentEl = suggestionEl.parentElement;\n const diffComponent = this.generateDiff(i);\n diffComponent.$mount(suggestionParentEl);\n });\n\n this.isRendered = true;\n },\n generateDiff(suggestionIndex) {\n const {\n suggestions,\n disabled,\n batchSuggestionsInfo,\n helpPagePath,\n defaultCommitMessage,\n suggestionsCount,\n failedToLoadMetadata,\n } = this;\n const suggestion =\n suggestions && suggestions[suggestionIndex] ? suggestions[suggestionIndex] : {};\n const SuggestionDiffComponent = Vue.extend(SuggestionDiff);\n const suggestionDiff = new SuggestionDiffComponent({\n propsData: {\n disabled,\n suggestion,\n batchSuggestionsInfo,\n helpPagePath,\n defaultCommitMessage: defaultCommitMessage || '',\n suggestionsCount,\n failedToLoadMetadata,\n },\n });\n\n // We're using `$watch` as `suggestionsCount` updates do not\n // propagate to this component for some unknown reason while\n // using a traditional prop watcher.\n this.suggestionsWatch = this.$watch('suggestionsCount', () => {\n suggestionDiff.suggestionsCount = this.suggestionsCount;\n });\n\n this.defaultCommitMessageWatch = this.$watch('defaultCommitMessage', () => {\n suggestionDiff.defaultCommitMessage = this.defaultCommitMessage;\n });\n\n suggestionDiff.$on('apply', ({ suggestionId, callback, message }) => {\n this.$emit('apply', { suggestionId, callback, flashContainer: this.$el, message });\n });\n\n suggestionDiff.$on('applyBatch', (message) => {\n this.$emit('applyBatch', { message, flashContainer: this.$el });\n });\n\n suggestionDiff.$on('addToBatch', (suggestionId) => {\n this.$emit('addToBatch', suggestionId);\n });\n\n suggestionDiff.$on('removeFromBatch', (suggestionId) => {\n this.$emit('removeFromBatch', suggestionId);\n });\n\n return suggestionDiff;\n },\n reset() {\n // resets the container HTML (replaces it with the updated noteHTML)\n // calls `renderSuggestions` once the updated noteHTML is added to the DOM\n\n // eslint-disable-next-line no-unsanitized/property\n this.$refs.container.innerHTML = this.noteHtml;\n this.isRendered = false;\n this.renderSuggestions();\n this.$nextTick(() => this.renderSuggestions());\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div class=\"flash-container js-suggestions-flash gl-whitespace-pre-line\"></div>\n <div\n v-show=\"isRendered\"\n ref=\"container\"\n v-safe-html=\"noteHtml\"\n data-testid=\"suggestions-container\"\n class=\"md suggestions\"\n ></div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./suggestions.vue?vue&type=template&id=281484ed\"\nimport script from \"./suggestions.vue?vue&type=script&lang=js\"\nexport * from \"./suggestions.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-dropdown',{ref:\"dropdown\",attrs:{\"text\":_vm.text},on:{\"toggle\":function($event){return _vm.$emit('toggle')},\"shown\":_vm.focusSearch},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('p',{staticClass:\"gl-mb-4 gl-mt-2 gl-text-center gl-font-bold\"},[_vm._v(_vm._s(_vm.headerText))]),_vm._v(\" \"),_c('gl-dropdown-divider'),_vm._v(\" \"),_c('gl-search-box-by-type',{ref:\"search\",attrs:{\"value\":_vm.search,\"data-testid\":\"user-search-input\"},on:{\"input\":_vm.debouncedSearchKeyUpdate}})]},proxy:true},{key:\"footer\",fn:function(){return [_vm._t(\"footer\")]},proxy:true}],null,true)},[_vm._v(\" \"),_c('gl-dropdown-form',{staticClass:\"gl-relative gl-min-h-7\"},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"gl-absolute gl-left-0 gl-right-0 gl-top-0\",attrs:{\"data-testid\":\"loading-participants\",\"size\":\"md\"}}):[(_vm.shouldShowParticipants)?[(_vm.isSearchEmpty)?_c('gl-dropdown-item',{attrs:{\"is-checked\":_vm.selectedIsEmpty,\"is-check-centered\":\"\",\"data-testid\":\"unassign\"},nativeOn:{\"!click\":function($event){$event.stopPropagation();return _vm.unassign.apply(null, arguments)}}},[_c('span',{staticClass:\"gl-font-bold\",class:_vm.selectedIsEmpty ? 'gl-pl-0' : 'gl-pl-6'},[_vm._v(_vm._s(_vm.$options.i18n.unassigned))])]):_vm._e()]:_vm._e(),_vm._v(\" \"),(_vm.showDivider(_vm.selectedFiltered))?_c('gl-dropdown-divider'):_vm._e(),_vm._v(\" \"),_vm._l((_vm.selectedFiltered),function(item){return _c('gl-dropdown-item',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],key:item.id,attrs:{\"title\":_vm.tooltipText(item),\"boundary\":\"viewport\",\"is-checked\":\"\",\"is-check-centered\":\"\",\"data-testid\":\"selected-participant\"},nativeOn:{\"!click\":function($event){$event.stopPropagation();return _vm.unselect(item.username)}}},[_c('sidebar-participant',{attrs:{\"user\":item,\"issuable-type\":_vm.issuableType,\"selected\":\"\"}})],1)}),_vm._v(\" \"),(_vm.showCurrentUser)?[_c('gl-dropdown-divider'),_vm._v(\" \"),_c('gl-dropdown-item',{attrs:{\"data-testid\":\"current-user\"},nativeOn:{\"!click\":function($event){$event.stopPropagation();return _vm.selectAssignee(_vm.currentUser)}}},[_c('sidebar-participant',{staticClass:\"!gl-pl-6\",attrs:{\"user\":_vm.currentUser,\"issuable-type\":_vm.issuableType}})],1)]:_vm._e(),_vm._v(\" \"),(_vm.showAuthor)?_c('gl-dropdown-item',{attrs:{\"data-testid\":\"issuable-author\"},nativeOn:{\"!click\":function($event){$event.stopPropagation();return _vm.selectAssignee(_vm.issuableAuthor)}}},[_c('sidebar-participant',{staticClass:\"!gl-pl-6\",attrs:{\"user\":_vm.issuableAuthor,\"issuable-type\":_vm.issuableType}})],1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.unselectedFiltered),function(unselectedUser){return _c('gl-dropdown-item',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],key:unselectedUser.id,attrs:{\"title\":_vm.tooltipText(unselectedUser),\"boundary\":\"viewport\",\"data-testid\":\"unselected-participant\"},nativeOn:{\"!click\":function($event){$event.stopPropagation();return _vm.selectAssignee(unselectedUser)}}},[_c('sidebar-participant',{staticClass:\"!gl-pl-6\",attrs:{\"user\":unselectedUser,\"issuable-type\":_vm.issuableType}})],1)}),_vm._v(\" \"),(_vm.noUsersFound)?_c('gl-dropdown-item',{staticClass:\"!gl-pl-6\",attrs:{\"data-testid\":\"empty-results\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('No matching results'))+\"\\n \")]):_vm._e()]],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_select.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_select.vue?vue&type=script&lang=js\"","<script>\nimport { debounce } from 'lodash';\nimport {\n GlDropdown,\n GlDropdownDivider,\n GlDropdownForm,\n GlDropdownItem,\n GlLoadingIcon,\n GlSearchBoxByType,\n GlTooltipDirective,\n} from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport SidebarParticipant from '~/sidebar/components/assignees/sidebar_participant.vue';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';\nimport { participantsQueries, userSearchQueries } from '~/sidebar/queries/constants';\nimport { TYPENAME_MERGE_REQUEST } from '~/graphql_shared/constants';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\n\nexport default {\n i18n: {\n unassigned: __('Unassigned'),\n },\n components: {\n GlDropdownForm,\n GlDropdown,\n GlDropdownDivider,\n GlDropdownItem,\n GlSearchBoxByType,\n SidebarParticipant,\n GlLoadingIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n headerText: {\n type: String,\n required: true,\n },\n text: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n iid: {\n type: String,\n required: false,\n default: null,\n },\n value: {\n type: Array,\n required: true,\n },\n allowMultipleAssignees: {\n type: Boolean,\n required: false,\n default: false,\n },\n currentUser: {\n type: Object,\n required: true,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n isEditing: {\n type: Boolean,\n required: false,\n default: true,\n },\n issuableId: {\n type: Number,\n required: false,\n default: null,\n },\n issuableAuthor: {\n type: Object,\n required: false,\n default: null,\n },\n },\n data() {\n return {\n search: '',\n participants: [],\n searchUsers: [],\n isSearching: false,\n };\n },\n apollo: {\n participants: {\n query() {\n return participantsQueries[this.issuableType].query;\n },\n skip() {\n return (\n Boolean(participantsQueries[this.issuableType].skipQuery) || !this.isEditing || !this.iid\n );\n },\n variables() {\n return {\n iid: this.iid,\n fullPath: this.fullPath,\n getStatus: true,\n };\n },\n update(data) {\n return data.workspace?.issuable?.participants.nodes.map((node) => ({\n ...node,\n canMerge: false,\n }));\n },\n error() {\n this.$emit('error');\n },\n },\n searchUsers: {\n query() {\n return userSearchQueries[this.issuableType].query;\n },\n variables() {\n return this.searchUsersVariables;\n },\n skip() {\n return !this.isEditing;\n },\n update(data) {\n return (\n data.workspace?.users\n .filter((user) => user)\n .map((user) => ({\n ...user,\n canMerge: user.mergeRequestInteraction?.canMerge || false,\n })) || []\n );\n },\n error() {\n this.$emit('error');\n this.isSearching = false;\n },\n result() {\n this.isSearching = false;\n },\n },\n },\n computed: {\n isMergeRequest() {\n return this.issuableType === TYPE_MERGE_REQUEST;\n },\n searchUsersVariables() {\n const variables = {\n fullPath: this.fullPath,\n search: this.search,\n first: 20,\n };\n if (!this.isMergeRequest) {\n return variables;\n }\n return {\n ...variables,\n mergeRequestId: convertToGraphQLId(TYPENAME_MERGE_REQUEST, this.issuableId),\n };\n },\n isLoading() {\n return this.$apollo.queries.searchUsers.loading || this.$apollo.queries.participants.loading;\n },\n users() {\n const filteredParticipants =\n this.participants?.filter(\n (user) => user.name.includes(this.search) || user.username.includes(this.search),\n ) || [];\n\n // TODO this de-duplication is temporary (BE fix required)\n // https://gitlab.com/gitlab-org/gitlab/-/issues/327822\n const mergedSearchResults = this.searchUsers\n .concat(filteredParticipants)\n .reduce(\n (acc, current) => (acc.some((user) => current.id === user.id) ? acc : [...acc, current]),\n [],\n );\n\n return this.moveCurrentUserAndAuthorToStart(mergedSearchResults);\n },\n isSearchEmpty() {\n return this.search === '';\n },\n shouldShowParticipants() {\n return this.isSearchEmpty || this.isSearching;\n },\n isCurrentUserInList() {\n const isCurrentUser = (user) => user.username === this.currentUser.username;\n return this.users.some(isCurrentUser);\n },\n noUsersFound() {\n return !this.isSearchEmpty && this.users.length === 0;\n },\n showCurrentUser() {\n return this.currentUser.username && !this.isCurrentUserInList && this.isSearchEmpty;\n },\n showAuthor() {\n return (\n this.issuableAuthor &&\n !this.users.some((user) => user.id === this.issuableAuthor.id) &&\n this.isSearchEmpty\n );\n },\n selectedFiltered() {\n if (this.shouldShowParticipants) {\n return this.moveCurrentUserAndAuthorToStart(this.value);\n }\n\n const foundUsernames = this.users.map(({ username }) => username);\n const filtered = this.value.filter(({ username }) => foundUsernames.includes(username));\n return this.moveCurrentUserAndAuthorToStart(filtered);\n },\n selectedUserNames() {\n return this.value.map(({ username }) => username);\n },\n unselectedFiltered() {\n return this.users?.filter(({ username }) => !this.selectedUserNames.includes(username)) || [];\n },\n selectedIsEmpty() {\n return this.selectedFiltered.length === 0;\n },\n },\n\n watch: {\n // We need to add this watcher to track the moment when user is alredy typing\n // but query is still not started due to debounce\n search(newVal) {\n if (newVal) {\n this.isSearching = true;\n }\n },\n },\n created() {\n this.debouncedSearchKeyUpdate = debounce(this.setSearchKey, DEFAULT_DEBOUNCE_AND_THROTTLE_MS);\n },\n methods: {\n selectAssignee(user) {\n let selected = [...this.value];\n if (!this.allowMultipleAssignees) {\n selected = [user];\n this.$emit('input', selected);\n this.$refs.dropdown.hide();\n this.$emit('toggle');\n } else {\n selected.push(user);\n this.$emit('input', selected);\n }\n this.clearAndFocusSearch();\n },\n unassign() {\n this.$emit('input', []);\n this.$refs.dropdown.hide();\n },\n unselect(name) {\n const selected = this.value.filter((user) => user.username !== name);\n this.$emit('input', selected);\n this.clearAndFocusSearch();\n },\n focusSearch() {\n this.$refs.search.focusInput();\n },\n showDropdown() {\n this.$refs.dropdown.show();\n },\n showDivider(list) {\n return list.length > 0 && this.isSearchEmpty;\n },\n moveCurrentUserAndAuthorToStart(users = []) {\n let sortedUsers = [...users];\n\n const author = sortedUsers.find((user) => user.id === this.issuableAuthor?.id);\n if (author) {\n sortedUsers = [author, ...sortedUsers.filter((user) => user.id !== author.id)];\n }\n\n const currentUser = sortedUsers.find((user) => user.username === this.currentUser.username);\n\n if (currentUser) {\n currentUser.canMerge = this.currentUser.canMerge;\n sortedUsers = [currentUser, ...sortedUsers.filter((user) => user.id !== currentUser.id)];\n }\n\n return sortedUsers;\n },\n setSearchKey(value) {\n this.search = value.trim();\n },\n tooltipText(user) {\n if (!this.isMergeRequest) {\n return '';\n }\n return user.canMerge ? '' : __('Cannot merge');\n },\n clearAndFocusSearch() {\n this.search = '';\n this.focusSearch();\n },\n },\n};\n</script>\n\n<template>\n <gl-dropdown ref=\"dropdown\" :text=\"text\" @toggle=\"$emit('toggle')\" @shown=\"focusSearch\">\n <template #header>\n <p class=\"gl-mb-4 gl-mt-2 gl-text-center gl-font-bold\">{{ headerText }}</p>\n <gl-dropdown-divider />\n <gl-search-box-by-type\n ref=\"search\"\n :value=\"search\"\n data-testid=\"user-search-input\"\n @input=\"debouncedSearchKeyUpdate\"\n />\n </template>\n <gl-dropdown-form class=\"gl-relative gl-min-h-7\">\n <gl-loading-icon\n v-if=\"isLoading\"\n data-testid=\"loading-participants\"\n size=\"md\"\n class=\"gl-absolute gl-left-0 gl-right-0 gl-top-0\"\n />\n <template v-else>\n <template v-if=\"shouldShowParticipants\">\n <gl-dropdown-item\n v-if=\"isSearchEmpty\"\n :is-checked=\"selectedIsEmpty\"\n is-check-centered\n data-testid=\"unassign\"\n @click.capture.native.stop=\"unassign\"\n >\n <span :class=\"selectedIsEmpty ? 'gl-pl-0' : 'gl-pl-6'\" class=\"gl-font-bold\">{{\n $options.i18n.unassigned\n }}</span>\n </gl-dropdown-item>\n </template>\n <gl-dropdown-divider v-if=\"showDivider(selectedFiltered)\" />\n <gl-dropdown-item\n v-for=\"item in selectedFiltered\"\n :key=\"item.id\"\n v-gl-tooltip.left.viewport\n :title=\"tooltipText(item)\"\n boundary=\"viewport\"\n is-checked\n is-check-centered\n data-testid=\"selected-participant\"\n @click.capture.native.stop=\"unselect(item.username)\"\n >\n <sidebar-participant :user=\"item\" :issuable-type=\"issuableType\" selected />\n </gl-dropdown-item>\n <template v-if=\"showCurrentUser\">\n <gl-dropdown-divider />\n <gl-dropdown-item\n data-testid=\"current-user\"\n @click.capture.native.stop=\"selectAssignee(currentUser)\"\n >\n <sidebar-participant\n :user=\"currentUser\"\n :issuable-type=\"issuableType\"\n class=\"!gl-pl-6\"\n />\n </gl-dropdown-item>\n </template>\n <gl-dropdown-item\n v-if=\"showAuthor\"\n data-testid=\"issuable-author\"\n @click.capture.native.stop=\"selectAssignee(issuableAuthor)\"\n >\n <sidebar-participant\n :user=\"issuableAuthor\"\n :issuable-type=\"issuableType\"\n class=\"!gl-pl-6\"\n />\n </gl-dropdown-item>\n <gl-dropdown-item\n v-for=\"unselectedUser in unselectedFiltered\"\n :key=\"unselectedUser.id\"\n v-gl-tooltip.left.viewport\n :title=\"tooltipText(unselectedUser)\"\n boundary=\"viewport\"\n data-testid=\"unselected-participant\"\n @click.capture.native.stop=\"selectAssignee(unselectedUser)\"\n >\n <sidebar-participant\n :user=\"unselectedUser\"\n :issuable-type=\"issuableType\"\n class=\"!gl-pl-6\"\n />\n </gl-dropdown-item>\n <gl-dropdown-item v-if=\"noUsersFound\" data-testid=\"empty-results\" class=\"!gl-pl-6\">\n {{ __('No matching results') }}\n </gl-dropdown-item>\n </template>\n </gl-dropdown-form>\n <template #footer>\n <slot name=\"footer\"></slot>\n </template>\n </gl-dropdown>\n</template>\n","import { render, staticRenderFns } from \"./user_select.vue?vue&type=template&id=64c3c52b\"\nimport script from \"./user_select.vue?vue&type=script&lang=js\"\nexport * from \"./user_select.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import $ from 'jquery';\n\n/**\n * Instances of SmartInterval extend the functionality of `setInterval`, make it configurable\n * and controllable by a public API.\n *\n * This component has two intervals:\n *\n * - current interval - when the page is visible - defined by `startingInterval`, `maxInterval`, and `incrementByFactorOf`\n * - Example:\n * - `startingInterval: 10000`, `maxInterval: 240000`, `incrementByFactorOf: 2`\n * - results in `10s, 20s, 40s, 80s, ..., 240s`, it stops increasing at `240s` and keeps this interval indefinitely.\n * - hidden interval - when the page is not visible\n *\n * Visibility transitions:\n *\n * - `visible -> not visible`\n * - `document.addEventListener('visibilitychange', () => ...)`\n *\n * > This event fires with a visibilityState of hidden when a user navigates to a new page, switches tabs, closes the tab, minimizes or closes the browser, or, on mobile, switches from the browser to a different app.\n *\n * Source [Document: visibilitychange event - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilitychange_event)\n *\n * - `window.addEventListener('blur', () => ...)` - every time user clicks somewhere else then in the browser page\n * - `not visible -> visible`\n * - `document.addEventListener('visibilitychange', () => ...)` same as the transition `visible -> not visible`\n * - `window.addEventListener('focus', () => ...)`\n *\n * The combination of these two listeners can result in an unexpected resumption of polling:\n *\n * - switch to a different window (causes `blur`)\n * - switch to a different desktop (causes `visibilitychange` (not visible))\n * - switch back to the original desktop (causes `visibilitychange` (visible))\n * - *now the polling happens even in window that user doesn't work in*\n */\n\nexport default class SmartInterval {\n /**\n * @param { function } opts.callback Function that returns a promise, called on each iteration\n * unless still in progress (required)\n * @param { milliseconds } opts.startingInterval `currentInterval` is set to this initially\n * @param { milliseconds } opts.maxInterval `currentInterval` will be incremented to this\n * @param { milliseconds } opts.hiddenInterval `currentInterval` is set to this\n * when the page is hidden\n * @param { integer } opts.incrementByFactorOf `currentInterval` is incremented by this factor\n * @param { boolean } opts.lazyStart Configure if timer is initialized on\n * instantiation or lazily\n * @param { boolean } opts.immediateExecution Configure if callback should\n * be executed before the first interval.\n */\n constructor(opts = {}) {\n this.cfg = {\n callback: opts.callback,\n startingInterval: opts.startingInterval,\n maxInterval: opts.maxInterval,\n hiddenInterval: opts.hiddenInterval,\n incrementByFactorOf: opts.incrementByFactorOf,\n lazyStart: opts.lazyStart,\n immediateExecution: opts.immediateExecution,\n };\n\n this.state = {\n intervalId: null,\n currentInterval: this.cfg.startingInterval,\n pagevisibile: true,\n };\n\n this.initInterval();\n }\n\n /* public */\n\n start() {\n const { cfg, state } = this;\n\n if (cfg.immediateExecution && !this.isLoading) {\n cfg.immediateExecution = false;\n this.triggerCallback();\n }\n\n state.intervalId = window.setInterval(() => {\n if (this.isLoading) {\n return;\n }\n this.triggerCallback();\n\n if (this.getCurrentInterval() === cfg.maxInterval) {\n return;\n }\n\n this.incrementInterval();\n this.resume();\n }, this.getCurrentInterval());\n }\n\n // cancel the existing timer, setting the currentInterval back to startingInterval\n cancel() {\n this.setCurrentInterval(this.cfg.startingInterval);\n this.stopTimer();\n }\n\n onVisibilityHidden() {\n if (this.cfg.hiddenInterval) {\n this.setCurrentInterval(this.cfg.hiddenInterval);\n this.resume();\n } else {\n this.cancel();\n }\n }\n\n // start a timer, using the existing interval\n resume() {\n this.stopTimer(); // stop existing timer, in case timer was not previously stopped\n this.start();\n }\n\n onVisibilityVisible() {\n this.cancel();\n this.start();\n }\n\n destroy() {\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n window.removeEventListener('blur', this.onWindowVisibilityChange);\n window.removeEventListener('focus', this.onWindowVisibilityChange);\n this.cancel();\n // eslint-disable-next-line @gitlab/no-global-event-off\n $(document).off('visibilitychange').off('beforeunload');\n }\n\n /* private */\n\n initInterval() {\n const { cfg } = this;\n\n if (!cfg.lazyStart) {\n this.start();\n }\n\n this.initVisibilityChangeHandling();\n this.initPageUnloadHandling();\n }\n\n triggerCallback() {\n this.isLoading = true;\n this.cfg\n .callback()\n .then(() => {\n this.isLoading = false;\n })\n .catch((err) => {\n this.isLoading = false;\n throw err;\n });\n }\n\n onWindowVisibilityChange(e) {\n this.state.pagevisibile = e.type === 'focus';\n this.handleVisibilityChange();\n }\n\n onVisibilityChange(e) {\n this.state.pagevisibile = e.target.visibilityState === 'visible';\n this.handleVisibilityChange();\n }\n\n initVisibilityChangeHandling() {\n // cancel interval when tab or window is no longer shown (prevents cached pages from polling)\n document.addEventListener('visibilitychange', this.onVisibilityChange.bind(this));\n window.addEventListener('blur', this.onWindowVisibilityChange.bind(this));\n window.addEventListener('focus', this.onWindowVisibilityChange.bind(this));\n }\n\n initPageUnloadHandling() {\n // TODO: Consider refactoring in light of turbolinks removal.\n // prevent interval continuing after page change, when kept in cache by Turbolinks\n $(document).on('beforeunload', () => this.cancel());\n }\n\n handleVisibilityChange() {\n const intervalAction = this.isPageVisible()\n ? this.onVisibilityVisible\n : this.onVisibilityHidden;\n\n intervalAction.apply(this);\n }\n\n getCurrentInterval() {\n return this.state.currentInterval;\n }\n\n setCurrentInterval(newInterval) {\n this.state.currentInterval = newInterval;\n }\n\n incrementInterval() {\n const { cfg } = this;\n const currentInterval = this.getCurrentInterval();\n if (cfg.hiddenInterval && !this.isPageVisible()) return;\n let nextInterval = currentInterval * cfg.incrementByFactorOf;\n\n if (nextInterval > cfg.maxInterval) {\n nextInterval = cfg.maxInterval;\n }\n\n this.setCurrentInterval(nextInterval);\n }\n\n isPageVisible() {\n return this.state.pagevisibile;\n }\n\n stopTimer() {\n const { state } = this;\n\n state.intervalId = window.clearInterval(state.intervalId);\n }\n}\n","/** Used to match template delimiters. */\nvar reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\nmodule.exports = reInterpolate;\n","import { __, s__ } from '~/locale';\n\nexport const LOAD_SINGLE_DIFF_FAILED = s__(\n \"MergeRequest|Can't fetch the diff needed to update this view. Please reload this page.\",\n);\nexport const DISCUSSION_SINGLE_DIFF_FAILED = s__(\n \"MergeRequest|Can't fetch the single file diff for the discussion. Please reload this page.\",\n);\n\nexport const DIFF_FILE_HEADER = {\n optionsDropdownTitle: __('Options'),\n fileReviewLabel: __('Viewed'),\n fileReviewTooltip: __('Collapses this file (only for you) until it’s changed again.'),\n};\n\nexport const DIFF_FILE = {\n tooLarge: s__('MRDiffFile|Changes are too large to be shown.'),\n blobView: s__('MRDiffFile|View file @ %{commitSha}'),\n editInFork: __(\n \"You're not allowed to %{tag_start}edit%{tag_end} files in this project directly. Please fork this project, make your changes there, and submit a merge request.\",\n ),\n fork: __('Fork'),\n cancel: __('Cancel'),\n autoCollapsed: __('Files with large changes are collapsed by default.'),\n autoCollapsedGenerated: __(\n 'Generated files are collapsed by default. To change this behavior, edit the %{tagStart}.gitattributes%{tagEnd} file. %{linkStart}Learn more.%{linkEnd}',\n ),\n expand: __('Expand file'),\n};\nexport const START_THREAD = __('Start another thread');\n\nexport const SETTINGS_DROPDOWN = {\n whitespace: __('Show whitespace changes'),\n fileByFile: __('Show one file at a time'),\n preferences: __('Preferences'),\n};\n\nexport const CONFLICT_TEXT = {\n both_modified: __('Conflict: This file was modified in both the source and target branches.'),\n modified_source_removed_target: __(\n 'Conflict: This file was modified in the source branch, but removed in the target branch.',\n ),\n modified_target_removed_source: __(\n 'Conflict: This file was removed in the source branch, but modified in the target branch.',\n ),\n renamed_same_file: __(\n 'Conflict: This file was renamed differently in the source and target branches.',\n ),\n removed_source_renamed_target: __(\n 'Conflict: This file was removed in the source branch, but renamed in the target branch.',\n ),\n removed_target_renamed_source: __(\n 'Conflict: This file was renamed in the source branch, but removed in the target branch.',\n ),\n both_added: __(\n 'Conflict: This file was added both in the source and target branches, but with different contents.',\n ),\n};\n\nexport const HIDE_COMMENTS = __('Hide comments');\n\nexport const NEW_CODE_QUALITY_FINDINGS = __('New code quality findings');\nexport const NEW_SAST_FINDINGS = __('New Security findings');\n\nexport const BUILDING_YOUR_MR = __(\n 'Building your merge request… This page will update when the build is complete.',\n);\nexport const SOMETHING_WENT_WRONG = __('Something went wrong on our end. Please try again!');\nexport const SAVING_THE_COMMENT_FAILED = s__(\n 'MergeRequests|Comment could not be submitted: %{reason}.',\n);\nexport const ERROR_LOADING_FULL_DIFF = s__(\n 'MergeRequest|Error loading full diff. Please try again.',\n);\nexport const ERROR_DISMISSING_SUGESTION_POPOVER = s__(\n 'MergeRequest|Error dismissing suggestion popover. Please try again.',\n);\nexport const ENCODED_FILE_PATHS_TITLE = __('Some changes are not shown.');\nexport const ENCODED_FILE_PATHS_MESSAGE = __(\n 'Some files cannot be displayed due to their file path encoding.',\n);\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateTestCaseLabels\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateIssueInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"updateIssuableLabels\"},\"name\":{\"kind\":\"Name\",\"value\":\"updateIssue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updatedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updatedBy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Author\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":416}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/author.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/label.fragment.graphql\\\"\\n\\nmutation updateTestCaseLabels($input: UpdateIssueInput!) {\\n updateIssuableLabels: updateIssue(input: $input) {\\n issuable: issue {\\n id\\n updatedAt\\n updatedBy {\\n ...Author\\n }\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/author.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/label.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateTestCaseLabels\"] = oneQuery(doc, \"updateTestCaseLabels\");\n \n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"stacktrace\"},_vm._l((_vm.entries),function(entry,index){return _c('stack-trace-entry',{key:`stacktrace-entry-${index}`,attrs:{\"lines\":entry.context,\"file-path\":entry.filename || entry.abs_path,\"error-line\":entry.lineNo,\"error-fn\":entry.function,\"error-column\":entry.colNo,\"expanded\":_vm.isFirstEntry(index)}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stacktrace_entry.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stacktrace_entry.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltip, GlSprintf, GlIcon, GlTruncate } from '@gitlab/ui';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport ClipboardButton from '~/vue_shared/components/clipboard_button.vue';\nimport FileIcon from '~/vue_shared/components/file_icon.vue';\n\nexport default {\n components: {\n ClipboardButton,\n FileIcon,\n GlIcon,\n GlSprintf,\n GlTruncate,\n },\n directives: {\n GlTooltip,\n SafeHtml,\n },\n props: {\n lines: {\n type: Array,\n required: true,\n },\n filePath: {\n type: String,\n required: false,\n default: '',\n },\n errorFn: {\n type: String,\n required: false,\n default: '',\n },\n errorLine: {\n type: Number,\n required: false,\n default: 0,\n },\n errorColumn: {\n type: Number,\n required: false,\n default: 0,\n },\n expanded: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n isExpanded: this.expanded,\n };\n },\n computed: {\n hasCode() {\n return Boolean(this.lines.length);\n },\n collapseIcon() {\n return this.isExpanded ? 'chevron-down' : 'chevron-right';\n },\n },\n methods: {\n isHighlighted(lineNum) {\n return lineNum === this.errorLine;\n },\n toggle() {\n this.isExpanded = !this.isExpanded;\n },\n lineNum(line) {\n return line[0];\n },\n lineCode(line) {\n return line[1];\n },\n },\n userColorScheme: window.gon.user_color_scheme,\n};\n</script>\n\n<template>\n <div class=\"file-holder\">\n <div ref=\"header\" class=\"file-title file-title-flex-parent\">\n <div class=\"file-header-content align-content-center overflow-hidden gl-flex gl-flex-wrap\">\n <div v-if=\"hasCode\" class=\"cursor-pointer gl-inline-block\" @click=\"toggle()\">\n <gl-icon :name=\"collapseIcon\" :size=\"16\" class=\"gl-mr-2\" />\n </div>\n <template v-if=\"filePath\">\n <file-icon :file-name=\"filePath\" :size=\"16\" aria-hidden=\"true\" css-classes=\"gl-mr-2\" />\n <strong class=\"file-title-name overflow-hidden limited-width gl-inline-block\">\n <gl-truncate with-tooltip :text=\"filePath\" position=\"middle\" />\n </strong>\n <clipboard-button\n :title=\"__('Copy file path')\"\n :text=\"filePath\"\n category=\"tertiary\"\n size=\"small\"\n css-class=\"gl-mr-1\"\n />\n </template>\n\n <gl-sprintf v-if=\"errorFn\" :message=\"__('%{spanStart}in%{spanEnd} %{errorFn}')\">\n <template #span=\"{ content }\">\n <span class=\"gl-text-subtle\">{{ content }} </span>\n </template>\n <template #errorFn>\n <strong>{{ errorFn }} </strong>\n </template>\n </gl-sprintf>\n\n <gl-sprintf :message=\"__('%{spanStart}at line%{spanEnd} %{errorLine}%{errorColumn}')\">\n <template #span=\"{ content }\">\n <span class=\"gl-text-subtle\">{{ content }} </span>\n </template>\n <template #errorLine>\n <strong>{{ errorLine }}</strong>\n </template>\n <template #errorColumn>\n <strong v-if=\"errorColumn\">:{{ errorColumn }}</strong>\n </template>\n </gl-sprintf>\n </div>\n </div>\n\n <table v-if=\"isExpanded\" :class=\"$options.userColorScheme\" class=\"code js-syntax-highlight\">\n <tbody>\n <template v-for=\"(line, index) in lines\">\n <tr :key=\"`stacktrace-line-${index}`\" class=\"line_holder\">\n <td class=\"diff-line-num\" :class=\"{ old: isHighlighted(lineNum(line)) }\">\n {{ lineNum(line) }}\n </td>\n <td\n v-safe-html=\"lineCode(line)\"\n class=\"line_content\"\n :class=\"{ old: isHighlighted(lineNum(line)) }\"\n ></td>\n </tr>\n </template>\n </tbody>\n </table>\n </div>\n</template>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stacktrace.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stacktrace.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport StackTraceEntry from './stacktrace_entry.vue';\n\nexport default {\n components: {\n StackTraceEntry,\n },\n props: {\n entries: {\n type: Array,\n required: true,\n },\n },\n methods: {\n isFirstEntry(index) {\n return index === 0;\n },\n },\n};\n</script>\n\n<template>\n <div class=\"stacktrace\">\n <stack-trace-entry\n v-for=\"(entry, index) in entries\"\n :key=\"`stacktrace-entry-${index}`\"\n :lines=\"entry.context\"\n :file-path=\"entry.filename || entry.abs_path\"\n :error-line=\"entry.lineNo\"\n :error-fn=\"entry.function\"\n :error-column=\"entry.colNo\"\n :expanded=\"isFirstEntry(index)\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./stacktrace_entry.vue?vue&type=template&id=275450ec\"\nimport script from \"./stacktrace_entry.vue?vue&type=script&lang=js\"\nexport * from \"./stacktrace_entry.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"file-holder\"},[_c('div',{ref:\"header\",staticClass:\"file-title file-title-flex-parent\"},[_c('div',{staticClass:\"file-header-content align-content-center overflow-hidden gl-flex gl-flex-wrap\"},[(_vm.hasCode)?_c('div',{staticClass:\"cursor-pointer gl-inline-block\",on:{\"click\":function($event){return _vm.toggle()}}},[_c('gl-icon',{staticClass:\"gl-mr-2\",attrs:{\"name\":_vm.collapseIcon,\"size\":16}})],1):_vm._e(),_vm._v(\" \"),(_vm.filePath)?[_c('file-icon',{attrs:{\"file-name\":_vm.filePath,\"size\":16,\"aria-hidden\":\"true\",\"css-classes\":\"gl-mr-2\"}}),_vm._v(\" \"),_c('strong',{staticClass:\"file-title-name overflow-hidden limited-width gl-inline-block\"},[_c('gl-truncate',{attrs:{\"with-tooltip\":\"\",\"text\":_vm.filePath,\"position\":\"middle\"}})],1),_vm._v(\" \"),_c('clipboard-button',{attrs:{\"title\":_vm.__('Copy file path'),\"text\":_vm.filePath,\"category\":\"tertiary\",\"size\":\"small\",\"css-class\":\"gl-mr-1\"}})]:_vm._e(),_vm._v(\" \"),(_vm.errorFn)?_c('gl-sprintf',{attrs:{\"message\":_vm.__('%{spanStart}in%{spanEnd} %{errorFn}')},scopedSlots:_vm._u([{key:\"span\",fn:function({ content }){return [_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(content)+\" \")])]}},{key:\"errorFn\",fn:function(){return [_c('strong',[_vm._v(_vm._s(_vm.errorFn)+\" \")])]},proxy:true}],null,false,2697789849)}):_vm._e(),_vm._v(\" \"),_c('gl-sprintf',{attrs:{\"message\":_vm.__('%{spanStart}at line%{spanEnd} %{errorLine}%{errorColumn}')},scopedSlots:_vm._u([{key:\"span\",fn:function({ content }){return [_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(content)+\" \")])]}},{key:\"errorLine\",fn:function(){return [_c('strong',[_vm._v(_vm._s(_vm.errorLine))])]},proxy:true},{key:\"errorColumn\",fn:function(){return [(_vm.errorColumn)?_c('strong',[_vm._v(\":\"+_vm._s(_vm.errorColumn))]):_vm._e()]},proxy:true}])})],2)]),_vm._v(\" \"),(_vm.isExpanded)?_c('table',{staticClass:\"code js-syntax-highlight\",class:_vm.$options.userColorScheme},[_c('tbody',[_vm._l((_vm.lines),function(line,index){return [_c('tr',{key:`stacktrace-line-${index}`,staticClass:\"line_holder\"},[_c('td',{staticClass:\"diff-line-num\",class:{ old: _vm.isHighlighted(_vm.lineNum(line)) }},[_vm._v(\"\\n \"+_vm._s(_vm.lineNum(line))+\"\\n \")]),_vm._v(\" \"),_c('td',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.lineCode(line)),expression:\"lineCode(line)\"}],staticClass:\"line_content\",class:{ old: _vm.isHighlighted(_vm.lineNum(line)) }})])]})],2)]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./stacktrace.vue?vue&type=template&id=770dcaa5\"\nimport script from \"./stacktrace.vue?vue&type=script&lang=js\"\nexport * from \"./stacktrace.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"epicParticipants\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"participants\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":286}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n\\nquery epicParticipants($fullPath: ID!, $iid: ID) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n issuable: epic(iid: $iid) {\\n id\\n participants {\\n nodes {\\n ...User\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"epicParticipants\"] = oneQuery(doc, \"epicParticipants\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-px-4\"},[(_vm.error)?_c('gl-alert',{staticClass:\"gl-mt-3\",attrs:{\"variant\":\"danger\",\"dismissible\":false}},[_vm._v(\"\\n \"+_vm._s(_vm.error)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('gl-form-group',{staticClass:\"gl-my-3\",attrs:{\"label\":_vm.__('Label name'),\"label-for\":\"label-title-input\",\"label-sr-only\":\"\"}},[_c('gl-form-input',{attrs:{\"id\":\"label-title-input\",\"autofocus\":\"\",\"placeholder\":_vm.__('Label name')},model:{value:(_vm.labelTitle),callback:function ($$v) {_vm.labelTitle=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"labelTitle\"}})],1),_vm._v(\" \"),_c('sidebar-color-picker',{attrs:{\"suggested-colors\":_vm.suggestedColors},model:{value:(_vm.selectedColor),callback:function ($$v) {_vm.selectedColor=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"selectedColor\"}}),_vm._v(\" \"),_c('div',{staticClass:\"gl-mt-2 gl-flex gl-justify-end gl-gap-3\"},[_c('gl-button',{staticClass:\"js-btn-cancel-create\",attrs:{\"size\":\"small\",\"data-testid\":\"cancel-button\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('hideCreateView')}}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Cancel'))+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{attrs:{\"disabled\":_vm.disableCreate,\"loading\":_vm.labelCreateInProgress,\"size\":\"small\",\"variant\":\"confirm\",\"data-testid\":\"create-button\"},on:{\"click\":_vm.createLabel}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Create'))+\"\\n \")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { get } from 'lodash';\nimport { GlAlert, GlTooltipDirective, GlButton, GlFormGroup, GlFormInput } from '@gitlab/ui';\nimport produce from 'immer';\nimport { createAlert } from '~/alert';\nimport { WORKSPACE_GROUP } from '~/issues/constants';\nimport { __ } from '~/locale';\nimport SidebarColorPicker from '../../sidebar_color_picker.vue';\nimport { workspaceLabelsQueries, workspaceCreateLabelMutation } from '../../../queries/constants';\nimport { DEFAULT_LABEL_COLOR } from './constants';\n\nconst errorMessage = __('Error creating label.');\n\nexport default {\n components: {\n GlAlert,\n GlButton,\n GlFormGroup,\n GlFormInput,\n SidebarColorPicker,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n fullPath: {\n type: String,\n required: true,\n },\n attrWorkspacePath: {\n type: String,\n required: true,\n },\n labelCreateType: {\n type: String,\n required: true,\n },\n workspaceType: {\n type: String,\n required: true,\n },\n searchKey: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n labelTitle: this.searchKey,\n selectedColor: DEFAULT_LABEL_COLOR,\n labelCreateInProgress: false,\n error: undefined,\n };\n },\n computed: {\n disableCreate() {\n return !this.labelTitle.length || !this.selectedColor.length || this.labelCreateInProgress;\n },\n suggestedColors() {\n const colorsMap = gon.suggested_label_colors;\n return Object.keys(colorsMap).map((color) => ({ [color]: colorsMap[color] }));\n },\n mutationVariables() {\n const variables = {\n title: this.labelTitle,\n color: this.selectedColor,\n };\n\n if (this.labelCreateType) {\n const attributePath =\n this.labelCreateType === WORKSPACE_GROUP ? 'groupPath' : 'projectPath';\n\n return { ...variables, [attributePath]: this.attrWorkspacePath };\n }\n\n return variables;\n },\n },\n methods: {\n updateLabelsInCache(store, label) {\n const { query, dataPath } = workspaceLabelsQueries[this.workspaceType];\n\n const sourceData = store.readQuery({\n query,\n variables: { fullPath: this.fullPath, searchTerm: '' },\n });\n\n const collator = new Intl.Collator('en');\n const data = produce(sourceData, (draftData) => {\n const { nodes } = get(draftData, dataPath);\n nodes.push(label);\n nodes.sort((a, b) => collator.compare(a.title, b.title));\n });\n\n store.writeQuery({\n query,\n variables: { fullPath: this.fullPath, searchTerm: '' },\n data,\n });\n },\n async createLabel() {\n this.labelCreateInProgress = true;\n try {\n const {\n data: { labelCreate },\n } = await this.$apollo.mutate({\n mutation: workspaceCreateLabelMutation[this.workspaceType],\n variables: this.mutationVariables,\n update: (\n store,\n {\n data: {\n labelCreate: { label },\n },\n },\n ) => {\n if (label) {\n this.updateLabelsInCache(store, label);\n }\n },\n });\n if (labelCreate.errors.length) {\n [this.error] = labelCreate.errors;\n } else {\n this.$emit('labelCreated', labelCreate.label);\n }\n } catch {\n createAlert({ message: errorMessage });\n }\n this.labelCreateInProgress = false;\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-px-4\">\n <gl-alert v-if=\"error\" variant=\"danger\" :dismissible=\"false\" class=\"gl-mt-3\">\n {{ error }}\n </gl-alert>\n <gl-form-group\n class=\"gl-my-3\"\n :label=\"__('Label name')\"\n label-for=\"label-title-input\"\n label-sr-only\n >\n <gl-form-input\n id=\"label-title-input\"\n v-model.trim=\"labelTitle\"\n autofocus\n :placeholder=\"__('Label name')\"\n />\n </gl-form-group>\n <sidebar-color-picker v-model.trim=\"selectedColor\" :suggested-colors=\"suggestedColors\" />\n <div class=\"gl-mt-2 gl-flex gl-justify-end gl-gap-3\">\n <gl-button\n class=\"js-btn-cancel-create\"\n size=\"small\"\n data-testid=\"cancel-button\"\n @click.stop=\"$emit('hideCreateView')\"\n >\n {{ __('Cancel') }}\n </gl-button>\n <gl-button\n :disabled=\"disableCreate\"\n :loading=\"labelCreateInProgress\"\n size=\"small\"\n variant=\"confirm\"\n data-testid=\"create-button\"\n @click=\"createLabel\"\n >\n {{ __('Create') }}\n </gl-button>\n </div>\n </div>\n</template>\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_contents_create_view.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_contents_create_view.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./dropdown_contents_create_view.vue?vue&type=template&id=138bf2ca\"\nimport script from \"./dropdown_contents_create_view.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_contents_create_view.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateMergeRequestLocked\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestSetLockedInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestSetLocked\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"discussionLocked\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":188}};\n doc.loc.source = {\"body\":\"mutation updateMergeRequestLocked($input: MergeRequestSetLockedInput!) {\\n mergeRequestSetLocked(input: $input) {\\n mergeRequest {\\n id\\n discussionLocked\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateMergeRequestLocked\"] = oneQuery(doc, \"updateMergeRequestLocked\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:{ 'inline-block': !_vm.isMergeRequest },attrs:{\"data-testid\":\"sidebar-todo\"}},[(_vm.isNotificationsTodosButtons)?_c('todo-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover.top\",modifiers:{\"hover\":true,\"top\":true}}],staticClass:\"hide-collapsed\",attrs:{\"title\":_vm.tootltipTitle,\"issuable-type\":_vm.issuableType,\"issuable-id\":_vm.issuableId,\"is-todo\":_vm.hasTodo,\"disabled\":_vm.isLoading,\"is-icon-button\":true},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggleTodo.apply(null, arguments)}}},[_c('gl-animated-todo-icon',{class:{ '!gl-text-blue-500': _vm.hasTodo },attrs:{\"is-on\":_vm.hasTodo}})],1):_c('todo-button',{staticClass:\"hide-collapsed\",attrs:{\"issuable-type\":_vm.issuableType,\"issuable-id\":_vm.issuableId,\"is-todo\":_vm.hasTodo,\"loading\":_vm.isLoading,\"size\":_vm.isMergeRequest ? 'medium' : 'small'},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggleTodo.apply(null, arguments)}}}),_vm._v(\" \"),(_vm.isClassicSidebar && !_vm.isMergeRequest)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon sidebar-collapsed-container !gl-rounded-none !gl-shadow-none\",class:{ '!gl-text-blue-500': _vm.hasTodo },attrs:{\"title\":_vm.tootltipTitle,\"category\":\"tertiary\",\"type\":\"reset\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggleTodo.apply(null, arguments)}}},[_c('gl-animated-todo-icon',{attrs:{\"is-on\":_vm.hasTodo}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlButton, GlTooltipDirective, GlAnimatedTodoIcon } from '@gitlab/ui';\nimport { produce } from 'immer';\nimport { createAlert } from '~/alert';\nimport { TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { __, sprintf } from '~/locale';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport Tracking from '~/tracking';\nimport { todoMutationTypes } from '../../constants';\nimport { todoQueries, todoMutations } from '../../queries/constants';\nimport { todoLabel } from '../../utils';\nimport TodoButton from './todo_button.vue';\n\nconst trackingMixin = Tracking.mixin();\n\nexport default {\n components: {\n GlButton,\n TodoButton,\n GlAnimatedTodoIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [glFeatureFlagsMixin(), trackingMixin],\n inject: {\n isClassicSidebar: {\n default: false,\n },\n },\n props: {\n issuableId: {\n type: String,\n required: true,\n },\n issuableIid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n issuableType: {\n required: true,\n type: String,\n },\n },\n data() {\n return {\n todoId: null,\n loading: false,\n };\n },\n apollo: {\n todoId: {\n query() {\n return todoQueries[this.issuableType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n iid: String(this.issuableIid),\n };\n },\n skip() {\n return !this.issuableIid;\n },\n update(data) {\n return data.workspace?.issuable?.currentUserTodos.nodes[0]?.id;\n },\n result({ data }) {\n if (!data) {\n return;\n }\n\n const currentUserTodos = data.workspace?.issuable?.currentUserTodos?.nodes ?? [];\n this.todoId = currentUserTodos[0]?.id;\n this.$emit('todoUpdated', currentUserTodos.length > 0);\n },\n error() {\n createAlert({\n message: sprintf(__('Something went wrong while setting %{issuableType} to-do item.'), {\n issuableType: this.issuableType,\n }),\n });\n },\n subscribeToMore: {\n document() {\n return todoQueries[this.issuableType].subscription;\n },\n variables() {\n return {\n issuableId: this.issuableId,\n };\n },\n skip() {\n return !todoQueries[this.issuableType].subscription;\n },\n },\n },\n },\n computed: {\n isMergeRequest() {\n return this.issuableType === TYPE_MERGE_REQUEST;\n },\n todoIdQuery() {\n return todoQueries[this.issuableType].query;\n },\n todoIdQueryVariables() {\n return {\n fullPath: this.fullPath,\n iid: String(this.issuableIid),\n };\n },\n isLoading() {\n return this.$apollo.queries?.todoId?.loading || this.loading;\n },\n hasTodo() {\n return Boolean(this.todoId);\n },\n todoMutationType() {\n if (this.hasTodo) {\n return todoMutationTypes.markDone;\n }\n return todoMutationTypes.create;\n },\n tootltipTitle() {\n return todoLabel(this.hasTodo);\n },\n isNotificationsTodosButtons() {\n return this.glFeatures.notificationsTodosButtons;\n },\n },\n methods: {\n toggleTodo() {\n this.loading = true;\n this.$apollo\n .mutate({\n mutation: todoMutations[this.todoMutationType],\n variables: {\n input: {\n targetId: !this.hasTodo ? this.issuableId : undefined,\n id: this.hasTodo ? this.todoId : undefined,\n },\n },\n update: (\n store,\n {\n data: {\n todoMutation: { todo },\n },\n },\n ) => {\n const queryProps = {\n query: this.todoIdQuery,\n variables: this.todoIdQueryVariables,\n };\n const sourceData = store.readQuery(queryProps);\n const data = produce(sourceData, (draftState) => {\n draftState.workspace.issuable.currentUserTodos.nodes = this.hasTodo ? [] : [todo];\n });\n store.writeQuery({\n data,\n ...queryProps,\n });\n },\n })\n .then(\n ({\n data: {\n todoMutation: { errors },\n },\n }) => {\n if (errors.length) {\n createAlert({\n message: errors[0],\n });\n }\n this.track('click_todo', {\n label: 'right_sidebar',\n property: this.hasTodo,\n });\n },\n )\n .catch(() => {\n createAlert({\n message: sprintf(__('Something went wrong while setting %{issuableType} to-do item.'), {\n issuableType: this.issuableType,\n }),\n });\n })\n .finally(() => {\n this.loading = false;\n });\n },\n },\n};\n</script>\n\n<template>\n <div data-testid=\"sidebar-todo\" :class=\"{ 'inline-block': !isMergeRequest }\">\n <todo-button\n v-if=\"isNotificationsTodosButtons\"\n v-gl-tooltip.hover.top\n :title=\"tootltipTitle\"\n :issuable-type=\"issuableType\"\n :issuable-id=\"issuableId\"\n :is-todo=\"hasTodo\"\n :disabled=\"isLoading\"\n :is-icon-button=\"true\"\n class=\"hide-collapsed\"\n @click.stop.prevent=\"toggleTodo\"\n >\n <gl-animated-todo-icon :class=\"{ '!gl-text-blue-500': hasTodo }\" :is-on=\"hasTodo\" />\n </todo-button>\n <todo-button\n v-else\n :issuable-type=\"issuableType\"\n :issuable-id=\"issuableId\"\n :is-todo=\"hasTodo\"\n :loading=\"isLoading\"\n :size=\"isMergeRequest ? 'medium' : 'small'\"\n class=\"hide-collapsed\"\n @click.stop.prevent=\"toggleTodo\"\n />\n <gl-button\n v-if=\"isClassicSidebar && !isMergeRequest\"\n v-gl-tooltip.left.viewport\n :title=\"tootltipTitle\"\n category=\"tertiary\"\n type=\"reset\"\n class=\"sidebar-collapsed-icon sidebar-collapsed-container !gl-rounded-none !gl-shadow-none\"\n :class=\"{ '!gl-text-blue-500': hasTodo }\"\n @click.stop.prevent=\"toggleTodo\"\n >\n <gl-animated-todo-icon :is-on=\"hasTodo\" />\n </gl-button>\n </div>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_todo_widget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_todo_widget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./sidebar_todo_widget.vue?vue&type=template&id=0ce572ce\"\nimport script from \"./sidebar_todo_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_todo_widget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isButtonTrigger)?_c('gl-button',_vm._b({attrs:{\"variant\":_vm.variant,\"category\":_vm.category,\"icon\":_vm.icon},on:{\"click\":_vm.openModal}},'gl-button',_vm.componentAttributes,false),[_vm._v(\"\\n \"+_vm._s(_vm.displayText)+\"\\n\")]):(_vm.isWithEmojiTrigger)?_c('gl-link',_vm._b({on:{\"click\":_vm.openModal}},'gl-link',_vm.componentAttributes,false),[_vm._v(\"\\n \"+_vm._s(_vm.displayText)+\"\\n \"),_c('gl-emoji',{staticClass:\"gl-mr-1 gl-align-baseline gl-text-size-reset\",attrs:{\"data-name\":_vm.icon}})],1):(_vm.isDropdownWithEmojiTrigger)?_c('gl-dropdown-item',_vm._b({on:{\"click\":_vm.openModal}},'gl-dropdown-item',_vm.componentAttributes,false),[_vm._v(\"\\n \"+_vm._s(_vm.displayText)+\"\\n \"),_c('gl-emoji',{staticClass:\"gl-mr-1 gl-align-baseline gl-text-size-reset\",attrs:{\"data-name\":_vm.icon}})],1):(_vm.isDisclosureTrigger)?_c('gl-disclosure-dropdown-item',_vm._b({attrs:{\"item\":_vm.item},on:{\"action\":_vm.handleDisclosureDropdownAction}},'gl-disclosure-dropdown-item',_vm.componentAttributes,false)):_c('gl-link',_vm._b({attrs:{\"data-is-link\":\"true\"},on:{\"click\":_vm.openModal}},'gl-link',_vm.componentAttributes,false),[_vm._v(\"\\n \"+_vm._s(_vm.displayText)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./invite_members_trigger.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./invite_members_trigger.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlLink, GlDropdownItem, GlDisclosureDropdownItem } from '@gitlab/ui';\nimport { s__ } from '~/locale';\nimport eventHub from '../event_hub';\nimport {\n TRIGGER_ELEMENT_BUTTON,\n TRIGGER_ELEMENT_WITH_EMOJI,\n TRIGGER_ELEMENT_DROPDOWN_WITH_EMOJI,\n TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN,\n} from '../constants';\n\nexport default {\n components: { GlButton, GlLink, GlDropdownItem, GlDisclosureDropdownItem },\n props: {\n displayText: {\n type: String,\n required: false,\n default: s__('InviteMembers|Invite team members'),\n },\n icon: {\n type: String,\n required: false,\n default: '',\n },\n classes: {\n type: String,\n required: false,\n default: '',\n },\n variant: {\n type: String,\n required: false,\n default: undefined,\n },\n category: {\n type: String,\n required: false,\n default: undefined,\n },\n triggerSource: {\n type: String,\n required: true,\n },\n triggerElement: {\n type: String,\n required: false,\n default: 'button',\n },\n },\n computed: {\n componentAttributes() {\n return {\n class: this.classes,\n 'data-testid': 'invite-members-button',\n };\n },\n item() {\n return { text: this.displayText };\n },\n isButtonTrigger() {\n return this.triggerElement === TRIGGER_ELEMENT_BUTTON;\n },\n isWithEmojiTrigger() {\n return this.triggerElement === TRIGGER_ELEMENT_WITH_EMOJI;\n },\n isDropdownWithEmojiTrigger() {\n return this.triggerElement === TRIGGER_ELEMENT_DROPDOWN_WITH_EMOJI;\n },\n isDisclosureTrigger() {\n return this.triggerElement === TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN;\n },\n },\n methods: {\n openModal() {\n eventHub.$emit('openModal', { source: this.triggerSource });\n },\n handleDisclosureDropdownAction() {\n this.openModal();\n this.$emit('modal-opened');\n },\n },\n};\n</script>\n\n<template>\n <gl-button\n v-if=\"isButtonTrigger\"\n v-bind=\"componentAttributes\"\n :variant=\"variant\"\n :category=\"category\"\n :icon=\"icon\"\n @click=\"openModal\"\n >\n {{ displayText }}\n </gl-button>\n <gl-link v-else-if=\"isWithEmojiTrigger\" v-bind=\"componentAttributes\" @click=\"openModal\">\n {{ displayText }}\n <gl-emoji class=\"gl-mr-1 gl-align-baseline gl-text-size-reset\" :data-name=\"icon\" />\n </gl-link>\n <gl-dropdown-item\n v-else-if=\"isDropdownWithEmojiTrigger\"\n v-bind=\"componentAttributes\"\n @click=\"openModal\"\n >\n {{ displayText }}\n <gl-emoji class=\"gl-mr-1 gl-align-baseline gl-text-size-reset\" :data-name=\"icon\" />\n </gl-dropdown-item>\n <gl-disclosure-dropdown-item\n v-else-if=\"isDisclosureTrigger\"\n v-bind=\"componentAttributes\"\n :item=\"item\"\n @action=\"handleDisclosureDropdownAction\"\n />\n <gl-link v-else v-bind=\"componentAttributes\" data-is-link=\"true\" @click=\"openModal\">\n {{ displayText }}\n </gl-link>\n</template>\n","import { render, staticRenderFns } from \"./invite_members_trigger.vue?vue&type=template&id=cb0ec660\"\nimport script from \"./invite_members_trigger.vue?vue&type=script&lang=js\"\nexport * from \"./invite_members_trigger.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemTodoCreate\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"TodoCreateInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"todoMutation\"},\"name\":{\"kind\":\"Name\",\"value\":\"todoCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"todo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":155}};\n doc.loc.source = {\"body\":\"mutation workItemTodoCreate($input: TodoCreateInput!) {\\n todoMutation: todoCreate(input: $input) {\\n todo {\\n id\\n state\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"workItemTodoCreate\"] = oneQuery(doc, \"workItemTodoCreate\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-flex\"},[(!_vm.fetchNextPageInProgress)?_c('gl-button',{attrs:{\"category\":\"tertiary\",\"variant\":\"confirm\"},on:{\"click\":function($event){return _vm.$emit('fetch-next-page', $event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.s__('WorkItem|Load more')))]):_c('gl-loading-icon',{staticClass:\"gl-ml-4 gl-py-2\",attrs:{\"size\":\"md\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_children_load_more.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_children_load_more.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlLoadingIcon } from '@gitlab/ui';\n\nexport default {\n components: {\n GlButton,\n GlLoadingIcon,\n },\n props: {\n fetchNextPageInProgress: {\n type: Boolean,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-flex\">\n <gl-button\n v-if=\"!fetchNextPageInProgress\"\n category=\"tertiary\"\n variant=\"confirm\"\n @click=\"$emit('fetch-next-page', $event)\"\n >\n {{ s__('WorkItem|Load more') }}</gl-button\n >\n <gl-loading-icon v-else size=\"md\" class=\"gl-ml-4 gl-py-2\" />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_children_load_more.vue?vue&type=template&id=01997f19\"\nimport script from \"./work_item_children_load_more.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_children_load_more.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignNote\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Note\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"author\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Author\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"body\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bodyHtml\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resolved\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"imported\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"awardEmoji\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"user\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"position\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"diffRefs\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignDiffRefs\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"x\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"y\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"height\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"width\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignNotePermissions\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"discussion\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"notes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":583}};\n doc.loc.source = {\"body\":\"#import \\\"./diff_refs.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/author.fragment.graphql\\\"\\n#import \\\"./note_permissions.fragment.graphql\\\"\\n\\nfragment DesignNote on Note {\\n id\\n author {\\n ...Author\\n }\\n body\\n bodyHtml\\n createdAt\\n resolved\\n imported\\n awardEmoji {\\n nodes {\\n name\\n user {\\n id\\n name\\n }\\n }\\n }\\n position {\\n diffRefs {\\n ...DesignDiffRefs\\n }\\n x\\n y\\n height\\n width\\n }\\n userPermissions {\\n ...DesignNotePermissions\\n }\\n discussion {\\n id\\n notes {\\n nodes {\\n id\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./diff_refs.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/author.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"./note_permissions.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"DesignNote\"] = oneQuery(doc, \"DesignNote\");\n \n","import { extend, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_TEXT } from '../../constants/components';\nimport { PROP_TYPE_STRING, PROP_TYPE_ARRAY_OBJECT_STRING } from '../../constants/props';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'p'),\n textClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_TEXT);\n\n// --- Main component ---\n\n// @vue/component\nconst BDropdownText = /*#__PURE__*/extend({\n name: NAME_DROPDOWN_TEXT,\n functional: true,\n props,\n render(h, _ref) {\n let {\n props,\n data,\n children\n } = _ref;\n const {\n tag,\n textClass,\n variant\n } = props;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(tag, {\n staticClass: 'b-dropdown-text',\n class: [textClass, {\n [`text-${variant}`]: variant\n }],\n props,\n attrs: data.attrs || {},\n ref: 'text'\n }, children)]);\n }\n});\n\nexport { BDropdownText, props };\n","import { BDropdownText } from '../../../vendor/bootstrap-vue/src/components/dropdown/dropdown-text';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlDropdownText',\n components: {\n BDropdownText\n },\n inheritAttrs: false\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-dropdown-text',_vm._g(_vm._b({staticClass:\"gl-dropdown-text\"},'b-dropdown-text',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import { ZERO_CHANGES_ALT_DISPLAY } from '../constants';\n\nconst endpointRE = /^(\\/?(.+\\/)+(.+)\\/-\\/merge_requests\\/(\\d+)).*$/i;\nconst SHA1RE = /([a-f0-9]{40})/g;\n\nfunction getVersionInfo({ endpoint } = {}) {\n const dummyRoot = 'https://gitlab.com';\n const endpointUrl = new URL(endpoint, dummyRoot);\n const params = Object.fromEntries(endpointUrl.searchParams.entries());\n\n const { start_sha: startSha, diff_id: diffId } = params;\n\n return {\n diffId,\n startSha,\n };\n}\n\nexport function updateChangesTabCount({\n count,\n badge = document.querySelector('.js-diffs-tab .gl-badge'),\n} = {}) {\n if (badge) {\n // The purpose of this function is to assign to this parameter\n /* eslint-disable-next-line no-param-reassign */\n badge.textContent = count || ZERO_CHANGES_ALT_DISPLAY;\n }\n}\n\nexport function getDerivedMergeRequestInformation({ endpoint } = {}) {\n let mrPath;\n let namespace;\n let project;\n let id;\n let diffId;\n let startSha;\n const matches = endpointRE.exec(endpoint);\n\n if (matches) {\n [, mrPath, namespace, project, id] = matches;\n ({ diffId, startSha } = getVersionInfo({ endpoint }));\n\n namespace = namespace.replace(/\\/$/, '');\n }\n\n return {\n mrPath,\n namespace,\n project,\n id,\n diffId,\n startSha,\n };\n}\n\nexport function extractFileHash({ input = '' } = {}) {\n const matches = input.match(SHA1RE);\n\n return matches?.[0];\n}\n","import { STATUS_ALL, STATUS_CLOSED, STATUS_OPEN, STATUS_MERGED } from '~/issues/constants';\nimport { __ } from '~/locale';\n\nexport const issuableListTabs = [\n {\n id: 'state-opened',\n name: STATUS_OPEN,\n title: __('Open'),\n titleTooltip: __('Filter by issues that are currently opened.'),\n },\n {\n id: 'state-closed',\n name: STATUS_CLOSED,\n title: __('Closed'),\n titleTooltip: __('Filter by issues that are currently closed.'),\n },\n {\n id: 'state-all',\n name: STATUS_ALL,\n title: __('All'),\n titleTooltip: __('Show all issues.'),\n },\n];\n\nexport const mergeRequestListTabs = [\n {\n id: 'state-opened',\n name: STATUS_OPEN,\n title: __('Open'),\n titleTooltip: __('Filter by merge requests that are currently opened.'),\n },\n {\n id: 'state-merged',\n name: STATUS_MERGED,\n title: __('Merged'),\n titleTooltip: __('Filter by merge requests that are merged.'),\n },\n {\n id: 'state-closed',\n name: STATUS_CLOSED,\n title: __('Closed'),\n titleTooltip: __('Filter by merge requests that are currently closed.'),\n },\n {\n id: 'state-all',\n name: STATUS_ALL,\n title: __('All'),\n titleTooltip: __('Show all merge requests.'),\n },\n];\n\nexport const availableSortOptions = [\n {\n id: 1,\n title: __('Created date'),\n sortDirection: {\n descending: 'created_desc',\n ascending: 'created_asc',\n },\n },\n {\n id: 2,\n title: __('Updated date'),\n sortDirection: {\n descending: 'updated_desc',\n ascending: 'updated_asc',\n },\n },\n];\n\nexport const DEFAULT_PAGE_SIZE = 20;\n\nexport const DEFAULT_SKELETON_COUNT = 5;\n\nexport const PAGE_SIZE_STORAGE_KEY = 'issuable_list_page_size';\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"createWorkItemDesignNote\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateNoteInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createNote\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"note\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignNote\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":198}};\n doc.loc.source = {\"body\":\"#import \\\"./fragments/design_note.fragment.graphql\\\"\\n\\nmutation createWorkItemDesignNote($input: CreateNoteInput!) {\\n createNote(input: $input) {\\n note {\\n ...DesignNote\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./fragments/design_note.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"createWorkItemDesignNote\"] = oneQuery(doc, \"createWorkItemDesignNote\");\n \n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike'),\n isPlainObject = require('./isPlainObject');\n\n/** `Object#toString` result references. */\nvar domExcTag = '[object DOMException]',\n errorTag = '[object Error]';\n\n/**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\nfunction isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n}\n\nmodule.exports = isError;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignTodoItem\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Design\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"image\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentUserTodos\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"pending\"}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":119}};\n doc.loc.source = {\"body\":\"fragment DesignTodoItem on Design {\\n id\\n image\\n currentUserTodos(state: pending) {\\n nodes {\\n id\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"DesignTodoItem\"] = oneQuery(doc, \"DesignTodoItem\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',[_c('gl-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",value:(_vm.showTooltipOnHover),expression:\"showTooltipOnHover\",modifiers:{\"hover\":true}}],class:_vm.iconClass,attrs:{\"name\":_vm.iconName,\"title\":_vm.workItemTooltipTitle,\"variant\":_vm.iconVariant}}),_vm._v(\" \"),(_vm.workItemTypeName)?_c('span',{class:{ 'gl-sr-only': !_vm.showText }},[_vm._v(_vm._s(_vm.workItemTypeName))]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_type_icon.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_type_icon.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { WORK_ITEMS_TYPE_MAP } from '../constants';\n\nexport default {\n components: {\n GlIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n workItemType: {\n type: String,\n required: false,\n default: '',\n },\n showText: {\n type: Boolean,\n required: false,\n default: false,\n },\n workItemIconName: {\n type: String,\n required: false,\n default: '',\n },\n showTooltipOnHover: {\n type: Boolean,\n required: false,\n default: false,\n },\n iconVariant: {\n type: String,\n required: false,\n default: 'default',\n },\n iconClass: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n workItemTypeUppercase() {\n return this.workItemType.toUpperCase().split(' ').join('_');\n },\n iconName() {\n // TODO Delete this conditional once we have an `issue-type-epic` icon\n if (this.workItemIconName === 'issue-type-epic') {\n return 'epic';\n }\n\n return (\n this.workItemIconName ||\n WORK_ITEMS_TYPE_MAP[this.workItemTypeUppercase]?.icon ||\n 'issue-type-issue'\n );\n },\n workItemTypeName() {\n return WORK_ITEMS_TYPE_MAP[this.workItemTypeUppercase]?.name;\n },\n workItemTooltipTitle() {\n return this.showTooltipOnHover ? this.workItemTypeName : '';\n },\n },\n};\n</script>\n\n<template>\n <span>\n <gl-icon\n v-gl-tooltip.hover=\"showTooltipOnHover\"\n :name=\"iconName\"\n :title=\"workItemTooltipTitle\"\n :variant=\"iconVariant\"\n :class=\"iconClass\"\n />\n <span v-if=\"workItemTypeName\" :class=\"{ 'gl-sr-only': !showText }\">{{ workItemTypeName }}</span>\n </span>\n</template>\n","import { render, staticRenderFns } from \"./work_item_type_icon.vue?vue&type=template&id=44981faf\"\nimport script from \"./work_item_type_icon.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_type_icon.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"moveIssue\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"moveIssueInput\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueMoveInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issueMove\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"moveIssueInput\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":150}};\n doc.loc.source = {\"body\":\"mutation moveIssue($moveIssueInput: IssueMoveInput!) {\\n issueMove(input: $moveIssueInput) {\\n issue {\\n id\\n webUrl\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"moveIssue\"] = oneQuery(doc, \"moveIssue\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-form-group',{scopedSlots:_vm._u([(_vm.issuableType === _vm.$options.TYPE_ISSUE)?{key:\"description\",fn:function(){return [_c('span',{attrs:{\"id\":`${_vm.inputId}-description`}},[_vm._v(\"\\n \"+_vm._s(_vm.__(\n 'Only issues can be linked from this form. You can also link this issue from an epic or task.',\n ))+\"\\n \")])]},proxy:true}:null],null,true)},[_c('div',{ref:\"issuableFormWrapper\",staticClass:\"add-issuable-form-input-wrapper form-control gl-field-error-outline gl-h-auto gl-px-3 gl-pb-0 gl-pt-2\",class:{ focus: _vm.isInputFocused },on:{\"click\":_vm.onIssuableFormWrapperClick}},[_c('ul',{staticClass:\"gl-m-0 gl-flex gl-list-none gl-flex-wrap gl-items-baseline gl-p-0\"},[_vm._l((_vm.references),function(reference,index){return _c('li',{key:reference,staticClass:\"gl-mb-2 gl-mr-2 gl-max-w-full\"},[_c('issue-token',{attrs:{\"id-key\":index,\"display-reference\":reference.text || reference,\"can-remove\":\"\",\"is-condensed\":\"\",\"path-id-separator\":_vm.pathIdSeparator,\"event-namespace\":\"pendingIssuable\"},on:{\"pendingIssuableRemoveRequest\":(params) => {\n _vm.$emit('pendingIssuableRemoveRequest', params);\n }}})],1)}),_vm._v(\" \"),_c('li',{staticClass:\"gl-mb-2 gl-grow\"},[_c('input',{ref:\"input\",staticClass:\"gl-w-full gl-border-none gl-outline-none\",attrs:{\"id\":_vm.inputId,\"aria-describedby\":`${_vm.inputId}-description`,\"placeholder\":_vm.inputPlaceholder,\"aria-label\":_vm.inputPlaceholder,\"type\":\"text\",\"data-testid\":\"add-issue-field\",\"autocomplete\":\"off\"},domProps:{\"value\":_vm.inputValue},on:{\"input\":_vm.onInput,\"focus\":_vm.onFocus,\"blur\":_vm.onBlur,\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"escape\",undefined,$event.key,undefined))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.$emit('addIssuableFormCancel')}}})])],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issue_token.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issue_token.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { __, sprintf } from '~/locale';\nimport relatedIssuableMixin from '~/issuable/mixins/related_issuable_mixin';\n\nexport default {\n name: 'IssueToken',\n components: {\n GlIcon,\n GlButton,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [relatedIssuableMixin],\n props: {\n isCondensed: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n removeButtonLabel() {\n const { displayReference } = this;\n /*\n * Giving false as third argument to prevent unescaping of ampersand in\n * epic reference. Eg. &42 will remain &42 instead of &42\n *\n * https://docs.gitlab.com/ee/development/i18n/externalization.html#interpolation\n */\n return sprintf(__('Remove %{displayReference}'), { displayReference }, false);\n },\n stateTitle() {\n if (this.isCondensed) return '';\n\n return this.isOpen ? __('Open') : __('Closed');\n },\n innerComponentType() {\n return this.isCondensed ? 'span' : 'div';\n },\n issueTitle() {\n return this.isCondensed ? this.title : '';\n },\n },\n};\n</script>\n\n<template>\n <div\n :class=\"{\n 'issue-token gl-inline-flex gl-max-w-full gl-items-stretch gl-whitespace-nowrap gl-leading-24':\n isCondensed,\n 'issuable-info-container flex-row': !isCondensed,\n }\"\n >\n <component\n :is=\"computedLinkElementType\"\n ref=\"link\"\n v-gl-tooltip\n :class=\"{\n 'issue-token-link gl-inline-flex gl-min-w-0 gl-text-subtle': isCondensed,\n 'issuable-main-info': !isCondensed,\n }\"\n :href=\"computedPath\"\n :title=\"issueTitle\"\n data-placement=\"top\"\n >\n <component\n :is=\"innerComponentType\"\n v-if=\"hasTitle\"\n ref=\"title\"\n :class=\"{\n 'issue-token-title issue-token-end gl-flex gl-items-baseline gl-overflow-hidden gl-pl-3 gl-text-subtle':\n isCondensed,\n 'issue-title block-truncated': !isCondensed,\n 'gl-rounded-br-small gl-rounded-tr-small gl-pr-3': !canRemove,\n }\"\n class=\"js-issue-token-title\"\n >\n <span class=\"gl-truncate\">{{ title }}</span>\n </component>\n <component\n :is=\"innerComponentType\"\n ref=\"reference\"\n :class=\"{\n 'issue-token-reference gl-flex gl-items-center gl-rounded-bl-small gl-rounded-tl-small gl-px-3':\n isCondensed,\n 'issuable-info': !isCondensed,\n }\"\n >\n <gl-icon\n v-if=\"hasState\"\n v-gl-tooltip\n :class=\"iconClass\"\n :name=\"iconName\"\n :size=\"12\"\n :title=\"stateTitle\"\n :aria-label=\"state\"\n data-testid=\"referenceIcon\"\n />\n {{ displayReference }}\n </component>\n </component>\n <gl-button\n v-if=\"canRemove\"\n ref=\"removeButton\"\n v-gl-tooltip\n :class=\"{\n 'issue-token-remove-button !gl-rounded-l-none !gl-rounded-r-small gl-text-subtle':\n isCondensed,\n }\"\n :title=\"removeButtonLabel\"\n :aria-label=\"removeButtonLabel\"\n :disabled=\"removeDisabled\"\n data-testid=\"removeBtn\"\n type=\"button\"\n category=\"tertiary\"\n size=\"small\"\n icon=\"close\"\n @click=\"onRemoveRequest\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./issue_token.vue?vue&type=template&id=6f927a6b\"\nimport script from \"./issue_token.vue?vue&type=script&lang=js\"\nexport * from \"./issue_token.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:{\n 'issue-token gl-inline-flex gl-max-w-full gl-items-stretch gl-whitespace-nowrap gl-leading-24':\n _vm.isCondensed,\n 'issuable-info-container flex-row': !_vm.isCondensed,\n }},[_c(_vm.computedLinkElementType,{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],ref:\"link\",tag:\"component\",class:{\n 'issue-token-link gl-inline-flex gl-min-w-0 gl-text-subtle': _vm.isCondensed,\n 'issuable-main-info': !_vm.isCondensed,\n },attrs:{\"href\":_vm.computedPath,\"title\":_vm.issueTitle,\"data-placement\":\"top\"}},[(_vm.hasTitle)?_c(_vm.innerComponentType,{ref:\"title\",tag:\"component\",staticClass:\"js-issue-token-title\",class:{\n 'issue-token-title issue-token-end gl-flex gl-items-baseline gl-overflow-hidden gl-pl-3 gl-text-subtle':\n _vm.isCondensed,\n 'issue-title block-truncated': !_vm.isCondensed,\n 'gl-rounded-br-small gl-rounded-tr-small gl-pr-3': !_vm.canRemove,\n }},[_c('span',{staticClass:\"gl-truncate\"},[_vm._v(_vm._s(_vm.title))])]):_vm._e(),_vm._v(\" \"),_c(_vm.innerComponentType,{ref:\"reference\",tag:\"component\",class:{\n 'issue-token-reference gl-flex gl-items-center gl-rounded-bl-small gl-rounded-tl-small gl-px-3':\n _vm.isCondensed,\n 'issuable-info': !_vm.isCondensed,\n }},[(_vm.hasState)?_c('gl-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],class:_vm.iconClass,attrs:{\"name\":_vm.iconName,\"size\":12,\"title\":_vm.stateTitle,\"aria-label\":_vm.state,\"data-testid\":\"referenceIcon\"}}):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.displayReference)+\"\\n \")],1)],1),_vm._v(\" \"),(_vm.canRemove)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],ref:\"removeButton\",class:{\n 'issue-token-remove-button !gl-rounded-l-none !gl-rounded-r-small gl-text-subtle':\n _vm.isCondensed,\n },attrs:{\"title\":_vm.removeButtonLabel,\"aria-label\":_vm.removeButtonLabel,\"disabled\":_vm.removeDisabled,\"data-testid\":\"removeBtn\",\"type\":\"button\",\"category\":\"tertiary\",\"size\":\"small\",\"icon\":\"close\"},on:{\"click\":_vm.onRemoveRequest}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlFormGroup } from '@gitlab/ui';\nimport $ from 'jquery';\nimport GfmAutoComplete from 'ee_else_ce/gfm_auto_complete';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport {\n autoCompleteTextMap,\n inputPlaceholderConfidentialTextMap,\n inputPlaceholderTextMap,\n} from '../constants';\nimport IssueToken from './issue_token.vue';\n\nconst SPACE_FACTOR = 1;\n\nexport default {\n TYPE_ISSUE,\n name: 'RelatedIssuableInput',\n components: {\n GlFormGroup,\n IssueToken,\n },\n props: {\n inputId: {\n type: String,\n required: false,\n default: '',\n },\n references: {\n type: Array,\n required: false,\n default: () => [],\n },\n pathIdSeparator: {\n type: String,\n required: true,\n },\n inputValue: {\n type: String,\n required: false,\n default: '',\n },\n focusOnMount: {\n type: Boolean,\n required: false,\n default: false,\n },\n autoCompleteSources: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n autoCompleteOptions: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n confidential: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n isInputFocused: false,\n isAutoCompleteOpen: false,\n areEventsAssigned: false,\n };\n },\n computed: {\n inputPlaceholder() {\n const { issuableType, allowAutoComplete, confidential } = this;\n const inputPlaceholderMapping = confidential\n ? inputPlaceholderConfidentialTextMap\n : inputPlaceholderTextMap;\n const allowAutoCompleteText = autoCompleteTextMap[allowAutoComplete][issuableType];\n return `${inputPlaceholderMapping[issuableType]}${allowAutoCompleteText}`;\n },\n allowAutoComplete() {\n return Object.keys(this.autoCompleteSources).length > 0;\n },\n },\n mounted() {\n this.setupAutoComplete();\n if (this.focusOnMount) {\n this.$nextTick()\n .then(() => {\n this.$refs.input.focus();\n })\n .catch(() => {});\n }\n },\n beforeUpdate() {\n this.setupAutoComplete();\n },\n beforeDestroy() {\n const $input = $(this.$refs.input);\n // eslint-disable-next-line @gitlab/no-global-event-off\n $input.off('shown-issues.atwho');\n // eslint-disable-next-line @gitlab/no-global-event-off\n $input.off('hidden-issues.atwho');\n $input.off('inserted-issues.atwho', this.onInput);\n },\n methods: {\n onAutoCompleteToggled(isOpen) {\n this.isAutoCompleteOpen = isOpen;\n },\n onInput() {\n const { value } = this.$refs.input;\n const caretPos = this.$refs.input.selectionStart;\n const rawRefs = value.split(/\\s/);\n let touchedReference;\n let position = 0;\n\n const untouchedRawRefs = rawRefs\n .filter((ref) => {\n let isTouched = false;\n\n if (caretPos >= position && caretPos <= position + ref.length) {\n touchedReference = ref;\n isTouched = true;\n }\n\n position = position + ref.length + SPACE_FACTOR;\n\n return !isTouched;\n })\n .filter((ref) => ref.trim().length > 0);\n\n this.$emit('addIssuableFormInput', {\n newValue: value,\n untouchedRawReferences: untouchedRawRefs,\n touchedReference,\n caretPos,\n });\n },\n onBlur(event) {\n // Early exit if this Blur event is caused by card header\n const container = this.$root.$el.querySelector('.js-button-container');\n if (container && container.contains(event.relatedTarget)) {\n return;\n }\n\n this.isInputFocused = false;\n\n // Avoid tokenizing partial input when clicking an autocomplete item\n if (!this.isAutoCompleteOpen) {\n const { value } = this.$refs.input;\n // Avoid event emission when only pathIdSeparator has been typed\n if (value !== this.pathIdSeparator) {\n this.$emit('addIssuableFormBlur', value);\n }\n }\n },\n onFocus() {\n this.isInputFocused = true;\n },\n setupAutoComplete() {\n const $input = $(this.$refs.input);\n\n if (this.allowAutoComplete) {\n this.gfmAutoComplete = new GfmAutoComplete(this.autoCompleteSources);\n this.gfmAutoComplete.setup($input, this.autoCompleteOptions);\n }\n\n if (!this.areEventsAssigned) {\n $input.on('shown-issues.atwho', this.onAutoCompleteToggled.bind(this, true));\n $input.on('hidden-issues.atwho', this.onAutoCompleteToggled.bind(this, true));\n }\n this.areEventsAssigned = true;\n },\n onIssuableFormWrapperClick() {\n this.$refs.input.focus();\n },\n },\n};\n</script>\n\n<template>\n <gl-form-group>\n <div\n ref=\"issuableFormWrapper\"\n :class=\"{ focus: isInputFocused }\"\n class=\"add-issuable-form-input-wrapper form-control gl-field-error-outline gl-h-auto gl-px-3 gl-pb-0 gl-pt-2\"\n @click=\"onIssuableFormWrapperClick\"\n >\n <ul class=\"gl-m-0 gl-flex gl-list-none gl-flex-wrap gl-items-baseline gl-p-0\">\n <li\n v-for=\"(reference, index) in references\"\n :key=\"reference\"\n class=\"gl-mb-2 gl-mr-2 gl-max-w-full\"\n >\n <issue-token\n :id-key=\"index\"\n :display-reference=\"reference.text || reference\"\n can-remove\n is-condensed\n :path-id-separator=\"pathIdSeparator\"\n event-namespace=\"pendingIssuable\"\n @pendingIssuableRemoveRequest=\"\n (params) => {\n $emit('pendingIssuableRemoveRequest', params);\n }\n \"\n />\n </li>\n <li class=\"gl-mb-2 gl-grow\">\n <input\n :id=\"inputId\"\n ref=\"input\"\n :aria-describedby=\"`${inputId}-description`\"\n :value=\"inputValue\"\n :placeholder=\"inputPlaceholder\"\n :aria-label=\"inputPlaceholder\"\n type=\"text\"\n class=\"gl-w-full gl-border-none gl-outline-none\"\n data-testid=\"add-issue-field\"\n autocomplete=\"off\"\n @input=\"onInput\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keyup.escape.exact=\"$emit('addIssuableFormCancel')\"\n />\n </li>\n </ul>\n </div>\n <template v-if=\"issuableType === $options.TYPE_ISSUE\" #description>\n <span :id=\"`${inputId}-description`\">\n {{\n __(\n 'Only issues can be linked from this form. You can also link this issue from an epic or task.',\n )\n }}\n </span>\n </template>\n </gl-form-group>\n</template>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./related_issuable_input.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./related_issuable_input.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./related_issuable_input.vue?vue&type=template&id=a7afab18\"\nimport script from \"./related_issuable_input.vue?vue&type=script&lang=js\"\nexport * from \"./related_issuable_input.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-badge',{staticClass:\"gl-shrink-0\",attrs:{\"variant\":_vm.badgeProperties.variant,\"icon\":_vm.badgeProperties.icon,\"aria-label\":_vm.badgeProperties.text}},[_vm._v(\"\\n \"+_vm._s(_vm.badgeProperties.text)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlBadge } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport {\n STATUS_CLOSED,\n STATUS_LOCKED,\n STATUS_MERGED,\n STATUS_OPEN,\n TYPE_EPIC,\n TYPE_ISSUE,\n TYPE_MERGE_REQUEST,\n} from '~/issues/constants';\n\nconst badgePropertiesMap = {\n [TYPE_EPIC]: {\n [STATUS_OPEN]: {\n icon: 'issue-open-m',\n text: __('Open'),\n variant: 'success',\n },\n [STATUS_CLOSED]: {\n icon: 'issue-close',\n text: __('Closed'),\n variant: 'info',\n },\n },\n [TYPE_ISSUE]: {\n [STATUS_OPEN]: {\n icon: 'issue-open-m',\n text: __('Open'),\n variant: 'success',\n },\n [STATUS_CLOSED]: {\n icon: 'issue-close',\n text: __('Closed'),\n variant: 'info',\n },\n [STATUS_LOCKED]: {\n icon: 'issue-open-m',\n text: __('Open'),\n variant: 'success',\n },\n },\n [TYPE_MERGE_REQUEST]: {\n [STATUS_OPEN]: {\n icon: 'merge-request',\n text: __('Open'),\n variant: 'success',\n },\n [STATUS_CLOSED]: {\n icon: 'merge-request-close',\n text: __('Closed'),\n variant: 'danger',\n },\n [STATUS_MERGED]: {\n icon: 'merge',\n text: __('Merged'),\n variant: 'info',\n },\n [STATUS_LOCKED]: {\n icon: 'merge-request',\n text: __('Open'),\n variant: 'success',\n },\n },\n};\n\nexport default {\n components: {\n GlBadge,\n },\n props: {\n issuableType: {\n type: String,\n required: false,\n default: '',\n },\n state: {\n type: String,\n required: false,\n default: null,\n },\n },\n computed: {\n badgeProperties() {\n return badgePropertiesMap[this.issuableType][this.state];\n },\n },\n};\n</script>\n\n<template>\n <gl-badge\n :variant=\"badgeProperties.variant\"\n :icon=\"badgeProperties.icon\"\n :aria-label=\"badgeProperties.text\"\n class=\"gl-shrink-0\"\n >\n {{ badgeProperties.text }}\n </gl-badge>\n</template>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./status_badge.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./status_badge.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./status_badge.vue?vue&type=template&id=7240f6d0\"\nimport script from \"./status_badge.vue?vue&type=script&lang=js\"\nexport * from \"./status_badge.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { NAME_MODAL } from '../../constants/components';\nimport { EVENT_NAME_SHOW, EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes';\nimport { matches, select, hasAttr, setAttr, getAttr, isDisabled } from '../../utils/dom';\nimport { getRootActionEventName, eventOff, eventOn } from '../../utils/events';\nimport { isString } from '../../utils/inspect';\nimport { keys } from '../../utils/object';\nimport { getEventRoot } from '../../utils/get-event-root';\nimport { getInstanceFromDirective } from '../../utils/get-instance-from-directive';\n\n// Emitted show event for modal\nconst ROOT_ACTION_EVENT_NAME_SHOW = getRootActionEventName(NAME_MODAL, EVENT_NAME_SHOW);\n\n// Prop name we use to store info on root element\nconst PROPERTY = '__bv_modal_directive__';\nconst getTarget = _ref => {\n let {\n modifiers = {},\n arg,\n value\n } = _ref;\n // Try value, then arg, otherwise pick last modifier\n return isString(value) ? value : isString(arg) ? arg : keys(modifiers).reverse()[0];\n};\nconst getTriggerElement = el => {\n // If root element is a dropdown-item or nav-item, we\n // need to target the inner link or button instead\n return el && matches(el, '.dropdown-menu > li, li.nav-item') ? select('a, button', el) || el : el;\n};\nconst setRole = trigger => {\n // Ensure accessibility on non button elements\n if (trigger && trigger.tagName !== 'BUTTON') {\n // Only set a role if the trigger element doesn't have one\n if (!hasAttr(trigger, 'role')) {\n setAttr(trigger, 'role', 'button');\n }\n // Add a tabindex is not a button or link, and tabindex is not provided\n if (trigger.tagName !== 'A' && !hasAttr(trigger, 'tabindex')) {\n setAttr(trigger, 'tabindex', '0');\n }\n }\n};\nconst bind = (el, binding, vnode) => {\n const target = getTarget(binding);\n const trigger = getTriggerElement(el);\n if (target && trigger) {\n const handler = event => {\n // `currentTarget` is the element with the listener on it\n const currentTarget = event.currentTarget;\n if (!isDisabled(currentTarget)) {\n const type = event.type;\n const key = event.keyCode;\n // Open modal only if trigger is not disabled\n if (type === 'click' || type === 'keydown' && (key === CODE_ENTER || key === CODE_SPACE)) {\n getEventRoot(getInstanceFromDirective(vnode, binding)).$emit(ROOT_ACTION_EVENT_NAME_SHOW, target, currentTarget);\n }\n }\n };\n el[PROPERTY] = {\n handler,\n target,\n trigger\n };\n // If element is not a button, we add `role=\"button\"` for accessibility\n setRole(trigger);\n // Listen for click events\n eventOn(trigger, 'click', handler, EVENT_OPTIONS_PASSIVE);\n if (trigger.tagName !== 'BUTTON' && getAttr(trigger, 'role') === 'button') {\n // If trigger isn't a button but has role button,\n // we also listen for `keydown.space` && `keydown.enter`\n eventOn(trigger, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n }\n};\nconst unbind = el => {\n const oldProp = el[PROPERTY] || {};\n const trigger = oldProp.trigger;\n const handler = oldProp.handler;\n if (trigger && handler) {\n eventOff(trigger, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(trigger, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n delete el[PROPERTY];\n};\nconst componentUpdated = (el, binding, vnode) => {\n const oldProp = el[PROPERTY] || {};\n const target = getTarget(binding);\n const trigger = getTriggerElement(el);\n if (target !== oldProp.target || trigger !== oldProp.trigger) {\n // We bind and rebind if the target or trigger changes\n unbind(el);\n bind(el, binding, vnode);\n }\n // If trigger element is not a button, ensure `role=\"button\"`\n // is still set for accessibility\n setRole(trigger);\n};\nconst updated = () => {};\n\n/*\n * Export our directive\n */\nconst VBModal = {\n inserted: componentUpdated,\n updated,\n componentUpdated,\n unbind\n};\n\nexport { VBModal };\n","(function(h,C){typeof exports==\"object\"&&typeof module!=\"undefined\"?C(exports):typeof define==\"function\"&&define.amd?define([\"exports\"],C):(h=typeof globalThis!=\"undefined\"?globalThis:h||self,C(h.modernScreenshot={}))})(this,function(h){var Ue;\"use strict\";var Qt=Object.defineProperty,Zt=Object.defineProperties;var er=Object.getOwnPropertyDescriptors;var Z=Object.getOwnPropertySymbols;var Le=Object.prototype.hasOwnProperty,Me=Object.prototype.propertyIsEnumerable;var Oe=Math.pow,Be=(h,C,T)=>C in h?Qt(h,C,{enumerable:!0,configurable:!0,writable:!0,value:T}):h[C]=T,D=(h,C)=>{for(var T in C||(C={}))Le.call(C,T)&&Be(h,T,C[T]);if(Z)for(var T of Z(C))Me.call(C,T)&&Be(h,T,C[T]);return h},L=(h,C)=>Zt(h,er(C));var We=(h,C)=>{var T={};for(var N in h)Le.call(h,N)&&C.indexOf(N)<0&&(T[N]=h[N]);if(h!=null&&Z)for(var N of Z(h))C.indexOf(N)<0&&Me.call(h,N)&&(T[N]=h[N]);return T};var E=(h,C,T)=>new Promise((N,M)=>{var z=R=>{try{W(T.next(R))}catch(j){M(j)}},O=R=>{try{W(T.throw(R))}catch(j){M(j)}},W=R=>R.done?N(R.value):Promise.resolve(R.value).then(z,O);W((T=T.apply(h,C)).next())});function C(e,t){return e[13]=1,e[14]=t>>8,e[15]=t&255,e[16]=t>>8,e[17]=t&255,e}const T=\"p\".charCodeAt(0),N=\"H\".charCodeAt(0),M=\"Y\".charCodeAt(0),z=\"s\".charCodeAt(0);let O;function W(){const e=new Int32Array(256);for(let t=0;t<256;t++){let r=t;for(let n=0;n<8;n++)r=r&1?3988292384^r>>>1:r>>>1;e[t]=r}return e}function R(e){let t=-1;O||(O=W());for(let r=0;r<e.length;r++)t=O[(t^e[r])&255]^t>>>8;return t^-1}function j(e){const t=e.length-1;for(let r=t;r>=4;r--)if(e[r-4]===9&&e[r-3]===T&&e[r-2]===N&&e[r-1]===M&&e[r]===z)return r-3;return 0}function ae(e,t,r=!1){const n=new Uint8Array(13);t*=39.3701,n[0]=T,n[1]=N,n[2]=M,n[3]=z,n[4]=t>>>24,n[5]=t>>>16,n[6]=t>>>8,n[7]=t&255,n[8]=n[4],n[9]=n[5],n[10]=n[6],n[11]=n[7],n[12]=1;const a=R(n),s=new Uint8Array(4);if(s[0]=a>>>24,s[1]=a>>>16,s[2]=a>>>8,s[3]=a&255,r){const o=j(e);return e.set(n,o),e.set(s,o+13),e}else{const o=new Uint8Array(4);o[0]=0,o[1]=0,o[2]=0,o[3]=9;const i=new Uint8Array(54);return i.set(e,0),i.set(o,33),i.set(n,37),i.set(s,50),i}}const je=\"AAlwSFlz\",qe=\"AAAJcEhZ\",Ve=\"AAAACXBI\";function He(e){let t=e.indexOf(je);return t===-1&&(t=e.indexOf(qe)),t===-1&&(t=e.indexOf(Ve)),t}const ee=\"[modern-screenshot]\",F=typeof window!=\"undefined\",ze=F&&\"Worker\"in window,se=F&&\"atob\"in window,Xe=F&&\"btoa\"in window,te=F?(Ue=window.navigator)==null?void 0:Ue.userAgent:\"\",ie=te.includes(\"Chrome\"),X=te.includes(\"AppleWebKit\")&&!ie,re=te.includes(\"Firefox\"),Ge=e=>e&&\"__CONTEXT__\"in e,Ye=e=>e.constructor.name===\"CSSFontFaceRule\",Je=e=>e.constructor.name===\"CSSImportRule\",k=e=>e.nodeType===1,q=e=>typeof e.className==\"object\",ce=e=>e.tagName===\"image\",Ke=e=>e.tagName===\"use\",V=e=>k(e)&&typeof e.style!=\"undefined\"&&!q(e),Qe=e=>e.nodeType===8,Ze=e=>e.nodeType===3,_=e=>e.tagName===\"IMG\",G=e=>e.tagName===\"VIDEO\",et=e=>e.tagName===\"CANVAS\",le=e=>e.tagName===\"TEXTAREA\",tt=e=>e.tagName===\"INPUT\",rt=e=>e.tagName===\"STYLE\",nt=e=>e.tagName===\"SCRIPT\",ot=e=>e.tagName===\"SELECT\",at=e=>e.tagName===\"SLOT\",st=e=>e.tagName===\"IFRAME\",A=(...e)=>console.warn(ee,...e),it=e=>console.time(`${ee} ${e}`),ct=e=>console.timeEnd(`${ee} ${e}`),lt=e=>{var r;const t=(r=e==null?void 0:e.createElement)==null?void 0:r.call(e,\"canvas\");return t&&(t.height=t.width=1),t&&\"toDataURL\"in t&&Boolean(t.toDataURL(\"image/webp\").includes(\"image/webp\"))},ne=e=>e.startsWith(\"data:\");function ue(e,t){if(e.match(/^[a-z]+:\\/\\//i))return e;if(F&&e.match(/^\\/\\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i)||!F)return e;const r=Y().implementation.createHTMLDocument(),n=r.createElement(\"base\"),a=r.createElement(\"a\");return r.head.appendChild(n),r.body.appendChild(a),t&&(n.href=t),a.href=e,a.href}function Y(e){var t;return(t=e&&k(e)?e==null?void 0:e.ownerDocument:e)!=null?t:window.document}const J=\"http://www.w3.org/2000/svg\";function fe(e,t,r){const n=Y(r).createElementNS(J,\"svg\");return n.setAttributeNS(null,\"width\",e.toString()),n.setAttributeNS(null,\"height\",t.toString()),n.setAttributeNS(null,\"viewBox\",`0 0 ${e} ${t}`),n}function de(e,t){let r=new XMLSerializer().serializeToString(e);return t&&(r=r.replace(/[\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F\\uD800-\\uDFFF\\uFFFE\\uFFFF]/ug,\"\")),`data:image/svg+xml;charset=utf-8,${encodeURIComponent(r)}`}function ut(e,t=\"image/png\",r=1){return E(this,null,function*(){try{return yield new Promise((n,a)=>{e.toBlob(s=>{s?n(s):a(new Error(\"Blob is null\"))},t,r)})}catch(n){if(se)return A(\"Failed canvas to blob\",{type:t,quality:r},n),ft(e.toDataURL(t,r));throw n}})}function ft(e){var i,l;const[t,r]=e.split(\",\"),n=(l=(i=t.match(/data:(.+);/))==null?void 0:i[1])!=null?l:void 0,a=window.atob(r),s=a.length,o=new Uint8Array(s);for(let u=0;u<s;u+=1)o[u]=a.charCodeAt(u);return new Blob([o],{type:n})}function me(e,t){return new Promise((r,n)=>{const a=new FileReader;a.onload=()=>r(a.result),a.onerror=()=>n(a.error),a.onabort=()=>n(new Error(`Failed read blob to ${t}`)),t===\"dataUrl\"?a.readAsDataURL(e):t===\"arrayBuffer\"&&a.readAsArrayBuffer(e)})}const dt=e=>me(e,\"dataUrl\"),mt=e=>me(e,\"arrayBuffer\");function U(e,t){const r=Y(t).createElement(\"img\");return r.decoding=\"sync\",r.loading=\"eager\",r.src=e,r}function $(e,t){return new Promise(r=>{const{timeout:n,ownerDocument:a,onError:s}=t!=null?t:{},o=typeof e==\"string\"?U(e,Y(a)):e;let i=null,l=null;function u(){r(o),i&&clearTimeout(i),l==null||l()}if(n&&(i=setTimeout(u,n)),G(o)){const c=o.currentSrc||o.src;if(!c)return o.poster?$(o.poster,t).then(r):u();if(o.readyState>=2)return u();const f=u,d=m=>{A(\"Failed video load\",c,m),s==null||s(m),u()};l=()=>{o.removeEventListener(\"loadeddata\",f),o.removeEventListener(\"error\",d)},o.addEventListener(\"loadeddata\",f,{once:!0}),o.addEventListener(\"error\",d,{once:!0})}else{const c=ce(o)?o.href.baseVal:o.currentSrc||o.src;if(!c)return u();const f=()=>E(this,null,function*(){if(_(o)&&\"decode\"in o)try{yield o.decode()}catch(m){A(\"Failed to decode image, trying to render anyway\",o.dataset.originalSrc||c,m)}u()}),d=m=>{A(\"Failed image load\",o.dataset.originalSrc||c,m),u()};if(_(o)&&o.complete)return f();l=()=>{o.removeEventListener(\"load\",f),o.removeEventListener(\"error\",d)},o.addEventListener(\"load\",f,{once:!0}),o.addEventListener(\"error\",d,{once:!0})}})}function ge(e,t){return E(this,null,function*(){V(e)&&(_(e)||G(e)?yield $(e,{timeout:t}):yield Promise.all([\"img\",\"video\"].flatMap(r=>Array.from(e.querySelectorAll(r)).map(n=>$(n,{timeout:t})))))})}const he=function(){let t=0;const r=()=>`0000${(Math.random()*Oe(36,4)<<0).toString(36)}`.slice(-4);return()=>(t+=1,`u${r()}${t}`)}();function we(e){return e==null?void 0:e.split(\",\").map(t=>t.trim().replace(/\"|'/g,\"\").toLowerCase()).filter(Boolean)}function gt(e){return{time:t=>e&&it(t),timeEnd:t=>e&&ct(t),warn:(...t)=>e&&A(...t)}}function ht(e){return{cache:e?\"no-cache\":\"force-cache\"}}function x(e,t){return E(this,null,function*(){return Ge(e)?e:pe(e,L(D({},t),{autoDestruct:!0}))})}function pe(e,t){return E(this,null,function*(){var m,w,p,b,g;const{scale:r=1,workerUrl:n,workerNumber:a=1}=t||{},s=Boolean(t==null?void 0:t.debug),o=(m=t==null?void 0:t.features)!=null?m:!0,i=(w=e.ownerDocument)!=null?w:F?window.document:void 0,l=(b=(p=e.ownerDocument)==null?void 0:p.defaultView)!=null?b:F?window:void 0,u=new Map,c=L(D({width:0,height:0,quality:1,type:\"image/png\",scale:r,backgroundColor:null,style:null,filter:null,maximumCanvasSize:0,timeout:3e4,progress:null,debug:s,fetch:D({requestInit:ht((g=t==null?void 0:t.fetch)==null?void 0:g.bypassingCache),placeholderImage:\"data:image/png;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\",bypassingCache:!1},t==null?void 0:t.fetch),fetchFn:null,font:{},drawImageInterval:100,workerUrl:null,workerNumber:a,onCloneNode:null,onEmbedNode:null,onCreateForeignObjectSvg:null,includeStyleProperties:null,autoDestruct:!1},t),{__CONTEXT__:!0,log:gt(s),node:e,ownerDocument:i,ownerWindow:l,dpi:r===1?null:96*r,svgStyleElement:ye(i),svgDefsElement:i==null?void 0:i.createElementNS(J,\"defs\"),svgStyles:new Map,defaultComputedStyles:new Map,workers:[...new Array(ze&&n&&a?a:0)].map(()=>{try{const S=new Worker(n);return S.onmessage=y=>E(this,null,function*(){var P,_e,Q,$e;const{url:v,result:I}=y.data;I?(_e=(P=u.get(v))==null?void 0:P.resolve)==null||_e.call(P,I):($e=(Q=u.get(v))==null?void 0:Q.reject)==null||$e.call(Q,new Error(`Error receiving message from worker: ${v}`))}),S.onmessageerror=y=>{var I,P;const{url:v}=y.data;(P=(I=u.get(v))==null?void 0:I.reject)==null||P.call(I,new Error(`Error receiving message from worker: ${v}`))},S}catch(S){return A(\"Failed to new Worker\",S),null}}).filter(Boolean),fontFamilies:new Set,fontCssTexts:new Map,acceptOfImage:`${[lt(i)&&\"image/webp\",\"image/svg+xml\",\"image/*\",\"*/*\"].filter(Boolean).join(\",\")};q=0.8`,requests:u,drawImageCount:0,tasks:[],features:o,isEnable:S=>{var y,v;return S===\"restoreScrollPosition\"?typeof o==\"boolean\"?!1:(y=o[S])!=null?y:!1:typeof o==\"boolean\"?o:(v=o[S])!=null?v:!0}});c.log.time(\"wait until load\"),yield ge(e,c.timeout),c.log.timeEnd(\"wait until load\");const{width:f,height:d}=wt(e,c);return c.width=f,c.height=d,c})}function ye(e){if(!e)return;const t=e.createElement(\"style\"),r=t.ownerDocument.createTextNode(`\n.______background-clip--text {\n background-clip: text;\n -webkit-background-clip: text;\n}\n`);return t.appendChild(r),t}function wt(e,t){let{width:r,height:n}=t;if(k(e)&&(!r||!n)){const a=e.getBoundingClientRect();r=r||a.width||Number(e.getAttribute(\"width\"))||0,n=n||a.height||Number(e.getAttribute(\"height\"))||0}return{width:r,height:n}}function pt(e,t){return E(this,null,function*(){const{log:r,timeout:n,drawImageCount:a,drawImageInterval:s}=t;r.time(\"image to canvas\");const o=yield $(e,{timeout:n}),{canvas:i,context2d:l}=yt(e.ownerDocument,t),u=()=>{try{l==null||l.drawImage(o,0,0,i.width,i.height)}catch(c){A(\"Failed to drawImage\",c)}};if(u(),t.isEnable(\"fixSvgXmlDecode\"))for(let c=0;c<a;c++)yield new Promise(f=>{setTimeout(()=>{u(),f()},c+s)});return t.drawImageCount=0,r.timeEnd(\"image to canvas\"),i})}function yt(e,t){const{width:r,height:n,scale:a,backgroundColor:s,maximumCanvasSize:o}=t,i=e.createElement(\"canvas\");i.width=Math.floor(r*a),i.height=Math.floor(n*a),i.style.width=`${r}px`,i.style.height=`${n}px`,o&&(i.width>o||i.height>o)&&(i.width>o&&i.height>o?i.width>i.height?(i.height*=o/i.width,i.width=o):(i.width*=o/i.height,i.height=o):i.width>o?(i.height*=o/i.width,i.width=o):(i.width*=o/i.height,i.height=o));const l=i.getContext(\"2d\");return l&&s&&(l.fillStyle=s,l.fillRect(0,0,i.width,i.height)),{canvas:i,context2d:l}}const bt=[\"width\",\"height\",\"-webkit-text-fill-color\"],St=[\"stroke\",\"fill\"];function be(e,t,r){var b;const{defaultComputedStyles:n,ownerDocument:a}=r,s=e.nodeName.toLowerCase(),o=q(e)&&s!==\"svg\",i=o?St.map(g=>[g,e.getAttribute(g)]).filter(([,g])=>g!==null):[],l=[o&&\"svg\",s,i.map((g,S)=>`${g}=${S}`).join(\",\"),t].filter(Boolean).join(\":\");if(n.has(l))return n.get(l);let u=r.sandbox;if(!u)try{a&&(u=a.createElement(\"iframe\"),u.id=`__SANDBOX__-${he()}`,u.width=\"0\",u.height=\"0\",u.style.visibility=\"hidden\",u.style.position=\"fixed\",a.body.appendChild(u),(b=u.contentWindow)==null||b.document.write('<!DOCTYPE html><meta charset=\"UTF-8\"><title></title><body>'),r.sandbox=u)}catch(g){A(\"Failed to create iframe sandbox\",g)}if(!u)return new Map;const c=u.contentWindow;if(!c)return new Map;const f=c.document;let d,m;o?(d=f.createElementNS(J,\"svg\"),m=d.ownerDocument.createElementNS(d.namespaceURI,s),i.forEach(([g,S])=>{m.setAttributeNS(null,g,S)}),d.appendChild(m)):d=m=f.createElement(s),m.textContent=\" \",f.body.appendChild(d);const w=c.getComputedStyle(m,t),p=new Map;for(let g=w.length,S=0;S<g;S++){const y=w.item(S);bt.includes(y)||p.set(y,w.getPropertyValue(y))}return f.body.removeChild(d),n.set(l,p),p}function Se(e,t,r){var i;const n=new Map,a=[],s=new Map;if(r)for(const l of r)o(l);else for(let l=e.length,u=0;u<l;u++){const c=e.item(u);o(c)}for(let l=a.length,u=0;u<l;u++)(i=s.get(a[u]))==null||i.forEach((c,f)=>n.set(f,c));function o(l){const u=e.getPropertyValue(l),c=e.getPropertyPriority(l),f=l.lastIndexOf(\"-\"),d=f>-1?l.substring(0,f):void 0;if(d){let m=s.get(d);m||(m=new Map,s.set(d,m)),m.set(l,[u,c])}t.get(l)===u&&!c||(d?a.push(d):n.set(l,[u,c]))}return n}const Et=[\":before\",\":after\"],Ct=[\":-webkit-scrollbar\",\":-webkit-scrollbar-button\",\":-webkit-scrollbar-thumb\",\":-webkit-scrollbar-track\",\":-webkit-scrollbar-track-piece\",\":-webkit-scrollbar-corner\",\":-webkit-resizer\"];function Tt(e,t,r,n){const{ownerWindow:a,svgStyleElement:s,svgStyles:o,currentNodeStyle:i}=n;if(!s||!a)return;function l(u){var S;const c=a.getComputedStyle(e,u);let f=c.getPropertyValue(\"content\");if(!f||f===\"none\")return;f=f.replace(/(')|(\")|(counter\\(.+\\))/g,\"\");const d=[he()],m=be(e,u,n);i==null||i.forEach((y,v)=>{m.delete(v)});const w=Se(c,m,n.includeStyleProperties);w.delete(\"content\"),w.delete(\"-webkit-locale\"),((S=w.get(\"background-clip\"))==null?void 0:S[0])===\"text\"&&t.classList.add(\"______background-clip--text\");const p=[`content: '${f}';`];if(w.forEach(([y,v],I)=>{p.push(`${I}: ${y}${v?\" !important\":\"\"};`)}),p.length===1)return;try{t.className=[t.className,...d].join(\" \")}catch(y){return}const b=p.join(`\n `);let g=o.get(b);g||(g=[],o.set(b,g)),g.push(`.${d[0]}:${u}`)}Et.forEach(l),r&&Ct.forEach(l)}function vt(e,t){le(e)&&(t.innerHTML=e.value),(le(e)||tt(e)||ot(e))&&t.setAttribute(\"value\",e.value)}function At(e,t,r,n){var f,d,m,w;const{ownerWindow:a,includeStyleProperties:s,currentParentNodeStyle:o}=n,i=t.style,l=a.getComputedStyle(e),u=be(e,null,n);o==null||o.forEach((p,b)=>{u.delete(b)});const c=Se(l,u,s);return c.delete(\"transition-property\"),c.delete(\"all\"),c.delete(\"d\"),c.delete(\"content\"),r&&(c.delete(\"margin-top\"),c.delete(\"margin-right\"),c.delete(\"margin-bottom\"),c.delete(\"margin-left\"),c.delete(\"margin-block-start\"),c.delete(\"margin-block-end\"),c.delete(\"margin-inline-start\"),c.delete(\"margin-inline-end\"),c.set(\"box-sizing\",[\"border-box\",\"\"])),((f=c.get(\"background-clip\"))==null?void 0:f[0])===\"text\"&&t.classList.add(\"______background-clip--text\"),ie&&(c.has(\"font-kerning\")||c.set(\"font-kerning\",[\"normal\",\"\"]),(((d=c.get(\"overflow-x\"))==null?void 0:d[0])===\"hidden\"||((m=c.get(\"overflow-y\"))==null?void 0:m[0])===\"hidden\")&&((w=c.get(\"text-overflow\"))==null?void 0:w[0])===\"ellipsis\"&&e.scrollWidth===e.clientWidth&&c.set(\"text-overflow\",[\"clip\",\"\"])),c.forEach(([p,b],g)=>{i.setProperty(g,p,b)}),c}function Nt(e,t){var r;try{if((r=e==null?void 0:e.contentDocument)!=null&&r.body)return oe(e.contentDocument.body,t)}catch(n){A(\"Failed to clone iframe\",n)}return e.cloneNode(!1)}function Ee(e){if(e.ownerDocument)try{const a=e.toDataURL();if(a!==\"data:,\")return U(a,e.ownerDocument)}catch(a){}const t=e.cloneNode(!1),r=e.getContext(\"2d\"),n=t.getContext(\"2d\");try{return r&&n&&n.putImageData(r.getImageData(0,0,e.width,e.height),0,0),t}catch(a){A(\"Failed to clone canvas\",a)}return t}function It(e){return E(this,null,function*(){if(e.ownerDocument&&!e.currentSrc&&e.poster)return U(e.poster,e.ownerDocument);const t=e.cloneNode(!1);t.crossOrigin=\"anonymous\",e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc);const r=t.ownerDocument;if(r){let n=!0;if(yield $(t,{onError:()=>n=!1}),!n)return e.poster?U(e.poster,e.ownerDocument):t;t.currentTime=e.currentTime,yield new Promise(s=>{t.addEventListener(\"seeked\",s,{once:!0})});const a=r.createElement(\"canvas\");a.width=e.offsetWidth,a.height=e.offsetHeight;try{const s=a.getContext(\"2d\");s&&s.drawImage(t,0,0,a.width,a.height)}catch(s){return A(\"Failed to clone video\",s),e.poster?U(e.poster,e.ownerDocument):t}return Ee(a)}return t})}function kt(e){const t=e.cloneNode(!1);return e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc,t.srcset=\"\"),t.loading===\"lazy\"&&(t.loading=\"eager\"),t}function xt(e,t){return et(e)?Ee(e):st(e)?Nt(e,t):_(e)?kt(e):G(e)?It(e):e.cloneNode(!1)}const Ce=new Set([\"symbol\"]);function Te(e,t,r,n){return E(this,null,function*(){if(k(r)&&(rt(r)||nt(r))||n.filter&&!n.filter(r))return;Ce.has(t.nodeName)||Ce.has(r.nodeName)?n.currentParentNodeStyle=void 0:n.currentParentNodeStyle=n.currentNodeStyle;const a=yield oe(r,n);n.isEnable(\"restoreScrollPosition\")&&Dt(e,a),t.appendChild(a)})}function ve(e,t,r){return E(this,null,function*(){var a,s;const n=(s=k(e)?(a=e.shadowRoot)==null?void 0:a.firstChild:void 0)!=null?s:e.firstChild;for(let o=n;o;o=o.nextSibling)if(!Qe(o))if(k(o)&&at(o)&&typeof o.assignedNodes==\"function\"){const i=o.assignedNodes();for(let l=0;l<i.length;l++)yield Te(e,t,i[l],r)}else yield Te(e,t,o,r)})}function Dt(e,t){if(!V(e)||!V(t))return;const{scrollTop:r,scrollLeft:n}=e;if(!r&&!n)return;const{transform:a}=t.style,s=new DOMMatrix(a),{a:o,b:i,c:l,d:u}=s;s.a=1,s.b=0,s.c=0,s.d=1,s.translateSelf(-n,-r),s.a=o,s.b=i,s.c=l,s.d=u,t.style.transform=s.toString()}function Rt(e,t){const{backgroundColor:r,width:n,height:a,style:s}=t,o=e.style;if(r&&o.setProperty(\"background-color\",r,\"important\"),n&&o.setProperty(\"width\",`${n}px`,\"important\"),a&&o.setProperty(\"height\",`${a}px`,\"important\"),s)for(const i in s)o[i]=s[i]}const Pt=/^[\\w-:]+$/;function oe(e,t,r=!1){return E(this,null,function*(){var i,l,u,c;const{ownerDocument:n,ownerWindow:a,fontFamilies:s}=t;if(n&&Ze(e))return n.createTextNode(e.data);if(n&&a&&k(e)&&(V(e)||q(e))){const f=yield xt(e,t);if(t.isEnable(\"removeAbnormalAttributes\")){const w=f.getAttributeNames();for(let p=w.length,b=0;b<p;b++){const g=w[b];Pt.test(g)||f.removeAttribute(g)}}const d=t.currentNodeStyle=At(e,f,r,t);r&&Rt(f,t);let m=!1;if(t.isEnable(\"copyScrollbar\")){const w=[(i=d.get(\"overflow-x\"))==null?void 0:i[0],(l=d.get(\"overflow-y\"))==null?void 0:l[1]];m=w.includes(\"scroll\")||(w.includes(\"auto\")||w.includes(\"overlay\"))&&(e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth)}return Tt(e,f,m,t),vt(e,f),(c=we((u=d.get(\"font-family\"))==null?void 0:u[0]))==null||c.forEach(w=>s.add(w)),G(e)||(yield ve(e,f,t)),f}const o=e.cloneNode(!1);return yield ve(e,o,t),o})}function Ae(e){if(e.ownerDocument=void 0,e.ownerWindow=void 0,e.svgStyleElement=void 0,e.svgDefsElement=void 0,e.svgStyles.clear(),e.defaultComputedStyles.clear(),e.sandbox){try{e.sandbox.remove()}catch(t){}e.sandbox=void 0}e.workers=[],e.fontFamilies.clear(),e.fontCssTexts.clear(),e.requests.clear(),e.tasks=[]}function Ft(e){const i=e,{url:t,timeout:r,responseType:n}=i,a=We(i,[\"url\",\"timeout\",\"responseType\"]),s=new AbortController,o=r?setTimeout(()=>s.abort(),r):void 0;return fetch(t,D({signal:s.signal},a)).then(l=>{if(!l.ok)throw new Error(\"Failed fetch, not 2xx response\",{cause:l});switch(n){case\"dataUrl\":return l.blob().then(dt);case\"text\":default:return l.text()}}).finally(()=>clearTimeout(o))}function H(e,t){const{url:r,requestType:n=\"text\",responseType:a=\"text\",imageDom:s}=t;let o=r;const{timeout:i,acceptOfImage:l,requests:u,fetchFn:c,fetch:{requestInit:f,bypassingCache:d,placeholderImage:m},workers:w}=e;n===\"image\"&&(X||re)&&e.drawImageCount++;let p=u.get(r);if(!p){d&&d instanceof RegExp&&d.test(o)&&(o+=(/\\?/.test(o)?\"&\":\"?\")+new Date().getTime());const b=D({url:o,timeout:i,responseType:a,headers:n===\"image\"?{accept:l}:void 0},f);p={type:n,resolve:void 0,reject:void 0,response:null},p.response=(()=>E(this,null,function*(){if(c&&n===\"image\"){const g=yield c(r);if(g)return g}return!X&&r.startsWith(\"http\")&&w.length?new Promise((g,S)=>{w[u.size&w.length-1].postMessage(D({rawUrl:r},b)),p.resolve=g,p.reject=S}):Ft(b)}))().catch(g=>{if(u.delete(r),n===\"image\"&&m)return A(\"Failed to fetch image base64, trying to use placeholder image\",o),typeof m==\"string\"?m:m(s);throw g}),u.set(r,p)}return p.response}function Ne(e,t,r,n){return E(this,null,function*(){if(!Ie(e))return e;for(const[a,s]of Ut(e,t))try{const o=yield H(r,{url:s,requestType:n?\"image\":\"text\",responseType:\"dataUrl\"});e=e.replace(_t(a),`$1${o}$3`)}catch(o){A(\"Failed to fetch css data url\",a,o)}return e})}function Ie(e){return/url\\((['\"]?)([^'\"]+?)\\1\\)/.test(e)}const ke=/url\\((['\"]?)([^'\"]+?)\\1\\)/g;function Ut(e,t){const r=[];return e.replace(ke,(n,a,s)=>(r.push([s,ue(s,t)]),n)),r.filter(([n])=>!ne(n))}function _t(e){const t=e.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g,\"\\\\$1\");return new RegExp(`(url\\\\(['\"]?)(${t})(['\"]?\\\\))`,\"g\")}function $t(e,t){return E(this,null,function*(){const{ownerDocument:r,svgStyleElement:n,fontFamilies:a,fontCssTexts:s,tasks:o,font:i}=t;if(!(!r||!n||!a.size))if(i&&i.cssText){const l=De(i.cssText,t);n.appendChild(r.createTextNode(`${l}\n`))}else{const l=Array.from(r.styleSheets).filter(c=>{try{return\"cssRules\"in c&&Boolean(c.cssRules.length)}catch(f){return A(`Error while reading CSS rules from ${c.href}`,f),!1}});yield Promise.all(l.flatMap(c=>Array.from(c.cssRules).map((f,d)=>E(this,null,function*(){if(Je(f)){let m=d+1;const w=f.href;let p=\"\";try{p=yield H(t,{url:w,requestType:\"text\",responseType:\"text\"})}catch(g){A(`Error fetch remote css import from ${w}`,g)}const b=p.replace(ke,(g,S,y)=>g.replace(y,ue(y,w)));for(const g of Lt(b))try{c.insertRule(g,g.startsWith(\"@import\")?m+=1:c.cssRules.length)}catch(S){A(\"Error inserting rule from remote css import\",{rule:g,error:S})}}})))),l.flatMap(c=>Array.from(c.cssRules)).filter(c=>{var f;return Ye(c)&&Ie(c.style.getPropertyValue(\"src\"))&&((f=we(c.style.getPropertyValue(\"font-family\")))==null?void 0:f.some(d=>a.has(d)))}).forEach(c=>{const f=c,d=s.get(f.cssText);d?n.appendChild(r.createTextNode(`${d}\n`)):o.push(Ne(f.cssText,f.parentStyleSheet?f.parentStyleSheet.href:null,t).then(m=>{m=De(m,t),s.set(f.cssText,m),n.appendChild(r.createTextNode(`${m}\n`))}))})}})}const Bt=/(\\/\\*[\\s\\S]*?\\*\\/)/gi,xe=/((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})/gi;function Lt(e){if(e==null)return[];const t=[];let r=e.replace(Bt,\"\");for(;;){const s=xe.exec(r);if(!s)break;t.push(s[0])}r=r.replace(xe,\"\");const n=/@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi,a=new RegExp(\"((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})\",\"gi\");for(;;){let s=n.exec(r);if(s)a.lastIndex=n.lastIndex;else if(s=a.exec(r),s)n.lastIndex=a.lastIndex;else break;t.push(s[0])}return t}const Mt=/url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g,Ot=/src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;function De(e,t){const{font:r}=t,n=r?r==null?void 0:r.preferredFormat:void 0;return n?e.replace(Ot,a=>{for(;;){const[s,,o]=Mt.exec(a)||[];if(!o)return\"\";if(o===n)return`src: ${s};`}}):e}function Wt(e,t){if(_(e)){const r=e.currentSrc||e.src;if(!ne(r))return[H(t,{url:r,imageDom:e,requestType:\"image\",responseType:\"dataUrl\"}).then(n=>{n&&(e.srcset=\"\",e.dataset.originalSrc=r,e.src=n||\"\")})];(X||re)&&t.drawImageCount++}else if(q(e)&&!ne(e.href.baseVal)){const r=e.href.baseVal;return[H(t,{url:r,imageDom:e,requestType:\"image\",responseType:\"dataUrl\"}).then(n=>{n&&(e.dataset.originalSrc=r,e.href.baseVal=n||\"\")})]}return[]}const jt=[\"background-image\",\"border-image-source\",\"-webkit-border-image\",\"-webkit-mask-image\",\"list-style-image\"];function qt(e,t){return jt.map(r=>{const n=e.getPropertyValue(r);return!n||n===\"none\"?null:((X||re)&&t.drawImageCount++,Ne(n,null,t,!0).then(a=>{!a||n===a||e.setProperty(r,a,e.getPropertyPriority(r))}))}).filter(Boolean)}function Vt(e,t){var i;const{ownerDocument:r,svgDefsElement:n}=t,a=(i=e.getAttribute(\"href\"))!=null?i:e.getAttribute(\"xlink:href\");if(!a)return[];const[s,o]=a.split(\"#\");if(o){const l=`#${o}`,u=r==null?void 0:r.querySelector(`svg ${l}`);if(s&&e.setAttribute(\"href\",l),n!=null&&n.querySelector(l))return[];if(u)return n==null||n.appendChild(u.cloneNode(!0)),[];if(s)return[H(t,{url:s,responseType:\"text\"}).then(c=>{n==null||n.insertAdjacentHTML(\"beforeend\",c)})]}return[]}function Re(e,t){const{tasks:r}=t;k(e)&&((_(e)||ce(e))&&r.push(...Wt(e,t)),Ke(e)&&r.push(...Vt(e,t))),V(e)&&r.push(...qt(e.style,t)),e.childNodes.forEach(n=>{Re(n,t)})}function Pe(e,t){return E(this,null,function*(){const r=yield x(e,t);if(k(r.node)&&q(r.node))return r.node;const{ownerDocument:n,log:a,tasks:s,svgStyleElement:o,svgDefsElement:i,svgStyles:l,font:u,progress:c,autoDestruct:f,onCloneNode:d,onEmbedNode:m,onCreateForeignObjectSvg:w}=r;a.time(\"clone node\");const p=yield oe(r.node,r,!0);if(o&&n){let v=\"\";l.forEach((I,P)=>{v+=`${I.join(`,\n`)} {\n ${P}\n}\n`}),o.appendChild(n.createTextNode(v))}a.timeEnd(\"clone node\"),d==null||d(p),u!==!1&&k(p)&&(a.time(\"embed web font\"),yield $t(p,r),a.timeEnd(\"embed web font\")),a.time(\"embed node\"),Re(p,r);const b=s.length;let g=0;const S=()=>E(this,null,function*(){for(;;){const v=s.pop();if(!v)break;try{yield v}catch(I){A(\"Failed to run task\",I)}c==null||c(++g,b)}});c==null||c(g,b),yield Promise.all([...Array(4)].map(S)),a.timeEnd(\"embed node\"),m==null||m(p);const y=Ht(p,r);return i&&y.insertBefore(i,y.children[0]),o&&y.insertBefore(o,y.children[0]),f&&Ae(r),w==null||w(y),y})}function Ht(e,t){const{width:r,height:n}=t,a=fe(r,n,e.ownerDocument),s=a.ownerDocument.createElementNS(a.namespaceURI,\"foreignObject\");return s.setAttributeNS(null,\"x\",\"0%\"),s.setAttributeNS(null,\"y\",\"0%\"),s.setAttributeNS(null,\"width\",\"100%\"),s.setAttributeNS(null,\"height\",\"100%\"),s.append(e),a.appendChild(s),a}function K(e,t){return E(this,null,function*(){var o;const r=yield x(e,t),n=yield Pe(r),a=de(n,r.isEnable(\"removeControlCharacter\"));r.autoDestruct||(r.svgStyleElement=ye(r.ownerDocument),r.svgDefsElement=(o=r.ownerDocument)==null?void 0:o.createElementNS(J,\"defs\"),r.svgStyles.clear());const s=U(a,n.ownerDocument);return yield pt(s,r)})}function zt(e,t){return E(this,null,function*(){const r=yield x(e,t),{log:n,type:a,quality:s,dpi:o}=r,i=yield K(r);n.time(\"canvas to blob\");const l=yield ut(i,a,s);if([\"image/png\",\"image/jpeg\"].includes(a)&&o){const u=yield mt(l.slice(0,33));let c=new Uint8Array(u);return a===\"image/png\"?c=ae(c,o):a===\"image/jpeg\"&&(c=C(c,o)),n.timeEnd(\"canvas to blob\"),new Blob([c,l.slice(33)],{type:a})}return n.timeEnd(\"canvas to blob\"),l})}function B(e,t){return E(this,null,function*(){const r=yield x(e,t),{log:n,quality:a,type:s,dpi:o}=r,i=yield K(r);n.time(\"canvas to data url\");let l=i.toDataURL(s,a);if([\"image/png\",\"image/jpeg\"].includes(s)&&o&&se&&Xe){const[u,c]=l.split(\",\");let f=0,d=!1;if(s===\"image/png\"){const y=He(c);y>=0?(f=Math.ceil((y+28)/3)*4,d=!0):f=33/3*4}else s===\"image/jpeg\"&&(f=18/3*4);const m=c.substring(0,f),w=c.substring(f),p=window.atob(m),b=new Uint8Array(p.length);for(let y=0;y<b.length;y++)b[y]=p.charCodeAt(y);const g=s===\"image/png\"?ae(b,o,d):C(b,o),S=window.btoa(String.fromCharCode(...g));l=[u,\",\",S,w].join(\"\")}return n.timeEnd(\"canvas to data url\"),l})}function Fe(e,t){return E(this,null,function*(){const r=yield x(e,t),{width:n,height:a,ownerDocument:s}=r,o=yield B(r),i=fe(n,a,s),l=i.ownerDocument.createElementNS(i.namespaceURI,\"image\");return l.setAttributeNS(null,\"href\",o),l.setAttributeNS(null,\"height\",\"100%\"),l.setAttributeNS(null,\"width\",\"100%\"),i.appendChild(l),de(i,r.isEnable(\"removeControlCharacter\"))})}function Xt(e,t){return E(this,null,function*(){const r=yield x(e,t),{ownerDocument:n,width:a,height:s,scale:o,type:i}=r,l=i===\"image/svg+xml\"?yield Fe(r):yield B(r),u=U(l,n);return u.width=Math.floor(a*o),u.height=Math.floor(s*o),u.style.width=`${a}px`,u.style.height=`${s}px`,u})}function Gt(e,t){return E(this,null,function*(){return B(yield x(e,L(D({},t),{type:\"image/jpeg\"})))})}function Yt(e,t){return E(this,null,function*(){const r=yield x(e,t),n=yield K(r);return n.getContext(\"2d\").getImageData(0,0,n.width,n.height).data})}function Jt(e,t){return E(this,null,function*(){return B(yield x(e,L(D({},t),{type:\"image/png\"})))})}function Kt(e,t){return E(this,null,function*(){return B(yield x(e,L(D({},t),{type:\"image/webp\"})))})}h.createContext=pe,h.destroyContext=Ae,h.domToBlob=zt,h.domToCanvas=K,h.domToDataUrl=B,h.domToForeignObjectSvg=Pe,h.domToImage=Xt,h.domToJpeg=Gt,h.domToPixel=Yt,h.domToPng=Jt,h.domToSvg=Fe,h.domToWebp=Kt,h.loadMedia=$,h.waitUntilLoad=ge,Object.defineProperty(h,Symbol.toStringTag,{value:\"Module\"})});\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"AlertNote\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Note\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"author\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Author\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"body\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bodyHtml\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"discussion\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"systemNoteIconName\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":196}};\n doc.loc.source = {\"body\":\"#import \\\"./author.fragment.graphql\\\"\\n\\nfragment AlertNote on Note {\\n id\\n author {\\n id\\n state\\n ...Author\\n }\\n body\\n bodyHtml\\n createdAt\\n discussion {\\n id\\n }\\n systemNoteIconName\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./author.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"AlertNote\"] = oneQuery(doc, \"AlertNote\");\n \n","import $ from 'jquery';\nimport Pikaday from 'pikaday';\nimport GfmAutoComplete from 'ee_else_ce/gfm_auto_complete';\nimport Autosave from '~/autosave';\nimport { newDate, toISODateFormat } from '~/lib/utils/datetime_utility';\nimport { queryToObject, objectToQuery } from '~/lib/utils/url_utility';\nimport UsersSelect from '~/users_select';\nimport ZenMode from '~/zen_mode';\nimport { detectAndConfirmSensitiveTokens, CONTENT_TYPE } from '~/lib/utils/secret_detection';\nimport { trackSavedUsingEditor } from '~/vue_shared/components/markdown/tracking';\nimport { EDITING_MODE_CONTENT_EDITOR } from '~/vue_shared/constants';\nimport { ISSUE_NOTEABLE_TYPE, MERGE_REQUEST_NOTEABLE_TYPE } from '~/notes/constants';\n\nconst MR_SOURCE_BRANCH = 'merge_request[source_branch]';\nconst MR_TARGET_BRANCH = 'merge_request[target_branch]';\nconst DATA_ISSUES_NEW_PATH = 'data-new-issue-path';\n\nexport function organizeQuery(obj, isFallbackKey = false) {\n if (!obj[MR_SOURCE_BRANCH] && !obj[MR_TARGET_BRANCH]) {\n return obj;\n }\n\n if (isFallbackKey) {\n return {\n [MR_SOURCE_BRANCH]: obj[MR_SOURCE_BRANCH],\n };\n }\n\n return {\n [MR_SOURCE_BRANCH]: obj[MR_SOURCE_BRANCH],\n [MR_TARGET_BRANCH]: obj[MR_TARGET_BRANCH],\n };\n}\n\nfunction format(searchTerm, isFallbackKey = false) {\n const queryObject = queryToObject(searchTerm, { legacySpacesDecode: true });\n const organizeQueryObject = organizeQuery(queryObject, isFallbackKey);\n const formattedQuery = objectToQuery(organizeQueryObject);\n\n return formattedQuery;\n}\n\nfunction getSearchTerm(newIssuePath) {\n const { search, pathname } = document.location;\n return newIssuePath === pathname ? '' : format(search);\n}\n\nfunction getFallbackKey() {\n const searchTerm = format(document.location.search, true);\n return ['autosave', document.location.pathname, searchTerm].join('/');\n}\n\nfunction getIssuableType() {\n if (document.location.pathname.includes('merge_requests')) return MERGE_REQUEST_NOTEABLE_TYPE;\n if (document.location.pathname.includes('issues')) return ISSUE_NOTEABLE_TYPE;\n // eslint-disable-next-line @gitlab/require-i18n-strings\n return 'Other';\n}\n\nexport default class IssuableForm {\n // eslint-disable-next-line max-params\n static addAutosave(map, id, element, searchTerm, fallbackKey) {\n if (!element) return;\n map.set(\n id,\n new Autosave(element, [document.location.pathname, searchTerm, id], `${fallbackKey}=${id}`),\n );\n }\n\n constructor(form) {\n if (form.length === 0) {\n return;\n }\n this.form = form;\n this.resetAutosave = this.resetAutosave.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n // prettier-ignore\n this.draftRegex = new RegExp(\n '^\\\\s*(' + // Line start, then any amount of leading whitespace\n '\\\\[draft\\\\]\\\\s*' + // [Draft] and any following whitespace\n '|draft:\\\\s*' + // Draft: and any following whitespace\n '|\\\\(draft\\\\)\\\\s*' + // (Draft) and any following whitespace\n ')+' + // At least one repeated match of the preceding parenthetical\n '\\\\s*', // Any amount of trailing whitespace\n 'i', // Match any case(s)\n );\n\n this.gfmAutoComplete = new GfmAutoComplete(\n gl.GfmAutoComplete && gl.GfmAutoComplete.dataSources,\n ).setup();\n this.usersSelect = new UsersSelect();\n this.reviewersSelect = new UsersSelect(undefined, '.js-reviewer-search');\n this.zenMode = new ZenMode();\n\n this.searchTerm = getSearchTerm(form[0].getAttribute(DATA_ISSUES_NEW_PATH));\n this.fallbackKey = getFallbackKey();\n this.titleField = this.form.find('input[name*=\"[title]\"]');\n this.descriptionField = () => this.form.find('textarea[name*=\"[description]\"]');\n this.submitButton = this.form.find('.js-issuable-submit-button');\n this.draftCheck = document.querySelector('input.js-toggle-draft');\n if (!this.titleField.length) return;\n\n this.autosaves = this.initAutosave();\n this.form.on('submit', this.handleSubmit);\n this.form.on('click', '.btn-cancel, .js-reset-autosave', this.resetAutosave);\n this.initDraft();\n\n const $issuableDueDate = $('#issuable-due-date');\n\n if ($issuableDueDate.length) {\n const calendar = new Pikaday({\n field: $issuableDueDate.get(0),\n theme: 'gl-datepicker-theme animate-picker',\n format: 'yyyy-mm-dd',\n container: $issuableDueDate.parent().get(0),\n parse: (dateString) => newDate(dateString),\n toString: (date) => toISODateFormat(date),\n onSelect: (dateText) => {\n $issuableDueDate.val(calendar.toString(dateText));\n if (this.autosaves.has('due_date')) this.autosaves.get('due_date').save();\n },\n firstDay: gon.first_day_of_week,\n });\n calendar.setDate(newDate($issuableDueDate.val()));\n }\n }\n\n initAutosave() {\n const autosaveMap = new Map();\n IssuableForm.addAutosave(\n autosaveMap,\n 'title',\n this.form.find('input[name*=\"[title]\"]').get(0),\n this.searchTerm,\n this.fallbackKey,\n );\n IssuableForm.addAutosave(\n autosaveMap,\n 'confidential',\n this.form.find('input:checkbox[name*=\"[confidential]\"]').get(0),\n this.searchTerm,\n this.fallbackKey,\n );\n IssuableForm.addAutosave(\n autosaveMap,\n 'due_date',\n this.form.find('input[name*=\"[due_date]\"]').get(0),\n this.searchTerm,\n this.fallbackKey,\n );\n\n return autosaveMap;\n }\n\n async handleSubmit(event) {\n event.preventDefault();\n\n trackSavedUsingEditor(\n localStorage.getItem('gl-markdown-editor-mode') === EDITING_MODE_CONTENT_EDITOR,\n getIssuableType(),\n );\n\n const form = event.target;\n const descriptionText = this.descriptionField().val();\n\n const confirmSubmit = await detectAndConfirmSensitiveTokens({\n content: descriptionText,\n contentType: CONTENT_TYPE.DESCRIPTION,\n });\n\n if (!confirmSubmit) {\n this.submitButton.removeAttr('disabled');\n this.submitButton.removeClass('disabled');\n return false;\n }\n\n form.submit();\n return this.resetAutosave();\n }\n\n resetAutosave() {\n this.autosaves.forEach((autosaveItem) => {\n autosaveItem?.reset();\n });\n }\n\n initDraft() {\n if (this.draftCheck) {\n this.draftCheck.addEventListener('click', () => this.writeDraftStatus());\n this.titleField.on('keyup blur', () => this.readDraftStatus());\n\n this.readDraftStatus();\n }\n }\n\n isMarkedDraft() {\n return this.draftRegex.test(this.titleField.val());\n }\n readDraftStatus() {\n this.draftCheck.checked = this.isMarkedDraft();\n }\n writeDraftStatus() {\n if (this.draftCheck.checked) {\n this.addDraft();\n } else {\n this.removeDraft();\n }\n }\n\n removeDraft() {\n return this.titleField.val(this.titleField.val().replace(this.draftRegex, ''));\n }\n\n addDraft() {\n this.titleField.val(`Draft: ${this.titleField.val()}`);\n }\n}\n","import IssuableForm from '~/issuable/issuable_form';\n\nexport default class IssuableFormEE extends IssuableForm {\n initAutosave() {\n const autoSaveMap = super.initAutosave();\n\n IssuableForm.addAutosave(\n autoSaveMap,\n 'weight',\n this.form.find('input[name*=\"[weight]\"]').get(0),\n this.searchTerm,\n this.fallbackKey,\n );\n\n return autoSaveMap;\n }\n}\n","import isEmpty from 'lodash/isEmpty';\nimport { maxZIndex, drawerVariants } from '../../../utils/constants';\nimport GlButton from '../button/button';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nvar script = {\n name: 'GlDrawer',\n components: {\n GlButton\n },\n props: {\n open: {\n type: Boolean,\n required: true\n },\n headerHeight: {\n type: String,\n required: false,\n default: ''\n },\n headerSticky: {\n type: Boolean,\n required: false,\n default: false\n },\n zIndex: {\n type: Number,\n required: false,\n default: maxZIndex\n },\n variant: {\n type: String,\n required: false,\n default: drawerVariants.default,\n validator: value => Object.keys(drawerVariants).includes(value)\n }\n },\n computed: {\n positionFromTop() {\n return !isEmpty(this.headerHeight) ? this.headerHeight : 0;\n },\n drawerStyles() {\n const styles = {\n top: this.positionFromTop,\n zIndex: this.zIndex\n };\n if (this.positionFromTop) {\n styles.maxHeight = `calc(100vh - ${this.positionFromTop})`;\n }\n return styles;\n },\n drawerHeaderStyles() {\n return {\n zIndex: this.headerSticky ? maxZIndex : null\n };\n },\n shouldRenderFooter() {\n // eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots\n return Boolean(this.$slots.footer);\n },\n variantClass() {\n // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility\n return `gl-drawer-${this.variant}`;\n }\n },\n watch: {\n open: {\n immediate: true,\n handler(open) {\n if (open) {\n document.addEventListener('keydown', this.handleEscape);\n } else {\n document.removeEventListener('keydown', this.handleEscape);\n }\n }\n }\n },\n beforeDestroy() {\n document.removeEventListener('keydown', this.handleEscape);\n },\n methods: {\n emitOpened() {\n /**\n * Emits when the opening animation has finished.\n * @event opened\n */\n this.$emit('opened');\n },\n handleEscape(e) {\n const ESC = 27;\n if (this.open && e.keyCode === ESC) {\n this.$emit('close');\n }\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"gl-drawer\"},on:{\"after-enter\":_vm.emitOpened}},[(_vm.open)?_c('aside',{staticClass:\"gl-drawer\",class:_vm.variantClass,style:(_vm.drawerStyles)},[_c('div',{staticClass:\"gl-drawer-header\",class:{ 'gl-drawer-header-sticky': _vm.headerSticky },style:(_vm.drawerHeaderStyles)},[_c('div',{staticClass:\"gl-drawer-title\"},[_vm._t(\"title\"),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-drawer-close-button\",attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"icon\":\"close\",\"aria-label\":\"Close drawer\"},on:{\"click\":function($event){return _vm.$emit('close')}}})],2),_vm._v(\" \"),_vm._t(\"header\")],2),_vm._v(\" \"),_c('div',{staticClass:\"gl-drawer-body\",class:{ 'gl-drawer-body-scrim': !_vm.shouldRenderFooter }},[_vm._t(\"default\")],2),_vm._v(\" \"),(_vm.shouldRenderFooter)?_c('div',{staticClass:\"gl-drawer-footer gl-drawer-footer-sticky\",class:{ 'gl-drawer-body-scrim-on-footer': _vm.shouldRenderFooter },style:({ zIndex: _vm.zIndex })},[_vm._t(\"footer\")],2):_vm._e()]):_vm._e()])};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"archiveDesign\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filenames\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"designManagementDelete\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"filenames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filenames\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"version\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"VersionListItem\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":288}};\n doc.loc.source = {\"body\":\"#import \\\"./fragments/version.fragment.graphql\\\"\\n\\nmutation archiveDesign($filenames: [String!]!, $projectPath: ID!, $iid: ID!) {\\n designManagementDelete(input: { projectPath: $projectPath, iid: $iid, filenames: $filenames }) {\\n version {\\n ...VersionListItem\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./fragments/version.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"archiveDesign\"] = oneQuery(doc, \"archiveDesign\");\n \n",";(function (window) {\n \"use strict\";\n\n var lastTimer = -1;\n\n var install = function (Visibility) {\n\n // Run callback every `interval` milliseconds if page is visible and\n // every `hiddenInterval` milliseconds if page is hidden.\n //\n // Visibility.every(60 * 1000, 5 * 60 * 1000, function () {\n // checkNewMails();\n // });\n //\n // You can skip `hiddenInterval` and callback will be called only if\n // page is visible.\n //\n // Visibility.every(1000, function () {\n // updateCountdown();\n // });\n //\n // It is analog of `setInterval(callback, interval)` but use visibility\n // state.\n //\n // It return timer ID, that you can use in `Visibility.stop(id)` to stop\n // timer (`clearInterval` analog).\n // Warning: timer ID is different from interval ID from `setInterval`,\n // so don’t use it in `clearInterval`.\n //\n // On change state from hidden to visible timers will be execute.\n Visibility.every = function (interval, hiddenInterval, callback) {\n Visibility._time();\n\n if ( !callback ) {\n callback = hiddenInterval;\n hiddenInterval = null;\n }\n\n lastTimer += 1;\n var number = lastTimer;\n\n Visibility._timers[number] = {\n visible: interval,\n hidden: hiddenInterval,\n callback: callback\n };\n Visibility._run(number, false);\n\n if ( Visibility.isSupported() ) {\n Visibility._listen();\n }\n return number;\n };\n\n // Stop timer from `every` method by it ID (`every` method return it).\n //\n // slideshow = Visibility.every(5 * 1000, function () {\n // changeSlide();\n // });\n // $('.stopSlideshow').click(function () {\n // Visibility.stop(slideshow);\n // });\n Visibility.stop = function(id) {\n if ( !Visibility._timers[id] ) {\n return false;\n }\n Visibility._stop(id);\n delete Visibility._timers[id];\n return true;\n };\n\n // Callbacks and intervals added by `every` method.\n Visibility._timers = { };\n\n // Initialize variables on page loading.\n Visibility._time = function () {\n if ( Visibility._timed ) {\n return;\n }\n Visibility._timed = true;\n Visibility._wasHidden = Visibility.hidden();\n\n Visibility.change(function () {\n Visibility._stopRun();\n Visibility._wasHidden = Visibility.hidden();\n });\n };\n\n // Try to run timer from every method by it’s ID. It will be use\n // `interval` or `hiddenInterval` depending on visibility state.\n // If page is hidden and `hiddenInterval` is null,\n // it will not run timer.\n //\n // Argument `runNow` say, that timers must be execute now too.\n Visibility._run = function (id, runNow) {\n var interval,\n timer = Visibility._timers[id];\n\n if ( Visibility.hidden() ) {\n if ( null === timer.hidden ) {\n return;\n }\n interval = timer.hidden;\n } else {\n interval = timer.visible;\n }\n\n var runner = function () {\n timer.last = new Date();\n timer.callback.call(window);\n }\n\n if ( runNow ) {\n var now = new Date();\n var last = now - timer.last ;\n\n if ( interval > last ) {\n timer.delay = setTimeout(function () {\n timer.id = setInterval(runner, interval);\n runner();\n }, interval - last);\n } else {\n timer.id = setInterval(runner, interval);\n runner();\n }\n\n } else {\n timer.id = setInterval(runner, interval);\n }\n };\n\n // Stop timer from `every` method by it’s ID.\n Visibility._stop = function (id) {\n var timer = Visibility._timers[id];\n clearInterval(timer.id);\n clearTimeout(timer.delay);\n delete timer.id;\n delete timer.delay;\n };\n\n // Listener for `visibilitychange` event.\n Visibility._stopRun = function (event) {\n var isHidden = Visibility.hidden(),\n wasHidden = Visibility._wasHidden;\n\n if ( (isHidden && !wasHidden) || (!isHidden && wasHidden) ) {\n for ( var i in Visibility._timers ) {\n Visibility._stop(i);\n Visibility._run(i, !isHidden);\n }\n }\n };\n\n return Visibility;\n }\n\n if ( typeof(module) != 'undefined' && module.exports ) {\n module.exports = install(require('./visibility.core'));\n } else {\n install(window.Visibility)\n }\n\n})(window);\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-disclosure-dropdown',{staticClass:\"task-list-item-actions-wrapper\",attrs:{\"category\":\"tertiary\",\"icon\":\"ellipsis_v\",\"no-caret\":\"\",\"placement\":\"bottom-end\",\"text-sr-only\":\"\",\"toggle-class\":\"task-list-item-actions gl-opacity-0 !gl-p-2\",\"toggle-text\":_vm.s__('WorkItem|Task actions')}},[(_vm.showConvertToTaskItem)?_c('gl-disclosure-dropdown-item',{staticClass:\"!gl-ml-2\",attrs:{\"data-testid\":\"convert\"},on:{\"action\":_vm.convertToTask},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.s__('WorkItem|Convert to child item'))+\"\\n \")]},proxy:true}],null,false,3516708547)}):_vm._e(),_vm._v(\" \"),_c('gl-disclosure-dropdown-item',{staticClass:\"!gl-ml-2\",attrs:{\"data-testid\":\"delete\"},on:{\"action\":_vm.deleteTaskListItem},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('span',{staticClass:\"gl-text-red-500\"},[_vm._v(_vm._s(_vm.__('Delete')))])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlDisclosureDropdown, GlDisclosureDropdownItem } from '@gitlab/ui';\nimport { TYPE_INCIDENT, TYPE_ISSUE } from '~/issues/constants';\nimport { WORK_ITEM_TYPE_VALUE_EPIC, WORK_ITEM_TYPE_VALUE_ISSUE } from '~/work_items/constants';\nimport eventHub from '../event_hub';\n\nconst allowedTypes = [\n TYPE_INCIDENT,\n TYPE_ISSUE,\n WORK_ITEM_TYPE_VALUE_EPIC,\n WORK_ITEM_TYPE_VALUE_ISSUE,\n];\n\nexport default {\n components: {\n GlDisclosureDropdown,\n GlDisclosureDropdownItem,\n },\n inject: ['id', 'issuableType'],\n computed: {\n showConvertToTaskItem() {\n return allowedTypes.includes(this.issuableType);\n },\n },\n methods: {\n convertToTask() {\n eventHub.$emit('convert-task-list-item', this.eventPayload());\n },\n deleteTaskListItem() {\n eventHub.$emit('delete-task-list-item', this.eventPayload());\n },\n eventPayload() {\n return {\n id: this.id,\n sourcepos: this.$el.closest('li').dataset.sourcepos,\n };\n },\n },\n};\n</script>\n\n<template>\n <gl-disclosure-dropdown\n class=\"task-list-item-actions-wrapper\"\n category=\"tertiary\"\n icon=\"ellipsis_v\"\n no-caret\n placement=\"bottom-end\"\n text-sr-only\n toggle-class=\"task-list-item-actions gl-opacity-0 !gl-p-2\"\n :toggle-text=\"s__('WorkItem|Task actions')\"\n >\n <gl-disclosure-dropdown-item\n v-if=\"showConvertToTaskItem\"\n class=\"!gl-ml-2\"\n data-testid=\"convert\"\n @action=\"convertToTask\"\n >\n <template #list-item>\n {{ s__('WorkItem|Convert to child item') }}\n </template>\n </gl-disclosure-dropdown-item>\n <gl-disclosure-dropdown-item class=\"!gl-ml-2\" data-testid=\"delete\" @action=\"deleteTaskListItem\">\n <template #list-item>\n <span class=\"gl-text-red-500\">{{ __('Delete') }}</span>\n </template>\n </gl-disclosure-dropdown-item>\n </gl-disclosure-dropdown>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./task_list_item_actions.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./task_list_item_actions.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./task_list_item_actions.vue?vue&type=template&id=5a1059b9\"\nimport script from \"./task_list_item_actions.vue?vue&type=script&lang=js\"\nexport * from \"./task_list_item_actions.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"projectLabels\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTerm\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTerm\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTerm\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestorGroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":289}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/label.fragment.graphql\\\"\\n\\nquery projectLabels($fullPath: ID!, $searchTerm: String) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n labels(searchTerm: $searchTerm, includeAncestorGroups: true) {\\n nodes {\\n ...Label\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/label.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"projectLabels\"] = oneQuery(doc, \"projectLabels\");\n \n","/**\n * This method parses raw markdown text in GFM input field and toggles checkboxes\n * based on checkboxChecked property.\n *\n * @param {Object} object containing rawMarkdown, sourcepos, checkboxChecked properties\n * @returns String with toggled checkboxes\n */\nexport const toggleMarkCheckboxes = ({ rawMarkdown, sourcepos, checkboxChecked }) => {\n // Extract the description text\n const [startRange] = sourcepos.split('-');\n let [startRow] = startRange.split(':');\n startRow = Number(startRow) - 1;\n\n // Mark/Unmark the checkboxes\n return rawMarkdown\n .split('\\n')\n .map((row, index) => {\n if (startRow === index) {\n if (checkboxChecked) {\n return row.replace(/\\[ \\]/, '[x]');\n }\n return row.replace(/\\[[x~]\\]/i, '[ ]');\n }\n return row;\n })\n .join('\\n');\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"awards js-awards-block\"},[_vm._l((_vm.groupedAwards),function(awardList){return _c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],key:awardList.name,staticClass:\"gl-my-2 gl-mr-3\",class:awardList.classes,attrs:{\"title\":awardList.title,\"data-emoji-name\":awardList.name,\"data-testid\":\"award-button\"},on:{\"click\":function($event){return _vm.handleAward(awardList.name)}},scopedSlots:_vm._u([{key:\"emoji\",fn:function(){return [_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(awardList.html),expression:\"awardList.html\",arg:_vm.$options.safeHtmlConfig}],staticClass:\"award-emoji-block\",attrs:{\"data-testid\":\"award-html\"}})]},proxy:true}],null,true)},[_vm._v(\" \"),_c('span',{staticClass:\"js-counter\"},[_vm._v(_vm._s(awardList.list.length))])])}),_vm._v(\" \"),(_vm.canAwardEmoji)?_c('div',{staticClass:\"award-menu-holder gl-my-2\"},[_c('emoji-picker',{attrs:{\"right\":false,\"data-testid\":\"emoji-picker\"},on:{\"click\":_vm.handleAward,\"shown\":function($event){return _vm.setIsMenuOpen(true)},\"hidden\":function($event){return _vm.setIsMenuOpen(false)}}})],1):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlButton, GlTooltipDirective } from '@gitlab/ui';\nimport { groupBy } from 'lodash';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport EmojiPicker from '~/emoji/components/picker.vue';\nimport { __, sprintf } from '~/locale';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { glEmojiTag } from '~/emoji';\nimport { EMOJI_THUMBS_UP, EMOJI_THUMBS_DOWN } from '~/emoji/constants';\n\n// Internal constant, specific to this component, used when no `currentUserId` is given\nconst NO_USER_ID = -1;\nconst TOOLTIP_NAME_COUNT = 10;\n\n// Make sure the right capizalization is used depending on where you appear in the list\nconst insertYou = (index) => (index === 0 ? __('You') : __('you'));\n\nexport default {\n components: {\n GlButton,\n EmojiPicker,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n SafeHtml,\n },\n mixins: [glFeatureFlagsMixin()],\n props: {\n awards: {\n type: Array,\n required: true,\n },\n canAwardEmoji: {\n type: Boolean,\n required: true,\n },\n currentUserId: {\n type: Number,\n required: false,\n default: NO_USER_ID,\n },\n defaultAwards: {\n type: Array,\n required: false,\n default: () => [],\n },\n selectedClass: {\n type: String,\n required: false,\n default: 'selected',\n },\n },\n data() {\n return {\n isMenuOpen: false,\n };\n },\n computed: {\n groupedDefaultAwards() {\n return this.defaultAwards.reduce((obj, key) => Object.assign(obj, { [key]: [] }), {});\n },\n groupedAwards() {\n const { thumbsup, thumbsdown, ...rest } = {\n ...this.groupedDefaultAwards,\n ...groupBy(this.awards, (x) => x.name),\n };\n\n return [\n ...(thumbsup ? [this.createAwardList(EMOJI_THUMBS_UP, thumbsup)] : []),\n ...(thumbsdown ? [this.createAwardList(EMOJI_THUMBS_DOWN, thumbsdown)] : []),\n ...Object.entries(rest).map(([name, list]) => this.createAwardList(name, list)),\n ];\n },\n isAuthoredByMe() {\n return this.noteAuthorId === this.currentUserId;\n },\n },\n mounted() {\n this.virtualScrollerItem = this.$el.closest('.vue-recycle-scroller__item-view');\n },\n methods: {\n getAwardClassBindings(awardList) {\n return {\n [this.selectedClass]: this.hasReactionByCurrentUser(awardList),\n disabled: this.currentUserId === NO_USER_ID,\n };\n },\n hasReactionByCurrentUser(awardList) {\n if (this.currentUserId === NO_USER_ID) {\n return false;\n }\n\n return awardList.some((award) => award.user.id === this.currentUserId);\n },\n createAwardList(name, list) {\n return {\n name,\n list,\n title: this.getAwardListTitle(list, name),\n classes: this.getAwardClassBindings(list),\n html: glEmojiTag(name),\n };\n },\n getAwardListTitle(awardsList, name) {\n if (!awardsList.length) {\n return '';\n }\n\n const awardList = awardsList;\n\n // Make sure current user shows in the list if there are too many reactions to list all users\n if (awardList.length > TOOLTIP_NAME_COUNT && this.hasReactionByCurrentUser(awardList)) {\n const currentUserIndex = awardList.findIndex(\n (award) => award.user.id === this.currentUserId,\n );\n if (currentUserIndex > TOOLTIP_NAME_COUNT - 1) {\n const currentUser = awardList[currentUserIndex];\n awardList.splice(currentUserIndex, 1);\n awardList.splice(TOOLTIP_NAME_COUNT - 1, 0, currentUser);\n }\n }\n\n // Get only TOOLTIP_NAME_COUNT usernames to show in tooltip text.\n const namesToShow = awardList\n .map(({ user }, index) => (user.id === this.currentUserId ? insertYou(index) : user.name)) // Replace your own username with \"You\" or \"you\"\n .slice(0, TOOLTIP_NAME_COUNT); // Only take the first TOOLTIP_NAME_COUNT items\n\n // Get the remaining list to use in `and x more` text.\n const remainingAwardList = awardList.slice(TOOLTIP_NAME_COUNT, awardList.length);\n\n let title = '';\n\n // We have 10+ awarded user, join them with comma and add `and x more`.\n if (remainingAwardList.length) {\n title = sprintf(\n __(`%{listToShow}, and %{awardsListLength} more`),\n {\n listToShow: namesToShow.join(', '),\n awardsListLength: remainingAwardList.length,\n },\n false,\n );\n } else if (namesToShow.length > 1) {\n // Join all names with comma but not the last one, it will be added with and text.\n title = namesToShow.slice(0, namesToShow.length - 1).join(', ');\n // If we have more than 2 users we need an extra comma before and text.\n title += namesToShow.length > 2 ? ',' : '';\n title += sprintf(__(` and %{sliced}`), { sliced: namesToShow.slice(-1) }, false); // Append and text\n } else {\n // We have only 2 users so join them with and.\n title = namesToShow.join(__(' and '));\n }\n\n return title + sprintf(__(' reacted with :%{name}:'), { name });\n },\n handleAward(awardName) {\n if (!this.canAwardEmoji) {\n return;\n }\n\n this.$emit('award', awardName);\n\n if (document.activeElement) document.activeElement.blur();\n },\n setIsMenuOpen(menuOpen) {\n this.isMenuOpen = menuOpen;\n\n if (this.virtualScrollerItem) {\n this.virtualScrollerItem.style.zIndex = this.isMenuOpen ? 1 : null;\n }\n },\n },\n safeHtmlConfig: { ADD_TAGS: ['gl-emoji'] },\n};\n</script>\n\n<template>\n <div class=\"awards js-awards-block\">\n <gl-button\n v-for=\"awardList in groupedAwards\"\n :key=\"awardList.name\"\n v-gl-tooltip\n class=\"gl-my-2 gl-mr-3\"\n :class=\"awardList.classes\"\n :title=\"awardList.title\"\n :data-emoji-name=\"awardList.name\"\n data-testid=\"award-button\"\n @click=\"handleAward(awardList.name)\"\n >\n <template #emoji>\n <span\n v-safe-html:[$options.safeHtmlConfig]=\"awardList.html\"\n class=\"award-emoji-block\"\n data-testid=\"award-html\"\n ></span>\n </template>\n <span class=\"js-counter\">{{ awardList.list.length }}</span>\n </gl-button>\n <div v-if=\"canAwardEmoji\" class=\"award-menu-holder gl-my-2\">\n <emoji-picker\n :right=\"false\"\n data-testid=\"emoji-picker\"\n @click=\"handleAward\"\n @shown=\"setIsMenuOpen(true)\"\n @hidden=\"setIsMenuOpen(false)\"\n />\n </div>\n </div>\n</template>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./awards_list.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./awards_list.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./awards_list.vue?vue&type=template&id=5c2fc0b8\"\nimport script from \"./awards_list.vue?vue&type=script&lang=js\"\nexport * from \"./awards_list.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestTimeTrackingFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"humanTotalTimeSpent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalTimeSpent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelogs\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"TimelogFragment\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":252}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/issuable_timelogs.fragment.graphql\\\"\\n\\nfragment MergeRequestTimeTrackingFragment on MergeRequest {\\n __typename\\n id\\n humanTotalTimeSpent\\n totalTimeSpent\\n timelogs {\\n nodes {\\n ...TimelogFragment\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/issuable_timelogs.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"MergeRequestTimeTrackingFragment\"] = oneQuery(doc, \"MergeRequestTimeTrackingFragment\");\n \n","export default (buttonSelector, fileSelector) => {\n const btn = document.querySelector(buttonSelector);\n const fileInput = document.querySelector(fileSelector);\n\n if (!btn || !fileInput) return;\n\n const form = btn.closest('form');\n\n btn.addEventListener('click', () => {\n fileInput.click();\n });\n\n fileInput.addEventListener('change', () => {\n form.querySelector('.js-filename').textContent = fileInput.value.replace(/^.*[\\\\\\/]/, ''); // eslint-disable-line no-useless-escape\n });\n};\n\nexport const getFilename = (file) => {\n let fileName;\n if (file) {\n fileName = file.name;\n }\n\n return fileName;\n};\n\nexport const validateImageName = (file) => {\n const fileName = file.name ? file.name : 'image.png';\n const legalImageRegex = /^[\\w.\\-+]+\\.(png|jpg|jpeg|gif|bmp|tiff|ico|webp)$/;\n return legalImageRegex.test(fileName) ? fileName : 'image.png';\n};\n\nexport const validateFileFromAllowList = (fileName, allowList) => {\n const parts = fileName.split('.');\n const ext = `.${parts[parts.length - 1]}`;\n\n return allowList.includes(ext);\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardListShared\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardList\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"position\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"listType\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"collapsed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"label\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"textColor\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"descriptionHtml\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":180}};\n doc.loc.source = {\"body\":\"fragment BoardListShared on BoardList {\\n id\\n title\\n position\\n listType\\n collapsed\\n label {\\n id\\n title\\n color\\n textColor\\n description\\n descriptionHtml\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"BoardListShared\"] = oneQuery(doc, \"BoardListShared\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"abuseReportLabelsQuery\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTerm\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"labels\"},\"name\":{\"kind\":\"Name\",\"value\":\"abuseReportLabels\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTerm\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTerm\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"textColor\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":198}};\n doc.loc.source = {\"body\":\"query abuseReportLabelsQuery($searchTerm: String) {\\n labels: abuseReportLabels(searchTerm: $searchTerm) {\\n nodes {\\n id\\n title\\n description\\n color\\n textColor\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"abuseReportLabelsQuery\"] = oneQuery(doc, \"abuseReportLabelsQuery\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"data-track-action\":\"click_button\",\"data-track-label\":\"reply_comment_button\",\"category\":\"tertiary\",\"icon\":\"reply\",\"title\":_vm.$options.i18n.buttonText,\"aria-label\":_vm.$options.i18n.buttonText},on:{\"click\":function($event){return _vm.$emit('startReplying')}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./reply_button.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./reply_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective, GlButton } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n i18n: {\n buttonText: __('Reply to comment'),\n },\n name: 'ReplyButton',\n components: {\n GlButton,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n};\n</script>\n\n<template>\n <gl-button\n v-gl-tooltip\n data-track-action=\"click_button\"\n data-track-label=\"reply_comment_button\"\n category=\"tertiary\"\n icon=\"reply\"\n :title=\"$options.i18n.buttonText\"\n :aria-label=\"$options.i18n.buttonText\"\n @click=\"$emit('startReplying')\"\n />\n</template>\n","import { render, staticRenderFns } from \"./reply_button.vue?vue&type=template&id=1546171c\"\nimport script from \"./reply_button.vue?vue&type=script&lang=js\"\nexport * from \"./reply_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { BFormRadio } from '../../../../vendor/bootstrap-vue/src/components/form-radio/form-radio';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst {\n model\n} = BFormRadio.options;\nvar script = {\n name: 'GlFormRadio',\n components: {\n BFormRadio\n },\n inheritAttrs: false,\n model: {\n prop: model.prop,\n event: model.event\n },\n props: {\n /**\n * Whether the radio is checked\n */\n checked: {\n type: [String, Number, Boolean, Object],\n required: false,\n default: false\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-radio',_vm._b({staticClass:\"gl-form-radio\",attrs:{\"checked\":_vm.checked},on:{\"input\":function($event){return _vm.$emit('input', $event)},\"change\":function($event){return _vm.$emit('change', $event)}}},'b-form-radio',_vm.$attrs,false),[_vm._t(\"default\"),_vm._v(\" \"),(_vm.$scopedSlots.help)?_c('p',{staticClass:\"help-text\"},[_vm._t(\"help\")],2):_vm._e()],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import { trimFirstCharOfLineContent } from '~/diffs/store/utils'; // eslint-disable-line import/no-deprecated\nimport createGqClient, { fetchPolicies } from '~/lib/graphql';\nimport AjaxCache from '~/lib/utils/ajax_cache';\nimport { sprintf, __ } from '~/locale';\n\n// factory function because global flag makes RegExp stateful\nconst createQuickActionsRegex = () => /^\\/\\w+.*$/gm;\n\nexport const findNoteObjectById = (notes, id) => notes.filter((n) => n.id === id)[0];\n\nexport const getQuickActionText = (note) => {\n let text = __('Applying command');\n const quickActions = AjaxCache.get(gl.GfmAutoComplete.dataSources.commands) || [];\n\n const executedCommands = quickActions.filter((command) => {\n const commandRegex = new RegExp(`/${command.name}`);\n return commandRegex.test(note);\n });\n\n if (executedCommands && executedCommands.length) {\n if (executedCommands.length > 1) {\n text = __('Applying multiple commands');\n } else {\n const commandDescription = executedCommands[0].description.toLowerCase();\n text = sprintf(__('Applying command to %{commandDescription}'), { commandDescription });\n }\n }\n\n return text;\n};\n\nexport const hasQuickActions = (note) => createQuickActionsRegex().test(note);\n\nexport const stripQuickActions = (note) => note.replace(createQuickActionsRegex(), '').trim();\n\nexport const prepareDiffLines = (diffLines) =>\n diffLines.map((line) => ({ ...trimFirstCharOfLineContent(line) })); // eslint-disable-line import/no-deprecated\n\nexport const gqClient = createGqClient(\n {},\n {\n fetchPolicy: fetchPolicies.NO_CACHE,\n },\n);\n","import $ from 'jquery';\nimport Vue from 'vue';\nimport { debounce } from 'lodash';\nimport actionCable from '~/actioncable_consumer';\nimport Api from '~/api';\nimport { createAlert, VARIANT_INFO } from '~/alert';\nimport { EVENT_ISSUABLE_VUE_APP_CHANGE } from '~/issuable/constants';\nimport { STATUS_CLOSED, STATUS_REOPENED, TYPE_ISSUE } from '~/issues/constants';\nimport axios from '~/lib/utils/axios_utils';\nimport { __, sprintf } from '~/locale';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport { confidentialWidget } from '~/sidebar/components/confidential/sidebar_confidentiality_widget.vue';\nimport updateIssueLockMutation from '~/sidebar/queries/update_issue_lock.mutation.graphql';\nimport updateMergeRequestLockMutation from '~/sidebar/queries/update_merge_request_lock.mutation.graphql';\nimport loadAwardsHandler from '~/awards_handler';\nimport { isInMRPage } from '~/lib/utils/common_utils';\nimport { mergeUrlParams } from '~/lib/utils/url_utility';\nimport sidebarTimeTrackingEventHub from '~/sidebar/event_hub';\nimport TaskList from '~/task_list';\nimport mrWidgetEventHub from '~/vue_merge_request_widget/event_hub';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_NOTE } from '~/graphql_shared/constants';\nimport notesEventHub from '../event_hub';\n\nimport promoteTimelineEvent from '../graphql/promote_timeline_event.mutation.graphql';\n\nimport * as constants from '../constants';\nimport * as types from './mutation_types';\nimport * as utils from './utils';\n\nexport const updateLockedAttribute = ({ commit, getters }, { locked, fullPath }) => {\n const { iid, targetType } = getters.getNoteableData;\n\n return utils.gqClient\n .mutate({\n mutation:\n targetType === TYPE_ISSUE ? updateIssueLockMutation : updateMergeRequestLockMutation,\n variables: {\n input: {\n projectPath: fullPath,\n iid: String(iid),\n locked,\n },\n },\n })\n .then(({ data }) => {\n const discussionLocked =\n targetType === TYPE_ISSUE\n ? data.issueSetLocked.issue.discussionLocked\n : data.mergeRequestSetLocked.mergeRequest.discussionLocked;\n\n commit(types.SET_ISSUABLE_LOCK, discussionLocked);\n });\n};\n\nexport const expandDiscussion = ({ commit, dispatch }, data) => {\n if (data.discussionId) {\n dispatch('diffs/renderFileForDiscussionId', data.discussionId, { root: true });\n }\n\n commit(types.EXPAND_DISCUSSION, data);\n};\n\nexport const collapseDiscussion = ({ commit }, data) => commit(types.COLLAPSE_DISCUSSION, data);\n\nexport const setNotesData = ({ commit }, data) => commit(types.SET_NOTES_DATA, data);\n\nexport const setNoteableData = ({ commit }, data) => commit(types.SET_NOTEABLE_DATA, data);\n\nexport const setConfidentiality = ({ commit }, data) => commit(types.SET_ISSUE_CONFIDENTIAL, data);\n\nexport const setUserData = ({ commit }, data) => commit(types.SET_USER_DATA, data);\n\nexport const setLastFetchedAt = ({ commit }, data) => commit(types.SET_LAST_FETCHED_AT, data);\n\nexport const setInitialNotes = ({ commit }, discussions) =>\n commit(types.ADD_OR_UPDATE_DISCUSSIONS, discussions);\n\nexport const setTargetNoteHash = ({ commit }, data) => commit(types.SET_TARGET_NOTE_HASH, data);\n\nexport const setNotesFetchedState = ({ commit }, state) =>\n commit(types.SET_NOTES_FETCHED_STATE, state);\n\nexport const toggleDiscussion = ({ commit }, data) => commit(types.TOGGLE_DISCUSSION, data);\n\nexport const toggleAllDiscussions = ({ commit, getters }) => {\n const expanded = getters.allDiscussionsExpanded;\n commit(types.SET_EXPAND_ALL_DISCUSSIONS, !expanded);\n};\n\nexport const fetchDiscussions = (\n { commit, dispatch, getters },\n { path, filter, persistFilter },\n) => {\n let config =\n filter !== undefined\n ? { params: { notes_filter: filter, persist_filter: persistFilter } }\n : null;\n\n if (getters.noteableType === constants.MERGE_REQUEST_NOTEABLE_TYPE) {\n config = { params: { notes_filter: 0, persist_filter: false } };\n }\n\n if (\n getters.noteableType === constants.ISSUE_NOTEABLE_TYPE ||\n getters.noteableType === constants.MERGE_REQUEST_NOTEABLE_TYPE\n ) {\n return dispatch('fetchDiscussionsBatch', { path, config, perPage: 20 });\n }\n\n return axios.get(path, config).then(({ data }) => {\n commit(types.ADD_OR_UPDATE_DISCUSSIONS, data);\n commit(types.SET_FETCHING_DISCUSSIONS, false);\n\n dispatch('updateResolvableDiscussionsCounts');\n });\n};\n\nexport const fetchNotes = ({ dispatch, getters }) => {\n if (getters.isFetching) return null;\n\n dispatch('setFetchingState', true);\n\n return dispatch('fetchDiscussions', getters.getFetchDiscussionsConfig)\n .then(() => dispatch('initPolling'))\n .then(() => {\n dispatch('setLoadingState', false);\n dispatch('setNotesFetchedState', true);\n notesEventHub.$emit('fetchedNotesData');\n dispatch('setFetchingState', false);\n })\n .catch(() => {\n dispatch('setLoadingState', false);\n dispatch('setNotesFetchedState', true);\n createAlert({\n message: __('Something went wrong while fetching comments. Please try again.'),\n });\n });\n};\n\nexport const initPolling = ({ state, dispatch, getters, commit }) => {\n if (state.isPollingInitialized) {\n return;\n }\n\n dispatch('setLastFetchedAt', getters.getNotesDataByProp('lastFetchedAt'));\n\n const debouncedFetchUpdatedNotes = debounce(() => {\n dispatch('fetchUpdatedNotes');\n }, constants.FETCH_UPDATED_NOTES_DEBOUNCE_TIMEOUT);\n\n actionCable.subscriptions.create(\n {\n channel: 'Noteable::NotesChannel',\n project_id: state.notesData.projectId,\n group_id: state.notesData.groupId,\n noteable_type: state.notesData.noteableType,\n noteable_id: state.notesData.noteableId,\n },\n {\n connected() {\n dispatch('fetchUpdatedNotes');\n },\n received(data) {\n if (data.event === 'updated') {\n debouncedFetchUpdatedNotes();\n }\n },\n },\n );\n\n commit(types.SET_IS_POLLING_INITIALIZED, true);\n};\n\nexport const fetchDiscussionsBatch = ({ commit, dispatch }, { path, config, cursor, perPage }) => {\n const params = { ...config?.params, per_page: perPage };\n\n if (cursor) {\n params.cursor = cursor;\n }\n\n return axios.get(path, { params }).then(({ data, headers }) => {\n commit(types.ADD_OR_UPDATE_DISCUSSIONS, data);\n\n if (headers && headers['x-next-page-cursor']) {\n const nextConfig = { ...config };\n\n if (config?.params?.persist_filter) {\n delete nextConfig.params.notes_filter;\n delete nextConfig.params.persist_filter;\n }\n\n return dispatch('fetchDiscussionsBatch', {\n path,\n config: nextConfig,\n cursor: headers['x-next-page-cursor'],\n perPage: Math.min(Math.round(perPage * 1.5), 100),\n });\n }\n\n commit(types.SET_DONE_FETCHING_BATCH_DISCUSSIONS, true);\n commit(types.SET_FETCHING_DISCUSSIONS, false);\n dispatch('updateResolvableDiscussionsCounts');\n\n return undefined;\n });\n};\n\nexport const updateDiscussion = ({ commit, state }, discussion) => {\n if (discussion == null) return null;\n\n commit(types.UPDATE_DISCUSSION, discussion);\n\n return utils.findNoteObjectById(state.discussions, discussion.id);\n};\n\nexport const setDiscussionSortDirection = ({ commit }, { direction, persist = true }) => {\n commit(types.SET_DISCUSSIONS_SORT, { direction, persist });\n};\n\nexport const setTimelineView = ({ commit }, enabled) => {\n commit(types.SET_TIMELINE_VIEW, enabled);\n};\n\nexport const setSelectedCommentPosition = ({ commit }, position) => {\n commit(types.SET_SELECTED_COMMENT_POSITION, position);\n};\n\nexport const setSelectedCommentPositionHover = ({ commit }, position) => {\n commit(types.SET_SELECTED_COMMENT_POSITION_HOVER, position);\n};\n\nexport const removeNote = ({ commit, dispatch, state }, note) => {\n const discussion = state.discussions.find(({ id }) => id === note.discussion_id);\n\n commit(types.DELETE_NOTE, note);\n\n dispatch('updateMergeRequestWidget');\n dispatch('updateResolvableDiscussionsCounts');\n\n if (isInMRPage()) {\n dispatch('diffs/removeDiscussionsFromDiff', discussion);\n }\n};\n\nexport const deleteNote = ({ dispatch }, note) =>\n axios.delete(note.path).then(() => {\n dispatch('removeNote', note);\n });\n\nexport const updateNote = ({ commit, dispatch }, { endpoint, note }) =>\n axios.put(endpoint, note).then(({ data }) => {\n commit(types.UPDATE_NOTE, data);\n dispatch('startTaskList');\n });\n\nexport const updateOrCreateNotes = ({ commit, state, getters, dispatch }, notes) => {\n const { notesById } = getters;\n const debouncedFetchDiscussions = (isFetching) => {\n if (!isFetching) {\n commit(types.SET_FETCHING_DISCUSSIONS, true);\n dispatch('fetchDiscussions', { path: state.notesData.discussionsPath });\n } else {\n if (isFetching !== true) {\n clearTimeout(state.currentlyFetchingDiscussions);\n }\n\n commit(\n types.SET_FETCHING_DISCUSSIONS,\n setTimeout(() => {\n dispatch('fetchDiscussions', { path: state.notesData.discussionsPath });\n }, constants.DISCUSSION_FETCH_TIMEOUT),\n );\n }\n };\n\n notes.forEach((note) => {\n if (notesById[note.id]) {\n commit(types.UPDATE_NOTE, note);\n } else if (note.type === constants.DISCUSSION_NOTE || note.type === constants.DIFF_NOTE) {\n const discussion = utils.findNoteObjectById(state.discussions, note.discussion_id);\n\n if (discussion) {\n commit(types.ADD_NEW_REPLY_TO_DISCUSSION, note);\n } else if (note.type === constants.DIFF_NOTE && !note.base_discussion) {\n debouncedFetchDiscussions(state.currentlyFetchingDiscussions);\n } else {\n commit(types.ADD_NEW_NOTE, note);\n }\n } else {\n commit(types.ADD_NEW_NOTE, note);\n }\n });\n};\n\nexport const promoteCommentToTimelineEvent = (\n { commit },\n { noteId, addError, addGenericError },\n) => {\n commit(types.SET_PROMOTE_COMMENT_TO_TIMELINE_PROGRESS, true); // Set loading state\n return utils.gqClient\n .mutate({\n mutation: promoteTimelineEvent,\n variables: {\n input: {\n noteId: convertToGraphQLId(TYPENAME_NOTE, noteId),\n },\n },\n })\n .then(({ data = {} }) => {\n const errors = data.timelineEventPromoteFromNote?.errors;\n if (errors.length) {\n const errorMessage = sprintf(addError, {\n error: errors.join('. '),\n });\n throw new Error(errorMessage);\n } else {\n notesEventHub.$emit('comment-promoted-to-timeline-event');\n toast(__('Comment added to the timeline.'));\n }\n })\n .catch((error) => {\n const message = error.message || addGenericError;\n\n let captureError = false;\n let errorObj = null;\n\n if (message === addGenericError) {\n captureError = true;\n errorObj = error;\n }\n\n createAlert({\n message,\n captureError,\n error: errorObj,\n });\n })\n .finally(() => {\n commit(types.SET_PROMOTE_COMMENT_TO_TIMELINE_PROGRESS, false); // Revert loading state\n });\n};\n\nexport const replyToDiscussion = (\n { commit, state, getters, dispatch },\n { endpoint, data: reply },\n) =>\n axios.post(endpoint, reply).then(({ data }) => {\n if (data.discussion) {\n commit(types.UPDATE_DISCUSSION, data.discussion);\n\n updateOrCreateNotes({ commit, state, getters, dispatch }, data.discussion.notes);\n\n dispatch('updateMergeRequestWidget');\n dispatch('startTaskList');\n dispatch('updateResolvableDiscussionsCounts');\n } else {\n commit(types.ADD_NEW_REPLY_TO_DISCUSSION, data);\n }\n\n return data;\n });\n\nexport const createNewNote = ({ commit, dispatch }, { endpoint, data: reply }) =>\n axios.post(endpoint, reply).then(({ data }) => {\n if (!data.errors) {\n commit(types.ADD_NEW_NOTE, data);\n\n dispatch('updateMergeRequestWidget');\n dispatch('startTaskList');\n dispatch('updateResolvableDiscussionsCounts');\n }\n return data;\n });\n\nexport const removePlaceholderNotes = ({ commit }) => commit(types.REMOVE_PLACEHOLDER_NOTES);\n\nexport const resolveDiscussion = ({ state, dispatch, getters }, { discussionId }) => {\n const discussion = utils.findNoteObjectById(state.discussions, discussionId);\n const isResolved = getters.isDiscussionResolved(discussionId);\n\n if (!discussion) {\n return Promise.reject();\n }\n if (isResolved) {\n return Promise.resolve();\n }\n\n return dispatch('toggleResolveNote', {\n endpoint: discussion.resolve_path,\n isResolved,\n discussion: true,\n });\n};\n\nexport const toggleResolveNote = ({ commit, dispatch }, { endpoint, isResolved, discussion }) => {\n const method = isResolved\n ? constants.UNRESOLVE_NOTE_METHOD_NAME\n : constants.RESOLVE_NOTE_METHOD_NAME;\n const mutationType = discussion ? types.UPDATE_DISCUSSION : types.UPDATE_NOTE;\n\n return axios[method](endpoint).then(({ data }) => {\n commit(mutationType, data);\n\n dispatch('updateResolvableDiscussionsCounts');\n\n dispatch('updateMergeRequestWidget');\n });\n};\n\nexport const closeIssuable = ({ commit, dispatch, state }) => {\n dispatch('toggleStateButtonLoading', true);\n return axios.put(state.notesData.closePath).then(({ data }) => {\n commit(types.CLOSE_ISSUE);\n dispatch('emitStateChangedEvent', data);\n dispatch('toggleStateButtonLoading', false);\n });\n};\n\nexport const reopenIssuable = ({ commit, dispatch, state }) => {\n dispatch('toggleStateButtonLoading', true);\n return axios.put(state.notesData.reopenPath).then(({ data }) => {\n commit(types.REOPEN_ISSUE);\n dispatch('emitStateChangedEvent', data);\n dispatch('toggleStateButtonLoading', false);\n });\n};\n\nexport const toggleStateButtonLoading = ({ commit }, value) =>\n commit(types.TOGGLE_STATE_BUTTON_LOADING, value);\n\nexport const emitStateChangedEvent = ({ getters }, data) => {\n const event = new CustomEvent(EVENT_ISSUABLE_VUE_APP_CHANGE, {\n detail: {\n data,\n isClosed: getters.openState === STATUS_CLOSED,\n },\n });\n\n document.dispatchEvent(event);\n};\n\nexport const toggleIssueLocalState = ({ commit }, newState) => {\n if (newState === STATUS_CLOSED) {\n commit(types.CLOSE_ISSUE);\n } else if (newState === STATUS_REOPENED) {\n commit(types.REOPEN_ISSUE);\n }\n};\n\nexport const saveNote = ({ commit, dispatch }, noteData) => {\n // For MR discussuions we need to post as `note[note]` and issue we use `note.note`.\n // For batch comments, we use draft_note\n const note = noteData.data.draft_note || noteData.data['note[note]'] || noteData.data.note.note;\n let placeholderText = note;\n const hasQuickActions = utils.hasQuickActions(placeholderText);\n const replyId = noteData.data.in_reply_to_discussion_id;\n let methodToDispatch;\n const postData = { ...noteData };\n if (postData.isDraft === true) {\n methodToDispatch = replyId\n ? 'batchComments/addDraftToDiscussion'\n : 'batchComments/createNewDraft';\n if (!postData.draft_note && noteData.note) {\n postData.draft_note = postData.note;\n delete postData.note;\n }\n } else {\n methodToDispatch = replyId ? 'replyToDiscussion' : 'createNewNote';\n }\n\n commit(types.REMOVE_PLACEHOLDER_NOTES); // remove previous placeholders\n\n if (hasQuickActions) {\n placeholderText = utils.stripQuickActions(placeholderText);\n }\n\n if (placeholderText.length) {\n commit(types.SHOW_PLACEHOLDER_NOTE, {\n noteBody: placeholderText,\n replyId,\n });\n }\n\n if (hasQuickActions) {\n commit(types.SHOW_PLACEHOLDER_NOTE, {\n isSystemNote: true,\n noteBody: utils.getQuickActionText(note),\n replyId,\n });\n }\n\n const processQuickActions = (res) => {\n const { quick_actions_status: { messages = null, command_names: commandNames = [] } = {} } =\n res;\n if (commandNames?.indexOf('submit_review') >= 0) {\n dispatch('batchComments/clearDrafts');\n }\n\n /*\n The following reply means that quick actions have been successfully applied:\n\n {\"commands_changes\":{},\"valid\":false,\"errors\":{},\"quick_actions_status\":{\"messages\":[\"Commands applied\"],\"command_names\":[\"due\"],\"commands_only\":true}}\n */\n if (hasQuickActions && messages) {\n // synchronizing the quick action with the sidebar widget\n // this is a temporary solution until we have confidentiality real-time updates\n if (\n confidentialWidget.setConfidentiality &&\n messages.some((m) => m.includes('Made this issue confidential'))\n ) {\n confidentialWidget.setConfidentiality();\n }\n\n $('.js-gfm-input').trigger('clear-commands-cache.atwho');\n\n createAlert({\n message: messages || __('Commands applied'),\n variant: VARIANT_INFO,\n parent: noteData.flashContainer,\n });\n }\n\n return res;\n };\n\n const processEmojiAward = (res) => {\n const { commands_changes: commandsChanges } = res;\n const { emoji_award: emojiAward } = commandsChanges || {};\n if (!emojiAward) {\n return res;\n }\n\n const votesBlock = $('.js-awards-block').eq(0);\n\n return loadAwardsHandler()\n .then((awardsHandler) => {\n awardsHandler.addAwardToEmojiBar(votesBlock, emojiAward);\n awardsHandler.scrollToAwards();\n })\n .catch(() => {\n createAlert({\n message: __('Something went wrong while adding your award. Please try again.'),\n parent: noteData.flashContainer,\n });\n })\n .then(() => res);\n };\n\n const processTimeTracking = (res) => {\n const { commands_changes: commandsChanges } = res;\n const { spend_time: spendTime, time_estimate: timeEstimate } = commandsChanges || {};\n if (spendTime != null || timeEstimate != null) {\n sidebarTimeTrackingEventHub.$emit('timeTrackingUpdated', {\n commands_changes: commandsChanges,\n });\n }\n\n return res;\n };\n\n const removePlaceholder = (res) => {\n commit(types.REMOVE_PLACEHOLDER_NOTES);\n\n return res;\n };\n\n return dispatch(methodToDispatch, postData, { root: true })\n .then(processQuickActions)\n .then(processEmojiAward)\n .then(processTimeTracking)\n .then(removePlaceholder);\n};\n\nexport const setFetchingState = ({ commit }, fetchingState) =>\n commit(types.SET_NOTES_FETCHING_STATE, fetchingState);\n\n// eslint-disable-next-line max-params\nconst pollSuccessCallBack = async (resp, commit, state, getters, dispatch) => {\n if (state.isResolvingDiscussion) {\n return null;\n }\n\n if (resp.notes?.length) {\n await dispatch('updateOrCreateNotes', resp.notes);\n dispatch('startTaskList');\n dispatch('updateResolvableDiscussionsCounts');\n }\n\n commit(types.SET_LAST_FETCHED_AT, resp.last_fetched_at);\n\n return resp;\n};\n\nconst getFetchDataParams = (state) => {\n const endpoint = state.notesData.notesPath;\n const options = {\n headers: {\n 'X-Last-Fetched-At': state.lastFetchedAt ? `${state.lastFetchedAt}` : undefined,\n },\n };\n\n return { endpoint, options };\n};\n\nexport const fetchUpdatedNotes = ({ commit, state, getters, dispatch }) => {\n const { endpoint, options } = getFetchDataParams(state);\n\n return axios\n .get(endpoint, options)\n .then(({ data }) => {\n pollSuccessCallBack(data, commit, state, getters, dispatch);\n })\n .catch(() => {});\n};\n\nexport const toggleAward = ({ commit, getters }, { awardName, noteId }) => {\n commit(types.TOGGLE_AWARD, { awardName, note: getters.notesById[noteId] });\n};\n\nexport const toggleAwardRequest = ({ dispatch }, data) => {\n const { endpoint, awardName } = data;\n\n return axios.post(endpoint, { name: awardName }).then(() => {\n dispatch('toggleAward', data);\n });\n};\n\nexport const fetchDiscussionDiffLines = ({ commit }, discussion) =>\n axios.get(discussion.truncated_diff_lines_path).then(({ data }) => {\n commit(types.SET_DISCUSSION_DIFF_LINES, {\n discussionId: discussion.id,\n diffLines: data.truncated_diff_lines,\n });\n });\n\nexport const updateMergeRequestWidget = () => {\n mrWidgetEventHub.$emit('mr.discussion.updated');\n};\n\nexport const setLoadingState = ({ commit }, data) => {\n commit(types.SET_NOTES_LOADING_STATE, data);\n};\n\nexport const filterDiscussion = ({ commit, dispatch }, { path, filter, persistFilter }) => {\n commit(types.CLEAR_DISCUSSIONS);\n dispatch('setLoadingState', true);\n dispatch('fetchDiscussions', { path, filter, persistFilter })\n .then(() => {\n dispatch('setLoadingState', false);\n dispatch('setNotesFetchedState', true);\n })\n .catch(() => {\n dispatch('setLoadingState', false);\n dispatch('setNotesFetchedState', true);\n createAlert({\n message: __('Something went wrong while fetching comments. Please try again.'),\n });\n });\n};\n\nexport const setCommentsDisabled = ({ commit }, data) => {\n commit(types.DISABLE_COMMENTS, data);\n};\n\nexport const startTaskList = ({ dispatch }) =>\n Vue.nextTick(\n () =>\n new TaskList({\n dataType: 'note',\n fieldName: 'note',\n selector: '.notes .is-editable',\n onSuccess: () => dispatch('startTaskList'),\n }),\n );\n\nexport const updateResolvableDiscussionsCounts = ({ commit }) =>\n commit(types.UPDATE_RESOLVABLE_DISCUSSIONS_COUNTS);\n\nexport const submitSuggestion = (\n { commit, dispatch },\n { discussionId, suggestionId, flashContainer, message },\n) => {\n const dispatchResolveDiscussion = () =>\n dispatch('resolveDiscussion', { discussionId }).catch(() => {});\n\n commit(types.SET_RESOLVING_DISCUSSION, true);\n\n return Api.applySuggestion(suggestionId, message)\n .then(dispatchResolveDiscussion)\n .catch((err) => {\n const defaultMessage = __(\n 'Something went wrong while applying the suggestion. Please try again.',\n );\n\n const errorMessage = err.response.data?.message;\n\n const alertMessage = errorMessage || defaultMessage;\n\n createAlert({\n message: alertMessage,\n parent: flashContainer,\n });\n })\n .finally(() => {\n commit(types.SET_RESOLVING_DISCUSSION, false);\n });\n};\n\nexport const submitSuggestionBatch = ({ commit, dispatch, state }, { message, flashContainer }) => {\n const suggestionIds = state.batchSuggestionsInfo.map(({ suggestionId }) => suggestionId);\n\n const resolveAllDiscussions = () =>\n state.batchSuggestionsInfo.map((suggestionInfo) => {\n const { discussionId } = suggestionInfo;\n return dispatch('resolveDiscussion', { discussionId }).catch(() => {});\n });\n\n commit(types.SET_APPLYING_BATCH_STATE, true);\n commit(types.SET_RESOLVING_DISCUSSION, true);\n\n return Api.applySuggestionBatch(suggestionIds, message)\n .then(() => Promise.all(resolveAllDiscussions()))\n .then(() => commit(types.CLEAR_SUGGESTION_BATCH))\n .catch((err) => {\n const defaultMessage = __(\n 'Something went wrong while applying the batch of suggestions. Please try again.',\n );\n\n const errorMessage = err.response.data?.message;\n\n const alertMessage = errorMessage || defaultMessage;\n\n createAlert({\n message: alertMessage,\n parent: flashContainer,\n });\n })\n .finally(() => {\n commit(types.SET_APPLYING_BATCH_STATE, false);\n commit(types.SET_RESOLVING_DISCUSSION, false);\n });\n};\n\nexport const addSuggestionInfoToBatch = ({ commit }, { suggestionId, noteId, discussionId }) =>\n commit(types.ADD_SUGGESTION_TO_BATCH, { suggestionId, noteId, discussionId });\n\nexport const removeSuggestionInfoFromBatch = ({ commit }, suggestionId) =>\n commit(types.REMOVE_SUGGESTION_FROM_BATCH, suggestionId);\n\nexport const convertToDiscussion = ({ commit }, noteId) =>\n commit(types.CONVERT_TO_DISCUSSION, noteId);\n\nexport const removeConvertedDiscussion = ({ commit }, noteId) =>\n commit(types.REMOVE_CONVERTED_DISCUSSION, noteId);\n\nexport const setCurrentDiscussionId = ({ commit }, discussionId) =>\n commit(types.SET_CURRENT_DISCUSSION_ID, discussionId);\n\nexport const fetchDescriptionVersion = ({ dispatch }, { endpoint, startingVersion, versionId }) => {\n let requestUrl = endpoint;\n\n if (startingVersion) {\n requestUrl = mergeUrlParams({ start_version_id: startingVersion }, requestUrl);\n }\n dispatch('requestDescriptionVersion');\n\n return axios\n .get(requestUrl)\n .then((res) => {\n dispatch('receiveDescriptionVersion', { descriptionVersion: res.data, versionId });\n })\n .catch((error) => {\n dispatch('receiveDescriptionVersionError', error);\n createAlert({\n message: __('Something went wrong while fetching description changes. Please try again.'),\n });\n });\n};\n\nexport const requestDescriptionVersion = ({ commit }) => {\n commit(types.REQUEST_DESCRIPTION_VERSION);\n};\nexport const receiveDescriptionVersion = ({ commit }, descriptionVersion) => {\n commit(types.RECEIVE_DESCRIPTION_VERSION, descriptionVersion);\n};\nexport const receiveDescriptionVersionError = ({ commit }, error) => {\n commit(types.RECEIVE_DESCRIPTION_VERSION_ERROR, error);\n};\n\nexport const softDeleteDescriptionVersion = (\n { dispatch },\n { endpoint, startingVersion, versionId },\n) => {\n let requestUrl = endpoint;\n\n if (startingVersion) {\n requestUrl = mergeUrlParams({ start_version_id: startingVersion }, requestUrl);\n }\n dispatch('requestDeleteDescriptionVersion');\n\n return axios\n .delete(requestUrl)\n .then(() => {\n dispatch('receiveDeleteDescriptionVersion', versionId);\n })\n .catch((error) => {\n dispatch('receiveDeleteDescriptionVersionError', error);\n createAlert({\n message: __('Something went wrong while deleting description changes. Please try again.'),\n });\n\n // Throw an error here because a component like SystemNote -\n // needs to know if the request failed to reset its internal state.\n throw new Error();\n });\n};\n\nexport const requestDeleteDescriptionVersion = ({ commit }) => {\n commit(types.REQUEST_DELETE_DESCRIPTION_VERSION);\n};\nexport const receiveDeleteDescriptionVersion = ({ commit }, versionId) => {\n commit(types.RECEIVE_DELETE_DESCRIPTION_VERSION, { [versionId]: __('Deleted') });\n};\nexport const receiveDeleteDescriptionVersionError = ({ commit }, error) => {\n commit(types.RECEIVE_DELETE_DESCRIPTION_VERSION_ERROR, error);\n};\n\nexport const updateAssignees = ({ commit }, assignees) => {\n commit(types.UPDATE_ASSIGNEES, assignees);\n};\n\nexport const updateDiscussionPosition = ({ commit }, updatedPosition) => {\n commit(types.UPDATE_DISCUSSION_POSITION, updatedPosition);\n};\n\nexport const updateMergeRequestFilters = ({ commit }, newFilters) =>\n commit(types.SET_MERGE_REQUEST_FILTERS, newFilters);\n","export const ADD_NEW_NOTE = 'ADD_NEW_NOTE';\nexport const ADD_NEW_REPLY_TO_DISCUSSION = 'ADD_NEW_REPLY_TO_DISCUSSION';\nexport const ADD_OR_UPDATE_DISCUSSIONS = 'ADD_OR_UPDATE_DISCUSSIONS';\nexport const CLEAR_DISCUSSIONS = 'CLEAR_DISCUSSIONS';\nexport const DELETE_NOTE = 'DELETE_NOTE';\nexport const REMOVE_PLACEHOLDER_NOTES = 'REMOVE_PLACEHOLDER_NOTES';\nexport const SET_NOTES_DATA = 'SET_NOTES_DATA';\nexport const SET_NOTEABLE_DATA = 'SET_NOTEABLE_DATA';\nexport const SET_USER_DATA = 'SET_USER_DATA';\nexport const SET_LAST_FETCHED_AT = 'SET_LAST_FETCHED_AT';\nexport const SET_TARGET_NOTE_HASH = 'SET_TARGET_NOTE_HASH';\nexport const SHOW_PLACEHOLDER_NOTE = 'SHOW_PLACEHOLDER_NOTE';\nexport const TOGGLE_AWARD = 'TOGGLE_AWARD';\nexport const UPDATE_NOTE = 'UPDATE_NOTE';\nexport const UPDATE_DISCUSSION = 'UPDATE_DISCUSSION';\nexport const UPDATE_DISCUSSION_POSITION = 'UPDATE_DISCUSSION_POSITION';\nexport const SET_DISCUSSION_DIFF_LINES = 'SET_DISCUSSION_DIFF_LINES';\nexport const SET_NOTES_FETCHING_STATE = 'SET_NOTES_FETCHING_STATE';\nexport const SET_NOTES_FETCHED_STATE = 'SET_NOTES_FETCHED_STATE';\nexport const SET_NOTES_LOADING_STATE = 'SET_NOTES_LOADING_STATE';\nexport const DISABLE_COMMENTS = 'DISABLE_COMMENTS';\nexport const APPLY_SUGGESTION = 'APPLY_SUGGESTION';\nexport const SET_APPLYING_BATCH_STATE = 'SET_APPLYING_BATCH_STATE';\nexport const ADD_SUGGESTION_TO_BATCH = 'ADD_SUGGESTION_TO_BATCH';\nexport const REMOVE_SUGGESTION_FROM_BATCH = 'REMOVE_SUGGESTION_FROM_BATCH';\nexport const CLEAR_SUGGESTION_BATCH = 'CLEAR_SUGGESTION_BATCH';\nexport const CONVERT_TO_DISCUSSION = 'CONVERT_TO_DISCUSSION';\nexport const REMOVE_CONVERTED_DISCUSSION = 'REMOVE_CONVERTED_DISCUSSION';\nexport const UPDATE_ASSIGNEES = 'UPDATE_ASSIGNEES';\nexport const SET_IS_POLLING_INITIALIZED = 'SET_IS_POLLING_INITIALIZED';\n\n// DISCUSSION\nexport const COLLAPSE_DISCUSSION = 'COLLAPSE_DISCUSSION';\nexport const EXPAND_DISCUSSION = 'EXPAND_DISCUSSION';\nexport const TOGGLE_DISCUSSION = 'TOGGLE_DISCUSSION';\nexport const SET_EXPAND_DISCUSSIONS = 'SET_EXPAND_DISCUSSIONS';\nexport const SET_EXPAND_ALL_DISCUSSIONS = 'SET_EXPAND_ALL_DISCUSSIONS';\nexport const UPDATE_RESOLVABLE_DISCUSSIONS_COUNTS = 'UPDATE_RESOLVABLE_DISCUSSIONS_COUNTS';\nexport const SET_CURRENT_DISCUSSION_ID = 'SET_CURRENT_DISCUSSION_ID';\nexport const SET_DISCUSSIONS_SORT = 'SET_DISCUSSIONS_SORT';\nexport const SET_TIMELINE_VIEW = 'SET_TIMELINE_VIEW';\nexport const SET_SELECTED_COMMENT_POSITION = 'SET_SELECTED_COMMENT_POSITION';\nexport const SET_SELECTED_COMMENT_POSITION_HOVER = 'SET_SELECTED_COMMENT_POSITION_HOVER';\nexport const SET_FETCHING_DISCUSSIONS = 'SET_FETCHING_DISCUSSIONS';\nexport const SET_RESOLVING_DISCUSSION = 'SET_RESOLVING_DISCUSSION';\nexport const SET_DONE_FETCHING_BATCH_DISCUSSIONS = 'SET_DONE_FETCHING_BATCH_DISCUSSIONS';\n\n// Issue\nexport const CLOSE_ISSUE = 'CLOSE_ISSUE';\nexport const REOPEN_ISSUE = 'REOPEN_ISSUE';\nexport const TOGGLE_STATE_BUTTON_LOADING = 'TOGGLE_STATE_BUTTON_LOADING';\nexport const SET_ISSUE_CONFIDENTIAL = 'SET_ISSUE_CONFIDENTIAL';\nexport const SET_ISSUABLE_LOCK = 'SET_ISSUABLE_LOCK';\n\n// Description version\nexport const REQUEST_DESCRIPTION_VERSION = 'REQUEST_DESCRIPTION_VERSION';\nexport const RECEIVE_DESCRIPTION_VERSION = 'RECEIVE_DESCRIPTION_VERSION';\nexport const RECEIVE_DESCRIPTION_VERSION_ERROR = 'RECEIVE_DESCRIPTION_VERSION_ERROR';\nexport const REQUEST_DELETE_DESCRIPTION_VERSION = 'REQUEST_DELETE_DESCRIPTION_VERSION';\nexport const RECEIVE_DELETE_DESCRIPTION_VERSION = 'RECEIVE_DELETE_DESCRIPTION_VERSION';\nexport const RECEIVE_DELETE_DESCRIPTION_VERSION_ERROR = 'RECEIVE_DELETE_DESCRIPTION_VERSION_ERROR';\n\n// Incidents\nexport const SET_PROMOTE_COMMENT_TO_TIMELINE_PROGRESS = 'SET_PROMOTE_COMMENT_TO_TIMELINE_PROGRESS';\n\nexport const SET_MERGE_REQUEST_FILTERS = 'SET_MERGE_REQUEST_FILTERS';\n","import { DESCRIPTION_TYPE, TIME_DIFFERENCE_VALUE } from '../constants';\n\n/**\n * Checks the time difference between two notes from their 'created_at' dates\n * returns an integer\n */\nexport const getTimeDifferenceMinutes = (noteBeggining, noteEnd) => {\n const descriptionNoteBegin = new Date(noteBeggining.created_at);\n const descriptionNoteEnd = new Date(noteEnd.created_at);\n const timeDifferenceMinutes = (descriptionNoteEnd - descriptionNoteBegin) / 1000 / 60;\n\n return Math.ceil(timeDifferenceMinutes);\n};\n\n/**\n * Checks if a note is a system note and if the content is description\n *\n * @param {Object} note\n * @returns {Boolean}\n */\nexport const isDescriptionSystemNote = (note) => note.system && note.note === DESCRIPTION_TYPE;\n\n/**\n * Collapses the system notes of a description type, e.g. Changed the description, n minutes ago\n * the notes will collapse as long as they happen no more than 10 minutes away from each away\n * in between the notes can be anything, another type of system note\n * (such as 'changed the weight') or a comment.\n *\n * @param {Array} notes\n * @returns {Array}\n */\nexport const collapseSystemNotes = (notes) => {\n let lastDescriptionSystemNote = null;\n let lastDescriptionSystemNoteIndex = -1;\n\n return notes.slice(0).reduce((acc, currentNote) => {\n const note = currentNote.notes[0];\n\n if (isDescriptionSystemNote(note)) {\n // is it the first one?\n if (!lastDescriptionSystemNote) {\n lastDescriptionSystemNote = note;\n lastDescriptionSystemNoteIndex = acc.length;\n } else if (lastDescriptionSystemNote) {\n const timeDifferenceMinutes = getTimeDifferenceMinutes(lastDescriptionSystemNote, note);\n\n // are they less than 10 minutes apart from the same user?\n if (\n timeDifferenceMinutes > TIME_DIFFERENCE_VALUE ||\n note.author.id !== lastDescriptionSystemNote.author.id ||\n lastDescriptionSystemNote.description_version_deleted\n ) {\n // update the previous system note\n lastDescriptionSystemNote = note;\n lastDescriptionSystemNoteIndex = acc.length;\n } else {\n // set the first version to fetch grouped system note versions\n note.start_description_version_id = lastDescriptionSystemNote.description_version_id;\n\n // delete the previous one\n acc.splice(lastDescriptionSystemNoteIndex, 1);\n\n // update the previous system note index\n lastDescriptionSystemNoteIndex = acc.length;\n }\n }\n }\n\n acc.push(currentNote);\n return acc;\n }, []);\n};\n","import { flattenDeep, clone } from 'lodash';\nimport { match } from '~/diffs/utils/diff_file';\nimport { isInMRPage } from '~/lib/utils/common_utils';\nimport { doesHashExistInUrl } from '~/lib/utils/url_utility';\nimport { badgeState } from '~/merge_requests/components/merge_request_header.vue';\nimport * as constants from '../constants';\nimport { collapseSystemNotes } from './collapse_utils';\n\nconst getDraftComments = (state) => {\n if (!state.batchComments) {\n return [];\n }\n\n return state.batchComments.drafts\n .filter((draft) => !draft.file_path && !draft.discussion_id)\n .map((x) => ({\n ...x,\n // Treat a top-level draft note as individual_note so it's not included in\n // expand/collapse threads\n individual_note: true,\n }))\n .sort((a, b) => a.id - b.id);\n};\n\nconst hideActivity = (filters, discussion) => {\n if (filters.length === constants.MR_FILTER_OPTIONS) return false;\n if (filters.length === 0) return true;\n\n const firstNote = discussion.notes[0];\n const hidingFilters = constants.MR_FILTER_OPTIONS.filter(({ value }) => !filters.includes(value));\n\n for (let i = 0, len = hidingFilters.length; i < len; i += 1) {\n const filter = hidingFilters[i];\n\n if (\n // For all of the below firstNote is the first note of a discussion, whether that be\n // the first in a discussion or a single note\n // If the filter option filters based on icon check against the first notes system note icon\n filter.systemNoteIcons?.includes(firstNote.system_note_icon_name) ||\n // If the filter option filters based on note type use the first notes type\n (filter.noteType?.includes(firstNote.type) && !firstNote.author?.bot) ||\n // If the filter option filters based on the note text then check if it is sytem\n // and filter based on the text of the system note\n (firstNote.system && filter.noteText?.some((t) => firstNote.note.includes(t))) ||\n // For individual notes we filter if the discussion is a single note and is not a sytem\n (filter.individualNote === discussion.individual_note &&\n !firstNote.system &&\n !firstNote.author?.bot) ||\n // For bot comments we filter on the authors `bot` boolean attribute\n (filter.bot && firstNote.author?.bot)\n ) {\n return true;\n }\n }\n\n return false;\n};\n\nexport const discussions = (state, getters, rootState) => {\n let discussionsInState = clone(state.discussions);\n // NOTE: not testing bc will be removed when backend is finished.\n\n if (state.noteableData.targetType === 'merge_request') {\n discussionsInState = discussionsInState.reduce((acc, discussion) => {\n if (hideActivity(state.mergeRequestFilters, discussion)) {\n return acc;\n }\n\n acc.push(discussion);\n\n return acc;\n }, []);\n }\n\n if (state.isTimelineEnabled) {\n discussionsInState = discussionsInState\n .reduce((acc, discussion) => {\n const transformedToIndividualNotes = discussion.notes.map((note) => ({\n ...discussion,\n id: note.id,\n created_at: note.created_at,\n individual_note: true,\n notes: [note],\n }));\n\n return acc.concat(transformedToIndividualNotes);\n }, [])\n .sort((a, b) => new Date(a.created_at) - new Date(b.created_at));\n }\n\n discussionsInState = collapseSystemNotes(discussionsInState);\n\n discussionsInState = discussionsInState.concat(getDraftComments(rootState));\n\n if (state.discussionSortOrder === constants.DESC) {\n discussionsInState = discussionsInState.reverse();\n }\n\n return discussionsInState;\n};\n\nexport const convertedDisscussionIds = (state) => state.convertedDisscussionIds;\n\nexport const targetNoteHash = (state) => state.targetNoteHash;\n\nexport const getNotesData = (state) => state.notesData;\n\nexport const isNotesFetched = (state) => state.isNotesFetched;\n\n/*\n * WARNING: This is an example of an \"unnecessary\" getter\n * more info found here: https://gitlab.com/groups/gitlab-org/-/epics/2913.\n */\n\nexport const sortDirection = (state) => state.discussionSortOrder;\n\nexport const persistSortOrder = (state) => state.persistSortOrder;\n\nexport const timelineEnabled = (state) => state.isTimelineEnabled;\n\nexport const isFetching = (state) => state.isFetching;\n\nexport const isLoading = (state) => state.isLoading;\n\nexport const getNotesDataByProp = (state) => (prop) => state.notesData[prop];\n\nexport const getNoteableData = (state) => state.noteableData;\n\nexport const getNoteableDataByProp = (state) => (prop) => state.noteableData[prop];\n\nexport const getBlockedByIssues = (state) => state.noteableData.blocked_by_issues;\n\nexport const userCanReply = (state) => Boolean(state.noteableData.current_user.can_create_note);\n\nexport const openState = (state) => (isInMRPage() ? badgeState.state : state.noteableData.state);\n\nexport const getUserData = (state) => state.userData || {};\n\nexport const getUserDataByProp = (state) => (prop) => state.userData && state.userData[prop];\n\nexport const descriptionVersions = (state) => state.descriptionVersions;\n\nexport const canUserAddIncidentTimelineEvents = (state) => {\n return Boolean(\n state.userData?.can_add_timeline_events &&\n state.noteableData.type === constants.NOTEABLE_TYPE_MAPPING.Incident,\n );\n};\n\nexport const notesById = (state) =>\n state.discussions.reduce((acc, note) => {\n note.notes.every((n) => Object.assign(acc, { [n.id]: n }));\n return acc;\n }, {});\n\nexport const noteableType = (state) => {\n const { ISSUE_NOTEABLE_TYPE, MERGE_REQUEST_NOTEABLE_TYPE, EPIC_NOTEABLE_TYPE } = constants;\n\n if (state.noteableData.noteableType === EPIC_NOTEABLE_TYPE) {\n return EPIC_NOTEABLE_TYPE;\n }\n\n return state.noteableData.merge_params ? MERGE_REQUEST_NOTEABLE_TYPE : ISSUE_NOTEABLE_TYPE;\n};\n\nconst reverseNotes = (array) => array.slice(0).reverse();\n\nconst isLastNote = (note, state) =>\n !note.system && state.userData && note.author && note.author.id === state.userData.id;\n\nexport const getCurrentUserLastNote = (state) =>\n flattenDeep(reverseNotes(state.discussions).map((note) => reverseNotes(note.notes))).find((el) =>\n isLastNote(el, state),\n );\n\nexport const getDiscussionLastNote = (state) => (discussion) =>\n reverseNotes(discussion.notes).find((el) => isLastNote(el, state));\n\nexport const unresolvedDiscussionsCount = (state) => state.unresolvedDiscussionsCount;\nexport const resolvableDiscussionsCount = (state) => state.resolvableDiscussionsCount;\n\nexport const showJumpToNextDiscussion =\n (state, getters) =>\n (mode = 'discussion') => {\n const orderedDiffs =\n mode !== 'discussion'\n ? getters.unresolvedDiscussionsIdsByDiff\n : getters.unresolvedDiscussionsIdsByDate;\n\n return orderedDiffs.length > 1;\n };\n\nexport const isDiscussionResolved = (state, getters) => (discussionId) =>\n getters.resolvedDiscussionsById[discussionId] !== undefined;\n\nexport const allResolvableDiscussions = (state) =>\n state.discussions.filter((d) => !d.individual_note && d.resolvable);\n\nexport const resolvedDiscussionsById = (state) => {\n const map = {};\n\n state.discussions\n .filter((d) => d.resolvable)\n .forEach((n) => {\n if (n.notes) {\n const resolved = n.notes.filter((note) => note.resolvable).every((note) => note.resolved);\n\n if (resolved) {\n map[n.id] = n;\n }\n }\n });\n\n return map;\n};\n\n// Gets Discussions IDs ordered by the date of their initial note\nexport const unresolvedDiscussionsIdsByDate = (state, getters) =>\n getters.allResolvableDiscussions\n .filter((d) => !d.resolved)\n .sort((a, b) => {\n const aDate = new Date(a.notes[0].created_at);\n const bDate = new Date(b.notes[0].created_at);\n\n if (aDate < bDate) {\n return -1;\n }\n\n return aDate === bDate ? 0 : 1;\n })\n .map((d) => d.id);\n\n// Gets Discussions IDs ordered by their position in the diff\n//\n// Sorts the array of resolvable yet unresolved discussions by\n// comparing file names first. If file names are the same, compares\n// line numbers.\nexport const unresolvedDiscussionsIdsByDiff = (state, getters, allState) => {\n const authoritativeFiles = allState.diffs.diffFiles;\n\n return getters.allResolvableDiscussions\n .filter((d) => !d.resolved && d.active)\n .sort((a, b) => {\n let order = 0;\n\n if (!a.diff_file || !b.diff_file) {\n return order;\n }\n\n const authoritativeA = authoritativeFiles.find((source) =>\n match({ fileA: source, fileB: a.diff_file, mode: 'mr' }),\n );\n const authoritativeB = authoritativeFiles.find((source) =>\n match({ fileA: source, fileB: b.diff_file, mode: 'mr' }),\n );\n\n if (authoritativeA && authoritativeB) {\n order = authoritativeA.order - authoritativeB.order;\n }\n\n // Get the line numbers, to compare within the same file\n const aLines = [a.position.new_line, a.position.old_line];\n const bLines = [b.position.new_line, b.position.old_line];\n\n return order < 0 ||\n (order === 0 &&\n // .max() because one of them might be zero (if removed/added)\n Math.max(aLines[0], aLines[1]) < Math.max(bLines[0], bLines[1]))\n ? -1\n : 1;\n })\n .map((d) => d.id);\n};\n\nexport const resolvedDiscussionCount = (state, getters) => {\n const resolvedMap = getters.resolvedDiscussionsById;\n\n return Object.keys(resolvedMap).length;\n};\n\nexport const discussionTabCounter = (state) =>\n state.discussions.reduce(\n (acc, discussion) =>\n acc + discussion.notes.filter((note) => !note.system && !note.placeholder).length,\n 0,\n );\n\n// Returns the list of discussion IDs ordered according to given parameter\n// @param {Boolean} diffOrder - is ordered by diff?\nexport const unresolvedDiscussionsIdsOrdered = (state, getters) => (diffOrder) => {\n if (diffOrder) {\n return getters.unresolvedDiscussionsIdsByDiff;\n }\n return getters.unresolvedDiscussionsIdsByDate;\n};\n\n// Checks if a given discussion is the last in the current order (diff or date)\n// @param {Boolean} discussionId - id of the discussion\n// @param {Boolean} diffOrder - is ordered by diff?\nexport const isLastUnresolvedDiscussion = (state, getters) => (discussionId, diffOrder) => {\n const idsOrdered = getters.unresolvedDiscussionsIdsOrdered(diffOrder);\n const lastDiscussionId = idsOrdered[idsOrdered.length - 1];\n\n return lastDiscussionId === discussionId;\n};\n\nexport const findUnresolvedDiscussionIdNeighbor =\n (state, getters) =>\n ({ discussionId, diffOrder, step }) => {\n const diffIds = getters.unresolvedDiscussionsIdsOrdered(diffOrder);\n const dateIds = getters.unresolvedDiscussionsIdsOrdered(false);\n const ids = diffIds.length ? diffIds : dateIds;\n const index = ids.indexOf(discussionId) + step;\n\n if (index < 0 && step < 0) {\n return ids[ids.length - 1];\n }\n\n if (index === ids.length && step > 0) {\n return ids[0];\n }\n\n return ids[index];\n };\n\n// Gets the ID of the discussion following the one provided, respecting order (diff or date)\n// @param {Boolean} discussionId - id of the current discussion\n// @param {Boolean} diffOrder - is ordered by diff?\nexport const nextUnresolvedDiscussionId = (state, getters) => (discussionId, diffOrder) =>\n getters.findUnresolvedDiscussionIdNeighbor({ discussionId, diffOrder, step: 1 });\n\nexport const previousUnresolvedDiscussionId = (state, getters) => (discussionId, diffOrder) =>\n getters.findUnresolvedDiscussionIdNeighbor({ discussionId, diffOrder, step: -1 });\n\n// @param {Boolean} diffOrder - is ordered by diff?\nexport const firstUnresolvedDiscussionId = (state, getters) => (diffOrder) => {\n if (diffOrder) {\n return getters.unresolvedDiscussionsIdsByDiff[0];\n }\n return getters.unresolvedDiscussionsIdsByDate[0];\n};\n\nexport const getDiscussion = (state) => (discussionId) =>\n state.discussions.find((discussion) => discussion.id === discussionId);\n\nexport const commentsDisabled = (state) => state.commentsDisabled;\n\nexport const suggestionsCount = (state, getters) =>\n Object.values(getters.notesById).filter((n) => n.suggestions?.length).length;\n\n// eslint-disable-next-line max-params\nexport const hasDrafts = (state, getters, rootState, rootGetters) =>\n Boolean(rootGetters['batchComments/hasDrafts']);\n\nexport const getSuggestionsFilePaths = (state) => () =>\n state.batchSuggestionsInfo.reduce((acc, suggestion) => {\n const discussion = state.discussions.find((d) => d.id === suggestion.discussionId);\n\n if (acc.indexOf(discussion?.diff_file?.file_path) === -1) {\n acc.push(discussion.diff_file.file_path);\n }\n\n return acc;\n }, []);\n\nexport const getFetchDiscussionsConfig = (state, getters) => {\n const defaultConfig = { path: getters.getNotesDataByProp('discussionsPath') };\n\n const currentFilter =\n getters.getNotesDataByProp('notesFilter') || constants.DISCUSSION_FILTERS_DEFAULT_VALUE;\n\n if (\n doesHashExistInUrl(constants.NOTE_UNDERSCORE) &&\n currentFilter !== constants.DISCUSSION_FILTERS_DEFAULT_VALUE\n ) {\n return {\n ...defaultConfig,\n filter: constants.DISCUSSION_FILTERS_DEFAULT_VALUE,\n persistFilter: false,\n };\n }\n return defaultConfig;\n};\n\nexport const allDiscussionsExpanded = (state) => {\n return state.discussions.every((discussion) => discussion.expanded);\n};\n","import { isEqual } from 'lodash';\nimport { STATUS_CLOSED, STATUS_REOPENED } from '~/issues/constants';\nimport { isInMRPage } from '~/lib/utils/common_utils';\nimport { uuids } from '~/lib/utils/uuids';\nimport * as constants from '../constants';\nimport * as types from './mutation_types';\nimport * as utils from './utils';\n\nexport default {\n [types.ADD_NEW_NOTE](state, data) {\n const note = data.discussion ? data.discussion.notes[0] : data;\n const { discussion_id: discussionId, type } = note;\n const [exists] = state.discussions.filter((n) => n.id === note.discussion_id);\n const isDiscussion = type === constants.DISCUSSION_NOTE || type === constants.DIFF_NOTE;\n\n if (!exists) {\n let discussion = data.discussion || note.base_discussion;\n\n if (!discussion) {\n discussion = {\n expanded: true,\n id: discussionId,\n individual_note: !isDiscussion,\n reply_id: discussionId,\n };\n\n if (isDiscussion && isInMRPage()) {\n discussion.resolvable = note.resolvable;\n discussion.resolved = false;\n discussion.active = true;\n discussion.resolve_path = note.resolve_path;\n discussion.resolve_with_issue_path = note.resolve_with_issue_path;\n discussion.diff_discussion = false;\n }\n }\n\n if (discussion.truncated_diff_lines) {\n discussion.truncated_diff_lines = utils.prepareDiffLines(discussion.truncated_diff_lines);\n }\n\n // note.base_discussion = undefined; // No point keeping a reference to this\n delete note.base_discussion;\n discussion.notes = [note];\n\n state.discussions.push(discussion);\n }\n },\n\n [types.ADD_NEW_REPLY_TO_DISCUSSION](state, note) {\n const discussion = utils.findNoteObjectById(state.discussions, note.discussion_id);\n const existingNote = discussion && utils.findNoteObjectById(discussion.notes, note.id);\n\n if (discussion && !existingNote) {\n discussion.notes.push(note);\n }\n },\n\n [types.DELETE_NOTE](state, note) {\n const noteObj = utils.findNoteObjectById(state.discussions, note.discussion_id);\n\n if (noteObj.individual_note) {\n state.discussions.splice(state.discussions.indexOf(noteObj), 1);\n } else {\n const comment = utils.findNoteObjectById(noteObj.notes, note.id);\n noteObj.notes.splice(noteObj.notes.indexOf(comment), 1);\n\n if (!noteObj.notes.length) {\n state.discussions.splice(state.discussions.indexOf(noteObj), 1);\n }\n }\n },\n\n [types.EXPAND_DISCUSSION](state, { discussionId }) {\n const discussion = utils.findNoteObjectById(state.discussions, discussionId);\n Object.assign(discussion, { expanded: true });\n },\n\n [types.COLLAPSE_DISCUSSION](state, { discussionId }) {\n const discussion = utils.findNoteObjectById(state.discussions, discussionId);\n Object.assign(discussion, { expanded: false });\n },\n\n [types.REMOVE_PLACEHOLDER_NOTES](state) {\n const { discussions } = state;\n\n for (let i = discussions.length - 1; i >= 0; i -= 1) {\n const note = discussions[i];\n const children = note.notes;\n\n if (children.length > 1) {\n // remove placeholder from discussions\n for (let j = children.length - 1; j >= 0; j -= 1) {\n if (children[j].isPlaceholderNote) {\n children.splice(j, 1);\n }\n }\n } else if (note.isPlaceholderNote) {\n // remove placeholders from state root\n discussions.splice(i, 1);\n }\n }\n },\n\n [types.SET_NOTES_DATA](state, data) {\n Object.assign(state, { notesData: data });\n },\n\n [types.SET_NOTEABLE_DATA](state, data) {\n Object.assign(state, { noteableData: data });\n },\n\n [types.SET_ISSUE_CONFIDENTIAL](state, data) {\n state.noteableData.confidential = data;\n },\n\n [types.SET_ISSUABLE_LOCK](state, locked) {\n state.noteableData.discussion_locked = locked;\n },\n\n [types.SET_USER_DATA](state, data) {\n Object.assign(state, { userData: data });\n },\n\n [types.CLEAR_DISCUSSIONS](state) {\n state.discussions = [];\n },\n\n [types.ADD_OR_UPDATE_DISCUSSIONS](state, discussionsData) {\n discussionsData.forEach((d) => {\n const discussion = { ...d };\n const diffData = {};\n\n if (discussion.diff_file) {\n diffData.file_hash = discussion.diff_file.file_hash;\n\n diffData.truncated_diff_lines = utils.prepareDiffLines(\n discussion.truncated_diff_lines || [],\n );\n }\n\n // To support legacy notes, should be very rare case.\n if (discussion.individual_note && discussion.notes.length > 1) {\n discussion.notes.forEach((n) => {\n const newDiscussion = {\n ...discussion,\n ...diffData,\n notes: [n], // override notes array to only have one item to mimick individual_note\n };\n const oldDiscussion = state.discussions.find(\n (existingDiscussion) =>\n existingDiscussion.id === discussion.id && existingDiscussion.notes[0].id === n.id,\n );\n\n if (oldDiscussion) {\n state.discussions.splice(state.discussions.indexOf(oldDiscussion), 1, newDiscussion);\n } else {\n state.discussions.push(newDiscussion);\n }\n });\n } else {\n const oldDiscussion = utils.findNoteObjectById(state.discussions, discussion.id);\n\n if (oldDiscussion) {\n state.discussions.splice(state.discussions.indexOf(oldDiscussion), 1, {\n ...discussion,\n ...diffData,\n expanded: oldDiscussion.expanded,\n });\n } else {\n state.discussions.push({ ...discussion, ...diffData });\n }\n }\n });\n },\n\n [types.SET_LAST_FETCHED_AT](state, fetchedAt) {\n Object.assign(state, { lastFetchedAt: fetchedAt });\n },\n\n [types.SET_TARGET_NOTE_HASH](state, hash) {\n Object.assign(state, { targetNoteHash: hash });\n },\n\n [types.SHOW_PLACEHOLDER_NOTE](state, data) {\n let notesArr = state.discussions;\n\n const existingDiscussion = utils.findNoteObjectById(notesArr, data.replyId);\n if (existingDiscussion) {\n notesArr = existingDiscussion.notes;\n }\n\n notesArr.push({\n id: uuids()[0],\n individual_note: true,\n isPlaceholderNote: true,\n placeholderType: data.isSystemNote ? constants.SYSTEM_NOTE : constants.NOTE,\n notes: [\n {\n body: data.noteBody,\n },\n ],\n });\n },\n\n [types.TOGGLE_AWARD](state, data) {\n const { awardName, note } = data;\n const { id, name, username } = state.userData;\n\n const hasEmojiAwardedByCurrentUser = note.award_emoji.filter(\n (emoji) => `${emoji.name}` === `${data.awardName}` && emoji.user.id === id,\n );\n\n if (hasEmojiAwardedByCurrentUser.length) {\n // If current user has awarded this emoji, remove it.\n note.award_emoji.splice(note.award_emoji.indexOf(hasEmojiAwardedByCurrentUser[0]), 1);\n } else {\n note.award_emoji.push({\n name: awardName,\n user: { id, name, username },\n });\n }\n },\n\n [types.TOGGLE_DISCUSSION](state, { discussionId, forceExpanded = null }) {\n const discussion = utils.findNoteObjectById(state.discussions, discussionId);\n Object.assign(discussion, {\n expanded: forceExpanded === null ? !discussion.expanded : forceExpanded,\n });\n },\n\n [types.SET_EXPAND_DISCUSSIONS](state, { discussionIds, expanded }) {\n if (discussionIds?.length) {\n discussionIds.forEach((discussionId) => {\n const discussion = utils.findNoteObjectById(state.discussions, discussionId);\n Object.assign(discussion, { expanded });\n });\n }\n },\n\n [types.SET_EXPAND_ALL_DISCUSSIONS](state, expanded) {\n state.discussions.forEach((discussion) => {\n Object.assign(discussion, { expanded });\n });\n },\n\n [types.SET_RESOLVING_DISCUSSION](state, isResolving) {\n state.isResolvingDiscussion = isResolving;\n },\n\n [types.UPDATE_NOTE](state, note) {\n const discussion = utils.findNoteObjectById(state.discussions, note.discussion_id);\n\n // Disable eslint here so we can delete the property that we no longer need\n // in the note object\n // eslint-disable-next-line no-param-reassign\n delete note.base_discussion;\n\n if (discussion.individual_note) {\n if (note.type === constants.DISCUSSION_NOTE) {\n discussion.individual_note = false;\n }\n\n discussion.notes.splice(0, 1, note);\n } else {\n const comment = utils.findNoteObjectById(discussion.notes, note.id);\n\n if (!isEqual(comment, note)) {\n discussion.notes.splice(discussion.notes.indexOf(comment), 1, note);\n }\n }\n\n if (note.resolvable && note.id === discussion.notes[0].id) {\n Object.assign(discussion, {\n resolvable: note.resolvable,\n resolved: note.resolved,\n resolved_at: note.resolved_at,\n resolved_by: note.resolved_by,\n resolved_by_push: note.resolved_by_push,\n });\n }\n },\n\n [types.APPLY_SUGGESTION](state, { noteId, discussionId, suggestionId }) {\n const noteObj = utils.findNoteObjectById(state.discussions, discussionId);\n const comment = utils.findNoteObjectById(noteObj.notes, noteId);\n\n comment.suggestions = comment.suggestions.map((suggestion) => ({\n ...suggestion,\n applied: suggestion.applied || suggestion.id === suggestionId,\n appliable: false,\n }));\n },\n\n [types.SET_APPLYING_BATCH_STATE](state, isApplyingBatch) {\n state.batchSuggestionsInfo.forEach((suggestionInfo) => {\n const { discussionId, noteId, suggestionId } = suggestionInfo;\n\n const noteObj = utils.findNoteObjectById(state.discussions, discussionId);\n const comment = utils.findNoteObjectById(noteObj.notes, noteId);\n\n comment.suggestions = comment.suggestions.map((suggestion) => ({\n ...suggestion,\n is_applying_batch: suggestion.id === suggestionId && isApplyingBatch,\n }));\n });\n },\n\n [types.ADD_SUGGESTION_TO_BATCH](state, { noteId, discussionId, suggestionId }) {\n state.batchSuggestionsInfo.push({\n suggestionId,\n noteId,\n discussionId,\n });\n },\n\n [types.REMOVE_SUGGESTION_FROM_BATCH](state, id) {\n const index = state.batchSuggestionsInfo.findIndex(({ suggestionId }) => suggestionId === id);\n if (index !== -1) {\n state.batchSuggestionsInfo.splice(index, 1);\n }\n },\n\n [types.CLEAR_SUGGESTION_BATCH](state) {\n state.batchSuggestionsInfo.splice(0, state.batchSuggestionsInfo.length);\n },\n\n [types.UPDATE_DISCUSSION](state, noteData) {\n const note = noteData;\n const selectedDiscussion = state.discussions.find((disc) => disc.id === note.id);\n note.expanded = true; // override expand flag to prevent collapse\n Object.assign(selectedDiscussion, { ...note });\n },\n\n [types.UPDATE_DISCUSSION_POSITION](state, { discussionId, position }) {\n const selectedDiscussion = state.discussions.find((disc) => disc.id === discussionId);\n if (selectedDiscussion) Object.assign(selectedDiscussion.position, { ...position });\n },\n\n [types.CLOSE_ISSUE](state) {\n Object.assign(state.noteableData, { state: STATUS_CLOSED });\n },\n\n [types.REOPEN_ISSUE](state) {\n Object.assign(state.noteableData, { state: STATUS_REOPENED });\n },\n\n [types.TOGGLE_STATE_BUTTON_LOADING](state, value) {\n Object.assign(state, { isToggleStateButtonLoading: value });\n },\n\n [types.SET_NOTES_FETCHED_STATE](state, value) {\n Object.assign(state, { isNotesFetched: value });\n },\n\n [types.SET_NOTES_LOADING_STATE](state, value) {\n state.isLoading = value;\n },\n\n [types.SET_NOTES_FETCHING_STATE](state, value) {\n state.isFetching = value;\n },\n\n [types.SET_DISCUSSION_DIFF_LINES](state, { discussionId, diffLines }) {\n const discussion = utils.findNoteObjectById(state.discussions, discussionId);\n\n discussion.truncated_diff_lines = utils.prepareDiffLines(diffLines);\n },\n\n [types.SET_DISCUSSIONS_SORT](state, { direction, persist }) {\n state.discussionSortOrder = direction;\n state.persistSortOrder = persist;\n },\n\n [types.SET_TIMELINE_VIEW](state, value) {\n state.isTimelineEnabled = value;\n },\n\n [types.SET_SELECTED_COMMENT_POSITION](state, position) {\n state.selectedCommentPosition = position;\n },\n\n [types.SET_SELECTED_COMMENT_POSITION_HOVER](state, position) {\n state.selectedCommentPositionHover = position;\n },\n\n [types.DISABLE_COMMENTS](state, value) {\n state.commentsDisabled = value;\n },\n [types.UPDATE_RESOLVABLE_DISCUSSIONS_COUNTS](state) {\n state.resolvableDiscussionsCount = state.discussions.filter(\n (discussion) => !discussion.individual_note && discussion.resolvable,\n ).length;\n state.unresolvedDiscussionsCount = state.discussions.filter(\n (discussion) =>\n !discussion.individual_note &&\n discussion.resolvable &&\n discussion.notes.some((note) => note.resolvable && !note.resolved),\n ).length;\n },\n\n [types.CONVERT_TO_DISCUSSION](state, discussionId) {\n const convertedDisscussionIds = [...state.convertedDisscussionIds, discussionId];\n Object.assign(state, { convertedDisscussionIds });\n },\n\n [types.REMOVE_CONVERTED_DISCUSSION](state, discussionId) {\n const convertedDisscussionIds = [...state.convertedDisscussionIds];\n\n convertedDisscussionIds.splice(convertedDisscussionIds.indexOf(discussionId), 1);\n Object.assign(state, { convertedDisscussionIds });\n },\n\n [types.SET_CURRENT_DISCUSSION_ID](state, discussionId) {\n state.currentDiscussionId = discussionId;\n },\n\n [types.REQUEST_DESCRIPTION_VERSION](state) {\n state.isLoadingDescriptionVersion = true;\n },\n [types.RECEIVE_DESCRIPTION_VERSION](state, { descriptionVersion, versionId }) {\n const descriptionVersions = { ...state.descriptionVersions, [versionId]: descriptionVersion };\n Object.assign(state, { descriptionVersions, isLoadingDescriptionVersion: false });\n },\n [types.RECEIVE_DESCRIPTION_VERSION_ERROR](state) {\n state.isLoadingDescriptionVersion = false;\n },\n [types.REQUEST_DELETE_DESCRIPTION_VERSION](state) {\n state.isLoadingDescriptionVersion = true;\n },\n [types.RECEIVE_DELETE_DESCRIPTION_VERSION](state, descriptionVersion) {\n state.isLoadingDescriptionVersion = false;\n Object.assign(state.descriptionVersions, descriptionVersion);\n },\n [types.RECEIVE_DELETE_DESCRIPTION_VERSION_ERROR](state) {\n state.isLoadingDescriptionVersion = false;\n },\n [types.UPDATE_ASSIGNEES](state, assignees) {\n state.noteableData.assignees = assignees;\n },\n [types.SET_FETCHING_DISCUSSIONS](state, value) {\n state.currentlyFetchingDiscussions = value;\n },\n [types.SET_DONE_FETCHING_BATCH_DISCUSSIONS](state, value) {\n state.doneFetchingBatchDiscussions = value;\n },\n [types.SET_PROMOTE_COMMENT_TO_TIMELINE_PROGRESS](state, value) {\n state.isPromoteCommentToTimelineEventInProgress = value;\n },\n [types.SET_IS_POLLING_INITIALIZED](state, value) {\n state.isPollingInitialized = value;\n },\n [types.SET_MERGE_REQUEST_FILTERS](state, value) {\n state.mergeRequestFilters = value;\n },\n};\n","import { ASC, MR_FILTER_OPTIONS } from '../constants';\n\nconst createState = () => ({\n discussions: [],\n discussionSortOrder: ASC,\n persistSortOrder: true,\n convertedDisscussionIds: [],\n targetNoteHash: null,\n lastFetchedAt: null,\n currentDiscussionId: null,\n batchSuggestionsInfo: [],\n currentlyFetchingDiscussions: false,\n doneFetchingBatchDiscussions: false,\n /**\n * selectedCommentPosition & selectedCommentPositionHover structures are the same as `position.line_range`:\n * {\n * start: { line_code: string, new_line: number, old_line:number, type: string },\n * end: { line_code: string, new_line: number, old_line:number, type: string },\n * }\n */\n selectedCommentPosition: null,\n selectedCommentPositionHover: null,\n\n // View layer\n isToggleStateButtonLoading: false,\n isNotesFetched: false,\n isLoading: true,\n isLoadingDescriptionVersion: false,\n isPromoteCommentToTimelineEventInProgress: false,\n\n // holds endpoints and permissions provided through haml\n notesData: {\n markdownDocsPath: '',\n },\n userData: {},\n noteableData: {\n discussion_locked: false,\n confidential: false, // TODO: Move data like this to Issue Store, should not be apart of notes.\n current_user: {},\n preview_note_path: 'path/to/preview',\n },\n isResolvingDiscussion: false,\n commentsDisabled: false,\n resolvableDiscussionsCount: 0,\n unresolvedDiscussionsCount: 0,\n descriptionVersions: {},\n isTimelineEnabled: false,\n isFetching: false,\n isPollingInitialized: false,\n mergeRequestFilters: MR_FILTER_OPTIONS.map((f) => f.value),\n});\n\nexport default createState;\n","import * as actions from '../actions';\nimport * as getters from '../getters';\nimport mutations from '../mutations';\nimport createState from '../state';\n\nexport default () => ({\n state: createState(),\n actions,\n getters,\n mutations,\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"timeline-entry\"},[_c('div',{staticClass:\"timeline-entry-inner\"},[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./timeline_entry_item.vue?vue&type=template&id=0702bda7\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = clone;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getAlert\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"alertManagementAlert\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detailsUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"severity\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eventCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"monitoringTool\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"service\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hosts\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"details\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":399}};\n doc.loc.source = {\"body\":\"query getAlert($iid: String!, $fullPath: ID!) {\\n project(fullPath: $fullPath) {\\n id\\n issue(iid: $iid) {\\n id\\n alertManagementAlert {\\n id\\n iid\\n title\\n detailsUrl\\n severity\\n status\\n startedAt\\n eventCount\\n monitoringTool\\n service\\n description\\n endedAt\\n hosts\\n details\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"getAlert\"] = oneQuery(doc, \"getAlert\");\n \n","import createEventHub from '~/helpers/event_hub_factory';\n\nconst eventHub = createEventHub();\n\n// TODO: remove eventHub hack after code splitting refactor\nwindow.emitSidebarEvent = (...args) => eventHub.$emit(...args);\n\nexport default eventHub;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"editNoteForm\",staticClass:\"note-edit-form current-note-edit-form js-discussion-note-form\"},[(_vm.conflictWhileEditing)?_c('div',{staticClass:\"js-conflict-edit-warning alert alert-danger\"},[_c('gl-sprintf',{attrs:{\"message\":_vm.changedCommentText.text,\"placeholders\":_vm.changedCommentText.placeholder},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.noteHash,\"target\":\"_blank\"}},[_vm._v(_vm._s(content))])]}}],null,false,2525184110)})],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"flash-container\"}),_vm._v(\" \"),_c('form',{staticClass:\"edit-note common-note-form js-quick-submit gfm-form\",attrs:{\"data-line-code\":_vm.lineCode}},[_c('comment-field-layout',{attrs:{\"is-internal-note\":_vm.discussionNote.internal,\"note\":_vm.updatedNoteBody,\"noteable-data\":_vm.getNoteableData}},[_c('markdown-editor',{ref:\"markdownEditor\",attrs:{\"value\":_vm.updatedNoteBody,\"render-markdown-path\":_vm.markdownPreviewPath,\"markdown-docs-path\":_vm.markdownDocsPath,\"code-suggestions-config\":_vm.codeSuggestionsConfig,\"add-spacing-classes\":false,\"help-page-path\":_vm.helpPagePath,\"note\":_vm.discussionNote,\"noteable-type\":_vm.noteableType,\"form-field-props\":_vm.formFieldProps,\"autosave-key\":_vm.autosaveKey,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"disabled\":_vm.shouldDisableField,\"supports-quick-actions\":\"\",\"autofocus\":_vm.autofocus,\"restore-from-autosave\":_vm.restoreFromAutosave},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.shiftKey)return null;if(!$event.metaKey)return null;_vm.handleKeySubmit((_vm.forceUpdate = true))},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.shiftKey)return null;if(!$event.ctrlKey)return null;_vm.handleKeySubmit((_vm.forceUpdate = true))},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.metaKey)return null;if($event.ctrlKey||$event.shiftKey||$event.altKey)return null;return _vm.handleKeySubmit()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.ctrlKey)return null;if($event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.handleKeySubmit()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"]))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.editMyLastNote()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.cancelHandler(true)}],\"input\":_vm.onInput,\"handleSuggestDismissed\":() => _vm.$emit('handleSuggestDismissed')}})],1),_vm._v(\" \"),(_vm.glAbilities.measureCommentTemperature)?_c('comment-temperature',{ref:\"commentTemperature\",attrs:{\"item-id\":_vm.getNoteableData.id,\"item-type\":_vm.getNoteableData.noteableType,\"user-id\":_vm.currentUserId},on:{\"save\":function($event){return _vm.onSaveHandler()}},model:{value:(_vm.updatedNoteBody),callback:function ($$v) {_vm.updatedNoteBody=$$v},expression:\"updatedNoteBody\"}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"note-form-actions gl-font-size-0\"},[(_vm.showResolveDiscussionToggle)?[_c('label',[(_vm.discussionResolved)?[_c('gl-form-checkbox',{staticClass:\"js-unresolve-checkbox\",model:{value:(_vm.isUnresolving),callback:function ($$v) {_vm.isUnresolving=$$v},expression:\"isUnresolving\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Unresolve thread'))+\"\\n \")])]:[_c('gl-form-checkbox',{staticClass:\"js-resolve-checkbox\",model:{value:(_vm.isResolving),callback:function ($$v) {_vm.isResolving=$$v},expression:\"isResolving\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Resolve thread'))+\"\\n \")])]],2)]:_vm._e(),_vm._v(\" \"),(_vm.showBatchCommentsActions)?[_c('div',{staticClass:\"-gl-mb-3 gl-flex gl-flex-wrap\"},[_c('gl-button',{staticClass:\"gl-mb-3 sm:gl-mr-3\",attrs:{\"disabled\":_vm.isDisabled,\"category\":\"primary\",\"variant\":\"confirm\",\"data-testid\":\"start-review-button\"},on:{\"click\":_vm.handleAddToReview}},[(_vm.hasDrafts)?[_vm._v(_vm._s(_vm.__('Add to review')))]:[_vm._v(_vm._s(_vm.__('Start a review')))]],2),_vm._v(\" \"),_c('gl-button',{staticClass:\"js-comment-button gl-mb-3 sm:gl-mr-3\",attrs:{\"disabled\":_vm.isDisabled,\"category\":\"secondary\",\"variant\":\"confirm\",\"data-testid\":\"comment-now-button\"},on:{\"click\":function($event){return _vm.handleUpdate()}}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Add comment now'))+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"note-edit-cancel js-close-discussion-note-form gl-mb-3\",attrs:{\"category\":\"secondary\",\"variant\":\"default\",\"data-testid\":\"cancelBatchCommentsEnabled\"},on:{\"click\":function($event){return _vm.cancelHandler(true)}}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Cancel'))+\"\\n \")])],1)]:[_c('div',{staticClass:\"gl-display-sm-flex gl-font-size-0 gl-flex-wrap\"},[_c('gl-button',{staticClass:\"js-vue-issue-save js-comment-button gl-mb-3 sm:gl-mb-0 sm:gl-mr-3\",attrs:{\"disabled\":_vm.isDisabled,\"category\":\"primary\",\"variant\":\"confirm\",\"data-testid\":\"reply-comment-button\"},on:{\"click\":function($event){return _vm.handleUpdate()}}},[_vm._v(\"\\n \"+_vm._s(_vm.saveButtonTitle)+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"note-edit-cancel js-close-discussion-note-form\",attrs:{\"category\":\"secondary\",\"variant\":\"default\",\"data-testid\":\"cancel\"},on:{\"click\":function($event){return _vm.cancelHandler(true)}}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Cancel'))+\"\\n \")])],1)]],2)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_form.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_form.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlSprintf, GlLink, GlFormCheckbox } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapActions, mapState } from 'vuex';\nimport { mergeUrlParams } from '~/lib/utils/url_utility';\nimport { __ } from '~/locale';\nimport glAbilitiesMixin from '~/vue_shared/mixins/gl_abilities_mixin';\nimport MarkdownEditor from '~/vue_shared/components/markdown/markdown_editor.vue';\nimport { trackSavedUsingEditor } from '~/vue_shared/components/markdown/tracking';\nimport eventHub from '../event_hub';\nimport issuableStateMixin from '../mixins/issuable_state';\nimport resolvable from '../mixins/resolvable';\nimport { COMMENT_FORM } from '../i18n';\nimport { isSlashCommand } from '../utils';\nimport CommentFieldLayout from './comment_field_layout.vue';\n\nexport default {\n i18n: COMMENT_FORM,\n name: 'NoteForm',\n components: {\n MarkdownEditor,\n CommentFieldLayout,\n GlButton,\n GlSprintf,\n GlLink,\n GlFormCheckbox,\n CommentTemperature: () =>\n import(\n /* webpackChunkName: 'comment_temperature' */ 'ee_component/ai/components/comment_temperature.vue'\n ),\n },\n mixins: [issuableStateMixin, resolvable, glAbilitiesMixin()],\n props: {\n noteBody: {\n type: String,\n required: false,\n default: '',\n },\n noteId: {\n type: [String, Number],\n required: false,\n default: '',\n },\n saveButtonTitle: {\n type: String,\n required: false,\n default: __('Save comment'),\n },\n discussion: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n lineCode: {\n type: String,\n required: false,\n default: '',\n },\n resolveDiscussion: {\n type: Boolean,\n required: false,\n default: false,\n },\n line: {\n type: Object,\n required: false,\n default: null,\n },\n lines: {\n type: Array,\n required: false,\n default: () => [],\n },\n note: {\n type: Object,\n required: false,\n default: null,\n },\n diffFile: {\n type: Object,\n required: false,\n default: null,\n },\n helpPagePath: {\n type: String,\n required: false,\n default: '',\n },\n autosaveKey: {\n type: String,\n required: false,\n default: '',\n },\n showSuggestPopover: {\n type: Boolean,\n required: false,\n default: false,\n },\n isDraft: {\n type: Boolean,\n required: false,\n default: false,\n },\n autofocus: {\n type: Boolean,\n required: false,\n default: true,\n },\n restoreFromAutosave: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n updatedNoteBody: this.noteBody,\n conflictWhileEditing: false,\n isSubmitting: false,\n isMeasuringCommentTemperature: false,\n isResolving: this.resolveDiscussion,\n isUnresolving: !this.resolveDiscussion,\n onSaveHandler: null,\n resolveAsThread: true,\n isSubmittingWithKeydown: false,\n formFieldProps: {\n id: 'note_note',\n name: 'note[note]',\n 'aria-label': __('Reply to comment'),\n placeholder: this.$options.i18n.bodyPlaceholder,\n class: 'note-textarea js-gfm-input js-note-text markdown-area js-vue-issue-note-form',\n 'data-testid': 'reply-field',\n },\n };\n },\n computed: {\n ...mapGetters([\n 'getDiscussionLastNote',\n 'getNoteableData',\n 'getNoteableDataByProp',\n 'getNotesDataByProp',\n 'getUserDataByProp',\n ]),\n ...mapState({\n withBatchComments: (state) => state.batchComments?.withBatchComments,\n }),\n ...mapGetters('batchComments', ['hasDrafts']),\n autocompleteDataSources() {\n return gl.GfmAutoComplete?.dataSources;\n },\n showBatchCommentsActions() {\n return this.withBatchComments && this.noteId === '' && !this.discussion.for_commit;\n },\n showResolveDiscussionToggle() {\n if (!this.discussion?.notes) return false;\n\n return (\n this.discussion?.notes\n .filter((n) => n.resolvable)\n .some((n) => n.current_user?.can_resolve_discussion) || this.isDraft\n );\n },\n noteHash() {\n if (this.noteId) {\n return `#note_${this.noteId}`;\n }\n return '#';\n },\n noteableType() {\n return this.getNoteableData.noteableType;\n },\n diffParams() {\n if (this.diffFile) {\n return {\n filePath: this.diffFile.file_path,\n refs: this.diffFile.diff_refs,\n };\n }\n if (this.note && this.note.position) {\n return {\n filePath: this.note.position.new_path,\n refs: this.note.position,\n };\n }\n if (this.discussion && this.discussion.diff_file) {\n return {\n filePath: this.discussion.diff_file.file_path,\n refs: this.discussion.diff_file.diff_refs,\n };\n }\n\n return null;\n },\n markdownPreviewPath() {\n const notable = this.getNoteableDataByProp('preview_note_path');\n\n const previewSuggestions = this.line && this.diffParams;\n const params = previewSuggestions\n ? {\n preview_suggestions: previewSuggestions,\n line: this.line.new_line,\n file_path: this.diffParams.filePath,\n base_sha: this.diffParams.refs.base_sha,\n start_sha: this.diffParams.refs.start_sha,\n head_sha: this.diffParams.refs.head_sha,\n }\n : {};\n\n return mergeUrlParams(params, notable);\n },\n markdownDocsPath() {\n return this.getNotesDataByProp('markdownDocsPath');\n },\n currentUserId() {\n return this.getUserDataByProp('id');\n },\n isDisabled() {\n return !this.updatedNoteBody.length || this.isSubmitting;\n },\n isInternalNote() {\n return this.discussionNote.internal || this.discussion.confidential;\n },\n discussionNote() {\n const discussionNote = this.discussion.id\n ? this.getDiscussionLastNote(this.discussion)\n : this.note;\n return discussionNote || {};\n },\n canSuggest() {\n return (\n this.getNoteableData.can_receive_suggestion && this.line && this.line.can_receive_suggestion\n );\n },\n changedCommentText() {\n return {\n text: __(\n 'This comment changed after you started editing it. Review the %{startTag}updated comment%{endTag} to ensure information is not lost.',\n ),\n placeholder: { link: ['startTag', 'endTag'] },\n };\n },\n codeSuggestionsConfig() {\n return {\n canSuggest: this.canSuggest,\n line: this.line,\n lines: this.lines,\n showPopover: this.showSuggestPopover,\n diffFile: this.diffFile,\n };\n },\n shouldDisableField() {\n return this.isSubmitting && !this.isMeasuringCommentTemperature;\n },\n shouldMeasureNoteTemperature() {\n return !isSlashCommand(this.updatedNoteBody) && this.glAbilities.measureCommentTemperature;\n },\n },\n watch: {\n noteBody() {\n if (this.updatedNoteBody === this.noteBody) {\n this.updatedNoteBody = this.noteBody;\n } else {\n this.conflictWhileEditing = true;\n }\n },\n },\n mounted() {\n this.updatePlaceholder();\n },\n methods: {\n ...mapActions(['toggleResolveNote']),\n shouldToggleResolved(beforeSubmitDiscussionState) {\n return (\n this.showResolveDiscussionToggle && beforeSubmitDiscussionState !== this.newResolvedState()\n );\n },\n newResolvedState() {\n return (\n (this.discussionResolved && !this.isUnresolving) ||\n (!this.discussionResolved && this.isResolving)\n );\n },\n editMyLastNote() {\n if (this.updatedNoteBody === '') {\n const lastNoteInDiscussion = this.getDiscussionLastNote(this.discussion);\n\n if (lastNoteInDiscussion) {\n eventHub.$emit('enterEditMode', {\n noteId: lastNoteInDiscussion.id,\n });\n }\n }\n },\n cancelHandler(shouldConfirm = false) {\n // check if any dropdowns are active before sending the cancelation event\n if (\n !this.$refs.markdownEditor.$el\n .querySelector('textarea')\n ?.classList.contains('at-who-active')\n ) {\n this.$emit('cancelForm', shouldConfirm, this.noteBody !== this.updatedNoteBody);\n }\n },\n updatePlaceholder() {\n this.formFieldProps.placeholder = this.discussionNote?.internal\n ? this.$options.i18n.bodyPlaceholderInternal\n : this.$options.i18n.bodyPlaceholder;\n },\n onInput(value) {\n this.updatedNoteBody = value;\n },\n append(value) {\n this.$refs.markdownEditor.append(value);\n },\n handleKeySubmit(forceUpdate = false) {\n if (this.showBatchCommentsActions && !forceUpdate) {\n this.handleAddToReview();\n } else {\n this.isSubmittingWithKeydown = true;\n this.handleUpdate();\n }\n if (!this.isMeasuringCommentTemperature) {\n this.updatedNoteBody = '';\n }\n },\n runCommentTemperatureMeasurement(onSaveHandler) {\n this.isMeasuringCommentTemperature = true;\n this.$refs.commentTemperature.measureCommentTemperature();\n this.onSaveHandler = this[onSaveHandler].bind(this, { shouldMeasureTemperature: false });\n },\n handleUpdate({ shouldMeasureTemperature = true } = {}) {\n const beforeSubmitDiscussionState = this.discussionResolved;\n this.isSubmitting = true;\n if (shouldMeasureTemperature && this.shouldMeasureNoteTemperature) {\n this.runCommentTemperatureMeasurement('handleUpdate');\n return;\n }\n\n this.isMeasuringCommentTemperature = false;\n\n trackSavedUsingEditor(\n this.$refs.markdownEditor.isContentEditorActive,\n `${this.noteableType}_note`,\n );\n\n this.$emit(\n 'handleFormUpdate',\n this.updatedNoteBody,\n this.$refs.editNoteForm,\n () => {\n this.isSubmitting = false;\n\n if (this.shouldToggleResolved(beforeSubmitDiscussionState)) {\n this.resolveHandler(beforeSubmitDiscussionState);\n }\n },\n this.discussionResolved ? !this.isUnresolving : this.isResolving,\n );\n },\n handleAddToReview({ shouldMeasureTemperature = true } = {}) {\n const clickType = this.hasDrafts ? 'noteFormAddToReview' : 'noteFormStartReview';\n // check if draft should resolve thread\n const shouldResolve =\n (this.discussionResolved && !this.isUnresolving) ||\n (!this.discussionResolved && this.isResolving);\n this.isSubmitting = true;\n if (shouldMeasureTemperature && this.shouldMeasureNoteTemperature) {\n this.runCommentTemperatureMeasurement('handleAddToReview');\n return;\n }\n\n this.isMeasuringCommentTemperature = false;\n\n eventHub.$emit(clickType, { name: clickType });\n this.$emit(\n 'handleFormUpdateAddToReview',\n this.updatedNoteBody,\n shouldResolve,\n this.$refs.editNoteForm,\n () => {\n this.isSubmitting = false;\n },\n );\n },\n hasEmailParticipants() {\n return this.getNoteableData.issue_email_participants?.length;\n },\n },\n};\n</script>\n\n<template>\n <div ref=\"editNoteForm\" class=\"note-edit-form current-note-edit-form js-discussion-note-form\">\n <div v-if=\"conflictWhileEditing\" class=\"js-conflict-edit-warning alert alert-danger\">\n <gl-sprintf :message=\"changedCommentText.text\" :placeholders=\"changedCommentText.placeholder\">\n <template #link=\"{ content }\">\n <gl-link :href=\"noteHash\" target=\"_blank\">{{ content }}</gl-link>\n </template>\n </gl-sprintf>\n </div>\n <div class=\"flash-container\"></div>\n <form :data-line-code=\"lineCode\" class=\"edit-note common-note-form js-quick-submit gfm-form\">\n <comment-field-layout\n :is-internal-note=\"discussionNote.internal\"\n :note=\"updatedNoteBody\"\n :noteable-data=\"getNoteableData\"\n >\n <markdown-editor\n ref=\"markdownEditor\"\n :value=\"updatedNoteBody\"\n :render-markdown-path=\"markdownPreviewPath\"\n :markdown-docs-path=\"markdownDocsPath\"\n :code-suggestions-config=\"codeSuggestionsConfig\"\n :add-spacing-classes=\"false\"\n :help-page-path=\"helpPagePath\"\n :note=\"discussionNote\"\n :noteable-type=\"noteableType\"\n :form-field-props=\"formFieldProps\"\n :autosave-key=\"autosaveKey\"\n :autocomplete-data-sources=\"autocompleteDataSources\"\n :disabled=\"shouldDisableField\"\n supports-quick-actions\n :autofocus=\"autofocus\"\n :restore-from-autosave=\"restoreFromAutosave\"\n @keydown.shift.meta.enter=\"handleKeySubmit((forceUpdate = true))\"\n @keydown.shift.ctrl.enter=\"handleKeySubmit((forceUpdate = true))\"\n @keydown.meta.enter.exact=\"handleKeySubmit()\"\n @keydown.ctrl.enter.exact=\"handleKeySubmit()\"\n @keydown.exact.up=\"editMyLastNote()\"\n @keydown.exact.esc=\"cancelHandler(true)\"\n @input=\"onInput\"\n @handleSuggestDismissed=\"() => $emit('handleSuggestDismissed')\"\n />\n </comment-field-layout>\n <comment-temperature\n v-if=\"glAbilities.measureCommentTemperature\"\n ref=\"commentTemperature\"\n v-model=\"updatedNoteBody\"\n :item-id=\"getNoteableData.id\"\n :item-type=\"getNoteableData.noteableType\"\n :user-id=\"currentUserId\"\n @save=\"onSaveHandler()\"\n />\n <div class=\"note-form-actions gl-font-size-0\">\n <template v-if=\"showResolveDiscussionToggle\">\n <label>\n <template v-if=\"discussionResolved\">\n <gl-form-checkbox v-model=\"isUnresolving\" class=\"js-unresolve-checkbox\">\n {{ __('Unresolve thread') }}\n </gl-form-checkbox>\n </template>\n <template v-else>\n <gl-form-checkbox v-model=\"isResolving\" class=\"js-resolve-checkbox\">\n {{ __('Resolve thread') }}\n </gl-form-checkbox>\n </template>\n </label>\n </template>\n\n <template v-if=\"showBatchCommentsActions\">\n <div class=\"-gl-mb-3 gl-flex gl-flex-wrap\">\n <gl-button\n :disabled=\"isDisabled\"\n category=\"primary\"\n variant=\"confirm\"\n class=\"gl-mb-3 sm:gl-mr-3\"\n data-testid=\"start-review-button\"\n @click=\"handleAddToReview\"\n >\n <template v-if=\"hasDrafts\">{{ __('Add to review') }}</template>\n <template v-else>{{ __('Start a review') }}</template>\n </gl-button>\n <gl-button\n :disabled=\"isDisabled\"\n category=\"secondary\"\n variant=\"confirm\"\n data-testid=\"comment-now-button\"\n class=\"js-comment-button gl-mb-3 sm:gl-mr-3\"\n @click=\"handleUpdate()\"\n >\n {{ __('Add comment now') }}\n </gl-button>\n <gl-button\n class=\"note-edit-cancel js-close-discussion-note-form gl-mb-3\"\n category=\"secondary\"\n variant=\"default\"\n data-testid=\"cancelBatchCommentsEnabled\"\n @click=\"cancelHandler(true)\"\n >\n {{ __('Cancel') }}\n </gl-button>\n </div>\n </template>\n <template v-else>\n <div class=\"gl-display-sm-flex gl-font-size-0 gl-flex-wrap\">\n <gl-button\n :disabled=\"isDisabled\"\n category=\"primary\"\n variant=\"confirm\"\n data-testid=\"reply-comment-button\"\n class=\"js-vue-issue-save js-comment-button gl-mb-3 sm:gl-mb-0 sm:gl-mr-3\"\n @click=\"handleUpdate()\"\n >\n {{ saveButtonTitle }}\n </gl-button>\n <gl-button\n class=\"note-edit-cancel js-close-discussion-note-form\"\n category=\"secondary\"\n variant=\"default\"\n data-testid=\"cancel\"\n @click=\"cancelHandler(true)\"\n >\n {{ __('Cancel') }}\n </gl-button>\n </div>\n </template>\n </div>\n </form>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./note_form.vue?vue&type=template&id=30ac93d9\"\nimport script from \"./note_form.vue?vue&type=script&lang=js\"\nexport * from \"./note_form.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import produce from 'immer';\nimport createDefaultClient, { createApolloClientWithCaching } from '~/lib/graphql';\nimport getIssuesQuery from 'ee_else_ce/issues/list/queries/get_issues.query.graphql';\nimport { config } from '~/graphql_shared/issuable_client';\n\nlet client;\n\nconst resolvers = {\n Mutation: {\n reorderIssues: (_, { oldIndex, newIndex, namespace, serializedVariables }, { cache }) => {\n const variables = JSON.parse(serializedVariables);\n const sourceData = cache.readQuery({ query: getIssuesQuery, variables });\n\n const data = produce(sourceData, (draftData) => {\n const issues = draftData[namespace].issues.nodes.slice();\n const issueToMove = issues[oldIndex];\n issues.splice(oldIndex, 1);\n issues.splice(newIndex, 0, issueToMove);\n\n draftData[namespace].issues.nodes = issues;\n });\n\n cache.writeQuery({ query: getIssuesQuery, variables, data });\n },\n },\n};\n\nexport async function gqlClient() {\n if (client) return client;\n client = gon.features?.frontendCaching\n ? await createApolloClientWithCaching(resolvers, { localCacheKey: 'issues_list', ...config })\n : createDefaultClient(resolvers, config);\n return client;\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"mrTimeTrackingReport\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelogs\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"TimelogFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":253}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/issuable_timelogs.fragment.graphql\\\"\\n\\nquery mrTimeTrackingReport($id: MergeRequestID!) {\\n issuable: mergeRequest(id: $id) {\\n id\\n title\\n timelogs {\\n nodes {\\n ...TimelogFragment\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/issuable_timelogs.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"mrTimeTrackingReport\"] = oneQuery(doc, \"mrTimeTrackingReport\");\n \n","import Vue from 'vue';\n\nexport default Vue.observable({\n selectedProject: {},\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-dropdown',{ref:\"dropdown\",attrs:{\"block\":\"\",\"header-text\":_vm.i18n.assignAttribute,\"lazy\":\"\",\"text\":_vm.dropdownText,\"toggle-class\":\"gl-m-0\"},on:{\"show\":_vm.handleShow,\"shown\":_vm.setFocus},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_vm._t(\"footer\")]},proxy:true}],null,true)},[_c('gl-search-box-by-type',{ref:\"search\",attrs:{\"placeholder\":_vm.__('Search')},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),_vm._v(\" \"),_c('gl-dropdown-item',{attrs:{\"data-testid\":`no-${_vm.formatIssuableAttribute.kebab}-item`,\"is-check-item\":\"\",\"is-checked\":_vm.isAttributeChecked(_vm.$options.noAttributeId)},on:{\"click\":function($event){return _vm.$emit('change', { id: _vm.$options.noAttributeId })}}},[_vm._v(\"\\n \"+_vm._s(_vm.i18n.noAttribute)+\"\\n \")]),_vm._v(\" \"),_c('gl-dropdown-divider'),_vm._v(\" \"),(_vm.$apollo.queries.attributesList.loading)?_c('gl-loading-icon',{staticClass:\"gl-py-4\",attrs:{\"size\":\"sm\",\"data-testid\":\"loading-icon-dropdown\"}}):[(_vm.emptyPropsList)?_c('gl-dropdown-text',[_vm._v(\"\\n \"+_vm._s(_vm.i18n.noAttributesFound)+\"\\n \")]):_vm._t(\"list\",function(){return _vm._l((_vm.attributesList),function(attrItem){return _c('gl-dropdown-item',{key:attrItem.id,attrs:{\"is-check-item\":\"\",\"is-checked\":_vm.isAttributeChecked(attrItem.id),\"data-testid\":`${_vm.formatIssuableAttribute.kebab}-items`},on:{\"click\":function($event){return _vm.updateAttribute(attrItem)}}},[_vm._v(\"\\n \"+_vm._s(attrItem.title)+\"\\n \"),(_vm.isAttributeOverdue(attrItem))?[_vm._v(_vm._s(_vm.$options.i18n.expired))]:_vm._e()],2)})},{\"attributesList\":_vm.attributesList,\"isAttributeChecked\":_vm.isAttributeChecked,\"updateAttribute\":_vm.updateAttribute})]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_dropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlDropdown,\n GlDropdownDivider,\n GlDropdownItem,\n GlDropdownText,\n GlLoadingIcon,\n GlSearchBoxByType,\n} from '@gitlab/ui';\nimport { kebabCase, snakeCase } from 'lodash';\nimport {\n TYPE_EPIC,\n TYPE_ISSUE,\n TYPE_MERGE_REQUEST,\n WORKSPACE_GROUP,\n WORKSPACE_PROJECT,\n} from '~/issues/constants';\nimport { __ } from '~/locale';\nimport {\n defaultEpicSort,\n dropdowni18nText,\n epicIidPattern,\n IssuableAttributeState,\n IssuableAttributeType,\n IssuableAttributeTypeKeyMap,\n LocalizedIssuableAttributeType,\n noAttributeId,\n} from 'ee_else_ce/sidebar/constants';\nimport { issuableAttributesQueries } from 'ee_else_ce/sidebar/queries/constants';\nimport { createAlert } from '~/alert';\nimport { PathIdSeparator } from '~/related_issues/constants';\nimport { WORK_ITEM_TYPE_ENUM_EPIC } from '~/work_items/constants';\n\nexport default {\n noAttributeId,\n i18n: {\n expired: __('(expired)'),\n },\n components: {\n GlDropdown,\n GlDropdownItem,\n GlDropdownText,\n GlDropdownDivider,\n GlSearchBoxByType,\n GlLoadingIcon,\n },\n inject: {\n issuableAttributesQueries: {\n default: issuableAttributesQueries,\n },\n issuableAttributesState: {\n default: IssuableAttributeState,\n },\n widgetTitleText: {\n default: {\n [IssuableAttributeType.Milestone]: __('Milestone'),\n expired: __('(expired)'),\n none: __('None'),\n },\n },\n },\n props: {\n attrWorkspacePath: {\n required: true,\n type: String,\n },\n currentAttribute: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n issuableAttribute: {\n type: String,\n required: true,\n },\n issuableType: {\n type: String,\n required: true,\n validator(value) {\n return [TYPE_ISSUE, TYPE_MERGE_REQUEST].includes(value);\n },\n },\n workspaceType: {\n type: String,\n required: false,\n default: WORKSPACE_PROJECT,\n validator(value) {\n return [WORKSPACE_GROUP, WORKSPACE_PROJECT].includes(value);\n },\n },\n showWorkItemEpics: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n attributesList: [],\n searchTerm: '',\n skipQuery: true,\n };\n },\n apollo: {\n attributesList: {\n query() {\n if (this.isEpic && this.showWorkItemEpics) {\n return this.issuableAttributesQueries[IssuableAttributeType.Parent].list[\n this.issuableType\n ].query;\n }\n\n const { list } = this.issuableAttributeQuery;\n const { query } = list[this.issuableType];\n return query[this.workspaceType] || query;\n },\n variables() {\n if (!this.isEpic) {\n return {\n fullPath: this.attrWorkspacePath,\n title: this.searchTerm,\n state: this.issuableAttributesState[this.issuableAttribute],\n };\n }\n\n const variables = {\n fullPath: this.attrWorkspacePath,\n state: this.issuableAttributesState[this.issuableAttribute],\n sort: defaultEpicSort,\n };\n\n if (this.showWorkItemEpics) {\n variables.types = [WORK_ITEM_TYPE_ENUM_EPIC];\n }\n\n if (epicIidPattern.test(this.searchTerm)) {\n const matches = this.searchTerm.match(epicIidPattern);\n variables.iidStartsWith = matches.groups.iid;\n } else if (this.searchTerm !== '') {\n variables.in = 'TITLE';\n variables.title = this.searchTerm;\n }\n\n return variables;\n },\n update: (data) => data?.workspace?.attributes?.nodes ?? [],\n error(error) {\n createAlert({ message: this.i18n.listFetchError, captureError: true, error });\n },\n skip() {\n if (\n this.isEpic &&\n this.searchTerm.startsWith(PathIdSeparator.Epic) &&\n this.searchTerm.length < 2\n ) {\n return true;\n }\n return this.skipQuery;\n },\n debounce: 250,\n },\n },\n computed: {\n attributeTypeTitle() {\n return this.widgetTitleText[this.issuableAttribute];\n },\n dropdownText() {\n return this.currentAttribute ? this.currentAttribute?.title : this.attributeTypeTitle;\n },\n emptyPropsList() {\n return this.attributesList.length === 0;\n },\n i18n() {\n const localizedAttribute =\n LocalizedIssuableAttributeType[IssuableAttributeTypeKeyMap[this.issuableAttribute]];\n return dropdowni18nText(localizedAttribute, this.issuableType);\n },\n isEpic() {\n // MV to EE https://gitlab.com/gitlab-org/gitlab/-/issues/345311\n return this.issuableAttribute === TYPE_EPIC;\n },\n issuableAttributeQuery() {\n return this.issuableAttributesQueries[this.issuableAttribute];\n },\n formatIssuableAttribute() {\n return {\n kebab: kebabCase(this.issuableAttribute),\n snake: snakeCase(this.issuableAttribute),\n };\n },\n },\n methods: {\n isAttributeChecked(attributeId) {\n return (\n attributeId === this.currentAttribute?.id || (!this.currentAttribute?.id && !attributeId)\n );\n },\n isAttributeOverdue(attribute) {\n return this.issuableAttribute === IssuableAttributeType.Milestone\n ? attribute?.expired\n : false;\n },\n handleShow() {\n this.skipQuery = false;\n },\n setFocus() {\n this.$refs?.search?.focusInput();\n },\n show() {\n this.$refs.dropdown.show();\n },\n updateAttribute(attribute) {\n this.$emit('change', attribute);\n },\n },\n};\n</script>\n\n<template>\n <gl-dropdown\n ref=\"dropdown\"\n block\n :header-text=\"i18n.assignAttribute\"\n lazy\n :text=\"dropdownText\"\n toggle-class=\"gl-m-0\"\n @show=\"handleShow\"\n @shown=\"setFocus\"\n >\n <gl-search-box-by-type ref=\"search\" v-model=\"searchTerm\" :placeholder=\"__('Search')\" />\n <gl-dropdown-item\n :data-testid=\"`no-${formatIssuableAttribute.kebab}-item`\"\n is-check-item\n :is-checked=\"isAttributeChecked($options.noAttributeId)\"\n @click=\"$emit('change', { id: $options.noAttributeId })\"\n >\n {{ i18n.noAttribute }}\n </gl-dropdown-item>\n <gl-dropdown-divider />\n <gl-loading-icon\n v-if=\"$apollo.queries.attributesList.loading\"\n size=\"sm\"\n class=\"gl-py-4\"\n data-testid=\"loading-icon-dropdown\"\n />\n <template v-else>\n <gl-dropdown-text v-if=\"emptyPropsList\">\n {{ i18n.noAttributesFound }}\n </gl-dropdown-text>\n <slot\n v-else\n name=\"list\"\n :attributes-list=\"attributesList\"\n :is-attribute-checked=\"isAttributeChecked\"\n :update-attribute=\"updateAttribute\"\n >\n <gl-dropdown-item\n v-for=\"attrItem in attributesList\"\n :key=\"attrItem.id\"\n is-check-item\n :is-checked=\"isAttributeChecked(attrItem.id)\"\n :data-testid=\"`${formatIssuableAttribute.kebab}-items`\"\n @click=\"updateAttribute(attrItem)\"\n >\n {{ attrItem.title }}\n <template v-if=\"isAttributeOverdue(attrItem)\">{{ $options.i18n.expired }}</template>\n </gl-dropdown-item>\n </slot>\n </template>\n <template #footer>\n <slot name=\"footer\"></slot>\n </template>\n </gl-dropdown>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_dropdown.vue?vue&type=template&id=c8002916\"\nimport script from \"./sidebar_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_dropdown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { sprintf, s__ } from '~/locale';\n\n/**\n * Combines each given item into a noun series sentence fragment. It does this\n * in a way that supports i18n by giving context and punctuation to the locale\n * functions.\n *\n * **Examples:**\n *\n * - `[\"A\", \"B\"] => \"A and B\"`\n * - `[\"A\", \"B\", \"C\"] => \"A, B, and C\"`\n *\n * **Why only nouns?**\n *\n * Some languages need a bit more context to translate other series.\n *\n * @param {String[]} items\n */\nexport const toNounSeriesText = (items, { onlyCommas = false } = {}) => {\n if (items.length === 0) {\n return '';\n }\n if (items.length === 1) {\n return sprintf(s__(`nounSeries|%{item}`), { item: items[0] }, false);\n }\n if (items.length === 2 && !onlyCommas) {\n return sprintf(\n s__('nounSeries|%{firstItem} and %{lastItem}'),\n {\n firstItem: items[0],\n lastItem: items[1],\n },\n false,\n );\n }\n\n return items.reduce((item, nextItem, idx) =>\n idx === items.length - 1 && !onlyCommas\n ? sprintf(s__('nounSeries|%{item}, and %{lastItem}'), { item, lastItem: nextItem }, false)\n : sprintf(s__('nounSeries|%{item}, %{nextItem}'), { item, nextItem }, false),\n );\n};\n\nexport default {\n toNounSeriesText,\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgets\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidget\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetDescription\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"descriptionHtml\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastEditedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastEditedBy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"taskCompletionStatus\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"completedCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetAssignees\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowsMultipleAssignees\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canInviteMembers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignees\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetLabels\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowsScopedLabels\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetStartAndDueDate\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rollUp\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isFixed\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetTimeTracking\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timeEstimate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelogs\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"TimelogFragment\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalTimeSpent\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetWeight\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rolledUpWeight\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rolledUpCompletedWeight\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgetDefinition\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"editable\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rollUp\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetProgress\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updatedAt\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetHierarchy\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasChildren\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasParent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rolledUpCountsByType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"countsByState\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"opened\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"all\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"closed\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iconName\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parent\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iconName\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetIteration\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iteration\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadence\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetMilestone\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"milestone\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MilestoneFragment\"},\"directives\":[]}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetNotes\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"discussionLocked\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetHealthStatus\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rolledUpHealthStatus\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetNotifications\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribed\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetCurrentUserTodos\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentUserTodos\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"pending\"}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetColor\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"textColor\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetLinkedItems\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"linkedItems\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"linkId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"linkType\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetCrmContacts\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contacts\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"email\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"phone\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"organization\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"defaultRate\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":2713}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/label.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n#import \\\"~/work_items/graphql/milestone.fragment.graphql\\\"\\n#import \\\"~/work_items/graphql/timelog.fragment.graphql\\\"\\n\\nfragment WorkItemWidgets on WorkItemWidget {\\n type\\n ... on WorkItemWidgetDescription {\\n description\\n descriptionHtml\\n lastEditedAt\\n lastEditedBy {\\n name\\n webPath\\n }\\n taskCompletionStatus {\\n completedCount\\n count\\n }\\n }\\n ... on WorkItemWidgetAssignees {\\n allowsMultipleAssignees\\n canInviteMembers\\n assignees {\\n nodes {\\n ...User\\n }\\n }\\n }\\n ... on WorkItemWidgetLabels {\\n allowsScopedLabels\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n }\\n ... on WorkItemWidgetStartAndDueDate {\\n dueDate\\n startDate\\n rollUp\\n isFixed\\n }\\n ... on WorkItemWidgetTimeTracking {\\n timeEstimate\\n timelogs {\\n nodes {\\n ...TimelogFragment\\n }\\n }\\n totalTimeSpent\\n }\\n ... on WorkItemWidgetWeight {\\n weight\\n rolledUpWeight\\n rolledUpCompletedWeight\\n widgetDefinition {\\n editable\\n rollUp\\n }\\n }\\n ... on WorkItemWidgetProgress {\\n progress\\n updatedAt\\n }\\n ... on WorkItemWidgetHierarchy {\\n hasChildren\\n hasParent\\n rolledUpCountsByType {\\n countsByState {\\n opened\\n all\\n closed\\n }\\n workItemType {\\n id\\n name\\n iconName\\n }\\n }\\n parent {\\n id\\n iid\\n title\\n confidential\\n webUrl\\n workItemType {\\n id\\n name\\n iconName\\n }\\n }\\n }\\n ... on WorkItemWidgetIteration {\\n iteration {\\n id\\n title\\n startDate\\n dueDate\\n webUrl\\n iterationCadence {\\n id\\n title\\n }\\n }\\n }\\n ... on WorkItemWidgetMilestone {\\n milestone {\\n ...MilestoneFragment\\n }\\n }\\n ... on WorkItemWidgetNotes {\\n discussionLocked\\n }\\n ... on WorkItemWidgetHealthStatus {\\n healthStatus\\n rolledUpHealthStatus {\\n count\\n healthStatus\\n }\\n }\\n ... on WorkItemWidgetNotifications {\\n subscribed\\n }\\n ... on WorkItemWidgetCurrentUserTodos {\\n currentUserTodos(state: pending) {\\n nodes {\\n id\\n }\\n }\\n }\\n\\n ... on WorkItemWidgetColor {\\n color\\n textColor\\n }\\n\\n ... on WorkItemWidgetLinkedItems {\\n linkedItems {\\n nodes {\\n linkId\\n linkType\\n }\\n }\\n }\\n\\n ... on WorkItemWidgetCrmContacts {\\n contacts {\\n nodes {\\n id\\n email\\n firstName\\n lastName\\n phone\\n description\\n organization {\\n id\\n name\\n description\\n defaultRate\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/label.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/work_items/graphql/milestone.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/work_items/graphql/timelog.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"WorkItemWidgets\"] = oneQuery(doc, \"WorkItemWidgets\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('noteable-note',{staticClass:\"draft-note !gl-mb-0\",attrs:{\"note\":_vm.draft,\"line\":_vm.line,\"discussion-root\":true,\"autosave-key\":_vm.autosaveDraftKey,\"restore-from-autosave\":_vm.restoreFromAutosave},on:{\"handleEdit\":_vm.handleEditing,\"cancelForm\":_vm.handleNotEditing,\"updateSuccess\":_vm.handleNotEditing,\"handleDeleteNote\":_vm.deleteDraft,\"handleUpdateNote\":_vm.update,\"toggleResolveStatus\":function($event){return _vm.toggleResolveDiscussion(_vm.draft.id)}},nativeOn:{\"mouseenter\":function($event){return _vm.handleMouseEnter(_vm.draft)},\"mouseleave\":function($event){return _vm.handleMouseLeave(_vm.draft)}},scopedSlots:_vm._u([{key:\"note-header-info\",fn:function(){return [_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-mr-2\",attrs:{\"variant\":\"warning\",\"title\":_vm.__('Pending comments are hidden until you submit your review.')}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Pending'))+\"\\n \")])]},proxy:true},(!_vm.draft.isEditing)?{key:\"after-note-body\",fn:function(){return [(_vm.draftCommands)?_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(_vm.draftCommands),expression:\"draftCommands\",arg:_vm.$options.safeHtmlConfig}],staticClass:\"draft-note-referenced-commands gl-mb-2 gl-ml-3 gl-text-sm gl-text-subtle\"}):_vm._e()]},proxy:true}:null],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./draft_note.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./draft_note.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlTooltipDirective } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters, mapMutations, mapState } from 'vuex';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport NoteableNote from '~/notes/components/noteable_note.vue';\nimport * as types from '~/batch_comments/stores/modules/batch_comments/mutation_types';\nimport { clearDraft } from '~/lib/utils/autosave';\n\nexport default {\n components: {\n NoteableNote,\n GlBadge,\n },\n directives: {\n SafeHtml,\n GlTooltip: GlTooltipDirective,\n },\n props: {\n draft: {\n type: Object,\n required: true,\n },\n line: {\n type: Object,\n required: false,\n default: null,\n },\n autosaveKey: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n // diff files in virtual scroller can be culled when scrolling the page (their instances get destroyed)\n // when a file reappears on the screen we need to restore draft's form: opened state and edited note text\n // we can detect if a file was culled with an opened form by saving the form opened state on the draft object\n // this can be used to force markdown editor to use autosaved content instead of an unedited draft note text\n // https://gitlab.com/gitlab-org/gitlab/-/issues/436954\n restoreFromAutosave: Boolean(this.draft.isEditing),\n };\n },\n computed: {\n ...mapState('batchComments', ['isPublishing']),\n ...mapGetters('batchComments', ['isPublishingDraft']),\n draftCommands() {\n return this.draft.references.commands;\n },\n autosaveDraftKey() {\n if (!this.autosaveKey) return null;\n return `${this.autosaveKey}/draft-note-${this.draft.id}`;\n },\n },\n mounted() {\n if (window.location.hash && window.location.hash === `#note_${this.draft.id}`) {\n this.scrollToDraft(this.draft);\n }\n },\n methods: {\n ...mapActions('batchComments', [\n 'deleteDraft',\n 'updateDraft',\n 'publishSingleDraft',\n 'scrollToDraft',\n 'toggleResolveDiscussion',\n ]),\n ...mapMutations('batchComments', {\n setDraftEditing: types.SET_DRAFT_EDITING,\n }),\n ...mapActions(['setSelectedCommentPositionHover']),\n update(data) {\n this.updateDraft(data);\n },\n publishNow() {\n this.publishSingleDraft(this.draft.id);\n },\n handleEditing() {\n this.setDraftEditing({ draftId: this.draft.id, isEditing: true });\n },\n handleNotEditing() {\n this.restoreFromAutosave = false;\n this.clearDraft();\n this.setDraftEditing({ draftId: this.draft.id, isEditing: false });\n },\n handleMouseEnter(draft) {\n if (draft.position) {\n this.setSelectedCommentPositionHover(draft.position.line_range);\n }\n },\n handleMouseLeave(draft) {\n // Even though position isn't used here we still don't want to unnecessarily call a mutation\n // The lack of position tells us that highlighting is irrelevant in this context\n if (draft.position) {\n this.setSelectedCommentPositionHover();\n }\n },\n clearDraft() {\n if (this.autosaveDraftKey) clearDraft(this.autosaveDraftKey);\n },\n },\n safeHtmlConfig: {\n ADD_TAGS: ['use', 'gl-emoji', 'copy-code'],\n },\n};\n</script>\n<template>\n <noteable-note\n :note=\"draft\"\n :line=\"line\"\n :discussion-root=\"true\"\n class=\"draft-note !gl-mb-0\"\n :autosave-key=\"autosaveDraftKey\"\n :restore-from-autosave=\"restoreFromAutosave\"\n @handleEdit=\"handleEditing\"\n @cancelForm=\"handleNotEditing\"\n @updateSuccess=\"handleNotEditing\"\n @handleDeleteNote=\"deleteDraft\"\n @handleUpdateNote=\"update\"\n @toggleResolveStatus=\"toggleResolveDiscussion(draft.id)\"\n @mouseenter.native=\"handleMouseEnter(draft)\"\n @mouseleave.native=\"handleMouseLeave(draft)\"\n >\n <template #note-header-info>\n <gl-badge\n v-gl-tooltip\n variant=\"warning\"\n class=\"gl-mr-2\"\n :title=\"__('Pending comments are hidden until you submit your review.')\"\n >\n {{ __('Pending') }}\n </gl-badge>\n </template>\n <template v-if=\"!draft.isEditing\" #after-note-body>\n <div\n v-if=\"draftCommands\"\n v-safe-html:[$options.safeHtmlConfig]=\"draftCommands\"\n class=\"draft-note-referenced-commands gl-mb-2 gl-ml-3 gl-text-sm gl-text-subtle\"\n ></div>\n </template>\n </noteable-note>\n</template>\n","import { render, staticRenderFns } from \"./draft_note.vue?vue&type=template&id=e9295676\"\nimport script from \"./draft_note.vue?vue&type=script&lang=js\"\nexport * from \"./draft_note.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-modal',{ref:\"modal\",attrs:{\"title\":_vm.s__('CreateTimelogForm|Add time entry'),\"modal-id\":_vm.createTimelogModalId,\"size\":\"sm\",\"data-testid\":\"create-timelog-modal\",\"action-primary\":_vm.primaryProps,\"action-cancel\":_vm.cancelProps},on:{\"primary\":_vm.registerTimeSpent,\"cancel\":_vm.close,\"close\":_vm.close,\"hide\":_vm.close}},[_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.modalText)+\"\\n \")]),_vm._v(\" \"),_c('form',{staticClass:\"js-quick-submit gl-flex gl-flex-col\",on:{\"submit\":function($event){$event.preventDefault();return _vm.registerTimeSpent.apply(null, arguments)}}},[_c('div',{staticClass:\"gl-flex gl-gap-3\"},[_c('gl-form-group',{key:\"time-spent\",attrs:{\"label-for\":\"time-spent\",\"label\":_vm.s__(`CreateTimelogForm|Time spent`),\"description\":_vm.s__(`CreateTimelogForm|Example: 1h 30m`)}},[_c('gl-form-input',{ref:\"timeSpent\",staticClass:\"gl-form-input-sm\",attrs:{\"id\":\"time-spent\",\"autocomplete\":\"off\"},model:{value:(_vm.timeSpent),callback:function ($$v) {_vm.timeSpent=$$v},expression:\"timeSpent\"}})],1),_vm._v(\" \"),_c('gl-form-group',{key:\"spent-at\",attrs:{\"optional\":\"\",\"label-for\":\"spent-at\",\"label\":_vm.s__(`CreateTimelogForm|Spent at`)}},[_c('gl-datepicker',{attrs:{\"target\":null,\"value\":_vm.spentAt,\"show-clear-button\":\"\",\"autocomplete\":\"off\",\"width\":\"sm\"},on:{\"input\":_vm.updateSpentAtDate,\"clear\":function($event){return _vm.updateSpentAtDate(null)}}})],1)],1),_vm._v(\" \"),_c('gl-form-group',{attrs:{\"label\":_vm.s__('CreateTimelogForm|Summary'),\"optional\":\"\",\"label-for\":\"summary\"}},[_c('gl-form-textarea',{attrs:{\"id\":\"summary\",\"rows\":\"3\",\"no-resize\":\"\"},model:{value:(_vm.summary),callback:function ($$v) {_vm.summary=$$v},expression:\"summary\"}})],1),_vm._v(\" \"),(_vm.saveError)?_c('gl-alert',{staticClass:\"gl-mb-3\",attrs:{\"variant\":\"danger\",\"dismissible\":false}},[_vm._v(\"\\n \"+_vm._s(_vm.saveError)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"submit\",\"hidden\":\"\"}})],1),_vm._v(\" \"),_c('gl-link',{attrs:{\"href\":_vm.timeTrackingDocsPath}},[_vm._v(\"\\n \"+_vm._s(_vm.s__('CreateTimelogForm|How do I track and estimate time?'))+\"\\n \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create_timelog_form.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create_timelog_form.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlFormGroup,\n GlFormInput,\n GlDatepicker,\n GlFormTextarea,\n GlModal,\n GlAlert,\n GlLink,\n} from '@gitlab/ui';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { issuableTypeText, TYPE_ISSUE } from '~/issues/constants';\nimport { toISODateFormat } from '~/lib/utils/datetime_utility';\nimport { TYPENAME_ISSUE, TYPENAME_MERGE_REQUEST } from '~/graphql_shared/constants';\nimport { joinPaths } from '~/lib/utils/url_utility';\nimport { s__, sprintf } from '~/locale';\nimport updateWorkItemMutation from '~/work_items/graphql/update_work_item.mutation.graphql';\nimport createTimelogMutation from '../../queries/create_timelog.mutation.graphql';\nimport { CREATE_TIMELOG_MODAL_ID } from './constants';\n\nexport default {\n components: {\n GlDatepicker,\n GlFormGroup,\n GlFormInput,\n GlFormTextarea,\n GlModal,\n GlAlert,\n GlLink,\n },\n inject: {\n issuableType: {\n default: null,\n },\n },\n props: {\n issuableId: {\n type: String,\n required: false,\n default: '',\n },\n workItemId: {\n type: String,\n required: false,\n default: '',\n },\n workItemType: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n timeSpent: '',\n spentAt: null,\n summary: '',\n isLoading: false,\n saveError: '',\n };\n },\n computed: {\n modalText() {\n const issuableTypeName = issuableTypeText[this.issuableType || this.workItemType];\n return sprintf(s__('TimeTracking|Track time spent on this %{issuableTypeName}.'), {\n issuableTypeName,\n });\n },\n submitDisabled() {\n return this.isLoading || this.timeSpent?.length === 0;\n },\n primaryProps() {\n return {\n text: s__('CreateTimelogForm|Save'),\n attributes: {\n variant: 'confirm',\n disabled: this.submitDisabled,\n loading: this.isLoading,\n },\n };\n },\n cancelProps() {\n return {\n text: s__('CreateTimelogForm|Cancel'),\n };\n },\n timeTrackingDocsPath() {\n return joinPaths(gon.relative_url_root || '', '/help/user/project/time_tracking.md');\n },\n createTimelogModalId() {\n return this.workItemId\n ? `${CREATE_TIMELOG_MODAL_ID}-${this.workItemId}`\n : CREATE_TIMELOG_MODAL_ID;\n },\n },\n methods: {\n resetModal() {\n this.isLoading = false;\n this.timeSpent = '';\n this.spentAt = null;\n this.summary = '';\n this.saveError = '';\n },\n close() {\n this.resetModal();\n this.$refs.modal.close();\n },\n registerTimeSpent(event) {\n event.preventDefault();\n\n if (this.timeSpent?.length === 0) {\n return null;\n }\n\n this.isLoading = true;\n this.saveError = '';\n\n if (this.workItemId) {\n return this.$apollo\n .mutate({\n mutation: updateWorkItemMutation,\n variables: {\n input: {\n id: this.workItemId,\n timeTrackingWidget: {\n timelog: {\n spentAt: this.spentAt ? toISODateFormat(this.spentAt) : null,\n summary: this.summary,\n timeSpent: this.timeSpent,\n },\n },\n },\n },\n })\n .then(({ data }) => {\n if (data.workItemUpdate.errors.length) {\n throw new Error(data.workItemUpdate.errors);\n }\n\n this.close();\n })\n .catch((error) => {\n this.saveError =\n error?.message ||\n s__('TimeTracking|An error occurred while saving the time estimate.');\n })\n .finally(() => {\n this.isLoading = false;\n });\n }\n\n return this.$apollo\n .mutate({\n mutation: createTimelogMutation,\n variables: {\n input: {\n timeSpent: this.timeSpent,\n spentAt: this.spentAt ? toISODateFormat(this.spentAt) : null,\n summary: this.summary,\n issuableId: this.getIssuableId(),\n },\n },\n })\n .then(({ data }) => {\n if (data.timelogCreate?.errors.length) {\n this.saveError = data.timelogCreate.errors[0].message || data.timelogCreate.errors[0];\n } else {\n this.close();\n }\n })\n .catch((error) => {\n this.saveError =\n error?.message ||\n s__('CreateTimelogForm|An error occurred while saving the time entry.');\n })\n .finally(() => {\n this.isLoading = false;\n });\n },\n getGraphQLEntityType() {\n return this.issuableType === TYPE_ISSUE ? TYPENAME_ISSUE : TYPENAME_MERGE_REQUEST;\n },\n updateSpentAtDate(val) {\n this.spentAt = val;\n },\n getIssuableId() {\n return convertToGraphQLId(this.getGraphQLEntityType(), this.issuableId);\n },\n },\n};\n</script>\n\n<template>\n <gl-modal\n ref=\"modal\"\n :title=\"s__('CreateTimelogForm|Add time entry')\"\n :modal-id=\"createTimelogModalId\"\n size=\"sm\"\n data-testid=\"create-timelog-modal\"\n :action-primary=\"primaryProps\"\n :action-cancel=\"cancelProps\"\n @primary=\"registerTimeSpent\"\n @cancel=\"close\"\n @close=\"close\"\n @hide=\"close\"\n >\n <p>\n {{ modalText }}\n </p>\n <form class=\"js-quick-submit gl-flex gl-flex-col\" @submit.prevent=\"registerTimeSpent\">\n <div class=\"gl-flex gl-gap-3\">\n <gl-form-group\n key=\"time-spent\"\n label-for=\"time-spent\"\n :label=\"s__(`CreateTimelogForm|Time spent`)\"\n :description=\"s__(`CreateTimelogForm|Example: 1h 30m`)\"\n >\n <gl-form-input\n id=\"time-spent\"\n ref=\"timeSpent\"\n v-model=\"timeSpent\"\n class=\"gl-form-input-sm\"\n autocomplete=\"off\"\n />\n </gl-form-group>\n <gl-form-group\n key=\"spent-at\"\n optional\n label-for=\"spent-at\"\n :label=\"s__(`CreateTimelogForm|Spent at`)\"\n >\n <gl-datepicker\n :target=\"null\"\n :value=\"spentAt\"\n show-clear-button\n autocomplete=\"off\"\n width=\"sm\"\n @input=\"updateSpentAtDate\"\n @clear=\"updateSpentAtDate(null)\"\n />\n </gl-form-group>\n </div>\n <gl-form-group :label=\"s__('CreateTimelogForm|Summary')\" optional label-for=\"summary\">\n <gl-form-textarea id=\"summary\" v-model=\"summary\" rows=\"3\" no-resize />\n </gl-form-group>\n <gl-alert v-if=\"saveError\" variant=\"danger\" class=\"gl-mb-3\" :dismissible=\"false\">\n {{ saveError }}\n </gl-alert>\n <!-- This is needed to have the quick-submit behaviour (with Ctrl + Enter or Cmd + Enter) -->\n <input type=\"submit\" hidden />\n </form>\n <gl-link :href=\"timeTrackingDocsPath\">\n {{ s__('CreateTimelogForm|How do I track and estimate time?') }}\n </gl-link>\n </gl-modal>\n</template>\n","import { render, staticRenderFns } from \"./create_timelog_form.vue?vue&type=template&id=f312274c\"\nimport script from \"./create_timelog_form.vue?vue&type=script&lang=js\"\nexport * from \"./create_timelog_form.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestSetAssignees\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetAssignees\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestSetAssignees\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignees\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserWithType\"},\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserAvailability\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestInteraction\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canMerge\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":612}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user_with_type.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/user_availability.fragment.graphql\\\"\\n\\nmutation mergeRequestSetAssignees($iid: String!, $assigneeUsernames: [String!]!, $fullPath: ID!) {\\n issuableSetAssignees: mergeRequestSetAssignees(\\n input: { iid: $iid, assigneeUsernames: $assigneeUsernames, projectPath: $fullPath }\\n ) {\\n issuable: mergeRequest {\\n id\\n assignees {\\n nodes {\\n ...UserWithType\\n ...UserAvailability\\n mergeRequestInteraction {\\n canMerge\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user_with_type.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user_availability.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"mergeRequestSetAssignees\"] = oneQuery(doc, \"mergeRequestSetAssignees\");\n \n","var baseForOwn = require('./_baseForOwn');\n\n/**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n}\n\nmodule.exports = baseInverter;\n","(function() {\n var Query, defaultPathSeparator, filter, matcher, parseOptions, pathScorer, preparedQueryCache, scorer;\n\n filter = require('./filter');\n\n matcher = require('./matcher');\n\n scorer = require('./scorer');\n\n pathScorer = require('./pathScorer');\n\n Query = require('./query');\n\n preparedQueryCache = null;\n\n defaultPathSeparator = (typeof process !== \"undefined\" && process !== null ? process.platform : void 0) === \"win32\" ? '\\\\' : '/';\n\n module.exports = {\n filter: function(candidates, query, options) {\n if (options == null) {\n options = {};\n }\n if (!((query != null ? query.length : void 0) && (candidates != null ? candidates.length : void 0))) {\n return [];\n }\n options = parseOptions(options, query);\n return filter(candidates, query, options);\n },\n score: function(string, query, options) {\n if (options == null) {\n options = {};\n }\n if (!((string != null ? string.length : void 0) && (query != null ? query.length : void 0))) {\n return 0;\n }\n options = parseOptions(options, query);\n if (options.usePathScoring) {\n return pathScorer.score(string, query, options);\n } else {\n return scorer.score(string, query, options);\n }\n },\n match: function(string, query, options) {\n var _i, _ref, _results;\n if (options == null) {\n options = {};\n }\n if (!string) {\n return [];\n }\n if (!query) {\n return [];\n }\n if (string === query) {\n return (function() {\n _results = [];\n for (var _i = 0, _ref = string.length; 0 <= _ref ? _i < _ref : _i > _ref; 0 <= _ref ? _i++ : _i--){ _results.push(_i); }\n return _results;\n }).apply(this);\n }\n options = parseOptions(options, query);\n return matcher.match(string, query, options);\n },\n wrap: function(string, query, options) {\n if (options == null) {\n options = {};\n }\n if (!string) {\n return [];\n }\n if (!query) {\n return [];\n }\n options = parseOptions(options, query);\n return matcher.wrap(string, query, options);\n },\n prepareQuery: function(query, options) {\n if (options == null) {\n options = {};\n }\n options = parseOptions(options, query);\n return options.preparedQuery;\n }\n };\n\n parseOptions = function(options, query) {\n if (options.allowErrors == null) {\n options.allowErrors = false;\n }\n if (options.usePathScoring == null) {\n options.usePathScoring = true;\n }\n if (options.useExtensionBonus == null) {\n options.useExtensionBonus = false;\n }\n if (options.pathSeparator == null) {\n options.pathSeparator = defaultPathSeparator;\n }\n if (options.optCharRegEx == null) {\n options.optCharRegEx = null;\n }\n if (options.wrap == null) {\n options.wrap = null;\n }\n if (options.preparedQuery == null) {\n options.preparedQuery = preparedQueryCache && preparedQueryCache.query === query ? preparedQueryCache : (preparedQueryCache = new Query(query, options));\n }\n return options;\n };\n\n}).call(this);\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onFormSubmit.apply(null, arguments)}}},[(_vm.showCategorizedIssues)?[_c('gl-form-group',{staticClass:\"gl-mb-3\",attrs:{\"label\":_vm.issuableCategoryHeaderText,\"label-for\":\"linked-issue-type-radio\",\"label-class\":\"label-bold\"}},[_c('gl-form-radio-group',{attrs:{\"id\":\"linked-issue-type-radio\",\"options\":_vm.linkedIssueTypes,\"checked\":_vm.linkedIssueType},model:{value:(_vm.linkedIssueType),callback:function ($$v) {_vm.linkedIssueType=$$v},expression:\"linkedIssueType\"}})],1),_vm._v(\" \"),_c('p',{staticClass:\"gl-mb-2 gl-font-bold\"},[_vm._v(\"\\n \"+_vm._s(_vm.issuableInputText)+\"\\n \")])]:_vm._e(),_vm._v(\" \"),_c('related-issuable-input',{ref:\"relatedIssuableInput\",attrs:{\"input-id\":\"add-related-issues-form-input\",\"confidential\":_vm.confidential,\"focus-on-mount\":true,\"references\":_vm.pendingReferences,\"path-id-separator\":_vm.pathIdSeparator,\"input-value\":_vm.inputValue,\"auto-complete-sources\":_vm.transformedAutocompleteSources,\"auto-complete-options\":/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */ {\n issues: _vm.autoCompleteIssues,\n epics: _vm.autoCompleteEpics,\n } /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */,\"issuable-type\":_vm.issuableType},on:{\"pendingIssuableRemoveRequest\":_vm.onPendingIssuableRemoveRequest,\"formCancel\":_vm.onFormCancel,\"addIssuableFormBlur\":_vm.onAddIssuableFormBlur,\"addIssuableFormInput\":_vm.onAddIssuableFormInput}}),_vm._v(\" \"),(_vm.hasError)?_c('p',{staticClass:\"gl-field-error\"},[_vm._v(\"\\n \"+_vm._s(_vm.addRelatedErrorMessage)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-mt-5 gl-flex gl-gap-3\"},[_c('gl-button',{ref:\"addButton\",attrs:{\"category\":\"primary\",\"variant\":\"confirm\",\"disabled\":_vm.isSubmitButtonDisabled,\"loading\":_vm.isSubmitting,\"type\":\"submit\",\"size\":\"small\",\"data-testid\":\"add-issue-button\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Add'))+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{attrs:{\"size\":\"small\"},on:{\"click\":_vm.onFormCancel}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Cancel'))+\"\\n \")])],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./add_issuable_form.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./add_issuable_form.vue?vue&type=script&lang=js\"","<script>\nimport { GlFormGroup, GlFormRadioGroup, GlButton } from '@gitlab/ui';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { mergeUrlParams } from '~/lib/utils/url_utility';\nimport { __ } from '~/locale';\n\nimport {\n itemAddFailureTypesMap,\n linkedIssueTypesMap,\n addRelatedIssueErrorMap,\n addRelatedItemErrorMap,\n issuablesFormCategoryHeaderTextMap,\n issuablesFormInputTextMap,\n} from '../constants';\nimport RelatedIssuableInput from './related_issuable_input.vue';\n\nexport default {\n name: 'AddIssuableForm',\n components: {\n GlFormGroup,\n GlFormRadioGroup,\n RelatedIssuableInput,\n GlButton,\n },\n props: {\n inputValue: {\n type: String,\n required: true,\n },\n pendingReferences: {\n type: Array,\n required: false,\n default: () => [],\n },\n autoCompleteSources: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n showCategorizedIssues: {\n type: Boolean,\n required: false,\n default: false,\n },\n isSubmitting: {\n type: Boolean,\n required: false,\n default: false,\n },\n pathIdSeparator: {\n type: String,\n required: true,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n hasError: {\n type: Boolean,\n required: false,\n default: false,\n },\n itemAddFailureType: {\n type: String,\n required: false,\n default: itemAddFailureTypesMap.NOT_FOUND,\n },\n itemAddFailureMessage: {\n type: String,\n required: false,\n default: '',\n },\n confidential: {\n type: Boolean,\n required: false,\n default: false,\n },\n autoCompleteEpics: {\n type: Boolean,\n required: false,\n default: true,\n },\n autoCompleteIssues: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n data() {\n return {\n linkedIssueType: linkedIssueTypesMap.RELATES_TO,\n linkedIssueTypes: [\n {\n text: __('relates to'),\n value: linkedIssueTypesMap.RELATES_TO,\n },\n {\n text: __('blocks'),\n value: linkedIssueTypesMap.BLOCKS,\n },\n {\n text: __('is blocked by'),\n value: linkedIssueTypesMap.IS_BLOCKED_BY,\n },\n ],\n };\n },\n computed: {\n isSubmitButtonDisabled() {\n return (\n (this.inputValue.length === 0 && this.pendingReferences.length === 0) || this.isSubmitting\n );\n },\n addRelatedErrorMessage() {\n if (this.itemAddFailureMessage) {\n return this.itemAddFailureMessage;\n }\n if (this.itemAddFailureType === itemAddFailureTypesMap.NOT_FOUND) {\n return addRelatedIssueErrorMap[this.issuableType];\n }\n // Only other failure is MAX_NUMBER_OF_CHILD_EPICS at the moment\n return addRelatedItemErrorMap[this.itemAddFailureType];\n },\n transformedAutocompleteSources() {\n if (!this.confidential) {\n return this.autoCompleteSources;\n }\n\n if (!this.autoCompleteSources?.issues || !this.autoCompleteSources?.epics) {\n return this.autoCompleteSources;\n }\n\n return {\n ...this.autoCompleteSources,\n issues: mergeUrlParams({ confidential_only: true }, this.autoCompleteSources.issues),\n epics: mergeUrlParams({ confidential_only: true }, this.autoCompleteSources.epics),\n };\n },\n issuableCategoryHeaderText() {\n return issuablesFormCategoryHeaderTextMap[this.issuableType];\n },\n issuableInputText() {\n return issuablesFormInputTextMap[this.issuableType];\n },\n },\n methods: {\n onPendingIssuableRemoveRequest(params) {\n this.$emit('pendingIssuableRemoveRequest', params);\n },\n onFormSubmit() {\n this.$emit('addIssuableFormSubmit', {\n pendingReferences: this.$refs.relatedIssuableInput.$refs.input.value,\n linkedIssueType: this.linkedIssueType,\n });\n },\n onFormCancel() {\n this.$emit('addIssuableFormCancel');\n },\n onAddIssuableFormInput(params) {\n this.$emit('addIssuableFormInput', params);\n },\n onAddIssuableFormBlur(params) {\n this.$emit('addIssuableFormBlur', params);\n },\n },\n};\n</script>\n\n<template>\n <form @submit.prevent=\"onFormSubmit\">\n <template v-if=\"showCategorizedIssues\">\n <gl-form-group\n :label=\"issuableCategoryHeaderText\"\n label-for=\"linked-issue-type-radio\"\n label-class=\"label-bold\"\n class=\"gl-mb-3\"\n >\n <gl-form-radio-group\n id=\"linked-issue-type-radio\"\n v-model=\"linkedIssueType\"\n :options=\"linkedIssueTypes\"\n :checked=\"linkedIssueType\"\n />\n </gl-form-group>\n <p class=\"gl-mb-2 gl-font-bold\">\n {{ issuableInputText }}\n </p>\n </template>\n <related-issuable-input\n ref=\"relatedIssuableInput\"\n input-id=\"add-related-issues-form-input\"\n :confidential=\"confidential\"\n :focus-on-mount=\"true\"\n :references=\"pendingReferences\"\n :path-id-separator=\"pathIdSeparator\"\n :input-value=\"inputValue\"\n :auto-complete-sources=\"transformedAutocompleteSources\"\n :auto-complete-options=\"/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */ {\n issues: autoCompleteIssues,\n epics: autoCompleteEpics,\n } /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */\"\n :issuable-type=\"issuableType\"\n @pendingIssuableRemoveRequest=\"onPendingIssuableRemoveRequest\"\n @formCancel=\"onFormCancel\"\n @addIssuableFormBlur=\"onAddIssuableFormBlur\"\n @addIssuableFormInput=\"onAddIssuableFormInput\"\n />\n <p v-if=\"hasError\" class=\"gl-field-error\">\n {{ addRelatedErrorMessage }}\n </p>\n <div class=\"gl-mt-5 gl-flex gl-gap-3\">\n <gl-button\n ref=\"addButton\"\n category=\"primary\"\n variant=\"confirm\"\n :disabled=\"isSubmitButtonDisabled\"\n :loading=\"isSubmitting\"\n type=\"submit\"\n size=\"small\"\n data-testid=\"add-issue-button\"\n >\n {{ __('Add') }}\n </gl-button>\n <gl-button size=\"small\" @click=\"onFormCancel\">\n {{ __('Cancel') }}\n </gl-button>\n </div>\n </form>\n</template>\n","import { render, staticRenderFns } from \"./add_issuable_form.vue?vue&type=template&id=b3a7c514\"\nimport script from \"./add_issuable_form.vue?vue&type=script&lang=js\"\nexport * from \"./add_issuable_form.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import $ from 'jquery';\nimport 'deckar01-task_list';\nimport { __ } from '~/locale';\nimport { createAlert } from '~/alert';\nimport { TYPE_INCIDENT, TYPE_ISSUE } from '~/issues/constants';\nimport axios from './lib/utils/axios_utils';\n\nexport default class TaskList {\n constructor(options = {}) {\n this.selector = options.selector;\n this.dataType = options.dataType;\n this.fieldName = options.fieldName;\n this.lockVersion = options.lockVersion;\n this.taskListContainerSelector = `${this.selector} .js-task-list-container`;\n this.updateHandler = this.update.bind(this);\n this.onUpdate = options.onUpdate || (() => {});\n this.onSuccess = options.onSuccess || (() => {});\n this.onError =\n options.onError ||\n function showFlash(e) {\n let errorMessages = '';\n\n if (e.response.data && typeof e.response.data === 'object') {\n errorMessages = e.response.data.errors.join(' ');\n }\n\n return createAlert({\n message: errorMessages || __('Update failed'),\n });\n };\n\n this.init();\n }\n\n init() {\n this.disable(); // Prevent duplicate event bindings\n\n const taskListFields = document.querySelectorAll(\n `${this.taskListContainerSelector} .js-task-list-field[data-value]`,\n );\n\n taskListFields.forEach((taskListField) => {\n // eslint-disable-next-line no-param-reassign\n taskListField.value = taskListField.dataset.value;\n });\n\n this.enable();\n }\n\n getTaskListTarget(e) {\n return e && e.currentTarget ? $(e.currentTarget) : $(this.taskListContainerSelector);\n }\n\n // Disable any task items that don't have a data-sourcepos attribute, on the\n // assumption that if it doesn't then it wasn't generated from our markdown parser.\n // This covers the case of markdown not being able to handle task lists inside\n // markdown tables. It also includes hand coded HTML lists.\n disableNonMarkdownTaskListItems(e) {\n this.getTaskListTarget(e)\n .find('.task-list-item')\n .not('[data-sourcepos]')\n .find('.task-list-item-checkbox')\n .prop('disabled', true);\n }\n\n updateInapplicableTaskListItems(e) {\n this.getTaskListTarget(e)\n .find('.task-list-item-checkbox[data-inapplicable]')\n .prop('disabled', true);\n }\n\n disableTaskListItems(e) {\n this.getTaskListTarget(e).taskList('disable');\n this.updateInapplicableTaskListItems();\n }\n\n enableTaskListItems(e) {\n this.getTaskListTarget(e).taskList('enable');\n this.disableNonMarkdownTaskListItems(e);\n this.updateInapplicableTaskListItems(e);\n }\n\n enable() {\n this.enableTaskListItems();\n $(document).on('tasklist:changed', this.taskListContainerSelector, this.updateHandler);\n }\n\n disable() {\n this.disableTaskListItems();\n $(document).off('tasklist:changed', this.taskListContainerSelector);\n }\n\n update(e) {\n const $target = $(e.target);\n const { index, checked, lineNumber, lineSource } = e.detail;\n const patchData = {};\n\n const dataType = this.dataType === TYPE_INCIDENT ? TYPE_ISSUE : this.dataType;\n patchData[dataType] = {\n [this.fieldName]: $target.val(),\n lock_version: this.lockVersion,\n update_task: {\n index,\n checked,\n line_number: lineNumber,\n line_source: lineSource,\n },\n };\n\n this.onUpdate();\n this.disableTaskListItems(e);\n\n return axios\n .patch($target.data('updateUrl') || $('form.js-issuable-update').attr('action'), patchData)\n .then(({ data }) => {\n this.lockVersion = data.lock_version;\n this.enableTaskListItems(e);\n\n return this.onSuccess(data);\n })\n .catch(({ response }) => {\n this.enableTaskListItems(e);\n\n return this.onError(response.data);\n });\n }\n}\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","export default () => ({\n inject: {\n glAbilities: {\n from: 'glAbilities',\n default: () => ({}),\n },\n },\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"incident-severity gl-justify-content-between gl-inline-flex gl-max-w-full gl-items-center\"},[_c('gl-icon',{class:[`icon-${_vm.severity.icon}`, { 'gl-mr-3 gl-shrink-0': !_vm.iconOnly }],attrs:{\"size\":_vm.iconSize,\"name\":`severity-${_vm.severity.icon}`}}),_vm._v(\" \"),(!_vm.iconOnly)?_c('tooltip-on-truncate',{staticClass:\"gl-truncate\",attrs:{\"title\":_vm.severity.label}},[_vm._v(\"\\n \"+_vm._s(_vm.severity.label)+\"\\n \")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./severity.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./severity.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlIcon } from '@gitlab/ui';\nimport TooltipOnTruncate from '~/vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue';\n\nexport default {\n components: {\n GlIcon,\n TooltipOnTruncate,\n },\n props: {\n severity: {\n type: Object,\n required: true,\n validator(severity) {\n const { value, label, icon } = severity;\n return value && label && icon;\n },\n },\n iconSize: {\n type: Number,\n required: false,\n default: 12,\n },\n iconOnly: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"incident-severity gl-justify-content-between gl-inline-flex gl-max-w-full gl-items-center\"\n >\n <gl-icon\n :size=\"iconSize\"\n :name=\"`severity-${severity.icon}`\"\n :class=\"[`icon-${severity.icon}`, { 'gl-mr-3 gl-shrink-0': !iconOnly }]\"\n />\n <tooltip-on-truncate v-if=\"!iconOnly\" :title=\"severity.label\" class=\"gl-truncate\">\n {{ severity.label }}\n </tooltip-on-truncate>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./severity.vue?vue&type=template&id=506e5b38\"\nimport script from \"./severity.vue?vue&type=script&lang=js\"\nexport * from \"./severity.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"gl-relative\"},[_c('gl-avatar',{attrs:{\"label\":_vm.user.name,\"src\":_vm.avatarUrl,\"size\":_vm.imgSize,\"alt\":_vm.assigneeAlt,\"data-testid\":\"avatar-image\"}}),_vm._v(\" \"),(_vm.hasMergeIcon)?_c('gl-icon',{staticClass:\"merge-icon\",attrs:{\"name\":\"warning-solid\",\"aria-hidden\":\"true\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./assignee_avatar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./assignee_avatar.vue?vue&type=script&lang=js\"","<script>\nimport { GlAvatar, GlIcon } from '@gitlab/ui';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { __, sprintf } from '~/locale';\n\nexport default {\n components: {\n GlAvatar,\n GlIcon,\n },\n props: {\n user: {\n type: Object,\n required: true,\n },\n imgSize: {\n type: Number,\n required: true,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n },\n computed: {\n assigneeAlt() {\n return sprintf(__(\"%{userName}'s avatar\"), { userName: this.user.name });\n },\n avatarUrl() {\n return (\n this.user.avatarUrl || this.user.avatar || this.user.avatar_url || gon.default_avatar_url\n );\n },\n isMergeRequest() {\n return this.issuableType === TYPE_MERGE_REQUEST;\n },\n hasMergeIcon() {\n const canMerge = this.user.mergeRequestInteraction?.canMerge || this.user.can_merge;\n return this.isMergeRequest && !canMerge;\n },\n },\n};\n</script>\n\n<template>\n <span class=\"gl-relative\">\n <gl-avatar\n :label=\"user.name\"\n :src=\"avatarUrl\"\n :size=\"imgSize\"\n :alt=\"assigneeAlt\"\n data-testid=\"avatar-image\"\n />\n <gl-icon v-if=\"hasMergeIcon\" name=\"warning-solid\" aria-hidden=\"true\" class=\"merge-icon\" />\n </span>\n</template>\n","import { render, staticRenderFns } from \"./assignee_avatar.vue?vue&type=template&id=77934b46\"\nimport script from \"./assignee_avatar.vue?vue&type=script&lang=js\"\nexport * from \"./assignee_avatar.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { TITLE_LENGTH_MAX } from '~/issues/constants';\nimport { COLON, HYPHEN, NEWLINE } from '~/lib/utils/text_utility';\nimport { __ } from '~/locale';\n\n/**\n * Returns the start and end `sourcepos` rows, converted to zero-based numbering.\n *\n * @param {String} sourcepos Source position in format `23:3-23:14`\n * @returns {Array<Number>} Start and end `sourcepos` rows, zero-based numbered\n */\nconst getSourceposRows = (sourcepos) => {\n const [startRange, endRange] = sourcepos.split(HYPHEN);\n const [startRow] = startRange.split(COLON);\n const [endRow] = endRange.split(COLON);\n return [startRow - 1, endRow - 1];\n};\n\n/**\n * Given a `ul` or `ol` element containing a new sort order, this function returns\n * an array of this new order which is derived from its list items' sourcepos values.\n *\n * @param {HTMLElement} list A `ul` or `ol` element containing a new sort order\n * @returns {Array<Number>} A numerical array representing the new order of the list.\n * The numbers represent the rows of the original markdown source.\n */\nconst getNewSourcePositions = (list) => {\n const newSourcePositions = [];\n\n Array.from(list.children).forEach((listItem) => {\n const [start, end] = getSourceposRows(listItem.dataset.sourcepos);\n for (let i = start; i <= end; i += 1) {\n newSourcePositions.push(i);\n }\n });\n\n return newSourcePositions;\n};\n\n/**\n * Converts a description to one with a new list sort order.\n *\n * Given a description like:\n *\n * <pre>\n * 1. I am text\n * 2.\n * 3. - Item 1\n * 4. - Item 2\n * 5. - Item 3\n * 6. - Item 4\n * 7. - Item 5\n * </pre>\n *\n * And a reordered list (due to dragging Item 2 into Item 1's position) like:\n *\n * <pre>\n * <ul data-sourcepos=\"3:1-7:8\">\n * <li data-sourcepos=\"4:1-6:10\">\n * Item 2\n * <ul data-sourcepos=\"5:3-6:10\">\n * <li data-sourcepos=\"5:3-5:10\">Item 3</li>\n * <li data-sourcepos=\"6:3-6:10\">Item 4</li>\n * </ul>\n * </li>\n * <li data-sourcepos=\"3:1-3:8\">Item 1</li>\n * <li data-sourcepos=\"7:1-7:8\">Item 5</li>\n * </ul>\n * </pre>\n *\n * This function returns:\n *\n * <pre>\n * 1. I am text\n * 2.\n * 3. - Item 2\n * 4. - Item 3\n * 5. - Item 4\n * 6. - Item 1\n * 7. - Item 5\n * </pre>\n *\n * @param {String} description Description in markdown format\n * @param {HTMLElement} list A `ul` or `ol` element containing a new sort order\n * @returns {String} Markdown with a new list sort order\n */\nexport const convertDescriptionWithNewSort = (description, list) => {\n const descriptionLines = description.split(NEWLINE);\n const [startIndexOfList] = getSourceposRows(list.dataset.sourcepos);\n\n getNewSourcePositions(list)\n .map((lineIndex) => descriptionLines[lineIndex])\n .forEach((line, index) => {\n descriptionLines[startIndexOfList + index] = line;\n });\n\n return descriptionLines.join(NEWLINE);\n};\n\nconst bulletTaskListItemRegex = /^\\s*[-*]\\s+\\[.]\\s+/;\nconst numericalTaskListItemRegex = /^\\s*[0-9]\\.\\s+\\[.]\\s+/;\nconst codeMarkdownRegex = /^\\s*`.*`\\s*$/;\nconst imageOrLinkMarkdownRegex = /^\\s*!?\\[.*\\)\\s*$/;\n\n/**\n * Checks whether the line of markdown contains a task list item,\n * i.e. `- [ ]`, `* [ ]`, or `1. [ ]`.\n *\n * @param {String} line A line of markdown\n * @returns {boolean} `true` if the line contains a task list item, otherwise `false`\n */\nconst containsTaskListItem = (line) =>\n bulletTaskListItemRegex.test(line) || numericalTaskListItemRegex.test(line);\n\n/**\n * Deletes a task list item from the description.\n *\n * Starting from the task list item, it deletes each line until it hits a nested\n * task list item and reduces the indentation of each line from this line onwards.\n *\n * For example, for a given description like:\n *\n * <pre>\n * 1. [ ] item 1\n *\n * paragraph text\n *\n * 1. [ ] item 2\n *\n * paragraph text\n *\n * 1. [ ] item 3\n * </pre>\n *\n * Then when prompted to delete item 1, this function will return:\n *\n * <pre>\n * 1. [ ] item 2\n *\n * paragraph text\n *\n * 1. [ ] item 3\n * </pre>\n *\n * @param {String} description Description in markdown format\n * @param {String} sourcepos Source position in format `23:3-23:14`\n * @returns {{newDescription: String, taskDescription: String, taskTitle: String}} Object with:\n *\n * - `newDescription` property that contains markdown with the deleted task list item omitted\n * - `taskDescription` property that contains the description of the deleted task list item\n * - `taskTitle` property that contains the title of the deleted task list item\n */\nexport const deleteTaskListItem = (description, sourcepos) => {\n const descriptionLines = description.split(NEWLINE);\n const [startIndex, endIndex] = getSourceposRows(sourcepos);\n\n const firstLine = descriptionLines[startIndex];\n const firstLineIndentation = firstLine.length - firstLine.trimStart().length;\n\n const taskTitle = firstLine\n .replace(bulletTaskListItemRegex, '')\n .replace(numericalTaskListItemRegex, '');\n const taskDescription = [];\n\n let indentation = 0;\n let linesToDelete = 1;\n let reduceIndentation = false;\n\n for (let i = startIndex + 1; i <= endIndex; i += 1) {\n if (reduceIndentation) {\n descriptionLines[i] = descriptionLines[i].slice(indentation);\n } else if (containsTaskListItem(descriptionLines[i])) {\n reduceIndentation = true;\n const currentLine = descriptionLines[i];\n const currentLineIndentation = currentLine.length - currentLine.trimStart().length;\n indentation = currentLineIndentation - firstLineIndentation;\n descriptionLines[i] = descriptionLines[i].slice(indentation);\n } else {\n taskDescription.push(descriptionLines[i].trimStart());\n linesToDelete += 1;\n }\n }\n\n descriptionLines.splice(startIndex, linesToDelete);\n\n return {\n newDescription: descriptionLines.join(NEWLINE),\n taskDescription: taskDescription.join(NEWLINE) || undefined,\n taskTitle,\n };\n};\n\n/**\n * Given a title and description for a task:\n *\n * - Moves characters beyond the 255 character limit from the title to the description\n * - Moves a pure markdown title to the description and gives the title the value `Untitled`\n *\n * @param {String} taskTitle The task title\n * @param {String} taskDescription The task description\n * @returns {{description: String, title: String}} An object with the formatted task title and description\n */\nexport const extractTaskTitleAndDescription = (taskTitle, taskDescription) => {\n const isTitleOnlyMarkdown =\n codeMarkdownRegex.test(taskTitle) || imageOrLinkMarkdownRegex.test(taskTitle);\n\n if (isTitleOnlyMarkdown) {\n return {\n title: __('Untitled'),\n description: taskDescription\n ? taskTitle.concat(NEWLINE, NEWLINE, taskDescription)\n : taskTitle,\n };\n }\n\n const isTitleTooLong = taskTitle.length > TITLE_LENGTH_MAX;\n\n if (isTitleTooLong) {\n return {\n title: taskTitle.slice(0, TITLE_LENGTH_MAX),\n description: taskDescription\n ? taskTitle.slice(TITLE_LENGTH_MAX).concat(NEWLINE, NEWLINE, taskDescription)\n : taskTitle.slice(TITLE_LENGTH_MAX),\n };\n }\n\n return {\n title: taskTitle,\n description: taskDescription,\n };\n};\n\n/**\n * Insert an element, such as a dropdown, next to a checkbox\n * in an issue/work item description rendered from markdown.\n *\n * @param element Element to insert\n * @param listItem The list item containing the checkbox\n */\nexport const insertNextToTaskListItemText = (element, listItem) => {\n const children = Array.from(listItem.children);\n const paragraph = children.find((el) => el.tagName === 'P');\n const list = children.find((el) => el.classList.contains('task-list'));\n\n if (paragraph) {\n // If there's a `p` element, then it's a multi-paragraph task item\n // and the task text exists within the `p` element as the last child\n paragraph.append(element);\n } else if (list) {\n // Otherwise, the task item can have a child list which exists directly after the task text\n list.insertAdjacentElement('beforebegin', element);\n } else {\n // Otherwise, the task item is a simple one where the task text exists as the last child\n listItem.append(element);\n }\n};\n","import * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport AccessorUtilities from '~/lib/utils/accessor';\nimport { FREQUENT_ITEMS, FIFTEEN_MINUTES_IN_MS } from '~/super_sidebar/constants';\nimport axios from '~/lib/utils/axios_utils';\nimport { numberToMetricPrefix } from '~/lib/utils/number_utils';\n\n/**\n * This takes an array of project or groups that were stored in the local storage, to be shown in\n * the context switcher, and sorts them by frequency and last access date.\n * In the resulting array, the most popular item (highest frequency and most recent access date) is\n * placed at the first index, while the least popular is at the last index.\n *\n * @param {Array} items The projects or groups stored in the local storage\n * @returns The items, sorted by frequency and last access date\n */\nconst sortItemsByFrequencyAndLastAccess = (items) =>\n items.sort((itemA, itemB) => {\n // Sort all frequent items in decending order of frequency\n // and then by lastAccessedOn with recent most first\n if (itemA.frequency !== itemB.frequency) {\n return itemB.frequency - itemA.frequency;\n }\n if (itemA.lastAccessedOn !== itemB.lastAccessedOn) {\n return itemB.lastAccessedOn - itemA.lastAccessedOn;\n }\n\n return 0;\n });\n\n/**\n * Returns the most frequently visited items.\n *\n * @param {Array} items - A list of items retrieved from the local storage\n * @param {Number} maxCount - The maximum number of items to be returned\n * @returns {Array}\n */\nexport const getTopFrequentItems = (items, maxCount) => {\n if (!Array.isArray(items)) return [];\n\n const frequentItems = items.filter((item) => item.frequency >= FREQUENT_ITEMS.ELIGIBLE_FREQUENCY);\n sortItemsByFrequencyAndLastAccess(frequentItems);\n\n return frequentItems.slice(0, maxCount);\n};\n\n/**\n * This tracks projects' and groups' visits in order to suggest a list of frequently visited\n * entities to the user. The suggestion logic is implemented server-side and computed items can be\n * retrieved through the GraphQL API.\n * To persist a visit in the DB, an AJAX request needs to be triggered by the client. To avoid making\n * the request on every visited page, we also keep track of the visits in the local storage so that\n * the request is only sent once every 15 minutes per namespace per user.\n *\n * @param {object} item The project/group item being tracked.\n * @param {string} namespace A string indicating whether the tracked entity is a project or a group.\n * @param {string} trackVisitsPath The API endpoint to track visits server-side.\n * @returns {void}\n */\nconst updateItemAccess = (\n contextItem,\n { lastAccessedOn, frequency = 0 } = {},\n namespace,\n trackVisitsPath,\n // eslint-disable-next-line max-params\n) => {\n const now = Date.now();\n const neverAccessed = !lastAccessedOn;\n const shouldUpdate = neverAccessed || Math.abs(now - lastAccessedOn) / FIFTEEN_MINUTES_IN_MS > 1;\n\n if (shouldUpdate) {\n axios({\n url: trackVisitsPath,\n method: 'POST',\n data: {\n type: namespace,\n id: contextItem.id,\n },\n }).catch((e) => {\n Sentry.captureException(e);\n });\n }\n\n return {\n ...contextItem,\n frequency: shouldUpdate ? frequency + 1 : frequency,\n lastAccessedOn: shouldUpdate ? now : lastAccessedOn,\n };\n};\n\nexport const trackContextAccess = (username, context, trackVisitsPath) => {\n if (!AccessorUtilities.canUseLocalStorage()) {\n return false;\n }\n\n const storageKey = `${username}/frequent-${context.namespace}`;\n const storedRawItems = localStorage.getItem(storageKey);\n const storedItems = storedRawItems ? JSON.parse(storedRawItems) : [];\n const existingItemIndex = storedItems.findIndex(\n (cachedItem) => cachedItem.id === context.item.id,\n );\n\n if (existingItemIndex > -1) {\n storedItems[existingItemIndex] = updateItemAccess(\n context.item,\n storedItems[existingItemIndex],\n context.namespace,\n trackVisitsPath,\n );\n } else {\n const newItem = updateItemAccess(\n context.item,\n storedItems[existingItemIndex],\n context.namespace,\n trackVisitsPath,\n );\n if (storedItems.length === FREQUENT_ITEMS.MAX_COUNT) {\n sortItemsByFrequencyAndLastAccess(storedItems);\n storedItems.pop();\n }\n storedItems.push(newItem);\n }\n\n return localStorage.setItem(storageKey, JSON.stringify(storedItems));\n};\n\nexport const ariaCurrent = (isActive) => (isActive ? 'page' : null);\n\nconst isValidNumber = (count) => {\n return typeof count === 'number';\n};\n\nexport const formatAsyncCount = (count) => {\n return isValidNumber(count) ? numberToMetricPrefix(count) : null;\n};\n","export const HTTP_STATUS_ABORTED = 0;\nexport const HTTP_STATUS_OK = 200;\nexport const HTTP_STATUS_CREATED = 201;\nexport const HTTP_STATUS_ACCEPTED = 202;\nexport const HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION = 203;\nexport const HTTP_STATUS_NO_CONTENT = 204;\nexport const HTTP_STATUS_RESET_CONTENT = 205;\nexport const HTTP_STATUS_PARTIAL_CONTENT = 206;\nexport const HTTP_STATUS_MULTI_STATUS = 207;\nexport const HTTP_STATUS_ALREADY_REPORTED = 208;\nexport const HTTP_STATUS_IM_USED = 226;\nexport const HTTP_STATUS_BAD_REQUEST = 400;\nexport const HTTP_STATUS_UNAUTHORIZED = 401;\nexport const HTTP_STATUS_FORBIDDEN = 403;\nexport const HTTP_STATUS_NOT_FOUND = 404;\nexport const HTTP_STATUS_METHOD_NOT_ALLOWED = 405;\nexport const HTTP_STATUS_CONFLICT = 409;\nexport const HTTP_STATUS_GONE = 410;\nexport const HTTP_STATUS_PAYLOAD_TOO_LARGE = 413;\nexport const HTTP_STATUS_IM_A_TEAPOT = 418;\nexport const HTTP_STATUS_UNPROCESSABLE_ENTITY = 422;\nexport const HTTP_STATUS_TOO_MANY_REQUESTS = 429;\nexport const HTTP_STATUS_INTERNAL_SERVER_ERROR = 500;\nexport const HTTP_STATUS_SERVICE_UNAVAILABLE = 503;\n\nexport const successCodes = [\n HTTP_STATUS_OK,\n HTTP_STATUS_CREATED,\n HTTP_STATUS_ACCEPTED,\n HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION,\n HTTP_STATUS_NO_CONTENT,\n HTTP_STATUS_RESET_CONTENT,\n HTTP_STATUS_PARTIAL_CONTENT,\n HTTP_STATUS_MULTI_STATUS,\n HTTP_STATUS_ALREADY_REPORTED,\n HTTP_STATUS_IM_USED,\n];\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('gl-disclosure-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.tooltipText),expression:\"tooltipText\"}],ref:\"workItemsMoreActions\",attrs:{\"icon\":\"ellipsis_v\",\"text-sr-only\":\"\",\"toggle-text\":_vm.$options.i18n.moreActions,\"size\":\"small\",\"category\":\"tertiary\",\"no-caret\":\"\",\"placement\":\"bottom-end\",\"auto-close\":false},on:{\"shown\":_vm.showDropdown,\"hidden\":_vm.hideDropdown}},[_c('gl-disclosure-dropdown-item',{staticClass:\"work-item-dropdown-toggle\",on:{\"action\":function($event){return _vm.$emit('toggle-show-labels')}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('gl-toggle',{staticClass:\"gl-justify-between\",attrs:{\"value\":_vm.showLabels,\"label\":_vm.$options.i18n.showLabels,\"label-position\":\"left\"}})]},proxy:true}])}),_vm._v(\" \"),_c('gl-disclosure-dropdown-item',{staticClass:\"work-item-dropdown-toggle\",on:{\"action\":function($event){return _vm.$emit('toggle-show-closed')}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('gl-toggle',{staticClass:\"gl-justify-between\",attrs:{\"value\":_vm.showClosed,\"label\":_vm.$options.i18n.showClosed,\"label-position\":\"left\"}})]},proxy:true}])}),_vm._v(\" \"),(_vm.shouldShowViewRoadmapAction)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.viewOnARoadmap},on:{\"action\":function($event){return _vm.trackEvent('view_epic_on_roadmap')}}}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_more_actions.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_more_actions.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlDisclosureDropdown,\n GlTooltipDirective,\n GlDisclosureDropdownItem,\n GlToggle,\n} from '@gitlab/ui';\nimport { s__ } from '~/locale';\nimport { InternalEvents } from '~/tracking';\nimport { workItemRoadmapPath } from '../../utils';\nimport { WORK_ITEM_TYPE_ENUM_EPIC } from '../../constants';\n\nexport default {\n i18n: {\n moreActions: s__('WorkItem|More actions'),\n showLabels: s__('WorkItem|Show labels'),\n showClosed: s__('WorkItem|Show closed items'),\n },\n components: {\n GlDisclosureDropdown,\n GlDisclosureDropdownItem,\n GlToggle,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [InternalEvents.mixin()],\n props: {\n workItemIid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n workItemType: {\n type: String,\n required: true,\n },\n showLabels: {\n type: Boolean,\n required: false,\n default: true,\n },\n showClosed: {\n type: Boolean,\n required: false,\n default: true,\n },\n showViewRoadmapAction: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n isDropdownVisible: false,\n };\n },\n computed: {\n tooltipText() {\n return !this.isDropdownVisible ? this.$options.i18n.moreActions : '';\n },\n workItemRoadmapPathHref() {\n return workItemRoadmapPath(this.fullPath, this.workItemIid);\n },\n viewOnARoadmap() {\n return {\n text: s__('WorkItem|View on a roadmap'),\n href: this.workItemRoadmapPathHref,\n extraAttrs: {\n 'data-testid': 'view-roadmap',\n },\n };\n },\n shouldShowViewRoadmapAction() {\n return (\n this.workItemType.toUpperCase() === WORK_ITEM_TYPE_ENUM_EPIC && this.showViewRoadmapAction\n );\n },\n },\n methods: {\n showDropdown() {\n this.isDropdownVisible = true;\n },\n hideDropdown() {\n this.isDropdownVisible = false;\n },\n },\n};\n</script>\n<template>\n <div>\n <gl-disclosure-dropdown\n ref=\"workItemsMoreActions\"\n v-gl-tooltip=\"tooltipText\"\n icon=\"ellipsis_v\"\n text-sr-only\n :toggle-text=\"$options.i18n.moreActions\"\n size=\"small\"\n category=\"tertiary\"\n no-caret\n placement=\"bottom-end\"\n :auto-close=\"false\"\n @shown=\"showDropdown\"\n @hidden=\"hideDropdown\"\n >\n <gl-disclosure-dropdown-item\n class=\"work-item-dropdown-toggle\"\n @action=\"$emit('toggle-show-labels')\"\n >\n <template #list-item>\n <gl-toggle\n :value=\"showLabels\"\n :label=\"$options.i18n.showLabels\"\n class=\"gl-justify-between\"\n label-position=\"left\"\n />\n </template>\n </gl-disclosure-dropdown-item>\n\n <gl-disclosure-dropdown-item\n class=\"work-item-dropdown-toggle\"\n @action=\"$emit('toggle-show-closed')\"\n >\n <template #list-item>\n <gl-toggle\n :value=\"showClosed\"\n :label=\"$options.i18n.showClosed\"\n class=\"gl-justify-between\"\n label-position=\"left\"\n />\n </template>\n </gl-disclosure-dropdown-item>\n\n <gl-disclosure-dropdown-item\n v-if=\"shouldShowViewRoadmapAction\"\n :item=\"viewOnARoadmap\"\n @action=\"trackEvent('view_epic_on_roadmap')\"\n />\n </gl-disclosure-dropdown>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_more_actions.vue?vue&type=template&id=f5bd76a8\"\nimport script from \"./work_item_more_actions.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_more_actions.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetIssuableResourceLinks\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"incidentId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"incidentId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableResourceLinks\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"incidentId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"incidentId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ResourceLinkFields\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":269}};\n doc.loc.source = {\"body\":\"#import \\\"../fragments/resource_link_fields.fragment.graphql\\\"\\n\\nquery GetIssuableResourceLinks($incidentId: IssueID!) {\\n issue(id: $incidentId) {\\n id\\n issuableResourceLinks(incidentId: $incidentId) {\\n nodes {\\n ...ResourceLinkFields\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"../fragments/resource_link_fields.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"GetIssuableResourceLinks\"] = oneQuery(doc, \"GetIssuableResourceLinks\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('sidebar-editable-item',{ref:\"editable\",staticClass:\"block health-status\",attrs:{\"can-edit\":_vm.canEdit,\"loading\":_vm.isLoading,\"title\":_vm.$options.HEALTH_STATUS_I18N_HEALTH_STATUS,\"tracking\":_vm.$options.healthStatusTracking},on:{\"close\":_vm.updateHealthStatus,\"open\":_vm.showDropdown},scopedSlots:_vm._u([{key:\"collapsed\",fn:function(){return [_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport.title\",value:(_vm.healthStatusTooltip),expression:\"healthStatusTooltip\",modifiers:{\"left\":true,\"viewport\":true,\"title\":true}}],staticClass:\"sidebar-collapsed-icon\",on:{\"click\":_vm.expandSidebar}},[_c('gl-icon',{attrs:{\"name\":\"status-health\"}}),_vm._v(\" \"),(_vm.isLoading)?_c('gl-loading-icon'):_c('p',{staticClass:\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\"},[_vm._v(\"\\n \"+_vm._s(_vm.healthStatusText)+\"\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed\"},[(_vm.healthStatus)?_c('issue-health-status',{staticClass:\"gl-mt-2\",attrs:{\"health-status\":_vm.healthStatus}}):_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.$options.HEALTH_STATUS_I18N_NONE))])],1)]},proxy:true},{key:\"default\",fn:function(){return [_c('health-status-dropdown',{ref:\"dropdown\",attrs:{\"health-status\":_vm.healthStatus},on:{\"change\":_vm.updateHealthStatus}})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_health_status_widget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_health_status_widget.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlLoadingIcon, GlTooltipDirective as GlTooltip } from '@gitlab/ui';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { createAlert } from '~/alert';\nimport { STATUS_OPEN, STATUS_REOPENED } from '~/issues/constants';\nimport { s__, sprintf } from '~/locale';\nimport SidebarEditableItem from '~/sidebar/components/sidebar_editable_item.vue';\nimport IssueHealthStatus from 'ee/related_items_tree/components/issue_health_status.vue';\nimport Tracking from '~/tracking';\nimport {\n HEALTH_STATUS_I18N_FETCH_ERROR,\n HEALTH_STATUS_I18N_HEALTH_STATUS,\n HEALTH_STATUS_I18N_NONE,\n HEALTH_STATUS_I18N_UPDATE_ERROR,\n HEALTH_STATUS_OPEN_DROPDOWN_DELAY,\n healthStatusTextMap,\n healthStatusTracking,\n} from '../../constants';\nimport { healthStatusQueries } from '../../queries/constants';\nimport HealthStatusDropdown from './health_status_dropdown.vue';\n\nexport default {\n HEALTH_STATUS_I18N_HEALTH_STATUS,\n HEALTH_STATUS_I18N_NONE,\n HEALTH_STATUS_I18N_UPDATE_ERROR,\n healthStatusTracking,\n components: {\n GlIcon,\n GlLoadingIcon,\n HealthStatusDropdown,\n SidebarEditableItem,\n IssueHealthStatus,\n },\n directives: {\n GlTooltip,\n },\n mixins: [Tracking.mixin()],\n inject: ['canUpdate'],\n props: {\n iid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n issuableType: {\n required: true,\n type: String,\n },\n },\n data() {\n return {\n isUpdating: false,\n };\n },\n apollo: {\n // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n issuable: {\n query() {\n return healthStatusQueries[this.issuableType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n iid: this.iid,\n };\n },\n skip() {\n return !this.iid;\n },\n update: (data) => data.workspace?.issuable,\n error(error) {\n createAlert({\n message: sprintf(HEALTH_STATUS_I18N_FETCH_ERROR, { issuableType: this.issuableType }),\n });\n Sentry.captureException(error);\n },\n },\n },\n computed: {\n canEdit() {\n return this.canUpdate && this.isOpen;\n },\n healthStatus() {\n return this.issuable?.healthStatus;\n },\n healthStatusText() {\n return this.healthStatus ? healthStatusTextMap[this.healthStatus] : HEALTH_STATUS_I18N_NONE;\n },\n healthStatusTooltip() {\n const tooltipText = s__('Sidebar|Health status');\n return this.healthStatus ? `${tooltipText}: ${this.healthStatusText}` : tooltipText;\n },\n isLoading() {\n return this.$apollo.queries.issuable.loading || this.isUpdating;\n },\n isOpen() {\n return this.issuable?.state === STATUS_OPEN || this.issuable?.state === STATUS_REOPENED;\n },\n },\n methods: {\n expandSidebar() {\n // Wait for the open sidebar animation to finish before opening the\n // health status dropdown, otherwise the dropdown is misaligned.\n setTimeout(this.$refs.editable.expand, HEALTH_STATUS_OPEN_DROPDOWN_DELAY);\n },\n showDropdown() {\n this.$refs.dropdown.show();\n },\n updateHealthStatus(healthStatus) {\n this.$refs.editable.collapse();\n if (healthStatus === undefined || healthStatus === this.healthStatus) {\n return;\n }\n\n this.track('change_health_status', { property: healthStatus });\n this.isUpdating = true;\n\n this.$apollo\n .mutate({\n mutation: healthStatusQueries[this.issuableType].mutation,\n variables: {\n healthStatus,\n iid: this.iid,\n projectPath: this.fullPath,\n },\n })\n .then(({ data }) => {\n if (data.updateIssue.errors.length) {\n throw new Error(data.updateIssue.errors.join('\\n'));\n } else {\n this.$emit('statusUpdated', healthStatus);\n }\n })\n .catch((error) => {\n createAlert({\n message: sprintf(HEALTH_STATUS_I18N_UPDATE_ERROR, { issuableType: this.issuableType }),\n });\n Sentry.captureException(error);\n })\n .finally(() => {\n this.isUpdating = false;\n });\n },\n },\n};\n</script>\n\n<template>\n <sidebar-editable-item\n ref=\"editable\"\n class=\"block health-status\"\n :can-edit=\"canEdit\"\n :loading=\"isLoading\"\n :title=\"$options.HEALTH_STATUS_I18N_HEALTH_STATUS\"\n :tracking=\"$options.healthStatusTracking\"\n @close=\"updateHealthStatus\"\n @open=\"showDropdown\"\n >\n <template #collapsed>\n <div\n v-gl-tooltip.left.viewport.title=\"healthStatusTooltip\"\n class=\"sidebar-collapsed-icon\"\n @click=\"expandSidebar\"\n >\n <gl-icon name=\"status-health\" />\n <gl-loading-icon v-if=\"isLoading\" />\n <p v-else class=\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\">\n {{ healthStatusText }}\n </p>\n </div>\n <div class=\"hide-collapsed\">\n <issue-health-status v-if=\"healthStatus\" class=\"gl-mt-2\" :health-status=\"healthStatus\" />\n <span v-else class=\"gl-text-subtle\">{{ $options.HEALTH_STATUS_I18N_NONE }}</span>\n </div>\n </template>\n <template #default>\n <health-status-dropdown\n ref=\"dropdown\"\n :health-status=\"healthStatus\"\n @change=\"updateHealthStatus\"\n />\n </template>\n </sidebar-editable-item>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_health_status_widget.vue?vue&type=template&id=f5723bee\"\nimport script from \"./sidebar_health_status_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_health_status_widget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableAssigneesUpdated\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableAssigneesUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignees\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"availability\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":346}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n\\nsubscription issuableAssigneesUpdated($issuableId: IssuableID!) {\\n issuableAssigneesUpdated(issuableId: $issuableId) {\\n ... on Issue {\\n id\\n assignees {\\n nodes {\\n ...User\\n status {\\n availability\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issuableAssigneesUpdated\"] = oneQuery(doc, \"issuableAssigneesUpdated\");\n \n","import { __, s__ } from '~/locale';\n\nexport const COMMENT_FORM = {\n GENERIC_UNSUBMITTABLE_NETWORK: __(\n 'Your comment could not be submitted! Please check your network connection and try again.',\n ),\n error: __('Comment could not be submitted: %{reason}.'),\n note: __('Note'),\n comment: __('Comment'),\n wiki: __('Wiki'),\n internalComment: __('Add internal note'),\n issue: __('issue'),\n startThread: __('Start thread'),\n startInternalThread: __('Start internal thread'),\n mergeRequest: __('merge request'),\n epic: __('epic'),\n bodyPlaceholder: __('Write a comment or drag your files here…'),\n bodyPlaceholderInternal: __('Write an internal note or drag your files here…'),\n internal: s__('Notes|Make this an internal note'),\n internalVisibility: s__(\n 'Notes|Internal notes are only visible to members with the role of Planner or higher',\n ),\n discussionThatNeedsResolution: __(\n 'Discuss a specific suggestion or question that needs to be resolved.',\n ),\n internalDiscussionThatNeedsResolution: __(\n 'Discuss a specific suggestion or question internally that needs to be resolved.',\n ),\n discussion: __('Discuss a specific suggestion or question.'),\n internalDiscussion: __('Discuss a specific suggestion or question internally.'),\n actionButtonWithNote: __('%{actionText} & %{openOrClose} %{noteable}'),\n actionButton: {\n withNote: {\n reopen: __('%{actionText} & reopen %{noteable}'),\n close: __('%{actionText} & close %{noteable}'),\n },\n withoutNote: {\n reopen: __('Reopen %{noteable}'),\n close: __('Close %{noteable}'),\n },\n },\n submitButton: {\n startThread: __('Start thread'),\n startInternalThread: __('Start internal thread'),\n comment: __('Comment'),\n internalComment: __('Add internal note'),\n commentHelp: __('Add a general comment to this %{noteableDisplayName}.'),\n internalCommentHelp: __('Add a confidential internal note to this %{noteableDisplayName}.'),\n },\n addToReviewButton: {\n saveThread: __('Add thread to review'),\n saveComment: __('Add comment to review'),\n },\n addToReview: __('Add to review'),\n startReview: __('Start review'),\n addCommentNow: __('Add comment now'),\n addThreadNow: __('Add thread now'),\n};\n\nexport const EDITED_TEXT = {\n actionWithAuthor: __('%{actionText} %{actionDetail} %{timeago} by %{author}'),\n actionWithoutAuthor: __('%{actionText} %{actionDetail}'),\n};\n\nexport const UPDATE_COMMENT_FORM = {\n error: __('Comment could not be updated: %{reason}.'),\n defaultError: __('Something went wrong while editing your comment. Please try again.'),\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-modal',{attrs:{\"size\":\"sm\",\"visible\":_vm.showModal,\"modal-id\":_vm.$options.modal.id,\"title\":_vm.$options.i18n.title,\"action-primary\":_vm.$options.modal.actionPrimary,\"action-secondary\":_vm.$options.modal.actionSecondary},on:{\"primary\":_vm.submitForm,\"hide\":_vm.closeModal}},[_c('gl-form',{ref:\"form\",attrs:{\"action\":_vm.reportAbusePath,\"method\":\"post\"}},[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"authenticity_token\"},domProps:{\"value\":_vm.$options.csrf.token}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"user_id\",\"data-testid\":\"input-user-id\"},domProps:{\"value\":_vm.reportedUserId}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"abuse_report[reported_from_url]\",\"data-testid\":\"input-referer\"},domProps:{\"value\":_vm.reportedFromUrl}}),_vm._v(\" \"),_c('gl-form-group',{attrs:{\"label\":_vm.$options.i18n.label}},[_c('gl-form-radio-group',{attrs:{\"options\":_vm.$options.CATEGORY_OPTIONS,\"name\":\"abuse_report[category]\"},model:{value:(_vm.selectedOption),callback:function ($$v) {_vm.selectedOption=$$v},expression:\"selectedOption\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_abuse_modal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_abuse_modal.vue?vue&type=script&lang=js\"","<script>\nimport { GlForm, GlFormGroup, GlFormRadioGroup, GlModal } from '@gitlab/ui';\nimport { uniqueId } from 'lodash';\nimport { s__, __ } from '~/locale';\nimport csrf from '~/lib/utils/csrf';\nimport { CATEGORY_OPTIONS } from '~/abuse_reports/components/constants';\n\nexport default {\n name: 'WorkItemAbuseModal',\n csrf,\n i18n: {\n title: __('Report abuse to administrator'),\n label: s__('ReportAbuse|Why are you reporting this user?'),\n },\n modal: {\n id: uniqueId('work-item-abuse-modal-'),\n actionPrimary: {\n text: __('Next'),\n attributes: {\n variant: 'confirm',\n },\n },\n actionSecondary: {\n text: __('Cancel'),\n attributes: {\n variant: 'default',\n },\n },\n },\n CATEGORY_OPTIONS,\n components: {\n GlForm,\n GlFormGroup,\n GlFormRadioGroup,\n GlModal,\n },\n inject: {\n reportAbusePath: {\n default: '',\n },\n },\n props: {\n reportedUserId: {\n type: Number,\n required: true,\n },\n reportedFromUrl: {\n type: String,\n required: false,\n default: '',\n },\n showModal: {\n type: Boolean,\n required: true,\n },\n },\n data() {\n return {\n selectedOption: CATEGORY_OPTIONS[0].value,\n };\n },\n methods: {\n closeModal() {\n this.$emit('close-modal');\n },\n submitForm() {\n this.$refs.form.$el.submit();\n },\n },\n};\n</script>\n<template>\n <gl-modal\n size=\"sm\"\n :visible=\"showModal\"\n :modal-id=\"$options.modal.id\"\n :title=\"$options.i18n.title\"\n :action-primary=\"$options.modal.actionPrimary\"\n :action-secondary=\"$options.modal.actionSecondary\"\n @primary=\"submitForm\"\n @hide=\"closeModal\"\n >\n <gl-form ref=\"form\" :action=\"reportAbusePath\" method=\"post\">\n <input :value=\"$options.csrf.token\" type=\"hidden\" name=\"authenticity_token\" />\n\n <input type=\"hidden\" name=\"user_id\" :value=\"reportedUserId\" data-testid=\"input-user-id\" />\n <input\n type=\"hidden\"\n name=\"abuse_report[reported_from_url]\"\n :value=\"reportedFromUrl\"\n data-testid=\"input-referer\"\n />\n\n <gl-form-group :label=\"$options.i18n.label\">\n <gl-form-radio-group\n v-model=\"selectedOption\"\n :options=\"$options.CATEGORY_OPTIONS\"\n name=\"abuse_report[category]\"\n />\n </gl-form-group>\n </gl-form>\n </gl-modal>\n</template>\n","import { render, staticRenderFns } from \"./work_item_abuse_modal.vue?vue&type=template&id=17de7e51\"\nimport script from \"./work_item_abuse_modal.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_abuse_modal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestRequestRereview\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"userId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UserID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestReviewerRereview\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"userId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"userId\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":207}};\n doc.loc.source = {\"body\":\"mutation mergeRequestRequestRereview($projectPath: ID!, $iid: String!, $userId: UserID!) {\\n mergeRequestReviewerRereview(input: { projectPath: $projectPath, iid: $iid, userId: $userId }) {\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"mergeRequestRequestRereview\"] = oneQuery(doc, \"mergeRequestRequestRereview\");\n \n","var isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nmodule.exports = castArrayLikeObject;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableDetailsEE\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"milestone\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iteration\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":152}};\n doc.loc.source = {\"body\":\"query issuableDetailsEE($id: IssueID!) {\\n issue(id: $id) {\\n id\\n confidential\\n milestone {\\n id\\n }\\n iteration {\\n id\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issuableDetailsEE\"] = oneQuery(doc, \"issuableDetailsEE\");\n \n","import { formatNumber, sprintf, __ } from '~/locale';\nimport { BYTES_IN_KIB, THOUSAND, MILLION } from './constants';\n\n/**\n * Utility function that calculates KiB of the given bytes.\n *\n * @param {Number} number bytes\n * @return {Number} KiB\n */\nexport function bytesToKiB(number) {\n return number / BYTES_IN_KIB;\n}\n\n/**\n * Utility function that calculates MiB of the given bytes.\n *\n * @param {Number} number bytes\n * @return {Number} MiB\n */\nexport function bytesToMiB(number) {\n return number / (BYTES_IN_KIB * BYTES_IN_KIB);\n}\n\n/**\n * Utility function that calculates GiB of the given bytes.\n * @param {Number} number\n * @returns {Number}\n */\nexport function bytesToGiB(number) {\n return number / (BYTES_IN_KIB * BYTES_IN_KIB * BYTES_IN_KIB);\n}\n\n/**\n * Formats the bytes in number into a more understandable\n * representation. Returns an array with the first value being the human size\n * and the second value being the label (e.g., [1.5, 'KiB']).\n *\n * @param {number} size\n * @param {number} [digits=2] - The number of digits to appear after the decimal point\n * @param {string} locale\n * @returns {string[]}\n */\nexport function numberToHumanSizeSplit({ size, digits = 2, locale } = {}) {\n const abs = Math.abs(size);\n const digitsOptions = { minimumFractionDigits: digits, maximumFractionDigits: digits };\n const formatNumberWithLocaleAndDigits = (n) => formatNumber(n, digitsOptions, locale);\n\n if (abs < BYTES_IN_KIB) {\n return [size.toString(), __('B')];\n }\n if (abs < BYTES_IN_KIB ** 2) {\n return [formatNumberWithLocaleAndDigits(bytesToKiB(size)), __('KiB')];\n }\n if (abs < BYTES_IN_KIB ** 3) {\n return [formatNumberWithLocaleAndDigits(bytesToMiB(size)), __('MiB')];\n }\n return [formatNumberWithLocaleAndDigits(bytesToGiB(size)), __('GiB')];\n}\n\n/**\n * Port of rails number_to_human_size\n * Formats the bytes in number into a more understandable\n * representation (e.g., giving it 1536 yields 1.5 KiB).\n *\n * @param {number} size\n * @param {number} [digits=2] - The number of digits to appear after the decimal point\n * @param {string} locale\n * @returns {string}\n */\nexport function numberToHumanSize(size, digits = 2, locale) {\n const [humanSize, label] = numberToHumanSizeSplit({ size, digits, locale });\n\n switch (label) {\n case __('B'):\n return sprintf(__('%{size} B'), { size: humanSize });\n case __('KiB'):\n return sprintf(__('%{size} KiB'), { size: humanSize });\n case __('MiB'):\n return sprintf(__('%{size} MiB'), { size: humanSize });\n case __('GiB'):\n return sprintf(__('%{size} GiB'), { size: humanSize });\n default:\n return '';\n }\n}\n\n/**\n * Converts a number to kilos or megas.\n *\n * For example:\n * - 123 becomes 123\n * - 123456 becomes 123.4k\n * - 123456789 becomes 123.4m\n *\n * @param number Number to format\n * @param digits The number of digits to appear after the decimal point\n * @param uppercase Whether to use uppercase suffix (K, M)\n * @return {string} Formatted number\n */\nexport function numberToMetricPrefix(number, uppercase = false) {\n if (number < THOUSAND) {\n return number.toString();\n }\n const digits = 1;\n if (number < MILLION) {\n return `${Number((number / THOUSAND).toFixed(digits))}${uppercase ? 'K' : 'k'}`;\n }\n return `${Number((number / MILLION).toFixed(digits))}${uppercase ? 'M' : 'm'}`;\n}\n/**\n * A simple method that returns the value of a + b\n * It seems unessesary, but when combined with a reducer it\n * adds up all the values in an array.\n *\n * e.g. `[1, 2, 3, 4, 5].reduce(sum) // => 15`\n *\n * @param {Float} a\n * @param {Float} b\n * @example\n * // return 15\n * [1, 2, 3, 4, 5].reduce(sum);\n *\n * // returns 6\n * Object.values([{a: 1, b: 2, c: 3].reduce(sum);\n * @returns {Float} The summed value\n */\nexport const sum = (a = 0, b = 0) => a + b;\n\n/**\n * Checks if the provided number is odd\n * @param {Int} number\n */\nexport const isOdd = (number = 0) => number % 2;\n\n/**\n * Computes the median for a given array.\n * @param {Array} arr An array of numbers\n * @returns {Number} The median of the given array\n */\nexport const median = (arr) => {\n const middle = Math.floor(arr.length / 2);\n const sorted = arr.sort((a, b) => a - b);\n return arr.length % 2 !== 0 ? sorted[middle] : (sorted[middle - 1] + sorted[middle]) / 2;\n};\n\n/**\n * Computes the change from one value to the other as a percentage.\n * @param {Number} firstY\n * @param {Number} lastY\n * @returns {Number}\n */\nexport const changeInPercent = (firstY, lastY) => {\n if (firstY === lastY) {\n return 0;\n }\n\n return Math.round(((lastY - firstY) / Math.abs(firstY)) * 100);\n};\n\n/**\n * Computes and formats the change from one value to the other as a percentage.\n * Prepends the computed percentage with either \"+\" or \"-\" to indicate an in- or decrease and\n * returns a given string if the result is not finite (for example, if the first value is \"0\").\n * @param firstY\n * @param lastY\n * @param nonFiniteResult\n * @returns {String}\n */\nexport const formattedChangeInPercent = (firstY, lastY, { nonFiniteResult = '-' } = {}) => {\n const change = changeInPercent(firstY, lastY);\n\n if (!Number.isFinite(change)) {\n return nonFiniteResult;\n }\n\n return `${change >= 0 ? '+' : ''}${change}%`;\n};\n\n/**\n * Checks whether a value is numerical in nature by converting it using parseInt\n *\n * Example outcomes:\n * - isNumeric(100) = true\n * - isNumeric('100') = true\n * - isNumeric(1.0) = true\n * - isNumeric('1.0') = true\n * - isNumeric('abc100') = false\n * - isNumeric('abc') = false\n * - isNumeric(true) = false\n * - isNumeric(undefined) = false\n * - isNumeric(null) = false\n *\n * @param value\n * @returns {boolean}\n */\nexport const isNumeric = (value) => {\n return !Number.isNaN(parseInt(value, 10));\n};\n\nconst numberRegex = /^[0-9]+$/;\n\n/**\n * Checks whether the value is a positive number or 0, or a string with equivalent value\n *\n * @param value\n * @return {boolean}\n */\nexport const isPositiveInteger = (value) => numberRegex.test(value);\n\n/**\n * Splits a number into an integer and decimal component\n * returns an object with the integer and decimal values extracted\n *\n * @param value\n * @return {Object}\n */\nexport const splitDecimalNumber = (value) => {\n if (isNumeric(value)) {\n const parts = String(value).split('.');\n if (value === 0) return { integer: '0', decimal: '0' };\n\n if (parts.length) {\n return parts.length > 1\n ? { integer: parts[0], decimal: parts[1] }\n : { integer: parts[0], decimal: null };\n }\n }\n return { integer: null, decimal: null };\n};\n\n/**\n * Calculates the number of digits after the decimal place\n *\n * @param num - any numeric value\n * @return number of digits after the decimal (if any)\n */\nexport const countFloatingPointDigits = (num = null) => {\n if (!num || !isNumeric(num)) return 0;\n\n const { decimal } = splitDecimalNumber(num);\n return String(decimal).length;\n};\n","var baseToString = require('./_baseToString'),\n castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n isObject = require('./isObject'),\n isRegExp = require('./isRegExp'),\n stringSize = require('./_stringSize'),\n stringToArray = require('./_stringToArray'),\n toInteger = require('./toInteger'),\n toString = require('./toString');\n\n/** Used as default options for `_.truncate`. */\nvar DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Truncates `string` if it's longer than the given maximum string length.\n * The last characters of the truncated string are replaced with the omission\n * string which defaults to \"...\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to truncate.\n * @param {Object} [options={}] The options object.\n * @param {number} [options.length=30] The maximum string length.\n * @param {string} [options.omission='...'] The string to indicate text is omitted.\n * @param {RegExp|string} [options.separator] The separator pattern to truncate to.\n * @returns {string} Returns the truncated string.\n * @example\n *\n * _.truncate('hi-diddly-ho there, neighborino');\n * // => 'hi-diddly-ho there, neighbo...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': ' '\n * });\n * // => 'hi-diddly-ho there,...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': /,? +/\n * });\n * // => 'hi-diddly-ho there...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'omission': ' [...]'\n * });\n * // => 'hi-diddly-ho there, neig [...]'\n */\nfunction truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH,\n omission = DEFAULT_TRUNC_OMISSION;\n\n if (isObject(options)) {\n var separator = 'separator' in options ? options.separator : separator;\n length = 'length' in options ? toInteger(options.length) : length;\n omission = 'omission' in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result = strSymbols\n ? castSlice(strSymbols, 0, end).join('')\n : string.slice(0, end);\n\n if (separator === undefined) {\n return result + omission;\n }\n if (strSymbols) {\n end += (result.length - end);\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match,\n substring = result;\n\n if (!separator.global) {\n separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');\n }\n separator.lastIndex = 0;\n while ((match = separator.exec(substring))) {\n var newEnd = match.index;\n }\n result = result.slice(0, newEnd === undefined ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result.lastIndexOf(separator);\n if (index > -1) {\n result = result.slice(0, index);\n }\n }\n return result + omission;\n}\n\nmodule.exports = truncate;\n","import { marked } from 'marked';\nimport markedBidi from 'marked-bidi';\nimport { sanitize } from '~/lib/dompurify';\nimport { markdownConfig } from '~/lib/utils/text_utility';\nimport { HTTP_STATUS_UNPROCESSABLE_ENTITY } from '~/lib/utils/http_status';\nimport { sprintf } from '~/locale';\nimport { UPDATE_COMMENT_FORM, COMMENT_FORM } from './i18n';\n\n/**\n * Tracks snowplow event when User toggles timeline view\n * @param {Boolean} enabled that will be send as a property for the event\n */\nexport const trackToggleTimelineView = (enabled) => ({\n category: 'Incident Management', // eslint-disable-line @gitlab/require-i18n-strings\n action: 'toggle_incident_comments_into_timeline_view',\n label: 'Status', // eslint-disable-line @gitlab/require-i18n-strings\n property: enabled,\n});\n\nmarked.use(markedBidi());\n\nexport const renderMarkdown = (rawMarkdown) => {\n return sanitize(marked(rawMarkdown), markdownConfig);\n};\n\nexport const createNoteErrorMessages = (data, status) => {\n const errors = data?.errors;\n\n if (status === HTTP_STATUS_UNPROCESSABLE_ENTITY) {\n if (data.quick_actions_status?.error_messages?.length) {\n return data.quick_actions_status.error_messages;\n }\n\n if (errors) {\n return [sprintf(COMMENT_FORM.error, { reason: errors.toLowerCase() }, false)];\n }\n }\n\n return [COMMENT_FORM.GENERIC_UNSUBMITTABLE_NETWORK];\n};\n\nexport const updateNoteErrorMessage = (e) => {\n const errors = e?.response?.data?.errors;\n\n if (errors) {\n return sprintf(UPDATE_COMMENT_FORM.error, { reason: errors.toLowerCase() }, false);\n }\n\n return UPDATE_COMMENT_FORM.defaultError;\n};\n\nexport const isSlashCommand = (message) => {\n const trimmedMessage = message\n ?.split('\\n')\n .filter((line) => line.trim() !== '')\n .join('\\n');\n return trimmedMessage?.startsWith('/') || false;\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestSetSubscription\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribedState\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"updateIssuableSubscription\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestSetSubscription\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribedState\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribedState\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribed\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":325}};\n doc.loc.source = {\"body\":\"mutation mergeRequestSetSubscription($fullPath: ID!, $iid: String!, $subscribedState: Boolean!) {\\n updateIssuableSubscription: mergeRequestSetSubscription(\\n input: { projectPath: $fullPath, iid: $iid, subscribedState: $subscribedState }\\n ) {\\n issuable: mergeRequest {\\n id\\n subscribed\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"mergeRequestSetSubscription\"] = oneQuery(doc, \"mergeRequestSetSubscription\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"namespaceWorkItemTypes\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueType\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"namespace\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemTypes\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemTypeFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":290}};\n doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/work_items/graphql/work_item_type.fragment.graphql\\\"\\n\\nquery namespaceWorkItemTypes($fullPath: ID!, $name: IssueType) {\\n workspace: namespace(fullPath: $fullPath) {\\n id\\n workItemTypes(name: $name) {\\n nodes {\\n ...WorkItemTypeFragment\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/work_items/graphql/work_item_type.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"namespaceWorkItemTypes\"] = oneQuery(doc, \"namespaceWorkItemTypes\");\n \n","import createEventHub from '~/helpers/event_hub_factory';\n\nexport default createEventHub();\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignDiffRefs\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DiffRefs\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"baseSha\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startSha\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"headSha\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":71}};\n doc.loc.source = {\"body\":\"fragment DesignDiffRefs on DiffRefs {\\n baseSha\\n startSha\\n headSha\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"DesignDiffRefs\"] = oneQuery(doc, \"DesignDiffRefs\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"promoteToEpic\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PromoteToEpicInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"promoteToEpic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":144}};\n doc.loc.source = {\"body\":\"mutation promoteToEpic($input: PromoteToEpicInput!) {\\n promoteToEpic(input: $input) {\\n epic {\\n id\\n webPath\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"promoteToEpic\"] = oneQuery(doc, \"promoteToEpic\");\n \n","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (root, factory) {\n var namespace = 'VirtualList';\n /* istanbul ignore next */\n\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === 'object') {\n module.exports = factory(namespace, require('vue'));\n } else if (typeof define === 'function' && define.amd) {\n define(['vue'], factory.bind(root, namespace));\n } else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object') {\n exports[namespace] = factory(namespace, require('vue'));\n } else {\n root[namespace] = factory(namespace, root.Vue);\n }\n})(this, function (namespace, Vue) {\n /* istanbul ignore next */\n if (_typeof(Vue) === 'object' && typeof Vue[\"default\"] === 'function') {\n Vue = Vue[\"default\"];\n }\n /* istanbul ignore next */\n\n\n var _debounce = function _debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this;\n var args = arguments;\n\n var later = function later() {\n timeout = null;\n\n if (!immediate) {\n func.apply(context, args);\n }\n };\n\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n\n if (callNow) {\n func.apply(context, args);\n }\n };\n };\n\n return Vue.component(namespace, {\n props: {\n size: {\n type: Number,\n required: true\n },\n remain: {\n type: Number,\n required: true\n },\n rtag: {\n type: String,\n \"default\": 'div'\n },\n wtag: {\n type: String,\n \"default\": 'div'\n },\n wclass: {\n type: String,\n \"default\": ''\n },\n wstyle: {\n type: Object,\n \"default\": function _default() {\n return {};\n }\n },\n pagemode: {\n type: Boolean,\n \"default\": false\n },\n scrollelement: {\n type: typeof window === 'undefined' ? Object : HTMLElement,\n \"default\": null\n },\n start: {\n type: Number,\n \"default\": 0\n },\n offset: {\n type: Number,\n \"default\": 0\n },\n variable: {\n type: [Function, Boolean],\n \"default\": false\n },\n bench: {\n type: Number,\n \"default\": 0 // also equal to remain\n\n },\n debounce: {\n type: Number,\n \"default\": 0\n },\n totop: {\n type: [Function, Boolean],\n \"default\": false\n },\n tobottom: {\n type: [Function, Boolean],\n \"default\": false\n },\n onscroll: {\n type: [Function, Boolean],\n // Boolean disables default behavior\n \"default\": false\n },\n istable: {\n type: Boolean,\n \"default\": false\n },\n item: {\n type: [Function, Object],\n \"default\": null\n },\n itemcount: {\n type: Number,\n \"default\": 0\n },\n itemprops: {\n type: Function,\n\n /* istanbul ignore next */\n \"default\": function _default() {}\n }\n },\n // use changeProp to identify the prop change.\n watch: {\n size: function size() {\n this.changeProp = 'size';\n },\n remain: function remain() {\n this.changeProp = 'remain';\n },\n bench: function bench() {\n this.changeProp = 'bench';\n this.itemModeForceRender();\n },\n start: function start() {\n this.changeProp = 'start';\n this.itemModeForceRender();\n },\n offset: function offset() {\n this.changeProp = 'offset';\n this.itemModeForceRender();\n },\n itemcount: function itemcount() {\n this.changeProp = 'itemcount';\n this.itemModeForceRender();\n },\n scrollelement: function scrollelement(newScrollelement, oldScrollelement) {\n if (this.pagemode) {\n return;\n }\n\n if (oldScrollelement) {\n this.removeScrollListener(oldScrollelement);\n }\n\n if (newScrollelement) {\n this.addScrollListener(newScrollelement);\n }\n }\n },\n created: function created() {\n var start = this.start >= this.remain ? this.start : 0;\n var keeps = this.remain + (this.bench || this.remain);\n var delta = Object.create(null);\n delta.direction = ''; // current scroll direction, D: down, U: up.\n\n delta.scrollTop = 0; // current scroll top, use to direction.\n\n delta.start = start; // start index.\n\n delta.end = start + keeps - 1; // end index.\n\n delta.keeps = keeps; // nums keeping in real dom.\n\n delta.total = 0; // all items count, update in filter.\n\n delta.offsetAll = 0; // cache all the scrollable offset.\n\n delta.paddingTop = 0; // container wrapper real padding-top.\n\n delta.paddingBottom = 0; // container wrapper real padding-bottom.\n\n delta.varCache = {}; // object to cache variable index height and scroll offset.\n\n delta.varAverSize = 0; // average/estimate item height before variable be calculated.\n\n delta.varLastCalcIndex = 0; // last calculated variable height/offset index, always increase.\n\n this.delta = delta;\n },\n mounted: function mounted() {\n if (this.pagemode) {\n this.addScrollListener(window);\n } else if (this.scrollelement) {\n this.addScrollListener(this.scrollelement);\n }\n\n if (this.start) {\n var start = this.getZone(this.start).start;\n this.setScrollTop(this.variable ? this.getVarOffset(start) : start * this.size);\n } else if (this.offset) {\n this.setScrollTop(this.offset);\n }\n },\n beforeDestroy: function beforeDestroy() {\n if (this.pagemode) {\n this.removeScrollListener(window);\n } else if (this.scrollelement) {\n this.removeScrollListener(this.scrollelement);\n }\n },\n // check if delta should update when props change.\n beforeUpdate: function beforeUpdate() {\n var delta = this.delta;\n delta.keeps = this.remain + (this.bench || this.remain);\n var calcstart = this.changeProp === 'start' ? this.start : delta.start;\n var zone = this.getZone(calcstart); // if start, size or offset change, update scroll position.\n\n if (this.changeProp && ['start', 'size', 'offset'].includes(this.changeProp)) {\n var scrollTop = this.changeProp === 'offset' ? this.offset : this.variable ? this.getVarOffset(zone.isLast ? delta.total : zone.start) : zone.isLast && delta.total - calcstart <= this.remain ? delta.total * this.size : calcstart * this.size;\n this.$nextTick(this.setScrollTop.bind(this, scrollTop));\n } // if points out difference, force update once again.\n\n\n if (this.changeProp || delta.end !== zone.end || calcstart !== zone.start) {\n this.changeProp = '';\n delta.end = zone.end;\n delta.start = zone.start;\n this.forceRender();\n }\n },\n methods: {\n // add pagemode/scrollelement scroll event listener\n addScrollListener: function addScrollListener(element) {\n this.scrollHandler = this.debounce ? _debounce(this.onScroll.bind(this), this.debounce) : this.onScroll;\n element.addEventListener('scroll', this.scrollHandler, false);\n },\n // remove pagemode/scrollelement scroll event listener\n removeScrollListener: function removeScrollListener(element) {\n element.removeEventListener('scroll', this.scrollHandler, false);\n },\n onScroll: function onScroll(event) {\n var delta = this.delta;\n var vsl = this.$refs.vsl;\n var offset;\n\n if (this.pagemode) {\n var elemRect = this.$el.getBoundingClientRect();\n offset = -elemRect.top;\n } else if (this.scrollelement) {\n var scrollelementRect = this.scrollelement.getBoundingClientRect();\n\n var _elemRect = this.$el.getBoundingClientRect();\n\n offset = scrollelementRect.top - _elemRect.top;\n } else {\n offset = vsl && (vsl.$el || vsl).scrollTop || 0;\n }\n\n delta.direction = offset > delta.scrollTop ? 'D' : 'U';\n delta.scrollTop = offset;\n\n if (delta.total > delta.keeps) {\n this.updateZone(offset);\n } else {\n delta.end = delta.total - 1;\n }\n\n var offsetAll = delta.offsetAll;\n\n if (this.onscroll) {\n var param = Object.create(null);\n param.offset = offset;\n param.offsetAll = offsetAll;\n param.start = delta.start;\n param.end = delta.end;\n this.onscroll(event, param);\n }\n\n if (!offset && delta.total) {\n this.fireEvent('totop');\n }\n\n if (offset >= offsetAll) {\n this.fireEvent('tobottom');\n }\n },\n // update render zone by scroll offset.\n updateZone: function updateZone(offset) {\n var delta = this.delta;\n var overs = this.variable ? this.getVarOvers(offset) : Math.floor(offset / this.size); // if scroll up, we'd better decrease it's numbers.\n\n if (delta.direction === 'U') {\n overs = overs - this.remain + 1;\n }\n\n var zone = this.getZone(overs);\n var bench = this.bench || this.remain; // for better performance, if scroll passes items within the bench, do not update.\n // and if it's close to the last item, render next zone immediately.\n\n var shouldRenderNextZone = Math.abs(overs - delta.start - bench) === 1;\n\n if (!shouldRenderNextZone && overs - delta.start <= bench && !zone.isLast && overs > delta.start) {\n return;\n } // make sure forceRender calls as less as possible.\n\n\n if (shouldRenderNextZone || zone.start !== delta.start || zone.end !== delta.end) {\n delta.end = zone.end;\n delta.start = zone.start;\n this.forceRender();\n }\n },\n // return the right zone info based on `start/index`.\n getZone: function getZone(index) {\n var start, end;\n var delta = this.delta;\n index = parseInt(index, 10);\n index = Math.max(0, index);\n var lastStart = delta.total - delta.keeps;\n var isLast = index <= delta.total && index >= lastStart || index > delta.total;\n\n if (isLast) {\n start = Math.max(0, lastStart);\n } else {\n start = index;\n }\n\n end = start + delta.keeps - 1;\n\n if (delta.total && end > delta.total) {\n end = delta.total - 1;\n }\n\n return {\n end: end,\n start: start,\n isLast: isLast\n };\n },\n // public method, force render ui list if needed.\n // call this before the next rerender to get better performance.\n forceRender: function forceRender() {\n var _this = this;\n\n window.requestAnimationFrame(function () {\n _this.$forceUpdate();\n });\n },\n // force render ui if using item-mode.\n itemModeForceRender: function itemModeForceRender() {\n if (this.item) {\n this.forceRender();\n }\n },\n // return the scroll of passed items count in variable.\n getVarOvers: function getVarOvers(offset) {\n var low = 0;\n var middle = 0;\n var middleOffset = 0;\n var delta = this.delta;\n var high = delta.total;\n\n while (low <= high) {\n middle = low + Math.floor((high - low) / 2);\n middleOffset = this.getVarOffset(middle); // calculate the average variable height at first binary search.\n\n if (!delta.varAverSize) {\n delta.varAverSize = Math.floor(middleOffset / middle);\n }\n\n if (middleOffset === offset) {\n return middle;\n } else if (middleOffset < offset) {\n low = middle + 1;\n } else if (middleOffset > offset) {\n high = middle - 1;\n }\n }\n\n return low > 0 ? --low : 0;\n },\n // return a variable scroll offset from given index.\n getVarOffset: function getVarOffset(index, nocache) {\n var delta = this.delta;\n var cache = delta.varCache[index];\n\n if (!nocache && cache) {\n return cache.offset;\n }\n\n var offset = 0;\n\n for (var i = 0; i < index; i++) {\n var size = this.getVarSize(i, nocache);\n delta.varCache[i] = {\n size: size,\n offset: offset\n };\n offset += size;\n }\n\n delta.varLastCalcIndex = Math.max(delta.varLastCalcIndex, index - 1);\n delta.varLastCalcIndex = Math.min(delta.varLastCalcIndex, delta.total - 1);\n return offset;\n },\n // return a variable size (height) from given index.\n getVarSize: function getVarSize(index, nocache) {\n var cache = this.delta.varCache[index];\n\n if (!nocache && cache) {\n return cache.size;\n }\n\n if (typeof this.variable === 'function') {\n return this.variable(index) || 0;\n } else {\n // when using item, it can only get current components height,\n // need to be enhanced, or consider using variable-function instead\n var slot = this.item ? this.$children[index] ? this.$children[index].$vnode : null : this.$slots[\"default\"][index];\n var style = slot && slot.data && slot.data.style;\n\n if (style && style.height) {\n var shm = style.height.match(/^(.*)px$/);\n return shm && +shm[1] || 0;\n }\n }\n\n return 0;\n },\n // return the variable paddingTop based on current zone.\n // @todo: if set a large `start` before variable was calculated,\n // here will also case too much offset calculate when list is very large,\n // consider use estimate paddingTop in this case just like `getVarPaddingBottom`.\n getVarPaddingTop: function getVarPaddingTop() {\n return this.getVarOffset(this.delta.start);\n },\n // return the variable paddingBottom based on the current zone.\n getVarPaddingBottom: function getVarPaddingBottom() {\n var delta = this.delta;\n var last = delta.total - 1;\n\n if (delta.total - delta.end <= delta.keeps || delta.varLastCalcIndex === last) {\n return this.getVarOffset(last) - this.getVarOffset(delta.end);\n } else {\n // if unreached last zone or uncalculated real behind offset\n // return the estimate paddingBottom and avoid too much calculations.\n return (delta.total - delta.end) * (delta.varAverSize || this.size);\n }\n },\n // return the variable all heights use to judge reach bottom.\n getVarAllHeight: function getVarAllHeight() {\n var delta = this.delta;\n\n if (delta.total - delta.end <= delta.keeps || delta.varLastCalcIndex === delta.total - 1) {\n return this.getVarOffset(delta.total);\n } else {\n return this.getVarOffset(delta.start) + (delta.total - delta.end) * (delta.varAverSize || this.size);\n }\n },\n // public method, allow the parent update variable by index.\n updateVariable: function updateVariable(index) {\n // clear/update all the offsets and heights ahead of index.\n this.getVarOffset(index, true);\n },\n // trigger a props event on parent.\n fireEvent: function fireEvent(event) {\n if (this[event]) {\n this[event]();\n }\n },\n // set manual scroll top.\n setScrollTop: function setScrollTop(scrollTop) {\n if (this.pagemode) {\n window.scrollTo(0, scrollTop);\n } else if (this.scrollelement) {\n this.scrollelement.scrollTo(0, scrollTop);\n } else {\n var vsl = this.$refs.vsl;\n\n if (vsl) {\n (vsl.$el || vsl).scrollTop = scrollTop;\n }\n }\n },\n // filter the shown items based on `start` and `end`.\n filter: function filter(h) {\n var delta = this.delta;\n var slots = this.$slots[\"default\"] || []; // item-mode should be decided from items prop.\n\n if (this.item || this.$scopedSlots.item) {\n delta.total = this.itemcount;\n\n if (delta.keeps > delta.total) {\n delta.end = delta.total - 1;\n }\n } else {\n if (!slots.length) {\n delta.start = 0;\n }\n\n delta.total = slots.length;\n }\n\n var paddingTop, paddingBottom, allHeight;\n var hasPadding = delta.total > delta.keeps;\n\n if (this.variable) {\n allHeight = this.getVarAllHeight();\n paddingTop = hasPadding ? this.getVarPaddingTop() : 0;\n paddingBottom = hasPadding ? this.getVarPaddingBottom() : 0;\n } else {\n allHeight = this.size * delta.total;\n paddingTop = this.size * (hasPadding ? delta.start : 0);\n paddingBottom = this.size * (hasPadding ? delta.total - delta.keeps : 0) - paddingTop;\n }\n\n if (paddingBottom < this.size) {\n paddingBottom = 0;\n }\n\n delta.paddingTop = paddingTop;\n delta.paddingBottom = paddingBottom;\n delta.offsetAll = allHeight - this.size * this.remain;\n var renders = [];\n\n for (var i = delta.start; i < delta.total && i <= Math.ceil(delta.end); i++) {\n var slot = null;\n\n if (this.$scopedSlots.item) {\n slot = this.$scopedSlots.item(i);\n } else if (this.item) {\n slot = h(this.item, this.itemprops(i));\n } else {\n slot = slots[i];\n }\n\n renders.push(slot);\n }\n\n return renders;\n }\n },\n render: function render(h) {\n var dbc = this.debounce;\n var list = this.filter(h);\n var _this$delta = this.delta,\n paddingTop = _this$delta.paddingTop,\n paddingBottom = _this$delta.paddingBottom;\n var istable = this.istable;\n var wtag = istable ? 'div' : this.wtag;\n var rtag = istable ? 'div' : this.rtag;\n\n if (istable) {\n list = [h('table', [h('tbody', list)])];\n }\n\n var renderList = h(wtag, {\n style: Object.assign({\n display: 'block',\n 'padding-top': paddingTop + 'px',\n 'padding-bottom': paddingBottom + 'px'\n }, this.wstyle),\n \"class\": this.wclass,\n attrs: {\n role: 'group'\n }\n }, list); // page mode just render list, no wrapper.\n\n if (this.pagemode || this.scrollelement) {\n return renderList;\n }\n\n return h(rtag, {\n ref: 'vsl',\n style: {\n display: 'block',\n 'overflow-y': this.size >= this.remain ? 'auto' : 'initial',\n height: this.size * this.remain + 'px'\n },\n on: {\n '&scroll': dbc ? _debounce(this.onScroll.bind(this), dbc) : this.onScroll\n }\n }, [renderList]);\n }\n });\n});","import ClipboardJS from 'clipboard';\nimport { DEBOUNCE_DROPDOWN_DELAY } from '~/sidebar/components/labels/labels_select_widget/constants';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport { s__ } from '~/locale';\nimport Sidebar from '~/right_sidebar';\nimport {\n ISSUE_MR_CHANGE_ASSIGNEE,\n ISSUE_MR_CHANGE_MILESTONE,\n ISSUABLE_CHANGE_LABEL,\n ISSUABLE_EDIT_DESCRIPTION,\n MR_COPY_SOURCE_BRANCH_NAME,\n ISSUABLE_COPY_REF,\n} from './keybindings';\n\nexport default class ShortcutsIssuable {\n constructor(shortcuts) {\n this.branchInMemoryButton = document.createElement('button');\n this.branchClipboardInstance = new ClipboardJS(this.branchInMemoryButton);\n this.branchClipboardInstance.on('success', () => {\n toast(s__('GlobalShortcuts|Copied source branch name to clipboard.'));\n });\n this.branchClipboardInstance.on('error', () => {\n toast(s__('GlobalShortcuts|Unable to copy the source branch name at this time.'));\n });\n\n this.refInMemoryButton = document.createElement('button');\n this.refClipboardInstance = new ClipboardJS(this.refInMemoryButton);\n this.refClipboardInstance.on('success', () => {\n toast(s__('GlobalShortcuts|Copied reference to clipboard.'));\n });\n this.refClipboardInstance.on('error', () => {\n toast(s__('GlobalShortcuts|Unable to copy the reference at this time.'));\n });\n\n shortcuts.addAll([\n [ISSUE_MR_CHANGE_ASSIGNEE, () => ShortcutsIssuable.openSidebarDropdown('assignee')],\n [ISSUE_MR_CHANGE_MILESTONE, () => ShortcutsIssuable.openSidebarDropdown('milestone')],\n [ISSUABLE_CHANGE_LABEL, () => ShortcutsIssuable.openSidebarDropdown('labels')],\n [ISSUABLE_EDIT_DESCRIPTION, ShortcutsIssuable.editIssue],\n [MR_COPY_SOURCE_BRANCH_NAME, () => this.copyBranchName()],\n [ISSUABLE_COPY_REF, () => this.copyIssuableRef()],\n ]);\n }\n\n static editIssue() {\n // Need to click the element as on issues, editing is inline\n // on merge request, editing is on a different page\n document.querySelector('.js-issuable-edit').click();\n\n return false;\n }\n\n static openSidebarDropdown(name) {\n Sidebar.instance.openDropdown(name);\n // Wait for the sidebar to trigger('click') open\n // so it doesn't cause our dropdown to close preemptively\n setTimeout(() => {\n const editBtn =\n document.querySelector(`.block.${name} .shortcut-sidebar-dropdown-toggle`) ||\n document.querySelector(`.block.${name} .edit-link`);\n editBtn.click();\n }, DEBOUNCE_DROPDOWN_DELAY);\n return false;\n }\n\n async copyBranchName() {\n const button = document.querySelector('.js-source-branch-copy');\n const branchName = button?.dataset.clipboardText;\n\n if (branchName) {\n this.branchInMemoryButton.dataset.clipboardText = branchName;\n\n this.branchInMemoryButton.dispatchEvent(new CustomEvent('click'));\n }\n }\n\n async copyIssuableRef() {\n const refButton = document.querySelector('.js-copy-reference');\n const copiedRef = refButton?.dataset.clipboardText;\n\n if (copiedRef) {\n this.refInMemoryButton.dataset.clipboardText = copiedRef;\n\n this.refInMemoryButton.dispatchEvent(new CustomEvent('click'));\n }\n }\n}\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseIteratee = require('./_baseIteratee'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n last = require('./last');\n\n/**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\nvar differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), baseIteratee(iteratee, 2))\n : [];\n});\n\nmodule.exports = differenceBy;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ListIssues\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"boardId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"listId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ListID\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filters\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardIssueInput\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isGroup\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":false},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":false},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"include\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isGroup\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"board\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"boardId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hideBacklogList\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lists\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issueFilters\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filters\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"listId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardListFragment\"},\"directives\":[]}]}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"include\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"board\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"boardId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hideBacklogList\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lists\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issueFilters\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filters\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"listId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardListFragment\"},\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":723}};\n doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/boards/graphql/board_list.fragment.graphql\\\"\\n\\nquery ListIssues(\\n $fullPath: ID!\\n $boardId: BoardID!\\n $listId: ListID\\n $filters: BoardIssueInput\\n $isGroup: Boolean = false\\n $isProject: Boolean = false\\n) {\\n group(fullPath: $fullPath) @include(if: $isGroup) {\\n id\\n board(id: $boardId) {\\n id\\n hideBacklogList\\n lists(issueFilters: $filters, id: $listId) {\\n nodes {\\n ...BoardListFragment\\n }\\n }\\n }\\n }\\n project(fullPath: $fullPath) @include(if: $isProject) {\\n id\\n board(id: $boardId) {\\n id\\n hideBacklogList\\n lists(issueFilters: $filters, id: $listId) {\\n nodes {\\n ...BoardListFragment\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/boards/graphql/board_list.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"ListIssues\"] = oneQuery(doc, \"ListIssues\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"note-header-info\"},[(_vm.hasAuthor)?[(_vm.emailParticipant)?_c('span',{staticClass:\"note-header-author-name gl-font-bold\",attrs:{\"data-testid\":\"author-name\"},domProps:{\"textContent\":_vm._s(_vm.authorName)}}):_c('a',{ref:\"authorNameLink\",class:_vm.authorLinkClasses,attrs:{\"href\":_vm.authorHref,\"data-user-id\":_vm.authorId,\"data-username\":_vm.author.username}},[_c('span',{staticClass:\"note-header-author-name gl-font-bold\",attrs:{\"data-testid\":\"author-name\"},domProps:{\"textContent\":_vm._s(_vm.authorName)}})]),_vm._v(\" \"),(!_vm.isSystemNote && !_vm.emailParticipant)?_c('span',{staticClass:\"text-nowrap author-username gl-truncate\"},[_c('a',{ref:\"authorUsernameLink\",staticClass:\"author-username-link\",attrs:{\"href\":_vm.authorHref},on:{\"mouseenter\":_vm.handleUsernameMouseEnter,\"mouseleave\":_vm.handleUsernameMouseLeave}},[_c('span',{staticClass:\"note-headline-light gl-hidden md:gl-inline\"},[_vm._v(\"@\"+_vm._s(_vm.author.username))])]),_vm._v(\" \"),_vm._t(\"note-header-info\")],2):_vm._e(),_vm._v(\" \"),(_vm.emailParticipant)?_c('span',{staticClass:\"note-headline-light\"},[_vm._v(_vm._s(_vm.__('(external participant)')))]):_vm._e()]:_c('span',[_vm._v(_vm._s(_vm.__('A deleted user')))]),_vm._v(\" \"),_c('span',{staticClass:\"note-headline-light note-headline-meta\"},[_c('span',{staticClass:\"system-note-message\",attrs:{\"data-testid\":\"system-note-content\"}},[_vm._t(\"default\")],2),_vm._v(\" \"),(_vm.createdAt)?[_c('span',{ref:\"actionText\",staticClass:\"system-note-separator\"},[(_vm.actionText)?[_vm._v(_vm._s(_vm.actionText))]:_vm._e()],2),_vm._v(\" \"),(_vm.noteTimestampLink)?_c('a',{ref:\"noteTimestampLink\",staticClass:\"note-timestamp system-note-separator\",attrs:{\"href\":_vm.noteTimestampLink},on:{\"click\":_vm.updateTargetNoteHash}},[_c('time-ago-tooltip',{attrs:{\"time\":_vm.createdAt,\"tooltip-placement\":\"bottom\"}})],1):_c('time-ago-tooltip',{ref:\"noteTimestamp\",attrs:{\"time\":_vm.createdAt,\"tooltip-placement\":\"bottom\"}})]:_vm._e(),_vm._v(\" \"),(_vm.isImported)?[(_vm.isSystemNote)?_c('span',[_vm._v(\"·\")]):_vm._e(),_vm._v(\" \"),_c('imported-badge',{attrs:{\"text-only\":_vm.isSystemNote,\"importable-type\":_vm.importableType}})]:_vm._e(),_vm._v(\" \"),(_vm.isInternalNote)?_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip:tooltipcontainer.bottom\",arg:\"tooltipcontainer\",modifiers:{\"bottom\":true}}],staticClass:\"gl-ml-2\",attrs:{\"data-testid\":\"internal-note-indicator\",\"variant\":\"warning\",\"title\":_vm.internalNoteTooltip}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Internal note'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_vm._t(\"extra-controls\"),_vm._v(\" \"),(_vm.showSpinner)?_c('gl-loading-icon',{ref:\"spinner\",staticClass:\"editing-spinner\",attrs:{\"size\":\"sm\",\"label\":_vm.__('Comment is being updated')}}):_vm._e()],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_header.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_header.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions } from 'vuex';\nimport { isGid, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { TYPE_ACTIVITY, TYPE_COMMENT } from '~/import/constants';\nimport { s__ } from '~/locale';\nimport ImportedBadge from '~/vue_shared/components/imported_badge.vue';\nimport TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';\n\nexport default {\n components: {\n ImportedBadge,\n TimeAgoTooltip,\n GlBadge,\n GlLoadingIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n author: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n createdAt: {\n type: String,\n required: false,\n default: null,\n },\n actionText: {\n type: String,\n required: false,\n default: '',\n },\n noteId: {\n type: [String, Number],\n required: false,\n default: null,\n },\n noteableType: {\n type: String,\n required: false,\n default: '',\n },\n showSpinner: {\n type: Boolean,\n required: false,\n default: true,\n },\n isInternalNote: {\n type: Boolean,\n required: false,\n default: false,\n },\n isImported: {\n type: Boolean,\n required: false,\n default: false,\n },\n isSystemNote: {\n type: Boolean,\n required: false,\n default: false,\n },\n noteUrl: {\n type: String,\n required: false,\n default: '',\n },\n emailParticipant: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n isUsernameLinkHovered: false,\n };\n },\n computed: {\n authorId() {\n return getIdFromGraphQLId(this.author.id);\n },\n authorHref() {\n return this.author.path || this.author.webUrl;\n },\n noteTimestampLink() {\n if (this.noteUrl) return this.noteUrl;\n\n if (this.noteId) {\n let { noteId } = this;\n\n if (isGid(noteId)) noteId = getIdFromGraphQLId(noteId);\n\n return `#note_${noteId}`;\n }\n\n return undefined;\n },\n hasAuthor() {\n return this.author && Object.keys(this.author).length;\n },\n isServiceDeskEmailParticipant() {\n return (\n !this.isInternalNote && this.author.username === 'support-bot' && this.emailParticipant\n );\n },\n authorLinkClasses() {\n return {\n hover: this.isUsernameLinkHovered,\n 'text-underline': this.isUsernameLinkHovered,\n 'author-name-link': true,\n 'js-user-link': true,\n 'gl-overflow-hidden': true,\n 'gl-break-words': true,\n };\n },\n authorName() {\n return this.isServiceDeskEmailParticipant ? this.emailParticipant : this.author.name;\n },\n internalNoteTooltip() {\n return s__('Notes|This internal note will always remain confidential');\n },\n importableType() {\n return this.isSystemNote ? TYPE_ACTIVITY : TYPE_COMMENT;\n },\n },\n methods: {\n ...mapActions(['setTargetNoteHash']),\n updateTargetNoteHash() {\n if (this.$store) {\n this.setTargetNoteHash(this.noteTimestampLink);\n }\n },\n handleUsernameMouseEnter() {\n this.$refs.authorNameLink.dispatchEvent(new Event('mouseenter'));\n this.isUsernameLinkHovered = true;\n },\n handleUsernameMouseLeave() {\n this.$refs.authorNameLink.dispatchEvent(new Event('mouseleave'));\n this.isUsernameLinkHovered = false;\n },\n },\n};\n</script>\n\n<template>\n <div class=\"note-header-info\">\n <template v-if=\"hasAuthor\">\n <span\n v-if=\"emailParticipant\"\n class=\"note-header-author-name gl-font-bold\"\n data-testid=\"author-name\"\n v-text=\"authorName\"\n ></span>\n <a\n v-else\n ref=\"authorNameLink\"\n :href=\"authorHref\"\n :class=\"authorLinkClasses\"\n :data-user-id=\"authorId\"\n :data-username=\"author.username\"\n >\n <span\n class=\"note-header-author-name gl-font-bold\"\n data-testid=\"author-name\"\n v-text=\"authorName\"\n ></span>\n </a>\n <span\n v-if=\"!isSystemNote && !emailParticipant\"\n class=\"text-nowrap author-username gl-truncate\"\n >\n <a\n ref=\"authorUsernameLink\"\n class=\"author-username-link\"\n :href=\"authorHref\"\n @mouseenter=\"handleUsernameMouseEnter\"\n @mouseleave=\"handleUsernameMouseLeave\"\n ><span class=\"note-headline-light gl-hidden md:gl-inline\">@{{ author.username }}</span>\n </a>\n <slot name=\"note-header-info\"></slot>\n </span>\n <span v-if=\"emailParticipant\" class=\"note-headline-light\">{{\n __('(external participant)')\n }}</span>\n </template>\n <span v-else>{{ __('A deleted user') }}</span>\n <span class=\"note-headline-light note-headline-meta\">\n <span class=\"system-note-message\" data-testid=\"system-note-content\">\n <slot></slot>\n </span>\n <template v-if=\"createdAt\">\n <span ref=\"actionText\" class=\"system-note-separator\">\n <template v-if=\"actionText\">{{ actionText }}</template>\n </span>\n <a\n v-if=\"noteTimestampLink\"\n ref=\"noteTimestampLink\"\n :href=\"noteTimestampLink\"\n class=\"note-timestamp system-note-separator\"\n @click=\"updateTargetNoteHash\"\n >\n <time-ago-tooltip :time=\"createdAt\" tooltip-placement=\"bottom\" />\n </a>\n <time-ago-tooltip v-else ref=\"noteTimestamp\" :time=\"createdAt\" tooltip-placement=\"bottom\" />\n </template>\n\n <template v-if=\"isImported\">\n <span v-if=\"isSystemNote\">·</span>\n <imported-badge :text-only=\"isSystemNote\" :importable-type=\"importableType\" />\n </template>\n\n <gl-badge\n v-if=\"isInternalNote\"\n v-gl-tooltip:tooltipcontainer.bottom\n data-testid=\"internal-note-indicator\"\n variant=\"warning\"\n class=\"gl-ml-2\"\n :title=\"internalNoteTooltip\"\n >\n {{ __('Internal note') }}\n </gl-badge>\n <slot name=\"extra-controls\"></slot>\n <gl-loading-icon\n v-if=\"showSpinner\"\n ref=\"spinner\"\n size=\"sm\"\n class=\"editing-spinner\"\n :label=\"__('Comment is being updated')\"\n />\n </span>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./note_header.vue?vue&type=template&id=d4c29394\"\nimport script from \"./note_header.vue?vue&type=script&lang=js\"\nexport * from \"./note_header.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in <b-table> if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nconst stableSort = (array, compareFn) => {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map((a, index) => [index, a]).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(e => e[1]);\n};\n\nexport { stableSort };\n","/**\n * adds a pause and unpause method to Mousetrap\n * this allows you to enable or disable keyboard shortcuts\n * without having to reset Mousetrap and rebind everything\n */\n/* global Mousetrap:true */\n(function(Mousetrap) {\n var _originalStopCallback = Mousetrap.prototype.stopCallback;\n\n Mousetrap.prototype.stopCallback = function(e, element, combo) {\n var self = this;\n\n if (self.paused) {\n return true;\n }\n\n return _originalStopCallback.call(self, e, element, combo);\n };\n\n Mousetrap.prototype.pause = function() {\n var self = this;\n self.paused = true;\n };\n\n Mousetrap.prototype.unpause = function() {\n var self = this;\n self.paused = false;\n };\n\n Mousetrap.init();\n}) (Mousetrap);\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"comment-warning-wrapper\"},[(_vm.withAlertContainer)?_c('div',{staticClass:\"error-alert\",attrs:{\"data-testid\":\"comment-field-alert-container\"}}):_vm._e(),_vm._v(\" \"),(_vm.hasWarningAbove)?_c('noteable-warning',{staticClass:\"-gl-mb-3 gl-rounded-lg gl-rounded-b-none gl-pb-5 gl-pt-4\",attrs:{\"is-locked\":_vm.isLocked,\"is-confidential\":_vm.isConfidential,\"noteable-type\":_vm.noteableType,\"locked-noteable-docs-path\":_vm.noteableData.locked_discussion_docs_path,\"confidential-noteable-docs-path\":_vm.noteableData.confidential_issues_docs_path}}):_vm._e(),_vm._v(\" \"),_vm._t(\"default\"),_vm._v(\" \"),(_vm.hasWarningBelow)?_c('div',{staticClass:\"-gl-mt-3 gl-rounded-lg gl-rounded-t-none gl-bg-orange-50 gl-pb-1 gl-pt-4 gl-text-orange-600\"},[(_vm.showConfidentialAttachmentWarning)?_c('div',{staticClass:\"gl-border-b gl-border-b-white gl-px-4 gl-py-2 last:gl-border-none\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.confidentialAttachmentWarning)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showAttachmentWarning)?_c('div',{staticClass:\"gl-border-b gl-border-b-white gl-px-4 gl-py-2 last:gl-border-none\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.attachmentWarning)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showEmailParticipantsWarning)?_c('email-participants-warning',{staticClass:\"gl-px-4 gl-py-2\",attrs:{\"emails\":_vm.emailParticipants}}):_vm._e()],1):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlLink, GlIcon, GlSprintf } from '@gitlab/ui';\nimport { __, sprintf } from '~/locale';\n\nconst noteableTypeText = {\n Issue: __('issue'),\n Epic: __('epic'),\n MergeRequest: __('merge request'),\n Task: __('task'),\n KeyResult: __('key result'),\n Objective: __('objective'),\n};\n\nexport default {\n components: {\n GlIcon,\n GlLink,\n GlSprintf,\n },\n props: {\n isLocked: {\n type: Boolean,\n default: false,\n required: false,\n },\n isConfidential: {\n type: Boolean,\n default: false,\n required: false,\n },\n noteableType: {\n type: String,\n required: false,\n // eslint-disable-next-line @gitlab/require-i18n-strings\n default: 'Issue',\n },\n lockedNoteableDocsPath: {\n type: String,\n required: false,\n default: '',\n },\n confidentialNoteableDocsPath: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n warningIcon() {\n if (this.isConfidential) return 'eye-slash';\n if (this.isLocked) return 'lock';\n\n return '';\n },\n isLockedAndConfidential() {\n return this.isConfidential && this.isLocked;\n },\n noteableTypeText() {\n return noteableTypeText[this.noteableType];\n },\n confidentialContextText() {\n return sprintf(__('This is a confidential %{noteableTypeText}.'), {\n noteableTypeText: this.noteableTypeText,\n });\n },\n lockedContextText() {\n return sprintf(__('The discussion in this %{noteableTypeText} is locked.'), {\n noteableTypeText: this.noteableTypeText,\n });\n },\n },\n};\n</script>\n<template>\n <div class=\"issuable-note-warning\" data-testid=\"issuable-note-warning\">\n <gl-icon\n v-if=\"!isLockedAndConfidential\"\n :name=\"warningIcon\"\n :size=\"16\"\n class=\"icon gl-inline-block\"\n />\n\n <span v-if=\"isLockedAndConfidential\" ref=\"lockedAndConfidential\">\n <span>\n <gl-sprintf\n :message=\"\n __(\n 'This %{noteableTypeText} is %{confidentialLinkStart}confidential%{confidentialLinkEnd} and its %{lockedLinkStart}discussion is locked%{lockedLinkEnd}.',\n )\n \"\n >\n <template #noteableTypeText>{{ noteableTypeText }}</template>\n <template #confidentialLink=\"{ content }\">\n <gl-link :href=\"confidentialNoteableDocsPath\" target=\"_blank\">{{ content }}</gl-link>\n </template>\n <template #lockedLink=\"{ content }\">\n <gl-link :href=\"lockedNoteableDocsPath\" target=\"_blank\">{{ content }}</gl-link>\n </template>\n </gl-sprintf>\n </span>\n {{\n __(\"People without permission will never get a notification and won't be able to comment.\")\n }}\n </span>\n\n <span v-else-if=\"isConfidential\" ref=\"confidential\">\n {{ confidentialContextText }}\n {{ __('People without permission will never get a notification.') }}\n <gl-link :href=\"confidentialNoteableDocsPath\" target=\"_blank\">{{\n __('Learn more.')\n }}</gl-link>\n </span>\n\n <span v-else-if=\"isLocked\" ref=\"locked\">\n {{ lockedContextText }}\n {{ __('Only project members can comment.') }}\n <gl-link :href=\"lockedNoteableDocsPath\" target=\"_blank\">{{ __('Learn more.') }}</gl-link>\n </span>\n </div>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./noteable_warning.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./noteable_warning.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./noteable_warning.vue?vue&type=template&id=704c80a5\"\nimport script from \"./noteable_warning.vue?vue&type=script&lang=js\"\nexport * from \"./noteable_warning.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"issuable-note-warning\",attrs:{\"data-testid\":\"issuable-note-warning\"}},[(!_vm.isLockedAndConfidential)?_c('gl-icon',{staticClass:\"icon gl-inline-block\",attrs:{\"name\":_vm.warningIcon,\"size\":16}}):_vm._e(),_vm._v(\" \"),(_vm.isLockedAndConfidential)?_c('span',{ref:\"lockedAndConfidential\"},[_c('span',[_c('gl-sprintf',{attrs:{\"message\":_vm.__(\n 'This %{noteableTypeText} is %{confidentialLinkStart}confidential%{confidentialLinkEnd} and its %{lockedLinkStart}discussion is locked%{lockedLinkEnd}.',\n )},scopedSlots:_vm._u([{key:\"noteableTypeText\",fn:function(){return [_vm._v(_vm._s(_vm.noteableTypeText))]},proxy:true},{key:\"confidentialLink\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.confidentialNoteableDocsPath,\"target\":\"_blank\"}},[_vm._v(_vm._s(content))])]}},{key:\"lockedLink\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.lockedNoteableDocsPath,\"target\":\"_blank\"}},[_vm._v(_vm._s(content))])]}}],null,false,21387600)})],1),_vm._v(\"\\n \"+_vm._s(_vm.__(\"People without permission will never get a notification and won't be able to comment.\"))+\"\\n \")]):(_vm.isConfidential)?_c('span',{ref:\"confidential\"},[_vm._v(\"\\n \"+_vm._s(_vm.confidentialContextText)+\"\\n \"+_vm._s(_vm.__('People without permission will never get a notification.'))+\"\\n \"),_c('gl-link',{attrs:{\"href\":_vm.confidentialNoteableDocsPath,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.__('Learn more.')))])],1):(_vm.isLocked)?_c('span',{ref:\"locked\"},[_vm._v(\"\\n \"+_vm._s(_vm.lockedContextText)+\"\\n \"+_vm._s(_vm.__('Only project members can comment.'))+\"\\n \"),_c('gl-link',{attrs:{\"href\":_vm.lockedNoteableDocsPath,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.__('Learn more.')))])],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./email_participants_warning.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./email_participants_warning.vue?vue&type=script&lang=js\"","<script>\nimport { GlSprintf, GlButton } from '@gitlab/ui';\nimport { toNounSeriesText } from '~/lib/utils/grammar';\nimport { s__, sprintf } from '~/locale';\n\nexport default {\n components: {\n GlSprintf,\n GlButton,\n },\n props: {\n emails: {\n type: Array,\n required: true,\n },\n numberOfLessParticipants: {\n type: Number,\n required: false,\n default: 3,\n },\n },\n data() {\n return {\n isShowingMoreParticipants: false,\n };\n },\n computed: {\n title() {\n return this.moreParticipantsAvailable\n ? toNounSeriesText(this.lessParticipants, { onlyCommas: true })\n : toNounSeriesText(this.emails);\n },\n lessParticipants() {\n return this.emails.slice(0, this.numberOfLessParticipants);\n },\n moreLabel() {\n return sprintf(s__('EmailParticipantsWarning|and %{moreCount} more'), {\n moreCount: this.emails.length - this.numberOfLessParticipants,\n });\n },\n moreParticipantsAvailable() {\n return !this.isShowingMoreParticipants && this.emails.length > this.numberOfLessParticipants;\n },\n message() {\n return this.moreParticipantsAvailable\n ? s__('EmailParticipantsWarning|%{emails}, %{andMore} will be notified of your comment.')\n : s__('EmailParticipantsWarning|%{emails} will be notified of your comment.');\n },\n },\n methods: {\n showMoreParticipants() {\n this.isShowingMoreParticipants = true;\n },\n },\n};\n</script>\n\n<template>\n <div>\n <gl-sprintf :message=\"message\">\n <template #andMore>\n <gl-button variant=\"link\" class=\"gl-align-baseline\" @click=\"showMoreParticipants\">\n {{ moreLabel }}\n </gl-button>\n </template>\n <template #emails>\n <span>{{ title }}</span>\n </template>\n </gl-sprintf>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./email_participants_warning.vue?vue&type=template&id=0e120929\"\nimport script from \"./email_participants_warning.vue?vue&type=script&lang=js\"\nexport * from \"./email_participants_warning.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('gl-sprintf',{attrs:{\"message\":_vm.message},scopedSlots:_vm._u([{key:\"andMore\",fn:function(){return [_c('gl-button',{staticClass:\"gl-align-baseline\",attrs:{\"variant\":\"link\"},on:{\"click\":_vm.showMoreParticipants}},[_vm._v(\"\\n \"+_vm._s(_vm.moreLabel)+\"\\n \")])]},proxy:true},{key:\"emails\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.title))])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { s__ } from '~/locale';\nimport NoteableWarning from '~/vue_shared/components/notes/noteable_warning.vue';\nimport EmailParticipantsWarning from './email_participants_warning.vue';\n\nconst ATTACHMENT_REGEXP = /!?\\[.*?\\]\\(\\/uploads\\/[0-9a-f]{32}\\/.*?\\)/;\nconst DEFAULT_NOTEABLE_TYPE = 'Issue';\n\nexport default {\n i18n: {\n attachmentWarning: s__(\n 'Notes|Attachments are sent by email. Attachments over 10 MB are sent as links to your GitLab instance, and only accessible to project members.',\n ),\n confidentialAttachmentWarning: s__(\n 'Notes|Uploaded files will be accessible to anyone with the file URL. Use caution when sharing file URLs.',\n ),\n },\n components: {\n EmailParticipantsWarning,\n NoteableWarning,\n },\n props: {\n isInternalNote: {\n type: Boolean,\n required: false,\n default: false,\n },\n note: {\n type: String,\n required: false,\n default: '',\n },\n noteableData: {\n type: Object,\n required: true,\n },\n noteableType: {\n type: String,\n required: false,\n default: DEFAULT_NOTEABLE_TYPE,\n },\n withAlertContainer: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n containsLink() {\n return ATTACHMENT_REGEXP.test(this.note);\n },\n isLocked() {\n return Boolean(this.noteableData.discussion_locked);\n },\n isConfidential() {\n return Boolean(this.noteableData.confidential);\n },\n hasWarningAbove() {\n return this.isConfidential || this.isLocked;\n },\n hasWarningBelow() {\n return (\n this.showConfidentialAttachmentWarning ||\n this.showAttachmentWarning ||\n this.showEmailParticipantsWarning\n );\n },\n emailParticipants() {\n return this.noteableData.issue_email_participants?.map(({ email }) => email) || [];\n },\n showEmailParticipantsWarning() {\n return this.emailParticipants.length && !this.isInternalNote;\n },\n showAttachmentWarning() {\n return this.showEmailParticipantsWarning && this.containsLink;\n },\n showConfidentialAttachmentWarning() {\n return (this.isConfidential || this.isInternalNote) && this.containsLink;\n },\n },\n};\n</script>\n<template>\n <div class=\"comment-warning-wrapper\">\n <div\n v-if=\"withAlertContainer\"\n class=\"error-alert\"\n data-testid=\"comment-field-alert-container\"\n ></div>\n <noteable-warning\n v-if=\"hasWarningAbove\"\n class=\"-gl-mb-3 gl-rounded-lg gl-rounded-b-none gl-pb-5 gl-pt-4\"\n :is-locked=\"isLocked\"\n :is-confidential=\"isConfidential\"\n :noteable-type=\"noteableType\"\n :locked-noteable-docs-path=\"noteableData.locked_discussion_docs_path\"\n :confidential-noteable-docs-path=\"noteableData.confidential_issues_docs_path\"\n />\n <slot></slot>\n <div\n v-if=\"hasWarningBelow\"\n class=\"-gl-mt-3 gl-rounded-lg gl-rounded-t-none gl-bg-orange-50 gl-pb-1 gl-pt-4 gl-text-orange-600\"\n >\n <div\n v-if=\"showConfidentialAttachmentWarning\"\n class=\"gl-border-b gl-border-b-white gl-px-4 gl-py-2 last:gl-border-none\"\n >\n {{ $options.i18n.confidentialAttachmentWarning }}\n </div>\n <div\n v-if=\"showAttachmentWarning\"\n class=\"gl-border-b gl-border-b-white gl-px-4 gl-py-2 last:gl-border-none\"\n >\n {{ $options.i18n.attachmentWarning }}\n </div>\n <email-participants-warning\n v-if=\"showEmailParticipantsWarning\"\n class=\"gl-px-4 gl-py-2\"\n :emails=\"emailParticipants\"\n />\n </div>\n </div>\n</template>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comment_field_layout.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comment_field_layout.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./comment_field_layout.vue?vue&type=template&id=6cb782b2\"\nimport script from \"./comment_field_layout.vue?vue&type=script&lang=js\"\nexport * from \"./comment_field_layout.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import uniqueId from 'lodash/uniqueId';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlAccordion',\n provide() {\n const accordionId = uniqueId('accordion-set-');\n // temporary fix for this issue: https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/2019#note_514671251\n // MR for the upstream pending: https://github.com/vuejs/apollo/pull/1153\n return {\n defaultHeaderLevel: () => this.headerLevel,\n accordionSetId: () => this.autoCollapse && accordionId\n };\n },\n props: {\n /*\n When true, will have the effect of closing other accordion items when one accordion item is visible.\n */\n autoCollapse: {\n type: Boolean,\n required: false,\n default: false\n },\n /*\n The header tag used in the accordion (h1/h2/h3/h4/h5/h6). This overrides the value provided by GlAccordion. For accessibility this should be set to an appropriate value in the context where the accordion is used.\n */\n headerLevel: {\n type: Number,\n required: true,\n validator(value) {\n return value > 0 && value <= 6;\n }\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-shrink-0\",attrs:{\"title\":_vm.confidentialTooltip,\"variant\":\"warning\"}},[_c('gl-icon',{attrs:{\"name\":\"eye-slash\",\"size\":16}}),_vm._v(\" \"),_c('span',{class:_vm.confidentialTextClass,attrs:{\"data-testid\":\"confidential-badge-text\"}},[_vm._v(_vm._s(_vm.__('Confidential')))])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./confidentiality_badge.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./confidentiality_badge.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlTooltipDirective, GlIcon } from '@gitlab/ui';\nimport { confidentialityInfoText } from '../constants';\n\nexport default {\n components: {\n GlBadge,\n GlIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n workspaceType: {\n type: String,\n required: true,\n },\n issuableType: {\n type: String,\n required: true,\n },\n hideTextInSmallScreens: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n confidentialTooltip() {\n return confidentialityInfoText(this.workspaceType, this.issuableType);\n },\n confidentialTextClass() {\n return {\n 'gl-sr-only sm:gl-not-sr-only': this.hideTextInSmallScreens,\n '!gl-ml-2': true,\n };\n },\n },\n};\n</script>\n\n<template>\n <gl-badge v-gl-tooltip :title=\"confidentialTooltip\" variant=\"warning\" class=\"gl-shrink-0\">\n <gl-icon name=\"eye-slash\" :size=\"16\" />\n <span data-testid=\"confidential-badge-text\" :class=\"confidentialTextClass\">{{\n __('Confidential')\n }}</span>\n </gl-badge>\n</template>\n","import { render, staticRenderFns } from \"./confidentiality_badge.vue?vue&type=template&id=632da588\"\nimport script from \"./confidentiality_badge.vue?vue&type=script&lang=js\"\nexport * from \"./confidentiality_badge.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemUpdate\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemUpdateInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemUpdate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItem\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":186}};\n doc.loc.source = {\"body\":\"#import \\\"./work_item.fragment.graphql\\\"\\n\\nmutation workItemUpdate($input: WorkItemUpdateInput!) {\\n workItemUpdate(input: $input) {\\n workItem {\\n ...WorkItem\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./work_item.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"workItemUpdate\"] = oneQuery(doc, \"workItemUpdate\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueHealthStatus\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":192}};\n doc.loc.source = {\"body\":\"query issueHealthStatus($fullPath: ID!, $iid: String) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n healthStatus\\n state\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueHealthStatus\"] = oneQuery(doc, \"issueHealthStatus\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateEpicDueDate\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateEpicInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetDate\"},\"name\":{\"kind\":\"Name\",\"value\":\"updateEpic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDateIsFixed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDateFixed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDateFromMilestones\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":237}};\n doc.loc.source = {\"body\":\"mutation updateEpicDueDate($input: UpdateEpicInput!) {\\n issuableSetDate: updateEpic(input: $input) {\\n issuable: epic {\\n id\\n dueDateIsFixed\\n dueDateFixed\\n dueDate\\n dueDateFromMilestones\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateEpicDueDate\"] = oneQuery(doc, \"updateEpicDueDate\");\n \n","import produce from 'immer';\nimport { differenceBy } from 'lodash';\nimport { createAlert } from '~/alert';\nimport { findDesignWidget } from '~/work_items/utils';\nimport { designWidgetOf, extractCurrentDiscussion } from './utils';\nimport {\n designArchiveError,\n ADD_IMAGE_DIFF_NOTE_ERROR,\n TYPENAME_DISCUSSION,\n TYPENAME_USER,\n UPDATE_IMAGE_DIFF_NOTE_ERROR,\n} from './constants';\n\nexport const hasErrors = ({ errors = [] }) => errors?.length;\n\nconst onError = (data, message) => {\n createAlert({ message });\n throw new Error(data.errors);\n};\n\nconst addNewDesignToStore = (store, designManagementUpload, query) => {\n const sourceData = store.readQuery(query);\n\n if (!sourceData) {\n return;\n }\n\n store.writeQuery({\n ...query,\n data: produce(sourceData, (draftData) => {\n const designWidget = findDesignWidget(draftData.workItem.widgets);\n const currentDesigns = designWidget.designCollection.designs.nodes;\n const difference = differenceBy(designManagementUpload.designs, currentDesigns, 'filename');\n\n const newDesigns = currentDesigns\n .map((design) => {\n return (\n designManagementUpload.designs.find((d) => d.filename === design.filename) || design\n );\n })\n .concat(difference);\n\n let newVersionNode;\n const findNewVersions = designManagementUpload.designs.find((design) => design.versions);\n\n if (findNewVersions) {\n const findNewVersionsNodes = findNewVersions.versions.nodes;\n\n if (findNewVersionsNodes && findNewVersionsNodes.length) {\n newVersionNode = [findNewVersionsNodes[0]];\n }\n }\n\n const newVersions = [\n ...(newVersionNode || []),\n ...designWidget.designCollection.versions.nodes,\n ];\n\n const updatedDesigns = {\n __typename: 'DesignCollection',\n copyState: 'READY',\n designs: {\n __typename: 'DesignConnection',\n nodes: newDesigns,\n },\n versions: {\n __typename: 'DesignVersionConnection',\n nodes: newVersions,\n },\n };\n designWidget.designCollection = updatedDesigns;\n }),\n });\n};\n\nconst addNewVersionToStore = (store, query, version) => {\n if (!version) return;\n const sourceData = store.readQuery(query);\n\n const data = produce(sourceData, (draftData) => {\n const designWidget = findDesignWidget(draftData.workItem.widgets);\n designWidget.designCollection.versions.nodes = [\n version,\n ...designWidgetOf(draftData).designCollection.versions.nodes,\n ];\n });\n\n store.writeQuery({\n ...query,\n data,\n });\n};\n\nexport const updateStoreAfterUploadDesign = (store, data, query) => {\n if (hasErrors(data)) {\n onError(data, data.errors[0]);\n } else {\n addNewDesignToStore(store, data, query);\n }\n};\n\nconst moveDesignInStore = (store, designManagementMove, query) => {\n const sourceData = store.readQuery(query);\n\n const data = produce(sourceData, (draftData) => {\n const designWidget = findDesignWidget(draftData.workItem.widgets);\n designWidget.designCollection.designs.nodes =\n designManagementMove.designCollection.designs.nodes;\n });\n\n store.writeQuery({\n ...query,\n data,\n });\n};\n\nconst deleteDesignsFromStore = (store, query, selectedDesigns) => {\n const sourceData = store.readQuery(query);\n\n if (!sourceData) {\n return;\n }\n\n const data = produce(sourceData, (draftData) => {\n const changedDesigns = designWidgetOf(sourceData).designCollection.designs.nodes.filter(\n (design) => !selectedDesigns.includes(design.filename),\n );\n designWidgetOf(draftData).designCollection.designs.nodes = [...changedDesigns];\n });\n\n store.writeQuery({\n ...query,\n data,\n });\n};\n\n// eslint-disable-next-line max-params\nconst addImageDiffNoteToStore = (store, createImageDiffNote, query, variables) => {\n const sourceData = store.readQuery({\n query,\n variables,\n });\n\n if (!sourceData) {\n return;\n }\n\n const newDiscussion = {\n __typename: TYPENAME_DISCUSSION,\n id: createImageDiffNote.note.discussion.id,\n replyId: createImageDiffNote.note.discussion.replyId,\n resolvable: true,\n resolved: false,\n resolvedAt: null,\n resolvedBy: null,\n notes: {\n __typename: 'NoteConnection',\n nodes: [createImageDiffNote.note],\n },\n };\n\n const data = produce(sourceData, (draftData) => {\n const currentDesign = draftData.designManagement.designAtVersion.design;\n currentDesign.notesCount += 1;\n currentDesign.discussions.nodes = [...currentDesign.discussions.nodes, newDiscussion];\n\n if (\n !currentDesign.issue.participants.nodes.some(\n (participant) => participant.username === createImageDiffNote.note.author.username,\n )\n ) {\n currentDesign.issue.participants.nodes = [\n ...currentDesign.issue.participants.nodes,\n {\n __typename: TYPENAME_USER,\n ...createImageDiffNote.note.author,\n },\n ];\n }\n });\n\n store.writeQuery({\n query,\n variables,\n data,\n });\n};\n\n// eslint-disable-next-line max-params\nexport const updateStoreAfterDesignsArchive = (store, data, query, designs) => {\n if (hasErrors(data)) {\n onError(data, designArchiveError(designs.length));\n } else {\n deleteDesignsFromStore(store, query, designs);\n addNewVersionToStore(store, query, data.version);\n }\n};\n\nexport const updateWorkItemDesignCurrentTodosWidget = ({ store, todos, query }) => {\n const sourceData = store.readQuery(query);\n\n if (!sourceData) {\n return;\n }\n\n const newData = produce(sourceData, (draftState) => {\n draftState.designManagement.designAtVersion.design.currentUserTodos.nodes = todos;\n });\n\n store.writeQuery({ ...query, data: newData });\n};\n\n// eslint-disable-next-line max-params\nconst updateImageDiffNoteInStore = (store, repositionImageDiffNote, query, variables) => {\n const sourceData = store.readQuery({\n query,\n variables,\n });\n\n const data = produce(sourceData, (draftData) => {\n const currentDesign = draftData.designManagement.designAtVersion.design;\n const discussion = extractCurrentDiscussion(\n currentDesign.discussions,\n repositionImageDiffNote.note.discussion.id,\n );\n\n discussion.notes = {\n ...discussion.notes,\n nodes: [repositionImageDiffNote.note, ...discussion.notes.nodes.slice(1)],\n };\n });\n\n store.writeQuery({\n query,\n variables,\n data,\n });\n};\n\n// eslint-disable-next-line max-params\nexport const updateStoreAfterAddImageDiffNote = (store, data, query, variables) => {\n if (hasErrors(data)) {\n onError(data, ADD_IMAGE_DIFF_NOTE_ERROR);\n } else {\n addImageDiffNoteToStore(store, data, query, variables);\n }\n};\n\n// eslint-disable-next-line max-params\nexport const updateStoreAfterRepositionImageDiffNote = (store, data, query, queryVariables) => {\n if (hasErrors(data)) {\n onError(data, UPDATE_IMAGE_DIFF_NOTE_ERROR);\n } else {\n updateImageDiffNoteInStore(store, data, query, queryVariables);\n }\n};\n\nexport const updateDesignsOnStoreAfterReorder = (store, data, query) => {\n if (hasErrors(data)) {\n createAlert({ message: data.errors[0] });\n } else {\n moveDesignInStore(store, data, query);\n }\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"deleteWorkItem\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemDeleteInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemDelete\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":107}};\n doc.loc.source = {\"body\":\"mutation deleteWorkItem($input: WorkItemDeleteInput!) {\\n workItemDelete(input: $input) {\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"deleteWorkItem\"] = oneQuery(doc, \"deleteWorkItem\");\n \n","export const DRAG_CLASS = 'is-dragging';\nexport const DRAG_DELAY = 100;\n\n/**\n * Default config options for sortablejs.\n * @type {object}\n *\n * @example\n * import Sortable from 'sortablejs';\n *\n * const sortable = Sortable.create(el, {\n * ...defaultSortableOptions,\n * });\n */\nexport const defaultSortableOptions = {\n animation: 200,\n forceFallback: true,\n fallbackClass: DRAG_CLASS,\n fallbackOnBody: true,\n ghostClass: 'is-ghost',\n fallbackTolerance: 1,\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-modal',{ref:\"modal\",attrs:{\"static\":\"\",\"hide-footer\":\"\",\"size\":\"lg\",\"modal-id\":_vm.$options.WORK_ITEM_DETAIL_MODAL_ID,\"header-class\":\"gl-p-0 !gl-pb-2\",\"scrollable\":\"\",\"title\":_vm.$options.i18n.modalTitle,\"data-testid\":_vm.$options.WORK_ITEM_DETAIL_MODAL_ID},on:{\"hide\":_vm.closeModal,\"shown\":_vm.onModalShow}},[(_vm.error)?_c('gl-alert',{attrs:{\"variant\":\"danger\"},on:{\"dismiss\":function($event){_vm.error = false}}},[_vm._v(\"\\n \"+_vm._s(_vm.error)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('work-item-detail',{staticClass:\"gl-isolate -gl-mt-3 gl-bg-inherit gl-p-5\",attrs:{\"is-modal\":\"\",\"work-item-id\":_vm.displayedWorkItemId,\"work-item-iid\":_vm.displayedWorkItemIid,\"modal-work-item-full-path\":_vm.workItemFullPath},on:{\"close\":_vm.hide,\"deleteWorkItem\":_vm.deleteWorkItem,\"update-modal\":_vm.updateModal,\"openReportAbuse\":_vm.openReportAbuseModal}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_detail_modal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_detail_modal.vue?vue&type=script&lang=js\"","<script>\nimport { GlAlert, GlModal } from '@gitlab/ui';\nimport { s__ } from '~/locale';\nimport { removeHierarchyChild } from '../graphql/cache_utils';\nimport deleteWorkItemMutation from '../graphql/delete_work_item.mutation.graphql';\nimport { INJECTION_LINK_CHILD_PREVENT_ROUTER_NAVIGATION } from '../constants';\n\nexport default {\n WORK_ITEM_DETAIL_MODAL_ID: 'work-item-detail-modal',\n i18n: {\n errorMessage: s__('WorkItem|Something went wrong when deleting the task. Please try again.'),\n modalTitle: s__('WorkItem|Work item'),\n },\n components: {\n GlAlert,\n GlModal,\n WorkItemDetail: () => import('./work_item_detail.vue'),\n },\n provide: {\n [INJECTION_LINK_CHILD_PREVENT_ROUTER_NAVIGATION]: true,\n },\n props: {\n parentId: {\n type: String,\n required: false,\n default: null,\n },\n workItemId: {\n type: String,\n required: false,\n default: null,\n },\n workItemIid: {\n type: String,\n required: false,\n default: null,\n },\n workItemFullPath: {\n type: String,\n required: false,\n default: '',\n },\n },\n emits: ['workItemDeleted', 'close', 'update-modal'],\n data() {\n return {\n error: undefined,\n updatedWorkItemIid: null,\n updatedWorkItemId: null,\n isModalShown: false,\n };\n },\n computed: {\n displayedWorkItemIid() {\n return this.updatedWorkItemIid || this.workItemIid;\n },\n displayedWorkItemId() {\n return this.updatedWorkItemId || this.workItemId;\n },\n },\n methods: {\n deleteWorkItem() {\n this.$apollo\n .mutate({\n mutation: deleteWorkItemMutation,\n variables: { input: { id: this.workItemId } },\n update: (cache) =>\n removeHierarchyChild({\n cache,\n id: this.parentId,\n workItem: { id: this.workItemId },\n }),\n })\n .then(({ data }) => {\n if (data.workItemDelete.errors?.length) {\n throw new Error(data.workItemDelete.errors[0]);\n }\n\n this.$emit('workItemDeleted', this.workItemId);\n this.hide();\n })\n .catch((error) => {\n this.setErrorMessage(error.message);\n });\n },\n closeModal() {\n this.updatedWorkItemIid = null;\n this.updatedWorkItemId = null;\n this.error = '';\n this.isModalShown = false;\n this.$emit('close');\n },\n hide() {\n this.$refs.modal.hide();\n },\n setErrorMessage(message) {\n this.error = message || this.$options.i18n.errorMessage;\n },\n show() {\n this.$refs.modal.show();\n },\n updateModal($event, workItem) {\n this.updatedWorkItemIid = workItem.iid;\n this.updatedWorkItemId = workItem.id;\n this.$emit('update-modal', $event, workItem);\n },\n onModalShow() {\n this.isModalShown = true;\n },\n openReportAbuseModal(reply) {\n this.$emit('openReportAbuse', reply);\n },\n },\n};\n</script>\n\n<template>\n <gl-modal\n ref=\"modal\"\n static\n hide-footer\n size=\"lg\"\n :modal-id=\"$options.WORK_ITEM_DETAIL_MODAL_ID\"\n header-class=\"gl-p-0 !gl-pb-2\"\n scrollable\n :title=\"$options.i18n.modalTitle\"\n :data-testid=\"$options.WORK_ITEM_DETAIL_MODAL_ID\"\n @hide=\"closeModal\"\n @shown=\"onModalShow\"\n >\n <gl-alert v-if=\"error\" variant=\"danger\" @dismiss=\"error = false\">\n {{ error }}\n </gl-alert>\n\n <work-item-detail\n is-modal\n :work-item-id=\"displayedWorkItemId\"\n :work-item-iid=\"displayedWorkItemIid\"\n :modal-work-item-full-path=\"workItemFullPath\"\n class=\"gl-isolate -gl-mt-3 gl-bg-inherit gl-p-5\"\n @close=\"hide\"\n @deleteWorkItem=\"deleteWorkItem\"\n @update-modal=\"updateModal\"\n @openReportAbuse=\"openReportAbuseModal\"\n />\n </gl-modal>\n</template>\n\n<style>\n/* hide the existing modal header\n */\n#work-item-detail-modal .modal-header * {\n display: none;\n}\n</style>\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--20-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_detail_modal.vue?vue&type=style&index=0&id=113b5046&prod&lang=css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./work_item_detail_modal.vue?vue&type=template&id=113b5046\"\nimport script from \"./work_item_detail_modal.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_detail_modal.vue?vue&type=script&lang=js\"\nimport style0 from \"./work_item_detail_modal.vue?vue&type=style&index=0&id=113b5046&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.descriptionHtml)?_c('div',{staticClass:\"description\",class:{ 'js-task-list-container': _vm.canUpdate }},[_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(_vm.descriptionHtml),expression:\"descriptionHtml\",arg:_vm.$options.safeHtmlConfig}],ref:\"gfm-content\",staticClass:\"md\",class:{\n 'issue-realtime-pre-pulse': _vm.preAnimation,\n 'issue-realtime-trigger-pulse': _vm.pulseAnimation,\n 'has-task-list-item-actions': _vm.hasTaskListItemActions,\n },attrs:{\"data-testid\":\"gfm-content\"}}),_vm._v(\" \"),(_vm.descriptionText)?_c('textarea',{staticClass:\"hidden js-task-list-field\",attrs:{\"data-update-url\":_vm.updateUrl,\"dir\":\"auto\",\"data-testid\":\"textarea\"},domProps:{\"value\":_vm.descriptionText}}):_vm._e()]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlToast } from '@gitlab/ui';\nimport Sortable from 'sortablejs';\nimport Vue from 'vue';\nimport getIssueDetailsQuery from 'ee_else_ce/work_items/graphql/get_issue_details.query.graphql';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_ISSUE, TYPENAME_WORK_ITEM } from '~/graphql_shared/constants';\nimport { createAlert } from '~/alert';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { __, s__, sprintf } from '~/locale';\nimport { getSortableDefaultOptions, isDragging } from '~/sortable/utils';\nimport TaskList from '~/task_list';\nimport { addHierarchyChild, removeHierarchyChild } from '~/work_items/graphql/cache_utils';\nimport createWorkItemMutation from '~/work_items/graphql/create_work_item.mutation.graphql';\nimport deleteWorkItemMutation from '~/work_items/graphql/delete_work_item.mutation.graphql';\nimport namespaceWorkItemTypesQuery from '~/work_items/graphql/namespace_work_item_types.query.graphql';\nimport {\n sprintfWorkItem,\n I18N_WORK_ITEM_ERROR_CREATING,\n I18N_WORK_ITEM_ERROR_DELETING,\n WORK_ITEM_TYPE_VALUE_TASK,\n} from '~/work_items/constants';\nimport { renderGFM } from '~/behaviors/markdown/render_gfm';\nimport eventHub from '../event_hub';\nimport animateMixin from '../mixins/animate';\nimport {\n convertDescriptionWithNewSort,\n deleteTaskListItem,\n extractTaskTitleAndDescription,\n insertNextToTaskListItemText,\n} from '../utils';\nimport TaskListItemActions from './task_list_item_actions.vue';\n\nVue.use(GlToast);\n\nexport default {\n directives: {\n SafeHtml,\n },\n mixins: [animateMixin],\n inject: ['fullPath', 'hasIterationsFeature'],\n props: {\n canUpdate: {\n type: Boolean,\n required: true,\n },\n descriptionHtml: {\n type: String,\n required: true,\n },\n descriptionText: {\n type: String,\n required: false,\n default: '',\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n updateUrl: {\n type: String,\n required: false,\n default: null,\n },\n lockVersion: {\n type: Number,\n required: false,\n default: 0,\n },\n issueId: {\n type: String,\n required: false,\n default: null,\n },\n issueIid: {\n type: String,\n required: false,\n default: null,\n },\n isUpdating: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n hasTaskListItemActions: false,\n preAnimation: false,\n pulseAnimation: false,\n initialUpdate: true,\n issueDetails: {},\n workItemTypes: [],\n };\n },\n apollo: {\n issueDetails: {\n query: getIssueDetailsQuery,\n variables() {\n return {\n id: convertToGraphQLId(TYPENAME_ISSUE, this.issueId),\n };\n },\n update: (data) => data.issue,\n skip() {\n return !this.canUpdate || !this.issueId;\n },\n },\n workItemTypes: {\n query: namespaceWorkItemTypesQuery,\n variables() {\n return {\n fullPath: this.fullPath,\n };\n },\n update(data) {\n return data.workspace?.workItemTypes?.nodes;\n },\n skip() {\n return !this.canUpdate;\n },\n },\n },\n computed: {\n taskWorkItemTypeId() {\n return this.workItemTypes.find((type) => type.name === WORK_ITEM_TYPE_VALUE_TASK)?.id;\n },\n issueGid() {\n return this.issueId ? convertToGraphQLId(TYPENAME_WORK_ITEM, this.issueId) : null;\n },\n },\n watch: {\n descriptionHtml(newDescription, oldDescription) {\n if (\n !this.initialUpdate &&\n this.stripClientState(newDescription) !== this.stripClientState(oldDescription)\n ) {\n this.animateChange();\n } else {\n this.initialUpdate = false;\n }\n\n this.renderGFM();\n },\n },\n mounted() {\n eventHub.$on('convert-task-list-item', this.convertTaskListItem);\n eventHub.$on('delete-task-list-item', this.deleteTaskListItem);\n\n this.renderGFM();\n },\n beforeDestroy() {\n eventHub.$off('convert-task-list-item', this.convertTaskListItem);\n eventHub.$off('delete-task-list-item', this.deleteTaskListItem);\n\n this.removeAllPointerEventListeners();\n },\n methods: {\n async renderGFM() {\n await this.$nextTick();\n\n renderGFM(this.$refs['gfm-content']);\n\n if (this.canUpdate) {\n // eslint-disable-next-line no-new\n new TaskList({\n dataType: this.issuableType,\n fieldName: 'description',\n lockVersion: this.lockVersion,\n selector: '.detail-page-description',\n onUpdate: () => this.$emit('taskListUpdateStarted'),\n onSuccess: () => this.$emit('taskListUpdateSucceeded'),\n onError: this.taskListUpdateError.bind(this),\n });\n\n this.removeAllPointerEventListeners();\n this.renderSortableLists();\n this.renderTaskListItemActions();\n }\n },\n renderSortableLists() {\n // We exclude GLFM table of contents which have a `section-nav` class on the root `ul`.\n // We also exclude footnotes, which are in an `ol` inside a `section.footnotes`.\n const lists = this.$el.querySelectorAll?.(\n '.description .md > ul:not(.section-nav), .description .md > ul:not(.section-nav) ul, .description :not(section.footnotes) > ol',\n );\n lists?.forEach((list) => {\n if (list.children.length <= 1) {\n return;\n }\n\n Array.from(list.children).forEach((listItem) => {\n listItem.prepend(this.createDragIconElement());\n this.addPointerEventListeners(listItem, '.drag-icon');\n });\n\n Sortable.create(\n list,\n getSortableDefaultOptions({\n handle: '.drag-icon',\n onUpdate: (event) => {\n const description = convertDescriptionWithNewSort(this.descriptionText, event.to);\n this.$emit('saveDescription', description);\n },\n }),\n );\n });\n },\n createDragIconElement() {\n const container = document.createElement('div');\n // eslint-disable-next-line no-unsanitized/property\n container.innerHTML = `<svg class=\"drag-icon s14 gl-icon gl-cursor-grab gl-opacity-0\" role=\"img\" aria-hidden=\"true\">\n <use href=\"${gon.sprite_icons}#grip\"></use>\n </svg>`;\n return container.firstChild;\n },\n addPointerEventListeners(listItem, elementSelector) {\n const pointeroverListener = (event) => {\n const element = event.target.closest('li').querySelector(elementSelector);\n if (!element || isDragging() || this.isUpdating) {\n return;\n }\n element.classList.add('gl-opacity-10');\n };\n const pointeroutListener = (event) => {\n const element = event.target.closest('li').querySelector(elementSelector);\n if (!element) {\n return;\n }\n element.classList.remove('gl-opacity-10');\n };\n\n // We use pointerover/pointerout instead of CSS so that when we hover over a\n // list item with children, the grip icons of its children do not become visible.\n listItem.addEventListener('pointerover', pointeroverListener);\n listItem.addEventListener('pointerout', pointeroutListener);\n\n this.pointerEventListeners = this.pointerEventListeners || new Map();\n const events = [\n { type: 'pointerover', listener: pointeroverListener },\n { type: 'pointerout', listener: pointeroutListener },\n ];\n if (this.pointerEventListeners.has(listItem)) {\n const concatenatedEvents = this.pointerEventListeners.get(listItem).concat(events);\n this.pointerEventListeners.set(listItem, concatenatedEvents);\n } else {\n this.pointerEventListeners.set(listItem, events);\n }\n },\n removeAllPointerEventListeners() {\n this.pointerEventListeners?.forEach((events, listItem) => {\n events.forEach((event) => listItem.removeEventListener(event.type, event.listener));\n this.pointerEventListeners.delete(listItem);\n });\n },\n taskListUpdateError() {\n const message = __(\n 'Someone edited this %{issueType} at the same time you did. The description has been updated and you will need to make your changes again.',\n );\n createAlert({ message: sprintf(message, { issueType: this.issuableType }) });\n\n this.$emit('taskListUpdateFailed');\n },\n createTaskListItemActions() {\n const app = new Vue({\n el: document.createElement('div'),\n provide: { id: this.issueId, issuableType: this.issuableType },\n render: (createElement) => createElement(TaskListItemActions),\n });\n return app.$el;\n },\n convertTaskListItem({ id, sourcepos }) {\n if (this.issueId !== id) {\n return;\n }\n const oldDescription = this.descriptionText;\n const { newDescription, taskDescription, taskTitle } = deleteTaskListItem(\n oldDescription,\n sourcepos,\n );\n this.$emit('saveDescription', newDescription);\n this.createTask({ taskTitle, taskDescription, oldDescription });\n },\n deleteTaskListItem({ id, sourcepos }) {\n if (this.issueId !== id) {\n return;\n }\n const { newDescription } = deleteTaskListItem(this.descriptionText, sourcepos);\n this.$emit('saveDescription', newDescription);\n },\n renderTaskListItemActions() {\n const taskListItems = this.$el.querySelectorAll?.(\n '.task-list-item:not(.inapplicable, table .task-list-item)',\n );\n\n taskListItems?.forEach((item) => {\n const dropdown = this.createTaskListItemActions();\n insertNextToTaskListItemText(dropdown, item);\n this.addPointerEventListeners(item, '.task-list-item-actions');\n this.hasTaskListItemActions = true;\n });\n },\n stripClientState(description) {\n return description.replaceAll('<details open=\"true\">', '<details>');\n },\n async createTask({ taskTitle, taskDescription, oldDescription }) {\n try {\n const { title, description } = extractTaskTitleAndDescription(taskTitle, taskDescription);\n\n const iterationInput = {\n iterationWidget: {\n iterationId: this.issueDetails.iteration?.id ?? null,\n },\n };\n\n const { data } = await this.$apollo.mutate({\n mutation: createWorkItemMutation,\n variables: {\n input: {\n confidential: this.issueDetails.confidential,\n description,\n hierarchyWidget: {\n parentId: this.issueGid,\n },\n ...(this.hasIterationsFeature && iterationInput),\n milestoneWidget: {\n milestoneId: this.issueDetails.milestone?.id ?? null,\n },\n projectPath: this.fullPath,\n title,\n workItemTypeId: this.taskWorkItemTypeId,\n },\n },\n update: (cache, { data: { workItemCreate } }) =>\n addHierarchyChild({\n cache,\n id: convertToGraphQLId(TYPENAME_WORK_ITEM, this.issueId),\n workItem: workItemCreate.workItem,\n }),\n });\n\n const { workItem, errors } = data.workItemCreate;\n\n if (errors?.length) {\n throw new Error(errors);\n }\n\n this.$toast.show(s__('WorkItem|Converted to task'), {\n action: {\n text: s__('WorkItem|Undo'),\n onClick: (_, toast) => {\n this.undoCreateTask(oldDescription, workItem.id);\n toast.hide();\n },\n },\n });\n } catch (error) {\n this.showAlert(I18N_WORK_ITEM_ERROR_CREATING, error);\n }\n },\n async undoCreateTask(oldDescription, id) {\n this.$emit('saveDescription', oldDescription);\n\n try {\n const { data } = await this.$apollo.mutate({\n mutation: deleteWorkItemMutation,\n variables: { input: { id } },\n update: (cache) =>\n removeHierarchyChild({\n cache,\n id: convertToGraphQLId(TYPENAME_WORK_ITEM, this.issueId),\n workItem: { id },\n }),\n });\n\n if (data.workItemDelete.errors?.length) {\n throw new Error(data.workItemDelete.errors);\n }\n\n this.$toast.show(s__('WorkItem|Task reverted'));\n } catch (error) {\n this.showAlert(I18N_WORK_ITEM_ERROR_DELETING, error);\n }\n },\n showAlert(message, error) {\n createAlert({\n message: sprintfWorkItem(message, WORK_ITEM_TYPE_VALUE_TASK),\n error,\n captureError: true,\n });\n },\n },\n safeHtmlConfig: { ADD_TAGS: ['gl-emoji', 'copy-code'] },\n};\n</script>\n\n<template>\n <div v-if=\"descriptionHtml\" :class=\"{ 'js-task-list-container': canUpdate }\" class=\"description\">\n <div\n ref=\"gfm-content\"\n v-safe-html:[$options.safeHtmlConfig]=\"descriptionHtml\"\n data-testid=\"gfm-content\"\n :class=\"{\n 'issue-realtime-pre-pulse': preAnimation,\n 'issue-realtime-trigger-pulse': pulseAnimation,\n 'has-task-list-item-actions': hasTaskListItemActions,\n }\"\n class=\"md\"\n ></div>\n <textarea\n v-if=\"descriptionText\"\n :value=\"descriptionText\"\n :data-update-url=\"updateUrl\"\n class=\"hidden js-task-list-field\"\n dir=\"auto\"\n data-testid=\"textarea\"\n >\n </textarea>\n </div>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./description.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./description.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./description.vue?vue&type=template&id=2e8b4ae1\"\nimport script from \"./description.vue?vue&type=script&lang=js\"\nexport * from \"./description.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestTodos\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentUserTodos\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"pending\"}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":257}};\n doc.loc.source = {\"body\":\"query mergeRequestTodos($fullPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: mergeRequest(iid: $iid) {\\n id\\n currentUserTodos(state: pending) {\\n nodes {\\n id\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"mergeRequestTodos\"] = oneQuery(doc, \"mergeRequestTodos\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-drawer',{attrs:{\"header-height\":_vm.getDrawerHeaderHeight,\"z-index\":300,\"open\":_vm.showDrawer && _vm.mounted},on:{\"close\":_vm.closeDrawer},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('h2',{staticClass:\"gl-mb-0 gl-mt-0 gl-text-size-h2 gl-leading-24\",attrs:{\"data-testid\":\"category-drawer-title\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.title)+\"\\n \")])]},proxy:true},{key:\"default\",fn:function(){return [_c('gl-form',{staticClass:\"gl-text-left\",attrs:{\"action\":_vm.reportAbusePath,\"method\":\"post\"}},[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"authenticity_token\"},domProps:{\"value\":_vm.$options.csrf.token}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"user_id\",\"data-testid\":\"input-user-id\"},domProps:{\"value\":_vm.reportedUserId}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"abuse_report[reported_from_url]\",\"data-testid\":\"input-referer\"},domProps:{\"value\":_vm.reportedFromUrl}}),_vm._v(\" \"),_c('gl-form-group',{attrs:{\"label\":_vm.$options.i18n.label,\"label-class\":\"gl-text-default\"}},[_c('gl-form-radio-group',{attrs:{\"options\":_vm.$options.CATEGORY_OPTIONS,\"name\":\"abuse_report[category]\",\"required\":\"\"},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1),_vm._v(\" \"),_c('gl-button',{attrs:{\"type\":\"submit\",\"variant\":\"confirm\",\"data-testid\":\"submit-form-button\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.next)+\"\\n \")])],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./abuse_category_selector.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./abuse_category_selector.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlDrawer, GlForm, GlFormGroup, GlFormRadioGroup } from '@gitlab/ui';\nimport { getContentWrapperHeight } from '~/lib/utils/dom_utils';\nimport { s__, __ } from '~/locale';\nimport csrf from '~/lib/utils/csrf';\nimport { CATEGORY_OPTIONS } from '~/abuse_reports/components/constants';\n\nexport default {\n name: 'AbuseCategorySelector',\n csrf,\n components: {\n GlButton,\n GlDrawer,\n GlForm,\n GlFormGroup,\n GlFormRadioGroup,\n },\n inject: {\n reportAbusePath: {\n default: '',\n },\n },\n props: {\n reportedUserId: {\n type: Number,\n required: true,\n },\n reportedFromUrl: {\n type: String,\n required: false,\n default: '',\n },\n showDrawer: {\n type: Boolean,\n required: true,\n },\n },\n i18n: {\n title: __('Report abuse to administrator'),\n close: __('Close'),\n label: s__('ReportAbuse|Why are you reporting this user?'),\n next: __('Next'),\n },\n CATEGORY_OPTIONS,\n data() {\n return {\n selected: '',\n mounted: false,\n };\n },\n computed: {\n getDrawerHeaderHeight() {\n // avoid calculating this in advance because it causes layout thrashing\n // https://gitlab.com/gitlab-org/gitlab/-/issues/331172#note_1269378396\n if (!this.showDrawer) return '0';\n return getContentWrapperHeight();\n },\n },\n mounted() {\n // this is required for the component to properly animate\n // when it is shown with v-if\n this.mounted = true;\n },\n methods: {\n closeDrawer() {\n this.$emit('close-drawer');\n },\n },\n};\n</script>\n<template>\n <gl-drawer\n :header-height=\"getDrawerHeaderHeight\"\n :z-index=\"300\"\n :open=\"showDrawer && mounted\"\n @close=\"closeDrawer\"\n >\n <template #title>\n <h2 class=\"gl-mb-0 gl-mt-0 gl-text-size-h2 gl-leading-24\" data-testid=\"category-drawer-title\">\n {{ $options.i18n.title }}\n </h2>\n </template>\n <template #default>\n <gl-form :action=\"reportAbusePath\" method=\"post\" class=\"gl-text-left\">\n <input :value=\"$options.csrf.token\" type=\"hidden\" name=\"authenticity_token\" />\n\n <input type=\"hidden\" name=\"user_id\" :value=\"reportedUserId\" data-testid=\"input-user-id\" />\n <input\n type=\"hidden\"\n name=\"abuse_report[reported_from_url]\"\n :value=\"reportedFromUrl\"\n data-testid=\"input-referer\"\n />\n\n <gl-form-group :label=\"$options.i18n.label\" label-class=\"gl-text-default\">\n <gl-form-radio-group\n v-model=\"selected\"\n :options=\"$options.CATEGORY_OPTIONS\"\n name=\"abuse_report[category]\"\n required\n />\n </gl-form-group>\n\n <gl-button type=\"submit\" variant=\"confirm\" data-testid=\"submit-form-button\">\n {{ $options.i18n.next }}\n </gl-button>\n </gl-form>\n </template>\n </gl-drawer>\n</template>\n","import { render, staticRenderFns } from \"./abuse_category_selector.vue?vue&type=template&id=4bfeb9fb\"\nimport script from \"./abuse_category_selector.vue?vue&type=script&lang=js\"\nexport * from \"./abuse_category_selector.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getDesignDetails\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignManagementDesignAtVersionID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"designManagement\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"designAtVersion\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"event\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"image\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"imageV432x230\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"design\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"filename\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"notesCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"descriptionHtml\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentUserTodos\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"pending\"}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"diffRefs\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignDiffRefs\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"discussions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"replyId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ResolvedStatus\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"notes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignNote\"},\"directives\":[]}]}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"participants\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Author\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createDesign\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateDesign\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"version\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"VersionListItem\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1299}};\n doc.loc.source = {\"body\":\"#import \\\"./fragments/discussion_resolved_status.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/author.fragment.graphql\\\"\\n#import \\\"./fragments/design_note.fragment.graphql\\\"\\n#import \\\"./fragments/version.fragment.graphql\\\"\\n#import \\\"./fragments/diff_refs.fragment.graphql\\\"\\n\\nquery getDesignDetails($id: DesignManagementDesignAtVersionID!) {\\n designManagement {\\n designAtVersion(id: $id) {\\n id\\n event\\n image\\n imageV432x230\\n design {\\n id\\n filename\\n notesCount\\n description\\n descriptionHtml\\n fullPath\\n currentUserTodos(state: pending) {\\n nodes {\\n id\\n }\\n }\\n diffRefs {\\n ...DesignDiffRefs\\n }\\n discussions {\\n nodes {\\n id\\n replyId\\n ...ResolvedStatus\\n notes {\\n nodes {\\n ...DesignNote\\n }\\n }\\n }\\n }\\n issue {\\n id\\n title\\n webPath\\n webUrl\\n participants {\\n nodes {\\n ...Author\\n }\\n }\\n userPermissions {\\n createDesign\\n updateDesign\\n }\\n }\\n }\\n version {\\n ...VersionListItem\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./fragments/discussion_resolved_status.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/author.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"./fragments/design_note.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"./fragments/version.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"./fragments/diff_refs.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"getDesignDetails\"] = oneQuery(doc, \"getDesignDetails\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"snakeCaseNote\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NoteID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"note\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"author\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"avatar_url\"},\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"username\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"web_url\"},\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"web_path\"},\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"body_html\"},\"name\":{\"kind\":\"Name\",\"value\":\"bodyHtml\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"created_at\"},\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"last_edited_at\"},\"name\":{\"kind\":\"Name\",\"value\":\"lastEditedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"last_edited_by\"},\"name\":{\"kind\":\"Name\",\"value\":\"lastEditedBy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"avatar_url\"},\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"username\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"web_url\"},\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"web_path\"},\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"internal\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":449}};\n doc.loc.source = {\"body\":\"query snakeCaseNote($id: NoteID!) {\\n note(id: $id) {\\n id\\n author {\\n id\\n avatar_url: avatarUrl\\n name\\n username\\n web_url: webUrl\\n web_path: webPath\\n }\\n body_html: bodyHtml\\n created_at: createdAt\\n last_edited_at: lastEditedAt\\n last_edited_by: lastEditedBy {\\n id\\n avatar_url: avatarUrl\\n name\\n username\\n web_url: webUrl\\n web_path: webPath\\n }\\n internal\\n url\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"snakeCaseNote\"] = oneQuery(doc, \"snakeCaseNote\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('button',{staticClass:\"gl-flex gl-items-center gl-justify-center gl-text-sm\",class:{\n 'comment-indicator gl-border-0 gl-bg-transparent': _vm.isNewNote,\n 'js-image-badge design-note-pin': !_vm.isNewNote,\n resolved: _vm.isResolved,\n inactive: _vm.isInactive,\n draft: _vm.isDraft,\n 'on-image': _vm.isOnImage,\n 'gl-absolute': _vm.position,\n small: _vm.size === 'sm',\n },style:(_vm.position),attrs:{\"aria-label\":_vm.pinLabel,\"type\":\"button\"},on:{\"mousedown\":function($event){return _vm.$emit('mousedown', $event)},\"mouseup\":function($event){return _vm.$emit('mouseup', $event)},\"click\":function($event){return _vm.$emit('click', $event)}}},[(_vm.isNewNote)?_c('gl-icon',{staticClass:\"gl-rounded-full gl-border-2 gl-border-solid gl-border-white gl-bg-white\",attrs:{\"name\":\"image-comment-dark\",\"size\":24}}):[_vm._v(\"\\n \"+_vm._s(_vm.label)+\"\\n \")]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_note_pin.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_note_pin.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\nimport { __, sprintf } from '~/locale';\n\nexport default {\n name: 'DesignNotePin',\n components: {\n GlIcon,\n },\n props: {\n position: {\n type: Object,\n required: false,\n default: null,\n },\n label: {\n type: Number,\n required: false,\n default: null,\n },\n isResolved: {\n type: Boolean,\n required: false,\n default: false,\n },\n isInactive: {\n type: Boolean,\n required: false,\n default: false,\n },\n isOnImage: {\n type: Boolean,\n required: false,\n default: false,\n },\n isDraft: {\n type: Boolean,\n required: false,\n default: false,\n },\n size: {\n type: String,\n required: false,\n default: 'md',\n validator: (value) => ['sm', 'md'].includes(value),\n },\n ariaLabel: {\n type: String,\n required: false,\n default: null,\n },\n },\n computed: {\n isNewNote() {\n return this.label === null;\n },\n pinLabel() {\n if (this.ariaLabel) {\n return this.ariaLabel;\n }\n\n return this.isNewNote\n ? __('Comment form position')\n : sprintf(__(\"Comment '%{label}' position\"), { label: this.label });\n },\n },\n};\n</script>\n\n<template>\n <button\n :style=\"position\"\n :aria-label=\"pinLabel\"\n :class=\"{\n 'comment-indicator gl-border-0 gl-bg-transparent': isNewNote,\n 'js-image-badge design-note-pin': !isNewNote,\n resolved: isResolved,\n inactive: isInactive,\n draft: isDraft,\n 'on-image': isOnImage,\n 'gl-absolute': position,\n small: size === 'sm',\n }\"\n class=\"gl-flex gl-items-center gl-justify-center gl-text-sm\"\n type=\"button\"\n @mousedown=\"$emit('mousedown', $event)\"\n @mouseup=\"$emit('mouseup', $event)\"\n @click=\"$emit('click', $event)\"\n >\n <gl-icon\n v-if=\"isNewNote\"\n name=\"image-comment-dark\"\n :size=\"24\"\n class=\"gl-rounded-full gl-border-2 gl-border-solid gl-border-white gl-bg-white\"\n />\n <template v-else>\n {{ label }}\n </template>\n </button>\n</template>\n","import { render, staticRenderFns } from \"./design_note_pin.vue?vue&type=template&id=4941d232\"\nimport script from \"./design_note_pin.vue?vue&type=script&lang=js\"\nexport * from \"./design_note_pin.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"projectIssueSetSubscription\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribedState\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"updateIssuableSubscription\"},\"name\":{\"kind\":\"Name\",\"value\":\"issueSetSubscription\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribedState\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribedState\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribed\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":311}};\n doc.loc.source = {\"body\":\"mutation projectIssueSetSubscription($fullPath: ID!, $iid: String!, $subscribedState: Boolean!) {\\n updateIssuableSubscription: issueSetSubscription(\\n input: { projectPath: $fullPath, iid: $iid, subscribedState: $subscribedState }\\n ) {\\n issuable: issue {\\n id\\n subscribed\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"projectIssueSetSubscription\"] = oneQuery(doc, \"projectIssueSetSubscription\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"projectIssueUpdateParent\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemUpdateInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetAttribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"workItemUpdate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetHierarchy\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parent\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":342}};\n doc.loc.source = {\"body\":\"mutation projectIssueUpdateParent($input: WorkItemUpdateInput!) {\\n issuableSetAttribute: workItemUpdate(input: $input) {\\n workItem {\\n id\\n widgets {\\n ... on WorkItemWidgetHierarchy {\\n type\\n parent {\\n id\\n title\\n webUrl\\n }\\n }\\n }\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"projectIssueUpdateParent\"] = oneQuery(doc, \"projectIssueUpdateParent\");\n \n","import { __, s__ } from '~/locale';\n\nexport const DEBOUNCE_DELAY = 500;\nexport const MAX_RECENT_TOKENS_SIZE = 3;\n\nexport const FILTER_NONE = 'None';\nexport const FILTER_ANY = 'Any';\nexport const FILTER_CURRENT = 'Current';\nexport const FILTER_UPCOMING = 'Upcoming';\nexport const FILTER_STARTED = 'Started';\n\nexport const FILTERS_NONE_ANY = [FILTER_NONE, FILTER_ANY];\n\nexport const OPERATOR_IS = '=';\nexport const OPERATOR_IS_TEXT = __('is');\nexport const OPERATOR_NOT = '!=';\nexport const OPERATOR_NOT_TEXT = __('is not one of');\nexport const OPERATOR_OR = '||';\nexport const OPERATOR_OR_TEXT = __('is one of');\nexport const OPERATOR_AFTER = '≥';\nexport const OPERATOR_AFTER_TEXT = __('on or after');\nexport const OPERATOR_BEFORE = '<';\nexport const OPERATOR_BEFORE_TEXT = __('before');\n\nexport const OPERATORS_IS = [{ value: OPERATOR_IS, description: OPERATOR_IS_TEXT }];\nexport const OPERATORS_NOT = [{ value: OPERATOR_NOT, description: OPERATOR_NOT_TEXT }];\nexport const OPERATORS_OR = [{ value: OPERATOR_OR, description: OPERATOR_OR_TEXT }];\nexport const OPERATORS_AFTER = [{ value: OPERATOR_AFTER, description: OPERATOR_AFTER_TEXT }];\nexport const OPERATORS_BEFORE = [{ value: OPERATOR_BEFORE, description: OPERATOR_BEFORE_TEXT }];\nexport const OPERATORS_IS_NOT = [...OPERATORS_IS, ...OPERATORS_NOT];\nexport const OPERATORS_IS_NOT_OR = [...OPERATORS_IS, ...OPERATORS_NOT, ...OPERATORS_OR];\nexport const OPERATORS_AFTER_BEFORE = [...OPERATORS_AFTER, ...OPERATORS_BEFORE];\n\nexport const OPERATORS_TO_GROUP = [OPERATOR_OR, OPERATOR_NOT];\n\nexport const OPTION_NONE = { value: FILTER_NONE, text: __('None'), title: __('None') };\nexport const OPTION_ANY = { value: FILTER_ANY, text: __('Any'), title: __('Any') };\nexport const OPTION_CURRENT = { value: FILTER_CURRENT, text: __('Current') };\nexport const OPTION_STARTED = { value: FILTER_STARTED, text: __('Started'), title: __('Started') };\nexport const OPTION_UPCOMING = {\n value: FILTER_UPCOMING,\n text: __('Upcoming'),\n title: __('Upcoming'),\n};\n\nexport const OPTIONS_NONE_ANY = [OPTION_NONE, OPTION_ANY];\n\nexport const DEFAULT_MILESTONES = OPTIONS_NONE_ANY.concat([OPTION_UPCOMING, OPTION_STARTED]);\n\nexport const SORT_DIRECTION = {\n descending: 'descending',\n ascending: 'ascending',\n};\n\nexport const FILTERED_SEARCH_TERM = 'filtered-search-term';\n\nexport const TOKEN_EMPTY_SEARCH_TERM = {\n type: FILTERED_SEARCH_TERM,\n value: {\n data: '',\n },\n};\n\nexport const TOKEN_TITLE_APPROVED_BY = __('Approved-By');\nexport const TOKEN_TITLE_MERGE_USER = __('Merged-By');\nexport const TOKEN_TITLE_APPROVER = __('Approver');\nexport const TOKEN_TITLE_ASSIGNEE = s__('SearchToken|Assignee');\nexport const TOKEN_TITLE_AUTHOR = __('Author');\nexport const TOKEN_TITLE_CONFIDENTIAL = __('Confidential');\nexport const TOKEN_TITLE_CONTACT = s__('Crm|Contact');\nexport const TOKEN_TITLE_DRAFT = s__('MergeRequests|Draft');\nexport const TOKEN_TITLE_GROUP = __('Group');\nexport const TOKEN_TITLE_GROUP_INVITE = __('Group invite');\nexport const TOKEN_TITLE_LABEL = __('Label');\nexport const TOKEN_TITLE_PROJECT = __('Project');\nexport const TOKEN_TITLE_MILESTONE = __('Milestone');\nexport const TOKEN_TITLE_MY_REACTION = __('My-Reaction');\nexport const TOKEN_TITLE_ORGANIZATION = s__('Crm|Organization');\nexport const TOKEN_TITLE_RELEASE = __('Release');\nexport const TOKEN_TITLE_REVIEWER = s__('SearchToken|Reviewer');\nexport const TOKEN_TITLE_SOURCE_BRANCH = __('Source Branch');\nexport const TOKEN_TITLE_STATUS = __('Status');\nexport const TOKEN_TITLE_JOBS_RUNNER_TYPE = s__('Job|Runner type');\nexport const TOKEN_TITLE_TARGET_BRANCH = __('Target Branch');\nexport const TOKEN_TITLE_TYPE = __('Type');\nexport const TOKEN_TITLE_VERSION = __('Version');\nexport const TOKEN_TITLE_SEARCH_WITHIN = __('Search Within');\nexport const TOKEN_TITLE_CREATED = __('Created date');\nexport const TOKEN_TITLE_CLOSED = __('Closed date');\nexport const TOKEN_TITLE_DEPLOYED_BEFORE = __('Deployed-before');\nexport const TOKEN_TITLE_DEPLOYED_AFTER = __('Deployed-after');\nexport const TOKEN_TITLE_ASSIGNED_SEAT = __('Assigned seat');\nexport const TOKEN_TITLE_ENVIRONMENT = __('Environment');\n\nexport const TOKEN_TYPE_APPROVER = 'approver';\nexport const TOKEN_TYPE_APPROVED_BY = 'approved-by';\nexport const TOKEN_TYPE_MERGE_USER = 'merge-user';\nexport const TOKEN_TYPE_ASSIGNEE = 'assignee';\nexport const TOKEN_TYPE_AUTHOR = 'author';\nexport const TOKEN_TYPE_CONFIDENTIAL = 'confidential';\nexport const TOKEN_TYPE_CONTACT = 'contact';\nexport const TOKEN_TYPE_DRAFT = 'draft';\nexport const TOKEN_TYPE_GROUP = 'group';\nexport const TOKEN_TYPE_GROUP_INVITE = 'group-invite';\nexport const TOKEN_TYPE_EPIC = 'epic';\nexport const TOKEN_TYPE_ASSIGNED_SEAT = 'assigned-seat';\n// As health status gets reused between issue lists and boards\n// this is in the shared constants. Until we have not decoupled the EE filtered search bar\n// from the CE component, we need to keep this in the CE code.\n// https://gitlab.com/gitlab-org/gitlab/-/issues/377838\nexport const TOKEN_TYPE_PROJECT = 'project';\nexport const TOKEN_TYPE_HEALTH = 'health';\nexport const TOKEN_TYPE_ITERATION = 'iteration';\nexport const TOKEN_TYPE_LABEL = 'label';\nexport const TOKEN_TYPE_MILESTONE = 'milestone';\nexport const TOKEN_TYPE_MY_REACTION = 'my-reaction';\nexport const TOKEN_TYPE_ORGANIZATION = 'organization';\nexport const TOKEN_TYPE_RELEASE = 'release';\nexport const TOKEN_TYPE_REVIEWER = 'reviewer';\nexport const TOKEN_TYPE_SOURCE_BRANCH = 'source-branch';\nexport const TOKEN_TYPE_STATUS = 'status';\nexport const TOKEN_TYPE_JOBS_RUNNER_TYPE = 'jobs-runner-type';\nexport const TOKEN_TYPE_TARGET_BRANCH = 'target-branch';\nexport const TOKEN_TYPE_TYPE = 'type';\nexport const TOKEN_TYPE_VERSION = 'version';\nexport const TOKEN_TYPE_WEIGHT = 'weight';\nexport const TOKEN_TYPE_SEARCH_WITHIN = 'in';\nexport const TOKEN_TYPE_CREATED = 'created';\nexport const TOKEN_TYPE_CLOSED = 'closed';\nexport const TOKEN_TYPE_DEPLOYED_BEFORE = 'deployed-before';\nexport const TOKEN_TYPE_DEPLOYED_AFTER = 'deployed-after';\nexport const TOKEN_TYPE_ENVIRONMENT = 'environment';\n\n// Due to the i18n eslint rule we can't have a capitalized string even if it is a case-aware URL param\n/* eslint-disable @gitlab/require-i18n-strings */\nexport const ENTITY_TYPES = {\n USER: 'User',\n AUTHOR: 'Author',\n GROUP: 'Group',\n PROJECT: 'Project',\n};\n/* eslint-enable @gitlab/require-i18n-strings */\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\nfunction findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index, true);\n}\n\nmodule.exports = findLastIndex;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestSetTimeEstimate\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestUpdateInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetTimeEstimate\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestUpdate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"humanTimeEstimate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timeEstimate\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":240}};\n doc.loc.source = {\"body\":\"mutation mergeRequestSetTimeEstimate($input: MergeRequestUpdateInput!) {\\n issuableSetTimeEstimate: mergeRequestUpdate(input: $input) {\\n errors\\n issuable: mergeRequest {\\n id\\n humanTimeEstimate\\n timeEstimate\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"mergeRequestSetTimeEstimate\"] = oneQuery(doc, \"mergeRequestSetTimeEstimate\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"gl-contents\"},[_c('status-badge',{staticClass:\"gl-mr-2 gl-self-center\",attrs:{\"issuable-type\":_vm.$options.TYPE_MERGE_REQUEST,\"state\":_vm.state}}),_vm._v(\" \"),(_vm.isConfidential)?_c('confidentiality-badge',{staticClass:\"gl-mr-2 gl-self-center\",attrs:{\"issuable-type\":_vm.$options.TYPE_ISSUE,\"workspace-type\":_vm.$options.WORKSPACE_PROJECT}}):_vm._e(),_vm._v(\" \"),(_vm.isLocked)?_c('locked-badge',{staticClass:\"gl-mr-2 gl-self-center\",attrs:{\"issuable-type\":_vm.$options.TYPE_MERGE_REQUEST}}):_vm._e(),_vm._v(\" \"),(_vm.hidden)?_c('hidden-badge',{staticClass:\"gl-mr-2 gl-self-center\",attrs:{\"issuable-type\":_vm.$options.TYPE_MERGE_REQUEST}}):_vm._e(),_vm._v(\" \"),(_vm.isImported)?_c('imported-badge',{staticClass:\"gl-mr-2 gl-self-center\",attrs:{\"importable-type\":_vm.$options.TYPE_MERGE_REQUEST}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport Vue from 'vue';\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters } from 'vuex';\nimport HiddenBadge from '~/issuable/components/hidden_badge.vue';\nimport LockedBadge from '~/issuable/components/locked_badge.vue';\nimport StatusBadge from '~/issuable/components/status_badge.vue';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST, WORKSPACE_PROJECT } from '~/issues/constants';\nimport { fetchPolicies } from '~/lib/graphql';\nimport ConfidentialityBadge from '~/vue_shared/components/confidentiality_badge.vue';\nimport ImportedBadge from '~/vue_shared/components/imported_badge.vue';\n\nexport const badgeState = Vue.observable({\n state: '',\n updateStatus: null,\n});\n\nexport default {\n TYPE_ISSUE,\n TYPE_MERGE_REQUEST,\n WORKSPACE_PROJECT,\n components: {\n ConfidentialityBadge,\n LockedBadge,\n HiddenBadge,\n ImportedBadge,\n StatusBadge,\n },\n inject: {\n query: { default: null },\n projectPath: { default: null },\n hidden: { default: false },\n iid: { default: null },\n },\n props: {\n initialState: {\n type: String,\n required: false,\n default: null,\n },\n isImported: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n if (!this.iid) {\n return {\n state: this.initialState,\n };\n }\n\n if (!badgeState.state && this.initialState) {\n badgeState.state = this.initialState;\n }\n\n return badgeState;\n },\n computed: {\n ...mapGetters(['getNoteableData']),\n isLocked() {\n return this.getNoteableData.discussion_locked;\n },\n isConfidential() {\n return this.getNoteableData.confidential;\n },\n },\n created() {\n if (!badgeState.updateStatus) {\n badgeState.updateStatus = this.fetchState;\n }\n },\n beforeDestroy() {\n if (badgeState.updateStatus && this.query) {\n badgeState.updateStatus = null;\n }\n },\n methods: {\n async fetchState() {\n const { data } = await this.$apollo.query({\n query: this.query,\n variables: {\n projectPath: this.projectPath,\n iid: this.iid,\n },\n fetchPolicy: fetchPolicies.NO_CACHE,\n });\n\n badgeState.state = data?.workspace?.issuable?.state;\n },\n },\n};\n</script>\n\n<template>\n <span class=\"gl-contents\">\n <status-badge\n class=\"gl-mr-2 gl-self-center\"\n :issuable-type=\"$options.TYPE_MERGE_REQUEST\"\n :state=\"state\"\n />\n <confidentiality-badge\n v-if=\"isConfidential\"\n class=\"gl-mr-2 gl-self-center\"\n :issuable-type=\"$options.TYPE_ISSUE\"\n :workspace-type=\"$options.WORKSPACE_PROJECT\"\n />\n <locked-badge\n v-if=\"isLocked\"\n class=\"gl-mr-2 gl-self-center\"\n :issuable-type=\"$options.TYPE_MERGE_REQUEST\"\n />\n <hidden-badge\n v-if=\"hidden\"\n class=\"gl-mr-2 gl-self-center\"\n :issuable-type=\"$options.TYPE_MERGE_REQUEST\"\n />\n <imported-badge\n v-if=\"isImported\"\n class=\"gl-mr-2 gl-self-center\"\n :importable-type=\"$options.TYPE_MERGE_REQUEST\"\n />\n </span>\n</template>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./merge_request_header.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./merge_request_header.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./merge_request_header.vue?vue&type=template&id=38b59f51\"\nimport script from \"./merge_request_header.vue?vue&type=script&lang=js\"\nexport * from \"./merge_request_header.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('sidebar-dropdown-widget',{attrs:{\"attr-workspace-path\":_vm.attrWorkspacePath,\"iid\":_vm.iid,\"issuable-attribute\":_vm.$options.issuableAttribute,\"issuable-type\":_vm.issuableType,\"workspace-path\":_vm.workspacePath,\"issue-id\":_vm.issueId},on:{\"attribute-updated\":function($event){return _vm.$emit('iteration-updated', $event)}},scopedSlots:_vm._u([{key:\"value\",fn:function({ attributeUrl, currentAttribute }){return [_c('p',{staticClass:\"gl-font-size-sm gl-line-height-21 gl-my-1 gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(_vm.getCadenceTitle(currentAttribute))+\"\\n \")]),_vm._v(\" \"),_c('gl-link',{staticClass:\"gl-leading-20 !gl-text-default\",attrs:{\"href\":attributeUrl,\"data-testid\":\"iteration-link\"}},[_c('div',[_c('gl-icon',{staticClass:\"gl-mr-1\",attrs:{\"name\":\"iteration\"}}),_vm._v(\"\\n \"+_vm._s(_vm.getIterationPeriod(currentAttribute))+\"\\n \")],1),_vm._v(\" \"),(currentAttribute.title)?_c('iteration-title',{attrs:{\"title\":currentAttribute.title}}):_vm._e()],1)]}},{key:\"value-collapsed\",fn:function({ currentAttribute }){return [(currentAttribute)?_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.__('Iteration')}},[_c('gl-icon',{attrs:{\"aria-label\":_vm.__('Iteration'),\"name\":\"iteration\"}}),_vm._v(\" \"),_c('span',{staticClass:\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\"},[_vm._v(\"\\n \"+_vm._s(_vm.getIterationPeriod(currentAttribute))+\"\\n \")])],1):_vm._e()]}},{key:\"list\",fn:function({ attributesList = [], isAttributeChecked, updateAttribute }){return [_vm._l((_vm.groupByIterationCadences(attributesList)),function(cadence,index){return [(index !== 0)?_c('gl-dropdown-divider',{key:index}):_vm._e(),_vm._v(\" \"),_c('gl-dropdown-section-header',{key:cadence.title,attrs:{\"data-testid\":\"cadence-title\"}},[_vm._v(\"\\n \"+_vm._s(cadence.title)+\"\\n \")]),_vm._v(\" \"),_vm._l((cadence.iterations),function(iteration){return _c('gl-dropdown-item',{key:iteration.id,attrs:{\"is-check-item\":\"\",\"is-checked\":isAttributeChecked(iteration.id),\"data-testid\":`${_vm.$options.issuableAttribute}-items`},on:{\"click\":function($event){return updateAttribute(iteration)}}},[_vm._v(\"\\n \"+_vm._s(iteration.period)+\"\\n \"),(iteration.title)?_c('iteration-title',{attrs:{\"title\":iteration.title}}):_vm._e()],1)})]})]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_iteration_widget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_iteration_widget.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlDropdownDivider,\n GlDropdownItem,\n GlDropdownSectionHeader,\n GlIcon,\n GlLink,\n GlTooltipDirective,\n} from '@gitlab/ui';\nimport IterationTitle from 'ee/iterations/components/iteration_title.vue';\nimport { getIterationPeriod, groupByIterationCadences } from 'ee/iterations/utils';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { IssuableAttributeType } from '../../constants';\nimport SidebarDropdownWidget from '../sidebar_dropdown_widget.vue';\n\nexport default {\n issuableAttribute: IssuableAttributeType.Iteration,\n components: {\n GlDropdownDivider,\n GlDropdownItem,\n GlDropdownSectionHeader,\n GlIcon,\n GlLink,\n SidebarDropdownWidget,\n IterationTitle,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n attrWorkspacePath: {\n required: true,\n type: String,\n },\n iid: {\n required: true,\n type: String,\n },\n issuableType: {\n type: String,\n required: true,\n validator(value) {\n return value === TYPE_ISSUE;\n },\n },\n workspacePath: {\n required: true,\n type: String,\n },\n issueId: {\n required: false,\n type: String,\n default: '',\n },\n },\n methods: {\n getCadenceTitle(currentIteration) {\n return currentIteration?.iterationCadence?.title;\n },\n groupByIterationCadences,\n getIterationPeriod,\n },\n};\n</script>\n\n<template>\n <sidebar-dropdown-widget\n :attr-workspace-path=\"attrWorkspacePath\"\n :iid=\"iid\"\n :issuable-attribute=\"$options.issuableAttribute\"\n :issuable-type=\"issuableType\"\n :workspace-path=\"workspacePath\"\n :issue-id=\"issueId\"\n @attribute-updated=\"$emit('iteration-updated', $event)\"\n >\n <template #value=\"{ attributeUrl, currentAttribute }\">\n <p class=\"gl-font-size-sm gl-line-height-21 gl-my-1 gl-text-subtle\">\n {{ getCadenceTitle(currentAttribute) }}\n </p>\n <gl-link\n class=\"gl-leading-20 !gl-text-default\"\n :href=\"attributeUrl\"\n data-testid=\"iteration-link\"\n >\n <div>\n <gl-icon name=\"iteration\" class=\"gl-mr-1\" />\n {{ getIterationPeriod(currentAttribute) }}\n </div>\n <iteration-title v-if=\"currentAttribute.title\" :title=\"currentAttribute.title\" />\n </gl-link>\n </template>\n <template #value-collapsed=\"{ currentAttribute }\">\n <div\n v-if=\"currentAttribute\"\n v-gl-tooltip.left.viewport\n :title=\"__('Iteration')\"\n class=\"sidebar-collapsed-icon\"\n >\n <gl-icon :aria-label=\"__('Iteration')\" name=\"iteration\" />\n <span class=\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\">\n {{ getIterationPeriod(currentAttribute) }}\n </span>\n </div>\n </template>\n <template #list=\"{ attributesList = [], isAttributeChecked, updateAttribute }\">\n <template v-for=\"(cadence, index) in groupByIterationCadences(attributesList)\">\n <gl-dropdown-divider v-if=\"index !== 0\" :key=\"index\" />\n <gl-dropdown-section-header :key=\"cadence.title\" data-testid=\"cadence-title\">\n {{ cadence.title }}\n </gl-dropdown-section-header>\n <gl-dropdown-item\n v-for=\"iteration in cadence.iterations\"\n :key=\"iteration.id\"\n is-check-item\n :is-checked=\"isAttributeChecked(iteration.id)\"\n :data-testid=\"`${$options.issuableAttribute}-items`\"\n @click=\"updateAttribute(iteration)\"\n >\n {{ iteration.period }}\n <iteration-title v-if=\"iteration.title\" :title=\"iteration.title\" />\n </gl-dropdown-item>\n </template>\n </template>\n </sidebar-dropdown-widget>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_iteration_widget.vue?vue&type=template&id=5dc1eb92\"\nimport script from \"./sidebar_iteration_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_iteration_widget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-modal',{ref:\"modal\",attrs:{\"title\":_vm.modalTitle,\"modal-id\":_vm.setTimeEstimateModalId,\"size\":\"sm\",\"data-testid\":\"set-time-estimate-modal\",\"action-primary\":_vm.primaryProps,\"action-secondary\":_vm.secondaryProps,\"action-cancel\":_vm.cancelProps},on:{\"hidden\":_vm.resetModal,\"primary\":function($event){$event.preventDefault();return _vm.saveTimeEstimate.apply(null, arguments)},\"secondary\":function($event){$event.preventDefault();return _vm.resetTimeEstimate.apply(null, arguments)},\"cancel\":_vm.close}},[_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.modalText)+\"\\n \")]),_vm._v(\" \"),_c('form',{staticClass:\"js-quick-submit\",on:{\"submit\":function($event){$event.preventDefault();return _vm.saveTimeEstimate.apply(null, arguments)}}},[_c('gl-form-group',{attrs:{\"label-for\":\"time-estimate\",\"label\":_vm.s__('TimeTracking|Estimate'),\"description\":_vm.s__(\n `TimeTracking|Enter time as a total duration (for example, 1mo 2w 3d 5h 10m), or specify hours and minutes (for example, 75:30).`,\n )}},[_c('gl-form-input',{attrs:{\"id\":\"time-estimate\",\"data-testid\":\"time-estimate\",\"autocomplete\":\"off\"},model:{value:(_vm.timeEstimate),callback:function ($$v) {_vm.timeEstimate=$$v},expression:\"timeEstimate\"}})],1),_vm._v(\" \"),(_vm.saveError)?_c('gl-alert',{staticClass:\"gl-mb-3\",attrs:{\"variant\":\"danger\",\"dismissible\":false}},[_vm._v(\"\\n \"+_vm._s(_vm.saveError)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"submit\",\"hidden\":\"\"}})],1),_vm._v(\" \"),_c('gl-link',{attrs:{\"href\":_vm.timeTrackingDocsPath}},[_vm._v(\"\\n \"+_vm._s(_vm.s__('TimeTracking|How do I estimate and track time?'))+\"\\n \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlFormGroup, GlFormInput, GlModal, GlAlert, GlLink } from '@gitlab/ui';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { issuableTypeText, TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { isPositiveInteger } from '~/lib/utils/number_utils';\nimport { s__, __, sprintf } from '~/locale';\nimport updateWorkItemMutation from '~/work_items/graphql/update_work_item.mutation.graphql';\nimport issueSetTimeEstimateMutation from '../../queries/issue_set_time_estimate.mutation.graphql';\nimport mergeRequestSetTimeEstimateMutation from '../../queries/merge_request_set_time_estimate.mutation.graphql';\nimport { SET_TIME_ESTIMATE_MODAL_ID } from './constants';\n\nconst MUTATIONS = {\n [TYPE_ISSUE]: issueSetTimeEstimateMutation,\n [TYPE_MERGE_REQUEST]: mergeRequestSetTimeEstimateMutation,\n};\n\nexport default {\n components: {\n GlFormGroup,\n GlFormInput,\n GlModal,\n GlAlert,\n GlLink,\n },\n inject: {\n issuableType: {\n default: null,\n },\n },\n props: {\n fullPath: {\n type: String,\n required: false,\n default: '',\n },\n issuableIid: {\n type: String,\n required: false,\n default: '',\n },\n /**\n * This object must contain the following keys, used to show\n * the initial time estimate in the form:\n * - timeEstimate: the time estimate numeric value\n * - humanTimeEstimate: the time estimate in human readable format\n */\n timeTracking: {\n type: Object,\n required: true,\n },\n workItemId: {\n type: String,\n required: false,\n default: '',\n },\n workItemType: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n currentEstimate: this.timeTracking.timeEstimate ?? 0,\n timeEstimate: this.timeTracking.humanTimeEstimate ?? '',\n isSaving: false,\n isResetting: false,\n saveError: '',\n };\n },\n computed: {\n submitDisabled() {\n return this.isSaving || this.isResetting || this.timeEstimate === '';\n },\n resetDisabled() {\n return this.isSaving || this.isResetting || this.currentEstimate === 0;\n },\n primaryProps() {\n return {\n text: __('Save'),\n attributes: {\n variant: 'confirm',\n disabled: this.submitDisabled,\n loading: this.isSaving,\n },\n };\n },\n secondaryProps() {\n return this.currentEstimate === 0\n ? null\n : {\n text: __('Remove'),\n attributes: {\n disabled: this.resetDisabled,\n loading: this.isResetting,\n },\n };\n },\n cancelProps() {\n return {\n text: __('Cancel'),\n };\n },\n timeTrackingDocsPath() {\n return helpPagePath('user/project/time_tracking.md');\n },\n modalTitle() {\n return this.currentEstimate === 0\n ? s__('TimeTracking|Set time estimate')\n : s__('TimeTracking|Edit time estimate');\n },\n modalText() {\n const issuableTypeName = issuableTypeText[this.issuableType || this.workItemType];\n return sprintf(s__('TimeTracking|Set estimated time to complete this %{issuableTypeName}.'), {\n issuableTypeName,\n });\n },\n setTimeEstimateModalId() {\n return this.workItemId\n ? `${SET_TIME_ESTIMATE_MODAL_ID}-${this.workItemId}`\n : SET_TIME_ESTIMATE_MODAL_ID;\n },\n },\n watch: {\n timeTracking() {\n this.currentEstimate = this.timeTracking.timeEstimate ?? 0;\n this.timeEstimate = this.timeTracking.humanTimeEstimate ?? '';\n },\n },\n methods: {\n resetModal() {\n this.isSaving = false;\n this.isResetting = false;\n this.saveError = '';\n },\n close() {\n this.$refs.modal.close();\n },\n saveTimeEstimate(event) {\n event?.preventDefault();\n\n if (this.timeEstimate === '') {\n return;\n }\n\n this.isSaving = true;\n this.updateEstimatedTime(this.timeEstimate);\n },\n resetTimeEstimate() {\n this.isResetting = true;\n this.updateEstimatedTime('0');\n },\n updateEstimatedTime(timeEstimate) {\n this.saveError = '';\n\n if (this.workItemId) {\n return this.$apollo\n .mutate({\n mutation: updateWorkItemMutation,\n variables: {\n input: {\n id: this.workItemId,\n timeTrackingWidget: {\n timeEstimate:\n isPositiveInteger(timeEstimate) && timeEstimate > 0\n ? `${timeEstimate}h`\n : timeEstimate,\n },\n },\n },\n })\n .then(({ data }) => {\n if (data.workItemUpdate.errors.length) {\n throw new Error(data.workItemUpdate.errors);\n }\n\n this.close();\n })\n .catch((error) => {\n this.saveError =\n error?.message ||\n s__('TimeTracking|An error occurred while saving the time estimate.');\n })\n .finally(() => {\n this.isSaving = false;\n this.isResetting = false;\n });\n }\n\n return this.$apollo\n .mutate({\n mutation: MUTATIONS[this.issuableType],\n variables: {\n input: {\n projectPath: this.fullPath,\n iid: this.issuableIid,\n timeEstimate,\n },\n },\n })\n .then(({ data }) => {\n if (data.issuableSetTimeEstimate?.errors.length) {\n this.saveError =\n data.issuableSetTimeEstimate.errors[0].message ||\n data.issuableSetTimeEstimate.errors[0];\n } else {\n this.close();\n }\n })\n .catch((error) => {\n this.saveError =\n error?.message || s__('TimeTracking|An error occurred while saving the time estimate.');\n })\n .finally(() => {\n this.isSaving = false;\n this.isResetting = false;\n });\n },\n },\n};\n</script>\n\n<template>\n <gl-modal\n ref=\"modal\"\n :title=\"modalTitle\"\n :modal-id=\"setTimeEstimateModalId\"\n size=\"sm\"\n data-testid=\"set-time-estimate-modal\"\n :action-primary=\"primaryProps\"\n :action-secondary=\"secondaryProps\"\n :action-cancel=\"cancelProps\"\n @hidden=\"resetModal\"\n @primary.prevent=\"saveTimeEstimate\"\n @secondary.prevent=\"resetTimeEstimate\"\n @cancel=\"close\"\n >\n <p>\n {{ modalText }}\n </p>\n <form class=\"js-quick-submit\" @submit.prevent=\"saveTimeEstimate\">\n <gl-form-group\n label-for=\"time-estimate\"\n :label=\"s__('TimeTracking|Estimate')\"\n :description=\"\n s__(\n `TimeTracking|Enter time as a total duration (for example, 1mo 2w 3d 5h 10m), or specify hours and minutes (for example, 75:30).`,\n )\n \"\n >\n <gl-form-input\n id=\"time-estimate\"\n v-model=\"timeEstimate\"\n data-testid=\"time-estimate\"\n autocomplete=\"off\"\n />\n </gl-form-group>\n <gl-alert v-if=\"saveError\" variant=\"danger\" class=\"gl-mb-3\" :dismissible=\"false\">\n {{ saveError }}\n </gl-alert>\n <!-- This is needed to have the quick-submit behaviour (with Ctrl + Enter or Cmd + Enter) -->\n <input type=\"submit\" hidden />\n </form>\n <gl-link :href=\"timeTrackingDocsPath\">\n {{ s__('TimeTracking|How do I estimate and track time?') }}\n </gl-link>\n </gl-modal>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./set_time_estimate_form.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./set_time_estimate_form.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./set_time_estimate_form.vue?vue&type=template&id=4dd2ad36\"\nimport script from \"./set_time_estimate_form.vue?vue&type=script&lang=js\"\nexport * from \"./set_time_estimate_form.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import GlBaseAnimatedIcon from './base_animated_icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlAnimatedSmileIcon',\n extends: GlBaseAnimatedIcon\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:_vm.iconStateClass,attrs:{\"aria-label\":_vm.ariaLabel,\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('g',{staticClass:\"gl-animated-smile-eyes\"},[_c('circle',{attrs:{\"cy\":\"7\",\"cx\":\"6\",\"r\":\"0.5\"}}),_vm._v(\" \"),_c('circle',{attrs:{\"cy\":\"7\",\"cx\":\"10\",\"r\":\"0.5\"}})]),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-smile-big-smile\",attrs:{\"d\":\"M8 12C9.65685 12 11 10.6569 11 9H5C5 10.6569 6.34315 12 8 12Z\",\"fill\":\"currentColor\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-smile-slight-smile\",attrs:{\"d\":\"M6.3 10C6.46667 10.3333 7 11 8 11C9 11 9.53333 10.3333 9.7 10\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('circle',{attrs:{\"cx\":\"8\",\"cy\":\"8\",\"r\":\"7.25\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\"}})])};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","var escape = require('./escape'),\n reEscape = require('./_reEscape'),\n reEvaluate = require('./_reEvaluate'),\n reInterpolate = require('./_reInterpolate');\n\n/**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\nvar templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': { 'escape': escape }\n }\n};\n\nmodule.exports = templateSettings;\n","var toString = require('./toString');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n}\n\nmodule.exports = escapeRegExp;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"issueSetAssignees\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetAssignees\"},\"name\":{\"kind\":\"Name\",\"value\":\"issueSetAssignees\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignees\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserWithType\"},\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserAvailability\"},\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":522}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user_availability.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/user_with_type.fragment.graphql\\\"\\n\\nmutation issueSetAssignees($iid: String!, $assigneeUsernames: [String!]!, $fullPath: ID!) {\\n issuableSetAssignees: issueSetAssignees(\\n input: { iid: $iid, assigneeUsernames: $assigneeUsernames, projectPath: $fullPath }\\n ) {\\n issuable: issue {\\n id\\n assignees {\\n nodes {\\n ...UserWithType\\n ...UserAvailability\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user_availability.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user_with_type.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueSetAssignees\"] = oneQuery(doc, \"issueSetAssignees\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicDetailed\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Epic\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicNode\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"relativePosition\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"referencePath\"},\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"full\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"blocked\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"blockedByCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasIssues\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"descendantCounts\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"closedEpics\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"closedIssues\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"openedEpics\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"openedIssues\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"descendantWeightSum\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"closedIssues\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"openedIssues\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":495}};\n doc.loc.source = {\"body\":\"#import \\\"ee/graphql_shared/fragments/epic.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/label.fragment.graphql\\\"\\n\\nfragment EpicDetailed on Epic {\\n ...EpicNode\\n relativePosition\\n referencePath: reference(full: true)\\n confidential\\n subscribed\\n blocked\\n blockedByCount\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n hasIssues\\n descendantCounts {\\n closedEpics\\n closedIssues\\n openedEpics\\n openedIssues\\n }\\n descendantWeightSum {\\n closedIssues\\n openedIssues\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"ee/graphql_shared/fragments/epic.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/label.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"EpicDetailed\"] = oneQuery(doc, \"EpicDetailed\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"downvotes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hidden\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"humanTimeEstimate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestsCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"moved\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updatedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"upvotes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userDiscussionsCount\"},\"arguments\":[],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"include\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isSignedIn\"}}}]}]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignees\"},\"arguments\":[],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"skip\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"hideUsers\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__persist\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"username\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"author\"},\"arguments\":[],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"skip\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"hideUsers\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__persist\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"username\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__persist\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"milestone\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__persist\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"taskCompletionStatus\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"completedCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":792}};\n doc.loc.source = {\"body\":\"fragment IssueFragment on Issue {\\n id\\n iid\\n confidential\\n createdAt\\n downvotes\\n dueDate\\n hidden\\n humanTimeEstimate\\n mergeRequestsCount\\n moved\\n state\\n title\\n updatedAt\\n closedAt\\n upvotes\\n userDiscussionsCount @include(if: $isSignedIn)\\n webPath\\n webUrl\\n type\\n assignees @skip(if: $hideUsers) {\\n nodes {\\n __persist\\n id\\n avatarUrl\\n name\\n username\\n webUrl\\n webPath\\n }\\n }\\n author @skip(if: $hideUsers) {\\n __persist\\n id\\n avatarUrl\\n name\\n username\\n webUrl\\n webPath\\n }\\n labels {\\n nodes {\\n __persist\\n id\\n color\\n title\\n description\\n }\\n }\\n milestone {\\n __persist\\n id\\n dueDate\\n startDate\\n webPath\\n title\\n }\\n taskCompletionStatus {\\n completedCount\\n count\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"IssueFragment\"] = oneQuery(doc, \"IssueFragment\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"groupLabels\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTerm\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTerm\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTerm\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"onlyGroupLabels\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestorGroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":308}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/label.fragment.graphql\\\"\\n\\nquery groupLabels($fullPath: ID!, $searchTerm: String) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n labels(searchTerm: $searchTerm, onlyGroupLabels: true, includeAncestorGroups: true) {\\n nodes {\\n ...Label\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/label.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"groupLabels\"] = oneQuery(doc, \"groupLabels\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"header\",staticClass:\"js-file-title file-title file-title-flex-parent\",attrs:{\"data-testid\":\"file-title-container\",\"data-qa-file-name\":_vm.filePath},on:{\"click\":function($event){if($event.target !== $event.currentTarget)return null;return _vm.handleToggleFile.apply(null, arguments)}}},[_c('div',{staticClass:\"file-header-content\"},[(_vm.collapsible)?_c('gl-button',{ref:\"collapseButton\",staticClass:\"gl-mr-2\",attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"icon\":_vm.collapseIcon,\"aria-label\":_vm.labelToggleFile},on:{\"click\":function($event){$event.stopPropagation();return _vm.handleToggleFile.apply(null, arguments)}}}):_vm._e(),_vm._v(\" \"),_c('a',{staticClass:\"gl-mr-2 gl-break-all !gl-no-underline\",attrs:{\"v-once\":!_vm.viewDiffsFileByFile,\"href\":_vm.titleLink,\"data-testid\":\"file-title\"},on:{\"click\":_vm.handleFileNameClick}},[(_vm.isFileRenamed)?_c('span',[_c('strong',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"},{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.diffFile.old_path_html),expression:\"diffFile.old_path_html\"}],staticClass:\"file-title-name\",attrs:{\"title\":_vm.diffFile.old_path}}),_vm._v(\"\\n →\\n \"),_c('strong',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"},{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.diffFile.new_path_html),expression:\"diffFile.new_path_html\"}],staticClass:\"file-title-name\",attrs:{\"title\":_vm.diffFile.new_path}})]):_c('strong',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"file-title-name\",attrs:{\"title\":_vm.filePath,\"data-container\":\"body\",\"data-testid\":\"file-name-content\"}},[_vm._v(\"\\n \"+_vm._s(_vm.filePath)+\"\\n \")])]),_vm._v(\" \"),_c('clipboard-button',{attrs:{\"title\":_vm.__('Copy file path'),\"text\":_vm.diffFile.file_path,\"gfm\":_vm.gfmCopyText,\"size\":\"small\",\"data-testid\":\"diff-file-copy-clipboard\",\"category\":\"tertiary\",\"data-track-action\":\"click_copy_file_button\",\"data-track-label\":\"diff_copy_file_path_button\",\"data-track-property\":\"diff_copy_file\"}}),_vm._v(\" \"),(_vm.isModeChanged)?_c('small',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover.focus\",modifiers:{\"hover\":true,\"focus\":true}}],ref:\"fileMode\",staticClass:\"gl-mr-2 gl-text-subtle\",attrs:{\"title\":_vm.$options.i18n.fileModeTooltip}},[_vm._v(\"\\n \"+_vm._s(_vm.diffFile.a_mode)+\" → \"+_vm._s(_vm.diffFile.b_mode)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isUsingLfs)?_c('gl-badge',{staticClass:\"gl-mr-2\",attrs:{\"variant\":\"neutral\",\"data-testid\":\"label-lfs\"}},[_vm._v(_vm._s(_vm.__('LFS')))]):_vm._e()],1),_vm._v(\" \"),(!_vm.diffFile.submodule && _vm.addMergeRequestButtons)?_c('div',{staticClass:\"file-actions gl-ml-auto gl-flex gl-items-center gl-self-start\"},[_c('diff-stats',{attrs:{\"diff-file\":_vm.diffFile,\"added-lines\":_vm.diffFile.added_lines,\"removed-lines\":_vm.diffFile.removed_lines}}),_vm._v(\" \"),(_vm.isReviewable && _vm.showLocalFileReviews)?_c('gl-form-checkbox',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover.focus.left\",modifiers:{\"hover\":true,\"focus\":true,\"left\":true}}],staticClass:\"-gl-mb-3 gl-mr-5 gl-flex gl-items-center\",attrs:{\"data-testid\":\"fileReviewCheckbox\",\"title\":_vm.$options.i18n.fileReviewTooltip,\"checked\":_vm.reviewed},on:{\"change\":_vm.toggleReview}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.fileReviewLabel)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showCommentButton)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover.focus\",modifiers:{\"hover\":true,\"focus\":true}}],staticClass:\"btn-icon gl-mr-3\",attrs:{\"title\":_vm.__('Comment on this file'),\"aria-label\":_vm.__('Comment on this file'),\"icon\":\"comment\",\"category\":\"tertiary\",\"size\":\"small\",\"data-testid\":\"comment-files-button\"},on:{\"click\":function($event){return _vm.toggleFileCommentForm(_vm.diffFile.file_path)}}}):_vm._e(),_vm._v(\" \"),_c('gl-button-group',{staticClass:\"!gl-pt-0\"},[(_vm.diffFile.external_url)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover.focus\",modifiers:{\"hover\":true,\"focus\":true}}],ref:\"externalLink\",attrs:{\"href\":_vm.diffFile.external_url,\"title\":_vm.externalUrlLabel,\"aria-label\":_vm.externalUrlLabel,\"target\":\"_blank\",\"data-track-action\":\"click_toggle_external_button\",\"data-track-label\":\"diff_toggle_external_button\",\"data-track-property\":\"diff_toggle_external\",\"icon\":\"external-link\"}}):_vm._e(),_vm._v(\" \"),_c('gl-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover.focus\",value:(_vm.$options.i18n.optionsDropdownTitle),expression:\"$options.i18n.optionsDropdownTitle\",modifiers:{\"hover\":true,\"focus\":true}}],staticClass:\"!gl-pt-0\",attrs:{\"size\":\"small\",\"category\":\"tertiary\",\"right\":\"\",\"toggle-class\":\"btn-icon js-diff-more-actions\",\"data-testid\":\"options-dropdown-button\",\"lazy\":\"\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('gl-icon',{staticClass:\"mr-0\",attrs:{\"name\":\"ellipsis_v\"}}),_vm._v(\" \"),_c('span',{staticClass:\"sr-only\"},[_vm._v(_vm._s(_vm.$options.i18n.optionsDropdownTitle))])]},proxy:true}],null,false,1529039611)},[_vm._v(\" \"),_c('gl-dropdown-item',{ref:\"viewButton\",attrs:{\"href\":_vm.diffFile.view_path,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(_vm.viewFileButtonText)+\"\\n \")]),_vm._v(\" \"),(_vm.showEditButton)?[(_vm.diffFile.edit_path)?_c('gl-dropdown-item',{ref:\"editButton\",staticClass:\"js-edit-blob\",attrs:{\"href\":_vm.diffFile.edit_path},on:{\"click\":_vm.showForkMessage}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Edit in single-file editor'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.diffFile.edit_path)?_c('gl-dropdown-item',{ref:\"ideEditButton\",staticClass:\"js-ide-edit-blob\",attrs:{\"href\":_vm.diffFile.ide_edit_path,\"data-testid\":\"edit-in-ide-button\",\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Open in Web IDE'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.diffFile.replaced_view_path)?_c('gl-dropdown-item',{ref:\"replacedFileButton\",attrs:{\"href\":_vm.diffFile.replaced_view_path,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(_vm.viewReplacedFileButtonText)+\"\\n \")]):_vm._e()]:_vm._e(),_vm._v(\" \"),(!_vm.isCollapsed)?[(!_vm.diffFile.is_fully_expanded || _vm.diffHasDiscussions(_vm.diffFile))?_c('gl-dropdown-divider'):_vm._e(),_vm._v(\" \"),(_vm.diffHasDiscussions(_vm.diffFile))?_c('gl-dropdown-item',{ref:\"toggleDiscussionsButton\",attrs:{\"data-testid\":\"toggle-comments-button\"},on:{\"click\":function($event){return _vm.toggleFileDiscussionWrappers(_vm.diffFile)}}},[(_vm.diffHasExpandedDiscussions(_vm.diffFile))?[_vm._v(\"\\n \"+_vm._s(_vm.__('Hide comments on this file'))+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(_vm.__('Show comments on this file'))+\"\\n \")]],2):_vm._e(),_vm._v(\" \"),(!_vm.diffFile.is_fully_expanded)?_c('gl-dropdown-item',{ref:\"expandDiffToFullFileButton\",attrs:{\"disabled\":_vm.diffFile.isLoadingFullFile},on:{\"click\":function($event){return _vm.toggleFullDiff(_vm.diffFile.file_path)}}},[(_vm.diffFile.isLoadingFullFile)?_c('gl-loading-icon',{attrs:{\"size\":\"sm\",\"inline\":\"\"}}):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.expandDiffToFullFileTitle)+\"\\n \")],1):_vm._e()]:_vm._e()],2)],1)],1):_vm._e(),_vm._v(\" \"),(_vm.diffFile.submodule_compare)?_c('div',{staticClass:\"file-actions gl-hidden gl-flex-wrap gl-items-center sm:gl-flex\"},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}},{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.submoduleDiffCompareLinkText),expression:\"submoduleDiffCompareLinkText\"}],staticClass:\"submodule-compare gl-inline-block\",attrs:{\"title\":_vm.$options.i18n.compareButtonLabel,\"aria-label\":_vm.$options.i18n.compareButtonLabel,\"href\":_vm.diffFile.submodule_compare.url}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./diff_file_header.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./diff_file_header.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlTooltipDirective,\n GlIcon,\n GlBadge,\n GlButton,\n GlButtonGroup,\n GlDropdown,\n GlDropdownItem,\n GlDropdownDivider,\n GlFormCheckbox,\n GlLoadingIcon,\n} from '@gitlab/ui';\nimport { escape } from 'lodash';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { scrollToElement } from '~/lib/utils/common_utils';\nimport { truncateSha } from '~/lib/utils/text_utility';\nimport { __, s__, sprintf } from '~/locale';\nimport ClipboardButton from '~/vue_shared/components/clipboard_button.vue';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\n\nimport { createFileUrl, fileContentsId } from '~/diffs/components/diff_row_utils';\nimport { DIFF_FILE_AUTOMATIC_COLLAPSE } from '../constants';\nimport { DIFF_FILE_HEADER } from '../i18n';\nimport { collapsedType, isCollapsed } from '../utils/diff_file';\nimport { reviewable } from '../utils/file_reviews';\n\nimport DiffStats from './diff_stats.vue';\n\nexport default {\n components: {\n ClipboardButton,\n GlIcon,\n DiffStats,\n GlBadge,\n GlButton,\n GlButtonGroup,\n GlDropdown,\n GlDropdownItem,\n GlDropdownDivider,\n GlFormCheckbox,\n GlLoadingIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n SafeHtml,\n },\n mixins: [glFeatureFlagsMixin()],\n i18n: {\n ...DIFF_FILE_HEADER,\n compareButtonLabel: __('Compare submodule commit revisions'),\n fileModeTooltip: __('File permissions'),\n },\n props: {\n discussionPath: {\n type: String,\n required: false,\n default: '',\n },\n diffFile: {\n type: Object,\n required: true,\n },\n collapsible: {\n type: Boolean,\n required: false,\n default: false,\n },\n addMergeRequestButtons: {\n type: Boolean,\n required: false,\n default: false,\n },\n expanded: {\n type: Boolean,\n required: false,\n default: true,\n },\n canCurrentUserFork: {\n type: Boolean,\n required: true,\n },\n viewDiffsFileByFile: {\n type: Boolean,\n required: false,\n default: false,\n },\n showLocalFileReviews: {\n type: Boolean,\n required: false,\n default: false,\n },\n reviewed: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n ...mapState('diffs', ['latestDiff']),\n ...mapGetters('diffs', ['diffHasExpandedDiscussions', 'diffHasDiscussions']),\n ...mapGetters(['getNoteableData']),\n diffContentIDSelector() {\n return fileContentsId(this.diffFile);\n },\n diffUrl() {\n return createFileUrl(this.diffFile);\n },\n titleLink() {\n if (this.diffFile.submodule) {\n return this.diffFile.submodule_tree_url || this.diffFile.submodule_link;\n }\n\n if (!this.discussionPath) {\n return this.diffUrl;\n }\n\n return this.discussionPath;\n },\n submoduleDiffCompareLinkText() {\n if (this.diffFile.submodule_compare) {\n const truncatedOldSha = escape(truncateSha(this.diffFile.submodule_compare.old_sha));\n const truncatedNewSha = escape(truncateSha(this.diffFile.submodule_compare.new_sha));\n return sprintf(\n __('Compare %{oldCommitId}...%{newCommitId}'),\n {\n oldCommitId: `<span class=\"commit-sha\">${truncatedOldSha}</span>`,\n newCommitId: `<span class=\"commit-sha\">${truncatedNewSha}</span>`,\n },\n false,\n );\n }\n return null;\n },\n filePath() {\n if (this.diffFile.submodule) {\n return `${this.diffFile.file_path} @ ${truncateSha(this.diffFile.blob.id)}`;\n }\n\n if (this.diffFile.deleted_file) {\n return sprintf(__('%{filePath} deleted'), { filePath: this.diffFile.file_path }, false);\n }\n\n return this.diffFile.file_path;\n },\n isUsingLfs() {\n return this.diffFile.stored_externally && this.diffFile.external_storage === 'lfs';\n },\n isCollapsed() {\n return isCollapsed(this.diffFile, { fileByFile: this.viewDiffsFileByFile });\n },\n collapseIcon() {\n return this.expanded ? 'chevron-down' : 'chevron-right';\n },\n viewFileButtonText() {\n const truncatedContentSha = escape(truncateSha(this.diffFile.content_sha));\n return sprintf(\n s__('MergeRequests|View file @ %{commitId}'),\n { commitId: truncatedContentSha },\n false,\n );\n },\n viewReplacedFileButtonText() {\n const truncatedBaseSha = escape(truncateSha(this.diffFile.diff_refs.base_sha));\n return sprintf(s__('MergeRequests|View replaced file @ %{commitId}'), {\n commitId: truncatedBaseSha,\n });\n },\n gfmCopyText() {\n return `\\`${this.diffFile.file_path}\\``;\n },\n isFileRenamed() {\n return this.diffFile.renamed_file;\n },\n isModeChanged() {\n return this.diffFile.mode_changed;\n },\n expandDiffToFullFileTitle() {\n if (this.diffFile.isShowingFullFile) {\n return s__('MRDiff|Show changes only');\n }\n return s__('MRDiff|Show full file');\n },\n showEditButton() {\n return (\n this.diffFile.blob?.readable_text &&\n !this.diffFile.deleted_file &&\n (this.diffFile.edit_path || this.diffFile.ide_edit_path)\n );\n },\n isReviewable() {\n return reviewable(this.diffFile);\n },\n externalUrlLabel() {\n return sprintf(__('View on %{url}'), { url: this.diffFile.formatted_external_url });\n },\n labelToggleFile() {\n return this.expanded ? __('Hide file contents') : __('Show file contents');\n },\n showCommentButton() {\n return this.getNoteableData.current_user.can_create_note;\n },\n },\n methods: {\n ...mapActions('diffs', [\n 'toggleFileDiscussionWrappers',\n 'toggleFullDiff',\n 'setCurrentFileHash',\n 'reviewFile',\n 'setFileCollapsedByUser',\n 'setFileForcedOpen',\n 'toggleFileCommentForm',\n ]),\n handleToggleFile() {\n this.setFileForcedOpen({\n filePath: this.diffFile.file_path,\n forced: false,\n });\n this.$emit('toggleFile');\n },\n showForkMessage(e) {\n if (this.canCurrentUserFork && !this.diffFile.can_modify_blob) {\n e.preventDefault();\n this.$emit('showForkMessage');\n }\n },\n handleFileNameClick(e) {\n const isLinkToOtherPage =\n this.diffFile.submodule_tree_url || this.diffFile.submodule_link || this.discussionPath;\n\n if (!isLinkToOtherPage) {\n e.preventDefault();\n const selector = this.diffContentIDSelector;\n scrollToElement(document.querySelector(selector));\n window.location.hash = selector;\n if (!this.viewDiffsFileByFile) {\n this.setCurrentFileHash(this.diffFile.file_hash);\n }\n }\n },\n toggleReview(newReviewedStatus) {\n // this is the easiest way to hide an already open tooltip that triggers on focus\n document.activeElement.blur();\n const autoCollapsed =\n this.isCollapsed && collapsedType(this.diffFile) === DIFF_FILE_AUTOMATIC_COLLAPSE;\n const open = this.expanded;\n const closed = !open;\n const reviewed = newReviewedStatus;\n\n this.reviewFile({ file: this.diffFile, reviewed });\n\n if (reviewed && autoCollapsed) {\n this.setFileCollapsedByUser({\n filePath: this.diffFile.file_path,\n collapsed: true,\n });\n }\n\n if ((open && reviewed) || (closed && !reviewed)) {\n this.setFileForcedOpen({\n filePath: this.diffFile.file_path,\n forced: false,\n });\n this.$emit('toggleFile');\n }\n },\n },\n};\n</script>\n\n<template>\n <div\n ref=\"header\"\n class=\"js-file-title file-title file-title-flex-parent\"\n data-testid=\"file-title-container\"\n :data-qa-file-name=\"filePath\"\n @click.self=\"handleToggleFile\"\n >\n <div class=\"file-header-content\">\n <gl-button\n v-if=\"collapsible\"\n ref=\"collapseButton\"\n class=\"gl-mr-2\"\n category=\"tertiary\"\n size=\"small\"\n :icon=\"collapseIcon\"\n :aria-label=\"labelToggleFile\"\n @click.stop=\"handleToggleFile\"\n />\n <a\n :v-once=\"!viewDiffsFileByFile\"\n class=\"gl-mr-2 gl-break-all !gl-no-underline\"\n :href=\"titleLink\"\n data-testid=\"file-title\"\n @click=\"handleFileNameClick\"\n >\n <span v-if=\"isFileRenamed\">\n <strong\n v-gl-tooltip\n v-safe-html=\"diffFile.old_path_html\"\n :title=\"diffFile.old_path\"\n class=\"file-title-name\"\n ></strong>\n →\n <strong\n v-gl-tooltip\n v-safe-html=\"diffFile.new_path_html\"\n :title=\"diffFile.new_path\"\n class=\"file-title-name\"\n ></strong>\n </span>\n\n <strong\n v-else\n v-gl-tooltip\n :title=\"filePath\"\n class=\"file-title-name\"\n data-container=\"body\"\n data-testid=\"file-name-content\"\n >\n {{ filePath }}\n </strong>\n </a>\n\n <clipboard-button\n :title=\"__('Copy file path')\"\n :text=\"diffFile.file_path\"\n :gfm=\"gfmCopyText\"\n size=\"small\"\n data-testid=\"diff-file-copy-clipboard\"\n category=\"tertiary\"\n data-track-action=\"click_copy_file_button\"\n data-track-label=\"diff_copy_file_path_button\"\n data-track-property=\"diff_copy_file\"\n />\n\n <small\n v-if=\"isModeChanged\"\n ref=\"fileMode\"\n v-gl-tooltip.hover.focus\n class=\"gl-mr-2 gl-text-subtle\"\n :title=\"$options.i18n.fileModeTooltip\"\n >\n {{ diffFile.a_mode }} → {{ diffFile.b_mode }}\n </small>\n\n <gl-badge v-if=\"isUsingLfs\" variant=\"neutral\" class=\"gl-mr-2\" data-testid=\"label-lfs\">{{\n __('LFS')\n }}</gl-badge>\n </div>\n\n <div\n v-if=\"!diffFile.submodule && addMergeRequestButtons\"\n class=\"file-actions gl-ml-auto gl-flex gl-items-center gl-self-start\"\n >\n <diff-stats\n :diff-file=\"diffFile\"\n :added-lines=\"diffFile.added_lines\"\n :removed-lines=\"diffFile.removed_lines\"\n />\n <gl-form-checkbox\n v-if=\"isReviewable && showLocalFileReviews\"\n v-gl-tooltip.hover.focus.left\n data-testid=\"fileReviewCheckbox\"\n class=\"-gl-mb-3 gl-mr-5 gl-flex gl-items-center\"\n :title=\"$options.i18n.fileReviewTooltip\"\n :checked=\"reviewed\"\n @change=\"toggleReview\"\n >\n {{ $options.i18n.fileReviewLabel }}\n </gl-form-checkbox>\n <gl-button\n v-if=\"showCommentButton\"\n v-gl-tooltip.hover.focus\n :title=\"__('Comment on this file')\"\n :aria-label=\"__('Comment on this file')\"\n icon=\"comment\"\n category=\"tertiary\"\n size=\"small\"\n class=\"btn-icon gl-mr-3\"\n data-testid=\"comment-files-button\"\n @click=\"toggleFileCommentForm(diffFile.file_path)\"\n />\n <gl-button-group class=\"!gl-pt-0\">\n <gl-button\n v-if=\"diffFile.external_url\"\n ref=\"externalLink\"\n v-gl-tooltip.hover.focus\n :href=\"diffFile.external_url\"\n :title=\"externalUrlLabel\"\n :aria-label=\"externalUrlLabel\"\n target=\"_blank\"\n data-track-action=\"click_toggle_external_button\"\n data-track-label=\"diff_toggle_external_button\"\n data-track-property=\"diff_toggle_external\"\n icon=\"external-link\"\n />\n <gl-dropdown\n v-gl-tooltip.hover.focus=\"$options.i18n.optionsDropdownTitle\"\n size=\"small\"\n category=\"tertiary\"\n right\n toggle-class=\"btn-icon js-diff-more-actions\"\n class=\"!gl-pt-0\"\n data-testid=\"options-dropdown-button\"\n lazy\n >\n <template #button-content>\n <gl-icon name=\"ellipsis_v\" class=\"mr-0\" />\n <span class=\"sr-only\">{{ $options.i18n.optionsDropdownTitle }}</span>\n </template>\n <gl-dropdown-item ref=\"viewButton\" :href=\"diffFile.view_path\" target=\"_blank\">\n {{ viewFileButtonText }}\n </gl-dropdown-item>\n <template v-if=\"showEditButton\">\n <gl-dropdown-item\n v-if=\"diffFile.edit_path\"\n ref=\"editButton\"\n :href=\"diffFile.edit_path\"\n class=\"js-edit-blob\"\n @click=\"showForkMessage\"\n >\n {{ __('Edit in single-file editor') }}\n </gl-dropdown-item>\n <gl-dropdown-item\n v-if=\"diffFile.edit_path\"\n ref=\"ideEditButton\"\n :href=\"diffFile.ide_edit_path\"\n class=\"js-ide-edit-blob\"\n data-testid=\"edit-in-ide-button\"\n target=\"_blank\"\n >\n {{ __('Open in Web IDE') }}\n </gl-dropdown-item>\n <gl-dropdown-item\n v-if=\"diffFile.replaced_view_path\"\n ref=\"replacedFileButton\"\n :href=\"diffFile.replaced_view_path\"\n target=\"_blank\"\n >\n {{ viewReplacedFileButtonText }}\n </gl-dropdown-item>\n </template>\n\n <template v-if=\"!isCollapsed\">\n <gl-dropdown-divider\n v-if=\"!diffFile.is_fully_expanded || diffHasDiscussions(diffFile)\"\n />\n\n <gl-dropdown-item\n v-if=\"diffHasDiscussions(diffFile)\"\n ref=\"toggleDiscussionsButton\"\n data-testid=\"toggle-comments-button\"\n @click=\"toggleFileDiscussionWrappers(diffFile)\"\n >\n <template v-if=\"diffHasExpandedDiscussions(diffFile)\">\n {{ __('Hide comments on this file') }}\n </template>\n <template v-else>\n {{ __('Show comments on this file') }}\n </template>\n </gl-dropdown-item>\n <gl-dropdown-item\n v-if=\"!diffFile.is_fully_expanded\"\n ref=\"expandDiffToFullFileButton\"\n :disabled=\"diffFile.isLoadingFullFile\"\n @click=\"toggleFullDiff(diffFile.file_path)\"\n >\n <gl-loading-icon v-if=\"diffFile.isLoadingFullFile\" size=\"sm\" inline />\n {{ expandDiffToFullFileTitle }}\n </gl-dropdown-item>\n </template>\n </gl-dropdown>\n </gl-button-group>\n </div>\n\n <div\n v-if=\"diffFile.submodule_compare\"\n class=\"file-actions gl-hidden gl-flex-wrap gl-items-center sm:gl-flex\"\n >\n <gl-button\n v-gl-tooltip.hover\n v-safe-html=\"submoduleDiffCompareLinkText\"\n class=\"submodule-compare gl-inline-block\"\n :title=\"$options.i18n.compareButtonLabel\"\n :aria-label=\"$options.i18n.compareButtonLabel\"\n :href=\"diffFile.submodule_compare.url\"\n />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./diff_file_header.vue?vue&type=template&id=3b3bca96\"\nimport script from \"./diff_file_header.vue?vue&type=script&lang=js\"\nexport * from \"./diff_file_header.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"EscalationPolicyFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"EscalationPolicyType\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"title\"},\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":81}};\n doc.loc.source = {\"body\":\"fragment EscalationPolicyFragment on EscalationPolicyType {\\n id\\n title: name\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"EscalationPolicyFragment\"] = oneQuery(doc, \"EscalationPolicyFragment\");\n \n","import { BLink } from '../../../../vendor/bootstrap-vue/src/components/link/link';\nimport { ENTER, SPACE } from '../constants';\nimport { stopEvent } from '../../../../utils/utils';\nimport { isItem } from './utils';\nimport { DISCLOSURE_DROPDOWN_ITEM_NAME } from './constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst ITEM_CLASS = 'gl-new-dropdown-item';\nvar script = {\n name: DISCLOSURE_DROPDOWN_ITEM_NAME,\n ITEM_CLASS,\n components: {\n BLink\n },\n props: {\n item: {\n type: Object,\n required: false,\n default: null,\n validator: isItem\n }\n },\n computed: {\n isLink() {\n var _this$item, _this$item2;\n return typeof ((_this$item = this.item) === null || _this$item === void 0 ? void 0 : _this$item.href) === 'string' || typeof ((_this$item2 = this.item) === null || _this$item2 === void 0 ? void 0 : _this$item2.to) === 'string';\n },\n isCustomContent() {\n return Boolean(this.$scopedSlots.default);\n },\n itemComponent() {\n const {\n item\n } = this;\n if (this.isLink) return {\n is: BLink,\n attrs: {\n href: item.href,\n to: item.to,\n ...item.extraAttrs\n },\n listeners: {\n click: this.action\n }\n };\n return {\n is: 'button',\n attrs: {\n ...(item === null || item === void 0 ? void 0 : item.extraAttrs),\n type: 'button'\n },\n listeners: {\n click: () => {\n var _item$action;\n item === null || item === void 0 ? void 0 : (_item$action = item.action) === null || _item$action === void 0 ? void 0 : _item$action.call(undefined, item);\n this.action();\n }\n }\n };\n },\n listIndex() {\n var _this$item3, _this$item3$extraAttr;\n return (_this$item3 = this.item) !== null && _this$item3 !== void 0 && (_this$item3$extraAttr = _this$item3.extraAttrs) !== null && _this$item3$extraAttr !== void 0 && _this$item3$extraAttr.disabled ? null : 0;\n },\n componentIndex() {\n var _this$item4, _this$item4$extraAttr;\n return (_this$item4 = this.item) !== null && _this$item4 !== void 0 && (_this$item4$extraAttr = _this$item4.extraAttrs) !== null && _this$item4$extraAttr !== void 0 && _this$item4$extraAttr.disabled ? null : -1;\n },\n wrapperClass() {\n var _this$item$wrapperCla, _this$item5;\n return (_this$item$wrapperCla = (_this$item5 = this.item) === null || _this$item5 === void 0 ? void 0 : _this$item5.wrapperClass) !== null && _this$item$wrapperCla !== void 0 ? _this$item$wrapperCla : '';\n },\n wrapperListeners() {\n const listeners = {\n keydown: this.onKeydown\n };\n if (this.isCustomContent) {\n listeners.click = this.action;\n }\n return listeners;\n }\n },\n methods: {\n onKeydown(event) {\n const {\n code\n } = event;\n if (code === ENTER || code === SPACE) {\n if (this.isCustomContent) {\n this.action();\n } else {\n stopEvent(event);\n /** Instead of simply navigating or calling the action, we want\n * the `a/button` to be the target of the event as it might have additional attributes.\n * E.g. `a` might have `target` attribute.\n */\n const e = new MouseEvent('click', {\n bubbles: true,\n cancelable: true\n });\n if (this.isLink) {\n this.$refs.item.$el.dispatchEvent(e);\n } else {\n var _this$$refs$item;\n (_this$$refs$item = this.$refs.item) === null || _this$$refs$item === void 0 ? void 0 : _this$$refs$item.dispatchEvent(e);\n }\n }\n }\n },\n action() {\n this.$emit('action', this.item);\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',_vm._g({class:[_vm.$options.ITEM_CLASS, _vm.wrapperClass],attrs:{\"tabindex\":_vm.listIndex,\"data-testid\":\"disclosure-dropdown-item\"}},_vm.wrapperListeners),[_vm._t(\"default\",function(){return [_c(_vm.itemComponent.is,_vm._g(_vm._b({ref:\"item\",tag:\"component\",staticClass:\"gl-new-dropdown-item-content\",attrs:{\"tabindex\":_vm.componentIndex}},'component',_vm.itemComponent.attrs,false),_vm.itemComponent.listeners),[_c('span',{staticClass:\"gl-new-dropdown-item-text-wrapper\"},[_vm._t(\"list-item\",function(){return [_vm._v(\"\\n \"+_vm._s(_vm.item.text)+\"\\n \")]})],2)])]})],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\nexport { ITEM_CLASS };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',{staticClass:\"gl-contents\"},[(_vm.showExportButton)?_c('gl-disclosure-dropdown-item',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.exportModalId),expression:\"exportModalId\"}],attrs:{\"data-testid\":\"export-as-csv-button\",\"item\":_vm.dropdownItems.exportAsCSV}}):_vm._e(),_vm._v(\" \"),(_vm.showImportButton)?_c('gl-disclosure-dropdown-item',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.importModalId),expression:\"importModalId\"}],attrs:{\"data-testid\":\"import-from-csv-button\",\"item\":_vm.dropdownItems.importCSV}}):_vm._e(),_vm._v(\" \"),(_vm.showImportButton && _vm.canEdit)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"import-from-jira-link\",\"item\":_vm.dropdownItems.importFromJIRA}}):_vm._e(),_vm._v(\" \"),(_vm.showExportButton)?_c('csv-export-modal',{attrs:{\"modal-id\":_vm.exportModalId,\"export-csv-path\":_vm.exportCsvPath,\"issuable-count\":_vm.issuableCount}}):_vm._e(),_vm._v(\" \"),(_vm.showImportButton)?_c('csv-import-modal',{attrs:{\"modal-id\":_vm.importModalId}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./csv_export_modal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./csv_export_modal.vue?vue&type=script&lang=js\"","<script>\nimport { GlModal, GlSprintf, GlIcon } from '@gitlab/ui';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { __, n__ } from '~/locale';\n\nexport default {\n actionCancel: {\n text: __('Cancel'),\n },\n i18n: {\n exportText: __(\n 'The CSV export will be created in the background. Once finished, it will be sent to %{email} in an attachment.',\n ),\n },\n components: {\n GlModal,\n GlSprintf,\n GlIcon,\n },\n inject: {\n issuableType: {\n default: TYPE_ISSUE,\n },\n email: {\n default: '',\n },\n },\n props: {\n exportCsvPath: {\n type: String,\n required: true,\n },\n issuableCount: {\n type: Number,\n required: true,\n },\n modalId: {\n type: String,\n required: true,\n },\n },\n computed: {\n actionPrimary() {\n return {\n text: this.exportText,\n attributes: {\n href: this.exportCsvPath,\n variant: 'confirm',\n 'data-method': 'post',\n 'data-testid': 'export-issues-button',\n 'data-track-action': 'click_button',\n 'data-track-label': this.dataTrackLabel,\n },\n };\n },\n isIssue() {\n return this.issuableType === TYPE_ISSUE;\n },\n dataTrackLabel() {\n return this.isIssue ? 'export_issues_csv' : 'export_merge-requests_csv';\n },\n exportText() {\n return this.isIssue ? __('Export issues') : __('Export merge requests');\n },\n issuableCountText() {\n return this.isIssue\n ? n__('1 issue selected', '%d issues selected', this.issuableCount)\n : n__('1 merge request selected', '%d merge requests selected', this.issuableCount);\n },\n },\n};\n</script>\n\n<template>\n <gl-modal\n :modal-id=\"modalId\"\n :action-primary=\"actionPrimary\"\n :action-cancel=\"$options.actionCancel\"\n body-class=\"!gl-p-0\"\n :title=\"exportText\"\n data-testid=\"export-issuable-modal\"\n >\n <div\n class=\"gl-items-center gl-justify-start gl-border-1 gl-border-subtle gl-p-4 gl-border-b-solid\"\n >\n <gl-icon name=\"check\" class=\"gl-color-green-400\" />\n <strong class=\"gl-m-3\">{{ issuableCountText }}</strong>\n </div>\n <div class=\"modal-text gl-px-4 gl-py-5\">\n <gl-sprintf :message=\"$options.i18n.exportText\">\n <template #email>\n <strong>{{ email }}</strong>\n </template>\n </gl-sprintf>\n </div>\n </gl-modal>\n</template>\n","import { render, staticRenderFns } from \"./csv_export_modal.vue?vue&type=template&id=2ea547ee\"\nimport script from \"./csv_export_modal.vue?vue&type=script&lang=js\"\nexport * from \"./csv_export_modal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-modal',{attrs:{\"modal-id\":_vm.modalId,\"action-primary\":_vm.actionPrimary,\"action-cancel\":_vm.$options.actionCancel,\"body-class\":\"!gl-p-0\",\"title\":_vm.exportText,\"data-testid\":\"export-issuable-modal\"}},[_c('div',{staticClass:\"gl-items-center gl-justify-start gl-border-1 gl-border-subtle gl-p-4 gl-border-b-solid\"},[_c('gl-icon',{staticClass:\"gl-color-green-400\",attrs:{\"name\":\"check\"}}),_vm._v(\" \"),_c('strong',{staticClass:\"gl-m-3\"},[_vm._v(_vm._s(_vm.issuableCountText))])],1),_vm._v(\" \"),_c('div',{staticClass:\"modal-text gl-px-4 gl-py-5\"},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.exportText},scopedSlots:_vm._u([{key:\"email\",fn:function(){return [_c('strong',[_vm._v(_vm._s(_vm.email))])]},proxy:true}])})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./csv_import_modal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./csv_import_modal.vue?vue&type=script&lang=js\"","<script>\nimport { GlModal, GlFormGroup } from '@gitlab/ui';\nimport csrf from '~/lib/utils/csrf';\nimport { __, sprintf } from '~/locale';\n\nexport default {\n i18n: {\n maximumFileSizeText: __('The maximum file size allowed is %{size}.'),\n importIssuesText: __('Import issues'),\n uploadCsvFileText: __('Upload CSV file'),\n mainText: __(\n \"Your issues will be imported in the background. Once finished, you'll get a confirmation email.\",\n ),\n helpText: __(\n 'It must have a header row and at least two columns: the first column is the issue title and the second column is the issue description. The separator is automatically detected.',\n ),\n },\n actionPrimary: {\n text: __('Import issues'),\n },\n actionCancel: {\n text: __('Cancel'),\n },\n components: {\n GlModal,\n GlFormGroup,\n },\n inject: {\n importCsvIssuesPath: {\n default: '',\n },\n maxAttachmentSize: {\n default: 0,\n },\n },\n props: {\n modalId: {\n type: String,\n required: true,\n },\n },\n computed: {\n maxFileSizeText() {\n return sprintf(this.$options.i18n.maximumFileSizeText, { size: this.maxAttachmentSize });\n },\n },\n methods: {\n submitForm() {\n this.$refs.form.submit();\n },\n },\n csrf,\n};\n</script>\n\n<template>\n <gl-modal\n :modal-id=\"modalId\"\n :title=\"$options.i18n.importIssuesText\"\n :action-primary=\"$options.actionPrimary\"\n :action-cancel=\"$options.actionCancel\"\n @primary=\"submitForm\"\n >\n <form ref=\"form\" :action=\"importCsvIssuesPath\" enctype=\"multipart/form-data\" method=\"post\">\n <input :value=\"$options.csrf.token\" type=\"hidden\" name=\"authenticity_token\" />\n <p>{{ $options.i18n.mainText }}</p>\n <gl-form-group :label=\"$options.i18n.uploadCsvFileText\" class=\"gl-truncate\" label-for=\"file\">\n <input id=\"file\" type=\"file\" name=\"file\" accept=\".csv,text/csv\" />\n </gl-form-group>\n <p class=\"gl-text-subtle\">\n {{ $options.i18n.helpText }}\n {{ maxFileSizeText }}\n </p>\n </form>\n </gl-modal>\n</template>\n","import { render, staticRenderFns } from \"./csv_import_modal.vue?vue&type=template&id=4596ece7\"\nimport script from \"./csv_import_modal.vue?vue&type=script&lang=js\"\nexport * from \"./csv_import_modal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-modal',{attrs:{\"modal-id\":_vm.modalId,\"title\":_vm.$options.i18n.importIssuesText,\"action-primary\":_vm.$options.actionPrimary,\"action-cancel\":_vm.$options.actionCancel},on:{\"primary\":_vm.submitForm}},[_c('form',{ref:\"form\",attrs:{\"action\":_vm.importCsvIssuesPath,\"enctype\":\"multipart/form-data\",\"method\":\"post\"}},[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"authenticity_token\"},domProps:{\"value\":_vm.$options.csrf.token}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$options.i18n.mainText))]),_vm._v(\" \"),_c('gl-form-group',{staticClass:\"gl-truncate\",attrs:{\"label\":_vm.$options.i18n.uploadCsvFileText,\"label-for\":\"file\"}},[_c('input',{attrs:{\"id\":\"file\",\"type\":\"file\",\"name\":\"file\",\"accept\":\".csv,text/csv\"}})]),_vm._v(\" \"),_c('p',{staticClass:\"gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.helpText)+\"\\n \"+_vm._s(_vm.maxFileSizeText)+\"\\n \")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./csv_import_export_buttons.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./csv_import_export_buttons.vue?vue&type=script&lang=js\"","<script>\nimport { GlDisclosureDropdownItem, GlModalDirective } from '@gitlab/ui';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { __ } from '~/locale';\nimport CsvExportModal from './csv_export_modal.vue';\nimport CsvImportModal from './csv_import_modal.vue';\n\nexport default {\n components: {\n GlDisclosureDropdownItem,\n CsvExportModal,\n CsvImportModal,\n },\n directives: {\n GlModal: GlModalDirective,\n },\n inject: {\n issuableType: {\n default: TYPE_ISSUE,\n },\n showExportButton: {\n default: false,\n },\n showImportButton: {\n default: false,\n },\n canEdit: {\n default: false,\n },\n projectImportJiraPath: {\n default: null,\n },\n },\n props: {\n exportCsvPath: {\n type: String,\n required: false,\n default: '',\n },\n issuableCount: {\n type: Number,\n required: false,\n default: undefined,\n },\n trackImportClick: {\n type: Boolean,\n required: false,\n default: null,\n },\n },\n data() {\n return {\n dropdownItems: {\n exportAsCSV: {\n text: __('Export as CSV'),\n },\n importCSV: {\n text: __('Import CSV'),\n },\n importFromJIRA: {\n text: __('Import from Jira'),\n href: this.projectImportJiraPath,\n },\n },\n };\n },\n computed: {\n exportModalId() {\n return `${this.issuableType}-export-modal`;\n },\n importModalId() {\n return `${this.issuableType}-import-modal`;\n },\n },\n};\n</script>\n\n<template>\n <ul class=\"gl-contents\">\n <gl-disclosure-dropdown-item\n v-if=\"showExportButton\"\n v-gl-modal=\"exportModalId\"\n data-testid=\"export-as-csv-button\"\n :item=\"dropdownItems.exportAsCSV\"\n />\n <gl-disclosure-dropdown-item\n v-if=\"showImportButton\"\n v-gl-modal=\"importModalId\"\n data-testid=\"import-from-csv-button\"\n :item=\"dropdownItems.importCSV\"\n />\n <gl-disclosure-dropdown-item\n v-if=\"showImportButton && canEdit\"\n data-testid=\"import-from-jira-link\"\n :item=\"dropdownItems.importFromJIRA\"\n />\n\n <csv-export-modal\n v-if=\"showExportButton\"\n :modal-id=\"exportModalId\"\n :export-csv-path=\"exportCsvPath\"\n :issuable-count=\"issuableCount\"\n />\n <csv-import-modal v-if=\"showImportButton\" :modal-id=\"importModalId\" />\n </ul>\n</template>\n","import { render, staticRenderFns } from \"./csv_import_export_buttons.vue?vue&type=template&id=124754d4\"\nimport script from \"./csv_import_export_buttons.vue?vue&type=script&lang=js\"\nexport * from \"./csv_import_export_buttons.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getIssuesEE\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"hideUsers\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":false},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":false},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isSignedIn\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":false},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"sort\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueSort\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableState\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableSearchableField\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssigneeWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MilestoneWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTag\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTagWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReleaseTagWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueType\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IterationWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IterationsCadenceID\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WeightWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"HealthStatusFilter\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NegatedIssueFilterInput\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UnionedIssueFilterInput\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"beforeCursor\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"afterCursor\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"firstPageSize\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"lastPageSize\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Time\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Time\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Time\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Time\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"skip\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}}}]},{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"persist\"},\"arguments\":[]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubepics\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubgroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"sort\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"sort\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"before\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"beforeCursor\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"after\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"afterCursor\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"firstPageSize\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"last\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"lastPageSize\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__persist\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pageInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PageInfo\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__persist\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueFragment\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"full\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"blockingCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"include\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}}}]},{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"persist\"},\"arguments\":[]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubepics\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"sort\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"sort\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTag\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTag\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTagWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTagWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"before\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"beforeCursor\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"after\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"afterCursor\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"firstPageSize\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"last\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"lastPageSize\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__persist\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pageInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"PageInfo\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__persist\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueFragment\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"blockingCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":4331}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/page_info.fragment.graphql\\\"\\n#import \\\"~/issues/list/queries/issue.fragment.graphql\\\"\\n\\nquery getIssuesEE(\\n $hideUsers: Boolean = false\\n $isProject: Boolean = false\\n $isSignedIn: Boolean = false\\n $fullPath: ID!\\n $iid: String\\n $search: String\\n $sort: IssueSort\\n $state: IssuableState\\n $in: [IssuableSearchableField!]\\n $assigneeId: String\\n $assigneeWildcardId: AssigneeWildcardId\\n $assigneeUsernames: [String!]\\n $authorUsername: String\\n $confidential: Boolean\\n $labelName: [String]\\n $milestoneTitle: [String]\\n $milestoneWildcardId: MilestoneWildcardId\\n $myReactionEmoji: String\\n $releaseTag: [String!]\\n $releaseTagWildcardId: ReleaseTagWildcardId\\n $types: [IssueType!]\\n $epicId: String\\n $epicWildcardId: EpicWildcardId\\n $iterationId: [ID]\\n $iterationWildcardId: IterationWildcardId\\n $iterationCadenceId: [IterationsCadenceID!]\\n $weight: String\\n $weightWildcardId: WeightWildcardId\\n $healthStatusFilter: HealthStatusFilter\\n $crmContactId: String\\n $crmOrganizationId: String\\n $not: NegatedIssueFilterInput\\n $or: UnionedIssueFilterInput\\n $beforeCursor: String\\n $afterCursor: String\\n $firstPageSize: Int\\n $lastPageSize: Int\\n $createdAfter: Time\\n $createdBefore: Time\\n $closedAfter: Time\\n $closedBefore: Time\\n) {\\n group(fullPath: $fullPath) @skip(if: $isProject) @persist {\\n id\\n issues(\\n includeSubepics: true\\n includeSubgroups: true\\n iid: $iid\\n search: $search\\n sort: $sort\\n state: $state\\n in: $in\\n assigneeId: $assigneeId\\n assigneeWildcardId: $assigneeWildcardId\\n assigneeUsernames: $assigneeUsernames\\n authorUsername: $authorUsername\\n confidential: $confidential\\n labelName: $labelName\\n milestoneTitle: $milestoneTitle\\n milestoneWildcardId: $milestoneWildcardId\\n myReactionEmoji: $myReactionEmoji\\n types: $types\\n epicId: $epicId\\n epicWildcardId: $epicWildcardId\\n iterationId: $iterationId\\n iterationWildcardId: $iterationWildcardId\\n iterationCadenceId: $iterationCadenceId\\n weight: $weight\\n weightWildcardId: $weightWildcardId\\n healthStatusFilter: $healthStatusFilter\\n crmContactId: $crmContactId\\n crmOrganizationId: $crmOrganizationId\\n not: $not\\n or: $or\\n before: $beforeCursor\\n after: $afterCursor\\n first: $firstPageSize\\n last: $lastPageSize\\n createdAfter: $createdAfter\\n createdBefore: $createdBefore\\n closedAfter: $closedAfter\\n closedBefore: $closedBefore\\n ) {\\n __persist\\n pageInfo {\\n ...PageInfo\\n }\\n nodes {\\n __persist\\n ...IssueFragment\\n reference(full: true)\\n blockingCount\\n healthStatus\\n weight\\n epic {\\n id\\n }\\n }\\n }\\n }\\n project(fullPath: $fullPath) @include(if: $isProject) @persist {\\n id\\n issues(\\n includeSubepics: true\\n iid: $iid\\n search: $search\\n sort: $sort\\n state: $state\\n in: $in\\n assigneeId: $assigneeId\\n assigneeWildcardId: $assigneeWildcardId\\n assigneeUsernames: $assigneeUsernames\\n authorUsername: $authorUsername\\n confidential: $confidential\\n labelName: $labelName\\n milestoneTitle: $milestoneTitle\\n milestoneWildcardId: $milestoneWildcardId\\n myReactionEmoji: $myReactionEmoji\\n releaseTag: $releaseTag\\n releaseTagWildcardId: $releaseTagWildcardId\\n types: $types\\n epicId: $epicId\\n epicWildcardId: $epicWildcardId\\n iterationId: $iterationId\\n iterationWildcardId: $iterationWildcardId\\n iterationCadenceId: $iterationCadenceId\\n weight: $weight\\n weightWildcardId: $weightWildcardId\\n healthStatusFilter: $healthStatusFilter\\n crmContactId: $crmContactId\\n crmOrganizationId: $crmOrganizationId\\n not: $not\\n or: $or\\n before: $beforeCursor\\n after: $afterCursor\\n first: $firstPageSize\\n last: $lastPageSize\\n createdAfter: $createdAfter\\n createdBefore: $createdBefore\\n closedAfter: $closedAfter\\n closedBefore: $closedBefore\\n ) {\\n __persist\\n pageInfo {\\n ...PageInfo\\n }\\n nodes {\\n __persist\\n ...IssueFragment\\n blockingCount\\n healthStatus\\n weight\\n epic {\\n id\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/page_info.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/issues/list/queries/issue.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"getIssuesEE\"] = oneQuery(doc, \"getIssuesEE\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"emoji-picker\"},[_c('gl-disclosure-dropdown',{ref:\"dropdown\",class:_vm.dropdownClass,attrs:{\"placement\":_vm.placement},on:{\"shown\":_vm.onShow,\"hidden\":_vm.onHide},scopedSlots:_vm._u([{key:\"toggle\",fn:function(){return [_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"add-reaction-button btn-icon gl-relative gl-h-full\",class:[_vm.toggleClass, { 'is-active': _vm.isVisible }],attrs:{\"title\":_vm.$options.i18n.addReaction,\"data-testid\":\"add-reaction-button\"},on:{\"mouseover\":_vm.onButtonHovered,\"mouseleave\":_vm.onButtonHoverLeave,\"focusin\":_vm.onButtonFocused,\"focusout\":_vm.onButtonFocusLeave}},[_vm._t(\"button-content\",function(){return [_c('gl-animated-smile-icon',{attrs:{\"is-on\":_vm.smileIcon}})]})],2)]},proxy:true},(_vm.isVisible)?{key:\"header\",fn:function(){return [_c('gl-search-box-by-type',{ref:\"searchValue\",staticClass:\"add-reaction-search gl-border-b-1 gl-border-b-dropdown gl-border-b-solid\",attrs:{\"borderless\":\"\",\"autofocus\":\"\",\"debounce\":\"500\",\"aria-label\":_vm.__('Search for an emoji')},on:{\"input\":_vm.onSearchInput},model:{value:(_vm.searchValue),callback:function ($$v) {_vm.searchValue=$$v},expression:\"searchValue\"}})]},proxy:true}:null,(_vm.newCustomEmojiPath)?{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"gl-flex gl-flex-col gl-border-t-1 gl-border-t-dropdown !gl-p-2 !gl-pt-0 gl-border-t-solid\"},[_c('gl-button',{staticClass:\"!gl-mt-2 !gl-justify-start\",attrs:{\"href\":_vm.newCustomEmojiPath,\"category\":\"tertiary\",\"block\":\"\",\"data-testid\":\"create-new-emoji\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.createEmoji)+\"\\n \")])],1)]},proxy:true}:null],null,true)},[_vm._v(\" \"),_vm._v(\" \"),(_vm.isVisible)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.searchValue),expression:\"!searchValue\"}],staticClass:\"gl-flex gl-border-b-1 gl-border-default gl-border-b-solid\",attrs:{\"data-testid\":\"category-buttons\"}},_vm._l((_vm.categoryNames),function(category,index){return _c('gl-button',{key:category.name,staticClass:\"emoji-picker-category-tab gl-grow !gl-rounded-none !gl-border-b-2 !gl-px-3 !gl-border-b-solid focus:!gl-shadow-none focus:!gl-outline focus:!gl-outline-2 focus:-gl-outline-offset-2 focus:!gl-outline-focus\",class:{ 'emoji-picker-category-active': index === _vm.currentCategory },attrs:{\"category\":\"tertiary\",\"icon\":category.icon,\"aria-label\":category.name},on:{\"click\":function($event){return _vm.scrollToCategory(category.name)},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.scrollToCategory(category.name)}}})}),1):_vm._e(),_vm._v(\" \"),(_vm.isVisible)?_c('emoji-list',{attrs:{\"search-value\":_vm.searchValue},scopedSlots:_vm._u([{key:\"default\",fn:function({ filteredCategories }){return [_c('virtual-list',{ref:\"virtualScoller\",attrs:{\"size\":258,\"remain\":1,\"bench\":2,\"variable\":\"\",\"onscroll\":_vm.onScroll}},_vm._l((filteredCategories),function(category,categoryKey){return _c('div',{key:categoryKey,style:({ height: category.height + 'px' })},[_c('category',{attrs:{\"category\":categoryKey,\"emojis\":category.emojis},on:{\"click\":_vm.selectEmoji}})],1)}),0)]}}],null,false,3430614808)}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./emoji_group.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./emoji_group.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\n\nexport default {\n components: {\n GlButton,\n },\n props: {\n emojis: {\n type: Array,\n required: true,\n },\n renderGroup: {\n type: Boolean,\n required: true,\n },\n },\n methods: {\n clickEmoji(emoji) {\n this.$emit('emoji-click', emoji);\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-mb-2 gl-flex gl-flex-wrap\">\n <template v-if=\"renderGroup\">\n <gl-button\n v-for=\"emoji in emojis\"\n :key=\"emoji\"\n type=\"button\"\n category=\"tertiary\"\n class=\"emoji-picker-emoji\"\n :aria-label=\"emoji\"\n data-testid=\"emoji-button\"\n button-text-classes=\"!gl-hidden\"\n @click=\"clickEmoji(emoji)\"\n @keydown.enter=\"clickEmoji(emoji)\"\n >\n <template #emoji>\n <gl-emoji :data-name=\"emoji\" class=\"!gl-mr-0\" />\n </template>\n </gl-button>\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./emoji_group.vue?vue&type=template&id=558e87aa\"\nimport script from \"./emoji_group.vue?vue&type=script&lang=js\"\nexport * from \"./emoji_group.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-mb-2 gl-flex gl-flex-wrap\"},[(_vm.renderGroup)?_vm._l((_vm.emojis),function(emoji){return _c('gl-button',{key:emoji,staticClass:\"emoji-picker-emoji\",attrs:{\"type\":\"button\",\"category\":\"tertiary\",\"aria-label\":emoji,\"data-testid\":\"emoji-button\",\"button-text-classes\":\"!gl-hidden\"},on:{\"click\":function($event){return _vm.clickEmoji(emoji)},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.clickEmoji(emoji)}},scopedSlots:_vm._u([{key:\"emoji\",fn:function(){return [_c('gl-emoji',{staticClass:\"!gl-mr-0\",attrs:{\"data-name\":emoji}})]},proxy:true}],null,true)})}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./category.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./category.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlIntersectionObserver } from '@gitlab/ui';\nimport { humanize } from '~/lib/utils/text_utility';\nimport EmojiGroup from './emoji_group.vue';\n\nexport default {\n components: {\n GlIntersectionObserver,\n EmojiGroup,\n },\n props: {\n category: {\n type: String,\n required: true,\n },\n emojis: {\n type: Array,\n required: true,\n },\n },\n data() {\n return {\n renderGroup: false,\n };\n },\n computed: {\n categoryTitle() {\n return humanize(this.category);\n },\n },\n methods: {\n categoryAppeared() {\n this.renderGroup = true;\n this.$emit('appear', this.category);\n },\n onClick(emoji) {\n this.$emit('click', { category: this.category, emoji });\n },\n },\n};\n</script>\n\n<template>\n <gl-intersection-observer class=\"gl-h-full gl-px-4\" @appear=\"categoryAppeared\">\n <div class=\"emoji-picker-category-header gl-top-0 gl-z-3 gl-w-full gl-py-3 gl-text-sm\">\n <b>{{ categoryTitle }}</b>\n </div>\n <template v-if=\"emojis.length\">\n <emoji-group\n v-for=\"(emojiGroup, index) in emojis\"\n :key=\"index\"\n :emojis=\"emojiGroup\"\n :render-group=\"renderGroup\"\n @emoji-click=\"onClick\"\n />\n </template>\n <p v-else>\n {{ s__('AwardEmoji|No emoji found.') }}\n </p>\n </gl-intersection-observer>\n</template>\n","import { render, staticRenderFns } from \"./category.vue?vue&type=template&id=1d12fa6b\"\nimport script from \"./category.vue?vue&type=script&lang=js\"\nexport * from \"./category.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-intersection-observer',{staticClass:\"gl-h-full gl-px-4\",on:{\"appear\":_vm.categoryAppeared}},[_c('div',{staticClass:\"emoji-picker-category-header gl-top-0 gl-z-3 gl-w-full gl-py-3 gl-text-sm\"},[_c('b',[_vm._v(_vm._s(_vm.categoryTitle))])]),_vm._v(\" \"),(_vm.emojis.length)?_vm._l((_vm.emojis),function(emojiGroup,index){return _c('emoji-group',{key:index,attrs:{\"emojis\":emojiGroup,\"render-group\":_vm.renderGroup},on:{\"emoji-click\":_vm.onClick}})}):_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.s__('AwardEmoji|No emoji found.'))+\"\\n \")])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { chunk, memoize, uniq } from 'lodash';\nimport { getCookie, removeCookie } from '~/lib/utils/common_utils';\nimport { initEmojiMap, getEmojiCategoryMap, getAllEmoji, getEmojisForCategory } from '~/emoji';\nimport {\n EMOJIS_PER_ROW,\n EMOJI_ROW_HEIGHT,\n CATEGORY_ROW_HEIGHT,\n FREQUENTLY_USED_KEY,\n FREQUENTLY_USED_EMOJIS_STORAGE_KEY,\n} from '../constants';\n\nexport const generateCategoryHeight = (emojisLength) =>\n emojisLength * EMOJI_ROW_HEIGHT + CATEGORY_ROW_HEIGHT;\n\n/**\n * Helper function to transition legacy cookie-based emoji storage to localStorage.\n * Sets localStorage to the value of the cookie and removes the cookie.\n */\nconst swapCookieToLocalStorage = () => {\n const cookieContent = getCookie(FREQUENTLY_USED_EMOJIS_STORAGE_KEY);\n localStorage.setItem(FREQUENTLY_USED_EMOJIS_STORAGE_KEY, cookieContent);\n removeCookie(FREQUENTLY_USED_EMOJIS_STORAGE_KEY);\n};\n\nexport const getFrequentlyUsedEmojis = async () => {\n let savedEmojis = localStorage.getItem(FREQUENTLY_USED_EMOJIS_STORAGE_KEY);\n\n if (!savedEmojis) {\n const savedEmojisfromCookie = getCookie(FREQUENTLY_USED_EMOJIS_STORAGE_KEY);\n\n if (!savedEmojisfromCookie) {\n return null;\n }\n savedEmojis = savedEmojisfromCookie;\n swapCookieToLocalStorage();\n }\n\n const customEmoji = await getEmojisForCategory('custom');\n const possibleEmojiNames = [...customEmoji.map((e) => e.name), ...getAllEmoji().map((e) => e.n)];\n\n const emojis = chunk(\n uniq(savedEmojis.split(',')).filter((name) => possibleEmojiNames.includes(name)),\n 9,\n );\n\n return {\n frequently_used: {\n emojis,\n top: 0,\n height: generateCategoryHeight(emojis.length),\n },\n };\n};\n\nexport const addToFrequentlyUsed = (emoji) => {\n const frequentlyUsedEmojis = uniq(\n (\n localStorage.getItem(FREQUENTLY_USED_EMOJIS_STORAGE_KEY) ||\n getCookie(FREQUENTLY_USED_EMOJIS_STORAGE_KEY) ||\n ''\n )\n .split(',')\n .filter((e) => e)\n .concat(emoji),\n );\n\n localStorage.setItem(FREQUENTLY_USED_EMOJIS_STORAGE_KEY, frequentlyUsedEmojis.join(','));\n};\n\nexport const hasFrequentlyUsedEmojis = async () => (await getFrequentlyUsedEmojis()) !== null;\n\nexport const getEmojiCategories = memoize(async () => {\n await initEmojiMap();\n\n const categories = await getEmojiCategoryMap();\n const frequentlyUsedEmojis = await getFrequentlyUsedEmojis();\n let top = frequentlyUsedEmojis\n ? frequentlyUsedEmojis.frequently_used.top + frequentlyUsedEmojis.frequently_used.height\n : 0;\n\n return Object.freeze(\n Object.keys(categories)\n .filter((c) => c !== FREQUENTLY_USED_KEY && categories[c].length)\n .reduce((acc, category) => {\n const emojis = chunk(categories[category], EMOJIS_PER_ROW);\n const height = generateCategoryHeight(emojis.length);\n const newAcc = {\n ...acc,\n [category]: { emojis, height, top },\n };\n top += height;\n\n return newAcc;\n }, frequentlyUsedEmojis || {}),\n );\n});\n","<script>\nimport { chunk } from 'lodash';\nimport { searchEmoji } from '~/emoji';\nimport { EMOJIS_PER_ROW } from '../constants';\nimport { getEmojiCategories, generateCategoryHeight } from './utils';\n\nexport default {\n props: {\n searchValue: {\n type: String,\n required: true,\n },\n },\n data() {\n return { render: false };\n },\n computed: {\n filteredCategories() {\n if (this.searchValue !== '') {\n const emojis = chunk(\n searchEmoji(this.searchValue).map(({ emoji }) => emoji.name),\n EMOJIS_PER_ROW,\n );\n\n return {\n search: { emojis, height: generateCategoryHeight(emojis.length) },\n };\n }\n\n return this.categories;\n },\n },\n async mounted() {\n this.categories = await getEmojiCategories();\n this.render = true;\n },\n};\n</script>\n\n<template>\n <div v-if=\"render\">\n <slot :filtered-categories=\"filteredCategories\"></slot>\n </div>\n</template>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./emoji_list.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./emoji_list.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./emoji_list.vue?vue&type=template&id=74b7b9e6\"\nimport script from \"./emoji_list.vue?vue&type=script&lang=js\"\nexport * from \"./emoji_list.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.render)?_c('div',[_vm._t(\"default\",null,{\"filteredCategories\":_vm.filteredCategories})],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./picker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./picker.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport {\n GlButton,\n GlDisclosureDropdown,\n GlSearchBoxByType,\n GlTooltipDirective,\n GlAnimatedSmileIcon,\n} from '@gitlab/ui';\nimport { findLastIndex } from 'lodash';\nimport VirtualList from 'vue-virtual-scroll-list';\nimport { getEmojiCategoryMap, state } from '~/emoji';\nimport { __ } from '~/locale';\nimport { CATEGORY_NAMES, CATEGORY_ICON_MAP, FREQUENTLY_USED_KEY } from '../constants';\nimport Category from './category.vue';\nimport EmojiList from './emoji_list.vue';\nimport { addToFrequentlyUsed, getEmojiCategories, hasFrequentlyUsedEmojis } from './utils';\n\nexport default {\n components: {\n GlButton,\n GlDisclosureDropdown,\n GlSearchBoxByType,\n GlAnimatedSmileIcon,\n VirtualList,\n Category,\n EmojiList,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n inject: {\n newCustomEmojiPath: {\n default: '',\n },\n },\n props: {\n toggleClass: {\n type: [Array, String, Object],\n required: false,\n default: () => [],\n },\n dropdownClass: {\n type: [Array, String, Object],\n required: false,\n default: () => [],\n },\n right: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n data() {\n return {\n isVisible: false,\n isHovered: false,\n isFocused: false,\n currentCategory: 0,\n searchValue: '',\n };\n },\n computed: {\n categoryNames() {\n return CATEGORY_NAMES.filter((c) => {\n if (c === FREQUENTLY_USED_KEY) return hasFrequentlyUsedEmojis();\n if (c === 'custom') return !state.loading && getEmojiCategoryMap().custom.length > 0;\n return true;\n }).map((category) => ({\n name: category,\n icon: CATEGORY_ICON_MAP[category],\n }));\n },\n placement() {\n return this.right ? 'bottom-end' : 'bottom-start';\n },\n newCustomEmoji() {\n return {\n text: __('Create new emoji'),\n href: this.newCustomEmojiPath,\n extraAttrs: {\n 'data-testid': 'create-new-emoji',\n },\n };\n },\n smileIcon() {\n return this.isHovered || this.isFocused || this.isVisible;\n },\n },\n methods: {\n categoryAppeared(category) {\n this.currentCategory = category;\n },\n async scrollToCategory(categoryName) {\n const categories = await getEmojiCategories();\n const { top } = categories[categoryName];\n\n this.$refs.virtualScoller.setScrollTop(top);\n },\n selectEmoji({ category, emoji }) {\n this.$emit('click', emoji);\n this.$refs.dropdown.close();\n\n if (category !== 'custom') {\n addToFrequentlyUsed(emoji);\n }\n },\n onSearchInput() {\n if (this.$refs.virtualScoller) {\n this.$refs.virtualScoller.setScrollTop(0);\n this.$refs.virtualScoller.forceRender();\n }\n },\n async onScroll(event, { offset }) {\n const categories = await getEmojiCategories();\n\n this.currentCategory = findLastIndex(Object.values(categories), ({ top }) => offset >= top);\n },\n onShow() {\n this.isVisible = true;\n this.$emit('shown');\n },\n onHide() {\n this.isVisible = false;\n this.currentCategory = 0;\n this.searchValue = '';\n this.$emit('hidden');\n },\n onButtonHovered() {\n this.isHovered = true;\n },\n onButtonHoverLeave() {\n this.isHovered = false;\n },\n onButtonFocused() {\n this.isFocused = true;\n },\n onButtonFocusLeave() {\n this.isFocused = false;\n },\n },\n i18n: {\n addReaction: __('Add reaction'),\n createEmoji: __('Create new emoji'),\n },\n};\n</script>\n\n<template>\n <div class=\"emoji-picker\">\n <gl-disclosure-dropdown\n ref=\"dropdown\"\n :class=\"dropdownClass\"\n :placement=\"placement\"\n @shown=\"onShow\"\n @hidden=\"onHide\"\n >\n <template #toggle>\n <gl-button\n v-gl-tooltip\n :title=\"$options.i18n.addReaction\"\n :class=\"[toggleClass, { 'is-active': isVisible }]\"\n class=\"add-reaction-button btn-icon gl-relative gl-h-full\"\n data-testid=\"add-reaction-button\"\n @mouseover=\"onButtonHovered\"\n @mouseleave=\"onButtonHoverLeave\"\n @focusin=\"onButtonFocused\"\n @focusout=\"onButtonFocusLeave\"\n >\n <slot name=\"button-content\">\n <gl-animated-smile-icon :is-on=\"smileIcon\" />\n </slot>\n </gl-button>\n </template>\n\n <template v-if=\"isVisible\" #header>\n <gl-search-box-by-type\n ref=\"searchValue\"\n v-model=\"searchValue\"\n class=\"add-reaction-search gl-border-b-1 gl-border-b-dropdown gl-border-b-solid\"\n borderless\n autofocus\n debounce=\"500\"\n :aria-label=\"__('Search for an emoji')\"\n @input=\"onSearchInput\"\n />\n </template>\n\n <div\n v-if=\"isVisible\"\n v-show=\"!searchValue\"\n class=\"gl-flex gl-border-b-1 gl-border-default gl-border-b-solid\"\n data-testid=\"category-buttons\"\n >\n <gl-button\n v-for=\"(category, index) in categoryNames\"\n :key=\"category.name\"\n category=\"tertiary\"\n :class=\"{ 'emoji-picker-category-active': index === currentCategory }\"\n class=\"emoji-picker-category-tab gl-grow !gl-rounded-none !gl-border-b-2 !gl-px-3 !gl-border-b-solid focus:!gl-shadow-none focus:!gl-outline focus:!gl-outline-2 focus:-gl-outline-offset-2 focus:!gl-outline-focus\"\n :icon=\"category.icon\"\n :aria-label=\"category.name\"\n @click=\"scrollToCategory(category.name)\"\n @keydown.enter=\"scrollToCategory(category.name)\"\n />\n </div>\n <emoji-list v-if=\"isVisible\" :search-value=\"searchValue\">\n <template #default=\"{ filteredCategories }\">\n <virtual-list\n ref=\"virtualScoller\"\n :size=\"258\"\n :remain=\"1\"\n :bench=\"2\"\n variable\n :onscroll=\"onScroll\"\n >\n <div\n v-for=\"(category, categoryKey) in filteredCategories\"\n :key=\"categoryKey\"\n :style=\"{ height: category.height + 'px' }\"\n >\n <category :category=\"categoryKey\" :emojis=\"category.emojis\" @click=\"selectEmoji\" />\n </div>\n </virtual-list>\n </template>\n </emoji-list>\n\n <template v-if=\"newCustomEmojiPath\" #footer>\n <div\n class=\"gl-flex gl-flex-col gl-border-t-1 gl-border-t-dropdown !gl-p-2 !gl-pt-0 gl-border-t-solid\"\n >\n <gl-button\n :href=\"newCustomEmojiPath\"\n category=\"tertiary\"\n block\n data-testid=\"create-new-emoji\"\n class=\"!gl-mt-2 !gl-justify-start\"\n >\n {{ $options.i18n.createEmoji }}\n </gl-button>\n </div>\n </template>\n </gl-disclosure-dropdown>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./picker.vue?vue&type=template&id=644b0f48\"\nimport script from \"./picker.vue?vue&type=script&lang=js\"\nexport * from \"./picker.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { __ } from '~/locale';\n\nexport const INCIDENT_TYPE_PATH = 'issues/incident';\nexport const ISSUE_STATE_EVENT_CLOSE = 'CLOSE';\nexport const ISSUE_STATE_EVENT_REOPEN = 'REOPEN';\nexport const ISSUE_TYPE_PATH = 'issues';\nexport const JOIN_ZOOM_MEETING = __('Join Zoom meeting');\nexport const POLLING_DELAY = 2000;\nexport const STATUS_PAGE_PUBLISHED = __('Published on status page');\n\nexport const issuableTypes = [\n { value: 'issue', text: __('Issue'), icon: 'issue-type-issue' },\n { value: 'incident', text: __('Incident'), icon: 'issue-type-incident' },\n];\n\nexport const issueState = {\n issueType: undefined,\n isDirty: false,\n};\n","export const ENABLE_BATCH_COMMENTS = 'ENABLE_BATCH_COMMENTS';\nexport const ADD_NEW_DRAFT = 'ADD_NEW_DRAFT';\nexport const DELETE_DRAFT = 'DELETE_DRAFT';\nexport const SET_BATCH_COMMENTS_DRAFTS = 'SET_BATCH_COMMENTS_DRAFTS';\n\nexport const REQUEST_PUBLISH_DRAFT = 'REQUEST_PUBLISH_DRAFT';\nexport const RECEIVE_PUBLISH_DRAFT_SUCCESS = 'RECEIVE_PUBLISH_DRAFT_SUCCESS';\nexport const RECEIVE_PUBLISH_DRAFT_ERROR = 'RECEIVE_PUBLISH_DRAFT_ERROR';\n\nexport const REQUEST_PUBLISH_REVIEW = 'REQUEST_PUBLISH_REVIEW';\nexport const RECEIVE_PUBLISH_REVIEW_SUCCESS = 'RECEIVE_PUBLISH_REVIEW_SUCCESS';\nexport const RECEIVE_PUBLISH_REVIEW_ERROR = 'RECEIVE_PUBLISH_REVIEW_ERROR';\n\nexport const RECEIVE_DRAFT_UPDATE_SUCCESS = 'RECEIVE_DRAFT_UPDATE_SUCCESS';\n\nexport const TOGGLE_RESOLVE_DISCUSSION = 'TOGGLE_RESOLVE_DISCUSSION';\n\nexport const CLEAR_DRAFTS = 'CLEAR_DRAFTS';\n\nexport const SET_REVIEW_BAR_RENDERED = 'SET_REVIEW_BAR_RENDERED';\n\nexport const SET_DRAFT_EDITING = 'SET_DRAFT_EDITING';\n","// Zen Mode (full screen) textarea\n//\n/*= provides zen_mode:enter */\n/*= provides zen_mode:leave */\n\nimport autosize from 'autosize';\nimport Dropzone from 'dropzone';\nimport $ from 'jquery';\nimport { Mousetrap } from '~/lib/mousetrap';\nimport 'mousetrap/plugins/pause/mousetrap-pause';\nimport { scrollToElement } from '~/lib/utils/common_utils';\n\nDropzone.autoDiscover = false;\n\n//\n// ### Events\n//\n// `zen_mode:enter`\n//\n// Fired when the \"Edit in fullscreen\" link is clicked.\n//\n// **Synchronicity** Sync\n// **Bubbles** Yes\n// **Cancelable** No\n// **Target** a.js-zen-enter\n//\n// `zen_mode:leave`\n//\n// Fired when the \"Leave Fullscreen\" link is clicked.\n//\n// **Synchronicity** Sync\n// **Bubbles** Yes\n// **Cancelable** No\n// **Target** a.js-zen-leave\n//\n\nexport default class ZenMode {\n constructor() {\n this.active_backdrop = null;\n this.active_textarea = null;\n this.storedStyle = null;\n $(document).on('click', '.js-zen-enter', (e) => {\n e.preventDefault();\n return $(e.currentTarget).trigger('zen_mode:enter');\n });\n $(document).on('click', '.js-zen-leave', (e) => {\n e.preventDefault();\n return $(e.currentTarget).trigger('zen_mode:leave');\n });\n $(document).on('zen_mode:enter', (e) => {\n this.enter($(e.target).closest('.md-area').find('.zen-backdrop'));\n });\n $(document).on('zen_mode:leave', () => {\n this.exit();\n });\n // eslint-disable-next-line consistent-return\n $(document).on('keydown', (e) => {\n // Esc\n if (e.keyCode === 27) {\n e.preventDefault();\n return $(document).trigger('zen_mode:leave');\n }\n });\n }\n\n enter(backdrop) {\n Mousetrap.pause();\n this.active_backdrop = $(backdrop);\n this.active_backdrop.addClass('fullscreen');\n this.active_textarea = this.active_backdrop.find('textarea');\n // Prevent a user-resized textarea from persisting to fullscreen\n this.storedStyle = this.active_textarea.attr('style');\n this.active_textarea.removeAttr('style');\n this.active_textarea.focus();\n }\n\n exit() {\n if (this.active_textarea) {\n Mousetrap.unpause();\n this.active_textarea.closest('.zen-backdrop').removeClass('fullscreen');\n scrollToElement(this.active_textarea, { duration: 0, offset: -100 });\n this.active_textarea.attr('style', this.storedStyle);\n\n autosize(this.active_textarea);\n autosize.update(this.active_textarea);\n\n this.active_textarea = null;\n this.active_backdrop = null;\n\n const $dropzone = $('.div-dropzone');\n if ($dropzone && !$dropzone.hasClass('js-invalid-dropzone')) {\n Dropzone.forElement('.div-dropzone').enable();\n }\n }\n }\n}\n","import fuzzaldrinPlus from 'fuzzaldrin-plus';\nimport $ from 'jquery';\nimport { debounce } from 'lodash';\nimport { isObject } from '~/lib/utils/type_utility';\n\nconst BLUR_KEYCODES = [27, 40];\n\nconst HAS_VALUE_CLASS = 'has-value';\n\nexport class GitLabDropdownFilter {\n constructor(input, options) {\n let ref;\n this.input = input;\n this.options = options;\n this.clear = this.clear.bind(this);\n // eslint-disable-next-line no-cond-assign\n this.filterInputBlur = (ref = this.options.filterInputBlur) != null ? ref : true;\n const $inputContainer = this.input.parent();\n const $clearButton = $inputContainer.find('.js-dropdown-input-clear');\n const filterRemoteDebounced = debounce(() => {\n options.instance.dropdown.trigger('filtering.gl.dropdown');\n $inputContainer.parent().addClass('is-loading');\n\n return this.options.query(this.input.val(), (data) => {\n options.instance.dropdown.trigger('done.filtering.gl.dropdown');\n $inputContainer.parent().removeClass('is-loading');\n return this.options.callback(data);\n });\n }, 500);\n\n $clearButton.on('click', this.clear);\n // Key events\n this.input\n .on('keydown', (e) => {\n const keyCode = e.which;\n if (keyCode === 13 && !options.elIsInput) {\n e.preventDefault();\n }\n })\n .on('input', () => {\n if (this.input.val() !== '' && !$inputContainer.hasClass(HAS_VALUE_CLASS)) {\n $inputContainer.addClass(HAS_VALUE_CLASS);\n } else if (this.input.val() === '' && $inputContainer.hasClass(HAS_VALUE_CLASS)) {\n $inputContainer.removeClass(HAS_VALUE_CLASS);\n }\n // Only filter asynchronously only if option remote is set\n if (this.options.remote) {\n return filterRemoteDebounced();\n }\n return this.filter(this.input.val());\n });\n }\n\n static shouldBlur(keyCode) {\n return BLUR_KEYCODES.indexOf(keyCode) !== -1;\n }\n\n // eslint-disable-next-line consistent-return\n filter(searchText) {\n let group;\n let results;\n let tmp;\n if (this.options.onFilter) {\n this.options.onFilter(searchText);\n }\n const data = this.options.data();\n if (data != null && !this.options.filterByText) {\n results = data;\n if (searchText !== '') {\n // When data is an array of objects therefore [object Array] e.g.\n // [\n // { prop: 'foo' },\n // { prop: 'baz' }\n // ]\n if (Array.isArray(data)) {\n results = fuzzaldrinPlus.filter(data, searchText, {\n key: this.options.keys,\n });\n }\n // If data is grouped therefore an [object Object]. e.g.\n // {\n // groupName1: [\n // { prop: 'foo' },\n // { prop: 'baz' }\n // ],\n // groupName2: [\n // { prop: 'abc' },\n // { prop: 'def' }\n // ]\n // }\n else if (isObject(data)) {\n results = {};\n Object.keys(data).forEach((key) => {\n group = data[key];\n tmp = fuzzaldrinPlus.filter(group, searchText, {\n key: this.options.keys,\n });\n if (tmp.length) {\n results[key] = tmp.map((item) => item);\n }\n });\n }\n }\n return this.options.callback(results);\n }\n const elements = this.options.elements();\n if (searchText) {\n // eslint-disable-next-line func-names\n elements.each(function () {\n const $el = $(this);\n const matches = fuzzaldrinPlus.match($el.text().trim(), searchText);\n if (!$el.is('.dropdown-header')) {\n if (matches.length) {\n $el.show().removeClass('option-hidden');\n } else {\n $el.hide().addClass('option-hidden');\n }\n }\n });\n } else {\n elements.show().removeClass('option-hidden');\n }\n\n elements\n .parent()\n .find('.dropdown-menu-empty-item')\n .toggleClass('hidden', elements.is(':visible'));\n }\n\n clear(e) {\n if (this.input.val() === '') return;\n if (e) {\n // Clear click\n e.preventDefault();\n e.stopPropagation();\n }\n this.input.val('').trigger('input').focus();\n }\n}\n","export class GitLabDropdownInput {\n constructor(input, options) {\n this.input = input;\n this.options = options;\n this.fieldName = this.options.fieldName || 'field-name';\n const $inputContainer = this.input.parent();\n const $clearButton = $inputContainer.find('.js-dropdown-input-clear');\n $clearButton.on('click', (e) => {\n // Clear click\n e.preventDefault();\n e.stopPropagation();\n return this.input.val('').trigger('input').focus();\n });\n\n this.input\n .on('keydown', (e) => {\n const keyCode = e.which;\n if (keyCode === 13 && !options.elIsInput) {\n e.preventDefault();\n }\n })\n .on('input', (e) => {\n let val = e.currentTarget.value || this.options.inputFieldName;\n val = val\n .split(' ')\n .join('-') // replaces space with dash\n .replace(/[^a-zA-Z0-9 -]/g, '')\n .toLowerCase() // replace non alphanumeric\n .replace(/(-)\\1+/g, '-'); // replace repeated dashes\n this.cb(this.options.fieldName, val, {}, true);\n this.input.closest('.dropdown').find('.dropdown-toggle-text').text(val);\n });\n }\n\n onInput(cb) {\n this.cb = cb;\n }\n}\n","/* eslint-disable consistent-return */\n\nimport axios from '../lib/utils/axios_utils';\n\nexport class GitLabDropdownRemote {\n constructor(dataEndpoint, options) {\n this.dataEndpoint = dataEndpoint;\n this.options = options;\n }\n\n execute() {\n if (typeof this.dataEndpoint === 'string') {\n return this.fetchData();\n }\n if (typeof this.dataEndpoint === 'function') {\n if (this.options.beforeSend) {\n this.options.beforeSend();\n }\n return this.dataEndpoint('', (data) => {\n // Fetch the data by calling the data function\n if (this.options.success) {\n this.options.success(data);\n }\n if (this.options.beforeSend) {\n return this.options.beforeSend();\n }\n });\n }\n }\n\n fetchData() {\n if (this.options.beforeSend) {\n this.options.beforeSend();\n }\n\n // Fetch the data through ajax if the data is a string\n return axios.get(this.dataEndpoint).then(({ data }) => {\n if (this.options.success) {\n return this.options.success(data);\n }\n });\n }\n}\n","import { slugify } from '~/lib/utils/text_utility';\n\nconst renderersByType = {\n divider(element) {\n element.classList.add('divider');\n\n return element;\n },\n separator(element) {\n element.classList.add('separator');\n\n return element;\n },\n header(element, data) {\n element.classList.add('dropdown-header');\n // eslint-disable-next-line no-unsanitized/property\n element.innerHTML = data.content;\n\n return element;\n },\n};\n\n// eslint-disable-next-line max-params\nfunction getPropertyWithDefault(data, options, property, defaultValue = '') {\n let result;\n\n if (options[property] != null) {\n result = options[property](data);\n } else {\n result = data[property] != null ? data[property] : defaultValue;\n }\n\n return result;\n}\n\nfunction getHighlightTextBuilder(text, data, options) {\n if (options.highlight) {\n return data.template\n ? options.highlightTemplate(text, data.template)\n : options.highlightText(text);\n }\n\n return text;\n}\n\nfunction getIconTextBuilder(text, data, options) {\n if (options.icon) {\n const wrappedText = `<span>${text}</span>`;\n return data.icon ? `${data.icon}${wrappedText}` : wrappedText;\n }\n\n return text;\n}\n\nfunction getLinkText(data, options) {\n const text = getPropertyWithDefault(data, options, 'text');\n\n return [getHighlightTextBuilder, getIconTextBuilder].reduce(\n (acc, fn) => fn(acc, data, options),\n text,\n );\n}\n\nfunction escape(text) {\n return text ? String(text).replace(/'/g, \"\\\\'\") : text;\n}\n\nfunction getOptionValue(data, options) {\n if (options.renderRow) {\n return undefined;\n }\n\n return escape(options.id ? options.id(data) : data.id);\n}\n\nfunction shouldHide(data, { options }) {\n const value = getOptionValue(data, options);\n\n return options.hideRow && options.hideRow(value);\n}\n\nfunction hideElement(element) {\n element.style.display = 'none';\n\n return element;\n}\n\nfunction checkSelected(data, options) {\n const value = getOptionValue(data, options);\n\n if (!options.parent) {\n return !data.id;\n }\n if (value) {\n return (\n options.parent.querySelector(`input[name='${options.fieldName}'][value='${value}']`) != null\n );\n }\n\n return options.parent.querySelector(`input[name='${options.fieldName}']`) == null;\n}\n\n// eslint-disable-next-line max-params\nfunction createLink(data, selected, options, index) {\n const link = document.createElement('a');\n\n link.href = getPropertyWithDefault(data, options, 'url', '#');\n\n if (options.icon) {\n link.classList.add('gl-flex', 'align-items-center');\n }\n\n if (options.trackSuggestionClickedLabel) {\n link.dataset.trackAction = 'click_text';\n link.dataset.trackLabel = options.trackSuggestionClickedLabel;\n link.dataset.trackValue = index;\n link.dataset.trackProperty = slugify(data.category || 'no-category');\n }\n\n link.classList.toggle('is-active', selected);\n\n return link;\n}\n\nfunction assignTextToLink(el, data, options) {\n const text = getLinkText(data, options);\n\n if (options.icon || options.highlight) {\n // eslint-disable-next-line no-unsanitized/property\n el.innerHTML = text;\n } else {\n el.textContent = text;\n }\n\n return el;\n}\n\nfunction renderLink(row, data, { options, group, index }) {\n const selected = checkSelected(data, options);\n const link = createLink(data, selected, options, index);\n\n assignTextToLink(link, data, options);\n\n if (group) {\n link.dataset.group = group;\n link.dataset.index = index;\n }\n\n row.appendChild(link);\n\n return row;\n}\n\nfunction getOptionRenderer({ options, instance }) {\n return options.renderRow && ((li, data, params) => options.renderRow(data, instance, params));\n}\n\nfunction getRenderer(data, params) {\n return renderersByType[data.type] || getOptionRenderer(params) || renderLink;\n}\n\nexport default function item({ data, ...params }) {\n const renderer = getRenderer(data, params);\n const li = document.createElement('li');\n\n if (shouldHide(data, params)) {\n hideElement(li);\n }\n\n return renderer(li, data, params);\n}\n","/* eslint-disable consistent-return */\nimport fuzzaldrinPlus from 'fuzzaldrin-plus';\nimport $ from 'jquery';\nimport { escape } from 'lodash';\nimport { isObject } from '~/lib/utils/type_utility';\nimport { visitUrl } from '~/lib/utils/url_utility';\nimport { GitLabDropdownFilter } from './gl_dropdown_filter';\nimport { GitLabDropdownInput } from './gl_dropdown_input';\nimport { GitLabDropdownRemote } from './gl_dropdown_remote';\nimport renderItem from './render';\n\nconst LOADING_CLASS = 'is-loading';\n\nconst PAGE_TWO_CLASS = 'is-page-two';\n\nconst ACTIVE_CLASS = 'is-active';\n\nconst INDETERMINATE_CLASS = 'is-indeterminate';\n\nlet currentIndex = -1;\n\nconst NON_SELECTABLE_CLASSES = '.divider, .separator, .dropdown-header, .dropdown-menu-empty-item';\n\nconst SELECTABLE_CLASSES = `.dropdown-content li:not(${NON_SELECTABLE_CLASSES}, .option-hidden)`;\n\nconst CURSOR_SELECT_SCROLL_PADDING = 5;\n\nconst FILTER_INPUT = '.dropdown-input .dropdown-input-field:not(.dropdown-no-filter)';\n\nconst NO_FILTER_INPUT = '.dropdown-input .dropdown-input-field.dropdown-no-filter';\n\nlet mouseEventListenersAdded = false;\nlet mousedownTarget = null;\nlet mouseupTarget = null;\n\nfunction addGlobalMouseEventListeners() {\n // Remember mousedown and mouseup locations.\n // Required in the `hide.bs.dropdown` listener for\n // dropdown close prevention in some cases.\n document.addEventListener('mousedown', ({ target }) => {\n mousedownTarget = target;\n });\n document.addEventListener('mouseup', ({ target }) => {\n mouseupTarget = target;\n });\n document.addEventListener('click', () => {\n mousedownTarget = null;\n mouseupTarget = null;\n });\n}\n\nexport class GitLabDropdown {\n constructor(el1, options) {\n let selector;\n let self;\n this.el = el1;\n this.options = options;\n this.updateLabel = this.updateLabel.bind(this);\n this.opened = this.opened.bind(this);\n this.hide = this.hide.bind(this);\n this.hidden = this.hidden.bind(this);\n this.shouldPropagate = this.shouldPropagate.bind(this);\n if (!mouseEventListenersAdded) {\n addGlobalMouseEventListeners();\n mouseEventListenersAdded = true;\n }\n self = this;\n selector = $(this.el).data('target');\n this.dropdown = selector != null ? $(selector) : $(this.el).parent();\n // Set Defaults\n this.filterInput = this.options.filterInput || this.getElement(FILTER_INPUT);\n this.noFilterInput = this.options.noFilterInput || this.getElement(NO_FILTER_INPUT);\n this.highlight = Boolean(this.options.highlight);\n this.icon = Boolean(this.options.icon);\n this.filterInputBlur =\n this.options.filterInputBlur != null ? this.options.filterInputBlur : true;\n // If no input is passed create a default one\n self = this;\n // If selector was passed\n if (typeof this.filterInput === 'string') {\n this.filterInput = this.getElement(this.filterInput);\n }\n const searchFields = this.options.search ? this.options.search.fields : [];\n if (this.options.data) {\n // If we provided data\n // data could be an array of objects or a group of arrays\n if (typeof this.options.data === 'object' && !(this.options.data instanceof Function)) {\n this.fullData = this.options.data;\n currentIndex = -1;\n this.parseData(this.options.data);\n this.focusTextInput();\n } else {\n this.remote = new GitLabDropdownRemote(this.options.data, {\n dataType: this.options.dataType,\n beforeSend: this.toggleLoading.bind(this),\n success: (data) => {\n this.dropdown.trigger('done.remote.loading.gl.dropdown');\n this.fullData = data;\n this.parseData(this.fullData);\n this.focusTextInput();\n\n // Update dropdown position since remote data may have changed dropdown size\n this.dropdown.find('.dropdown-menu-toggle').dropdown('update');\n\n if (\n this.options.filterable &&\n this.filter &&\n this.filter.input &&\n this.filter.input.val() &&\n this.filter.input.val().trim() !== ''\n ) {\n return this.filter.input.trigger('input');\n }\n },\n instance: this,\n });\n }\n }\n if (this.noFilterInput.length) {\n this.plainInput = new GitLabDropdownInput(this.noFilterInput, this.options);\n this.plainInput.onInput(this.addInput.bind(this));\n }\n // Init filterable\n if (this.options.filterable) {\n this.filter = new GitLabDropdownFilter(this.filterInput, {\n elIsInput: $(this.el).is('input'),\n filterInputBlur: this.filterInputBlur,\n filterByText: this.options.filterByText,\n onFilter: this.options.onFilter,\n remote: this.options.filterRemote,\n query: this.options.data,\n keys: searchFields,\n instance: this,\n elements: () => {\n selector = `.dropdown-content li:not(${NON_SELECTABLE_CLASSES})`;\n if (this.dropdown.find('.dropdown-toggle-page').length) {\n selector = `.dropdown-page-one ${selector}`;\n }\n return $(selector, this.dropdown);\n },\n data: () => this.fullData,\n callback: (data) => {\n this.parseData(data);\n if (this.filterInput.val() !== '') {\n selector = SELECTABLE_CLASSES;\n if (this.dropdown.find('.dropdown-toggle-page').length) {\n selector = `.dropdown-page-one ${selector}`;\n }\n if ($(this.el).is('input')) {\n currentIndex = -1;\n } else {\n $(selector, this.dropdown).first().find('a').addClass('is-focused');\n currentIndex = 0;\n }\n }\n },\n });\n }\n // Event listeners\n this.dropdown.on('shown.bs.dropdown', this.opened);\n this.dropdown.on('hide.bs.dropdown', this.hide);\n this.dropdown.on('hidden.bs.dropdown', this.hidden);\n $(this.el).on('update.label', this.updateLabel);\n this.dropdown.on('click', '.dropdown-menu, .dropdown-menu-close', this.shouldPropagate);\n this.dropdown.on('keyup', (e) => {\n // Escape key\n if (e.which === 27) {\n return $('.dropdown-menu-close', this.dropdown).trigger('click');\n }\n });\n this.dropdown.on('blur', 'a', (e) => {\n let $dropdownMenu;\n let $relatedTarget;\n if (e.relatedTarget != null) {\n $relatedTarget = $(e.relatedTarget);\n $dropdownMenu = $relatedTarget.closest('.dropdown-menu');\n if ($dropdownMenu.length === 0) {\n return this.dropdown.removeClass('show');\n }\n }\n });\n if (this.dropdown.find('.dropdown-toggle-page').length) {\n this.dropdown.find('.dropdown-toggle-page, .dropdown-menu-back').on('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n return this.togglePage();\n });\n }\n if (this.options.selectable) {\n selector = '.dropdown-content a';\n if (this.dropdown.find('.dropdown-toggle-page').length) {\n selector = '.dropdown-page-one .dropdown-content a';\n }\n this.dropdown.on('click', selector, (e) => {\n const $el = $(e.currentTarget);\n const selected = self.rowClicked($el);\n const selectedObj = selected ? selected[0] : null;\n const isMarking = selected ? selected[1] : null;\n if (this.options.clicked) {\n this.options.clicked.call(this, {\n selectedObj,\n $el,\n e,\n isMarking,\n });\n }\n\n // Update label right after all modifications in dropdown has been done\n if (this.options.toggleLabel) {\n this.updateLabel(selectedObj, $el, this);\n }\n\n $el.trigger('blur');\n });\n }\n }\n\n // Finds an element inside wrapper element\n getElement(selector) {\n return this.dropdown.find(selector);\n }\n\n toggleLoading() {\n const menu = this.dropdown[0].querySelector('.dropdown-menu');\n const isLoading = menu.classList.contains(LOADING_CLASS);\n\n this.dropdown.trigger(`toggle.${isLoading ? 'off' : 'on'}.loading.gl.dropdown`);\n\n menu.classList.toggle(LOADING_CLASS);\n }\n\n togglePage() {\n const menu = $('.dropdown-menu', this.dropdown);\n if (menu.hasClass(PAGE_TWO_CLASS)) {\n if (this.remote) {\n this.remote.execute();\n }\n }\n menu.toggleClass(PAGE_TWO_CLASS);\n // Focus first visible input on active page\n return this.dropdown.find('[class^=\"dropdown-page-\"]:visible :text:visible:first').focus();\n }\n\n parseData(data) {\n let groupData;\n let html;\n this.renderedData = data;\n if (this.options.filterable && data.length === 0) {\n // render no matching results\n html = [this.noResults()];\n }\n // Handle array groups\n else if (isObject(data)) {\n html = [];\n\n Object.keys(data).forEach((name) => {\n groupData = data[name];\n html.push(\n this.renderItem(\n {\n content: name,\n type: 'header',\n },\n name,\n ),\n );\n this.renderData(groupData, name).map((item) => html.push(item));\n });\n } else {\n // Render each row\n html = this.renderData(data);\n }\n // Render the full menu\n const fullHtml = this.renderMenu(html);\n return this.appendMenu(fullHtml);\n }\n\n renderData(data, group) {\n return data.map((obj, index) => this.renderItem(obj, group || false, index));\n }\n\n shouldPropagate(e) {\n let $target;\n if (this.options.multiSelect || this.options.shouldPropagate === false) {\n $target = $(e.target);\n if (\n $target &&\n !$target.hasClass('dropdown-menu-close') &&\n !$target.hasClass('dropdown-menu-close-icon') &&\n !$target.is('use') &&\n !$target.data('isLink')\n ) {\n e.stopPropagation();\n\n // This prevents automatic scrolling to the top\n if ($target.closest('a').length) {\n return false;\n }\n }\n\n return true;\n }\n }\n\n filteredFullData() {\n return this.fullData.filter(\n (r) =>\n typeof r === 'object' &&\n !Object.prototype.hasOwnProperty.call(r, 'beforeDivider') &&\n !Object.prototype.hasOwnProperty.call(r, 'header'),\n );\n }\n\n opened(e) {\n this.resetRows();\n this.addArrowKeyEvent();\n\n const dropdownToggle = this.dropdown.find('.dropdown-menu-toggle');\n const hasFilterBulkUpdate = dropdownToggle.hasClass('js-filter-bulk-update');\n const shouldRefreshOnOpen = dropdownToggle.hasClass('js-gl-dropdown-refresh-on-open');\n const hasMultiSelect = dropdownToggle.hasClass('js-multiselect');\n\n // Makes indeterminate items effective\n if (this.fullData && (shouldRefreshOnOpen || hasFilterBulkUpdate)) {\n this.parseData(this.fullData);\n }\n\n // Process the data to make sure rendered data\n // matches the correct layout\n const inputValue = this.filterInput.val();\n if (this.fullData && hasMultiSelect && this.options.processData && inputValue.length === 0) {\n this.options.processData.call(\n this.options,\n inputValue,\n this.filteredFullData(),\n this.parseData.bind(this),\n );\n }\n\n const contentHtml = $('.dropdown-content', this.dropdown).html();\n if (this.remote && contentHtml === '') {\n this.remote.execute();\n } else {\n this.focusTextInput();\n }\n\n if (this.options.showMenuAbove) {\n this.positionMenuAbove();\n }\n\n if (this.options.opened) {\n if (this.options.preserveContext) {\n this.options.opened(e);\n } else {\n this.options.opened.call(this, e);\n }\n }\n\n return this.dropdown.trigger('shown.gl.dropdown');\n }\n\n positionMenuAbove() {\n const $menu = this.dropdown.find('.dropdown-menu');\n\n $menu.addClass('dropdown-open-top');\n $menu.css('top', 'initial');\n $menu.css('bottom', '100%');\n }\n\n hide(e) {\n // Prevent dropdowns with a search from being closed when the\n // mousedown event happened inside the dropdown box and only\n // the mouseup event did not.\n if (this.options.search && mousedownTarget) {\n const isIn = (element, $possibleContainer) => Boolean($possibleContainer.has(element).length);\n const $menu = this.dropdown.find('.dropdown-menu');\n const mousedownInsideDropdown = isIn(mousedownTarget, $menu);\n const mouseupOutsideDropdown = !isIn(mouseupTarget, $menu);\n if (mousedownInsideDropdown && mouseupOutsideDropdown) {\n e.preventDefault();\n }\n }\n }\n\n hidden(e) {\n this.resetRows();\n this.removeArrowKeyEvent();\n const $input = this.dropdown.find('.dropdown-input-field');\n if (this.options.filterable) {\n $input.blur();\n }\n if (this.dropdown.find('.dropdown-toggle-page').length) {\n $('.dropdown-menu', this.dropdown).removeClass(PAGE_TWO_CLASS);\n }\n if (this.options.hidden) {\n this.options.hidden.call(this, e);\n }\n return this.dropdown.trigger('hidden.gl.dropdown');\n }\n\n // Render the full menu\n renderMenu(html) {\n if (this.options.renderMenu) {\n return this.options.renderMenu(html);\n }\n return $('<ul>').append(html);\n }\n\n // Append the menu into the dropdown\n appendMenu(html) {\n return this.clearMenu().append(html);\n }\n\n clearMenu() {\n let selector = '.dropdown-content';\n if (this.dropdown.find('.dropdown-toggle-page').length) {\n if (this.options.containerSelector) {\n selector = this.options.containerSelector;\n } else {\n selector = '.dropdown-page-one .dropdown-content';\n }\n }\n\n return $(selector, this.dropdown).empty();\n }\n\n renderItem(data, group, index) {\n let parent;\n\n if (this.dropdown && this.dropdown[0]) {\n parent = this.dropdown[0].parentNode;\n }\n\n return renderItem({\n instance: this,\n options: {\n ...this.options,\n icon: this.icon,\n highlight: this.highlight,\n highlightText: (text) => this.highlightTextMatches(text, this.filterInput.val()),\n highlightTemplate: this.highlightTemplate.bind(this),\n parent,\n },\n data,\n group,\n index,\n });\n }\n\n // eslint-disable-next-line class-methods-use-this\n highlightTemplate(text, template) {\n return `\"<b>${escape(text)}</b>\" ${template}`;\n }\n\n // eslint-disable-next-line class-methods-use-this\n highlightTextMatches(text, term) {\n const occurrences = fuzzaldrinPlus.match(text, term);\n const { indexOf } = [];\n\n return text\n .split('')\n .map((character, i) => {\n if (indexOf.call(occurrences, i) !== -1) {\n return `<b>${character}</b>`;\n }\n return character;\n })\n .join('');\n }\n\n // eslint-disable-next-line class-methods-use-this\n noResults() {\n return '<li class=\"dropdown-menu-empty-item\"><a>No matching results</a></li>';\n }\n\n rowClicked(el) {\n let field;\n let groupName;\n let selectedIndex;\n let selectedObject;\n let isMarking;\n const { fieldName } = this.options;\n const isInput = $(this.el).is('input');\n if (this.renderedData) {\n groupName = el.data('group');\n if (groupName) {\n selectedIndex = el.data('index');\n this.selectedIndex = selectedIndex;\n selectedObject = this.renderedData[groupName][selectedIndex];\n } else {\n selectedIndex = el.closest('li').index();\n this.selectedIndex = selectedIndex;\n selectedObject = this.renderedData[selectedIndex];\n }\n }\n\n if (this.options.vue) {\n if (el.hasClass(ACTIVE_CLASS)) {\n el.removeClass(ACTIVE_CLASS);\n } else {\n el.addClass(ACTIVE_CLASS);\n }\n\n return [selectedObject];\n }\n\n field = [];\n const value = this.options.id ? this.options.id(selectedObject, el) : selectedObject.id;\n if (isInput) {\n field = $(this.el);\n } else if (value != null) {\n field = this.dropdown\n .parent()\n .find(`input[name='${fieldName}'][value='${value.toString().replace(/'/g, \"\\\\'\")}']`);\n }\n\n if (this.options.isSelectable && !this.options.isSelectable(selectedObject, el)) {\n return [selectedObject];\n }\n\n if (el.hasClass(ACTIVE_CLASS) && value !== 0) {\n isMarking = false;\n el.removeClass(ACTIVE_CLASS);\n if (field && field.length) {\n this.clearField(field, isInput);\n }\n } else if (el.hasClass(INDETERMINATE_CLASS)) {\n isMarking = true;\n el.addClass(ACTIVE_CLASS);\n el.removeClass(INDETERMINATE_CLASS);\n if (field && field.length && value == null) {\n this.clearField(field, isInput);\n }\n if ((!field || !field.length) && fieldName) {\n this.addInput(fieldName, value, selectedObject);\n }\n } else {\n isMarking = true;\n if (!this.options.multiSelect || el.hasClass('dropdown-clear-active')) {\n this.dropdown.find(`.${ACTIVE_CLASS}`).removeClass(ACTIVE_CLASS);\n if (!isInput) {\n this.dropdown.parent().find(`input[name='${fieldName}']`).remove();\n }\n }\n if (field && field.length && value == null) {\n this.clearField(field, isInput);\n }\n // Toggle active class for the tick mark\n el.addClass(ACTIVE_CLASS);\n if (value != null) {\n if ((!field || !field.length) && fieldName) {\n this.addInput(fieldName, value, selectedObject);\n } else if (field && field.length) {\n field.val(value).trigger('change');\n }\n }\n }\n\n return [selectedObject, isMarking];\n }\n\n focusTextInput() {\n if (this.options.filterable) {\n const initialScrollTop = $(window).scrollTop();\n\n if (this.dropdown.is('.show') && !this.filterInput.is(':focus')) {\n this.filterInput.focus();\n }\n\n if ($(window).scrollTop() < initialScrollTop) {\n $(window).scrollTop(initialScrollTop);\n }\n }\n }\n\n // eslint-disable-next-line max-params\n addInput(fieldName, value, selectedObject, single) {\n // Create hidden input for form\n if (single) {\n $(`input[name=\"${fieldName}\"]`).remove();\n }\n\n const $input = $('<input>').attr('type', 'hidden').attr('name', fieldName).val(value);\n if (this.options.inputId != null) {\n $input.attr('id', this.options.inputId);\n }\n\n if (this.options.multiSelect) {\n Object.keys(selectedObject).forEach((attribute) => {\n $input.attr(`data-${attribute}`, selectedObject[attribute]);\n });\n }\n\n if (this.options.inputMeta) {\n $input.attr('data-meta', selectedObject[this.options.inputMeta]);\n }\n\n this.dropdown.before($input).trigger('change');\n }\n\n selectRowAtIndex(index) {\n // If we pass an option index\n let selector;\n if (typeof index !== 'undefined') {\n selector = `${SELECTABLE_CLASSES}:eq(${index}) a`;\n } else {\n selector = '.dropdown-content .is-focused';\n }\n if (this.dropdown.find('.dropdown-toggle-page').length) {\n selector = `.dropdown-page-one ${selector}`;\n }\n // simulate a click on the first link\n const $el = $(selector, this.dropdown);\n if ($el.length) {\n const href = $el.attr('href');\n if (href && href !== '#') {\n visitUrl(href);\n } else {\n $el.trigger('click');\n }\n }\n }\n\n addArrowKeyEvent() {\n const ARROW_KEY_CODES = [38, 40];\n let selector = SELECTABLE_CLASSES;\n if (this.dropdown.find('.dropdown-toggle-page').length) {\n selector = `.dropdown-page-one ${selector}`;\n }\n return $('body').on('keydown', (e) => {\n let $listItems;\n let PREV_INDEX;\n const currentKeyCode = e.which;\n if (ARROW_KEY_CODES.indexOf(currentKeyCode) !== -1) {\n e.preventDefault();\n e.stopImmediatePropagation();\n PREV_INDEX = currentIndex;\n $listItems = $(selector, this.dropdown);\n // if @options.filterable\n // $input.blur()\n if (currentKeyCode === 40) {\n // Move down\n if (currentIndex < $listItems.length - 1) {\n currentIndex += 1;\n }\n } else if (currentKeyCode === 38) {\n // Move up\n if (currentIndex > 0) {\n currentIndex -= 1;\n }\n }\n if (currentIndex !== PREV_INDEX) {\n this.highlightRowAtIndex($listItems, currentIndex);\n }\n return false;\n }\n if (currentKeyCode === 13 && currentIndex !== -1) {\n e.preventDefault();\n this.selectRowAtIndex();\n }\n });\n }\n\n // eslint-disable-next-line class-methods-use-this\n removeArrowKeyEvent() {\n // eslint-disable-next-line @gitlab/no-global-event-off\n return $('body').off('keydown');\n }\n\n resetRows() {\n currentIndex = -1;\n $('.is-focused', this.dropdown).removeClass('is-focused');\n }\n\n highlightRowAtIndex($listItems, index) {\n if (!$listItems) {\n // eslint-disable-next-line no-param-reassign\n $listItems = $(SELECTABLE_CLASSES, this.dropdown);\n }\n\n // Remove the class for the previously focused row\n $('.is-focused', this.dropdown).removeClass('is-focused');\n // Update the class for the row at the specific index\n const $listItem = $listItems.eq(index);\n $listItem.find('a:first-child').addClass('is-focused');\n // Dropdown content scroll area\n const $dropdownContent = $listItem.closest('.dropdown-content');\n const dropdownScrollTop = $dropdownContent.scrollTop();\n const dropdownContentHeight = $dropdownContent.outerHeight();\n const dropdownContentTop = $dropdownContent.prop('offsetTop');\n const dropdownContentBottom = dropdownContentTop + dropdownContentHeight;\n // Get the offset bottom of the list item\n const listItemHeight = $listItem.outerHeight();\n const listItemTop = $listItem.prop('offsetTop');\n const listItemBottom = listItemTop + listItemHeight;\n if (!index) {\n // Scroll the dropdown content to the top\n $dropdownContent.scrollTop(0);\n } else if (index === $listItems.length - 1) {\n // Scroll the dropdown content to the bottom\n $dropdownContent.scrollTop($dropdownContent.prop('scrollHeight'));\n } else if (listItemBottom > dropdownContentBottom + dropdownScrollTop) {\n // Scroll the dropdown content down\n $dropdownContent.scrollTop(\n listItemBottom - dropdownContentBottom + CURSOR_SELECT_SCROLL_PADDING,\n );\n } else if (listItemTop < dropdownContentTop + dropdownScrollTop) {\n // Scroll the dropdown content up\n return $dropdownContent.scrollTop(\n listItemTop - dropdownContentTop - CURSOR_SELECT_SCROLL_PADDING,\n );\n }\n }\n\n updateLabel(selected = null, el = null, instance = null) {\n let toggleText = this.options.toggleLabel(selected, el, instance);\n if (this.options.updateLabel) {\n // Option to override the dropdown label text\n toggleText = this.options.updateLabel;\n }\n\n return $(this.el).find('.dropdown-toggle-text').text(toggleText);\n }\n\n // eslint-disable-next-line class-methods-use-this\n clearField(field, isInput) {\n return isInput ? field.val('') : field.remove();\n }\n\n close() {\n this.dropdown.find('.dropdown-menu-toggle').dropdown('hide');\n }\n}\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-table',{staticClass:\"alert-management-details-table\",attrs:{\"busy\":_vm.loading,\"empty-text\":_vm.s__('AlertManagement|No alert data to display.'),\"items\":_vm.items,\"fields\":_vm.$options.fields,\"show-empty\":\"\"},scopedSlots:_vm._u([{key:\"table-busy\",fn:function(){return [_c('gl-loading-icon',{staticClass:\"gl-mt-5\",attrs:{\"size\":\"lg\",\"color\":\"dark\"}})]},proxy:true},{key:\"cell(value)\",fn:function({ item: { value } }){return [(!_vm.isValidLink(value))?_c('span',[_vm._v(_vm._s(value))]):_c('gl-link',{attrs:{\"href\":value,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(value)+\"\\n \")])]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlLink, GlLoadingIcon, GlTable } from '@gitlab/ui';\nimport { reduce } from 'lodash';\nimport {\n capitalizeFirstCharacter,\n convertToSentenceCase,\n splitCamelCase,\n} from '~/lib/utils/text_utility';\nimport { isValidURL } from '~/lib/utils/url_utility';\nimport { s__ } from '~/locale';\nimport { PAGE_CONFIG } from '~/vue_shared/alert_details/constants';\n\nconst allowedFields = [\n 'iid',\n 'title',\n 'severity',\n 'status',\n 'startedAt',\n 'eventCount',\n 'monitoringTool',\n 'service',\n 'description',\n 'endedAt',\n 'details',\n 'hosts',\n 'environment',\n];\n\nexport default {\n components: {\n GlLink,\n GlLoadingIcon,\n GlTable,\n },\n props: {\n alert: {\n type: Object,\n required: false,\n default: null,\n },\n loading: {\n type: Boolean,\n required: true,\n },\n statuses: {\n type: Object,\n required: false,\n default: () => PAGE_CONFIG.OPERATIONS.STATUSES,\n },\n },\n fields: [\n {\n key: 'fieldName',\n label: s__('AlertManagement|Key'),\n formatter: (string) =>\n capitalizeFirstCharacter(convertToSentenceCase(splitCamelCase(string))),\n },\n {\n key: 'value',\n thClass: 'w-60p',\n label: s__('AlertManagement|Value'),\n },\n ],\n computed: {\n items() {\n if (!this.alert) {\n return [];\n }\n return reduce(\n this.alert,\n (allowedItems, fieldValue, fieldName) => {\n if (this.isAllowed(fieldName)) {\n let value;\n if (fieldName === 'environment') {\n value = fieldValue?.name;\n } else if (fieldName === 'status') {\n value = this.statuses[fieldValue] || fieldValue;\n } else {\n value = fieldValue;\n }\n return [...allowedItems, { fieldName, value }];\n }\n return allowedItems;\n },\n [],\n );\n },\n },\n methods: {\n isAllowed(fieldName) {\n return allowedFields.includes(fieldName);\n },\n isValidLink(value) {\n return typeof value === 'string' && isValidURL(value);\n },\n },\n};\n</script>\n<template>\n <gl-table\n class=\"alert-management-details-table\"\n :busy=\"loading\"\n :empty-text=\"s__('AlertManagement|No alert data to display.')\"\n :items=\"items\"\n :fields=\"$options.fields\"\n show-empty\n >\n <template #table-busy>\n <gl-loading-icon size=\"lg\" color=\"dark\" class=\"gl-mt-5\" />\n </template>\n <template #cell(value)=\"{ item: { value } }\">\n <span v-if=\"!isValidLink(value)\">{{ value }}</span>\n <gl-link v-else :href=\"value\" target=\"_blank\">\n {{ value }}\n </gl-link>\n </template>\n </gl-table>\n</template>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./alert_details_table.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./alert_details_table.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./alert_details_table.vue?vue&type=template&id=345a81f0\"\nimport script from \"./alert_details_table.vue?vue&type=script&lang=js\"\nexport * from \"./alert_details_table.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\nfunction isNull(value) {\n return value === null;\n}\n\nmodule.exports = isNull;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"epicAncestors\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ancestors\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasParent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"url\"},\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":289}};\n doc.loc.source = {\"body\":\"query epicAncestors($fullPath: ID!, $iid: ID) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n issuable: epic(iid: $iid) {\\n id\\n ancestors {\\n nodes {\\n id\\n title\\n state\\n hasParent\\n url: webUrl\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"epicAncestors\"] = oneQuery(doc, \"epicAncestors\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardScopeFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Board\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hideBacklogList\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hideClosedList\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignee\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"milestone\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iteration\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadence\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"durationInWeeks\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":426}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/label.fragment.graphql\\\"\\n\\nfragment BoardScopeFragment on Board {\\n id\\n name\\n hideBacklogList\\n hideClosedList\\n assignee {\\n ...User\\n }\\n milestone {\\n id\\n title\\n }\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n iteration {\\n id\\n title\\n }\\n iterationCadence {\\n id\\n title\\n durationInWeeks\\n }\\n weight\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/label.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"BoardScopeFragment\"] = oneQuery(doc, \"BoardScopeFragment\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button-group',{staticClass:\"js-comment-button js-comment-submit-button comment-type-dropdown gl-mb-3 gl-w-full sm:gl-mb-0 sm:gl-w-auto\",attrs:{\"data-track-label\":_vm.trackingLabel,\"data-track-action\":\"click_button\",\"data-testid\":\"comment-button\"}},[_c('gl-button',{attrs:{\"type\":\"submit\",\"variant\":\"confirm\",\"disabled\":_vm.disabled},on:{\"click\":_vm.handleClick}},[_vm._v(\"\\n \"+_vm._s(_vm.commentButtonTitle)+\"\\n \")]),_vm._v(\" \"),_c('gl-collapsible-listbox',{attrs:{\"variant\":\"confirm\",\"text-sr-only\":\"\",\"toggle-text\":_vm.$options.i18n.toggleSrText,\"disabled\":_vm.disabled,\"items\":_vm.dropdownItems,\"selected\":_vm.noteType},on:{\"select\":_vm.setNoteType},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('div',{attrs:{\"data-testid\":item.testid}},[_c('strong',[_vm._v(_vm._s(item.text))]),_vm._v(\" \"),_c('p',{staticClass:\"gl-m-0\"},[_vm._v(_vm._s(item.description))])])]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comment_type_dropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comment_type_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport { GlButtonGroup, GlButton, GlCollapsibleListbox } from '@gitlab/ui';\n\nimport { sprintf, __ } from '~/locale';\nimport { COMMENT_FORM } from '~/notes/i18n';\nimport * as constants from '../constants';\n\nexport default {\n name: 'CommentTypeDropdown',\n i18n: {\n ...COMMENT_FORM,\n toggleSrText: __('Comment type'),\n },\n components: {\n GlButtonGroup,\n GlButton,\n GlCollapsibleListbox,\n },\n model: {\n prop: 'noteType',\n event: 'change',\n },\n props: {\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n trackingLabel: {\n type: String,\n required: false,\n default: undefined,\n },\n discussionsRequireResolution: {\n type: Boolean,\n required: false,\n default: false,\n },\n isInternalNote: {\n type: Boolean,\n required: false,\n default: false,\n },\n noteableDisplayName: {\n type: String,\n required: true,\n },\n noteType: {\n type: String,\n required: true,\n },\n isReviewDropdown: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n isNoteTypeComment() {\n return this.noteType === constants.COMMENT;\n },\n isNoteTypeDiscussion() {\n return this.noteType === constants.DISCUSSION;\n },\n dropdownCommentButtonTitle() {\n const { comment, internalComment } = this.$options.i18n.submitButton;\n\n return this.isInternalNote ? internalComment : comment;\n },\n dropdownStartThreadButtonTitle() {\n const { startThread, startInternalThread } = this.$options.i18n.submitButton;\n\n return this.isInternalNote ? startInternalThread : startThread;\n },\n commentButtonTitle() {\n const { comment, internalComment, startThread, startInternalThread } = this.$options.i18n;\n const { saveThread, saveComment } = this.$options.i18n.addToReviewButton;\n\n if (this.isInternalNote) {\n return this.noteType === constants.COMMENT ? internalComment : startInternalThread;\n }\n\n if (this.isReviewDropdown) {\n return this.noteType === constants.COMMENT ? saveComment : saveThread;\n }\n\n return this.noteType === constants.COMMENT ? comment : startThread;\n },\n startDiscussionDescription() {\n const {\n discussionThatNeedsResolution,\n internalDiscussionThatNeedsResolution,\n discussion,\n internalDiscussion,\n } = this.$options.i18n;\n\n if (this.isInternalNote) {\n return this.discussionsRequireResolution\n ? internalDiscussionThatNeedsResolution\n : internalDiscussion;\n }\n return this.discussionsRequireResolution ? discussionThatNeedsResolution : discussion;\n },\n commentDescription() {\n const { commentHelp, internalCommentHelp } = this.$options.i18n.submitButton;\n\n return sprintf(this.isInternalNote ? internalCommentHelp : commentHelp, {\n noteableDisplayName: this.noteableDisplayName,\n });\n },\n dropdownItems() {\n return [\n {\n text: this.dropdownCommentButtonTitle,\n description: this.commentDescription,\n value: constants.COMMENT,\n },\n {\n text: this.dropdownStartThreadButtonTitle,\n description: this.startDiscussionDescription,\n value: constants.DISCUSSION,\n testid: 'discussion-menu-item',\n },\n ];\n },\n },\n methods: {\n handleClick() {\n this.$emit('click');\n },\n setNoteType(value) {\n this.$emit('change', value);\n },\n },\n};\n</script>\n\n<template>\n <gl-button-group\n class=\"js-comment-button js-comment-submit-button comment-type-dropdown gl-mb-3 gl-w-full sm:gl-mb-0 sm:gl-w-auto\"\n :data-track-label=\"trackingLabel\"\n data-track-action=\"click_button\"\n data-testid=\"comment-button\"\n >\n <gl-button type=\"submit\" variant=\"confirm\" :disabled=\"disabled\" @click=\"handleClick\">\n {{ commentButtonTitle }}\n </gl-button>\n <gl-collapsible-listbox\n variant=\"confirm\"\n text-sr-only\n :toggle-text=\"$options.i18n.toggleSrText\"\n :disabled=\"disabled\"\n :items=\"dropdownItems\"\n :selected=\"noteType\"\n @select=\"setNoteType\"\n >\n <template #list-item=\"{ item }\">\n <div :data-testid=\"item.testid\">\n <strong>{{ item.text }}</strong>\n <p class=\"gl-m-0\">{{ item.description }}</p>\n </div>\n </template>\n </gl-collapsible-listbox>\n </gl-button-group>\n</template>\n","import { render, staticRenderFns } from \"./comment_type_dropdown.vue?vue&type=template&id=63ac1d67\"\nimport script from \"./comment_type_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./comment_type_dropdown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestSubscribed\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribed\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":191}};\n doc.loc.source = {\"body\":\"query mergeRequestSubscribed($fullPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: mergeRequest(iid: $iid) {\\n id\\n subscribed\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"mergeRequestSubscribed\"] = oneQuery(doc, \"mergeRequestSubscribed\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-avatar-link',{staticClass:\"user-avatar-link js-user-link\",attrs:{\"href\":_vm.linkHref,\"data-user-id\":_vm.userId,\"data-username\":_vm.popoverUsername},on:{\"click\":function($event){$event.stopPropagation();}}},[_c('user-avatar-image',{class:_vm.imgCssWrapperClasses,attrs:{\"img-src\":_vm.imgSrc,\"img-alt\":_vm.imgAlt,\"css-classes\":_vm.imgCssClasses,\"size\":_vm.imgSize,\"tooltip-text\":_vm.avatarTooltipText,\"tooltip-placement\":_vm.tooltipPlacement,\"lazy\":_vm.lazy}},[_vm._t(\"default\")],2),_vm._v(\" \"),(_vm.shouldShowUsername)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-ml-1\",attrs:{\"title\":_vm.tooltipText,\"tooltip-placement\":_vm.tooltipPlacement,\"data-testid\":\"user-avatar-link-username\"}},[_vm._v(\"\\n \"+_vm._s(_vm.username)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_vm._t(\"avatar-badge\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_avatar_link.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_avatar_link.vue?vue&type=script&lang=js\"","<script>\n/* This is a re-usable vue component for rendering a user avatar wrapped in\n a clickable link (likely to the user's profile). The link, image, and\n tooltip can be configured by props passed to this component.\n\n Sample configuration:\n\n <user-avatar-link\n :link-href=\"userProfileUrl\"\n :img-src=\"userAvatarSrc\"\n :img-alt=\"tooltipText\"\n :img-size=\"32\"\n :tooltip-text=\"tooltipText\"\n :tooltip-placement=\"top\"\n :username=\"username\"\n />\n\n*/\n\nimport { GlAvatarLink, GlTooltipDirective } from '@gitlab/ui';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport UserAvatarImage from './user_avatar_image.vue';\n\nexport default {\n name: 'UserAvatarLinkNew',\n components: {\n UserAvatarImage,\n GlAvatarLink,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n lazy: {\n type: Boolean,\n required: false,\n default: false,\n },\n linkHref: {\n type: String,\n required: false,\n default: '',\n },\n imgSrc: {\n type: String,\n required: false,\n default: '',\n },\n imgAlt: {\n type: String,\n required: false,\n default: '',\n },\n imgCssClasses: {\n type: String,\n required: false,\n default: '',\n },\n imgCssWrapperClasses: {\n type: String,\n required: false,\n default: '',\n },\n imgSize: {\n type: [Number, Object],\n required: true,\n },\n tooltipText: {\n type: String,\n required: false,\n default: '',\n },\n tooltipPlacement: {\n type: String,\n required: false,\n default: 'top',\n },\n popoverUserId: {\n type: [String, Number],\n required: false,\n default: '',\n },\n popoverUsername: {\n type: String,\n required: false,\n default: '',\n },\n username: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n userId() {\n return getIdFromGraphQLId(this.popoverUserId);\n },\n shouldShowUsername() {\n return this.username.length > 0;\n },\n avatarTooltipText() {\n // Prevent showing tooltip when popoverUserId is present\n if (this.popoverUserId) {\n return '';\n }\n return this.shouldShowUsername ? '' : this.tooltipText;\n },\n },\n};\n</script>\n\n<template>\n <gl-avatar-link\n :href=\"linkHref\"\n :data-user-id=\"userId\"\n :data-username=\"popoverUsername\"\n class=\"user-avatar-link js-user-link\"\n @click.stop\n >\n <user-avatar-image\n :class=\"imgCssWrapperClasses\"\n :img-src=\"imgSrc\"\n :img-alt=\"imgAlt\"\n :css-classes=\"imgCssClasses\"\n :size=\"imgSize\"\n :tooltip-text=\"avatarTooltipText\"\n :tooltip-placement=\"tooltipPlacement\"\n :lazy=\"lazy\"\n >\n <slot></slot>\n </user-avatar-image>\n\n <span\n v-if=\"shouldShowUsername\"\n v-gl-tooltip\n :title=\"tooltipText\"\n :tooltip-placement=\"tooltipPlacement\"\n class=\"gl-ml-1\"\n data-testid=\"user-avatar-link-username\"\n >\n {{ username }}\n </span>\n\n <slot name=\"avatar-badge\"></slot>\n </gl-avatar-link>\n</template>\n","import { render, staticRenderFns } from \"./user_avatar_link.vue?vue&type=template&id=0c9f1264\"\nimport script from \"./user_avatar_link.vue?vue&type=script&lang=js\"\nexport * from \"./user_avatar_link.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"labels-select-wrapper gl-relative\",class:{\n 'is-standalone': _vm.isDropdownVariantStandalone(_vm.variant),\n 'is-embedded': _vm.isDropdownVariantEmbedded(_vm.variant),\n },attrs:{\"data-testid\":\"sidebar-labels\"}},[(_vm.isDropdownVariantSidebar(_vm.variant))?[_c('sidebar-editable-item',{ref:\"editable\",attrs:{\"title\":_vm.__('Labels'),\"edit-tooltip\":_vm.labelTooltip,\"edit-aria-label\":_vm.labelShortcutDescription,\"edit-keyshortcuts\":_vm.labelShortcutKey,\"loading\":_vm.isLoading,\"can-edit\":_vm.allowLabelEdit},on:{\"open\":function($event){_vm.oldIid = null}},scopedSlots:_vm._u([{key:\"collapsed\",fn:function(){return [_c('dropdown-value',{staticClass:\"gl-pt-2\",attrs:{\"disable-labels\":_vm.labelsSelectInProgress,\"selected-labels\":_vm.issuableLabels,\"allow-label-remove\":_vm.allowLabelRemove,\"supports-lock-on-merge\":_vm.isLockOnMergeSupported,\"labels-filter-base-path\":_vm.labelsFilterBasePath,\"labels-filter-param\":_vm.labelsFilterParam},on:{\"onLabelRemove\":_vm.handleLabelRemove,\"onCollapsedValueClick\":_vm.handleCollapsedValueClick}},[_vm._t(\"default\")],2)]},proxy:true},{key:\"default\",fn:function({ edit }){return [_c('dropdown-value',{staticClass:\"gl-mb-2\",attrs:{\"disable-labels\":_vm.labelsSelectInProgress,\"selected-labels\":_vm.issuableLabels,\"allow-label-remove\":_vm.allowLabelRemove,\"supports-lock-on-merge\":_vm.isLockOnMergeSupported,\"labels-filter-base-path\":_vm.labelsFilterBasePath,\"labels-filter-param\":_vm.labelsFilterParam},on:{\"onLabelRemove\":_vm.handleLabelRemove}},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('dropdown-contents',{ref:\"dropdownContents\",staticClass:\"gl-mt-3 gl-w-full\",attrs:{\"dropdown-button-text\":_vm.dropdownButtonText,\"allow-multiselect\":_vm.allowMultiselect,\"labels-list-title\":_vm.labelsListTitle,\"footer-create-label-title\":_vm.footerCreateLabelTitle,\"footer-manage-label-title\":_vm.footerManageLabelTitle,\"labels-create-title\":_vm.labelsCreateTitle,\"selected-labels\":_vm.issuableLabels,\"variant\":_vm.variant,\"is-visible\":edit,\"full-path\":_vm.fullPath,\"workspace-type\":_vm.workspaceType,\"attr-workspace-path\":_vm.attrWorkspacePath,\"label-create-type\":_vm.labelCreateType},on:{\"setLabels\":_vm.handleDropdownClose,\"closeDropdown\":_vm.collapseEditableItem}})]}}],null,true)})]:[_c('dropdown-contents',{ref:\"dropdownContents\",staticClass:\"issuable-form-select-holder\",attrs:{\"dropdown-button-text\":_vm.dropdownButtonText,\"allow-multiselect\":_vm.allowMultiselect,\"labels-list-title\":_vm.labelsListTitle,\"footer-create-label-title\":_vm.footerCreateLabelTitle,\"footer-manage-label-title\":_vm.footerManageLabelTitle,\"labels-create-title\":_vm.labelsCreateTitle,\"selected-labels\":_vm.issuableLabels,\"variant\":_vm.variant,\"full-path\":_vm.fullPath,\"workspace-type\":_vm.workspaceType,\"attr-workspace-path\":_vm.attrWorkspacePath,\"label-create-type\":_vm.labelCreateType},on:{\"setLabels\":_vm.handleDropdownClose}}),_vm._v(\" \"),(_vm.isLabelListEnabled)?_c('embedded-labels-list',{attrs:{\"disabled\":_vm.labelsSelectInProgress,\"selected-labels\":_vm.issuableLabels,\"allow-label-remove\":_vm.allowLabelRemove,\"supports-lock-on-merge\":_vm.isLockOnMergeSupported,\"labels-filter-base-path\":_vm.labelsFilterBasePath,\"labels-filter-param\":_vm.labelsFilterParam},on:{\"onLabelRemove\":_vm.handleLabelRemove}}):_vm._e()]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_contents_labels_view.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_contents_labels_view.vue?vue&type=script&lang=js\"","<script>\nimport { GlDropdownItem, GlLoadingIcon, GlIntersectionObserver } from '@gitlab/ui';\nimport fuzzaldrinPlus from 'fuzzaldrin-plus';\nimport { createAlert } from '~/alert';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { __ } from '~/locale';\nimport { workspaceLabelsQueries } from '../../../queries/constants';\nimport LabelItem from './label_item.vue';\n\nexport default {\n components: {\n GlDropdownItem,\n GlLoadingIcon,\n GlIntersectionObserver,\n LabelItem,\n },\n model: {\n prop: 'localSelectedLabels',\n },\n props: {\n allowMultiselect: {\n type: Boolean,\n required: true,\n },\n localSelectedLabels: {\n type: Array,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n searchKey: {\n type: String,\n required: true,\n },\n workspaceType: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n labels: [],\n isVisible: false,\n };\n },\n apollo: {\n labels: {\n query() {\n return workspaceLabelsQueries[this.workspaceType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n searchTerm: this.searchKey,\n };\n },\n skip() {\n return this.searchKey.length === 1 || !this.isVisible;\n },\n update: (data) => data.workspace?.labels?.nodes || [],\n error() {\n createAlert({ message: __('Error fetching labels.') });\n },\n },\n },\n computed: {\n labelsFetchInProgress() {\n return this.$apollo.queries.labels.loading;\n },\n localSelectedLabelsIds() {\n return this.localSelectedLabels.map((label) => getIdFromGraphQLId(label.id));\n },\n visibleLabels() {\n if (this.searchKey) {\n return fuzzaldrinPlus.filter(this.labels, this.searchKey, {\n key: ['title'],\n });\n }\n return this.labels;\n },\n showNoMatchingResultsMessage() {\n return Boolean(this.searchKey) && this.visibleLabels.length === 0;\n },\n shouldHighlightFirstItem() {\n return this.searchKey !== '' && this.visibleLabels.length > 0;\n },\n },\n methods: {\n isLabelSelected(label) {\n return this.localSelectedLabelsIds.includes(getIdFromGraphQLId(label.id));\n },\n /**\n * This method scrolls item from dropdown into\n * the view if it is off the viewable area of the\n * container.\n */\n scrollIntoViewIfNeeded() {\n const highlightedLabel = this.$refs.labelsListContainer.querySelector('.is-focused');\n\n if (highlightedLabel) {\n const container = this.$refs.labelsListContainer.getBoundingClientRect();\n const label = highlightedLabel.getBoundingClientRect();\n\n if (label.bottom > container.bottom) {\n this.$refs.labelsListContainer.scrollTop += label.bottom - container.bottom;\n } else if (label.top < container.top) {\n this.$refs.labelsListContainer.scrollTop -= container.top - label.top;\n }\n }\n },\n updateSelectedLabels(label) {\n let labels;\n if (this.isLabelSelected(label)) {\n labels = this.localSelectedLabels.filter(\n ({ id }) => id !== getIdFromGraphQLId(label.id) && id !== label.id,\n );\n } else {\n labels = [...this.localSelectedLabels, label];\n }\n this.$emit('input', labels);\n },\n handleLabelClick(label) {\n this.updateSelectedLabels(label);\n if (!this.allowMultiselect) {\n this.$emit('closeDropdown', this.localSelectedLabels);\n }\n },\n onDropdownAppear() {\n this.isVisible = true;\n },\n selectFirstItem() {\n if (this.shouldHighlightFirstItem) {\n this.handleLabelClick(this.visibleLabels[0]);\n }\n },\n handleFocus(event, index) {\n if (index === 0 && event.target.classList.contains('is-focused')) {\n event.target.classList.remove('is-focused');\n\n // Focus next element (if available) as the first item was already focused.\n if (event.target.parentNode?.nextElementSibling?.querySelector('button')) {\n event.target.parentNode.nextElementSibling.querySelector('button').focus();\n }\n }\n },\n },\n};\n</script>\n\n<template>\n <gl-intersection-observer @appear=\"onDropdownAppear\">\n <div class=\"js-labels-list\">\n <div ref=\"labelsListContainer\" data-testid=\"dropdown-content\">\n <gl-loading-icon\n v-if=\"labelsFetchInProgress\"\n class=\"labels-fetch-loading gl-mb-3 gl-h-full gl-w-full gl-items-center\"\n size=\"sm\"\n />\n <template v-else>\n <gl-dropdown-item\n v-for=\"(label, index) in visibleLabels\"\n :key=\"label.id\"\n :is-checked=\"isLabelSelected(label)\"\n is-check-item\n :active=\"shouldHighlightFirstItem && index === 0\"\n active-class=\"is-focused\"\n data-testid=\"labels-list\"\n @focus.capture.native=\"handleFocus($event, index)\"\n @click.capture.native.stop=\"handleLabelClick(label)\"\n >\n <label-item :label=\"label\" />\n </gl-dropdown-item>\n <gl-dropdown-item\n v-show=\"showNoMatchingResultsMessage\"\n class=\"gl-p-3 gl-text-center\"\n data-testid=\"no-results\"\n >\n {{ __('No matching results') }}\n </gl-dropdown-item>\n </template>\n </div>\n </div>\n </gl-intersection-observer>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_contents_labels_view.vue?vue&type=template&id=c7ae369c\"\nimport script from \"./dropdown_contents_labels_view.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_contents_labels_view.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-intersection-observer',{on:{\"appear\":_vm.onDropdownAppear}},[_c('div',{staticClass:\"js-labels-list\"},[_c('div',{ref:\"labelsListContainer\",attrs:{\"data-testid\":\"dropdown-content\"}},[(_vm.labelsFetchInProgress)?_c('gl-loading-icon',{staticClass:\"labels-fetch-loading gl-mb-3 gl-h-full gl-w-full gl-items-center\",attrs:{\"size\":\"sm\"}}):[_vm._l((_vm.visibleLabels),function(label,index){return _c('gl-dropdown-item',{key:label.id,attrs:{\"is-checked\":_vm.isLabelSelected(label),\"is-check-item\":\"\",\"active\":_vm.shouldHighlightFirstItem && index === 0,\"active-class\":\"is-focused\",\"data-testid\":\"labels-list\"},nativeOn:{\"!focus\":function($event){return _vm.handleFocus($event, index)},\"!click\":function($event){$event.stopPropagation();return _vm.handleLabelClick(label)}}},[_c('label-item',{attrs:{\"label\":label}})],1)}),_vm._v(\" \"),_c('gl-dropdown-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNoMatchingResultsMessage),expression:\"showNoMatchingResultsMessage\"}],staticClass:\"gl-p-3 gl-text-center\",attrs:{\"data-testid\":\"no-results\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('No matching results'))+\"\\n \")])]],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { VARIANT_EMBEDDED, VARIANT_SIDEBAR, VARIANT_STANDALONE } from './constants';\n\n/**\n * Returns boolean representing whether dropdown variant\n * is `sidebar`\n * @param {string} variant\n */\nexport const isDropdownVariantSidebar = (variant) => variant === VARIANT_SIDEBAR;\n\n/**\n * Returns boolean representing whether dropdown variant\n * is `standalone`\n * @param {string} variant\n */\nexport const isDropdownVariantStandalone = (variant) => variant === VARIANT_STANDALONE;\n\n/**\n * Returns boolean representing whether dropdown variant\n * is `embedded`\n * @param {string} variant\n */\nexport const isDropdownVariantEmbedded = (variant) => variant === VARIANT_EMBEDDED;\n","<script>\nimport { GlButton, GlDropdown, GlDropdownItem, GlLink } from '@gitlab/ui';\nimport { debounce } from 'lodash';\nimport { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';\nimport { __, s__, sprintf } from '~/locale';\nimport DropdownContentsCreateView from './dropdown_contents_create_view.vue';\nimport DropdownContentsLabelsView from './dropdown_contents_labels_view.vue';\nimport DropdownFooter from './dropdown_footer.vue';\nimport DropdownHeader from './dropdown_header.vue';\nimport { isDropdownVariantStandalone, isDropdownVariantSidebar } from './utils';\n\nexport default {\n components: {\n DropdownContentsLabelsView,\n DropdownContentsCreateView,\n DropdownHeader,\n DropdownFooter,\n GlButton,\n GlDropdown,\n GlDropdownItem,\n GlLink,\n },\n inject: {\n toggleAttrs: {\n default: () => ({}),\n },\n },\n props: {\n labelsCreateTitle: {\n type: String,\n required: true,\n },\n selectedLabels: {\n type: Array,\n required: true,\n },\n allowMultiselect: {\n type: Boolean,\n required: true,\n },\n labelsListTitle: {\n type: String,\n required: true,\n },\n dropdownButtonText: {\n type: String,\n required: true,\n },\n footerCreateLabelTitle: {\n type: String,\n required: true,\n },\n footerManageLabelTitle: {\n type: String,\n required: true,\n },\n variant: {\n type: String,\n required: true,\n },\n isVisible: {\n type: Boolean,\n required: false,\n default: false,\n },\n fullPath: {\n type: String,\n required: true,\n },\n workspaceType: {\n type: String,\n required: true,\n },\n attrWorkspacePath: {\n type: String,\n required: true,\n },\n labelCreateType: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n showDropdownContentsCreateView: false,\n localSelectedLabels: [...this.selectedLabels],\n isDirty: false,\n searchKey: '',\n };\n },\n computed: {\n dropdownContentsView() {\n if (this.showDropdownContentsCreateView) {\n return 'dropdown-contents-create-view';\n }\n return 'dropdown-contents-labels-view';\n },\n dropdownTitle() {\n return this.showDropdownContentsCreateView ? this.labelsCreateTitle : this.labelsListTitle;\n },\n buttonText() {\n if (!this.localSelectedLabels.length) {\n return this.dropdownButtonText || __('Label');\n }\n if (this.localSelectedLabels.length > 1) {\n return sprintf(s__('LabelSelect|%{firstLabelName} +%{remainingLabelCount} more'), {\n firstLabelName: this.localSelectedLabels[0].title,\n remainingLabelCount: this.localSelectedLabels.length - 1,\n });\n }\n return this.localSelectedLabels[0].title;\n },\n showDropdownFooter() {\n return !this.showDropdownContentsCreateView && !this.isStandalone;\n },\n isStandalone() {\n return isDropdownVariantStandalone(this.variant);\n },\n isSidebar() {\n return isDropdownVariantSidebar(this.variant);\n },\n },\n watch: {\n localSelectedLabels: {\n handler() {\n this.isDirty = true;\n },\n deep: true,\n },\n isVisible(newVal) {\n if (newVal) {\n this.$refs.dropdown.show();\n this.isDirty = false;\n this.localSelectedLabels = this.selectedLabels;\n } else {\n this.$refs.dropdown.hide();\n this.setLabels();\n }\n },\n selectedLabels(newVal) {\n if (!this.isDirty || !this.isSidebar) {\n this.localSelectedLabels = newVal;\n }\n },\n },\n created() {\n this.debouncedSearchKeyUpdate = debounce(this.setSearchKey, DEFAULT_DEBOUNCE_AND_THROTTLE_MS);\n },\n beforeDestroy() {\n this.debouncedSearchKeyUpdate.cancel();\n },\n methods: {\n toggleDropdownContentsCreateView() {\n this.showDropdownContentsCreateView = !this.showDropdownContentsCreateView;\n },\n toggleDropdownContent() {\n this.toggleDropdownContentsCreateView();\n // Required to recalculate dropdown position as its size changes\n if (this.$refs.dropdown?.$refs.dropdown) {\n this.$refs.dropdown.$refs.dropdown.$_popper.scheduleUpdate();\n }\n },\n setLabels() {\n if (!this.isDirty) {\n return;\n }\n this.$emit('setLabels', this.localSelectedLabels);\n },\n handleDropdownHide() {\n this.$emit('closeDropdown');\n if (!this.isSidebar) {\n this.setLabels();\n }\n },\n setSearchKey(value) {\n this.searchKey = value;\n },\n setFocus() {\n this.$refs.header.focusInput();\n },\n hideDropdown() {\n this.$refs.dropdown.hide();\n },\n showDropdown() {\n this.$refs.dropdown.show();\n },\n clearSearch() {\n if (!this.allowMultiselect || this.isStandalone) {\n return;\n }\n this.searchKey = '';\n this.setFocus();\n },\n selectFirstItem() {\n this.$refs.dropdownContentsView.selectFirstItem();\n },\n handleNewLabel(label) {\n this.localSelectedLabels = [...this.localSelectedLabels, label];\n this.toggleDropdownContent();\n this.clearSearch();\n },\n },\n};\n</script>\n\n<template>\n <gl-dropdown\n ref=\"dropdown\"\n :text=\"buttonText\"\n block\n data-testid=\"labels-select-dropdown-contents\"\n :toggle-attrs=\"toggleAttrs\"\n @hide=\"handleDropdownHide\"\n @shown=\"setFocus\"\n >\n <template #header>\n <dropdown-header\n ref=\"header\"\n :search-key=\"searchKey\"\n :labels-create-title=\"labelsCreateTitle\"\n :labels-list-title=\"labelsListTitle\"\n :show-dropdown-contents-create-view=\"showDropdownContentsCreateView\"\n :is-standalone=\"isStandalone\"\n @toggleDropdownContentsCreateView=\"toggleDropdownContent\"\n @closeDropdown=\"hideDropdown\"\n @input=\"debouncedSearchKeyUpdate\"\n @searchEnter.prevent=\"selectFirstItem\"\n />\n </template>\n <template #default>\n <component\n :is=\"dropdownContentsView\"\n ref=\"dropdownContentsView\"\n v-model=\"localSelectedLabels\"\n :search-key=\"searchKey\"\n :allow-multiselect=\"allowMultiselect\"\n :full-path=\"fullPath\"\n :workspace-type=\"workspaceType\"\n :attr-workspace-path=\"attrWorkspacePath\"\n :label-create-type=\"labelCreateType\"\n @hideCreateView=\"toggleDropdownContent\"\n @labelCreated=\"handleNewLabel\"\n @input=\"clearSearch\"\n />\n </template>\n <template #footer>\n <dropdown-footer\n v-if=\"showDropdownFooter\"\n :footer-create-label-title=\"footerCreateLabelTitle\"\n :footer-manage-label-title=\"footerManageLabelTitle\"\n @toggleDropdownContentsCreateView=\"toggleDropdownContent\"\n />\n </template>\n </gl-dropdown>\n</template>\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_contents.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_contents.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./dropdown_contents.vue?vue&type=template&id=bc30b3ca\"\nimport script from \"./dropdown_contents.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_contents.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-dropdown',{ref:\"dropdown\",attrs:{\"text\":_vm.buttonText,\"block\":\"\",\"data-testid\":\"labels-select-dropdown-contents\",\"toggle-attrs\":_vm.toggleAttrs},on:{\"hide\":_vm.handleDropdownHide,\"shown\":_vm.setFocus},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('dropdown-header',{ref:\"header\",attrs:{\"search-key\":_vm.searchKey,\"labels-create-title\":_vm.labelsCreateTitle,\"labels-list-title\":_vm.labelsListTitle,\"show-dropdown-contents-create-view\":_vm.showDropdownContentsCreateView,\"is-standalone\":_vm.isStandalone},on:{\"toggleDropdownContentsCreateView\":_vm.toggleDropdownContent,\"closeDropdown\":_vm.hideDropdown,\"input\":_vm.debouncedSearchKeyUpdate,\"searchEnter\":function($event){$event.preventDefault();return _vm.selectFirstItem.apply(null, arguments)}}})]},proxy:true},{key:\"default\",fn:function(){return [_c(_vm.dropdownContentsView,{ref:\"dropdownContentsView\",tag:\"component\",attrs:{\"search-key\":_vm.searchKey,\"allow-multiselect\":_vm.allowMultiselect,\"full-path\":_vm.fullPath,\"workspace-type\":_vm.workspaceType,\"attr-workspace-path\":_vm.attrWorkspacePath,\"label-create-type\":_vm.labelCreateType},on:{\"hideCreateView\":_vm.toggleDropdownContent,\"labelCreated\":_vm.handleNewLabel,\"input\":_vm.clearSearch},model:{value:(_vm.localSelectedLabels),callback:function ($$v) {_vm.localSelectedLabels=$$v},expression:\"localSelectedLabels\"}})]},proxy:true},{key:\"footer\",fn:function(){return [(_vm.showDropdownFooter)?_c('dropdown-footer',{attrs:{\"footer-create-label-title\":_vm.footerCreateLabelTitle,\"footer-manage-label-title\":_vm.footerManageLabelTitle},on:{\"toggleDropdownContentsCreateView\":_vm.toggleDropdownContent}}):_vm._e()]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./embedded_labels_list.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./embedded_labels_list.vue?vue&type=script&lang=js\"","<script>\nimport { GlLabel } from '@gitlab/ui';\nimport { sortBy } from 'lodash';\nimport { isScopedLabel } from '~/lib/utils/common_utils';\n\nexport default {\n components: {\n GlLabel,\n },\n inject: ['allowScopedLabels'],\n props: {\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n selectedLabels: {\n type: Array,\n required: true,\n },\n allowLabelRemove: {\n type: Boolean,\n required: true,\n },\n supportsLockOnMerge: {\n type: Boolean,\n required: false,\n default: false,\n },\n labelsFilterBasePath: {\n type: String,\n required: true,\n },\n labelsFilterParam: {\n type: String,\n required: true,\n },\n },\n computed: {\n sortedSelectedLabels() {\n return sortBy(this.selectedLabels, (label) => isScopedLabel(label));\n },\n },\n methods: {\n buildFilterUrl({ title }) {\n const { labelsFilterBasePath: basePath, labelsFilterParam: filterParam } = this;\n\n return `${basePath}?${filterParam}[]=${encodeURIComponent(title)}`;\n },\n scopedLabel(label) {\n return this.allowScopedLabels && isScopedLabel(label);\n },\n isLabelLocked(label) {\n // These particular labels were initialized from HAML data, so the attributes are\n // in snake case instead of camel case\n return label.lock_on_merge && this.supportsLockOnMerge;\n },\n showCloseButton(label) {\n return this.allowLabelRemove && !this.isLabelLocked(label);\n },\n removeLabel(labelId) {\n this.$emit('onLabelRemove', labelId);\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-mt-3\" data-testid=\"embedded-labels-list\">\n <gl-label\n v-for=\"label in sortedSelectedLabels\"\n :key=\"label.id\"\n class=\"gl-mb-2 gl-mr-2\"\n :data-qa-label-name=\"label.title\"\n :title=\"label.title\"\n :description=\"label.description\"\n :background-color=\"label.color\"\n :target=\"buildFilterUrl(label)\"\n :scoped=\"scopedLabel(label)\"\n :show-close-button=\"showCloseButton(label)\"\n :disabled=\"disabled\"\n tooltip-placement=\"top\"\n @close=\"removeLabel(label.id)\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./embedded_labels_list.vue?vue&type=template&id=4cf671a6\"\nimport script from \"./embedded_labels_list.vue?vue&type=script&lang=js\"\nexport * from \"./embedded_labels_list.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-mt-3\",attrs:{\"data-testid\":\"embedded-labels-list\"}},_vm._l((_vm.sortedSelectedLabels),function(label){return _c('gl-label',{key:label.id,staticClass:\"gl-mb-2 gl-mr-2\",attrs:{\"data-qa-label-name\":label.title,\"title\":label.title,\"description\":label.description,\"background-color\":label.color,\"target\":_vm.buildFilterUrl(label),\"scoped\":_vm.scopedLabel(label),\"show-close-button\":_vm.showCloseButton(label),\"disabled\":_vm.disabled,\"tooltip-placement\":\"top\"},on:{\"close\":function($event){return _vm.removeLabel(label.id)}}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./labels_select_root.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./labels_select_root.vue?vue&type=script&lang=js\"","<script>\nimport { debounce } from 'lodash';\nimport issuableLabelsSubscription from 'ee_else_ce/sidebar/queries/issuable_labels.subscription.graphql';\nimport { mutationOperationMode, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { createAlert } from '~/alert';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { TYPE_EPIC, TYPE_ISSUE, TYPE_MERGE_REQUEST, TYPE_TEST_CASE } from '~/issues/constants';\n\nimport { __ } from '~/locale';\nimport { keysFor, ISSUABLE_CHANGE_LABEL } from '~/behaviors/shortcuts/keybindings';\nimport { shouldDisableShortcuts } from '~/behaviors/shortcuts/shortcuts_toggle';\nimport { sanitize } from '~/lib/dompurify';\nimport { issuableLabelsQueries } from '../../../queries/constants';\nimport SidebarEditableItem from '../../sidebar_editable_item.vue';\nimport { DEBOUNCE_DROPDOWN_DELAY, VARIANT_SIDEBAR } from './constants';\nimport DropdownContents from './dropdown_contents.vue';\nimport DropdownValue from './dropdown_value.vue';\nimport EmbeddedLabelsList from './embedded_labels_list.vue';\nimport {\n isDropdownVariantSidebar,\n isDropdownVariantStandalone,\n isDropdownVariantEmbedded,\n} from './utils';\n\nexport default {\n components: {\n DropdownValue,\n DropdownContents,\n EmbeddedLabelsList,\n SidebarEditableItem,\n },\n mixins: [glFeatureFlagsMixin()],\n inject: {\n allowLabelEdit: {\n default: false,\n },\n },\n props: {\n iid: {\n type: String,\n required: false,\n default: '',\n },\n fullPath: {\n type: String,\n required: true,\n },\n allowLabelRemove: {\n type: Boolean,\n required: false,\n default: false,\n },\n allowMultiselect: {\n type: Boolean,\n required: false,\n default: false,\n },\n showEmbeddedLabelsList: {\n type: Boolean,\n required: false,\n default: false,\n },\n variant: {\n type: String,\n required: false,\n default: VARIANT_SIDEBAR,\n },\n labelsFilterBasePath: {\n type: String,\n required: false,\n default: '',\n },\n labelsFilterParam: {\n type: String,\n required: false,\n default: 'label_name',\n },\n dropdownButtonText: {\n type: String,\n required: false,\n default: __('Label'),\n },\n labelsListTitle: {\n type: String,\n required: false,\n default: __('Select labels'),\n },\n labelsCreateTitle: {\n type: String,\n required: false,\n default: __('Create group label'),\n },\n footerCreateLabelTitle: {\n type: String,\n required: false,\n default: __('Create group label'),\n },\n footerManageLabelTitle: {\n type: String,\n required: false,\n default: __('Manage group labels'),\n },\n issuableType: {\n type: String,\n required: true,\n },\n issuableSupportsLockOnMerge: {\n type: Boolean,\n required: false,\n default: false,\n },\n workspaceType: {\n type: String,\n required: true,\n },\n attrWorkspacePath: {\n type: String,\n required: true,\n },\n labelCreateType: {\n type: String,\n required: true,\n },\n selectedLabels: {\n type: Array,\n required: false,\n default: () => [],\n },\n },\n data() {\n return {\n contentIsOnViewport: true,\n issuable: null,\n labelsSelectInProgress: false,\n oldIid: null,\n sidebarExpandedOnClick: false,\n };\n },\n computed: {\n isLoading() {\n return this.labelsSelectInProgress || this.$apollo.queries.issuable.loading;\n },\n issuableLabelIds() {\n return this.issuableLabels.map((label) => label.id);\n },\n issuableLabels() {\n if (this.iid !== '') {\n return this.issuable?.labels.nodes || [];\n }\n\n return this.selectedLabels || [];\n },\n issuableId() {\n return this.issuable?.id;\n },\n isRealtimeEnabled() {\n return this.glFeatures.realtimeLabels;\n },\n isLabelListEnabled() {\n return this.showEmbeddedLabelsList && isDropdownVariantEmbedded(this.variant);\n },\n isLockOnMergeSupported() {\n return this.issuableSupportsLockOnMerge || this.issuable?.supportsLockOnMerge;\n },\n labelShortcutDescription() {\n return shouldDisableShortcuts() ? null : ISSUABLE_CHANGE_LABEL.description;\n },\n labelShortcutKey() {\n return shouldDisableShortcuts() ? null : keysFor(ISSUABLE_CHANGE_LABEL)[0];\n },\n labelTooltip() {\n const description = this.labelShortcutDescription;\n const key = this.labelShortcutKey;\n return shouldDisableShortcuts()\n ? null\n : sanitize(`${description} <kbd class=\"flat gl-ml-1\" aria-hidden=true>${key}</kbd>`);\n },\n },\n apollo: {\n issuable: {\n query() {\n return issuableLabelsQueries[this.issuableType].issuableQuery;\n },\n skip() {\n return !isDropdownVariantSidebar(this.variant) || !this.iid;\n },\n variables() {\n const queryVariables = {\n iid: this.iid,\n fullPath: this.fullPath,\n };\n\n if (this.issuableType === TYPE_TEST_CASE) {\n queryVariables.types = ['TEST_CASE'];\n }\n\n return queryVariables;\n },\n update(data) {\n return data.workspace?.issuable;\n },\n error() {\n createAlert({ message: __('Error fetching labels.') });\n },\n subscribeToMore: {\n document() {\n return issuableLabelsSubscription;\n },\n variables() {\n return {\n issuableId: this.issuableId,\n };\n },\n skip() {\n return !this.issuableId || !this.isDropdownVariantSidebar;\n },\n updateQuery(\n _,\n {\n subscriptionData: {\n data: { issuableLabelsUpdated },\n },\n },\n ) {\n if (issuableLabelsUpdated) {\n const {\n id,\n labels: { nodes },\n } = issuableLabelsUpdated;\n this.$emit('updateSelectedLabels', { id, labels: nodes });\n }\n },\n },\n },\n },\n watch: {\n iid(_, oldVal) {\n this.oldIid = oldVal;\n },\n },\n mounted() {\n document.addEventListener('toggleSidebarRevealLabelsDropdown', this.handleCollapsedValueClick);\n },\n beforeDestroy() {\n document.removeEventListener(\n 'toggleSidebarRevealLabelsDropdown',\n this.handleCollapsedValueClick,\n );\n },\n methods: {\n handleDropdownClose(labels) {\n if (this.iid !== '') {\n this.updateSelectedLabels(this.getUpdateVariables(labels));\n } else {\n this.$emit('updateSelectedLabels', { labels });\n }\n\n this.collapseEditableItem();\n },\n collapseEditableItem() {\n this.$refs.editable?.collapse();\n if (this.sidebarExpandedOnClick) {\n this.sidebarExpandedOnClick = false;\n this.$emit('toggleCollapse');\n }\n },\n handleCollapsedValueClick() {\n this.sidebarExpandedOnClick = true;\n this.$emit('toggleCollapse');\n debounce(() => {\n this.$refs.editable.toggle();\n this.$refs.dropdownContents.showDropdown();\n }, DEBOUNCE_DROPDOWN_DELAY)();\n },\n getUpdateVariables(labels) {\n let labelIds = [];\n\n labelIds = labels.map(({ id }) => id);\n const currentIid = this.oldIid || this.iid;\n\n const updateVariables = {\n iid: currentIid,\n projectPath: this.fullPath,\n labelIds,\n };\n\n switch (this.issuableType) {\n case TYPE_ISSUE:\n case TYPE_TEST_CASE:\n return updateVariables;\n case TYPE_MERGE_REQUEST:\n return {\n ...updateVariables,\n operationMode: mutationOperationMode.replace,\n };\n case TYPE_EPIC:\n return {\n iid: currentIid,\n groupPath: this.fullPath,\n addLabelIds: labelIds.map((id) => getIdFromGraphQLId(id)),\n removeLabelIds: this.issuableLabelIds\n .filter((id) => !labelIds.includes(id))\n .map((id) => getIdFromGraphQLId(id)),\n };\n default:\n return {};\n }\n },\n updateSelectedLabels(inputVariables) {\n this.labelsSelectInProgress = true;\n\n this.$apollo\n .mutate({\n mutation: issuableLabelsQueries[this.issuableType].mutation,\n variables: { input: inputVariables },\n })\n .then(({ data }) => {\n if (data.updateIssuableLabels?.errors?.length) {\n throw new Error();\n }\n\n this.$emit('updateSelectedLabels', {\n id: data.updateIssuableLabels?.issuable?.id,\n labels: data.updateIssuableLabels?.issuable?.labels?.nodes,\n });\n })\n .catch((error) =>\n createAlert({\n message: __('An error occurred while updating labels.'),\n captureError: true,\n error,\n }),\n )\n .finally(() => {\n this.labelsSelectInProgress = false;\n });\n },\n getRemoveVariables(labelId) {\n const removeVariables = {\n iid: this.iid,\n projectPath: this.fullPath,\n };\n\n switch (this.issuableType) {\n case TYPE_ISSUE:\n case TYPE_TEST_CASE:\n return {\n ...removeVariables,\n removeLabelIds: [labelId],\n };\n case TYPE_MERGE_REQUEST:\n return {\n ...removeVariables,\n labelIds: [labelId],\n operationMode: mutationOperationMode.remove,\n };\n case TYPE_EPIC:\n return {\n iid: this.iid,\n removeLabelIds: [getIdFromGraphQLId(labelId)],\n groupPath: this.fullPath,\n };\n default:\n return {};\n }\n },\n handleLabelRemove(labelId) {\n if (this.iid !== '') {\n this.updateSelectedLabels(this.getRemoveVariables(labelId));\n }\n\n this.$emit('onLabelRemove', labelId);\n },\n isDropdownVariantSidebar,\n isDropdownVariantStandalone,\n isDropdownVariantEmbedded,\n },\n};\n</script>\n\n<template>\n <div\n class=\"labels-select-wrapper gl-relative\"\n :class=\"{\n 'is-standalone': isDropdownVariantStandalone(variant),\n 'is-embedded': isDropdownVariantEmbedded(variant),\n }\"\n data-testid=\"sidebar-labels\"\n >\n <template v-if=\"isDropdownVariantSidebar(variant)\">\n <sidebar-editable-item\n ref=\"editable\"\n :title=\"__('Labels')\"\n :edit-tooltip=\"labelTooltip\"\n :edit-aria-label=\"labelShortcutDescription\"\n :edit-keyshortcuts=\"labelShortcutKey\"\n :loading=\"isLoading\"\n :can-edit=\"allowLabelEdit\"\n @open=\"oldIid = null\"\n >\n <template #collapsed>\n <dropdown-value\n :disable-labels=\"labelsSelectInProgress\"\n :selected-labels=\"issuableLabels\"\n :allow-label-remove=\"allowLabelRemove\"\n :supports-lock-on-merge=\"isLockOnMergeSupported\"\n :labels-filter-base-path=\"labelsFilterBasePath\"\n :labels-filter-param=\"labelsFilterParam\"\n class=\"gl-pt-2\"\n @onLabelRemove=\"handleLabelRemove\"\n @onCollapsedValueClick=\"handleCollapsedValueClick\"\n >\n <slot></slot>\n </dropdown-value>\n </template>\n <template #default=\"{ edit }\">\n <dropdown-value\n :disable-labels=\"labelsSelectInProgress\"\n :selected-labels=\"issuableLabels\"\n :allow-label-remove=\"allowLabelRemove\"\n :supports-lock-on-merge=\"isLockOnMergeSupported\"\n :labels-filter-base-path=\"labelsFilterBasePath\"\n :labels-filter-param=\"labelsFilterParam\"\n class=\"gl-mb-2\"\n @onLabelRemove=\"handleLabelRemove\"\n >\n <slot></slot>\n </dropdown-value>\n <dropdown-contents\n ref=\"dropdownContents\"\n class=\"gl-mt-3 gl-w-full\"\n :dropdown-button-text=\"dropdownButtonText\"\n :allow-multiselect=\"allowMultiselect\"\n :labels-list-title=\"labelsListTitle\"\n :footer-create-label-title=\"footerCreateLabelTitle\"\n :footer-manage-label-title=\"footerManageLabelTitle\"\n :labels-create-title=\"labelsCreateTitle\"\n :selected-labels=\"issuableLabels\"\n :variant=\"variant\"\n :is-visible=\"edit\"\n :full-path=\"fullPath\"\n :workspace-type=\"workspaceType\"\n :attr-workspace-path=\"attrWorkspacePath\"\n :label-create-type=\"labelCreateType\"\n @setLabels=\"handleDropdownClose\"\n @closeDropdown=\"collapseEditableItem\"\n />\n </template>\n </sidebar-editable-item>\n </template>\n <template v-else>\n <dropdown-contents\n ref=\"dropdownContents\"\n class=\"issuable-form-select-holder\"\n :dropdown-button-text=\"dropdownButtonText\"\n :allow-multiselect=\"allowMultiselect\"\n :labels-list-title=\"labelsListTitle\"\n :footer-create-label-title=\"footerCreateLabelTitle\"\n :footer-manage-label-title=\"footerManageLabelTitle\"\n :labels-create-title=\"labelsCreateTitle\"\n :selected-labels=\"issuableLabels\"\n :variant=\"variant\"\n :full-path=\"fullPath\"\n :workspace-type=\"workspaceType\"\n :attr-workspace-path=\"attrWorkspacePath\"\n :label-create-type=\"labelCreateType\"\n @setLabels=\"handleDropdownClose\"\n />\n <embedded-labels-list\n v-if=\"isLabelListEnabled\"\n :disabled=\"labelsSelectInProgress\"\n :selected-labels=\"issuableLabels\"\n :allow-label-remove=\"allowLabelRemove\"\n :supports-lock-on-merge=\"isLockOnMergeSupported\"\n :labels-filter-base-path=\"labelsFilterBasePath\"\n :labels-filter-param=\"labelsFilterParam\"\n @onLabelRemove=\"handleLabelRemove\"\n />\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./labels_select_root.vue?vue&type=template&id=7c2f1289\"\nimport script from \"./labels_select_root.vue?vue&type=script&lang=js\"\nexport * from \"./labels_select_root.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./cve_id_request.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./cve_id_request.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlIcon, GlTooltipDirective } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapState } from 'vuex';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { createCveIdRequestIssueBody } from '~/helpers/cve_id_request_helper';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport { CVE_ID_REQUEST_SIDEBAR_I18N } from '../../constants';\n\nexport default {\n i18n: {\n ...CVE_ID_REQUEST_SIDEBAR_I18N,\n },\n\n components: {\n GlButton,\n GlIcon,\n HelpIcon,\n },\n\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n\n inject: {\n iid: {\n required: true,\n type: String,\n },\n fullPath: {\n required: true,\n type: String,\n },\n },\n\n data() {\n return {\n showHelp: false,\n };\n },\n\n computed: {\n ...mapState({ confidential: (state) => state.noteableData.confidential }),\n helpHref() {\n return helpPagePath('user/application_security/cve_id_request');\n },\n showHelpState() {\n return Boolean(this.showHelp);\n },\n tooltipTitle() {\n return this.$options.i18n.description;\n },\n newCveIdRequestUrl() {\n const currUrl = new URL(window.location.href);\n const newUrl = new URL(currUrl.origin);\n newUrl.pathname = '/gitlab-org/cves/-/issues/new';\n\n const params = {\n 'issue[confidential]': 'true',\n // eslint-disable-next-line @gitlab/require-i18n-strings\n 'issue[title]': `CVE ID Request - ${this.fullPath}`,\n 'issue[description]': createCveIdRequestIssueBody(this.fullPath, this.iid),\n };\n Object.keys(params).forEach((k) => newUrl.searchParams.append(k, params[k]));\n\n return newUrl.toString();\n },\n },\n\n methods: {\n toggleHelpState(show) {\n this.showHelp = show;\n },\n },\n};\n</script>\n\n<template>\n <div v-if=\"confidential\" class=\"sidebar-contained-width cve-id-request gl-border-b-0 gl-pb-0\">\n <div\n v-gl-tooltip.viewport.left\n :title=\"tooltipTitle\"\n class=\"sidebar-collapsed-icon\"\n data-container=\"body\"\n data-placement=\"left\"\n data-boundary=\"viewport\"\n >\n <gl-icon name=\"bug\" class=\"sidebar-item-icon is-active\" />\n </div>\n\n <div class=\"hide-collapsed\">\n {{ $options.i18n.action }}\n <div\n v-if=\"!showHelpState\"\n class=\"help-button gl-float-right\"\n data-testid=\"help-button\"\n @click=\"toggleHelpState(true)\"\n >\n <help-icon />\n </div>\n <div\n v-else\n class=\"close-help-button gl-float-right\"\n data-testid=\"close-help-button\"\n @click=\"toggleHelpState(false)\"\n >\n <gl-icon name=\"close\" />\n </div>\n\n <div class=\"gl-mt-5\">\n <gl-button block :href=\"newCveIdRequestUrl\" target=\"_blank\" data-testid=\"request-button\">{{\n $options.i18n.createRequest\n }}</gl-button>\n </div>\n\n <div class=\"hide-collapsed\">\n <transition name=\"help-state-toggle\">\n <div v-if=\"showHelpState\" class=\"cve-id-request-help-state\" data-testid=\"help-state\">\n <h4>{{ $options.i18n.whyRequest }}</h4>\n <p>\n {{ $options.i18n.whyText1 }}\n </p>\n\n <p>\n {{ $options.i18n.whyText2 }}\n </p>\n\n <div>\n <gl-button :href=\"helpHref\" target=\"_blank\">{{ $options.i18n.learnMore }}</gl-button>\n </div>\n </div>\n </transition>\n </div>\n </div>\n </div>\n</template>\n","export function createCveIdRequestIssueBody(fullPath, iid) {\n return `### Vulnerability Submission\n\n**NOTE:** Only maintainers of GitLab-hosted projects may request a CVE for\na vulnerability within their project.\n\nProject issue: ${fullPath}#${iid}\n\n#### Publishing Schedule\n\nAfter a CVE request is validated, a CVE identifier will be assigned. On what\nschedule should the details of the CVE be published?\n\n* [ ] Publish immediately\n* [ ] Wait to publish\n\n<!--\nPlease fill out the yaml codeblock below\n-->\n\n\\`\\`\\`yaml\nreporter:\n name: \"TODO\" # \"First Last\"\n email: \"TODO\" # \"email@domain.tld\"\nvulnerability:\n description: \"TODO\" # \"[VULNTYPE] in [COMPONENT] in [VENDOR][PRODUCT] [VERSION] allows [ATTACKER] to [IMPACT] via [VECTOR]\"\n cwe: \"TODO\" # \"CWE-22\" # Path Traversal\n product:\n gitlab_path: \"${fullPath}\"\n vendor: \"TODO\" # \"Deluxe Sandwich Maker Company\"\n name: \"TODO\" # \"Deluxe Sandwich Maker 2\"\n affected_versions:\n - \"TODO\" # \"1.2.3\"\n - \"TODO\" # \">1.3.0, <=1.3.9\"\n fixed_versions:\n - \"TODO\" # \"1.2.4\"\n - \"TODO\" # \"1.3.10\"\n impact: \"TODO\" # \"CVSS v3 string\" # https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator\n solution: \"TODO\" # \"Upgrade to version 1.2.4 or 1.3.10\"\n credit: \"TODO\"\n references:\n - \"TODO\" # \"https://some.domain.tld/a/reference\"\n\\`\\`\\`\n\nCVSS scores can be computed by means of the [NVD CVSS Calculator](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator).\n\n/relate ${fullPath}#${iid}\n/label ~\"devops::secure\" ~\"group::vulnerability research\" ~\"vulnerability research::cve\" ~\"advisory::queued\"\n `;\n}\n","import { render, staticRenderFns } from \"./cve_id_request.vue?vue&type=template&id=ceceab98\"\nimport script from \"./cve_id_request.vue?vue&type=script&lang=js\"\nexport * from \"./cve_id_request.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.confidential)?_c('div',{staticClass:\"sidebar-contained-width cve-id-request gl-border-b-0 gl-pb-0\"},[_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.left\",modifiers:{\"viewport\":true,\"left\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.tooltipTitle,\"data-container\":\"body\",\"data-placement\":\"left\",\"data-boundary\":\"viewport\"}},[_c('gl-icon',{staticClass:\"sidebar-item-icon is-active\",attrs:{\"name\":\"bug\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.action)+\"\\n \"),(!_vm.showHelpState)?_c('div',{staticClass:\"help-button gl-float-right\",attrs:{\"data-testid\":\"help-button\"},on:{\"click\":function($event){return _vm.toggleHelpState(true)}}},[_c('help-icon')],1):_c('div',{staticClass:\"close-help-button gl-float-right\",attrs:{\"data-testid\":\"close-help-button\"},on:{\"click\":function($event){return _vm.toggleHelpState(false)}}},[_c('gl-icon',{attrs:{\"name\":\"close\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-mt-5\"},[_c('gl-button',{attrs:{\"block\":\"\",\"href\":_vm.newCveIdRequestUrl,\"target\":\"_blank\",\"data-testid\":\"request-button\"}},[_vm._v(_vm._s(_vm.$options.i18n.createRequest))])],1),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed\"},[_c('transition',{attrs:{\"name\":\"help-state-toggle\"}},[(_vm.showHelpState)?_c('div',{staticClass:\"cve-id-request-help-state\",attrs:{\"data-testid\":\"help-state\"}},[_c('h4',[_vm._v(_vm._s(_vm.$options.i18n.whyRequest))]),_vm._v(\" \"),_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.whyText1)+\"\\n \")]),_vm._v(\" \"),_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.whyText2)+\"\\n \")]),_vm._v(\" \"),_c('div',[_c('gl-button',{attrs:{\"href\":_vm.helpHref,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$options.i18n.learnMore))])],1)]):_vm._e()])],1)])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\nimport { debounce } from 'lodash';\nimport IterationTitle from 'ee/iterations/components/iteration_title.vue';\nimport { groupByIterationCadences } from 'ee/iterations/utils';\nimport { STATUS_OPEN } from '~/issues/constants';\nimport { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';\nimport { __ } from '~/locale';\nimport { iterationSelectTextMap } from '../../constants';\nimport groupIterationsQuery from '../../queries/group_iterations.query.graphql';\n\nconst NO_ITEMS_ID = 'NO_ITEMS_ID';\n\nexport default {\n noIteration: { text: iterationSelectTextMap.noIteration, id: NO_ITEMS_ID },\n components: {\n GlCollapsibleListbox,\n IterationTitle,\n },\n apollo: {\n iterations: {\n query: groupIterationsQuery,\n debounce: DEFAULT_DEBOUNCE_AND_THROTTLE_MS,\n variables() {\n const search = this.searchTerm ? `\"${this.searchTerm}\"` : '';\n\n return {\n fullPath: this.fullPath,\n title: search,\n state: STATUS_OPEN,\n };\n },\n update(data) {\n return data.workspace?.attributes?.nodes || [];\n },\n skip() {\n return !this.shouldFetch;\n },\n },\n },\n inject: ['fullPath'],\n data() {\n return {\n searchTerm: '',\n iterations: [],\n currentIteration: null,\n shouldFetch: false,\n };\n },\n computed: {\n currentIterationId() {\n return this.currentIteration?.id;\n },\n iterationCadences() {\n return groupByIterationCadences(this.iterations);\n },\n iterationCadencesListBoxItems() {\n const groups = this.iterationCadences.map((cadence) => ({\n text: cadence.title,\n options: cadence.iterations.map(({ id, period, title }) => ({\n value: id,\n text: period,\n title,\n })),\n }));\n\n return [\n {\n text: this.$options.noIteration.text,\n options: [\n {\n text: this.$options.noIteration.text,\n value: this.$options.noIteration.id,\n },\n ],\n },\n ...groups,\n ];\n },\n dropdownSelectedText() {\n return this.currentIteration?.period || __('Select iteration');\n },\n dropdownHeaderText() {\n return __('Select Iteration');\n },\n },\n created() {\n this.handleSearch = debounce(this.setSearchTerm, DEFAULT_DEBOUNCE_AND_THROTTLE_MS);\n },\n destroyed() {\n this.handleSearch.cancel();\n },\n methods: {\n setSearchTerm(val = '') {\n this.searchTerm = val?.trim();\n },\n onClick(iterationId) {\n this.currentIteration =\n this.iterationCadences\n .flatMap((cadence) => cadence.iterations)\n ?.find(({ id }) => id === iterationId) || this.$options.noIteration;\n\n this.$emit('onIterationSelect', this.currentIteration);\n },\n onDropdownShow() {\n this.shouldFetch = true;\n },\n },\n};\n</script>\n\n<template>\n <gl-collapsible-listbox\n block\n is-check-centered\n searchable\n toggle-class=\"gl-w-full\"\n :header-text=\"dropdownHeaderText\"\n :items=\"iterationCadencesListBoxItems\"\n :loading=\"$apollo.queries.iterations.loading\"\n :searching=\"$apollo.queries.iterations.loading\"\n :selected=\"currentIterationId\"\n :toggle-text=\"dropdownSelectedText\"\n @shown=\"onDropdownShow\"\n @search=\"handleSearch\"\n @select=\"onClick\"\n >\n <template #list-item=\"{ item }\">\n {{ item.text }}\n <iteration-title v-if=\"item.title\" :title=\"item.title\" />\n </template>\n </gl-collapsible-listbox>\n</template>\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./iteration_dropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./iteration_dropdown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./iteration_dropdown.vue?vue&type=template&id=3b5d8732\"\nimport script from \"./iteration_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./iteration_dropdown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-collapsible-listbox',{attrs:{\"block\":\"\",\"is-check-centered\":\"\",\"searchable\":\"\",\"toggle-class\":\"gl-w-full\",\"header-text\":_vm.dropdownHeaderText,\"items\":_vm.iterationCadencesListBoxItems,\"loading\":_vm.$apollo.queries.iterations.loading,\"searching\":_vm.$apollo.queries.iterations.loading,\"selected\":_vm.currentIterationId,\"toggle-text\":_vm.dropdownSelectedText},on:{\"shown\":_vm.onDropdownShow,\"search\":_vm.handleSearch,\"select\":_vm.onClick},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_vm._v(\"\\n \"+_vm._s(item.text)+\"\\n \"),(item.title)?_c('iteration-title',{attrs:{\"title\":item.title}}):_vm._e()]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./escalation_policy_help_state.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./escalation_policy_help_state.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { i18nHelpText } from '../../constants';\n\nexport default {\n POLICIES_PATH: helpPagePath('operations/incident_management/escalation_policies.md'),\n i18n: i18nHelpText,\n components: {\n GlButton,\n },\n};\n</script>\n\n<template>\n <transition name=\"help-state-toggle\">\n <div\n class=\"sidebar-help-state gl-border-1 gl-border-default gl-bg-white gl-border-b-solid gl-border-t-solid\"\n >\n <div>\n <h4>{{ $options.i18n.title }}</h4>\n <p>{{ $options.i18n.detail }}</p>\n <gl-button :href=\"$options.POLICIES_PATH\">{{ $options.i18n.linkText }}</gl-button>\n </div>\n </div>\n </transition>\n</template>\n","import { render, staticRenderFns } from \"./escalation_policy_help_state.vue?vue&type=template&id=a17b26a4\"\nimport script from \"./escalation_policy_help_state.vue?vue&type=script&lang=js\"\nexport * from \"./escalation_policy_help_state.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"name\":\"help-state-toggle\"}},[_c('div',{staticClass:\"sidebar-help-state gl-border-1 gl-border-default gl-bg-white gl-border-b-solid gl-border-t-solid\"},[_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$options.i18n.title))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$options.i18n.detail))]),_vm._v(\" \"),_c('gl-button',{attrs:{\"href\":_vm.$options.POLICIES_PATH}},[_vm._v(_vm._s(_vm.$options.i18n.linkText))])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./escalation_policy_collapsed_state.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./escalation_policy_collapsed_state.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { i18nPolicyText } from '../../constants';\n\nexport default {\n i18n: i18nPolicyText,\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlIcon,\n },\n props: {\n value: {\n type: String,\n required: false,\n default: null,\n },\n },\n computed: {\n policyText() {\n return this.value ? this.$options.i18n.paged : this.$options.i18n.none;\n },\n tooltipText() {\n const policyName = this.value || this.$options.i18n.none;\n\n return `${this.$options.i18n.title}: ${policyName}`;\n },\n },\n};\n</script>\n\n<template>\n <div\n v-gl-tooltip.left.viewport\n :title=\"tooltipText\"\n class=\"sidebar-collapsed-icon\"\n data-testid=\"sidebar-collapsed-attribute-title\"\n >\n <gl-icon :aria-label=\"$options.i18n.title\" name=\"mobile\" />\n <span class=\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\">\n {{ policyText }}\n </span>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./escalation_policy_collapsed_state.vue?vue&type=template&id=5fef5902\"\nimport script from \"./escalation_policy_collapsed_state.vue?vue&type=script&lang=js\"\nexport * from \"./escalation_policy_collapsed_state.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.tooltipText,\"data-testid\":\"sidebar-collapsed-attribute-title\"}},[_c('gl-icon',{attrs:{\"aria-label\":_vm.$options.i18n.title,\"name\":\"mobile\"}}),_vm._v(\" \"),_c('span',{staticClass:\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\"},[_vm._v(\"\\n \"+_vm._s(_vm.policyText)+\"\\n \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./escalation_policies_empty_state.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./escalation_policies_empty_state.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { i18nPolicyText } from '../../constants';\nimport EscalationPolicyHelpState from './escalation_policy_help_state.vue';\nimport EscalationPolicyCollapsedState from './escalation_policy_collapsed_state.vue';\n\nexport default {\n i18n: i18nPolicyText,\n components: {\n GlButton,\n EscalationPolicyCollapsedState,\n EscalationPolicyHelpState,\n },\n data() {\n return {\n showHelp: false,\n };\n },\n methods: {\n toggleHelpState() {\n this.showHelp = !this.showHelp;\n },\n },\n};\n</script>\n\n<template>\n <div data-testid=\"escalation-policy-edit\">\n <div class=\"hide-collapsed sidebar-help-wrap\">\n <div class=\"gl-line-height-2 gl-mb-2 gl-flex gl-items-center gl-font-bold gl-text-default\">\n <span>{{ $options.i18n.title }}</span>\n <gl-button\n :data-testid=\"showHelp ? 'close-help-button' : 'help-button'\"\n category=\"tertiary\"\n :icon=\"showHelp ? 'close' : 'question-o'\"\n size=\"small\"\n variant=\"link\"\n class=\"gl-ml-auto\"\n @click=\"toggleHelpState\"\n />\n </div>\n\n <div data-testid=\"select-escalation-policy\" class=\"hide-collapsed gl-leading-1\">\n <span class=\"gl-text-subtle\">\n {{ $options.i18n.none }}\n </span>\n </div>\n\n <escalation-policy-help-state v-if=\"showHelp\" />\n </div>\n\n <escalation-policy-collapsed-state />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./escalation_policies_empty_state.vue?vue&type=template&id=4fd87dea\"\nimport script from \"./escalation_policies_empty_state.vue?vue&type=script&lang=js\"\nexport * from \"./escalation_policies_empty_state.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"data-testid\":\"escalation-policy-edit\"}},[_c('div',{staticClass:\"hide-collapsed sidebar-help-wrap\"},[_c('div',{staticClass:\"gl-line-height-2 gl-mb-2 gl-flex gl-items-center gl-font-bold gl-text-default\"},[_c('span',[_vm._v(_vm._s(_vm.$options.i18n.title))]),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-ml-auto\",attrs:{\"data-testid\":_vm.showHelp ? 'close-help-button' : 'help-button',\"category\":\"tertiary\",\"icon\":_vm.showHelp ? 'close' : 'question-o',\"size\":\"small\",\"variant\":\"link\"},on:{\"click\":_vm.toggleHelpState}})],1),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed gl-leading-1\",attrs:{\"data-testid\":\"select-escalation-policy\"}},[_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.none)+\"\\n \")])]),_vm._v(\" \"),(_vm.showHelp)?_c('escalation-policy-help-state'):_vm._e()],1),_vm._v(\" \"),_c('escalation-policy-collapsed-state')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_escalation_policy.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_escalation_policy.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink } from '@gitlab/ui';\nimport { joinPaths } from '~/lib/utils/url_utility';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { IssuableAttributeType } from '../../constants';\nimport SidebarDropdownWidget from '../sidebar_dropdown_widget.vue';\nimport EscalationPoliciesEmptyState from './escalation_policies_empty_state.vue';\nimport EscalationPolicyCollapsedState from './escalation_policy_collapsed_state.vue';\n\nexport default {\n INDEX_PATH: '-/escalation_policies',\n components: {\n SidebarDropdownWidget,\n EscalationPolicyCollapsedState,\n GlLink,\n EscalationPoliciesEmptyState,\n },\n props: {\n projectPath: {\n required: true,\n type: String,\n },\n iid: {\n required: true,\n type: String,\n },\n escalationsPossible: {\n type: Boolean,\n required: false,\n default: true,\n },\n issueId: {\n type: String,\n required: false,\n default: null,\n },\n },\n computed: {\n policiesPath() {\n return joinPaths(gon.relative_url_root || '/', this.projectPath, this.$options.INDEX_PATH);\n },\n },\n created() {\n this.issuableType = TYPE_ISSUE;\n this.issuableAttribute = IssuableAttributeType.EscalationPolicy;\n },\n};\n</script>\n\n<template>\n <sidebar-dropdown-widget\n v-if=\"escalationsPossible\"\n :attr-workspace-path=\"projectPath\"\n :workspace-path=\"projectPath\"\n :iid=\"iid\"\n :issuable-type=\"issuableType\"\n :issue-id=\"issueId\"\n :issuable-attribute=\"issuableAttribute\"\n >\n <template #value-collapsed=\"{ currentAttribute }\">\n <escalation-policy-collapsed-state :value=\"currentAttribute && currentAttribute.title\" />\n </template>\n\n <template #value=\"{ attributeTitle }\">\n <gl-link class=\"gl-font-bold !gl-text-default\" :href=\"policiesPath\">\n {{ attributeTitle }}\n </gl-link>\n </template>\n </sidebar-dropdown-widget>\n\n <escalation-policies-empty-state v-else />\n</template>\n","import { render, staticRenderFns } from \"./sidebar_escalation_policy.vue?vue&type=template&id=483fe81d\"\nimport script from \"./sidebar_escalation_policy.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_escalation_policy.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.escalationsPossible)?_c('sidebar-dropdown-widget',{attrs:{\"attr-workspace-path\":_vm.projectPath,\"workspace-path\":_vm.projectPath,\"iid\":_vm.iid,\"issuable-type\":_vm.issuableType,\"issue-id\":_vm.issueId,\"issuable-attribute\":_vm.issuableAttribute},scopedSlots:_vm._u([{key:\"value-collapsed\",fn:function({ currentAttribute }){return [_c('escalation-policy-collapsed-state',{attrs:{\"value\":currentAttribute && currentAttribute.title}})]}},{key:\"value\",fn:function({ attributeTitle }){return [_c('gl-link',{staticClass:\"gl-font-bold !gl-text-default\",attrs:{\"href\":_vm.policiesPath}},[_vm._v(\"\\n \"+_vm._s(attributeTitle)+\"\\n \")])]}}],null,false,359306193)}):_c('escalation-policies-empty-state')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport { apolloProvider } from '~/graphql_shared/issuable_client';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport createDefaultClient from '~/lib/graphql';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport SidebarDropdown from '~/sidebar/components/sidebar_dropdown.vue';\nimport * as CEMountSidebar from '~/sidebar/mount_sidebar';\nimport CveIdRequest from './components/cve_id_request/cve_id_request.vue';\nimport IterationDropdown from './components/iteration/iteration_dropdown.vue';\nimport SidebarIterationWidget from './components/iteration/sidebar_iteration_widget.vue';\nimport SidebarDropdownWidget from './components/sidebar_dropdown_widget.vue';\nimport HealthStatusDropdown from './components/health_status/health_status_dropdown.vue';\nimport SidebarHealthStatusWidget from './components/health_status/sidebar_health_status_widget.vue';\nimport SidebarWeightWidget from './components/weight/sidebar_weight_widget.vue';\nimport SidebarEscalationPolicy from './components/incidents/sidebar_escalation_policy.vue';\nimport {\n healthStatusForRestApi,\n IssuableAttributeType,\n noEpic,\n placeholderEpic,\n} from './constants';\n\nVue.use(VueApollo);\n\nconst mountSidebarWeightWidget = () => {\n const el = document.querySelector('.js-sidebar-weight-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { canEdit, projectPath, issueIid } = el.dataset;\n\n return new Vue({\n el,\n name: 'SidebarWeightWidgetRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(canEdit),\n isClassicSidebar: true,\n },\n render: (createElement) =>\n createElement(SidebarWeightWidget, {\n props: {\n fullPath: projectPath,\n iid: issueIid,\n issuableType: TYPE_ISSUE,\n },\n }),\n });\n};\n\nconst mountSidebarHealthStatusWidget = () => {\n const el = document.querySelector('.js-sidebar-health-status-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { iid, fullPath, issuableType, canEdit } = el.dataset;\n\n return new Vue({\n el,\n name: 'SidebarHealthStatusWidgetRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(canEdit),\n },\n render: (createElement) =>\n createElement(SidebarHealthStatusWidget, {\n props: {\n fullPath,\n iid,\n issuableType,\n },\n }),\n });\n};\n\nexport function mountHealthStatusDropdown() {\n const el = document.querySelector('.js-health-status-dropdown-root');\n const healthStatusFormInput = document.getElementById('issue_health_status_value');\n\n if (!el || !healthStatusFormInput) {\n return null;\n }\n\n return new Vue({\n el,\n name: 'HealthStatusDropdownRoot',\n data() {\n return {\n healthStatus: undefined,\n };\n },\n methods: {\n handleChange(healthStatus) {\n this.healthStatus = healthStatus;\n healthStatusFormInput.setAttribute(\n 'value',\n healthStatusForRestApi[healthStatus || 'NO_STATUS'],\n );\n },\n },\n render(createElement) {\n return createElement(HealthStatusDropdown, {\n props: {\n healthStatus: this.healthStatus,\n },\n on: {\n change: this.handleChange.bind(this),\n },\n });\n },\n });\n}\n\nfunction mountSidebarCveIdRequest(store) {\n const el = document.querySelector('.js-sidebar-cve-id-request-root');\n\n if (!el) {\n return null;\n }\n\n const { iid, fullPath } = CEMountSidebar.getSidebarOptions();\n\n return new Vue({\n store,\n el,\n name: 'SidebarCveIdRequestRoot',\n provide: {\n iid: String(iid),\n fullPath,\n },\n render: (createElement) => createElement(CveIdRequest),\n });\n}\n\nfunction mountSidebarEpicWidget() {\n const el = document.querySelector('.js-sidebar-epic-widget-root');\n const workItemEpics = window.gon?.features?.workItemEpics;\n\n if (!el) {\n return null;\n }\n\n const { groupPath, canEdit, projectPath, issueIid, issueId } = el.dataset;\n return new Vue({\n el,\n name: 'SidebarEpicWidgetRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(canEdit),\n isClassicSidebar: true,\n },\n render: (createElement) =>\n createElement(SidebarDropdownWidget, {\n props: {\n attrWorkspacePath: groupPath,\n workspacePath: projectPath,\n iid: issueIid,\n issueId,\n issuableType: TYPE_ISSUE,\n issuableAttribute: IssuableAttributeType.Epic,\n showWorkItemEpics: workItemEpics,\n },\n }),\n });\n}\n\nexport function mountEpicDropdown() {\n const el = document.querySelector('.js-epic-dropdown-root');\n const epicFormInput = document.getElementById('issue_epic_id');\n\n if (!el || !epicFormInput) {\n return null;\n }\n\n Vue.use(VueApollo);\n\n return new Vue({\n el,\n name: 'EpicDropdownRoot',\n apolloProvider: new VueApollo({\n defaultClient: createDefaultClient(),\n }),\n data() {\n return {\n epic: placeholderEpic,\n };\n },\n methods: {\n handleChange(epic) {\n this.epic = epic.id === null ? noEpic : epic;\n epicFormInput.setAttribute('value', getIdFromGraphQLId(this.epic.id));\n },\n },\n render(createElement) {\n return createElement(SidebarDropdown, {\n props: {\n attrWorkspacePath: el.dataset.groupPath,\n currentAttribute: this.epic,\n issuableAttribute: IssuableAttributeType.Epic,\n issuableType: TYPE_ISSUE,\n },\n on: {\n change: this.handleChange.bind(this),\n },\n });\n },\n });\n}\n\nfunction mountSidebarIterationWidget() {\n const el = document.querySelector('.js-sidebar-iteration-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { groupPath, canEdit, projectPath, issueIid, issueId } = el.dataset;\n\n return new Vue({\n el,\n name: 'SidebarIterationWidgetRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(canEdit),\n isClassicSidebar: true,\n },\n render: (createElement) =>\n createElement(SidebarIterationWidget, {\n props: {\n attrWorkspacePath: groupPath,\n workspacePath: projectPath,\n iid: issueIid,\n issuableType: TYPE_ISSUE,\n issueId,\n issuableAttribute: IssuableAttributeType.Iteration,\n },\n }),\n });\n}\n\nexport function mountIterationDropdown() {\n const el = document.querySelector('.js-iteration-dropdown-root');\n const iterationFormInput = document.getElementById('issue_iteration_id');\n\n if (!el || !iterationFormInput) {\n return null;\n }\n\n Vue.use(VueApollo);\n\n return new Vue({\n el,\n name: 'IterationDropdownRoot',\n apolloProvider: new VueApollo({\n defaultClient: createDefaultClient(),\n }),\n provide: {\n fullPath: el.dataset.fullPath,\n },\n methods: {\n getIdForIteration(iteration) {\n const noChangeIterationValue = '';\n const unSetIterationValue = '0';\n\n if (iteration === null) {\n return noChangeIterationValue;\n }\n if (iteration.id === null) {\n return unSetIterationValue;\n }\n\n return getIdFromGraphQLId(iteration.id);\n },\n handleIterationSelect(iteration) {\n iterationFormInput.setAttribute('value', this.getIdForIteration(iteration));\n },\n },\n render(createElement) {\n return createElement(IterationDropdown, {\n on: {\n onIterationSelect: this.handleIterationSelect.bind(this),\n },\n });\n },\n });\n}\n\nfunction mountSidebarEscalationPolicy() {\n const el = document.querySelector('.js-sidebar-escalation-policy-root');\n\n if (!el) {\n return null;\n }\n\n const { canEdit, projectPath, issueIid, hasEscalationPolicies, issueId } = el.dataset;\n\n return new Vue({\n el,\n name: 'SidebarEscalationPolicyRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(canEdit),\n isClassicSidebar: true,\n },\n render: (createElement) =>\n createElement(SidebarEscalationPolicy, {\n props: {\n projectPath,\n iid: issueIid,\n escalationsPossible: parseBoolean(hasEscalationPolicies),\n issueId,\n },\n }),\n });\n}\n\nexport const { getSidebarOptions } = CEMountSidebar;\n\nexport function mountSidebar(mediator, store) {\n CEMountSidebar.mountSidebar(mediator, store);\n mountSidebarWeightWidget();\n mountSidebarHealthStatusWidget();\n mountSidebarEpicWidget();\n mountSidebarIterationWidget();\n mountSidebarEscalationPolicy();\n mountSidebarCveIdRequest(store);\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('timeline-entry-item',{staticClass:\"note note-wrapper note-comment\",class:{ ..._vm.classNameBindings, 'internal-note': _vm.note.internal },attrs:{\"id\":_vm.noteAnchorId,\"data-award-url\":_vm.note.toggle_award_path,\"data-note-id\":_vm.note.id,\"data-testid\":\"noteable-note-container\"}},[(_vm.showMultiLineComment)?_c('div',{staticClass:\"gl-border-b gl-border-section gl-px-5 gl-py-3 gl-text-subtle\",attrs:{\"data-testid\":\"multiline-comment\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.__('Comment on lines %{startLine} to %{endLine}')},scopedSlots:_vm._u([{key:\"startLine\",fn:function(){return [_c('span',{class:_vm.getLineClasses(_vm.startLineNumber)},[_vm._v(_vm._s(_vm.startLineNumber))])]},proxy:true},{key:\"endLine\",fn:function(){return [_c('span',{class:_vm.getLineClasses(_vm.endLineNumber)},[_vm._v(_vm._s(_vm.endLineNumber))])]},proxy:true}],null,false,1413361638)})],1):_vm._e(),_vm._v(\" \"),(_vm.isMRDiffView)?_c('div',{staticClass:\"timeline-avatar gl-float-left gl-pt-2\"},[_c('gl-avatar-link',{staticClass:\"js-user-link\",attrs:{\"href\":_vm.author.path,\"data-user-id\":_vm.authorId,\"data-username\":_vm.author.username}},[_c('gl-avatar',{attrs:{\"src\":_vm.author.avatar_url,\"entity-name\":_vm.author.username,\"alt\":_vm.author.name,\"size\":24}}),_vm._v(\" \"),_vm._t(\"avatar-badge\")],2)],1):_c('div',{staticClass:\"timeline-avatar gl-float-left\"},[_c('gl-avatar-link',{staticClass:\"js-user-link gl-relative\",attrs:{\"href\":_vm.author.path,\"data-user-id\":_vm.authorId,\"data-username\":_vm.author.username}},[_c('gl-avatar',{attrs:{\"src\":_vm.author.avatar_url,\"entity-name\":_vm.author.username,\"alt\":_vm.author.name,\"size\":32}}),_vm._v(\" \"),_vm._t(\"avatar-badge\")],2)],1),_vm._v(\" \"),_c('div',{staticClass:\"timeline-content\"},[_c('div',{staticClass:\"note-header\"},[_c('note-header',{attrs:{\"author\":_vm.author,\"created-at\":_vm.note.created_at,\"note-id\":_vm.note.id,\"is-internal-note\":_vm.note.internal,\"is-imported\":_vm.note.imported,\"noteable-type\":_vm.noteableType,\"email-participant\":_vm.note.external_author},scopedSlots:_vm._u([{key:\"note-header-info\",fn:function(){return [_vm._t(\"note-header-info\")]},proxy:true}],null,true)},[_vm._v(\" \"),(_vm.commit)?_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.actionText),expression:\"actionText\"}]}):(_vm.note.created_at)?_c('span',{staticClass:\"gl-hidden sm:gl-inline\"},[_vm._v(\"·\")]):_vm._e()]),_vm._v(\" \"),_c('note-actions',{attrs:{\"author\":_vm.author,\"author-id\":_vm.authorId,\"note-id\":_vm.note.id,\"note-url\":_vm.note.noteable_note_url,\"access-level\":_vm.note.human_access,\"is-contributor\":_vm.note.is_contributor,\"is-author\":_vm.note.is_noteable_author,\"project-name\":_vm.note.project_name,\"noteable-type\":_vm.note.noteable_type,\"show-reply\":_vm.showReplyButton,\"can-edit\":_vm.canEdit,\"can-award-emoji\":_vm.canAwardEmoji,\"can-delete\":_vm.canEdit,\"can-report-as-abuse\":_vm.canReportAsAbuse,\"can-resolve\":_vm.canResolve,\"resolvable\":_vm.note.resolvable || _vm.note.isDraft,\"is-resolved\":_vm.note.resolved || _vm.note.resolve_discussion,\"is-resolving\":_vm.isResolving,\"resolved-by\":_vm.note.resolved_by,\"is-draft\":_vm.note.isDraft,\"resolve-discussion\":_vm.note.isDraft && _vm.note.resolve_discussion,\"discussion-id\":_vm.discussionId,\"award-path\":_vm.note.toggle_award_path},on:{\"handleEdit\":_vm.editHandler,\"handleDelete\":_vm.deleteHandler,\"handleResolve\":_vm.resolveHandler,\"startReplying\":function($event){return _vm.$emit('startReplying')},\"updateAssignees\":_vm.assigneesUpdate}})],1),_vm._v(\" \"),_c('div',{staticClass:\"timeline-discussion-body\"},[_vm._t(\"discussion-resolved-text\"),_vm._v(\" \"),_vm._t(\"note-body\",function(){return [_c('note-body',{ref:\"noteBody\",attrs:{\"note\":_vm.note,\"can-edit\":_vm.canEdit,\"line\":_vm.line,\"file\":_vm.diffFile,\"is-editing\":_vm.isEditing,\"autosave-key\":_vm.autosaveKey,\"restore-from-autosave\":_vm.restoreFromAutosave,\"help-page-path\":_vm.helpPagePath},on:{\"handleFormUpdate\":_vm.formUpdateHandler,\"cancelForm\":_vm.formCancelHandler}})]}),_vm._v(\" \"),_c('div',{staticClass:\"timeline-discussion-body-footer\"},[_vm._t(\"after-note-body\")],2)],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./timeline_event_button.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./timeline_event_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective, GlButton } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n i18n: {\n buttonText: __('Add comment to incident timeline'),\n addError: __('Error promoting the note to timeline event: %{error}'),\n addGenericError: __('Something went wrong while promoting the note to timeline event.'),\n },\n components: {\n GlButton,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n noteId: {\n type: [String, Number],\n required: true,\n },\n isPromotionInProgress: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n methods: {\n handleButtonClick() {\n this.$emit('click-promote-comment-to-event', {\n noteId: this.noteId,\n addError: this.$options.i18n.addError,\n addGenericError: this.$options.i18n.addGenericError,\n });\n },\n },\n};\n</script>\n<template>\n <span v-gl-tooltip :title=\"$options.i18n.buttonText\">\n <gl-button\n category=\"tertiary\"\n icon=\"clock\"\n :aria-label=\"$options.i18n.buttonText\"\n :disabled=\"isPromotionInProgress\"\n @click=\"handleButtonClick\"\n />\n </span>\n</template>\n","import { render, staticRenderFns } from \"./timeline_event_button.vue?vue&type=template&id=64e4bc06\"\nimport script from \"./timeline_event_button.vue?vue&type=script&lang=js\"\nexport * from \"./timeline_event_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"title\":_vm.$options.i18n.buttonText}},[_c('gl-button',{attrs:{\"category\":\"tertiary\",\"icon\":\"clock\",\"aria-label\":_vm.$options.i18n.buttonText,\"disabled\":_vm.isPromotionInProgress},on:{\"click\":_vm.handleButtonClick}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_actions.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_actions.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlTooltipDirective,\n GlButton,\n GlDisclosureDropdown,\n GlDisclosureDropdownItem,\n GlDisclosureDropdownGroup,\n} from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport Api from '~/api';\nimport resolvedStatusMixin from '~/batch_comments/mixins/resolved_status';\nimport { createAlert } from '~/alert';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { __, sprintf } from '~/locale';\nimport UserAccessRoleBadge from '~/vue_shared/components/user_access_role_badge.vue';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { splitCamelCase } from '~/lib/utils/text_utility';\nimport AbuseCategorySelector from '~/abuse_reports/components/abuse_category_selector.vue';\nimport ReplyButton from './note_actions/reply_button.vue';\nimport TimelineEventButton from './note_actions/timeline_event_button.vue';\n\nexport default {\n i18n: {\n editCommentLabel: __('Edit comment'),\n deleteCommentLabel: __('Delete comment'),\n moreActionsLabel: __('More actions'),\n reportAbuse: __('Report abuse'),\n },\n name: 'NoteActions',\n components: {\n AbuseCategorySelector,\n EmojiPicker: () => import('~/emoji/components/picker.vue'),\n GlButton,\n GlDisclosureDropdown,\n GlDisclosureDropdownItem,\n GlDisclosureDropdownGroup,\n ReplyButton,\n TimelineEventButton,\n UserAccessRoleBadge,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [resolvedStatusMixin, glFeatureFlagsMixin()],\n props: {\n author: {\n type: Object,\n required: true,\n },\n authorId: {\n type: Number,\n required: true,\n },\n noteId: {\n type: [String, Number],\n required: true,\n },\n noteUrl: {\n type: String,\n required: false,\n default: '',\n },\n accessLevel: {\n type: String,\n required: false,\n default: '',\n },\n isAuthor: {\n type: Boolean,\n required: false,\n default: false,\n },\n isContributor: {\n type: Boolean,\n required: false,\n default: false,\n },\n noteableType: {\n type: String,\n required: false,\n default: '',\n },\n projectName: {\n type: String,\n required: false,\n default: '',\n },\n showReply: {\n type: Boolean,\n required: true,\n },\n canEdit: {\n type: Boolean,\n required: false,\n default: false,\n },\n canAwardEmoji: {\n type: Boolean,\n required: false,\n default: false,\n },\n canDelete: {\n type: Boolean,\n required: false,\n default: false,\n },\n canResolve: {\n type: Boolean,\n required: false,\n default: false,\n },\n resolvable: {\n type: Boolean,\n required: false,\n default: false,\n },\n isResolved: {\n type: Boolean,\n required: false,\n default: false,\n },\n isResolving: {\n type: Boolean,\n required: false,\n default: false,\n },\n resolvedBy: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n canReportAsAbuse: {\n type: Boolean,\n required: true,\n },\n // This can be undefined when `canAwardEmoji` is false\n awardPath: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n isReportAbuseDrawerOpen: false,\n };\n },\n computed: {\n ...mapState(['isPromoteCommentToTimelineEventInProgress']),\n ...mapGetters(['getUserDataByProp', 'getNoteableData', 'canUserAddIncidentTimelineEvents']),\n shouldShowActionsDropdown() {\n return this.currentUserId;\n },\n showDeleteAction() {\n return this.canDelete && !this.canReportAsAbuse && !this.noteUrl;\n },\n currentUserId() {\n return this.getUserDataByProp('id');\n },\n isUserAssigned() {\n return this.assignees && this.assignees.some(({ id }) => id === this.author.id);\n },\n displayAssignUserText() {\n return this.isUserAssigned\n ? __('Unassign from commenting user')\n : __('Assign to commenting user');\n },\n targetType() {\n return this.getNoteableData.targetType;\n },\n noteableDisplayName() {\n return splitCamelCase(this.noteableType).toLowerCase();\n },\n assignees() {\n return this.getNoteableData.assignees || [];\n },\n isIssue() {\n return this.targetType === TYPE_ISSUE;\n },\n canAssign() {\n return this.getNoteableData.current_user?.can_set_issue_metadata && this.isIssue;\n },\n displayAuthorBadgeText() {\n return sprintf(__('This user is the author of this %{noteable}.'), {\n noteable: this.noteableDisplayName,\n });\n },\n displayMemberBadgeText() {\n return sprintf(__('This user has the %{access} role in the %{name} project.'), {\n access: this.accessLevel.toLowerCase(),\n name: this.projectName,\n });\n },\n displayContributorBadgeText() {\n return sprintf(__('This user has previously committed to the %{name} project.'), {\n name: this.projectName,\n });\n },\n resolveIcon() {\n if (!this.isResolving) {\n return this.isResolved ? 'check-circle-filled' : 'check-circle';\n }\n return null;\n },\n },\n methods: {\n ...mapActions(['toggleAwardRequest', 'promoteCommentToTimelineEvent']),\n onEdit() {\n this.$emit('handleEdit');\n },\n onDelete() {\n this.$emit('handleDelete');\n },\n onResolve() {\n this.$emit('handleResolve');\n },\n onAbuse() {\n this.toggleReportAbuseDrawer(true);\n },\n onCopyUrl() {\n this.$toast.show(__('Link copied to clipboard.'));\n },\n handleAssigneeUpdate(assignees) {\n this.$emit('updateAssignees', assignees);\n },\n assignUser() {\n let { assignees } = this;\n const { project_id, iid } = this.getNoteableData;\n\n if (this.isUserAssigned) {\n assignees = assignees.filter((assignee) => assignee.id !== this.author.id);\n } else {\n assignees.push({ id: this.author.id });\n }\n\n if (this.targetType === TYPE_ISSUE) {\n Api.updateIssue(project_id, iid, {\n assignee_ids: assignees.map((assignee) => assignee.id),\n })\n .then(() => this.handleAssigneeUpdate(assignees))\n .catch(() =>\n createAlert({\n message: __('Something went wrong while updating assignees'),\n }),\n );\n }\n },\n setAwardEmoji(awardName) {\n this.toggleAwardRequest({\n endpoint: this.awardPath,\n noteId: this.noteId,\n awardName,\n });\n },\n toggleReportAbuseDrawer(isOpen) {\n this.isReportAbuseDrawerOpen = isOpen;\n },\n },\n};\n</script>\n\n<template>\n <div class=\"note-actions\">\n <user-access-role-badge\n v-if=\"isAuthor\"\n v-gl-tooltip\n class=\"gl-mr-3 gl-hidden sm:gl-block\"\n :title=\"displayAuthorBadgeText\"\n >\n {{ __('Author') }}\n </user-access-role-badge>\n <user-access-role-badge\n v-if=\"accessLevel\"\n v-gl-tooltip\n class=\"gl-mr-3 gl-hidden sm:gl-block\"\n :title=\"displayMemberBadgeText\"\n >\n {{ accessLevel }}\n </user-access-role-badge>\n <user-access-role-badge\n v-else-if=\"isContributor\"\n v-gl-tooltip\n class=\"gl-mr-3 gl-hidden sm:gl-block\"\n :title=\"displayContributorBadgeText\"\n >\n {{ __('Contributor') }}\n </user-access-role-badge>\n <span class=\"note-actions__mobile-spacer\"></span>\n <gl-button\n v-if=\"canResolve\"\n ref=\"resolveButton\"\n v-gl-tooltip\n data-testid=\"resolve-line-button\"\n category=\"tertiary\"\n class=\"note-action-button\"\n :class=\"{ '!gl-text-success': isResolved }\"\n :title=\"resolveButtonTitle\"\n :aria-label=\"resolveButtonTitle\"\n :icon=\"resolveIcon\"\n :loading=\"isResolving\"\n @click=\"onResolve\"\n />\n <timeline-event-button\n v-if=\"canUserAddIncidentTimelineEvents\"\n :note-id=\"noteId\"\n :is-promotion-in-progress=\"isPromoteCommentToTimelineEventInProgress\"\n @click-promote-comment-to-event=\"promoteCommentToTimelineEvent\"\n />\n <emoji-picker\n v-if=\"canAwardEmoji\"\n toggle-class=\"add-reaction-button btn-default-tertiary\"\n data-testid=\"note-emoji-button\"\n @click=\"setAwardEmoji\"\n />\n <reply-button\n v-if=\"showReply\"\n ref=\"replyButton\"\n class=\"js-reply-button\"\n @startReplying=\"$emit('startReplying')\"\n />\n <gl-button\n v-if=\"canEdit\"\n v-gl-tooltip\n :title=\"$options.i18n.editCommentLabel\"\n :aria-label=\"$options.i18n.editCommentLabel\"\n icon=\"pencil\"\n category=\"tertiary\"\n class=\"note-action-button js-note-edit\"\n data-testid=\"note-edit-button\"\n @click=\"onEdit\"\n />\n <gl-button\n v-if=\"showDeleteAction\"\n v-gl-tooltip\n :title=\"$options.i18n.deleteCommentLabel\"\n :aria-label=\"$options.i18n.deleteCommentLabel\"\n icon=\"remove\"\n category=\"tertiary\"\n class=\"note-action-button js-note-delete\"\n @click=\"onDelete\"\n />\n <div v-else-if=\"shouldShowActionsDropdown\" class=\"more-actions dropdown\">\n <gl-disclosure-dropdown\n v-gl-tooltip\n :title=\"$options.i18n.moreActionsLabel\"\n :toggle-text=\"$options.i18n.moreActionsLabel\"\n text-sr-only\n icon=\"ellipsis_v\"\n category=\"tertiary\"\n placement=\"bottom-end\"\n class=\"note-action-button more-actions-toggle\"\n no-caret\n >\n <gl-disclosure-dropdown-item\n v-if=\"noteUrl\"\n class=\"js-btn-copy-note-link\"\n :data-clipboard-text=\"noteUrl\"\n @action=\"onCopyUrl\"\n >\n <template #list-item>\n {{ __('Copy link') }}\n </template>\n </gl-disclosure-dropdown-item>\n <gl-disclosure-dropdown-item\n v-if=\"canAssign\"\n data-testid=\"assign-user\"\n @action=\"assignUser\"\n >\n <template #list-item>\n {{ displayAssignUserText }}\n </template>\n </gl-disclosure-dropdown-item>\n <gl-disclosure-dropdown-group v-if=\"canReportAsAbuse || canEdit\" bordered>\n <gl-disclosure-dropdown-item\n v-if=\"canReportAsAbuse\"\n data-testid=\"report-abuse-button\"\n @action=\"onAbuse\"\n >\n <template #list-item>\n {{ $options.i18n.reportAbuse }}\n </template>\n </gl-disclosure-dropdown-item>\n <gl-disclosure-dropdown-item v-if=\"canEdit\" class=\"js-note-delete\" @action=\"onDelete\">\n <template #list-item>\n <span class=\"gl-text-danger\">{{ __('Delete comment') }}</span>\n </template>\n </gl-disclosure-dropdown-item>\n </gl-disclosure-dropdown-group>\n </gl-disclosure-dropdown>\n </div>\n <!-- IMPORTANT: show this component lazily because it causes layout thrashing -->\n <!-- https://gitlab.com/gitlab-org/gitlab/-/issues/331172#note_1269378396 -->\n <abuse-category-selector\n v-if=\"canReportAsAbuse && isReportAbuseDrawerOpen\"\n :reported-user-id=\"authorId\"\n :reported-from-url=\"noteUrl\"\n :show-drawer=\"isReportAbuseDrawerOpen\"\n @close-drawer=\"toggleReportAbuseDrawer(false)\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./note_actions.vue?vue&type=template&id=876917c8\"\nimport script from \"./note_actions.vue?vue&type=script&lang=js\"\nexport * from \"./note_actions.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"note-actions\"},[(_vm.isAuthor)?_c('user-access-role-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-mr-3 gl-hidden sm:gl-block\",attrs:{\"title\":_vm.displayAuthorBadgeText}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Author'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.accessLevel)?_c('user-access-role-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-mr-3 gl-hidden sm:gl-block\",attrs:{\"title\":_vm.displayMemberBadgeText}},[_vm._v(\"\\n \"+_vm._s(_vm.accessLevel)+\"\\n \")]):(_vm.isContributor)?_c('user-access-role-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-mr-3 gl-hidden sm:gl-block\",attrs:{\"title\":_vm.displayContributorBadgeText}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Contributor'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"note-actions__mobile-spacer\"}),_vm._v(\" \"),(_vm.canResolve)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],ref:\"resolveButton\",staticClass:\"note-action-button\",class:{ '!gl-text-success': _vm.isResolved },attrs:{\"data-testid\":\"resolve-line-button\",\"category\":\"tertiary\",\"title\":_vm.resolveButtonTitle,\"aria-label\":_vm.resolveButtonTitle,\"icon\":_vm.resolveIcon,\"loading\":_vm.isResolving},on:{\"click\":_vm.onResolve}}):_vm._e(),_vm._v(\" \"),(_vm.canUserAddIncidentTimelineEvents)?_c('timeline-event-button',{attrs:{\"note-id\":_vm.noteId,\"is-promotion-in-progress\":_vm.isPromoteCommentToTimelineEventInProgress},on:{\"click-promote-comment-to-event\":_vm.promoteCommentToTimelineEvent}}):_vm._e(),_vm._v(\" \"),(_vm.canAwardEmoji)?_c('emoji-picker',{attrs:{\"toggle-class\":\"add-reaction-button btn-default-tertiary\",\"data-testid\":\"note-emoji-button\"},on:{\"click\":_vm.setAwardEmoji}}):_vm._e(),_vm._v(\" \"),(_vm.showReply)?_c('reply-button',{ref:\"replyButton\",staticClass:\"js-reply-button\",on:{\"startReplying\":function($event){return _vm.$emit('startReplying')}}}):_vm._e(),_vm._v(\" \"),(_vm.canEdit)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"note-action-button js-note-edit\",attrs:{\"title\":_vm.$options.i18n.editCommentLabel,\"aria-label\":_vm.$options.i18n.editCommentLabel,\"icon\":\"pencil\",\"category\":\"tertiary\",\"data-testid\":\"note-edit-button\"},on:{\"click\":_vm.onEdit}}):_vm._e(),_vm._v(\" \"),(_vm.showDeleteAction)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"note-action-button js-note-delete\",attrs:{\"title\":_vm.$options.i18n.deleteCommentLabel,\"aria-label\":_vm.$options.i18n.deleteCommentLabel,\"icon\":\"remove\",\"category\":\"tertiary\"},on:{\"click\":_vm.onDelete}}):(_vm.shouldShowActionsDropdown)?_c('div',{staticClass:\"more-actions dropdown\"},[_c('gl-disclosure-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"note-action-button more-actions-toggle\",attrs:{\"title\":_vm.$options.i18n.moreActionsLabel,\"toggle-text\":_vm.$options.i18n.moreActionsLabel,\"text-sr-only\":\"\",\"icon\":\"ellipsis_v\",\"category\":\"tertiary\",\"placement\":\"bottom-end\",\"no-caret\":\"\"}},[(_vm.noteUrl)?_c('gl-disclosure-dropdown-item',{staticClass:\"js-btn-copy-note-link\",attrs:{\"data-clipboard-text\":_vm.noteUrl},on:{\"action\":_vm.onCopyUrl},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.__('Copy link'))+\"\\n \")]},proxy:true}],null,false,618784014)}):_vm._e(),_vm._v(\" \"),(_vm.canAssign)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"assign-user\"},on:{\"action\":_vm.assignUser},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.displayAssignUserText)+\"\\n \")]},proxy:true}],null,false,3812251101)}):_vm._e(),_vm._v(\" \"),(_vm.canReportAsAbuse || _vm.canEdit)?_c('gl-disclosure-dropdown-group',{attrs:{\"bordered\":\"\"}},[(_vm.canReportAsAbuse)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"report-abuse-button\"},on:{\"action\":_vm.onAbuse},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.reportAbuse)+\"\\n \")]},proxy:true}],null,false,3009725790)}):_vm._e(),_vm._v(\" \"),(_vm.canEdit)?_c('gl-disclosure-dropdown-item',{staticClass:\"js-note-delete\",on:{\"action\":_vm.onDelete},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('span',{staticClass:\"gl-text-danger\"},[_vm._v(_vm._s(_vm.__('Delete comment')))])]},proxy:true}],null,false,1412744113)}):_vm._e()],1):_vm._e()],1)],1):_vm._e(),_vm._v(\" \"),(_vm.canReportAsAbuse && _vm.isReportAbuseDrawerOpen)?_c('abuse-category-selector',{attrs:{\"reported-user-id\":_vm.authorId,\"reported-from-url\":_vm.noteUrl,\"show-drawer\":_vm.isReportAbuseDrawerOpen},on:{\"close-drawer\":function($event){return _vm.toggleReportAbuseDrawer(false)}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_attachment.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_attachment.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\n\nexport default {\n name: 'NoteAttachment',\n components: {\n GlIcon,\n },\n props: {\n attachment: {\n type: Object,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <div class=\"note-attachment\">\n <a\n v-if=\"attachment.image\"\n ref=\"attachmentImage\"\n :href=\"attachment.url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <img :src=\"attachment.url\" class=\"note-image-attach col-lg-4\" />\n </a>\n <div class=\"attachment\">\n <a\n v-if=\"attachment.url\"\n ref=\"attachmentUrl\"\n :href=\"attachment.url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <gl-icon name=\"paperclip\" /> {{ attachment.filename }}\n </a>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./note_attachment.vue?vue&type=template&id=ff0e6db4\"\nimport script from \"./note_attachment.vue?vue&type=script&lang=js\"\nexport * from \"./note_attachment.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"note-attachment\"},[(_vm.attachment.image)?_c('a',{ref:\"attachmentImage\",attrs:{\"href\":_vm.attachment.url,\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_c('img',{staticClass:\"note-image-attach col-lg-4\",attrs:{\"src\":_vm.attachment.url}})]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"attachment\"},[(_vm.attachment.url)?_c('a',{ref:\"attachmentUrl\",attrs:{\"href\":_vm.attachment.url,\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_c('gl-icon',{attrs:{\"name\":\"paperclip\"}}),_vm._v(\" \"+_vm._s(_vm.attachment.filename)+\"\\n \")],1):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_awards_list.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_awards_list.vue?vue&type=script&lang=js\"","<script>\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters } from 'vuex';\nimport { createAlert } from '~/alert';\nimport { __ } from '~/locale';\nimport AwardsList from '~/vue_shared/components/awards_list.vue';\n\nexport default {\n components: {\n AwardsList,\n },\n props: {\n awards: {\n type: Array,\n required: true,\n },\n toggleAwardPath: {\n type: String,\n required: true,\n },\n noteAuthorId: {\n type: Number,\n required: true,\n },\n noteId: {\n type: String,\n required: true,\n },\n canAwardEmoji: {\n type: Boolean,\n required: true,\n },\n },\n computed: {\n ...mapGetters(['getUserData']),\n isAuthoredByMe() {\n return this.noteAuthorId === this.getUserData.id;\n },\n },\n methods: {\n ...mapActions(['toggleAwardRequest']),\n handleAward(awardName) {\n const data = {\n endpoint: this.toggleAwardPath,\n noteId: this.noteId,\n awardName,\n };\n\n this.toggleAwardRequest(data).catch(() =>\n createAlert({\n message: __('Something went wrong on our end.'),\n }),\n );\n },\n },\n};\n</script>\n\n<template>\n <div class=\"note-awards\">\n <awards-list\n :awards=\"awards\"\n :can-award-emoji=\"canAwardEmoji\"\n :current-user-id=\"getUserData.id\"\n @award=\"handleAward($event)\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./note_awards_list.vue?vue&type=template&id=29bdaae6\"\nimport script from \"./note_awards_list.vue?vue&type=script&lang=js\"\nexport * from \"./note_awards_list.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"note-awards\"},[_c('awards-list',{attrs:{\"awards\":_vm.awards,\"can-award-emoji\":_vm.canAwardEmoji,\"current-user-id\":_vm.getUserData.id},on:{\"award\":function($event){return _vm.handleAward($event)}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_body.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_body.vue?vue&type=script&lang=js\"","<script>\nimport { escape } from 'lodash';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { __ } from '~/locale';\nimport Suggestions from '~/vue_shared/components/markdown/suggestions.vue';\nimport { renderGFM } from '~/behaviors/markdown/render_gfm';\nimport NoteAttachment from './note_attachment.vue';\nimport NoteAwardsList from './note_awards_list.vue';\nimport NoteEditedText from './note_edited_text.vue';\nimport NoteForm from './note_form.vue';\n\nexport default {\n components: {\n NoteEditedText,\n NoteAwardsList,\n NoteAttachment,\n NoteForm,\n Suggestions,\n DuoCodeReviewFeedback: () =>\n import('ee_component/notes/components/duo_code_review_feedback.vue'),\n },\n directives: {\n SafeHtml,\n },\n props: {\n note: {\n type: Object,\n required: true,\n },\n line: {\n type: Object,\n required: false,\n default: null,\n },\n file: {\n type: Object,\n required: false,\n default: null,\n },\n canEdit: {\n type: Boolean,\n required: true,\n },\n isEditing: {\n type: Boolean,\n required: false,\n default: false,\n },\n helpPagePath: {\n type: String,\n required: false,\n default: '',\n },\n autosaveKey: {\n type: String,\n required: false,\n default: '',\n },\n restoreFromAutosave: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n ...mapGetters(['getDiscussion', 'suggestionsCount', 'getSuggestionsFilePaths']),\n ...mapGetters('diffs', ['suggestionCommitMessage']),\n ...mapState({\n batchSuggestionsInfo: (state) => state.notes.batchSuggestionsInfo,\n failedToLoadMetadata: (state) => state.page.failedToLoadMetadata,\n }),\n discussion() {\n if (!this.note.isDraft) return {};\n\n return this.getDiscussion(this.note.discussion_id);\n },\n noteBody() {\n return this.note.note;\n },\n saveButtonTitle() {\n return this.note.internal ? __('Save internal note') : __('Save comment');\n },\n hasSuggestion() {\n return this.note.suggestions && this.note.suggestions.length;\n },\n lineType() {\n return this.line ? this.line.type : null;\n },\n commitMessage() {\n // Please see this issue comment for why these\n // are hard-coded to 1:\n // https://gitlab.com/gitlab-org/gitlab/-/issues/291027#note_468308022\n const suggestionsCount = this.batchSuggestionsInfo.length || 1;\n const batchFilePaths = this.getSuggestionsFilePaths();\n const filePaths = batchFilePaths.length ? batchFilePaths : [this.file.file_path];\n const filesCount = filePaths.length;\n // Can be potentially replaced by calculated co-authors of a particular suggestion or batched suggestion\n const coAuthoredByTrailer = __('Co-authored-by: ...');\n const suggestion = this.suggestionCommitMessage({\n file_paths: filePaths.join(', '),\n suggestions_count: suggestionsCount,\n files_count: filesCount,\n co_authored_by: coAuthoredByTrailer,\n });\n\n return escape(suggestion);\n },\n },\n mounted() {\n this.renderGFM();\n },\n updated() {\n this.renderGFM();\n },\n methods: {\n ...mapActions([\n 'submitSuggestion',\n 'submitSuggestionBatch',\n 'addSuggestionInfoToBatch',\n 'removeSuggestionInfoFromBatch',\n ]),\n renderGFM() {\n renderGFM(this.$refs['note-body']);\n },\n // eslint-disable-next-line max-params\n handleFormUpdate(noteText, parentElement, callback, resolveDiscussion) {\n this.$emit('handleFormUpdate', { noteText, parentElement, callback, resolveDiscussion });\n },\n formCancelHandler(shouldConfirm, isDirty) {\n this.$emit('cancelForm', { shouldConfirm, isDirty });\n },\n applySuggestion({ suggestionId, flashContainer, callback = () => {}, message }) {\n const { discussion_id: discussionId, id: noteId } = this.note;\n\n return this.submitSuggestion({\n discussionId,\n noteId,\n suggestionId,\n flashContainer,\n message,\n }).then(callback);\n },\n applySuggestionBatch({ message, flashContainer }) {\n return this.submitSuggestionBatch({ message, flashContainer });\n },\n addSuggestionToBatch(suggestionId) {\n const { discussion_id: discussionId, id: noteId } = this.note;\n\n this.addSuggestionInfoToBatch({ suggestionId, discussionId, noteId });\n },\n removeSuggestionFromBatch(suggestionId) {\n this.removeSuggestionInfoFromBatch(suggestionId);\n },\n },\n safeHtmlConfig: {\n ADD_TAGS: ['use', 'gl-emoji', 'copy-code'],\n },\n};\n</script>\n\n<template>\n <div\n ref=\"note-body\"\n :class=\"{\n 'js-task-list-container': canEdit,\n }\"\n class=\"note-body\"\n >\n <suggestions\n v-if=\"hasSuggestion && !isEditing\"\n :suggestions=\"note.suggestions\"\n :suggestions-count=\"suggestionsCount\"\n :batch-suggestions-info=\"batchSuggestionsInfo\"\n :note-html=\"note.note_html\"\n :line-type=\"lineType\"\n :help-page-path=\"helpPagePath\"\n :default-commit-message=\"commitMessage\"\n :failed-to-load-metadata=\"failedToLoadMetadata\"\n @apply=\"applySuggestion\"\n @applyBatch=\"applySuggestionBatch\"\n @addToBatch=\"addSuggestionToBatch\"\n @removeFromBatch=\"removeSuggestionFromBatch\"\n />\n <div v-else v-safe-html:[$options.safeHtmlConfig]=\"note.note_html\" class=\"note-text md\"></div>\n <duo-code-review-feedback\n v-if=\"note.author.user_type === 'duo_code_review_bot' && note.type !== 'DiffNote'\"\n class=\"gl-mt-3\"\n data-testid=\"code-review-feedback\"\n />\n <note-form\n v-if=\"isEditing\"\n ref=\"noteForm\"\n :note-body=\"noteBody\"\n :note-id=\"note.id\"\n :line=\"line\"\n :note=\"note\"\n :diff-file=\"file\"\n :save-button-title=\"saveButtonTitle\"\n :help-page-path=\"helpPagePath\"\n :discussion=\"discussion\"\n :resolve-discussion=\"note.resolve_discussion\"\n :autosave-key=\"autosaveKey\"\n :restore-from-autosave=\"restoreFromAutosave\"\n @handleFormUpdate=\"handleFormUpdate\"\n @cancelForm=\"formCancelHandler\"\n />\n <!-- eslint-disable vue/no-mutating-props -->\n <textarea\n v-if=\"canEdit\"\n v-model=\"note.note\"\n :data-update-url=\"note.path\"\n class=\"hidden js-task-list-field\"\n dir=\"auto\"\n ></textarea>\n <!-- eslint-enable vue/no-mutating-props -->\n <note-edited-text\n v-if=\"note.last_edited_at\"\n :edited-at=\"note.last_edited_at\"\n :edited-by=\"note.last_edited_by\"\n :action-text=\"__('Edited')\"\n class=\"note_edited_ago\"\n />\n <note-awards-list\n v-if=\"note.award_emoji && note.award_emoji.length\"\n :note-id=\"note.id\"\n :note-author-id=\"note.author.id\"\n :awards=\"note.award_emoji\"\n :toggle-award-path=\"note.toggle_award_path\"\n :can-award-emoji=\"note.current_user.can_award_emoji\"\n />\n <note-attachment v-if=\"note.attachment\" :attachment=\"note.attachment\" />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./note_body.vue?vue&type=template&id=40f5e1ee\"\nimport script from \"./note_body.vue?vue&type=script&lang=js\"\nexport * from \"./note_body.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"note-body\",staticClass:\"note-body\",class:{\n 'js-task-list-container': _vm.canEdit,\n }},[(_vm.hasSuggestion && !_vm.isEditing)?_c('suggestions',{attrs:{\"suggestions\":_vm.note.suggestions,\"suggestions-count\":_vm.suggestionsCount,\"batch-suggestions-info\":_vm.batchSuggestionsInfo,\"note-html\":_vm.note.note_html,\"line-type\":_vm.lineType,\"help-page-path\":_vm.helpPagePath,\"default-commit-message\":_vm.commitMessage,\"failed-to-load-metadata\":_vm.failedToLoadMetadata},on:{\"apply\":_vm.applySuggestion,\"applyBatch\":_vm.applySuggestionBatch,\"addToBatch\":_vm.addSuggestionToBatch,\"removeFromBatch\":_vm.removeSuggestionFromBatch}}):_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(_vm.note.note_html),expression:\"note.note_html\",arg:_vm.$options.safeHtmlConfig}],staticClass:\"note-text md\"}),_vm._v(\" \"),(_vm.note.author.user_type === 'duo_code_review_bot' && _vm.note.type !== 'DiffNote')?_c('duo-code-review-feedback',{staticClass:\"gl-mt-3\",attrs:{\"data-testid\":\"code-review-feedback\"}}):_vm._e(),_vm._v(\" \"),(_vm.isEditing)?_c('note-form',{ref:\"noteForm\",attrs:{\"note-body\":_vm.noteBody,\"note-id\":_vm.note.id,\"line\":_vm.line,\"note\":_vm.note,\"diff-file\":_vm.file,\"save-button-title\":_vm.saveButtonTitle,\"help-page-path\":_vm.helpPagePath,\"discussion\":_vm.discussion,\"resolve-discussion\":_vm.note.resolve_discussion,\"autosave-key\":_vm.autosaveKey,\"restore-from-autosave\":_vm.restoreFromAutosave},on:{\"handleFormUpdate\":_vm.handleFormUpdate,\"cancelForm\":_vm.formCancelHandler}}):_vm._e(),_vm._v(\" \"),(_vm.canEdit)?_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.note.note),expression:\"note.note\"}],staticClass:\"hidden js-task-list-field\",attrs:{\"data-update-url\":_vm.note.path,\"dir\":\"auto\"},domProps:{\"value\":(_vm.note.note)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.note, \"note\", $event.target.value)}}}):_vm._e(),_vm._v(\" \"),(_vm.note.last_edited_at)?_c('note-edited-text',{staticClass:\"note_edited_ago\",attrs:{\"edited-at\":_vm.note.last_edited_at,\"edited-by\":_vm.note.last_edited_by,\"action-text\":_vm.__('Edited')}}):_vm._e(),_vm._v(\" \"),(_vm.note.award_emoji && _vm.note.award_emoji.length)?_c('note-awards-list',{attrs:{\"note-id\":_vm.note.id,\"note-author-id\":_vm.note.author.id,\"awards\":_vm.note.award_emoji,\"toggle-award-path\":_vm.note.toggle_award_path,\"can-award-emoji\":_vm.note.current_user.can_award_emoji}}):_vm._e(),_vm._v(\" \"),(_vm.note.attachment)?_c('note-attachment',{attrs:{\"attachment\":_vm.note.attachment}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./noteable_note.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./noteable_note.vue?vue&type=script&lang=js\"","<script>\nimport { GlSprintf, GlAvatarLink, GlAvatar } from '@gitlab/ui';\nimport { escape } from 'lodash';\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapActions } from 'vuex';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal';\nimport { INLINE_DIFF_LINES_KEY } from '~/diffs/constants';\nimport { createAlert } from '~/alert';\nimport { HTTP_STATUS_GONE } from '~/lib/utils/http_status';\nimport { ignoreWhilePending } from '~/lib/utils/ignore_while_pending';\nimport { truncateSha } from '~/lib/utils/text_utility';\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\nimport { __, s__, sprintf } from '~/locale';\nimport { renderGFM } from '~/behaviors/markdown/render_gfm';\nimport { detectAndConfirmSensitiveTokens } from '~/lib/utils/secret_detection';\nimport eventHub from '../event_hub';\nimport noteable from '../mixins/noteable';\nimport resolvable from '../mixins/resolvable';\nimport { renderMarkdown, updateNoteErrorMessage } from '../utils';\nimport {\n getStartLineNumber,\n getEndLineNumber,\n getLineClasses,\n commentLineOptions,\n} from './multiline_comment_utils';\nimport NoteActions from './note_actions.vue';\nimport NoteBody from './note_body.vue';\nimport NoteHeader from './note_header.vue';\n\nexport default {\n name: 'NoteableNote',\n components: {\n GlSprintf,\n NoteHeader,\n NoteActions,\n NoteBody,\n TimelineEntryItem,\n GlAvatarLink,\n GlAvatar,\n },\n directives: {\n SafeHtml,\n },\n mixins: [noteable, resolvable],\n inject: {\n reportAbusePath: {\n default: '',\n },\n },\n props: {\n note: {\n type: Object,\n required: true,\n },\n line: {\n type: Object,\n required: false,\n default: null,\n },\n discussionFile: {\n type: Object,\n required: false,\n default: null,\n },\n helpPagePath: {\n type: String,\n required: false,\n default: '',\n },\n commit: {\n type: Object,\n required: false,\n default: () => null,\n },\n showReplyButton: {\n type: Boolean,\n required: false,\n default: false,\n },\n diffLines: {\n type: Array,\n required: false,\n default: null,\n },\n discussionRoot: {\n type: Boolean,\n required: false,\n default: false,\n },\n discussionResolvePath: {\n type: String,\n required: false,\n default: '',\n },\n isOverviewTab: {\n type: Boolean,\n required: false,\n default: false,\n },\n shouldScrollToNote: {\n type: Boolean,\n required: false,\n default: true,\n },\n discussion: {\n type: Object,\n required: false,\n default: null,\n },\n autosaveKey: {\n type: String,\n required: false,\n default: '',\n },\n restoreFromAutosave: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n isEditingLocal: false,\n isDeleting: false,\n isRequesting: false,\n isResolving: false,\n commentLineStart: {},\n resolveAsThread: true,\n };\n },\n computed: {\n ...mapGetters('diffs', ['getDiffFileByHash']),\n ...mapGetters(['targetNoteHash', 'getNoteableData', 'getUserData', 'commentsDisabled']),\n isEditing: {\n get() {\n return this.note.isEditing ?? this.isEditingLocal;\n },\n set(value) {\n this.isEditingLocal = value;\n if (value) {\n this.$emit('handleEdit');\n } else {\n this.$emit('cancelForm');\n }\n },\n },\n author() {\n return this.note.author;\n },\n authorId() {\n return getIdFromGraphQLId(this.author.id);\n },\n commentType() {\n return this.note.internal ? __('internal note') : __('comment');\n },\n classNameBindings() {\n return {\n [`note-row-${this.note.id}`]: true,\n 'is-editing': this.isEditing && !this.isRequesting,\n 'is-requesting being-posted': this.isRequesting,\n 'disabled-content': this.isDeleting,\n target: this.isTarget,\n 'is-editable': this.canEdit,\n };\n },\n canAwardEmoji() {\n return this.note.current_user?.can_award_emoji ?? false;\n },\n canEdit() {\n return this.note.current_user?.can_edit ?? false;\n },\n canReportAsAbuse() {\n return Boolean(this.reportAbusePath) && this.authorId !== this.getUserData.id;\n },\n noteAnchorId() {\n return `note_${this.note.id}`;\n },\n isTarget() {\n return this.targetNoteHash === this.noteAnchorId;\n },\n discussionId() {\n if (this.discussion) {\n return this.discussion.id;\n }\n return '';\n },\n actionText() {\n if (!this.commit) {\n return '';\n }\n\n // We need to do this to ensure we have the correct sentence order\n // when translating this as the sentence order may change from one\n // language to the next. See:\n // https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/24427#note_133713771\n const { id, url } = this.commit;\n const commitLink = `<a class=\"commit-sha monospace\" href=\"${escape(url)}\">${truncateSha(\n id,\n )}</a>`;\n return sprintf(s__('MergeRequests|commented on commit %{commitLink}'), { commitLink }, false);\n },\n isDraft() {\n return this.note.isDraft;\n },\n canResolve() {\n if (!this.discussionRoot) return false;\n if (!this.note.resolvable) return false;\n\n return this.note.current_user?.can_resolve_discussion;\n },\n lineRange() {\n return this.note.position?.line_range;\n },\n startLineNumber() {\n return getStartLineNumber(this.lineRange);\n },\n endLineNumber() {\n return getEndLineNumber(this.lineRange);\n },\n showMultiLineComment() {\n if (\n !this.discussionRoot ||\n this.startLineNumber.length === 0 ||\n this.endLineNumber.length === 0\n )\n return false;\n\n return this.line && this.startLineNumber !== this.endLineNumber;\n },\n commentLineOptions() {\n const lines = this.diffFile[INLINE_DIFF_LINES_KEY].length;\n return commentLineOptions(lines, this.commentLineStart, this.line.line_code);\n },\n diffFile() {\n let fileResolvedFromAvailableSource;\n\n if (this.commentLineStart.line_code) {\n const lineCode = this.commentLineStart.line_code.split('_')[0];\n fileResolvedFromAvailableSource = this.getDiffFileByHash(lineCode);\n }\n\n if (!fileResolvedFromAvailableSource && this.discussionFile) {\n fileResolvedFromAvailableSource = this.discussionFile;\n }\n\n return fileResolvedFromAvailableSource || null;\n },\n isMRDiffView() {\n const isFileComment = this.note.position?.position_type === 'file';\n return !this.isOverviewTab && (this.line || isFileComment);\n },\n },\n created() {\n const line = this.note.position?.line_range?.start || this.line;\n\n this.commentLineStart = line\n ? {\n line_code: line.line_code,\n type: line.type,\n old_line: line.old_line,\n new_line: line.new_line,\n }\n : {};\n\n eventHub.$on('enterEditMode', ({ noteId }) => {\n if (noteId === this.note.id) {\n this.isEditing = true;\n this.setSelectedCommentPositionHover();\n this.$el.scrollIntoView();\n }\n });\n },\n\n mounted() {\n if (this.isTarget && this.shouldScrollToNote) {\n this.$el.scrollIntoView({ duration: 0 });\n }\n },\n\n methods: {\n ...mapActions([\n 'deleteNote',\n 'removeNote',\n 'updateNote',\n 'toggleResolveNote',\n 'updateAssignees',\n 'setSelectedCommentPositionHover',\n ]),\n editHandler() {\n this.isEditing = true;\n this.setSelectedCommentPositionHover();\n },\n async deleteHandler() {\n let { commentType } = this;\n\n if (this.note.isDraft) {\n // Draft internal notes (i.e. MR review comments) are not supported.\n commentType = __('pending comment');\n }\n\n const msg = sprintf(__('Are you sure you want to delete this %{commentType}?'), {\n commentType,\n });\n const confirmed = await confirmAction(msg, {\n primaryBtnVariant: 'danger',\n primaryBtnText: this.note.internal ? __('Delete internal note') : __('Delete comment'),\n });\n\n if (confirmed) {\n this.isDeleting = true;\n this.$emit('handleDeleteNote', this.note);\n\n if (this.note.isDraft) return;\n\n this.deleteNote(this.note)\n .then(() => {\n this.isDeleting = false;\n })\n .catch(() => {\n createAlert({\n message: __('Something went wrong while deleting your note. Please try again.'),\n });\n this.isDeleting = false;\n });\n }\n },\n updateSuccess() {\n this.isEditingLocal = false;\n this.isRequesting = false;\n this.oldContent = null;\n renderGFM(this.$refs.noteBody.$el);\n this.$emit('updateSuccess');\n },\n async formUpdateHandler({ noteText, callback, resolveDiscussion }) {\n this.$emit('handleUpdateNote', {\n note: this.note,\n noteText,\n resolveDiscussion,\n flashContainer: this.$el,\n callback: () => this.updateSuccess(),\n errorCallback: () => callback(),\n });\n\n if (this.isDraft) return;\n\n const confirmSubmit = await detectAndConfirmSensitiveTokens({ content: noteText });\n\n if (!confirmSubmit) {\n callback();\n return;\n }\n\n const data = {\n endpoint: this.note.path,\n note: {\n target_type: this.getNoteableData.targetType,\n target_id: this.note.noteable_id,\n note: { note: noteText },\n },\n };\n\n this.isRequesting = true;\n this.oldContent = this.note.note_html;\n // eslint-disable-next-line vue/no-mutating-props\n this.note.note_html = renderMarkdown(noteText);\n\n this.updateNote(data)\n .then(() => {\n this.updateSuccess();\n callback();\n })\n .catch((e) => {\n if (e.status === HTTP_STATUS_GONE) {\n this.removeNote(this.note);\n this.updateSuccess();\n callback();\n } else {\n this.isRequesting = false;\n this.isEditing = true;\n this.setSelectedCommentPositionHover();\n this.$nextTick(() => {\n this.handleUpdateError(e); // The 'e' parameter is being used in JH, don't remove it\n this.recoverNoteContent();\n callback();\n });\n }\n });\n },\n handleUpdateError(e) {\n createAlert({\n message: updateNoteErrorMessage(e),\n parent: this.$el,\n });\n },\n formCancelHandler: ignoreWhilePending(async function formCancelHandler({\n shouldConfirm,\n isDirty,\n }) {\n if (shouldConfirm && isDirty) {\n const msg = sprintf(__('Are you sure you want to cancel editing this %{commentType}?'), {\n commentType: this.commentType,\n });\n const confirmed = await confirmAction(msg, {\n primaryBtnText: __('Cancel editing'),\n primaryBtnVariant: 'danger',\n secondaryBtnVariant: 'default',\n secondaryBtnText: __('Continue editing'),\n hideCancel: true,\n });\n if (!confirmed) return;\n }\n this.recoverNoteContent();\n this.isEditing = false;\n }),\n recoverNoteContent() {\n if (this.oldContent) {\n // eslint-disable-next-line vue/no-mutating-props\n this.note.note_html = this.oldContent;\n }\n },\n getLineClasses(lineNumber) {\n return getLineClasses(lineNumber);\n },\n assigneesUpdate(assignees) {\n this.updateAssignees(assignees);\n },\n },\n};\n</script>\n\n<template>\n <timeline-entry-item\n :id=\"noteAnchorId\"\n :class=\"{ ...classNameBindings, 'internal-note': note.internal }\"\n :data-award-url=\"note.toggle_award_path\"\n :data-note-id=\"note.id\"\n class=\"note note-wrapper note-comment\"\n data-testid=\"noteable-note-container\"\n >\n <div\n v-if=\"showMultiLineComment\"\n data-testid=\"multiline-comment\"\n class=\"gl-border-b gl-border-section gl-px-5 gl-py-3 gl-text-subtle\"\n >\n <gl-sprintf :message=\"__('Comment on lines %{startLine} to %{endLine}')\">\n <template #startLine>\n <span :class=\"getLineClasses(startLineNumber)\">{{ startLineNumber }}</span>\n </template>\n <template #endLine>\n <span :class=\"getLineClasses(endLineNumber)\">{{ endLineNumber }}</span>\n </template>\n </gl-sprintf>\n </div>\n\n <div v-if=\"isMRDiffView\" class=\"timeline-avatar gl-float-left gl-pt-2\">\n <gl-avatar-link\n :href=\"author.path\"\n :data-user-id=\"authorId\"\n :data-username=\"author.username\"\n class=\"js-user-link\"\n >\n <gl-avatar\n :src=\"author.avatar_url\"\n :entity-name=\"author.username\"\n :alt=\"author.name\"\n :size=\"24\"\n />\n\n <slot name=\"avatar-badge\"></slot>\n </gl-avatar-link>\n </div>\n\n <div v-else class=\"timeline-avatar gl-float-left\">\n <gl-avatar-link\n :href=\"author.path\"\n :data-user-id=\"authorId\"\n :data-username=\"author.username\"\n class=\"js-user-link gl-relative\"\n >\n <gl-avatar\n :src=\"author.avatar_url\"\n :entity-name=\"author.username\"\n :alt=\"author.name\"\n :size=\"32\"\n />\n\n <slot name=\"avatar-badge\"></slot>\n </gl-avatar-link>\n </div>\n\n <div class=\"timeline-content\">\n <div class=\"note-header\">\n <note-header\n :author=\"author\"\n :created-at=\"note.created_at\"\n :note-id=\"note.id\"\n :is-internal-note=\"note.internal\"\n :is-imported=\"note.imported\"\n :noteable-type=\"noteableType\"\n :email-participant=\"note.external_author\"\n >\n <template #note-header-info>\n <slot name=\"note-header-info\"></slot>\n </template>\n <span v-if=\"commit\" v-safe-html=\"actionText\"></span>\n <span v-else-if=\"note.created_at\" class=\"gl-hidden sm:gl-inline\">·</span>\n </note-header>\n <note-actions\n :author=\"author\"\n :author-id=\"authorId\"\n :note-id=\"note.id\"\n :note-url=\"note.noteable_note_url\"\n :access-level=\"note.human_access\"\n :is-contributor=\"note.is_contributor\"\n :is-author=\"note.is_noteable_author\"\n :project-name=\"note.project_name\"\n :noteable-type=\"note.noteable_type\"\n :show-reply=\"showReplyButton\"\n :can-edit=\"canEdit\"\n :can-award-emoji=\"canAwardEmoji\"\n :can-delete=\"canEdit\"\n :can-report-as-abuse=\"canReportAsAbuse\"\n :can-resolve=\"canResolve\"\n :resolvable=\"note.resolvable || note.isDraft\"\n :is-resolved=\"note.resolved || note.resolve_discussion\"\n :is-resolving=\"isResolving\"\n :resolved-by=\"note.resolved_by\"\n :is-draft=\"note.isDraft\"\n :resolve-discussion=\"note.isDraft && note.resolve_discussion\"\n :discussion-id=\"discussionId\"\n :award-path=\"note.toggle_award_path\"\n @handleEdit=\"editHandler\"\n @handleDelete=\"deleteHandler\"\n @handleResolve=\"resolveHandler\"\n @startReplying=\"$emit('startReplying')\"\n @updateAssignees=\"assigneesUpdate\"\n />\n </div>\n <div class=\"timeline-discussion-body\">\n <slot name=\"discussion-resolved-text\"></slot>\n <slot name=\"note-body\">\n <note-body\n ref=\"noteBody\"\n :note=\"note\"\n :can-edit=\"canEdit\"\n :line=\"line\"\n :file=\"diffFile\"\n :is-editing=\"isEditing\"\n :autosave-key=\"autosaveKey\"\n :restore-from-autosave=\"restoreFromAutosave\"\n :help-page-path=\"helpPagePath\"\n @handleFormUpdate=\"formUpdateHandler\"\n @cancelForm=\"formCancelHandler\"\n />\n </slot>\n <div class=\"timeline-discussion-body-footer\">\n <slot name=\"after-note-body\"></slot>\n </div>\n </div>\n </div>\n </timeline-entry-item>\n</template>\n","import { render, staticRenderFns } from \"./noteable_note.vue?vue&type=template&id=793c0ad5\"\nimport script from \"./noteable_note.vue?vue&type=script&lang=js\"\nexport * from \"./noteable_note.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestReference\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"full\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":201}};\n doc.loc.source = {\"body\":\"query mergeRequestReference($fullPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: mergeRequest(iid: $iid) {\\n id\\n reference(full: true)\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"mergeRequestReference\"] = oneQuery(doc, \"mergeRequestReference\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateIssueConfidential\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueSetConfidentialInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetConfidential\"},\"name\":{\"kind\":\"Name\",\"value\":\"issueSetConfidential\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":209}};\n doc.loc.source = {\"body\":\"mutation updateIssueConfidential($input: IssueSetConfidentialInput!) {\\n issuableSetConfidential: issueSetConfidential(input: $input) {\\n issuable: issue {\\n id\\n confidential\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateIssueConfidential\"] = oneQuery(doc, \"updateIssueConfidential\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"username\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":80}};\n doc.loc.source = {\"body\":\"fragment User on User {\\n id\\n avatarUrl\\n name\\n username\\n webUrl\\n webPath\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"User\"] = oneQuery(doc, \"User\");\n \n","import axios from '~/lib/utils/axios_utils';\n\nexport default {\n getSentryData({ endpoint, params }) {\n return axios.get(endpoint, { params });\n },\n updateErrorStatus(endpoint, status) {\n return axios.put(endpoint, { status });\n },\n};\n","export const SET_UPDATING_RESOLVE_STATUS = 'SET_UPDATING_RESOLVE_STATUS';\nexport const SET_UPDATING_IGNORE_STATUS = 'SET_UPDATING_IGNORE_STATUS';\nexport const SET_ERROR_STATUS = 'SET_ERROR_STATUS';\n","import { createAlert } from '~/alert';\nimport { visitUrl } from '~/lib/utils/url_utility';\nimport { __ } from '~/locale';\nimport service from '../services';\nimport * as types from './mutation_types';\n\nexport const setStatus = ({ commit }, status) => {\n commit(types.SET_ERROR_STATUS, status.toLowerCase());\n};\n\nexport const updateStatus = ({ commit }, { endpoint, redirectUrl, status }) =>\n service\n .updateErrorStatus(endpoint, status)\n .then((resp) => {\n commit(types.SET_ERROR_STATUS, status);\n if (redirectUrl) visitUrl(redirectUrl);\n\n return resp.data.result;\n })\n .catch(() =>\n createAlert({\n message: __('Failed to update issue status'),\n }),\n );\n\nexport const updateResolveStatus = ({ commit, dispatch }, params) => {\n commit(types.SET_UPDATING_RESOLVE_STATUS, true);\n\n return dispatch('updateStatus', params).finally(() => {\n commit(types.SET_UPDATING_RESOLVE_STATUS, false);\n });\n};\n\nexport const updateIgnoreStatus = ({ commit, dispatch }, params) => {\n commit(types.SET_UPDATING_IGNORE_STATUS, true);\n\n return dispatch('updateStatus', params).finally(() => {\n commit(types.SET_UPDATING_IGNORE_STATUS, false);\n });\n};\n","import { createAlert } from '~/alert';\nimport Poll from '~/lib/utils/poll';\nimport { __ } from '~/locale';\nimport service from '../../services';\nimport * as types from './mutation_types';\n\nlet stackTracePoll;\n\nconst stopPolling = (poll) => {\n if (poll) poll.stop();\n};\n\nexport function startPollingStacktrace({ commit }, endpoint) {\n stackTracePoll = new Poll({\n resource: service,\n method: 'getSentryData',\n data: { endpoint },\n successCallback: ({ data }) => {\n if (!data) {\n return;\n }\n commit(types.SET_STACKTRACE_DATA, data.error);\n commit(types.SET_LOADING_STACKTRACE, false);\n\n stopPolling(stackTracePoll);\n },\n errorCallback: () => {\n commit(types.SET_LOADING_STACKTRACE, false);\n createAlert({\n message: __('Failed to load stacktrace.'),\n });\n },\n });\n\n stackTracePoll.makeRequest();\n}\n","export const SET_LOADING_STACKTRACE = 'SET_LOADING_STACKTRACE';\nexport const SET_STACKTRACE_DATA = 'SET_STACKTRACE_DATA';\n","export const stacktrace = (state) =>\n state.stacktraceData.stack_trace_entries\n ? state.stacktraceData.stack_trace_entries.reverse()\n : [];\n","import * as types from './mutation_types';\n\nexport default {\n [types.SET_LOADING_STACKTRACE](state, data) {\n state.loadingStacktrace = data;\n },\n [types.SET_STACKTRACE_DATA](state, data) {\n state.stacktraceData = data;\n },\n};\n","import { createAlert } from '~/alert';\nimport Poll from '~/lib/utils/poll';\nimport { __ } from '~/locale';\nimport Service from '../../services';\nimport * as types from './mutation_types';\n\nlet eTagPoll;\n\nexport function startPolling({ state, commit, dispatch }) {\n commit(types.SET_LOADING, true);\n\n eTagPoll = new Poll({\n resource: Service,\n method: 'getSentryData',\n data: {\n endpoint: state.endpoint,\n params: {\n search_term: state.searchQuery,\n sort: state.sortField,\n cursor: state.cursor,\n issue_status: state.statusFilter,\n },\n },\n successCallback: ({ data }) => {\n if (!data) {\n return;\n }\n\n commit(types.SET_PAGINATION, data.pagination);\n commit(types.SET_ERRORS, data.errors);\n commit(types.SET_LOADING, false);\n dispatch('stopPolling');\n },\n errorCallback: () => {\n commit(types.SET_LOADING, false);\n createAlert({\n message: __('Failed to load errors from Sentry.'),\n });\n },\n });\n\n eTagPoll.makeRequest();\n}\n\nexport const stopPolling = () => {\n if (eTagPoll) eTagPoll.stop();\n};\n\nexport function restartPolling({ commit }) {\n commit(types.SET_ERRORS, []);\n commit(types.SET_LOADING, true);\n\n if (eTagPoll) eTagPoll.restart();\n}\n\nexport function setIndexPath({ commit }, path) {\n commit(types.SET_INDEX_PATH, path);\n}\n\nexport function loadRecentSearches({ commit }) {\n commit(types.LOAD_RECENT_SEARCHES);\n}\n\nexport function addRecentSearch({ commit }, searchQuery) {\n commit(types.ADD_RECENT_SEARCH, searchQuery);\n}\n\nexport function clearRecentSearches({ commit }) {\n commit(types.CLEAR_RECENT_SEARCHES);\n}\n\nexport const searchByQuery = ({ commit, dispatch }, query) => {\n const searchQuery = query.trim();\n commit(types.SET_CURSOR, null);\n commit(types.SET_SEARCH_QUERY, searchQuery);\n commit(types.ADD_RECENT_SEARCH, searchQuery);\n dispatch('stopPolling');\n dispatch('startPolling');\n};\n\nexport const filterByStatus = ({ commit, dispatch }, status) => {\n commit(types.SET_STATUS_FILTER, status);\n dispatch('stopPolling');\n dispatch('startPolling');\n};\n\nexport const sortByField = ({ commit, dispatch }, field) => {\n commit(types.SET_CURSOR, null);\n commit(types.SET_SORT_FIELD, field);\n dispatch('stopPolling');\n dispatch('startPolling');\n};\n\nexport const setEndpoint = ({ commit }, endpoint) => {\n commit(types.SET_ENDPOINT, endpoint);\n};\n\nexport const fetchPaginatedResults = ({ commit, dispatch }, cursor) => {\n commit(types.SET_CURSOR, cursor);\n dispatch('stopPolling');\n dispatch('startPolling');\n};\n\nexport const removeIgnoredResolvedErrors = ({ commit }, error) => {\n commit(types.REMOVE_IGNORED_RESOLVED_ERRORS, error);\n};\n","export const SET_ERRORS = 'SET_ERRORS';\nexport const SET_INDEX_PATH = 'SET_INDEX_PATH';\nexport const SET_LOADING = 'SET_LOADING';\nexport const ADD_RECENT_SEARCH = 'ADD_RECENT_SEARCH';\nexport const CLEAR_RECENT_SEARCHES = 'CLEAR_RECENT_SEARCHES';\nexport const LOAD_RECENT_SEARCHES = 'LOAD_RECENT_SEARCHES';\nexport const SET_PAGINATION = 'SET_PAGINATION';\nexport const SET_ENDPOINT = 'SET_ENDPOINT';\nexport const SET_SORT_FIELD = 'SET_SORT_FIELD';\nexport const SET_SEARCH_QUERY = 'SET_SEARCH_QUERY';\nexport const SET_CURSOR = 'SET_CURSOR';\nexport const REMOVE_IGNORED_RESOLVED_ERRORS = 'REMOVE_IGNORED_RESOLVED_ERRORS';\nexport const SET_STATUS_FILTER = 'SET_STATUS_FILTER';\n","import AccessorUtils from '~/lib/utils/accessor';\nimport { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';\nimport * as types from './mutation_types';\n\nexport default {\n [types.SET_ERRORS](state, data) {\n state.errors = convertObjectPropsToCamelCase(data, { deep: true });\n },\n [types.SET_LOADING](state, loading) {\n state.loading = loading;\n },\n [types.SET_INDEX_PATH](state, path) {\n state.indexPath = path;\n },\n [types.ADD_RECENT_SEARCH](state, searchTerm) {\n if (searchTerm.length === 0) {\n return;\n }\n // remove any existing item, then add it to the start of the list\n const recentSearches = state.recentSearches.filter((s) => s !== searchTerm);\n recentSearches.unshift(searchTerm);\n // only keep the last 5\n state.recentSearches = recentSearches.slice(0, 5);\n\n if (AccessorUtils.canUseLocalStorage()) {\n localStorage.setItem(\n `recent-searches${state.indexPath}`,\n JSON.stringify(state.recentSearches),\n );\n }\n },\n [types.CLEAR_RECENT_SEARCHES](state) {\n state.recentSearches = [];\n if (AccessorUtils.canUseLocalStorage()) {\n localStorage.removeItem(`recent-searches${state.indexPath}`);\n }\n },\n [types.LOAD_RECENT_SEARCHES](state) {\n const recentSearches = localStorage.getItem(`recent-searches${state.indexPath}`) || [];\n try {\n state.recentSearches = JSON.parse(recentSearches);\n } catch (e) {\n state.recentSearches = [];\n throw e;\n }\n },\n [types.SET_PAGINATION](state, pagination) {\n state.pagination = pagination;\n },\n [types.SET_CURSOR](state, cursor) {\n state.cursor = cursor;\n },\n [types.SET_SORT_FIELD](state, field) {\n state.sortField = field;\n },\n [types.SET_SEARCH_QUERY](state, query) {\n state.searchQuery = query;\n },\n [types.SET_ENDPOINT](state, endpoint) {\n state.endpoint = endpoint;\n },\n [types.REMOVE_IGNORED_RESOLVED_ERRORS](state, error) {\n state.errors = state.errors.filter((err) => err.id !== error);\n },\n [types.SET_STATUS_FILTER](state, query) {\n state.statusFilter = query;\n },\n};\n","import * as types from './mutation_types';\n\nexport default {\n [types.SET_UPDATING_IGNORE_STATUS](state, updating) {\n state.updatingIgnoreStatus = updating;\n },\n [types.SET_UPDATING_RESOLVE_STATUS](state, updating) {\n state.updatingResolveStatus = updating;\n },\n [types.SET_ERROR_STATUS](state, status) {\n state.errorStatus = status;\n },\n};\n","import Vue from 'vue';\n// eslint-disable-next-line no-restricted-imports\nimport Vuex from 'vuex';\n\nimport * as actions from './actions';\n\nimport * as detailsActions from './details/actions';\nimport * as detailsGetters from './details/getters';\nimport detailsMutations from './details/mutations';\nimport detailsState from './details/state';\nimport * as listActions from './list/actions';\nimport listMutations from './list/mutations';\nimport listState from './list/state';\n\nimport mutations from './mutations';\n\nVue.use(Vuex);\n\nexport const createStore = () =>\n new Vuex.Store({\n modules: {\n list: {\n namespaced: true,\n state: listState(),\n actions: { ...actions, ...listActions },\n mutations: { ...mutations, ...listMutations },\n },\n details: {\n namespaced: true,\n state: detailsState(),\n actions: { ...actions, ...detailsActions },\n mutations: { ...mutations, ...detailsMutations },\n getters: detailsGetters,\n },\n },\n });\n\nexport default createStore();\n","export default () => ({\n errors: [],\n loading: true,\n endpoint: null,\n sortField: 'last_seen',\n statusFilter: 'unresolved',\n searchQuery: null,\n indexPath: '',\n recentSearches: [],\n pagination: {},\n cursor: null,\n});\n","export default () => ({\n stacktraceData: {},\n loadingStacktrace: true,\n updatingResolveStatus: false,\n updatingIgnoreStatus: false,\n errorStatus: '',\n});\n","/**\n * Input/Textarea Autofocus Directive for Vue\n */\nexport default {\n /**\n * Set focus when element is rendered, but\n * is not visible, using IntersectionObserver\n *\n * @param {Element} el Target element\n */\n inserted(el) {\n if ('IntersectionObserver' in window) {\n // Element visibility is dynamic, so we attach observer\n el.visibilityObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n // Combining `intersectionRatio > 0` and\n // element's `offsetParent` presence will\n // deteremine if element is truely visible\n if (entry.intersectionRatio > 0 && entry.target.offsetParent) {\n entry.target.focus();\n }\n });\n });\n\n // Bind the observer.\n el.visibilityObserver.observe(el, { root: document.documentElement });\n }\n },\n /**\n * Detach observer on unbind hook.\n *\n * @param {Element} el Target element\n */\n unbind(el) {\n if (el.visibilityObserver) {\n el.visibilityObserver.disconnect();\n }\n },\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableDatesUpdated\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableDatesUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItem\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetStartAndDueDate\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":337}};\n doc.loc.source = {\"body\":\"subscription issuableDatesUpdated($issuableId: IssuableID!) {\\n issuableDatesUpdated(issuableId: $issuableId) {\\n ... on WorkItem {\\n id\\n widgets {\\n ... on WorkItemWidgetStartAndDueDate {\\n type\\n dueDate\\n startDate\\n }\\n }\\n }\\n ... on Issue {\\n id\\n dueDate\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issuableDatesUpdated\"] = oneQuery(doc, \"issuableDatesUpdated\");\n \n","var eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n}\n\nmodule.exports = customDefaultsAssignIn;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemAncestors\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItem\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetHierarchy\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasParent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parent\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iconName\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ancestors\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iconName\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"full\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetHierarchy\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasParent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parent\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":848}};\n doc.loc.source = {\"body\":\"fragment WorkItemAncestors on WorkItem {\\n id\\n title\\n widgets {\\n type\\n ... on WorkItemWidgetHierarchy {\\n type\\n hasParent\\n parent {\\n id\\n iid\\n title\\n confidential\\n webUrl\\n workItemType {\\n id\\n name\\n iconName\\n }\\n }\\n ancestors {\\n nodes {\\n id\\n iid\\n confidential\\n workItemType {\\n id\\n name\\n iconName\\n }\\n title\\n state\\n reference(full: true)\\n createdAt\\n closedAt\\n webUrl\\n widgets {\\n type\\n ... on WorkItemWidgetHierarchy {\\n type\\n hasParent\\n parent {\\n id\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"WorkItemAncestors\"] = oneQuery(doc, \"WorkItemAncestors\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getMrAssignees\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"author\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserWithType\"},\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserAvailability\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestInteraction\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canMerge\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignees\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserWithType\"},\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserAvailability\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestInteraction\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canMerge\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canMerge\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":672}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user_with_type.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/user_availability.fragment.graphql\\\"\\n\\nquery getMrAssignees($fullPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: mergeRequest(iid: $iid) {\\n id\\n author {\\n ...UserWithType\\n ...UserAvailability\\n mergeRequestInteraction {\\n canMerge\\n }\\n }\\n assignees {\\n nodes {\\n ...UserWithType\\n ...UserAvailability\\n mergeRequestInteraction {\\n canMerge\\n }\\n }\\n }\\n userPermissions {\\n canMerge\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user_with_type.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user_availability.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"getMrAssignees\"] = oneQuery(doc, \"getMrAssignees\");\n \n","import { extend, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_HEADER } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { isTag } from '../../utils/dom';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'header'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_HEADER);\n\n// --- Main component ---\n\n// @vue/component\nconst BDropdownHeader = /*#__PURE__*/extend({\n name: NAME_DROPDOWN_HEADER,\n functional: true,\n props,\n render(h, _ref) {\n let {\n props,\n data,\n children\n } = _ref;\n const {\n tag,\n variant\n } = props;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(tag, {\n staticClass: 'dropdown-header',\n class: {\n [`text-${variant}`]: variant\n },\n attrs: {\n ...(data.attrs || {}),\n id: props.id || null,\n role: isTag(tag, 'header') ? null : 'heading'\n },\n ref: 'header'\n }, children)]);\n }\n});\n\nexport { BDropdownHeader, props };\n","import { BDropdownHeader } from '../../../vendor/bootstrap-vue/src/components/dropdown/dropdown-header';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlDropdownHeader',\n components: {\n BDropdownHeader\n },\n inheritAttrs: false\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-dropdown-header',_vm._g(_vm._b({staticClass:\"gl-dropdown-section-header\"},'b-dropdown-header',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import { GlLoadingIcon } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport { renderVueComponentForLegacyJS } from './render_vue_component_for_legacy_js';\n\nconst defaultValue = (prop) => GlLoadingIcon.props[prop]?.default;\n\n/**\n * Returns a loading icon/spinner element.\n *\n * This should *only* be used in existing legacy areas of code where Vue is not\n * in use, as part of the migration strategy defined in\n * https://gitlab.com/groups/gitlab-org/-/epics/7626.\n *\n * @param {object} props - The props to configure the spinner.\n * @param {boolean} props.inline - Display the spinner inline; otherwise, as a block.\n * @param {string} props.color - The color of the spinner ('dark' or 'light')\n * @param {string} props.size - The size of the spinner ('sm', 'md', 'lg', 'xl')\n * @param {string[]} props.classes - Additional classes to apply to the element.\n * @param {string} props.label - The ARIA label to apply to the spinner.\n * @returns {HTMLElement}\n */\nexport const loadingIconForLegacyJS = ({\n inline = defaultValue('inline'),\n color = defaultValue('color'),\n size = defaultValue('size'),\n classes = [],\n label = __('Loading'),\n} = {}) =>\n renderVueComponentForLegacyJS(GlLoadingIcon, {\n class: classes,\n props: {\n inline,\n color,\n size,\n label,\n },\n });\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"createTimelog\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"TimelogCreateInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelogCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelog\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueTimeTrackingFragment\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestTimeTrackingFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":422}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/issue_time_tracking.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/merge_request_time_tracking.fragment.graphql\\\"\\n\\nmutation createTimelog($input: TimelogCreateInput!) {\\n timelogCreate(input: $input) {\\n errors\\n timelog {\\n id\\n issue {\\n ...IssueTimeTrackingFragment\\n }\\n mergeRequest {\\n ...MergeRequestTimeTrackingFragment\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/issue_time_tracking.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/merge_request_time_tracking.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"createTimelog\"] = oneQuery(doc, \"createTimelog\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"namespaceGroupsForLinksWidget\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"groupSearch\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"descendantGroups\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"groupSearch\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeParentDescendants\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":342}};\n doc.loc.source = {\"body\":\"query namespaceGroupsForLinksWidget($fullPath: ID!, $groupSearch: String) {\\n group(fullPath: $fullPath) {\\n id\\n name\\n avatarUrl\\n path\\n fullPath\\n descendantGroups(search: $groupSearch, includeParentDescendants: true) {\\n nodes {\\n id\\n name\\n avatarUrl\\n path\\n fullPath\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"namespaceGroupsForLinksWidget\"] = oneQuery(doc, \"namespaceGroupsForLinksWidget\");\n \n","function n(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e<r;e++)t[e-1]=arguments[e];if(\"production\"!==process.env.NODE_ENV){var i=Y[n],o=i?\"function\"==typeof i?i.apply(null,t):i:\"unknown error nr: \"+n;throw Error(\"[Immer] \"+o)}throw Error(\"[Immer] minified error nr: \"+n+(t.length?\" \"+t.map((function(n){return\"'\"+n+\"'\"})).join(\",\"):\"\")+\". Find the full error at: https://bit.ly/3cXEKWf\")}function r(n){return!!n&&!!n[Q]}function t(n){return!!n&&(function(n){if(!n||\"object\"!=typeof n)return!1;var r=Object.getPrototypeOf(n);if(null===r)return!0;var t=Object.hasOwnProperty.call(r,\"constructor\")&&r.constructor;return t===Object||\"function\"==typeof t&&Function.toString.call(t)===Z}(n)||Array.isArray(n)||!!n[L]||!!n.constructor[L]||s(n)||v(n))}function e(t){return r(t)||n(23,t),t[Q].t}function i(n,r,t){void 0===t&&(t=!1),0===o(n)?(t?Object.keys:nn)(n).forEach((function(e){t&&\"symbol\"==typeof e||r(e,n[e],n)})):n.forEach((function(t,e){return r(e,t,n)}))}function o(n){var r=n[Q];return r?r.i>3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?(n.delete(r),n.add(t)):n[r]=t}function c(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v(n){return q&&n instanceof Set}function p(n){return n.o||n.t}function l(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e<t.length;e++){var i=t[e],o=r[i];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(r[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:n[i]})}return Object.create(Object.getPrototypeOf(n),r)}function d(n,e){return void 0===e&&(e=!1),y(n)||r(n)||!t(n)?n:(o(n)>1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&i(n,(function(n,r){return d(r,!0)}),!0),n)}function h(){n(2)}function y(n){return null==n||\"object\"!=typeof n||Object.isFrozen(n)}function b(r){var t=tn[r];return t||n(18,r),t}function m(n,r){tn[n]||(tn[n]=r)}function _(){return\"production\"===process.env.NODE_ENV||U||n(0),U}function j(n,r){r&&(b(\"Patches\"),n.u=[],n.s=[],n.v=r)}function O(n){g(n),n.p.forEach(S),n.p=null}function g(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.O=!0}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.g||b(\"ES5\").S(e,r,o),o?(i[Q].P&&(O(e),n(4)),t(r)&&(r=M(e,r),e.l||x(e,r)),e.u&&b(\"Patches\").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),O(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l(e.k):e.o;i(3===e.i?new Set(o):o,(function(r,i){return A(n,e,o,r,i,t)})),x(n,o,!1),t&&n.u&&b(\"Patches\").R(e,t,n.u,n.s)}return e.o}function A(e,i,o,a,c,s){if(\"production\"!==process.env.NODE_ENV&&c===o&&n(5),r(c)){var v=M(e,c,s&&i&&3!==i.i&&!u(i.D,a)?s.concat(a):void 0);if(f(o,a,v),!r(v))return;e.m=!1}if(t(c)&&!y(c)){if(!e.h.F&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,r,t){void 0===t&&(t=!1),n.h.F&&n.m&&d(r,t)}function z(n,r){var t=n[Q];return(t?p(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function R(n,r,t){var e=s(r)?b(\"MapSet\").N(r,t):v(r)?b(\"MapSet\").T(r,t):n.g?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,D:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b(\"ES5\").J(r,t);return(t?t.A:_()).p.push(e),e}function D(e){return r(e)||n(22,e),function n(r){if(!t(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b(\"ES5\").K(u)))return u.t;u.I=!0,e=F(r,c),u.I=!1}else e=F(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f(e,r,n(t))})),3===c?new Set(e):e}(e)}function F(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function N(){function t(n,r){var t=s[n];return t?t.enumerable=r:s[n]=t={configurable:!0,enumerable:r,get:function(){var r=this[Q];return\"production\"!==process.env.NODE_ENV&&f(r),en.get(r,n)},set:function(r){var t=this[Q];\"production\"!==process.env.NODE_ENV&&f(t),en.set(t,n,r)}},t}function e(n){for(var r=n.length-1;r>=0;r--){var t=n[r][Q];if(!t.P)switch(t.i){case 5:a(t)&&k(t);break;case 4:o(t)&&k(t)}}}function o(n){for(var r=n.t,t=n.k,e=nn(t),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=r[o];if(void 0===a&&!u(r,o))return!0;var f=t[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!r[Q];return e.length!==nn(r).length+(v?0:1)}function a(n){var r=n.k;if(r.length!==n.t.length)return!0;var t=Object.getOwnPropertyDescriptor(r,r.length-1);if(t&&!t.get)return!0;for(var e=0;e<r.length;e++)if(!r.hasOwnProperty(e))return!0;return!1}function f(r){r.O&&n(3,JSON.stringify(p(r)))}var s={};m(\"ES5\",{J:function(n,r){var e=Array.isArray(n),i=function(n,r){if(n){for(var e=Array(r.length),i=0;i<r.length;i++)Object.defineProperty(e,\"\"+i,t(i,!0));return e}var o=rn(r);delete o[Q];for(var u=nn(o),a=0;a<u.length;a++){var f=u[a];o[f]=t(f,n||!!o[f].enumerable)}return Object.create(Object.getPrototypeOf(r),o)}(e,n),o={i:e?5:4,A:r?r.A:_(),P:!1,I:!1,D:{},l:r,t:n,k:i,o:null,O:!1,C:!1};return Object.defineProperty(i,Q,{value:o,writable:!0}),i},S:function(n,t,o){o?r(t)&&t[Q].A===n&&e(n.p):(n.u&&function n(r){if(r&&\"object\"==typeof r){var t=r[Q];if(t){var e=t.t,o=t.k,f=t.D,c=t.i;if(4===c)i(o,(function(r){r!==Q&&(void 0!==e[r]||u(e,r)?f[r]||n(o[r]):(f[r]=!0,k(t)))})),i(e,(function(n){void 0!==o[n]||u(o,n)||(f[n]=!1,k(t))}));else if(5===c){if(a(t)&&(k(t),f.length=!0),o.length<e.length)for(var s=o.length;s<e.length;s++)f[s]=!1;else for(var v=e.length;v<o.length;v++)f[v]=!0;for(var p=Math.min(o.length,e.length),l=0;l<p;l++)o.hasOwnProperty(l)||(f[l]=!0),void 0===f[l]&&n(o[l])}}}}(n.p[0]),e(n.p))},K:function(n){return 4===n.i?o(n):a(n)}})}function T(){function e(n){if(!t(n))return n;if(Array.isArray(n))return n.map(e);if(s(n))return new Map(Array.from(n.entries()).map((function(n){return[n[0],e(n[1])]})));if(v(n))return new Set(Array.from(n).map(e));var r=Object.create(Object.getPrototypeOf(n));for(var i in n)r[i]=e(n[i]);return u(n,L)&&(r[L]=n[L]),r}function f(n){return r(n)?e(n):n}var c=\"add\";m(\"Patches\",{$:function(r,t){return t.forEach((function(t){for(var i=t.path,u=t.op,f=r,s=0;s<i.length-1;s++){var v=o(f),p=\"\"+i[s];0!==v&&1!==v||\"__proto__\"!==p&&\"constructor\"!==p||n(24),\"function\"==typeof f&&\"prototype\"===p&&n(24),\"object\"!=typeof(f=a(f,p))&&n(15,i.join(\"/\"))}var l=o(f),d=e(t.value),h=i[i.length-1];switch(u){case\"replace\":switch(l){case 2:return f.set(h,d);case 3:n(16);default:return f[h]=d}case c:switch(l){case 1:return\"-\"===h?f.push(d):f.splice(h,0,d);case 2:return f.set(h,d);case 3:return f.add(d);default:return f[h]=d}case\"remove\":switch(l){case 1:return f.splice(h,1);case 2:return f.delete(h);case 3:return f.delete(t.value);default:return delete f[h]}default:n(17,u)}})),r},R:function(n,r,t,e){switch(n.i){case 0:case 4:case 2:return function(n,r,t,e){var o=n.t,s=n.o;i(n.D,(function(n,i){var v=a(o,n),p=a(s,n),l=i?u(o,n)?\"replace\":c:\"remove\";if(v!==p||\"replace\"!==l){var d=r.concat(n);t.push(\"remove\"===l?{op:l,path:d}:{op:l,path:d,value:p}),e.push(l===c?{op:\"remove\",path:d}:\"remove\"===l?{op:c,path:d,value:f(v)}:{op:\"replace\",path:d,value:f(v)})}}))}(n,r,t,e);case 5:case 1:return function(n,r,t,e){var i=n.t,o=n.D,u=n.o;if(u.length<i.length){var a=[u,i];i=a[0],u=a[1];var s=[e,t];t=s[0],e=s[1]}for(var v=0;v<i.length;v++)if(o[v]&&u[v]!==i[v]){var p=r.concat([v]);t.push({op:\"replace\",path:p,value:f(u[v])}),e.push({op:\"replace\",path:p,value:f(i[v])})}for(var l=i.length;l<u.length;l++){var d=r.concat([l]);t.push({op:c,path:d,value:f(u[l])})}i.length<u.length&&e.push({op:\"replace\",path:r.concat([\"length\"]),value:i.length})}(n,r,t,e);case 3:return function(n,r,t,e){var i=n.t,o=n.o,u=0;i.forEach((function(n){if(!o.has(n)){var i=r.concat([u]);t.push({op:\"remove\",path:i,value:n}),e.unshift({op:c,path:i,value:n})}u++})),u=0,o.forEach((function(n){if(!i.has(n)){var o=r.concat([u]);t.push({op:c,path:o,value:n}),e.unshift({op:\"remove\",path:o,value:n})}u++}))}(n,r,t,e)}},M:function(n,r,t,e){t.push({op:\"replace\",path:[],value:r===H?void 0:r}),e.push({op:\"replace\",path:[],value:n})}})}function C(){function r(n,r){function t(){this.constructor=n}a(n,r),n.prototype=(t.prototype=r.prototype,new t)}function e(n){n.o||(n.D=new Map,n.o=new Map(n.t))}function o(n){n.o||(n.o=new Set,n.t.forEach((function(r){if(t(r)){var e=R(n.A.h,r,n);n.p.set(r,e),n.o.add(e)}else n.o.add(r)})))}function u(r){r.O&&n(3,JSON.stringify(p(r)))}var a=function(n,r){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var t in r)r.hasOwnProperty(t)&&(n[t]=r[t])})(n,r)},f=function(){function n(n,r){return this[Q]={i:2,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,D:void 0,t:n,k:this,C:!1,O:!1},this}r(n,Map);var o=n.prototype;return Object.defineProperty(o,\"size\",{get:function(){return p(this[Q]).size}}),o.has=function(n){return p(this[Q]).has(n)},o.set=function(n,r){var t=this[Q];return u(t),p(t).has(n)&&p(t).get(n)===r||(e(t),k(t),t.D.set(n,!0),t.o.set(n,r),t.D.set(n,!0)),this},o.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),e(r),k(r),r.t.has(n)?r.D.set(n,!1):r.D.delete(n),r.o.delete(n),!0},o.clear=function(){var n=this[Q];u(n),p(n).size&&(e(n),k(n),n.D=new Map,i(n.t,(function(r){n.D.set(r,!1)})),n.o.clear())},o.forEach=function(n,r){var t=this;p(this[Q]).forEach((function(e,i){n.call(r,t.get(i),i,t)}))},o.get=function(n){var r=this[Q];u(r);var i=p(r).get(n);if(r.I||!t(i))return i;if(i!==r.t.get(n))return i;var o=R(r.A.h,i,r);return e(r),r.o.set(n,o),o},o.keys=function(){return p(this[Q]).keys()},o.values=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.values()},n.next=function(){var n=t.next();return n.done?n:{done:!1,value:r.get(n.value)}},n},o.entries=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.entries()},n.next=function(){var n=t.next();if(n.done)return n;var e=r.get(n.value);return{done:!1,value:[n.value,e]}},n},o[V]=function(){return this.entries()},n}(),c=function(){function n(n,r){return this[Q]={i:3,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,t:n,k:this,p:new Map,O:!1,C:!1},this}r(n,Set);var t=n.prototype;return Object.defineProperty(t,\"size\",{get:function(){return p(this[Q]).size}}),t.has=function(n){var r=this[Q];return u(r),r.o?!!r.o.has(n)||!(!r.p.has(n)||!r.o.has(r.p.get(n))):r.t.has(n)},t.add=function(n){var r=this[Q];return u(r),this.has(n)||(o(r),k(r),r.o.add(n)),this},t.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),o(r),k(r),r.o.delete(n)||!!r.p.has(n)&&r.o.delete(r.p.get(n))},t.clear=function(){var n=this[Q];u(n),p(n).size&&(o(n),k(n),n.o.clear())},t.values=function(){var n=this[Q];return u(n),o(n),n.o.values()},t.entries=function(){var n=this[Q];return u(n),o(n),n.o.entries()},t.keys=function(){return this.values()},t[V]=function(){return this.values()},t.forEach=function(n,r){for(var t=this.values(),e=t.next();!e.done;)n.call(r,e.value,e.value,this),e=t.next()},n}();m(\"MapSet\",{N:function(n,r){return new f(n,r)},T:function(n,r){return new c(n,r)}})}function J(){N(),C(),T()}function K(n){return n}function $(n){return n}var G,U,W=\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol(\"x\"),X=\"undefined\"!=typeof Map,q=\"undefined\"!=typeof Set,B=\"undefined\"!=typeof Proxy&&void 0!==Proxy.revocable&&\"undefined\"!=typeof Reflect,H=W?Symbol.for(\"immer-nothing\"):((G={})[\"immer-nothing\"]=!0,G),L=W?Symbol.for(\"immer-draftable\"):\"__$immer_draftable\",Q=W?Symbol.for(\"immer-state\"):\"__$immer_state\",V=\"undefined\"!=typeof Symbol&&Symbol.iterator||\"@@iterator\",Y={0:\"Illegal state\",1:\"Immer drafts cannot have computed properties\",2:\"This object has been frozen and should not be mutated\",3:function(n){return\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \"+n},4:\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",5:\"Immer forbids circular references\",6:\"The first or second argument to `produce` must be a function\",7:\"The third argument to `produce` must be a function or undefined\",8:\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",9:\"First argument to `finishDraft` must be a draft returned by `createDraft`\",10:\"The given draft is already finalized\",11:\"Object.defineProperty() cannot be used on an Immer draft\",12:\"Object.setPrototypeOf() cannot be used on an Immer draft\",13:\"Immer only supports deleting array indices\",14:\"Immer only supports setting array indices and the 'length' property\",15:function(n){return\"Cannot apply patch, path doesn't resolve: \"+n},16:'Sets cannot have \"replace\" patches.',17:function(n){return\"Unsupported patch operation: \"+n},18:function(n){return\"The plugin for '\"+n+\"' has not been loaded into Immer. To enable the plugin, import and call `enable\"+n+\"()` when initializing your application.\"},20:\"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",21:function(n){return\"produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '\"+n+\"'\"},22:function(n){return\"'current' expects a draft, got: \"+n},23:function(n){return\"'original' expects a draft, got: \"+n},24:\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"},Z=\"\"+Object.prototype.constructor,nn=\"undefined\"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(n){return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n))}:Object.getOwnPropertyNames,rn=Object.getOwnPropertyDescriptors||function(n){var r={};return nn(n).forEach((function(t){r[t]=Object.getOwnPropertyDescriptor(n,t)})),r},tn={},en={get:function(n,r){if(r===Q)return n;var e=p(n);if(!u(e,r))return function(n,r,t){var e,i=I(r,t);return i?\"value\"in i?i.value:null===(e=i.get)||void 0===e?void 0:e.call(n.k):void 0}(n,e,r);var i=e[r];return n.I||!t(i)?i:i===z(n.t,r)?(E(n),n.o[r]=R(n.A.h,i,n)):i},has:function(n,r){return r in p(n)},ownKeys:function(n){return Reflect.ownKeys(p(n))},set:function(n,r,t){var e=I(p(n),r);if(null==e?void 0:e.set)return e.set.call(n.k,t),!0;if(!n.P){var i=z(p(n),r),o=null==i?void 0:i[Q];if(o&&o.t===t)return n.o[r]=t,n.D[r]=!1,!0;if(c(t,i)&&(void 0!==t||u(n.t,r)))return!0;E(n),k(n)}return n.o[r]===t&&\"number\"!=typeof t&&(void 0!==t||r in n.o)||(n.o[r]=t,n.D[r]=!0,!0)},deleteProperty:function(n,r){return void 0!==z(n.t,r)||r in n.t?(n.D[r]=!1,E(n),k(n)):delete n.D[r],n.o&&delete n.o[r],!0},getOwnPropertyDescriptor:function(n,r){var t=p(n),e=Reflect.getOwnPropertyDescriptor(t,r);return e?{writable:!0,configurable:1!==n.i||\"length\"!==r,enumerable:e.enumerable,value:t[r]}:e},defineProperty:function(){n(11)},getPrototypeOf:function(n){return Object.getPrototypeOf(n.t)},setPrototypeOf:function(){n(12)}},on={};i(en,(function(n,r){on[n]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)}})),on.deleteProperty=function(r,t){return\"production\"!==process.env.NODE_ENV&&isNaN(parseInt(t))&&n(13),on.set.call(this,r,t,void 0)},on.set=function(r,t,e){return\"production\"!==process.env.NODE_ENV&&\"length\"!==t&&isNaN(parseInt(t))&&n(14),en.set.call(this,r[0],t,e,r[0])};var un=function(){function e(r){var e=this;this.g=B,this.F=!0,this.produce=function(r,i,o){if(\"function\"==typeof r&&\"function\"!=typeof i){var u=i;i=r;var a=e;return function(n){var r=this;void 0===n&&(n=u);for(var t=arguments.length,e=Array(t>1?t-1:0),o=1;o<t;o++)e[o-1]=arguments[o];return a.produce(n,(function(n){var t;return(t=i).call.apply(t,[r,n].concat(e))}))}}var f;if(\"function\"!=typeof i&&n(6),void 0!==o&&\"function\"!=typeof o&&n(7),t(r)){var c=w(e),s=R(e,r,void 0),v=!0;try{f=i(s),v=!1}finally{v?O(c):g(c)}return\"undefined\"!=typeof Promise&&f instanceof Promise?f.then((function(n){return j(c,o),P(n,c)}),(function(n){throw O(c),n})):(j(c,o),P(f,c))}if(!r||\"object\"!=typeof r){if(void 0===(f=i(r))&&(f=r),f===H&&(f=void 0),e.F&&d(f,!0),o){var p=[],l=[];b(\"Patches\").M(r,f,p,l),o(p,l)}return f}n(21,r)},this.produceWithPatches=function(n,r){if(\"function\"==typeof n)return function(r){for(var t=arguments.length,i=Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];return e.produceWithPatches(r,(function(r){return n.apply(void 0,[r].concat(i))}))};var t,i,o=e.produce(n,r,(function(n,r){t=n,i=r}));return\"undefined\"!=typeof Promise&&o instanceof Promise?o.then((function(n){return[n,t,i]})):[o,t,i]},\"boolean\"==typeof(null==r?void 0:r.useProxies)&&this.setUseProxies(r.useProxies),\"boolean\"==typeof(null==r?void 0:r.autoFreeze)&&this.setAutoFreeze(r.autoFreeze)}var i=e.prototype;return i.createDraft=function(e){t(e)||n(8),r(e)&&(e=D(e));var i=w(this),o=R(this,e,void 0);return o[Q].C=!0,g(i),o},i.finishDraft=function(r,t){var e=r&&r[Q];\"production\"!==process.env.NODE_ENV&&(e&&e.C||n(9),e.I&&n(10));var i=e.A;return j(i,t),P(void 0,i)},i.setAutoFreeze=function(n){this.F=n},i.setUseProxies=function(r){r&&!B&&n(20),this.g=r},i.applyPatches=function(n,t){var e;for(e=t.length-1;e>=0;e--){var i=t[e];if(0===i.path.length&&\"replace\"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b(\"Patches\").$;return r(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},e}(),an=new un,fn=an.produce,cn=an.produceWithPatches.bind(an),sn=an.setAutoFreeze.bind(an),vn=an.setUseProxies.bind(an),pn=an.applyPatches.bind(an),ln=an.createDraft.bind(an),dn=an.finishDraft.bind(an);export default fn;export{un as Immer,pn as applyPatches,K as castDraft,$ as castImmutable,ln as createDraft,D as current,J as enableAllPlugins,N as enableES5,C as enableMapSet,T as enablePatches,dn as finishDraft,d as freeze,L as immerable,r as isDraft,t as isDraftable,H as nothing,e as original,fn as produce,cn as produceWithPatches,sn as setAutoFreeze,vn as setUseProxies};\n//# sourceMappingURL=immer.esm.js.map\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateEscalationStatus\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueEscalationStatus\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issueSetEscalationStatus\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clientMutationId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"EscalationStatusFragment\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":368}};\n doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/sidebar/queries/escalation_status.fragment.graphql\\\"\\n\\nmutation updateEscalationStatus($projectPath: ID!, $status: IssueEscalationStatus!, $iid: String!) {\\n issueSetEscalationStatus(input: { projectPath: $projectPath, status: $status, iid: $iid }) {\\n errors\\n clientMutationId\\n issue {\\n id\\n ...EscalationStatusFragment\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/sidebar/queries/escalation_status.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateEscalationStatus\"] = oneQuery(doc, \"updateEscalationStatus\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueWeight\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":168}};\n doc.loc.source = {\"body\":\"query issueWeight($fullPath: ID!, $iid: String) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n weight\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueWeight\"] = oneQuery(doc, \"issueWeight\");\n \n","import { isEmpty } from 'lodash';\nimport { STATUS_CLOSED, STATUS_MERGED, STATUS_OPEN, STATUS_REOPENED } from '~/issues/constants';\nimport { localeDateFormat, newDate } from '~/lib/utils/datetime_utility';\nimport { __ } from '~/locale';\nimport timeagoMixin from '~/vue_shared/mixins/timeago';\n\nconst mixins = {\n data() {\n return {\n removeDisabled: false,\n };\n },\n props: {\n idKey: {\n type: Number,\n required: true,\n },\n iid: {\n type: Number,\n required: false,\n default: undefined,\n },\n displayReference: {\n type: String,\n required: true,\n },\n pathIdSeparator: {\n type: String,\n required: true,\n },\n eventNamespace: {\n type: String,\n required: false,\n default: '',\n },\n confidential: {\n type: Boolean,\n required: false,\n default: false,\n },\n title: {\n type: String,\n required: false,\n default: '',\n },\n path: {\n type: String,\n required: false,\n default: '',\n },\n state: {\n type: String,\n required: false,\n default: '',\n },\n createdAt: {\n type: String,\n required: false,\n default: '',\n },\n closedAt: {\n type: String,\n required: false,\n default: '',\n },\n mergedAt: {\n type: String,\n required: false,\n default: '',\n },\n milestone: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n dueDate: {\n type: String,\n required: false,\n default: '',\n },\n assignees: {\n type: Array,\n required: false,\n default: () => [],\n },\n weight: {\n type: Number,\n required: false,\n default: 0,\n },\n canRemove: {\n type: Boolean,\n required: false,\n default: false,\n },\n isMergeRequest: {\n type: Boolean,\n required: false,\n default: false,\n },\n pipelineStatus: {\n type: Object,\n required: false,\n default: null,\n },\n },\n mixins: [timeagoMixin],\n computed: {\n hasState() {\n return this.state && this.state.length > 0;\n },\n hasPipeline() {\n return this.isMergeRequest && this.pipelineStatus;\n },\n isOpen() {\n return this.state === STATUS_OPEN || this.state === STATUS_REOPENED;\n },\n isClosed() {\n return this.state === STATUS_CLOSED;\n },\n isMerged() {\n return this.state === STATUS_MERGED;\n },\n hasTitle() {\n return this.title.length > 0;\n },\n hasAssignees() {\n return this.assignees.length > 0;\n },\n hasMilestone() {\n return !isEmpty(this.milestone);\n },\n iconName() {\n if (this.isMergeRequest && this.isMerged) {\n return 'merge';\n }\n\n return this.isOpen ? 'issue-open-m' : 'issue-close';\n },\n iconClass() {\n if (this.isMergeRequest && this.isClosed) {\n return 'merge-request-status closed issue-token-state-icon-closed';\n }\n\n return this.isOpen\n ? 'issue-token-state-icon-open gl-fill-icon-success'\n : 'issue-token-state-icon-closed gl-fill-icon-info';\n },\n computedLinkElementType() {\n return this.path.length > 0 ? 'a' : 'span';\n },\n computedPath() {\n return this.path.length ? this.path : null;\n },\n itemPath() {\n return this.displayReference.split(this.pathIdSeparator)[0];\n },\n itemId() {\n return this.displayReference.split(this.pathIdSeparator).pop();\n },\n createdAtInWords() {\n return this.createdAt ? this.timeFormatted(this.createdAt) : '';\n },\n createdAtTimestamp() {\n return this.createdAt ? localeDateFormat.asDateTimeFull.format(newDate(this.createdAt)) : '';\n },\n mergedAtTimestamp() {\n return this.mergedAt ? localeDateFormat.asDateTimeFull.format(newDate(this.mergedAt)) : '';\n },\n mergedAtInWords() {\n return this.mergedAt ? this.timeFormatted(this.mergedAt) : '';\n },\n closedAtInWords() {\n return this.closedAt ? this.timeFormatted(this.closedAt) : '';\n },\n closedAtTimestamp() {\n return this.closedAt ? localeDateFormat.asDateTimeFull.format(newDate(this.closedAt)) : '';\n },\n stateText() {\n if (this.isMerged) {\n return __('Merged');\n }\n\n return this.isOpen ? __('Created') : __('Closed');\n },\n stateTimeInWords() {\n if (this.isMerged) {\n return this.mergedAtInWords;\n }\n\n return this.isOpen ? this.createdAtInWords : this.closedAtInWords;\n },\n stateTimestamp() {\n if (this.isMerged) {\n return this.mergedAtTimestamp;\n }\n\n return this.isOpen ? this.createdAtTimestamp : this.closedAtTimestamp;\n },\n },\n methods: {\n onRemoveRequest() {\n let namespacePrefix = '';\n if (this.eventNamespace && this.eventNamespace.length > 0) {\n namespacePrefix = `${this.eventNamespace}`;\n }\n\n this.$emit(`${namespacePrefix}RemoveRequest`, this.idKey);\n\n this.removeDisabled = true;\n },\n },\n};\n\nexport default mixins;\n","<script>\nimport { normalizeChildren } from '~/lib/utils/vue3compat/normalize_children';\n/**\n * Wrapper for discussion notes replies section.\n *\n * This is a functional component using the render method because in some cases\n * the wrapper is not needed and we want to simply render along the children.\n */\nexport default {\n functional: true,\n props: {\n isDiffDiscussion: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n render(h, { props, children }) {\n if (props.isDiffDiscussion) {\n return h(\n 'li',\n {\n class:\n 'discussion-collapsible gl-border-solid gl-border-default gl-border-1 gl-rounded-base gl-border-t-0',\n },\n [h('ul', { class: 'notes' }, children)],\n );\n }\n\n return normalizeChildren(children);\n },\n};\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_notes_replies_wrapper.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_notes_replies_wrapper.vue?vue&type=script&lang=js\"","export function normalizeChildren(children) {\n if (typeof children !== 'object' || Array.isArray(children)) {\n return children;\n }\n\n if (typeof children.default === 'function') {\n return children.default();\n }\n\n return children;\n}\n","var render, staticRenderFns\nimport script from \"./discussion_notes_replies_wrapper.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_notes_replies_wrapper.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"epicSubscribed\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"emailsDisabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribed\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":187}};\n doc.loc.source = {\"body\":\"query epicSubscribed($fullPath: ID!, $iid: ID) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n emailsDisabled\\n issuable: epic(iid: $iid) {\\n id\\n subscribed\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"epicSubscribed\"] = oneQuery(doc, \"epicSubscribed\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.signedOutText),expression:\"signedOutText\"}],staticClass:\"gl-grow gl-text-center gl-text-subtle\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_signed_out_widget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_signed_out_widget.vue?vue&type=script&lang=js\"","<script>\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters } from 'vuex';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { __, sprintf } from '~/locale';\n\nexport default {\n directives: {\n SafeHtml,\n },\n computed: {\n ...mapGetters(['getNotesDataByProp']),\n registerLink() {\n return this.getNotesDataByProp('registerPath');\n },\n signInLink() {\n return this.getNotesDataByProp('newSessionPath');\n },\n signedOutText() {\n return sprintf(\n __(\n 'Please %{startTagRegister}register%{endRegisterTag} or %{startTagSignIn}sign in%{endSignInTag} to reply',\n ),\n {\n startTagRegister: `<a href=\"${this.registerLink}\">`,\n startTagSignIn: `<a href=\"${this.signInLink}\">`,\n endRegisterTag: '</a>',\n endSignInTag: '</a>',\n },\n false,\n );\n },\n },\n};\n</script>\n\n<template>\n <div v-safe-html=\"signedOutText\" class=\"gl-grow gl-text-center gl-text-subtle\"></div>\n</template>\n","import { render, staticRenderFns } from \"./note_signed_out_widget.vue?vue&type=template&id=222a8910\"\nimport script from \"./note_signed_out_widget.vue?vue&type=script&lang=js\"\nexport * from \"./note_signed_out_widget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { __ } from '~/locale';\nimport {\n FILTER_ANY,\n FILTER_CURRENT,\n FILTER_NONE,\n FILTER_STARTED,\n FILTER_UPCOMING,\n FILTERED_SEARCH_TERM,\n OPERATOR_IS,\n OPERATOR_NOT,\n OPERATOR_OR,\n OPERATOR_AFTER,\n OPERATOR_BEFORE,\n TOKEN_TYPE_APPROVED_BY,\n TOKEN_TYPE_APPROVER,\n TOKEN_TYPE_ASSIGNEE,\n TOKEN_TYPE_REVIEWER,\n TOKEN_TYPE_AUTHOR,\n TOKEN_TYPE_CONFIDENTIAL,\n TOKEN_TYPE_CONTACT,\n TOKEN_TYPE_DRAFT,\n TOKEN_TYPE_EPIC,\n TOKEN_TYPE_GROUP,\n TOKEN_TYPE_HEALTH,\n TOKEN_TYPE_ITERATION,\n TOKEN_TYPE_LABEL,\n TOKEN_TYPE_MERGE_USER,\n TOKEN_TYPE_MILESTONE,\n TOKEN_TYPE_MY_REACTION,\n TOKEN_TYPE_ORGANIZATION,\n TOKEN_TYPE_RELEASE,\n TOKEN_TYPE_SOURCE_BRANCH,\n TOKEN_TYPE_TARGET_BRANCH,\n TOKEN_TYPE_TYPE,\n TOKEN_TYPE_WEIGHT,\n TOKEN_TYPE_SEARCH_WITHIN,\n TOKEN_TYPE_CREATED,\n TOKEN_TYPE_CLOSED,\n TOKEN_TYPE_DEPLOYED_BEFORE,\n TOKEN_TYPE_DEPLOYED_AFTER,\n TOKEN_TYPE_ENVIRONMENT,\n} from '~/vue_shared/components/filtered_search_bar/constants';\n\nexport const ISSUE_REFERENCE = /^#\\d+$/;\nexport const MAX_LIST_SIZE = 10;\nexport const PARAM_ASSIGNEE_ID = 'assignee_id';\nexport const PARAM_FIRST_PAGE_SIZE = 'first_page_size';\nexport const PARAM_LAST_PAGE_SIZE = 'last_page_size';\nexport const PARAM_PAGE_AFTER = 'page_after';\nexport const PARAM_PAGE_BEFORE = 'page_before';\nexport const PARAM_SORT = 'sort';\nexport const PARAM_STATE = 'state';\nexport const RELATIVE_POSITION = 'relative_position';\n\nexport const BLOCKING_ISSUES_ASC = 'BLOCKING_ISSUES_ASC';\nexport const BLOCKING_ISSUES_DESC = 'BLOCKING_ISSUES_DESC';\nexport const CLOSED_AT_ASC = 'CLOSED_AT_ASC';\nexport const CLOSED_AT_DESC = 'CLOSED_AT_DESC';\nexport const CREATED_ASC = 'CREATED_ASC';\nexport const CREATED_DESC = 'CREATED_DESC';\nexport const DUE_DATE_ASC = 'DUE_DATE_ASC';\nexport const DUE_DATE_DESC = 'DUE_DATE_DESC';\nexport const HEALTH_STATUS_ASC = 'HEALTH_STATUS_ASC';\nexport const HEALTH_STATUS_DESC = 'HEALTH_STATUS_DESC';\nexport const LABEL_PRIORITY_ASC = 'LABEL_PRIORITY_ASC';\nexport const LABEL_PRIORITY_DESC = 'LABEL_PRIORITY_DESC';\nexport const MILESTONE_DUE_ASC = 'MILESTONE_DUE_ASC';\nexport const MILESTONE_DUE_DESC = 'MILESTONE_DUE_DESC';\nexport const POPULARITY_ASC = 'POPULARITY_ASC';\nexport const POPULARITY_DESC = 'POPULARITY_DESC';\nexport const PRIORITY_ASC = 'PRIORITY_ASC';\nexport const PRIORITY_DESC = 'PRIORITY_DESC';\nexport const RELATIVE_POSITION_ASC = 'RELATIVE_POSITION_ASC';\nexport const TITLE_ASC = 'TITLE_ASC';\nexport const TITLE_DESC = 'TITLE_DESC';\nexport const UPDATED_ASC = 'UPDATED_ASC';\nexport const UPDATED_DESC = 'UPDATED_DESC';\nexport const WEIGHT_ASC = 'WEIGHT_ASC';\nexport const WEIGHT_DESC = 'WEIGHT_DESC';\nexport const MERGED_AT_ASC = 'MERGED_AT_ASC';\nexport const MERGED_AT_DESC = 'MERGED_AT_DESC';\n\nexport const API_PARAM = 'apiParam';\nexport const URL_PARAM = 'urlParam';\nexport const NORMAL_FILTER = 'normalFilter';\nexport const WILDCARD_FILTER = 'wildcardFilter';\nexport const ALTERNATIVE_FILTER = 'alternativeFilter';\n\nexport const ISSUES_VIEW_TYPE_KEY = 'issuesViewType';\nexport const ISSUES_LIST_VIEW_KEY = 'List';\nexport const ISSUES_GRID_VIEW_KEY = 'Grid';\n\nexport const CLOSED = __('Closed');\nexport const CLOSED_MOVED = __('Closed (moved)');\n\nexport const i18n = {\n actionsLabel: __('Actions'),\n closed: CLOSED,\n closedMoved: CLOSED_MOVED,\n confidentialNo: __('No'),\n confidentialYes: __('Yes'),\n downvotes: __('Downvotes'),\n errorFetchingCounts: __('An error occurred while getting issue counts'),\n errorFetchingIssues: __('An error occurred while loading issues'),\n issueRepositioningMessage: __(\n 'Issues are being rebalanced at the moment, so manual reordering is disabled.',\n ),\n upvotes: __('Upvotes'),\n titles: __('Titles'),\n descriptions: __('Descriptions'),\n};\n\nexport const urlSortParams = {\n [PRIORITY_ASC]: 'priority',\n [PRIORITY_DESC]: 'priority_desc',\n [CREATED_ASC]: 'created_asc',\n [CREATED_DESC]: 'created_date',\n [UPDATED_ASC]: 'updated_asc',\n [UPDATED_DESC]: 'updated_desc',\n [CLOSED_AT_ASC]: 'closed_at',\n [CLOSED_AT_DESC]: 'closed_at_desc',\n [MILESTONE_DUE_ASC]: 'milestone',\n [MILESTONE_DUE_DESC]: 'milestone_due_desc',\n [DUE_DATE_ASC]: 'due_date',\n [DUE_DATE_DESC]: 'due_date_desc',\n [POPULARITY_ASC]: 'popularity_asc',\n [POPULARITY_DESC]: 'popularity',\n [LABEL_PRIORITY_ASC]: 'label_priority',\n [LABEL_PRIORITY_DESC]: 'label_priority_desc',\n [RELATIVE_POSITION_ASC]: RELATIVE_POSITION,\n [TITLE_ASC]: 'title_asc',\n [TITLE_DESC]: 'title_desc',\n [HEALTH_STATUS_ASC]: 'health_status_asc',\n [HEALTH_STATUS_DESC]: 'health_status_desc',\n [WEIGHT_ASC]: 'weight',\n [WEIGHT_DESC]: 'weight_desc',\n [BLOCKING_ISSUES_ASC]: 'blocking_issues_asc',\n [BLOCKING_ISSUES_DESC]: 'blocking_issues_desc',\n [MERGED_AT_ASC]: 'merged_at_asc',\n [MERGED_AT_DESC]: 'merged_at_desc',\n};\n\nexport const wildcardFilterValues = [\n FILTER_NONE,\n FILTER_ANY,\n FILTER_CURRENT,\n FILTER_UPCOMING,\n FILTER_STARTED,\n];\n\nexport const filtersMap = {\n [FILTERED_SEARCH_TERM]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'search',\n },\n [URL_PARAM]: {\n [undefined]: {\n [NORMAL_FILTER]: 'search',\n },\n },\n },\n [TOKEN_TYPE_APPROVED_BY]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'approvedBy',\n [WILDCARD_FILTER]: 'approvedBy',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'approved_by_usernames[]',\n [WILDCARD_FILTER]: 'approved_by_usernames[]',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[approved_by_usernames][]',\n [WILDCARD_FILTER]: 'not[approved_by_usernames][]',\n },\n },\n },\n [TOKEN_TYPE_APPROVER]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'approver',\n [WILDCARD_FILTER]: 'approver',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'approver[]',\n [WILDCARD_FILTER]: 'approver[]',\n },\n },\n },\n [TOKEN_TYPE_AUTHOR]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'authorUsername',\n [ALTERNATIVE_FILTER]: 'authorUsernames',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'author_username',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[author_username][]',\n },\n [OPERATOR_OR]: {\n [ALTERNATIVE_FILTER]: 'or[author_username][]',\n },\n },\n },\n [TOKEN_TYPE_SEARCH_WITHIN]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'in',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'in',\n },\n },\n },\n [TOKEN_TYPE_ASSIGNEE]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'assigneeUsernames',\n [WILDCARD_FILTER]: 'assigneeWildcardId',\n [ALTERNATIVE_FILTER]: 'assigneeId',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'assignee_username[]',\n [WILDCARD_FILTER]: 'assignee_id',\n [ALTERNATIVE_FILTER]: 'assignee_username',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[assignee_username][]',\n [ALTERNATIVE_FILTER]: 'not[assignee_username]',\n },\n [OPERATOR_OR]: {\n [NORMAL_FILTER]: 'or[assignee_username][]',\n },\n },\n },\n [TOKEN_TYPE_GROUP]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'fullPath',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'group_path',\n },\n },\n },\n [TOKEN_TYPE_REVIEWER]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'reviewerUsername',\n [WILDCARD_FILTER]: 'reviewerWildcardId',\n [ALTERNATIVE_FILTER]: 'reviewerId',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'reviewer_username',\n [WILDCARD_FILTER]: 'reviewer_id',\n [ALTERNATIVE_FILTER]: 'reviewer_username',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[reviewer_username]',\n },\n },\n },\n [TOKEN_TYPE_MERGE_USER]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'mergeUser',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'merge_user',\n },\n },\n },\n [TOKEN_TYPE_MILESTONE]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'milestoneTitle',\n [WILDCARD_FILTER]: 'milestoneWildcardId',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'milestone_title',\n [WILDCARD_FILTER]: 'milestone_title',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[milestone_title]',\n [WILDCARD_FILTER]: 'not[milestone_title]',\n },\n },\n },\n [TOKEN_TYPE_LABEL]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'labelName',\n [WILDCARD_FILTER]: 'labelName',\n [ALTERNATIVE_FILTER]: 'labelNames',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'label_name[]',\n [WILDCARD_FILTER]: 'label_name[]',\n [ALTERNATIVE_FILTER]: 'label_name',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[label_name][]',\n },\n [OPERATOR_OR]: {\n [ALTERNATIVE_FILTER]: 'or[label_name][]',\n },\n },\n },\n [TOKEN_TYPE_SOURCE_BRANCH]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'sourceBranches',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'source_branches[]',\n [ALTERNATIVE_FILTER]: 'source_branch',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[source_branches][]',\n [ALTERNATIVE_FILTER]: 'not[source_branch]',\n },\n },\n },\n [TOKEN_TYPE_TARGET_BRANCH]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'targetBranches',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'target_branches[]',\n [ALTERNATIVE_FILTER]: 'target_branch',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[target_branches][]',\n [ALTERNATIVE_FILTER]: 'not[target_branch]',\n },\n },\n },\n [TOKEN_TYPE_TYPE]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'types',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'type[]',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[type][]',\n },\n },\n },\n [TOKEN_TYPE_RELEASE]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'releaseTag',\n [WILDCARD_FILTER]: 'releaseTagWildcardId',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'release_tag',\n [WILDCARD_FILTER]: 'release_tag',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[release_tag]',\n },\n },\n },\n [TOKEN_TYPE_MY_REACTION]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'myReactionEmoji',\n [WILDCARD_FILTER]: 'myReactionEmoji',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'my_reaction_emoji',\n [WILDCARD_FILTER]: 'my_reaction_emoji',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[my_reaction_emoji]',\n },\n },\n },\n [TOKEN_TYPE_CONFIDENTIAL]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'confidential',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'confidential',\n },\n },\n },\n [TOKEN_TYPE_DRAFT]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'draft',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'draft',\n },\n },\n },\n [TOKEN_TYPE_ITERATION]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'iterationId',\n [WILDCARD_FILTER]: 'iterationWildcardId',\n [ALTERNATIVE_FILTER]: 'iterationCadenceId',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'iteration_id',\n [WILDCARD_FILTER]: 'iteration_id',\n [ALTERNATIVE_FILTER]: 'iteration_cadence_id',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[iteration_id]',\n [WILDCARD_FILTER]: 'not[iteration_id]',\n },\n },\n },\n [TOKEN_TYPE_EPIC]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'epicId',\n [WILDCARD_FILTER]: 'epicWildcardId',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'epic_id',\n [WILDCARD_FILTER]: 'epic_id',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[epic_id]',\n },\n },\n },\n [TOKEN_TYPE_WEIGHT]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'weight',\n [WILDCARD_FILTER]: 'weightWildcardId',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'weight',\n [WILDCARD_FILTER]: 'weight',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[weight]',\n },\n },\n },\n [TOKEN_TYPE_HEALTH]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'healthStatusFilter',\n [WILDCARD_FILTER]: 'healthStatusFilter',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'health_status',\n [WILDCARD_FILTER]: 'health_status',\n },\n [OPERATOR_NOT]: {\n [NORMAL_FILTER]: 'not[health_status]',\n },\n },\n },\n [TOKEN_TYPE_CONTACT]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'crmContactId',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'crm_contact_id',\n },\n },\n },\n [TOKEN_TYPE_ORGANIZATION]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'crmOrganizationId',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'crm_organization_id',\n },\n },\n },\n [TOKEN_TYPE_CREATED]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'createdBefore',\n [ALTERNATIVE_FILTER]: 'createdAfter',\n },\n [URL_PARAM]: {\n [OPERATOR_AFTER]: {\n [ALTERNATIVE_FILTER]: 'created_after',\n },\n [OPERATOR_BEFORE]: {\n [NORMAL_FILTER]: 'created_before',\n },\n },\n },\n [TOKEN_TYPE_CLOSED]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'closedBefore',\n [ALTERNATIVE_FILTER]: 'closedAfter',\n },\n [URL_PARAM]: {\n [OPERATOR_AFTER]: {\n [ALTERNATIVE_FILTER]: 'closed_after',\n },\n [OPERATOR_BEFORE]: {\n [NORMAL_FILTER]: 'closed_before',\n },\n },\n },\n [TOKEN_TYPE_ENVIRONMENT]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'environmentName',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'environment',\n },\n },\n },\n [TOKEN_TYPE_DEPLOYED_BEFORE]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'deployedBefore',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'deployed_before',\n },\n },\n },\n [TOKEN_TYPE_DEPLOYED_AFTER]: {\n [API_PARAM]: {\n [NORMAL_FILTER]: 'deployedAfter',\n },\n [URL_PARAM]: {\n [OPERATOR_IS]: {\n [NORMAL_FILTER]: 'deployed_after',\n },\n },\n },\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ResourceLinkFields\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableResourceLink\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"link\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"linkType\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"linkText\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":90}};\n doc.loc.source = {\"body\":\"fragment ResourceLinkFields on IssuableResourceLink {\\n id\\n link\\n linkType\\n linkText\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"ResourceLinkFields\"] = oneQuery(doc, \"ResourceLinkFields\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemTypeFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemType\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iconName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgetDefinitions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetDefinitionAssignees\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowsMultipleAssignees\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canInviteMembers\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetDefinitionLabels\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowsScopedLabels\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetDefinitionWeight\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"editable\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rollUp\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetDefinitionHierarchy\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowedChildTypes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":508}};\n doc.loc.source = {\"body\":\"fragment WorkItemTypeFragment on WorkItemType {\\n id\\n name\\n iconName\\n widgetDefinitions {\\n type\\n ... on WorkItemWidgetDefinitionAssignees {\\n allowsMultipleAssignees\\n canInviteMembers\\n }\\n ... on WorkItemWidgetDefinitionLabels {\\n allowsScopedLabels\\n }\\n ... on WorkItemWidgetDefinitionWeight {\\n editable\\n rollUp\\n }\\n ... on WorkItemWidgetDefinitionHierarchy {\\n allowedChildTypes {\\n nodes {\\n id\\n name\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"WorkItemTypeFragment\"] = oneQuery(doc, \"WorkItemTypeFragment\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('timeline-entry-item',{staticClass:\"note note-wrapper\"},[_c('div',{staticClass:\"gl-float-left -gl-mt-1 gl-ml-2 gl-flex gl-h-6 gl-w-6 gl-items-center gl-justify-center gl-rounded-full gl-bg-gray-50 gl-text-subtle\"}),_vm._v(\" \"),_c('div',{staticClass:\"timeline-content\"},[_c('div',{staticClass:\"note-header\"}),_vm._v(\" \"),_c('div',{staticClass:\"note-body gl-mt-4\"},[_c('gl-skeleton-loader')],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./skeleton_note.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./skeleton_note.vue?vue&type=script&lang=js\"","<script>\nimport { GlSkeletonLoader } from '@gitlab/ui';\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\n\nexport default {\n name: 'SkeletonNote',\n components: {\n GlSkeletonLoader,\n TimelineEntryItem,\n },\n};\n</script>\n\n<template>\n <timeline-entry-item class=\"note note-wrapper\">\n <div\n class=\"gl-float-left -gl-mt-1 gl-ml-2 gl-flex gl-h-6 gl-w-6 gl-items-center gl-justify-center gl-rounded-full gl-bg-gray-50 gl-text-subtle\"\n ></div>\n <div class=\"timeline-content\">\n <div class=\"note-header\"></div>\n <div class=\"note-body gl-mt-4\"><gl-skeleton-loader /></div>\n </div>\n </timeline-entry-item>\n</template>\n","import { render, staticRenderFns } from \"./skeleton_note.vue?vue&type=template&id=f4940880\"\nimport script from \"./skeleton_note.vue?vue&type=script&lang=js\"\nexport * from \"./skeleton_note.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export const EVENT_ISSUABLE_VUE_APP_CHANGE = 'issuable_vue_app:change';\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemHierarchyUpdate\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemUpdateInput\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"defaultValue\":{\"kind\":\"IntValue\",\"value\":\"100\"},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"endCursor\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"defaultValue\":{\"kind\":\"StringValue\",\"value\":\"\",\"block\":false},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemUpdate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemHierarchy\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":267}};\n doc.loc.source = {\"body\":\"#import \\\"./work_item_hierarchy.fragment.graphql\\\"\\n\\nmutation workItemHierarchyUpdate(\\n $input: WorkItemUpdateInput!\\n $pageSize: Int = 100\\n $endCursor: String = \\\"\\\"\\n) {\\n workItemUpdate(input: $input) {\\n workItem {\\n ...WorkItemHierarchy\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./work_item_hierarchy.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"workItemHierarchyUpdate\"] = oneQuery(doc, \"workItemHierarchyUpdate\");\n \n","import * as constants from '../constants';\n\nexport default {\n computed: {\n noteableType() {\n const note = this.discussion ? this.discussion.notes[0] : this.note;\n return constants.NOTEABLE_TYPE_MAPPING[note.noteable_type];\n },\n },\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"epicTodos\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentUserTodos\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"pending\"}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":234}};\n doc.loc.source = {\"body\":\"query epicTodos($fullPath: ID!, $iid: ID) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n issuable: epic(iid: $iid) {\\n id\\n currentUserTodos(state: pending) {\\n nodes {\\n id\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"epicTodos\"] = oneQuery(doc, \"epicTodos\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./iteration_title.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./iteration_title.vue?vue&type=script&lang=js\"","<script>\nexport default {\n name: 'IterationTitle',\n props: {\n title: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-text-subtle\">\n {{ title }}\n </div>\n</template>\n","import { render, staticRenderFns } from \"./iteration_title.vue?vue&type=template&id=be345eea\"\nimport script from \"./iteration_title.vue?vue&type=script&lang=js\"\nexport * from \"./iteration_title.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-text-sm\",class:_vm.className},[(_vm.editedBy)?_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.actionWithAuthor},scopedSlots:_vm._u([{key:\"actionText\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.actionText)+\"\\n \")]},proxy:true},{key:\"actionDetail\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.actionDetailText)+\"\\n \")]},proxy:true},{key:\"timeago\",fn:function(){return [_c('time-ago-tooltip',{attrs:{\"time\":_vm.editedAt,\"tooltip-placement\":\"bottom\"}})]},proxy:true},{key:\"author\",fn:function(){return [_c('gl-link',{staticClass:\"js-user-link author-link hover:gl-underline\",attrs:{\"href\":_vm.editedBy.path,\"data-user-id\":_vm.editedBy.id}},[_vm._v(\"\\n \"+_vm._s(_vm.editedBy.name)+\"\\n \")])]},proxy:true}],null,false,3012119528)}):_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.actionWithoutAuthor},scopedSlots:_vm._u([{key:\"actionText\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.actionText)+\"\\n \")]},proxy:true},{key:\"actionDetail\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.actionDetailText)+\"\\n \")]},proxy:true},{key:\"timeago\",fn:function(){return [_c('time-ago-tooltip',{attrs:{\"time\":_vm.editedAt,\"tooltip-placement\":\"bottom\"}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_edited_text.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_edited_text.vue?vue&type=script&lang=js\"","<script>\nimport { GlSprintf, GlLink } from '@gitlab/ui';\nimport TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';\nimport { EDITED_TEXT } from '../i18n';\n\nexport default {\n name: 'EditedNoteText',\n components: {\n GlSprintf,\n GlLink,\n TimeAgoTooltip,\n },\n props: {\n actionText: {\n type: String,\n required: true,\n },\n actionDetailText: {\n type: String,\n required: false,\n default: '',\n },\n editedAt: {\n type: String,\n required: false,\n default: null,\n },\n editedBy: {\n type: Object,\n required: false,\n default: null,\n },\n className: {\n type: String,\n required: false,\n default: 'edited-text',\n },\n },\n i18n: EDITED_TEXT,\n};\n</script>\n\n<template>\n <div :class=\"className\" class=\"gl-text-sm\">\n <gl-sprintf v-if=\"editedBy\" :message=\"$options.i18n.actionWithAuthor\">\n <template #actionText>\n {{ actionText }}\n </template>\n <template #actionDetail>\n {{ actionDetailText }}\n </template>\n <template #timeago>\n <time-ago-tooltip :time=\"editedAt\" tooltip-placement=\"bottom\" />\n </template>\n <template #author>\n <gl-link\n :href=\"editedBy.path\"\n :data-user-id=\"editedBy.id\"\n class=\"js-user-link author-link hover:gl-underline\"\n >\n {{ editedBy.name }}\n </gl-link>\n </template>\n </gl-sprintf>\n <gl-sprintf v-else :message=\"$options.i18n.actionWithoutAuthor\">\n <template #actionText>\n {{ actionText }}\n </template>\n <template #actionDetail>\n {{ actionDetailText }}\n </template>\n <template #timeago>\n <time-ago-tooltip :time=\"editedAt\" tooltip-placement=\"bottom\" />\n </template>\n </gl-sprintf>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./note_edited_text.vue?vue&type=template&id=705c5bc8\"\nimport script from \"./note_edited_text.vue?vue&type=script&lang=js\"\nexport * from \"./note_edited_text.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestSetMilestone\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"attributeId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MilestoneID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetAttribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestSetMilestone\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"attributeId\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"milestone\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":363}};\n doc.loc.source = {\"body\":\"mutation mergeRequestSetMilestone($fullPath: ID!, $iid: String!, $attributeId: MilestoneID) {\\n issuableSetAttribute: mergeRequestSetMilestone(\\n input: { projectPath: $fullPath, iid: $iid, milestoneId: $attributeId }\\n ) {\\n errors\\n issuable: mergeRequest {\\n id\\n attribute: milestone {\\n title\\n id\\n state\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"mergeRequestSetMilestone\"] = oneQuery(doc, \"mergeRequestSetMilestone\");\n \n","/** Used to match template delimiters. */\nvar reEvaluate = /<%([\\s\\S]+?)%>/g;\n\nmodule.exports = reEvaluate;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"createImageWorkItemDiffNote\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateImageDiffNoteInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createImageDiffNote\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"note\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignNote\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"discussion\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"replyId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"noteable\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Design\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignTodoItem\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"notes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignNote\"},\"directives\":[]}]}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":508}};\n doc.loc.source = {\"body\":\"#import \\\"./fragments/design_note.fragment.graphql\\\"\\n#import \\\"./fragments/design_todo_item.fragment.graphql\\\"\\n\\nmutation createImageWorkItemDiffNote($input: CreateImageDiffNoteInput!) {\\n createImageDiffNote(input: $input) {\\n note {\\n ...DesignNote\\n discussion {\\n id\\n replyId\\n noteable {\\n ... on Design {\\n ...DesignTodoItem\\n }\\n }\\n notes {\\n nodes {\\n ...DesignNote\\n }\\n }\\n }\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./fragments/design_note.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"./fragments/design_todo_item.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"createImageWorkItemDiffNote\"] = oneQuery(doc, \"createImageWorkItemDiffNote\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getMrParticipants\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"getStatus\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":false},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"participants\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserAvailability\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"include\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"getStatus\"}}}]}]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":458}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/user_availability.fragment.graphql\\\"\\n\\nquery getMrParticipants($fullPath: ID!, $iid: String!, $getStatus: Boolean = false) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: mergeRequest(iid: $iid) {\\n id\\n participants {\\n nodes {\\n ...User\\n ...UserAvailability @include(if: $getStatus)\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user_availability.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"getMrParticipants\"] = oneQuery(doc, \"getMrParticipants\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"toggleListCollapsed\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"list\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardList\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"collapsed\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"clientToggleListCollapsed\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"list\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"list\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"collapsed\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"collapsed\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"list\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardListFragment\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":261}};\n doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/boards/graphql/board_list.fragment.graphql\\\"\\n\\nmutation toggleListCollapsed($list: BoardList!, $collapsed: Boolean!) {\\n clientToggleListCollapsed(list: $list, collapsed: $collapsed) @client {\\n list {\\n ...BoardListFragment\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/boards/graphql/board_list.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"toggleListCollapsed\"] = oneQuery(doc, \"toggleListCollapsed\");\n \n","import GlClearIconButton from '../../../shared_components/clear_icon_button/clear_icon_button';\nimport GlIcon from '../../icon/icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlListboxSearchInput',\n components: {\n GlClearIconButton,\n GlIcon\n },\n model: {\n prop: 'value',\n event: 'input'\n },\n props: {\n /**\n * If provided, used as value of search input\n */\n value: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Search input placeholder text and aria-label\n */\n placeholder: {\n type: String,\n required: false,\n default: 'Search'\n }\n },\n computed: {\n hasValue() {\n return Boolean(this.value.length);\n },\n inputListeners() {\n return {\n ...this.$listeners,\n input: event => {\n this.$emit('input', event.target.value);\n }\n };\n }\n },\n methods: {\n clearInput() {\n this.$emit('input', '');\n this.focusInput();\n },\n focusInput() {\n this.$refs.input.focus();\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-listbox-search\"},[_c('gl-icon',{staticClass:\"gl-listbox-search-icon\",attrs:{\"name\":\"search-sm\",\"size\":12}}),_vm._v(\" \"),_c('input',_vm._g({ref:\"input\",staticClass:\"gl-listbox-search-input\",attrs:{\"type\":\"search\",\"aria-label\":_vm.placeholder,\"placeholder\":_vm.placeholder},domProps:{\"value\":_vm.value}},_vm.inputListeners)),_vm._v(\" \"),(_vm.hasValue)?_c('gl-clear-icon-button',{staticClass:\"gl-listbox-search-clear-button\",on:{\"click\":function($event){$event.stopPropagation();return _vm.clearInput.apply(null, arguments)}}}):_vm._e()],1)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import uniqueId from 'lodash/uniqueId';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlListboxGroup',\n props: {\n name: {\n type: String,\n required: true\n },\n textSrOnly: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n created() {\n this.nameId = uniqueId('gl-listbox-group-');\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"gl-mb-0 gl-pl-0\",attrs:{\"role\":\"group\",\"aria-labelledby\":_vm.nameId}},[_c('li',{staticClass:\"gl-pb-2 gl-pl-4 gl-pt-3 gl-text-sm gl-font-bold gl-text-strong\",class:{ 'gl-sr-only': _vm.textSrOnly },attrs:{\"id\":_vm.nameId,\"role\":\"presentation\"}},[_vm._t(\"group-label\",function(){return [_vm._v(_vm._s(_vm.name))]})],2),_vm._v(\" \"),_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import clamp from 'lodash/clamp';\nimport uniqueId from 'lodash/uniqueId';\nimport isNil from 'lodash/isNil';\nimport { stopEvent } from '../../../../utils/utils';\nimport { GL_DROPDOWN_SHOWN, GL_DROPDOWN_HIDDEN, POSITION_ABSOLUTE, POSITION_FIXED, GL_DROPDOWN_CONTENTS_CLASS, HOME, END, ARROW_UP, ARROW_DOWN } from '../constants';\nimport { buttonCategoryOptions, dropdownVariantOptions, buttonSizeOptions, dropdownPlacements } from '../../../../utils/constants';\nimport GlButton from '../../button/button';\nimport GlLoadingIcon from '../../loading_icon/loading_icon';\nimport GlIntersectionObserver from '../../../utilities/intersection_observer/intersection_observer';\nimport GlSearchBoxByType from '../../search_box_by_type/search_box_by_type';\nimport GlBaseDropdown from '../base_dropdown/base_dropdown';\nimport { translatePlural } from '../../../../utils/i18n';\nimport GlListboxItem from './listbox_item';\nimport GlListboxSearchInput from './listbox_search_input';\nimport GlListboxGroup from './listbox_group';\nimport { itemsValidator, isOption, flattenedOptions } from './utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst ITEM_SELECTOR = '[role=\"option\"]';\nconst HEADER_ITEMS_BORDER_CLASSES = ['gl-border-b-1', 'gl-border-b-solid', 'gl-border-b-dropdown'];\nconst GROUP_TOP_BORDER_CLASSES = ['gl-border-t', 'gl-border-t-dropdown', 'gl-pt-1', 'gl-mt-2'];\nconst SEARCH_INPUT_SELECTOR = '.gl-listbox-search-input';\nvar script = {\n name: 'GlCollapsibleListbox',\n HEADER_ITEMS_BORDER_CLASSES,\n events: {\n GL_DROPDOWN_SHOWN,\n GL_DROPDOWN_HIDDEN\n },\n components: {\n GlBaseDropdown,\n GlListboxItem,\n GlListboxGroup,\n GlButton,\n GlSearchBoxByType,\n GlListboxSearchInput,\n GlLoadingIcon,\n GlIntersectionObserver\n },\n model: {\n prop: 'selected',\n event: 'select'\n },\n props: {\n /**\n * Items to display in the dropdown\n */\n items: {\n type: Array,\n required: false,\n default: () => [],\n validator: itemsValidator\n },\n /**\n * Array of selected items values for multi-select and selected item value for single-select\n */\n selected: {\n type: [Array, String, Number],\n required: false,\n default: () => []\n },\n /**\n * Allow multi-selection\n */\n multiple: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Toggle button text\n */\n toggleText: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Toggle text to be read by screen readers only\n */\n textSrOnly: {\n type: Boolean,\n required: false,\n default: false\n },\n /** The header text */\n headerText: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Styling option - dropdown's toggle category\n */\n category: {\n type: String,\n required: false,\n default: buttonCategoryOptions.primary,\n validator: value => value in buttonCategoryOptions\n },\n /**\n * Styling option - dropdown's toggle variant\n */\n variant: {\n type: String,\n required: false,\n default: dropdownVariantOptions.default,\n validator: value => value in dropdownVariantOptions\n },\n /**\n * The size of the dropdown toggle\n */\n size: {\n type: String,\n required: false,\n default: 'medium',\n validator: value => value in buttonSizeOptions\n },\n /**\n * Icon name that will be rendered in the toggle button\n */\n icon: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Set to \"true\" to disable the dropdown\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Set to \"true\" when dropdown content (items) is loading\n * It will render a small loader in the dropdown toggle and make it disabled\n */\n loading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Additional CSS classes to customize toggle appearance\n */\n toggleClass: {\n type: [String, Array, Object],\n required: false,\n default: null\n },\n /**\n * Set to \"true\" to hide the caret\n */\n noCaret: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Align listbox menu with respect to the toggle button\n */\n placement: {\n type: String,\n required: false,\n default: 'bottom-start',\n validator: value => Object.keys(dropdownPlacements).includes(value)\n },\n /**\n * Center selected item checkmark\n */\n isCheckCentered: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * The `aria-labelledby` attribute value for the toggle button\n * Provide the string of ids seperated by space\n */\n toggleAriaLabelledBy: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The `aria-labelledby` attribute value for the list of options\n * Provide the string of ids seperated by space\n */\n listAriaLabelledBy: {\n type: String,\n required: false,\n default: null\n },\n /**\n * Enable search\n */\n searchable: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Set to \"true\" when items search is in progress.\n * It will display loading icon below the search input\n */\n searching: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Enables infinite scroll.\n * When set to `true`, the `@bottom-reached` event will be fired when\n * the bottom of the listbox is scrolled to.\n * Does not support groups.\n */\n infiniteScroll: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * This prop is used for infinite scroll.\n * It represents the total number of items that exist,\n * even if they have not yet been loaded.\n * Do not set this prop if the total number of items is unknown.\n */\n totalItems: {\n type: Number,\n required: false,\n default: null\n },\n /**\n * This prop is used for infinite scroll.\n * Set to `true` when more items are being loaded.\n */\n infiniteScrollLoading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Message to be displayed when filtering produced no results\n */\n noResultsText: {\n type: String,\n required: false,\n default: 'No results found'\n },\n /**\n * Search input placeholder text and aria-label\n */\n searchPlaceholder: {\n type: String,\n required: false,\n default: 'Search'\n },\n /**\n * The reset button's label, to be rendered in the header. If this is omitted, the button is not\n * rendered.\n * The reset button requires a header to be set, so this prop should be used in conjunction with\n * headerText.\n */\n resetButtonLabel: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * The select all button's label, to be rendered in the header. If this is omitted, the button is not\n * rendered.\n * The select all button requires a header to be set, so this prop should be used in conjunction with\n * headerText.\n */\n showSelectAllButtonLabel: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Render the toggle button as a block element\n */\n block: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Custom offset to be applied to Floating UI's offset middleware.\n * https://floating-ui.com/docs/offset\n */\n dropdownOffset: {\n type: [Number, Object],\n required: false,\n default: undefined\n },\n /**\n * Lets the dropdown extend to match its content's width, up to a maximum width\n * defined by the `$gl-new-dropdown-max-width` variable.\n */\n fluidWidth: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Strategy to be applied by computePosition. If the dropdown's container is too short for it to\n * fit in, setting this to fixed will let it position itself above its container.\n * https://floating-ui.com/docs/computePosition#strategy\n */\n positioningStrategy: {\n type: String,\n required: false,\n default: POSITION_ABSOLUTE,\n validator: strategy => [POSITION_ABSOLUTE, POSITION_FIXED].includes(strategy)\n },\n /**\n * Opens dropdown on render\n */\n startOpened: {\n type: Boolean,\n required: false,\n default: false\n },\n srOnlyResultsLabel: {\n type: Function,\n required: false,\n default: translatePlural('GlCollapsibleListbox.srOnlyResultsLabel', '%d result', '%d results')\n }\n },\n data() {\n return {\n selectedValues: [],\n toggleId: uniqueId('dropdown-toggle-btn-'),\n listboxId: uniqueId('listbox-'),\n nextFocusedItemIndex: null,\n searchStr: '',\n topBoundaryVisible: true,\n bottomBoundaryVisible: true\n };\n },\n computed: {\n listboxTag() {\n if (!this.hasItems || isOption(this.items[0])) return 'ul';\n return 'div';\n },\n listboxClasses() {\n return {\n 'top-scrim-visible': !this.topBoundaryVisible,\n 'bottom-scrim-visible': !this.bottomBoundaryVisible,\n [GL_DROPDOWN_CONTENTS_CLASS]: true\n };\n },\n itemTag() {\n return this.listboxTag === 'ul' ? 'li' : 'div';\n },\n flattenedOptions() {\n return flattenedOptions(this.items);\n },\n hasItems() {\n return this.items.length > 0;\n },\n listboxToggleText() {\n if (!this.toggleText) {\n if (!this.multiple && this.selectedValues.length) {\n var _this$flattenedOption;\n return (_this$flattenedOption = this.flattenedOptions.find(_ref => {\n let {\n value\n } = _ref;\n return value === this.selectedValues[0];\n })) === null || _this$flattenedOption === void 0 ? void 0 : _this$flattenedOption.text;\n }\n return '';\n }\n return this.toggleText;\n },\n selectedIndices() {\n return this.selectedValues.map(selected => this.flattenedOptions.findIndex(_ref2 => {\n let {\n value\n } = _ref2;\n return value === selected;\n })).sort();\n },\n showList() {\n return this.flattenedOptions.length && !this.searching;\n },\n showNoResultsText() {\n return !this.flattenedOptions.length && !this.searching;\n },\n announceSRSearchResults() {\n return this.searchable && !this.showNoResultsText;\n },\n headerId() {\n return this.headerText && uniqueId('listbox-header-');\n },\n showResetButton() {\n if (!this.resetButtonLabel) {\n return false;\n }\n\n /**\n * if dropdown has no items\n * reset all should be hidden\n */\n if (!this.hasItems) {\n return false;\n }\n\n // hide if no selection\n if (!this.selected || this.selected.length === 0) {\n return false;\n }\n\n // only show reset button if show all button is not there\n return !this.showSelectAllButton;\n },\n showSelectAllButton() {\n if (!this.showSelectAllButtonLabel) {\n return false;\n }\n if (!this.multiple) {\n return false;\n }\n\n /**\n * if dropdown has no items\n * select all should be hidden\n */\n if (!this.hasItems) {\n return false;\n }\n return this.selected.length !== this.flattenedOptions.length;\n },\n showIntersectionObserver() {\n return this.infiniteScroll && !this.infiniteScrollLoading && !this.loading && !this.searching;\n },\n hasCustomToggle() {\n return Boolean(this.$scopedSlots.toggle);\n },\n hasSelection() {\n return Boolean(this.selectedValues.length);\n },\n toggleButtonClasses() {\n const toggleClasses = [this.toggleClass];\n if (!this.hasSelection) {\n toggleClasses.push('!gl-text-subtle');\n }\n return toggleClasses;\n },\n hasHeader() {\n return this.headerText || this.searchable;\n },\n hasFooter() {\n return Boolean(this.$scopedSlots.footer);\n }\n },\n watch: {\n selected: {\n immediate: true,\n handler(newSelected) {\n if (Array.isArray(newSelected)) {\n if (process.env.NODE_ENV !== 'production' && !this.multiple && newSelected.length) {\n throw new Error('To allow multi-selection, please, set \"multiple\" property to \"true\"');\n }\n this.selectedValues = [...newSelected];\n } else {\n this.selectedValues = isNil(newSelected) ? [] : [newSelected];\n }\n }\n },\n items: {\n handler() {\n this.$nextTick(() => {\n /* Every time the list of items changes (on search),\n * the observed elements are recreated, thus we need to start obesrving them again */\n this.observeScroll();\n });\n }\n },\n ...(process.env.NODE_ENV !== 'production' ? {\n resetButtonLabel: {\n immediate: true,\n handler(newResetButtonLabel) {\n if (newResetButtonLabel && !this.headerText) {\n throw new Error('The reset button cannot be rendered without a header. Either provide a header via the headerText prop, or do not provide the resetButtonLabel prop.');\n }\n }\n },\n showSelectAllButtonLabel: {\n immediate: true,\n handler(showSelectAllButtonLabel) {\n if (showSelectAllButtonLabel && !this.headerText) {\n throw new Error('The select all button cannot be rendered without a header. Either provide a header via the headerText prop, or do not provide the showSelectAllButtonLabel prop.');\n }\n }\n },\n infiniteScroll: {\n immediate: true,\n handler(newValue) {\n if (newValue && this.items.some(item => !isOption(item))) {\n throw new Error('Infinite scroll does not support groups. Please set the \"infiniteScroll\" prop to \"false\"');\n }\n }\n }\n } : {})\n },\n mounted() {\n if (this.startOpened) {\n this.open();\n }\n this.observeScroll();\n },\n beforeDestroy() {\n var _this$scrollObserver;\n (_this$scrollObserver = this.scrollObserver) === null || _this$scrollObserver === void 0 ? void 0 : _this$scrollObserver.disconnect();\n },\n methods: {\n open() {\n this.$refs.baseDropdown.open();\n },\n close() {\n this.$refs.baseDropdown.close();\n },\n groupClasses(index) {\n return index === 0 ? null : GROUP_TOP_BORDER_CLASSES;\n },\n onShow() {\n if (this.searchable) {\n this.focusSearchInput();\n } else {\n var _this$selectedIndices;\n this.focusItem((_this$selectedIndices = this.selectedIndices[0]) !== null && _this$selectedIndices !== void 0 ? _this$selectedIndices : 0, this.getFocusableListItemElements());\n }\n /**\n * Emitted when dropdown is shown\n *\n * @event shown\n */\n this.$emit(GL_DROPDOWN_SHOWN);\n },\n onHide() {\n /**\n * Emitted when dropdown is hidden\n *\n * @event hidden\n */\n this.$emit(GL_DROPDOWN_HIDDEN);\n this.nextFocusedItemIndex = null;\n },\n onKeydown(event) {\n const {\n code,\n target\n } = event;\n const elements = this.getFocusableListItemElements();\n if (elements.length < 1) return;\n let stop = true;\n const isSearchInput = target.matches(SEARCH_INPUT_SELECTOR);\n if (code === HOME) {\n if (isSearchInput) {\n return;\n }\n this.focusItem(0, elements);\n } else if (code === END) {\n if (isSearchInput) {\n return;\n }\n this.focusItem(elements.length - 1, elements);\n } else if (code === ARROW_UP) {\n if (isSearchInput) {\n return;\n }\n if (this.searchable && elements.indexOf(target) === 0) {\n this.focusSearchInput();\n } else {\n this.focusNextItem(event, elements, -1);\n }\n } else if (code === ARROW_DOWN) {\n if (isSearchInput) {\n this.focusItem(0, elements);\n } else {\n this.focusNextItem(event, elements, 1);\n }\n } else {\n stop = false;\n }\n if (stop) {\n stopEvent(event);\n }\n },\n getFocusableListItemElements() {\n var _this$$refs$list;\n const items = (_this$$refs$list = this.$refs.list) === null || _this$$refs$list === void 0 ? void 0 : _this$$refs$list.querySelectorAll(ITEM_SELECTOR);\n return Array.from(items || []);\n },\n focusNextItem(event, elements, offset) {\n const {\n target\n } = event;\n const currentIndex = elements.indexOf(target);\n const nextIndex = clamp(currentIndex + offset, 0, elements.length - 1);\n this.focusItem(nextIndex, elements);\n },\n focusItem(index, elements) {\n var _elements$index;\n this.nextFocusedItemIndex = index;\n (_elements$index = elements[index]) === null || _elements$index === void 0 ? void 0 : _elements$index.focus();\n },\n focusSearchInput() {\n this.$refs.searchBox.focusInput();\n },\n onSelect(item, isSelected) {\n if (this.multiple) {\n this.onMultiSelect(item.value, isSelected);\n } else {\n this.onSingleSelect(item.value, isSelected);\n }\n },\n isSelected(item) {\n return this.selectedValues.some(value => value === item.value);\n },\n isFocused(item) {\n return this.nextFocusedItemIndex === this.flattenedOptions.indexOf(item);\n },\n onSingleSelect(value, isSelected) {\n if (isSelected) {\n /**\n * Emitted when selection is changed\n *\n * @event select\n */\n this.$emit('select', value);\n }\n this.closeAndFocus();\n },\n onMultiSelect(value, isSelected) {\n if (isSelected) {\n this.$emit('select', [...this.selectedValues, value]);\n } else {\n this.$emit('select', this.selectedValues.filter(selectedValue => selectedValue !== value));\n }\n },\n search(searchTerm) {\n /**\n * Emitted when the search query string is changed\n *\n * @event search\n * @type {string}\n */\n this.$emit('search', searchTerm);\n },\n onResetButtonClicked() {\n /**\n * Emitted when the reset button is clicked\n *\n * @event reset\n */\n this.$emit('reset');\n },\n onSelectAllButtonClicked() {\n /**\n * Emitted when the select all button is clicked\n *\n * @event select-all\n */\n this.$emit('select-all');\n },\n closeAndFocus() {\n this.$refs.baseDropdown.closeAndFocus();\n },\n onIntersectionObserverAppear() {\n /**\n * Emitted when bottom of listbox has been scrolled to.\n * Used for infinite scroll.\n *\n * @event bottom-reached\n */\n this.$emit('bottom-reached');\n },\n listboxItemMoreItemsAriaAttributes(index) {\n if (this.totalItems === null) {\n return {};\n }\n return {\n 'aria-setsize': this.totalItems,\n 'aria-posinset': index + 1\n };\n },\n observeScroll() {\n var _this$scrollObserver2;\n const root = this.$refs.list;\n const options = {\n rootMargin: '8px',\n root,\n threshold: 1.0\n };\n (_this$scrollObserver2 = this.scrollObserver) === null || _this$scrollObserver2 === void 0 ? void 0 : _this$scrollObserver2.disconnect();\n const observer = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n var _entry$target;\n this[(_entry$target = entry.target) === null || _entry$target === void 0 ? void 0 : _entry$target.$__visibilityProp] = entry.isIntersecting;\n });\n }, options);\n const topBoundary = this.$refs['top-boundary'];\n const bottomBoundary = this.$refs['bottom-boundary'];\n if (topBoundary) {\n topBoundary.$__visibilityProp = 'topBoundaryVisible';\n observer.observe(topBoundary);\n }\n if (bottomBoundary) {\n bottomBoundary.$__visibilityProp = 'bottomBoundaryVisible';\n observer.observe(bottomBoundary);\n }\n this.scrollObserver = observer;\n },\n isOption\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-base-dropdown',{ref:\"baseDropdown\",attrs:{\"aria-haspopup\":\"listbox\",\"aria-labelledby\":_vm.toggleAriaLabelledBy,\"block\":_vm.block,\"toggle-id\":_vm.toggleId,\"toggle-text\":_vm.listboxToggleText,\"toggle-class\":_vm.toggleButtonClasses,\"text-sr-only\":_vm.textSrOnly,\"category\":_vm.category,\"variant\":_vm.variant,\"size\":_vm.size,\"icon\":_vm.icon,\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"no-caret\":_vm.noCaret,\"placement\":_vm.placement,\"offset\":_vm.dropdownOffset,\"fluid-width\":_vm.fluidWidth,\"positioning-strategy\":_vm.positioningStrategy},on:_vm._d({},[_vm.$options.events.GL_DROPDOWN_SHOWN,_vm.onShow,_vm.$options.events.GL_DROPDOWN_HIDDEN,_vm.onHide]),scopedSlots:_vm._u([(_vm.hasCustomToggle)?{key:\"toggle\",fn:function(){return [_vm._t(\"toggle\")]},proxy:true}:null],null,true)},[_vm._v(\" \"),(_vm.headerText)?_c('div',{staticClass:\"gl-flex gl-min-h-8 gl-items-center !gl-p-4\",class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('div',{staticClass:\"gl-grow gl-pr-2 gl-text-sm gl-font-bold gl-text-strong\",attrs:{\"id\":_vm.headerId,\"data-testid\":\"listbox-header-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.headerText)+\"\\n \")]),_vm._v(\" \"),(_vm.showResetButton)?_c('gl-button',{staticClass:\"!gl-m-0 !gl-w-auto gl-max-w-1/2 gl-flex-shrink-0 gl-text-ellipsis !gl-px-2 !gl-text-sm focus:!gl-shadow-inner-2-blue-400\",attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"data-testid\":\"listbox-reset-button\"},on:{\"click\":_vm.onResetButtonClicked}},[_vm._v(\"\\n \"+_vm._s(_vm.resetButtonLabel)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showSelectAllButton)?_c('gl-button',{staticClass:\"!gl-m-0 !gl-w-auto gl-max-w-1/2 gl-flex-shrink-0 gl-text-ellipsis !gl-px-2 !gl-text-sm focus:!gl-shadow-inner-2-blue-400\",attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"data-testid\":\"listbox-select-all-button\"},on:{\"click\":_vm.onSelectAllButtonClicked}},[_vm._v(\"\\n \"+_vm._s(_vm.showSelectAllButtonLabel)+\"\\n \")]):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.searchable)?_c('div',{class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('gl-listbox-search-input',{ref:\"searchBox\",class:{ 'gl-listbox-topmost': !_vm.headerText },attrs:{\"data-testid\":\"listbox-search-input\",\"placeholder\":_vm.searchPlaceholder},on:{\"input\":_vm.search,\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();},_vm.onKeydown]},model:{value:(_vm.searchStr),callback:function ($$v) {_vm.searchStr=$$v;},expression:\"searchStr\"}}),_vm._v(\" \"),(_vm.searching)?_c('gl-loading-icon',{staticClass:\"gl-my-3\",attrs:{\"data-testid\":\"listbox-search-loader\",\"size\":\"md\"}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.showList)?_c(_vm.listboxTag,{ref:\"list\",tag:\"component\",staticClass:\"gl-new-dropdown-contents gl-new-dropdown-contents-with-scrim-overlay\",class:_vm.listboxClasses,attrs:{\"id\":_vm.listboxId,\"aria-labelledby\":_vm.listAriaLabelledBy || _vm.headerId || _vm.toggleId,\"role\":\"listbox\",\"tabindex\":\"0\"},on:{\"keydown\":_vm.onKeydown}},[_c(_vm.itemTag,{tag:\"component\",staticClass:\"top-scrim-wrapper\",attrs:{\"aria-hidden\":\"true\",\"data-testid\":\"top-scrim\"}},[_c('div',{staticClass:\"top-scrim\",class:{ 'top-scrim-light': !_vm.hasHeader, 'top-scrim-dark': _vm.hasHeader }})]),_vm._v(\" \"),_c(_vm.itemTag,{ref:\"top-boundary\",tag:\"component\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_vm._l((_vm.items),function(item,index){return [(_vm.isOption(item))?[_c('gl-listbox-item',_vm._b({key:item.value,attrs:{\"data-testid\":(\"listbox-item-\" + (item.value)),\"is-selected\":_vm.isSelected(item),\"is-focused\":_vm.isFocused(item),\"is-check-centered\":_vm.isCheckCentered},on:{\"select\":function($event){return _vm.onSelect(item, $event)}}},'gl-listbox-item',_vm.listboxItemMoreItemsAriaAttributes(index),false),[_vm._t(\"list-item\",function(){return [_vm._v(\"\\n \"+_vm._s(item.text)+\"\\n \")]},{\"item\":item})],2)]:[_c('gl-listbox-group',{key:item.text,class:_vm.groupClasses(index),attrs:{\"name\":item.text,\"text-sr-only\":item.textSrOnly},scopedSlots:_vm._u([(_vm.$scopedSlots['group-label'])?{key:\"group-label\",fn:function(){return [_vm._t(\"group-label\",null,{\"group\":item})]},proxy:true}:null],null,true)},[_vm._v(\" \"),_vm._l((item.options),function(option){return _c('gl-listbox-item',{key:option.value,attrs:{\"data-testid\":(\"listbox-item-\" + (option.value)),\"is-selected\":_vm.isSelected(option),\"is-focused\":_vm.isFocused(option),\"is-check-centered\":_vm.isCheckCentered},on:{\"select\":function($event){return _vm.onSelect(option, $event)}}},[_vm._t(\"list-item\",function(){return [_vm._v(\"\\n \"+_vm._s(option.text)+\"\\n \")]},{\"item\":option})],2)})],2)]]}),_vm._v(\" \"),(_vm.infiniteScrollLoading)?_c(_vm.itemTag,{tag:\"component\"},[_c('gl-loading-icon',{staticClass:\"gl-my-3\",attrs:{\"data-testid\":\"listbox-infinite-scroll-loader\",\"size\":\"md\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.showIntersectionObserver)?_c('gl-intersection-observer',{on:{\"appear\":_vm.onIntersectionObserverAppear}}):_vm._e(),_vm._v(\" \"),_c(_vm.itemTag,{ref:\"bottom-boundary\",tag:\"component\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c(_vm.itemTag,{tag:\"component\",staticClass:\"bottom-scrim-wrapper\",attrs:{\"aria-hidden\":\"true\",\"data-testid\":\"bottom-scrim\"}},[_c('div',{staticClass:\"bottom-scrim\",class:{ '!gl-rounded-none': _vm.hasFooter }})])],2):_vm._e(),_vm._v(\" \"),(_vm.announceSRSearchResults)?_c('span',{staticClass:\"gl-sr-only\",attrs:{\"data-testid\":\"listbox-number-of-results\",\"aria-live\":\"assertive\"}},[_vm._t(\"search-summary-sr-only\",function(){return [_vm._v(\"\\n \"+_vm._s(_vm.srOnlyResultsLabel(_vm.flattenedOptions.length))+\"\\n \")]})],2):(_vm.showNoResultsText)?_c('div',{staticClass:\"gl-py-3 gl-pl-7 gl-pr-5 gl-text-base gl-text-subtle\",attrs:{\"aria-live\":\"assertive\",\"data-testid\":\"listbox-no-results-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.noResultsText)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_vm._t(\"footer\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\nexport { ITEM_SELECTOR, SEARCH_INPUT_SELECTOR };\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateIssue\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateIssueInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateIssue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":147}};\n doc.loc.source = {\"body\":\"mutation updateIssue($input: UpdateIssueInput!) {\\n updateIssue(input: $input) {\\n issuable: issue {\\n id\\n state\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateIssue\"] = oneQuery(doc, \"updateIssue\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.shouldShow),expression:\"shouldShow\"}],attrs:{\"id\":\"notes\"}},[_c('sidebar-subscription',{attrs:{\"iid\":_vm.noteableData.iid,\"noteable-data\":_vm.noteableData}}),_vm._v(\" \"),_c('notes-activity-header',{attrs:{\"notes-filters\":_vm.notesFilters,\"notes-filter-value\":_vm.notesFilterValue,\"ai-loading\":_vm.aiLoading},on:{\"set-ai-loading\":_vm.setAiLoading}}),_vm._v(\" \"),(_vm.aiLoading !== null)?_c('ai-summary',{attrs:{\"ai-loading\":_vm.aiLoading},on:{\"set-ai-loading\":_vm.setAiLoading}}):_vm._e(),_vm._v(\" \"),_c('ordered-layout',{attrs:{\"slot-keys\":_vm.slotKeys},scopedSlots:_vm._u([{key:\"form\",fn:function(){return [(!(_vm.commentsDisabled || _vm.timelineEnabled))?_c('comment-form',{ref:\"commentForm\",staticClass:\"js-comment-form\",attrs:{\"noteable-type\":_vm.noteableType}}):_vm._e()]},proxy:true},{key:\"comments\",fn:function(){return [_c('ul',{staticClass:\"notes main-notes-list timeline\",attrs:{\"id\":\"notes-list\"}},[_vm._l((_vm.allDiscussions),function(discussion){return [(discussion.isSkeletonNote)?_c('skeleton-loading-container',{key:discussion.id,staticClass:\"note-skeleton\"}):(discussion.isPreviewNote)?_c('timeline-entry-item',{key:discussion.id,staticClass:\"target note note-wrapper note-comment\"},[_c('note-preview',{attrs:{\"note-id\":_vm.previewNoteId}})],1):(discussion.isDraft)?_c('timeline-entry-item',{key:discussion.id},[_c('draft-note',{attrs:{\"draft\":discussion}})],1):(discussion.isPlaceholderNote)?[(discussion.placeholderType === _vm.$options.systemNote)?_c('placeholder-system-note',{key:discussion.id,attrs:{\"note\":discussion.notes[0]}}):_c('placeholder-note',{key:discussion.id,attrs:{\"note\":discussion.notes[0]}})]:(_vm.discussionIsIndividualNoteAndNotConverted(discussion))?[(discussion.notes[0].system)?_c('system-note',{key:discussion.id,attrs:{\"note\":discussion.notes[0]}}):_c('noteable-note',{key:discussion.id,attrs:{\"note\":discussion.notes[0],\"show-reply-button\":_vm.canReply},on:{\"startReplying\":function($event){return _vm.startReplying(discussion.id)}}})]:_c('noteable-discussion',{key:discussion.id,ref:\"discussions\",refInFor:true,staticClass:\"js-noteable-discussion\",attrs:{\"discussion\":discussion,\"render-diff-file\":true,\"is-overview-tab\":\"\",\"help-page-path\":_vm.helpPagePath}})]}),_vm._v(\" \"),(_vm.commentsDisabled)?_c('discussion-filter-note'):_vm._e()],2)]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_preview.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./note_preview.vue?vue&type=script&lang=js\"","<script>\nimport { renderGFM } from '~/behaviors/markdown/render_gfm';\nimport { convertToGraphQLId, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_NOTE } from '~/graphql_shared/constants';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport timeagoMixin from '~/vue_shared/mixins/timeago';\nimport noteQuery from '../graphql/note.query.graphql';\nimport NoteEditedText from './note_edited_text.vue';\nimport NoteableNote from './noteable_note.vue';\n\nexport default {\n components: {\n NoteEditedText,\n NoteableNote,\n },\n directives: {\n SafeHtml,\n },\n mixins: [timeagoMixin],\n props: {\n noteId: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n note: null,\n hidden: false,\n };\n },\n computed: {\n showNote() {\n return this.note && !this.hidden && !this.isSyntheticNote;\n },\n showEdited() {\n return this.note && this.note.created_at !== this.note.last_edited_at;\n },\n isSyntheticNote() {\n return Boolean(this.noteId?.match(/([a-f0-9]{40})/));\n },\n noteHtml() {\n return this.note?.body_html;\n },\n },\n watch: {\n async noteHtml() {\n try {\n await this.$nextTick();\n renderGFM(this.$refs.noteBody);\n } catch {\n this.fallback();\n }\n },\n },\n mounted() {\n if (this.isSyntheticNote) {\n this.fallback();\n }\n },\n methods: {\n fallback() {\n this.hidden = true;\n },\n },\n apollo: {\n note: {\n skip() {\n return !this.noteId || this.isSyntheticNote;\n },\n query: noteQuery,\n variables() {\n return {\n id: convertToGraphQLId(TYPENAME_NOTE, this.noteId),\n };\n },\n update(data) {\n if (!data?.note) return null;\n return {\n ...data.note,\n author: {\n ...data.note.author,\n id: getIdFromGraphQLId(data.note.author.id),\n },\n last_edited_by: {\n ...data.note.last_edited_by,\n id: getIdFromGraphQLId(data.note.last_edited_by?.id),\n },\n id: getIdFromGraphQLId(data.note.id),\n };\n },\n result(result) {\n if (result?.errors?.length > 0) {\n Sentry.captureException(result.errors[0].message);\n this.fallback();\n }\n\n if (!result?.data?.note) {\n this.fallback();\n }\n },\n error(error) {\n Sentry.captureException(error);\n this.fallback();\n },\n },\n },\n};\n</script>\n\n<template>\n <noteable-note\n v-if=\"showNote\"\n :id=\"`note_${noteId}`\"\n :note=\"note\"\n :show-reply-button=\"false\"\n should-scroll-to-note\n >\n <template #note-body>\n <div ref=\"noteBody\" class=\"note-body\">\n <div v-safe-html:[$options.safeHtmlConfig]=\"noteHtml\" class=\"note-text md\"></div>\n <note-edited-text\n v-if=\"showEdited\"\n :edited-at=\"note.last_edited_at\"\n :edited-by=\"note.last_edited_by\"\n :action-text=\"__('Edited')\"\n class=\"note_edited_ago\"\n />\n </div>\n </template>\n </noteable-note>\n</template>\n","import { render, staticRenderFns } from \"./note_preview.vue?vue&type=template&id=72acd864\"\nimport script from \"./note_preview.vue?vue&type=script&lang=js\"\nexport * from \"./note_preview.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showNote)?_c('noteable-note',{attrs:{\"id\":`note_${_vm.noteId}`,\"note\":_vm.note,\"show-reply-button\":false,\"should-scroll-to-note\":\"\"},scopedSlots:_vm._u([{key:\"note-body\",fn:function(){return [_c('div',{ref:\"noteBody\",staticClass:\"note-body\"},[_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(_vm.noteHtml),expression:\"noteHtml\",arg:_vm.$options.safeHtmlConfig}],staticClass:\"note-text md\"}),_vm._v(\" \"),(_vm.showEdited)?_c('note-edited-text',{staticClass:\"note_edited_ago\",attrs:{\"edited-at\":_vm.note.last_edited_at,\"edited-by\":_vm.note.last_edited_by,\"action-text\":_vm.__('Edited')}}):_vm._e()],1)]},proxy:true}],null,false,1616355029)}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comment_form.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comment_form.vue?vue&type=script&lang=js\"","<script>\nimport { GlAlert, GlButton, GlFormCheckbox, GlTooltipDirective } from '@gitlab/ui';\nimport $ from 'jquery';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport { createAlert } from '~/alert';\nimport { STATUS_CLOSED, STATUS_MERGED, STATUS_OPEN, STATUS_REOPENED } from '~/issues/constants';\nimport { detectAndConfirmSensitiveTokens } from '~/lib/utils/secret_detection';\nimport {\n capitalizeFirstCharacter,\n convertToCamelCase,\n slugifyWithUnderscore,\n} from '~/lib/utils/text_utility';\nimport { sprintf } from '~/locale';\nimport { InternalEvents } from '~/tracking';\nimport { badgeState } from '~/merge_requests/components/merge_request_header.vue';\nimport MarkdownEditor from '~/vue_shared/components/markdown/markdown_editor.vue';\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport { trackSavedUsingEditor } from '~/vue_shared/components/markdown/tracking';\nimport glAbilitiesMixin from '~/vue_shared/mixins/gl_abilities_mixin';\nimport { fetchUserCounts } from '~/super_sidebar/user_counts_fetch';\n\nimport * as constants from '../constants';\nimport eventHub from '../event_hub';\nimport { COMMENT_FORM } from '../i18n';\nimport { createNoteErrorMessages, isSlashCommand } from '../utils';\n\nimport issuableStateMixin from '../mixins/issuable_state';\nimport CommentFieldLayout from './comment_field_layout.vue';\nimport CommentTypeDropdown from './comment_type_dropdown.vue';\nimport DiscussionLockedWidget from './discussion_locked_widget.vue';\nimport NoteSignedOutWidget from './note_signed_out_widget.vue';\n\nexport default {\n name: 'CommentForm',\n i18n: COMMENT_FORM,\n components: {\n NoteSignedOutWidget,\n DiscussionLockedWidget,\n MarkdownEditor,\n GlAlert,\n GlButton,\n TimelineEntryItem,\n HelpIcon,\n CommentFieldLayout,\n CommentTypeDropdown,\n GlFormCheckbox,\n CommentTemperature: () =>\n import(\n /* webpackChunkName: 'comment_temperature' */ 'ee_component/ai/components/comment_temperature.vue'\n ),\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [issuableStateMixin, InternalEvents.mixin(), glAbilitiesMixin()],\n props: {\n noteableType: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n note: '',\n noteType: constants.COMMENT,\n errors: [],\n noteIsInternal: false,\n isSubmitting: false,\n isMeasuringCommentTemperature: false,\n formFieldProps: {\n 'aria-label': this.$options.i18n.comment,\n placeholder: this.$options.i18n.bodyPlaceholder,\n id: 'note-body',\n name: 'note[note]',\n class: 'js-note-text note-textarea js-gfm-input markdown-area',\n 'data-testid': 'comment-field',\n },\n };\n },\n computed: {\n ...mapGetters([\n 'getCurrentUserLastNote',\n 'getUserData',\n 'getNoteableData',\n 'getNoteableDataByProp',\n 'getNotesData',\n 'openState',\n 'hasDrafts',\n ]),\n ...mapState(['isToggleStateButtonLoading']),\n autocompleteDataSources() {\n return gl.GfmAutoComplete?.dataSources;\n },\n noteableDisplayName() {\n const displayNameMap = {\n [constants.ISSUE_NOTEABLE_TYPE]: this.$options.i18n.issue,\n [constants.EPIC_NOTEABLE_TYPE]: this.$options.i18n.epic,\n [constants.MERGE_REQUEST_NOTEABLE_TYPE]: this.$options.i18n.mergeRequest,\n };\n\n const noteableTypeKey =\n constants.NOTEABLE_TYPE_MAPPING[this.noteableType] || constants.ISSUE_NOTEABLE_TYPE;\n return displayNameMap[noteableTypeKey];\n },\n isLoggedIn() {\n return this.getUserData.id;\n },\n commentButtonTitle() {\n const { comment, internalComment, startThread, startInternalThread } = this.$options.i18n;\n if (this.noteIsInternal) {\n return this.noteType === constants.COMMENT ? internalComment : startInternalThread;\n }\n return this.noteType === constants.COMMENT ? comment : startThread;\n },\n discussionsRequireResolution() {\n return this.getNoteableData.noteableType === constants.MERGE_REQUEST_NOTEABLE_TYPE;\n },\n isOpen() {\n return this.openState === STATUS_OPEN || this.openState === STATUS_REOPENED;\n },\n canCreateNote() {\n return this.getNoteableData.current_user.can_create_note;\n },\n canSetInternalNote() {\n return this.getNoteableData.current_user.can_create_confidential_note;\n },\n issueActionButtonTitle() {\n const openOrClose = this.isOpen ? 'close' : 'reopen';\n\n if (this.note.length) {\n return sprintf(this.$options.i18n.actionButton.withNote[openOrClose], {\n actionText: this.commentButtonTitle,\n noteable: this.noteableDisplayName,\n });\n }\n\n return sprintf(this.$options.i18n.actionButton.withoutNote[openOrClose], {\n noteable: this.noteableDisplayName,\n });\n },\n actionButtonClassNames() {\n return {\n 'btn-reopen': !this.isOpen,\n 'btn-close': this.isOpen,\n 'js-note-target-close': this.isOpen,\n 'js-note-target-reopen': !this.isOpen,\n };\n },\n markdownDocsPath() {\n return this.getNotesData.markdownDocsPath;\n },\n markdownPreviewPath() {\n return this.getNoteableData.preview_note_path;\n },\n author() {\n return this.getUserData;\n },\n canToggleIssueState() {\n return (\n this.getNoteableData.current_user.can_update &&\n this.openState !== STATUS_MERGED &&\n !this.closedAndLocked\n );\n },\n closedAndLocked() {\n return !this.isOpen && this.isLocked(this.getNoteableData);\n },\n endpoint() {\n return this.getNoteableData.create_note_path;\n },\n draftEndpoint() {\n return this.getNotesData.draftsPath;\n },\n isIssue() {\n return constants.NOTEABLE_TYPE_MAPPING[this.noteableType] === constants.ISSUE_NOTEABLE_TYPE;\n },\n isEpic() {\n return constants.NOTEABLE_TYPE_MAPPING[this.noteableType] === constants.EPIC_NOTEABLE_TYPE;\n },\n isMergeRequest() {\n return (\n constants.NOTEABLE_TYPE_MAPPING[this.noteableType] === constants.MERGE_REQUEST_NOTEABLE_TYPE\n );\n },\n trackingLabel() {\n return slugifyWithUnderscore(`${this.commentButtonTitle} button`);\n },\n disableSubmitButton() {\n return this.note.length === 0 || this.isSubmitting;\n },\n autosaveKey() {\n if (this.isLoggedIn) {\n const noteableType = capitalizeFirstCharacter(convertToCamelCase(this.noteableType));\n return `${this.$options.i18n.note}/${noteableType}/${this.getNoteableData.id}`;\n }\n\n return null;\n },\n shouldDisableField() {\n return this.isSubmitting && !this.isMeasuringCommentTemperature;\n },\n shouldMeasureNoteTemperature() {\n return !isSlashCommand(this.note) && this.glAbilities.measureCommentTemperature;\n },\n },\n watch: {\n noteIsInternal(val) {\n this.formFieldProps.placeholder = val\n ? this.$options.i18n.bodyPlaceholderInternal\n : this.$options.i18n.bodyPlaceholder;\n },\n },\n mounted() {\n // jQuery is needed here because it is a custom event being dispatched with jQuery.\n $(document).on('issuable:change', (e, isClosed) => {\n this.toggleIssueLocalState(isClosed ? STATUS_CLOSED : STATUS_REOPENED);\n });\n },\n methods: {\n ...mapActions([\n 'saveNote',\n 'removePlaceholderNotes',\n 'closeIssuable',\n 'reopenIssuable',\n 'toggleIssueLocalState',\n ]),\n handleSaveError({ data, status }) {\n this.errors = createNoteErrorMessages(data, status);\n },\n handleSaveDraft() {\n this.handleSave({ isDraft: true });\n },\n async handleSave({\n withIssueAction = false,\n isDraft = false,\n shouldMeasureTemperature = true,\n } = {}) {\n this.errors = [];\n\n if (this.note.length) {\n const noteData = {\n endpoint: isDraft ? this.draftEndpoint : this.endpoint,\n flashContainer: this.$el,\n data: {\n note: {\n noteable_type: this.noteableType,\n noteable_id: this.getNoteableData.id,\n internal: this.noteIsInternal,\n note: this.note,\n },\n merge_request_diff_head_sha: this.getNoteableData.diff_head_sha,\n },\n isDraft,\n };\n\n if (this.noteType === constants.DISCUSSION || isDraft) {\n noteData.data.note.type = constants.DISCUSSION_NOTE;\n }\n\n const confirmSubmit = await detectAndConfirmSensitiveTokens({ content: this.note });\n if (!confirmSubmit) {\n return;\n }\n\n this.isSubmitting = true;\n\n if (this.shouldMeasureNoteTemperature && shouldMeasureTemperature) {\n this.saveNoteParams = { isDraft, withIssueAction };\n this.isMeasuringCommentTemperature = true;\n this.$refs.commentTemperature.measureCommentTemperature();\n return;\n }\n\n if (!this.shouldMeasureTemperature) {\n this.isMeasuringCommentTemperature = false;\n }\n\n this.note = ''; // Empty textarea while being requested. Repopulate in catch\n if (isDraft) {\n eventHub.$emit('noteFormAddToReview', { name: 'noteFormAddToReview' });\n }\n\n trackSavedUsingEditor(\n this.$refs.markdownEditor.isContentEditorActive,\n `${this.noteableType}_${this.noteType}`,\n );\n\n this.saveNote(noteData)\n .then(() => {\n this.discard();\n\n if (withIssueAction) {\n this.toggleIssueState();\n }\n })\n .catch(({ response }) => {\n this.handleSaveError(response);\n\n this.note = noteData.data.note.note; // Restore textarea content.\n this.removePlaceholderNotes();\n })\n .finally(() => {\n this.isSubmitting = false;\n });\n } else {\n this.toggleIssueState();\n }\n },\n handleEnter() {\n if (this.hasDrafts) {\n this.handleSaveDraft();\n } else {\n this.handleSave();\n }\n },\n toggleIssueState() {\n if (this.isIssue) {\n // We want to invoke the close/reopen logic in the issue header\n // since that is where the blocked-by issues modal logic is also defined\n eventHub.$emit('toggle.issuable.state');\n return;\n }\n\n const toggleState = this.isOpen ? this.closeIssuable : this.reopenIssuable;\n\n toggleState()\n .then(() => {\n fetchUserCounts();\n // badgeState is only initialized for MR type\n // To avoid undefined error added an optional chaining to function\n return badgeState?.updateStatus?.();\n })\n .catch(() =>\n createAlert({\n message: constants.toggleStateErrorMessage[this.noteableType][this.openState],\n }),\n );\n },\n discard() {\n this.note = '';\n this.noteIsInternal = false;\n this.$refs.markdownEditor.togglePreview(false);\n },\n editCurrentUserLastNote() {\n if (this.note === '') {\n const lastNote = this.getCurrentUserLastNote;\n\n if (lastNote) {\n eventHub.$emit('enterEditMode', {\n noteId: lastNote.id,\n });\n }\n }\n },\n hasEmailParticipants() {\n return this.getNoteableData.issue_email_participants?.length;\n },\n dismissError(index) {\n this.errors.splice(index, 1);\n },\n onInput(value) {\n this.note = value;\n },\n append(value) {\n this.$refs.markdownEditor.append(value);\n },\n },\n};\n</script>\n\n<template>\n <div>\n <note-signed-out-widget v-if=\"!isLoggedIn\" />\n <discussion-locked-widget v-else-if=\"!canCreateNote\" :issuable-type=\"noteableDisplayName\" />\n <ul v-else-if=\"canCreateNote\" class=\"notes notes-form timeline\">\n <timeline-entry-item class=\"note-form\">\n <div class=\"flash-container gl-mb-2\"></div>\n <gl-alert\n v-for=\"(error, index) in errors\"\n :key=\"index\"\n variant=\"danger\"\n class=\"gl-mb-2\"\n @dismiss=\"() => dismissError(index)\"\n >\n {{ error }}\n </gl-alert>\n <div class=\"timeline-content timeline-content-form\">\n <form\n ref=\"commentForm\"\n class=\"new-note common-note-form gfm-form js-main-target-form\"\n data-testid=\"comment-form\"\n @submit.stop.prevent\n >\n <comment-field-layout\n :with-alert-container=\"true\"\n :is-internal-note=\"noteIsInternal\"\n :note=\"note\"\n :noteable-data=\"getNoteableData\"\n :noteable-type=\"noteableType\"\n >\n <markdown-editor\n ref=\"markdownEditor\"\n :value=\"note\"\n :render-markdown-path=\"markdownPreviewPath\"\n :markdown-docs-path=\"markdownDocsPath\"\n :add-spacing-classes=\"false\"\n :form-field-props=\"formFieldProps\"\n :autosave-key=\"autosaveKey\"\n :disabled=\"shouldDisableField\"\n :autocomplete-data-sources=\"autocompleteDataSources\"\n :noteable-type=\"noteableType\"\n supports-quick-actions\n @keydown.up=\"editCurrentUserLastNote()\"\n @keydown.shift.meta.enter=\"handleSave()\"\n @keydown.shift.ctrl.enter=\"handleSave()\"\n @keydown.meta.enter.exact=\"handleEnter()\"\n @keydown.ctrl.enter.exact=\"handleEnter()\"\n @input=\"onInput\"\n />\n </comment-field-layout>\n <comment-temperature\n v-if=\"glAbilities.measureCommentTemperature\"\n ref=\"commentTemperature\"\n v-model=\"note\"\n :item-id=\"getNoteableData.id\"\n :item-type=\"noteableType\"\n :user-id=\"getUserData.id\"\n @save=\"handleSave({ ...saveNoteParams, shouldMeasureTemperature: false })\"\n />\n <div class=\"note-form-actions gl-font-size-0\">\n <gl-form-checkbox\n v-if=\"canSetInternalNote\"\n v-model=\"noteIsInternal\"\n class=\"gl-mb-2 gl-basis-full\"\n data-testid=\"internal-note-checkbox\"\n >\n {{ $options.i18n.internal }}\n <help-icon\n v-gl-tooltip:tooltipcontainer.bottom\n :title=\"$options.i18n.internalVisibility\"\n />\n </gl-form-checkbox>\n <template v-if=\"hasDrafts\">\n <gl-button\n :disabled=\"disableSubmitButton\"\n data-testid=\"add-to-review-button\"\n category=\"primary\"\n variant=\"confirm\"\n class=\"gl-mr-3\"\n @click=\"handleSaveDraft()\"\n >\n {{ $options.i18n.addToReview }}\n </gl-button>\n <gl-button\n :disabled=\"disableSubmitButton\"\n data-testid=\"add-comment-now-button\"\n category=\"secondary\"\n class=\"gl-mr-3\"\n @click.prevent=\"handleSave()\"\n >{{ $options.i18n.addCommentNow }}</gl-button\n >\n </template>\n <template v-else>\n <comment-type-dropdown\n v-model=\"noteType\"\n class=\"gl-mr-3\"\n data-testid=\"comment-button\"\n :disabled=\"disableSubmitButton\"\n :tracking-label=\"trackingLabel\"\n :is-internal-note=\"noteIsInternal\"\n :noteable-display-name=\"noteableDisplayName\"\n :discussions-require-resolution=\"discussionsRequireResolution\"\n @click=\"handleSave\"\n />\n <template v-if=\"isMergeRequest\">\n <gl-button\n :disabled=\"disableSubmitButton\"\n data-testid=\"start-review-button\"\n category=\"secondary\"\n variant=\"confirm\"\n class=\"gl-mr-3\"\n @click=\"handleSaveDraft()\"\n >\n {{ $options.i18n.startReview }}\n </gl-button>\n </template>\n </template>\n <gl-button\n v-if=\"canToggleIssueState\"\n :loading=\"isToggleStateButtonLoading\"\n :class=\"[actionButtonClassNames, 'btn-comment btn-comment-and-close']\"\n :disabled=\"isSubmitting\"\n data-testid=\"close-reopen-button\"\n @click=\"handleSave({ withIssueAction: true })\"\n >{{ issueActionButtonTitle }}</gl-button\n >\n </div>\n </form>\n </div>\n </timeline-entry-item>\n </ul>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./comment_form.vue?vue&type=template&id=46b75040\"\nimport script from \"./comment_form.vue?vue&type=script&lang=js\"\nexport * from \"./comment_form.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(!_vm.isLoggedIn)?_c('note-signed-out-widget'):(!_vm.canCreateNote)?_c('discussion-locked-widget',{attrs:{\"issuable-type\":_vm.noteableDisplayName}}):(_vm.canCreateNote)?_c('ul',{staticClass:\"notes notes-form timeline\"},[_c('timeline-entry-item',{staticClass:\"note-form\"},[_c('div',{staticClass:\"flash-container gl-mb-2\"}),_vm._v(\" \"),_vm._l((_vm.errors),function(error,index){return _c('gl-alert',{key:index,staticClass:\"gl-mb-2\",attrs:{\"variant\":\"danger\"},on:{\"dismiss\":() => _vm.dismissError(index)}},[_vm._v(\"\\n \"+_vm._s(error)+\"\\n \")])}),_vm._v(\" \"),_c('div',{staticClass:\"timeline-content timeline-content-form\"},[_c('form',{ref:\"commentForm\",staticClass:\"new-note common-note-form gfm-form js-main-target-form\",attrs:{\"data-testid\":\"comment-form\"},on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();}}},[_c('comment-field-layout',{attrs:{\"with-alert-container\":true,\"is-internal-note\":_vm.noteIsInternal,\"note\":_vm.note,\"noteable-data\":_vm.getNoteableData,\"noteable-type\":_vm.noteableType}},[_c('markdown-editor',{ref:\"markdownEditor\",attrs:{\"value\":_vm.note,\"render-markdown-path\":_vm.markdownPreviewPath,\"markdown-docs-path\":_vm.markdownDocsPath,\"add-spacing-classes\":false,\"form-field-props\":_vm.formFieldProps,\"autosave-key\":_vm.autosaveKey,\"disabled\":_vm.shouldDisableField,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"noteable-type\":_vm.noteableType,\"supports-quick-actions\":\"\"},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"]))return null;return _vm.editCurrentUserLastNote()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.shiftKey)return null;if(!$event.metaKey)return null;return _vm.handleSave()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.shiftKey)return null;if(!$event.ctrlKey)return null;return _vm.handleSave()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.metaKey)return null;if($event.ctrlKey||$event.shiftKey||$event.altKey)return null;return _vm.handleEnter()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.ctrlKey)return null;if($event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.handleEnter()}],\"input\":_vm.onInput}})],1),_vm._v(\" \"),(_vm.glAbilities.measureCommentTemperature)?_c('comment-temperature',{ref:\"commentTemperature\",attrs:{\"item-id\":_vm.getNoteableData.id,\"item-type\":_vm.noteableType,\"user-id\":_vm.getUserData.id},on:{\"save\":function($event){return _vm.handleSave({ ..._vm.saveNoteParams, shouldMeasureTemperature: false })}},model:{value:(_vm.note),callback:function ($$v) {_vm.note=$$v},expression:\"note\"}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"note-form-actions gl-font-size-0\"},[(_vm.canSetInternalNote)?_c('gl-form-checkbox',{staticClass:\"gl-mb-2 gl-basis-full\",attrs:{\"data-testid\":\"internal-note-checkbox\"},model:{value:(_vm.noteIsInternal),callback:function ($$v) {_vm.noteIsInternal=$$v},expression:\"noteIsInternal\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.internal)+\"\\n \"),_c('help-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip:tooltipcontainer.bottom\",arg:\"tooltipcontainer\",modifiers:{\"bottom\":true}}],attrs:{\"title\":_vm.$options.i18n.internalVisibility}})],1):_vm._e(),_vm._v(\" \"),(_vm.hasDrafts)?[_c('gl-button',{staticClass:\"gl-mr-3\",attrs:{\"disabled\":_vm.disableSubmitButton,\"data-testid\":\"add-to-review-button\",\"category\":\"primary\",\"variant\":\"confirm\"},on:{\"click\":function($event){return _vm.handleSaveDraft()}}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.addToReview)+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-mr-3\",attrs:{\"disabled\":_vm.disableSubmitButton,\"data-testid\":\"add-comment-now-button\",\"category\":\"secondary\"},on:{\"click\":function($event){$event.preventDefault();return _vm.handleSave()}}},[_vm._v(_vm._s(_vm.$options.i18n.addCommentNow))])]:[_c('comment-type-dropdown',{staticClass:\"gl-mr-3\",attrs:{\"data-testid\":\"comment-button\",\"disabled\":_vm.disableSubmitButton,\"tracking-label\":_vm.trackingLabel,\"is-internal-note\":_vm.noteIsInternal,\"noteable-display-name\":_vm.noteableDisplayName,\"discussions-require-resolution\":_vm.discussionsRequireResolution},on:{\"click\":_vm.handleSave},model:{value:(_vm.noteType),callback:function ($$v) {_vm.noteType=$$v},expression:\"noteType\"}}),_vm._v(\" \"),(_vm.isMergeRequest)?[_c('gl-button',{staticClass:\"gl-mr-3\",attrs:{\"disabled\":_vm.disableSubmitButton,\"data-testid\":\"start-review-button\",\"category\":\"secondary\",\"variant\":\"confirm\"},on:{\"click\":function($event){return _vm.handleSaveDraft()}}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.startReview)+\"\\n \")])]:_vm._e()],_vm._v(\" \"),(_vm.canToggleIssueState)?_c('gl-button',{class:[_vm.actionButtonClassNames, 'btn-comment btn-comment-and-close'],attrs:{\"loading\":_vm.isToggleStateButtonLoading,\"disabled\":_vm.isSubmitting,\"data-testid\":\"close-reopen-button\"},on:{\"click\":function($event){return _vm.handleSave({ withIssueAction: true })}}},[_vm._v(_vm._s(_vm.issueActionButtonTitle))]):_vm._e()],2)],1)])],2)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_filter_note.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_filter_note.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlIcon, GlSprintf } from '@gitlab/ui';\nimport { s__ } from '~/locale';\n\nimport notesEventHub from '../event_hub';\n\nexport default {\n i18n: {\n information: s__(\n \"Notes|You're only seeing %{boldStart}other activity%{boldEnd} in the feed. To add a comment, switch to one of the following options.\",\n ),\n },\n components: {\n GlButton,\n GlIcon,\n GlSprintf,\n },\n methods: {\n selectFilter(value) {\n notesEventHub.$emit('dropdownSelect', value);\n },\n },\n};\n</script>\n\n<template>\n <li\n class=\"timeline-entry note note-wrapper discussion-filter-note js-discussion-filter-note\"\n data-testid=\"discussion-filter-container\"\n >\n <div\n class=\"gl-float-left -gl-mt-1 gl-ml-2 gl-flex gl-h-6 gl-w-6 gl-items-center gl-justify-center gl-rounded-full gl-bg-gray-50 gl-text-subtle\"\n >\n <gl-icon name=\"comment\" />\n </div>\n <div class=\"timeline-content gl-pl-8\">\n <div data-testid=\"discussion-filter-timeline-content\">\n <gl-sprintf :message=\"$options.i18n.information\">\n <template #bold=\"{ content }\">\n <b>{{ content }}</b>\n </template>\n </gl-sprintf>\n </div>\n <div class=\"discussion-filter-actions gl-mt-3 gl-flex\">\n <gl-button variant=\"default\" class=\"gl-mr-3\" @click=\"selectFilter(0)\">\n {{ __('Show all activity') }}\n </gl-button>\n <gl-button variant=\"default\" @click=\"selectFilter(1)\">\n {{ __('Show comments only') }}\n </gl-button>\n </div>\n </div>\n </li>\n</template>\n","import { render, staticRenderFns } from \"./discussion_filter_note.vue?vue&type=template&id=279885ed\"\nimport script from \"./discussion_filter_note.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_filter_note.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"timeline-entry note note-wrapper discussion-filter-note js-discussion-filter-note\",attrs:{\"data-testid\":\"discussion-filter-container\"}},[_c('div',{staticClass:\"gl-float-left -gl-mt-1 gl-ml-2 gl-flex gl-h-6 gl-w-6 gl-items-center gl-justify-center gl-rounded-full gl-bg-gray-50 gl-text-subtle\"},[_c('gl-icon',{attrs:{\"name\":\"comment\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"timeline-content gl-pl-8\"},[_c('div',{attrs:{\"data-testid\":\"discussion-filter-timeline-content\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.information},scopedSlots:_vm._u([{key:\"bold\",fn:function({ content }){return [_c('b',[_vm._v(_vm._s(content))])]}}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"discussion-filter-actions gl-mt-3 gl-flex\"},[_c('gl-button',{staticClass:\"gl-mr-3\",attrs:{\"variant\":\"default\"},on:{\"click\":function($event){return _vm.selectFilter(0)}}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Show all activity'))+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{attrs:{\"variant\":\"default\"},on:{\"click\":function($event){return _vm.selectFilter(1)}}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Show comments only'))+\"\\n \")])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ordered_layout.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ordered_layout.vue?vue&type=script&lang=js\"","<script>\nexport default {\n functional: true,\n render(h, context) {\n const { slotKeys } = context.props;\n const slots = context.slots();\n const children = slotKeys.map((key) => slots[key]).filter((x) => x);\n\n return children;\n },\n};\n</script>\n","var render, staticRenderFns\nimport script from \"./ordered_layout.vue?vue&type=script&lang=js\"\nexport * from \"./ordered_layout.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_subscription.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_subscription.vue?vue&type=script&lang=js\"","<script>\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions } from 'vuex';\nimport { TYPE_EPIC, TYPE_ISSUE } from '~/issues/constants';\nimport { fetchPolicies } from '~/lib/graphql';\nimport { confidentialityQueries } from '~/sidebar/queries/constants';\nimport { defaultClient as gqlClient } from '~/graphql_shared/issuable_client';\n\nexport default {\n props: {\n noteableData: {\n type: Object,\n required: true,\n },\n iid: {\n type: Number,\n required: true,\n },\n },\n computed: {\n fullPath() {\n if (this.noteableData.web_url) {\n return this.noteableData.web_url.split('/-/')[0].substring(1).replace('groups/', '');\n }\n return null;\n },\n issuableType() {\n return this.noteableData.noteableType.toLowerCase();\n },\n },\n created() {\n if (this.issuableType !== TYPE_ISSUE && this.issuableType !== TYPE_EPIC) {\n return;\n }\n\n gqlClient\n .watchQuery({\n query: confidentialityQueries[this.issuableType].query,\n variables: {\n iid: String(this.iid),\n fullPath: this.fullPath,\n },\n fetchPolicy: fetchPolicies.CACHE_ONLY,\n })\n .subscribe((res) => {\n const issuable = res.data?.workspace?.issuable;\n if (issuable) {\n this.setConfidentiality(issuable.confidential);\n }\n });\n },\n methods: {\n ...mapActions(['setConfidentiality']),\n },\n render() {\n return null;\n },\n};\n</script>\n","var render, staticRenderFns\nimport script from \"./sidebar_subscription.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_subscription.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<script>\nimport {\n GlIcon,\n GlDisclosureDropdown,\n GlDisclosureDropdownGroup,\n GlDisclosureDropdownItem,\n} from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapActions } from 'vuex';\nimport { getLocationHash, doesHashExistInUrl } from '~/lib/utils/url_utility';\nimport { __ } from '~/locale';\nimport Tracking from '~/tracking';\nimport LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';\nimport {\n DISCUSSION_FILTERS_DEFAULT_VALUE,\n HISTORY_ONLY_FILTER_VALUE,\n COMMENTS_ONLY_FILTER_VALUE,\n DISCUSSION_TAB_LABEL,\n DISCUSSION_FILTER_TYPES,\n NOTE_UNDERSCORE,\n ASC,\n DESC,\n} from '../constants';\nimport notesEventHub from '../event_hub';\n\nconst SORT_OPTIONS = [\n { key: DESC, text: __('Newest first'), cls: 'js-newest-first' },\n { key: ASC, text: __('Oldest first'), cls: 'js-oldest-first' },\n];\n\nexport default {\n SORT_OPTIONS,\n components: {\n GlIcon,\n GlDisclosureDropdown,\n GlDisclosureDropdownGroup,\n GlDisclosureDropdownItem,\n LocalStorageSync,\n },\n mixins: [Tracking.mixin()],\n props: {\n filters: {\n type: Array,\n required: true,\n },\n selectedValue: {\n type: Number,\n default: DISCUSSION_FILTERS_DEFAULT_VALUE,\n required: false,\n },\n },\n data() {\n return {\n currentValue: doesHashExistInUrl(NOTE_UNDERSCORE)\n ? DISCUSSION_FILTERS_DEFAULT_VALUE\n : this.selectedValue,\n defaultValue: DISCUSSION_FILTERS_DEFAULT_VALUE,\n displayFilters: true,\n };\n },\n computed: {\n ...mapGetters([\n 'getNotesDataByProp',\n 'timelineEnabled',\n 'isLoading',\n 'sortDirection',\n 'persistSortOrder',\n 'noteableType',\n ]),\n currentFilter() {\n if (!this.currentValue) return this.filters[0];\n return this.filters.find((filter) => filter.value === this.currentValue);\n },\n selectedSortOption() {\n return SORT_OPTIONS.find(({ key }) => this.sortDirection === key);\n },\n sortStorageKey() {\n return `sort_direction_${this.noteableType.toLowerCase()}`;\n },\n },\n created() {\n if (window.mrTabs) {\n const { eventHub, currentTab } = window.mrTabs;\n\n eventHub.$on('MergeRequestTabChange', this.toggleFilters);\n this.toggleFilters(currentTab);\n }\n\n notesEventHub.$on('dropdownSelect', this.selectFilter);\n window.addEventListener('hashchange', this.handleLocationHash);\n },\n mounted() {\n this.toggleCommentsForm();\n },\n destroyed() {\n notesEventHub.$off('dropdownSelect', this.selectFilter);\n window.removeEventListener('hashchange', this.handleLocationHash);\n },\n methods: {\n ...mapActions([\n 'filterDiscussion',\n 'setCommentsDisabled',\n 'setTargetNoteHash',\n 'setTimelineView',\n 'setDiscussionSortDirection',\n ]),\n selectFilter(value, persistFilter = true) {\n const filter = parseInt(value, 10);\n\n if (filter === this.currentValue) return;\n\n if (this.timelineEnabled && filter !== COMMENTS_ONLY_FILTER_VALUE) {\n this.setTimelineView(false);\n }\n this.currentValue = filter;\n this.filterDiscussion({\n path: this.getNotesDataByProp('discussionsPath'),\n filter,\n persistFilter,\n });\n this.toggleCommentsForm();\n },\n toggleCommentsForm() {\n this.setCommentsDisabled(this.currentValue === HISTORY_ONLY_FILTER_VALUE);\n },\n toggleFilters(tab) {\n this.displayFilters = tab === DISCUSSION_TAB_LABEL;\n },\n handleLocationHash() {\n const hash = getLocationHash();\n\n if (/^note_/.test(hash) && this.currentValue !== DISCUSSION_FILTERS_DEFAULT_VALUE) {\n this.selectFilter(this.defaultValue, false);\n this.setTargetNoteHash(hash);\n }\n },\n filterType(value) {\n if (value === 0) {\n return DISCUSSION_FILTER_TYPES.ALL;\n }\n if (value === 1) {\n return DISCUSSION_FILTER_TYPES.COMMENTS;\n }\n return DISCUSSION_FILTER_TYPES.HISTORY;\n },\n fetchSortedDiscussions(direction) {\n if (this.isSortDropdownItemActive(direction)) {\n return;\n }\n\n this.setDiscussionSortDirection({ direction });\n this.track('change_discussion_sort_direction', { property: direction });\n },\n isSortDropdownItemActive(sortDir) {\n return sortDir === this.sortDirection;\n },\n },\n};\n</script>\n\n<template>\n <div\n v-if=\"displayFilters\"\n id=\"discussion-preferences\"\n data-testid=\"discussion-preferences\"\n class=\"full-width-mobile gl-inline-block gl-align-bottom\"\n >\n <local-storage-sync\n :value=\"sortDirection\"\n :storage-key=\"sortStorageKey\"\n :persist=\"persistSortOrder\"\n as-string\n @input=\"setDiscussionSortDirection({ direction: $event })\"\n />\n <gl-disclosure-dropdown\n id=\"discussion-preferences-dropdown\"\n class=\"full-width-mobile\"\n data-testid=\"discussion-preferences-dropdown\"\n :toggle-text=\"__('Sort or filter')\"\n :disabled=\"isLoading\"\n placement=\"bottom-end\"\n >\n <gl-disclosure-dropdown-group id=\"discussion-sort\">\n <gl-disclosure-dropdown-item\n v-for=\"{ text, key, cls } in $options.SORT_OPTIONS\"\n :key=\"text\"\n :class=\"cls\"\n :is-selected=\"isSortDropdownItemActive(key)\"\n @action=\"fetchSortedDiscussions(key)\"\n >\n <template #list-item>\n <gl-icon\n name=\"mobile-issue-close\"\n data-testid=\"dropdown-item-checkbox\"\n :class=\"[\n 'gl-dropdown-item-check-icon',\n { 'gl-invisible': !isSortDropdownItemActive(key) },\n 'gl-text-blue-400',\n ]\"\n />\n {{ text }}\n </template>\n </gl-disclosure-dropdown-item>\n </gl-disclosure-dropdown-group>\n <gl-disclosure-dropdown-group\n id=\"discussion-filter\"\n class=\"discussion-filter-container js-discussion-filter-container\"\n bordered\n >\n <gl-disclosure-dropdown-item\n v-for=\"filter in filters\"\n :key=\"filter.value\"\n :is-selected=\"filter.value === currentValue\"\n :class=\"{ 'is-active': filter.value === currentValue }\"\n :data-filter-type=\"filterType(filter.value)\"\n data-testid=\"filter-menu-item\"\n @action=\"selectFilter(filter.value)\"\n >\n <template #list-item>\n <gl-icon\n name=\"mobile-issue-close\"\n data-testid=\"dropdown-item-checkbox\"\n :class=\"[\n 'gl-dropdown-item-check-icon',\n { 'gl-invisible': filter.value !== currentValue },\n 'gl-text-blue-400',\n ]\"\n />\n {{ filter.title }}\n </template>\n </gl-disclosure-dropdown-item>\n </gl-disclosure-dropdown-group>\n </gl-disclosure-dropdown>\n </div>\n</template>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_filter.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_filter.vue?vue&type=script&lang=js\"","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./notes_activity_header.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./notes_activity_header.vue?vue&type=script&lang=js\"","<script>\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport glAbilitiesMixin from '~/vue_shared/mixins/gl_abilities_mixin';\nimport DiscussionFilter from './discussion_filter.vue';\n\nexport default {\n components: {\n TimelineToggle: () => import('./timeline_toggle.vue'),\n DiscussionFilter,\n AiSummarizeNotes: () =>\n import('ee_component/notes/components/note_actions/ai_summarize_notes.vue'),\n MrDiscussionFilter: () => import('./mr_discussion_filter.vue'),\n },\n mixins: [glAbilitiesMixin(), glFeatureFlagsMixin()],\n inject: {\n showTimelineViewToggle: {\n default: false,\n },\n resourceGlobalId: { default: null },\n mrFilter: {\n default: false,\n },\n },\n props: {\n notesFilters: {\n type: Array,\n required: true,\n },\n notesFilterValue: {\n type: Number,\n default: undefined,\n required: false,\n },\n aiLoading: {\n type: Boolean,\n default: false,\n required: false,\n },\n },\n computed: {\n showAiActions() {\n return (\n this.resourceGlobalId &&\n this.glAbilities.summarizeComments &&\n this.glFeatures.summarizeComments\n );\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"gl-flex gl-flex-col gl-justify-between gl-pb-3 gl-pt-5 sm:gl-flex-row sm:gl-items-center\"\n >\n <h2 class=\"gl-m-0 gl-text-size-h1\">{{ __('Activity') }}</h2>\n <div class=\"gl-mt-3 gl-flex gl-w-full gl-gap-3 sm:gl-mt-0 sm:gl-w-auto\">\n <ai-summarize-notes\n v-if=\"showAiActions\"\n :resource-global-id=\"resourceGlobalId\"\n :loading=\"aiLoading\"\n />\n <timeline-toggle v-if=\"showTimelineViewToggle\" />\n <mr-discussion-filter v-if=\"mrFilter\" />\n <discussion-filter v-else :filters=\"notesFilters\" :selected-value=\"notesFilterValue\" />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./discussion_filter.vue?vue&type=template&id=26a5fb86\"\nimport script from \"./discussion_filter.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_filter.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.displayFilters)?_c('div',{staticClass:\"full-width-mobile gl-inline-block gl-align-bottom\",attrs:{\"id\":\"discussion-preferences\",\"data-testid\":\"discussion-preferences\"}},[_c('local-storage-sync',{attrs:{\"value\":_vm.sortDirection,\"storage-key\":_vm.sortStorageKey,\"persist\":_vm.persistSortOrder,\"as-string\":\"\"},on:{\"input\":function($event){return _vm.setDiscussionSortDirection({ direction: $event })}}}),_vm._v(\" \"),_c('gl-disclosure-dropdown',{staticClass:\"full-width-mobile\",attrs:{\"id\":\"discussion-preferences-dropdown\",\"data-testid\":\"discussion-preferences-dropdown\",\"toggle-text\":_vm.__('Sort or filter'),\"disabled\":_vm.isLoading,\"placement\":\"bottom-end\"}},[_c('gl-disclosure-dropdown-group',{attrs:{\"id\":\"discussion-sort\"}},_vm._l((_vm.$options.SORT_OPTIONS),function({ text, key, cls }){return _c('gl-disclosure-dropdown-item',{key:text,class:cls,attrs:{\"is-selected\":_vm.isSortDropdownItemActive(key)},on:{\"action\":function($event){return _vm.fetchSortedDiscussions(key)}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('gl-icon',{class:[\n 'gl-dropdown-item-check-icon',\n { 'gl-invisible': !_vm.isSortDropdownItemActive(key) },\n 'gl-text-blue-400',\n ],attrs:{\"name\":\"mobile-issue-close\",\"data-testid\":\"dropdown-item-checkbox\"}}),_vm._v(\"\\n \"+_vm._s(text)+\"\\n \")]},proxy:true}],null,true)})}),1),_vm._v(\" \"),_c('gl-disclosure-dropdown-group',{staticClass:\"discussion-filter-container js-discussion-filter-container\",attrs:{\"id\":\"discussion-filter\",\"bordered\":\"\"}},_vm._l((_vm.filters),function(filter){return _c('gl-disclosure-dropdown-item',{key:filter.value,class:{ 'is-active': filter.value === _vm.currentValue },attrs:{\"is-selected\":filter.value === _vm.currentValue,\"data-filter-type\":_vm.filterType(filter.value),\"data-testid\":\"filter-menu-item\"},on:{\"action\":function($event){return _vm.selectFilter(filter.value)}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('gl-icon',{class:[\n 'gl-dropdown-item-check-icon',\n { 'gl-invisible': filter.value !== _vm.currentValue },\n 'gl-text-blue-400',\n ],attrs:{\"name\":\"mobile-issue-close\",\"data-testid\":\"dropdown-item-checkbox\"}}),_vm._v(\"\\n \"+_vm._s(filter.title)+\"\\n \")]},proxy:true}],null,true)})}),1)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./notes_app.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./notes_app.vue?vue&type=script&lang=js\"","<script>\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapActions } from 'vuex';\nimport { v4 as uuidv4 } from 'uuid';\nimport { InternalEvents } from '~/tracking';\nimport { getDraft, getAutoSaveKeyFromDiscussion } from '~/lib/utils/autosave';\nimport highlightCurrentUser from '~/behaviors/markdown/highlight_current_user';\nimport { scrollToTargetOnResize } from '~/lib/utils/resize_observer';\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport DraftNote from '~/batch_comments/components/draft_note.vue';\nimport { getLocationHash } from '~/lib/utils/url_utility';\nimport NotePreview from '~/notes/components/note_preview.vue';\nimport PlaceholderNote from '~/vue_shared/components/notes/placeholder_note.vue';\nimport PlaceholderSystemNote from '~/vue_shared/components/notes/placeholder_system_note.vue';\nimport SkeletonLoadingContainer from '~/vue_shared/components/notes/skeleton_note.vue';\nimport SystemNote from '~/vue_shared/components/notes/system_note.vue';\nimport { Mousetrap } from '~/lib/mousetrap';\nimport { ISSUABLE_COMMENT_OR_REPLY, keysFor } from '~/behaviors/shortcuts/keybindings';\nimport { CopyAsGFM } from '~/behaviors/markdown/copy_as_gfm';\nimport * as constants from '../constants';\nimport eventHub from '../event_hub';\nimport CommentForm from './comment_form.vue';\nimport DiscussionFilterNote from './discussion_filter_note.vue';\nimport NoteableDiscussion from './noteable_discussion.vue';\nimport NoteableNote from './noteable_note.vue';\nimport OrderedLayout from './ordered_layout.vue';\nimport SidebarSubscription from './sidebar_subscription.vue';\nimport NotesActivityHeader from './notes_activity_header.vue';\n\nexport default {\n name: 'NotesApp',\n components: {\n NotePreview,\n NotesActivityHeader,\n NoteableNote,\n NoteableDiscussion,\n SystemNote,\n CommentForm,\n PlaceholderNote,\n PlaceholderSystemNote,\n SkeletonLoadingContainer,\n DiscussionFilterNote,\n OrderedLayout,\n SidebarSubscription,\n DraftNote,\n TimelineEntryItem,\n AiSummary: () => import('ee_component/notes/components/ai_summary.vue'),\n },\n mixins: [glFeatureFlagsMixin(), InternalEvents.mixin()],\n provide() {\n return {\n summarizeClientSubscriptionId: uuidv4(),\n };\n },\n props: {\n noteableData: {\n type: Object,\n required: true,\n },\n notesData: {\n type: Object,\n required: true,\n },\n notesFilters: {\n type: Array,\n required: true,\n },\n notesFilterValue: {\n type: Number,\n default: undefined,\n required: false,\n },\n shouldShow: {\n type: Boolean,\n required: false,\n default: true,\n },\n helpPagePath: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n currentFilter: null,\n renderSkeleton: !this.shouldShow,\n aiLoading: null,\n isInitialEventTriggered: false,\n };\n },\n computed: {\n ...mapGetters([\n 'isNotesFetched',\n 'discussions',\n 'convertedDisscussionIds',\n 'getNotesDataByProp',\n 'isLoading',\n 'isFetching',\n 'commentsDisabled',\n 'getNoteableData',\n 'userCanReply',\n 'sortDirection',\n 'timelineEnabled',\n 'targetNoteHash',\n ]),\n sortDirDesc() {\n return this.sortDirection === constants.DESC;\n },\n noteableType() {\n return this.noteableData.noteableType;\n },\n previewNoteId() {\n if (!this.isLoading || !this.targetNoteHash?.startsWith('note_')) return null;\n return this.targetNoteHash.replace('note_', '');\n },\n allDiscussions() {\n let skeletonNotes = [];\n\n if (this.renderSkeleton || this.isLoading) {\n const prerenderedNotesCount = parseInt(this.notesData.prerenderedNotesCount, 10) || 0;\n\n skeletonNotes = new Array(prerenderedNotesCount).fill({\n isSkeletonNote: true,\n });\n\n if (\n this.previewNoteId &&\n !this.discussions.find((d) => d.notes[0].id === this.previewNoteId)\n ) {\n const previewNote = {\n id: this.previewNoteId,\n isPreviewNote: true,\n };\n skeletonNotes.splice(prerenderedNotesCount / 2, 0, previewNote);\n }\n }\n\n if (this.sortDirDesc) {\n return skeletonNotes.concat(this.discussions);\n }\n\n return this.discussions.concat(skeletonNotes);\n },\n canReply() {\n return this.userCanReply && !this.commentsDisabled && !this.timelineEnabled;\n },\n slotKeys() {\n return this.sortDirDesc ? ['form', 'comments'] : ['comments', 'form'];\n },\n isAppReady() {\n return !this.isLoading && !this.renderSkeleton && this.shouldShow;\n },\n },\n watch: {\n async isFetching() {\n if (!this.isFetching) {\n await this.$nextTick();\n await this.startTaskList();\n await this.checkLocationHash();\n }\n },\n shouldShow() {\n if (!this.isNotesFetched) {\n this.fetchNotes();\n }\n\n setTimeout(() => {\n this.renderSkeleton = !this.shouldShow;\n });\n },\n isAppReady: {\n handler(isReady) {\n if (!isReady) return;\n this.$nextTick(() => {\n window.mrTabs?.eventHub.$emit('NotesAppReady');\n });\n },\n immediate: true,\n },\n },\n mounted() {\n const { parentElement } = this.$el;\n if (parentElement && parentElement.classList.contains('js-vue-notes-event')) {\n parentElement.addEventListener('toggleAward', (event) => {\n const { awardName, noteId } = event.detail;\n this.toggleAward({ awardName, noteId });\n });\n }\n\n eventHub.$on('noteFormAddToReview', this.handleReviewTracking);\n eventHub.$on('noteFormStartReview', this.handleReviewTracking);\n\n window.addEventListener('hashchange', this.handleHashChanged);\n\n if (this.targetNoteHash && this.targetNoteHash.startsWith('note_')) {\n scrollToTargetOnResize();\n }\n\n eventHub.$on('notesApp.updateIssuableConfidentiality', this.setConfidentiality);\n Mousetrap.bind(keysFor(ISSUABLE_COMMENT_OR_REPLY), (e) => this.quoteReply(e));\n },\n updated() {\n this.$nextTick(() => {\n highlightCurrentUser(this.$el.querySelectorAll('.gfm-project_member'));\n });\n },\n beforeDestroy() {\n window.removeEventListener('hashchange', this.handleHashChanged);\n eventHub.$off('notesApp.updateIssuableConfidentiality', this.setConfidentiality);\n eventHub.$off('noteFormStartReview', this.handleReviewTracking);\n eventHub.$off('noteFormAddToReview', this.handleReviewTracking);\n Mousetrap.unbind(keysFor(ISSUABLE_COMMENT_OR_REPLY), this.quoteReply);\n },\n methods: {\n ...mapActions([\n 'toggleAward',\n 'setLastFetchedAt',\n 'setTargetNoteHash',\n 'toggleDiscussion',\n 'expandDiscussion',\n 'startTaskList',\n 'convertToDiscussion',\n 'setConfidentiality',\n 'fetchNotes',\n ]),\n getDiscussionInSelection() {\n const selection = window.getSelection();\n if (selection.rangeCount <= 0) return null;\n\n const el = selection.getRangeAt(0).startContainer;\n const node = el.nodeType === Node.TEXT_NODE ? el.parentNode : el;\n return node.closest('.js-noteable-discussion');\n },\n async quoteReply(e) {\n const discussionEl = this.getDiscussionInSelection();\n const text = await CopyAsGFM.selectionToGfm();\n\n // Prevent 'r' being written.\n if (e && typeof e.preventDefault === 'function') {\n e.preventDefault();\n }\n\n if (!discussionEl) {\n this.replyInMainEditor(text);\n } else {\n const instance = this.$refs.discussions.find(({ $el }) => $el === discussionEl);\n // prevent hotkey input from going into the form\n requestAnimationFrame(() => {\n instance.showReplyForm(text);\n });\n }\n },\n replyInMainEditor(text) {\n this.$refs.commentForm.append(text);\n },\n discussionIsIndividualNoteAndNotConverted(discussion) {\n return (\n discussion.individual_note &&\n !this.convertedDisscussionIds.includes(discussion.id) &&\n !this.hasDraft(discussion)\n );\n },\n handleHashChanged() {\n const noteId = this.checkLocationHash();\n\n if (noteId) {\n this.setTargetNoteHash(getLocationHash());\n }\n },\n checkLocationHash() {\n const hash = getLocationHash();\n const noteId = (hash && hash.startsWith('note_') && hash.replace(/^note_/, '')) ?? null;\n\n if (noteId) {\n const discussion = this.discussions.find((d) => d.notes.some(({ id }) => id === noteId));\n\n if (discussion) {\n this.expandDiscussion({ discussionId: discussion.id });\n }\n }\n\n return noteId;\n },\n startReplying(discussionId) {\n return this.convertToDiscussion(discussionId)\n .then(this.$nextTick)\n .then(() => eventHub.$emit('startReplying', discussionId));\n },\n setAiLoading(loading) {\n this.aiLoading = loading;\n },\n handleReviewTracking(event) {\n const types = {\n noteFormStartReview: 'merge_request_click_start_review_on_overview_tab',\n noteFormAddToReview: 'merge_request_click_add_to_review_on_overview_tab',\n };\n\n if (this.shouldShow && window.mrTabs && types[event.name]) {\n this.trackEvent(types[event.name]);\n }\n },\n hasDraft(discussion) {\n const autoSaveKey = getAutoSaveKeyFromDiscussion(discussion);\n return Boolean(getDraft(autoSaveKey));\n },\n },\n systemNote: constants.SYSTEM_NOTE,\n};\n</script>\n\n<template>\n <div v-show=\"shouldShow\" id=\"notes\">\n <sidebar-subscription :iid=\"noteableData.iid\" :noteable-data=\"noteableData\" />\n <notes-activity-header\n :notes-filters=\"notesFilters\"\n :notes-filter-value=\"notesFilterValue\"\n :ai-loading=\"aiLoading\"\n @set-ai-loading=\"setAiLoading\"\n />\n <ai-summary v-if=\"aiLoading !== null\" :ai-loading=\"aiLoading\" @set-ai-loading=\"setAiLoading\" />\n <ordered-layout :slot-keys=\"slotKeys\">\n <template #form>\n <comment-form\n v-if=\"!(commentsDisabled || timelineEnabled)\"\n ref=\"commentForm\"\n class=\"js-comment-form\"\n :noteable-type=\"noteableType\"\n />\n </template>\n <template #comments>\n <ul id=\"notes-list\" class=\"notes main-notes-list timeline\">\n <template v-for=\"discussion in allDiscussions\">\n <skeleton-loading-container\n v-if=\"discussion.isSkeletonNote\"\n :key=\"discussion.id\"\n class=\"note-skeleton\"\n />\n <timeline-entry-item\n v-else-if=\"discussion.isPreviewNote\"\n :key=\"discussion.id\"\n class=\"target note note-wrapper note-comment\"\n >\n <note-preview :note-id=\"previewNoteId\" />\n </timeline-entry-item>\n <timeline-entry-item v-else-if=\"discussion.isDraft\" :key=\"discussion.id\">\n <draft-note :draft=\"discussion\" />\n </timeline-entry-item>\n <template v-else-if=\"discussion.isPlaceholderNote\">\n <placeholder-system-note\n v-if=\"discussion.placeholderType === $options.systemNote\"\n :key=\"discussion.id\"\n :note=\"discussion.notes[0]\"\n />\n <placeholder-note v-else :key=\"discussion.id\" :note=\"discussion.notes[0]\" />\n </template>\n <template v-else-if=\"discussionIsIndividualNoteAndNotConverted(discussion)\">\n <system-note\n v-if=\"discussion.notes[0].system\"\n :key=\"discussion.id\"\n :note=\"discussion.notes[0]\"\n />\n <noteable-note\n v-else\n :key=\"discussion.id\"\n :note=\"discussion.notes[0]\"\n :show-reply-button=\"canReply\"\n @startReplying=\"startReplying(discussion.id)\"\n />\n </template>\n <noteable-discussion\n v-else\n ref=\"discussions\"\n :key=\"discussion.id\"\n class=\"js-noteable-discussion\"\n :discussion=\"discussion\"\n :render-diff-file=\"true\"\n is-overview-tab\n :help-page-path=\"helpPagePath\"\n />\n </template>\n <discussion-filter-note v-if=\"commentsDisabled\" />\n </ul>\n </template>\n </ordered-layout>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./notes_activity_header.vue?vue&type=template&id=519d8d30\"\nimport script from \"./notes_activity_header.vue?vue&type=script&lang=js\"\nexport * from \"./notes_activity_header.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-flex gl-flex-col gl-justify-between gl-pb-3 gl-pt-5 sm:gl-flex-row sm:gl-items-center\"},[_c('h2',{staticClass:\"gl-m-0 gl-text-size-h1\"},[_vm._v(_vm._s(_vm.__('Activity')))]),_vm._v(\" \"),_c('div',{staticClass:\"gl-mt-3 gl-flex gl-w-full gl-gap-3 sm:gl-mt-0 sm:gl-w-auto\"},[(_vm.showAiActions)?_c('ai-summarize-notes',{attrs:{\"resource-global-id\":_vm.resourceGlobalId,\"loading\":_vm.aiLoading}}):_vm._e(),_vm._v(\" \"),(_vm.showTimelineViewToggle)?_c('timeline-toggle'):_vm._e(),_vm._v(\" \"),(_vm.mrFilter)?_c('mr-discussion-filter'):_c('discussion-filter',{attrs:{\"filters\":_vm.notesFilters,\"selected-value\":_vm.notesFilterValue}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./notes_app.vue?vue&type=template&id=7051cf56\"\nimport script from \"./notes_app.vue?vue&type=script&lang=js\"\nexport * from \"./notes_app.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"createBoardList\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"boardId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"backlog\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LabelID\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"position\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"boardListCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"boardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"boardId\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"backlog\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"backlog\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"labelId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelId\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"position\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"position\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"list\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardListFragment\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":320}};\n doc.loc.source = {\"body\":\"#import \\\"./board_list.fragment.graphql\\\"\\n\\nmutation createBoardList($boardId: BoardID!, $backlog: Boolean, $labelId: LabelID, $position: Int) {\\n boardListCreate(\\n input: { boardId: $boardId, backlog: $backlog, labelId: $labelId, position: $position }\\n ) {\\n list {\\n ...BoardListFragment\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./board_list.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"createBoardList\"] = oneQuery(doc, \"createBoardList\");\n \n","import updateIssueLabelsMutation from '~/boards/graphql/issue_set_labels.mutation.graphql';\nimport userAutocompleteQuery from '~/graphql_shared/queries/workspace_autocomplete_users.query.graphql';\nimport userAutocompleteWithMRPermissionsQuery from '~/graphql_shared/queries/project_autocomplete_users_with_mr_permissions.query.graphql';\nimport issuableDatesUpdatedSubscription from '~/graphql_shared/subscriptions/work_item_dates.subscription.graphql';\nimport {\n TYPE_ALERT,\n TYPE_EPIC,\n TYPE_INCIDENT,\n TYPE_ISSUE,\n TYPE_MERGE_REQUEST,\n TYPE_TEST_CASE,\n WORKSPACE_GROUP,\n WORKSPACE_PROJECT,\n} from '~/issues/constants';\nimport updateAlertAssigneesMutation from '~/vue_shared/alert_details/graphql/mutations/alert_set_assignees.mutation.graphql';\nimport abuseReportLabelsQuery from '~/admin/abuse_report/graphql/abuse_report_labels.query.graphql';\nimport createAbuseReportLabelMutation from '~/admin/abuse_report/graphql/create_abuse_report_label.mutation.graphql';\nimport createGroupOrProjectLabelMutation from '../components/labels/labels_select_widget/graphql/create_label.mutation.graphql';\nimport updateTestCaseLabelsMutation from '../components/labels/labels_select_widget/graphql/update_test_case_labels.mutation.graphql';\nimport epicLabelsQuery from '../components/labels/labels_select_widget/graphql/epic_labels.query.graphql';\nimport updateEpicLabelsMutation from '../components/labels/labels_select_widget/graphql/epic_update_labels.mutation.graphql';\nimport groupLabelsQuery from '../components/labels/labels_select_widget/graphql/group_labels.query.graphql';\nimport issueLabelsQuery from '../components/labels/labels_select_widget/graphql/issue_labels.query.graphql';\nimport mergeRequestLabelsQuery from '../components/labels/labels_select_widget/graphql/merge_request_labels.query.graphql';\nimport projectLabelsQuery from '../components/labels/labels_select_widget/graphql/project_labels.query.graphql';\nimport { IssuableAttributeType, todoMutationTypes } from '../constants';\nimport epicConfidentialQuery from './epic_confidential.query.graphql';\nimport epicDueDateQuery from './epic_due_date.query.graphql';\nimport epicParticipantsQuery from './epic_participants.query.graphql';\nimport epicReferenceQuery from './epic_reference.query.graphql';\nimport epicStartDateQuery from './epic_start_date.query.graphql';\nimport epicSubscribedQuery from './epic_subscribed.query.graphql';\nimport epicTodoQuery from './epic_todo.query.graphql';\nimport issuableAssigneesSubscription from './issuable_assignees.subscription.graphql';\nimport issueConfidentialQuery from './issue_confidential.query.graphql';\nimport issueDueDateQuery from './issue_due_date.query.graphql';\nimport issueReferenceQuery from './issue_reference.query.graphql';\nimport issueSubscribedQuery from './issue_subscribed.query.graphql';\nimport issueTimeTrackingQuery from './issue_time_tracking.query.graphql';\nimport issueTodoQuery from './issue_todo.query.graphql';\nimport mergeRequestMilestone from './merge_request_milestone.query.graphql';\nimport mergeRequestReferenceQuery from './merge_request_reference.query.graphql';\nimport mergeRequestSubscribed from './merge_request_subscribed.query.graphql';\nimport mergeRequestTimeTrackingQuery from './merge_request_time_tracking.query.graphql';\nimport mergeRequestTodoQuery from './merge_request_todo.query.graphql';\nimport mergeRequestTodoSubscription from './merge_request_todo.subscription.graphql';\nimport todoCreateMutation from './todo_create.mutation.graphql';\nimport todoMarkDoneMutation from './todo_mark_done.mutation.graphql';\nimport updateEpicConfidentialMutation from './update_epic_confidential.mutation.graphql';\nimport updateEpicDueDateMutation from './update_epic_due_date.mutation.graphql';\nimport updateEpicStartDateMutation from './update_epic_start_date.mutation.graphql';\nimport updateEpicSubscriptionMutation from './update_epic_subscription.mutation.graphql';\nimport updateIssueConfidentialMutation from './update_issue_confidential.mutation.graphql';\nimport updateIssueDueDateMutation from './update_issue_due_date.mutation.graphql';\nimport updateIssueSubscriptionMutation from './update_issue_subscription.mutation.graphql';\nimport mergeRequestMilestoneMutation from './update_merge_request_milestone.mutation.graphql';\nimport updateMergeRequestLabelsMutation from './update_merge_request_labels.mutation.graphql';\nimport updateMergeRequestSubscriptionMutation from './update_merge_request_subscription.mutation.graphql';\nimport getAlertAssignees from './get_alert_assignees.query.graphql';\nimport getIssueAssignees from './get_issue_assignees.query.graphql';\nimport issueParticipantsQuery from './get_issue_participants.query.graphql';\nimport getIssueTimelogsQuery from './get_issue_timelogs.query.graphql';\nimport getMergeRequestAssignees from './get_mr_assignees.query.graphql';\nimport getMergeRequestParticipants from './get_mr_participants.query.graphql';\nimport getMrTimelogsQuery from './get_mr_timelogs.query.graphql';\nimport updateIssueAssigneesMutation from './update_issue_assignees.mutation.graphql';\nimport updateMergeRequestAssigneesMutation from './update_mr_assignees.mutation.graphql';\nimport getEscalationStatusQuery from './escalation_status.query.graphql';\nimport updateEscalationStatusMutation from './update_escalation_status.mutation.graphql';\nimport groupMilestonesQuery from './group_milestones.query.graphql';\nimport projectIssueMilestoneMutation from './project_issue_milestone.mutation.graphql';\nimport projectIssueMilestoneQuery from './project_issue_milestone.query.graphql';\nimport projectMilestonesQuery from './project_milestones.query.graphql';\nimport testCaseConfidentialQuery from './test_case_confidential.query.graphql';\nimport updateTestCaseConfidentialMutation from './update_test_case_confidential.mutation.graphql';\n\nexport const assigneesQueries = {\n [TYPE_ISSUE]: {\n query: getIssueAssignees,\n subscription: issuableAssigneesSubscription,\n mutation: updateIssueAssigneesMutation,\n },\n [TYPE_MERGE_REQUEST]: {\n query: getMergeRequestAssignees,\n mutation: updateMergeRequestAssigneesMutation,\n },\n [TYPE_ALERT]: {\n query: getAlertAssignees,\n mutation: updateAlertAssigneesMutation,\n },\n};\n\nexport const participantsQueries = {\n [TYPE_ISSUE]: {\n query: issueParticipantsQuery,\n },\n [TYPE_MERGE_REQUEST]: {\n query: getMergeRequestParticipants,\n },\n [TYPE_EPIC]: {\n query: epicParticipantsQuery,\n },\n [TYPE_ALERT]: {\n query: '',\n skipQuery: true,\n },\n};\n\nexport const userSearchQueries = {\n [TYPE_ISSUE]: {\n query: userAutocompleteQuery,\n },\n [TYPE_MERGE_REQUEST]: {\n query: userAutocompleteWithMRPermissionsQuery,\n },\n};\n\nexport const confidentialityQueries = {\n [TYPE_INCIDENT]: {\n query: issueConfidentialQuery,\n mutation: updateIssueConfidentialMutation,\n },\n [TYPE_ISSUE]: {\n query: issueConfidentialQuery,\n mutation: updateIssueConfidentialMutation,\n },\n [TYPE_EPIC]: {\n query: epicConfidentialQuery,\n mutation: updateEpicConfidentialMutation,\n },\n [TYPE_TEST_CASE]: {\n query: testCaseConfidentialQuery,\n mutation: updateTestCaseConfidentialMutation,\n },\n};\n\nexport const referenceQueries = {\n [TYPE_ISSUE]: {\n query: issueReferenceQuery,\n },\n [TYPE_MERGE_REQUEST]: {\n query: mergeRequestReferenceQuery,\n },\n [TYPE_EPIC]: {\n query: epicReferenceQuery,\n },\n};\n\nexport const workspaceLabelsQueries = {\n [WORKSPACE_PROJECT]: {\n query: projectLabelsQuery,\n dataPath: 'workspace.labels',\n },\n [WORKSPACE_GROUP]: {\n query: groupLabelsQuery,\n dataPath: 'workspace.labels',\n },\n abuseReport: {\n query: abuseReportLabelsQuery,\n dataPath: 'labels',\n },\n};\n\nexport const workspaceCreateLabelMutation = {\n [WORKSPACE_PROJECT]: createGroupOrProjectLabelMutation,\n [WORKSPACE_GROUP]: createGroupOrProjectLabelMutation,\n abuseReport: createAbuseReportLabelMutation,\n};\n\nexport const issuableLabelsQueries = {\n [TYPE_ISSUE]: {\n issuableQuery: issueLabelsQuery,\n mutation: updateIssueLabelsMutation,\n mutationName: 'updateIssue',\n },\n [TYPE_MERGE_REQUEST]: {\n issuableQuery: mergeRequestLabelsQuery,\n mutation: updateMergeRequestLabelsMutation,\n mutationName: 'mergeRequestSetLabels',\n },\n [TYPE_EPIC]: {\n issuableQuery: epicLabelsQuery,\n mutation: updateEpicLabelsMutation,\n mutationName: 'updateEpic',\n },\n [TYPE_TEST_CASE]: {\n issuableQuery: issueLabelsQuery,\n mutation: updateTestCaseLabelsMutation,\n mutationName: 'updateTestCaseLabels',\n },\n};\n\nexport const subscribedQueries = {\n [TYPE_ISSUE]: {\n query: issueSubscribedQuery,\n mutation: updateIssueSubscriptionMutation,\n },\n [TYPE_EPIC]: {\n query: epicSubscribedQuery,\n mutation: updateEpicSubscriptionMutation,\n },\n [TYPE_MERGE_REQUEST]: {\n query: mergeRequestSubscribed,\n mutation: updateMergeRequestSubscriptionMutation,\n },\n};\n\nexport const timeTrackingQueries = {\n [TYPE_ISSUE]: {\n query: issueTimeTrackingQuery,\n },\n [TYPE_MERGE_REQUEST]: {\n query: mergeRequestTimeTrackingQuery,\n },\n};\n\nexport const dueDateQueries = {\n [TYPE_ISSUE]: {\n query: issueDueDateQuery,\n mutation: updateIssueDueDateMutation,\n subscription: issuableDatesUpdatedSubscription,\n },\n [TYPE_EPIC]: {\n query: epicDueDateQuery,\n mutation: updateEpicDueDateMutation,\n },\n};\n\nexport const startDateQueries = {\n [TYPE_EPIC]: {\n query: epicStartDateQuery,\n mutation: updateEpicStartDateMutation,\n },\n};\n\nexport const timelogQueries = {\n [TYPE_ISSUE]: {\n query: getIssueTimelogsQuery,\n },\n [TYPE_MERGE_REQUEST]: {\n query: getMrTimelogsQuery,\n },\n};\n\nexport const issuableMilestoneQueries = {\n [TYPE_ISSUE]: {\n query: projectIssueMilestoneQuery,\n mutation: projectIssueMilestoneMutation,\n },\n [TYPE_MERGE_REQUEST]: {\n query: mergeRequestMilestone,\n mutation: mergeRequestMilestoneMutation,\n },\n};\n\nexport const milestonesQueries = {\n [TYPE_ISSUE]: {\n query: {\n [WORKSPACE_GROUP]: groupMilestonesQuery,\n [WORKSPACE_PROJECT]: projectMilestonesQuery,\n },\n },\n [TYPE_MERGE_REQUEST]: {\n query: {\n [WORKSPACE_GROUP]: groupMilestonesQuery,\n [WORKSPACE_PROJECT]: projectMilestonesQuery,\n },\n },\n};\n\nexport const issuableAttributesQueries = {\n [IssuableAttributeType.Milestone]: {\n current: issuableMilestoneQueries,\n list: milestonesQueries,\n },\n};\n\nexport const todoQueries = {\n [TYPE_EPIC]: {\n query: epicTodoQuery,\n },\n [TYPE_ISSUE]: {\n query: issueTodoQuery,\n },\n [TYPE_MERGE_REQUEST]: {\n query: mergeRequestTodoQuery,\n subscription: mergeRequestTodoSubscription,\n },\n};\n\nexport const todoMutations = {\n [todoMutationTypes.create]: todoCreateMutation,\n [todoMutationTypes.markDone]: todoMarkDoneMutation,\n};\n\nexport const escalationStatusQuery = getEscalationStatusQuery;\n\nexport const escalationStatusMutation = updateEscalationStatusMutation;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","const DATA_TRIGGER = 'data-dropdown-trigger';\nconst DATA_DROPDOWN = 'data-dropdown';\nconst SELECTED_CLASS = 'droplab-item-selected';\nconst ACTIVE_CLASS = 'droplab-item-active';\nconst IGNORE_CLASS = 'droplab-item-ignore';\n// Matches `{{anything}}` and `{{ everything }}`.\nconst TEMPLATE_REGEX = /\\{\\{(.+?)\\}\\}/g;\n\nexport { DATA_TRIGGER, DATA_DROPDOWN, SELECTED_CLASS, ACTIVE_CLASS, TEMPLATE_REGEX, IGNORE_CLASS };\n","import { template as _template } from 'lodash';\nimport { DATA_TRIGGER, DATA_DROPDOWN, TEMPLATE_REGEX } from './constants';\n\nconst utils = {\n toCamelCase(attr) {\n return this.camelize(attr.split('-').slice(1).join(' '));\n },\n\n template(templateString, data) {\n const template = _template(templateString, {\n escape: TEMPLATE_REGEX,\n });\n\n return template(data);\n },\n\n camelize(str) {\n return str\n .replace(/(?:^\\w|[A-Z]|\\b\\w)/g, (letter, index) => {\n return index === 0 ? letter.toLowerCase() : letter.toUpperCase();\n })\n .replace(/\\s+/g, '');\n },\n\n closest(thisTag, stopTag) {\n while (thisTag && thisTag.tagName !== stopTag && thisTag.tagName !== 'HTML') {\n thisTag = thisTag.parentNode; // eslint-disable-line no-param-reassign\n }\n return thisTag;\n },\n\n isDropDownParts(target) {\n if (!target || !target.hasAttribute || target.tagName === 'HTML') return false;\n return target.hasAttribute(DATA_TRIGGER) || target.hasAttribute(DATA_DROPDOWN);\n },\n};\n\nexport default utils;\n","import { SELECTED_CLASS, IGNORE_CLASS } from './constants';\nimport utils from './utils';\n\nclass DropDown {\n constructor(list, config = {}) {\n this.currentIndex = 0;\n this.hidden = true;\n this.list = typeof list === 'string' ? document.querySelector(list) : list;\n this.items = [];\n this.eventWrapper = {};\n this.hideOnClick = config.hideOnClick !== false;\n\n if (config.addActiveClassToDropdownButton) {\n this.dropdownToggle = this.list.parentNode.querySelector('.js-dropdown-toggle');\n }\n\n this.getItems();\n this.initTemplateString();\n this.addEvents();\n\n this.initialState = list.innerHTML;\n }\n\n getItems() {\n this.items = [].slice.call(this.list.querySelectorAll('li'));\n return this.items;\n }\n\n initTemplateString() {\n const items = this.items || this.getItems();\n\n let templateString = '';\n if (items.length > 0) templateString = items[items.length - 1].outerHTML;\n this.templateString = templateString;\n\n return this.templateString;\n }\n\n clickEvent(e) {\n if (e.target.tagName === 'UL') return;\n if (e.target.closest(`.${IGNORE_CLASS}`)) return;\n\n const selected = e.target.closest('li');\n if (!selected) return;\n\n this.addSelectedClass(selected);\n\n e.preventDefault();\n if (this.hideOnClick) {\n this.hide();\n }\n\n const listEvent = new CustomEvent('click.dl', {\n detail: {\n list: this,\n selected,\n data: e.target.dataset,\n },\n });\n this.list.dispatchEvent(listEvent);\n }\n\n addSelectedClass(selected) {\n this.removeSelectedClasses();\n selected.classList.add(SELECTED_CLASS);\n }\n\n removeSelectedClasses() {\n const items = this.items || this.getItems();\n\n items.forEach((item) => item.classList.remove(SELECTED_CLASS));\n }\n\n addEvents() {\n this.eventWrapper.clickEvent = this.clickEvent.bind(this);\n this.eventWrapper.closeDropdown = this.closeDropdown.bind(this);\n\n this.list.addEventListener('click', this.eventWrapper.clickEvent);\n this.list.addEventListener('keyup', this.eventWrapper.closeDropdown);\n }\n\n closeDropdown(event) {\n // `ESC` key closes the dropdown.\n if (event.keyCode === 27) {\n event.preventDefault();\n return this.toggle();\n }\n\n return true;\n }\n\n setData(data) {\n this.data = data;\n this.render(data);\n }\n\n addData(data) {\n this.data = (this.data || []).concat(data);\n this.render(this.data);\n }\n\n render(data) {\n const children = data ? data.map(this.renderChildren.bind(this)) : [];\n\n if (this.list.querySelector('.filter-dropdown-loading')) {\n return;\n }\n\n const renderableList = this.list.querySelector('ul[data-dynamic]') || this.list;\n // eslint-disable-next-line no-unsanitized/property\n renderableList.innerHTML = children.join('');\n\n const listEvent = new CustomEvent('render.dl', {\n detail: {\n list: this,\n },\n });\n this.list.dispatchEvent(listEvent);\n }\n\n renderChildren(data) {\n const html = utils.template(this.templateString, data);\n const template = document.createElement('div');\n // eslint-disable-next-line no-unsanitized/property\n template.innerHTML = html;\n DropDown.setImagesSrc(template);\n template.firstChild.style.display = data.droplab_hidden ? 'none' : 'block';\n\n return template.firstChild.outerHTML;\n }\n\n show() {\n if (!this.hidden) return;\n this.list.style.display = 'block';\n this.currentIndex = 0;\n this.hidden = false;\n\n if (this.dropdownToggle) this.dropdownToggle.classList.add('active');\n }\n\n hide() {\n if (this.hidden) return;\n this.list.style.display = 'none';\n this.currentIndex = 0;\n this.hidden = true;\n\n if (this.dropdownToggle) this.dropdownToggle.classList.remove('active');\n }\n\n toggle() {\n if (this.hidden) return this.show();\n\n return this.hide();\n }\n\n destroy() {\n this.hide();\n this.list.removeEventListener('click', this.eventWrapper.clickEvent);\n this.list.removeEventListener('keyup', this.eventWrapper.closeDropdown);\n }\n\n static setImagesSrc(template) {\n const images = [...template.querySelectorAll('img[data-src]')];\n\n images.forEach((image) => {\n const img = image;\n\n img.src = img.dataset.src;\n delete img.dataset.src;\n });\n }\n}\n\nexport default DropDown;\n","import DropDown from './drop_down';\n\nclass Hook {\n // eslint-disable-next-line max-params\n constructor(trigger, list, plugins, config) {\n this.trigger = trigger;\n this.list = new DropDown(list, config);\n this.type = 'Hook';\n this.event = 'click';\n this.plugins = plugins || [];\n this.config = config || {};\n this.id = trigger.id;\n }\n}\n\nexport default Hook;\n","import Hook from './hook';\n\nclass HookButton extends Hook {\n // eslint-disable-next-line max-params\n constructor(trigger, list, plugins, config) {\n super(trigger, list, plugins, config);\n\n this.type = 'button';\n this.event = 'click';\n\n this.eventWrapper = {};\n\n this.addEvents();\n this.addPlugins();\n }\n\n addPlugins() {\n this.plugins.forEach((plugin) => plugin.init(this));\n }\n\n clicked(e) {\n e.preventDefault();\n\n const buttonEvent = new CustomEvent('click.dl', {\n detail: {\n hook: this,\n },\n bubbles: true,\n cancelable: true,\n });\n e.target.dispatchEvent(buttonEvent);\n\n this.list.toggle();\n }\n\n addEvents() {\n this.eventWrapper.clicked = this.clicked.bind(this);\n this.trigger.addEventListener('click', this.eventWrapper.clicked);\n }\n\n removeEvents() {\n this.trigger.removeEventListener('click', this.eventWrapper.clicked);\n }\n\n restoreInitialState() {\n // eslint-disable-next-line no-unsanitized/property\n this.list.list.innerHTML = this.list.initialState;\n }\n\n removePlugins() {\n this.plugins.forEach((plugin) => plugin.destroy());\n }\n\n destroy() {\n this.restoreInitialState();\n\n this.removeEvents();\n this.removePlugins();\n }\n}\n\nexport default HookButton;\n","import Hook from './hook';\n\nclass HookInput extends Hook {\n // eslint-disable-next-line max-params\n constructor(trigger, list, plugins, config) {\n super(trigger, list, plugins, config);\n\n this.type = 'input';\n this.event = 'input';\n\n this.eventWrapper = {};\n\n this.addEvents();\n this.addPlugins();\n }\n\n addPlugins() {\n this.plugins.forEach((plugin) => plugin.init(this));\n }\n\n addEvents() {\n this.eventWrapper.mousedown = this.mousedown.bind(this);\n this.eventWrapper.input = this.input.bind(this);\n this.eventWrapper.keyup = this.keyup.bind(this);\n this.eventWrapper.keydown = this.keydown.bind(this);\n\n this.trigger.addEventListener('mousedown', this.eventWrapper.mousedown);\n this.trigger.addEventListener('input', this.eventWrapper.input);\n this.trigger.addEventListener('keyup', this.eventWrapper.keyup);\n this.trigger.addEventListener('keydown', this.eventWrapper.keydown);\n }\n\n removeEvents() {\n this.hasRemovedEvents = true;\n\n this.trigger.removeEventListener('mousedown', this.eventWrapper.mousedown);\n this.trigger.removeEventListener('input', this.eventWrapper.input);\n this.trigger.removeEventListener('keyup', this.eventWrapper.keyup);\n this.trigger.removeEventListener('keydown', this.eventWrapper.keydown);\n }\n\n input(e) {\n if (this.hasRemovedEvents) return;\n\n this.list.show();\n\n const inputEvent = new CustomEvent('input.dl', {\n detail: {\n hook: this,\n text: e.target.value,\n },\n bubbles: true,\n cancelable: true,\n });\n e.target.dispatchEvent(inputEvent);\n }\n\n mousedown(e) {\n if (this.hasRemovedEvents) return;\n\n const mouseEvent = new CustomEvent('mousedown.dl', {\n detail: {\n hook: this,\n text: e.target.value,\n },\n bubbles: true,\n cancelable: true,\n });\n e.target.dispatchEvent(mouseEvent);\n }\n\n keyup(e) {\n if (this.hasRemovedEvents) return;\n\n this.keyEvent(e, 'keyup.dl');\n }\n\n keydown(e) {\n if (this.hasRemovedEvents) return;\n\n this.keyEvent(e, 'keydown.dl');\n }\n\n keyEvent(e, eventName) {\n this.list.show();\n\n const keyEvent = new CustomEvent(eventName, {\n detail: {\n hook: this,\n text: e.target.value,\n which: e.which,\n key: e.key,\n },\n bubbles: true,\n cancelable: true,\n });\n e.target.dispatchEvent(keyEvent);\n }\n\n restoreInitialState() {\n // eslint-disable-next-line no-unsanitized/property\n this.list.list.innerHTML = this.list.initialState;\n }\n\n removePlugins() {\n this.plugins.forEach((plugin) => plugin.destroy());\n }\n\n destroy() {\n this.restoreInitialState();\n\n this.removeEvents();\n this.removePlugins();\n\n this.list.destroy();\n }\n}\n\nexport default HookInput;\n","/* eslint-disable */\n\nimport { ACTIVE_CLASS } from './constants';\n\nconst Keyboard = function () {\n var currentKey;\n var currentFocus;\n var isUpArrow = false;\n var isDownArrow = false;\n var removeHighlight = function removeHighlight(list) {\n var itemElements = Array.prototype.slice.call(\n list.list.querySelectorAll('li:not(.divider):not(.hidden)'),\n 0,\n );\n var listItems = [];\n for (var i = 0; i < itemElements.length; i++) {\n var listItem = itemElements[i];\n listItem.classList.remove(ACTIVE_CLASS);\n\n if (listItem.style.display !== 'none') {\n listItems.push(listItem);\n }\n }\n return listItems;\n };\n\n var setMenuForArrows = function setMenuForArrows(list) {\n var listItems = removeHighlight(list);\n if (list.currentIndex > 0) {\n if (!listItems[list.currentIndex - 1]) {\n list.currentIndex = list.currentIndex - 1;\n }\n\n if (listItems[list.currentIndex - 1]) {\n var el = listItems[list.currentIndex - 1];\n var filterDropdownEl = el.closest('.filter-dropdown');\n el.classList.add(ACTIVE_CLASS);\n\n if (filterDropdownEl) {\n var filterDropdownBottom = filterDropdownEl.offsetHeight;\n var elOffsetTop = el.offsetTop - 30;\n\n if (elOffsetTop > filterDropdownBottom) {\n filterDropdownEl.scrollTop = elOffsetTop - filterDropdownBottom;\n }\n }\n }\n }\n };\n\n var mousedown = function mousedown(e) {\n var list = e.detail.hook.list;\n removeHighlight(list);\n list.show();\n list.currentIndex = 0;\n isUpArrow = false;\n isDownArrow = false;\n };\n var selectItem = function selectItem(list) {\n var listItems = removeHighlight(list);\n var currentItem = listItems[list.currentIndex - 1];\n var listEvent = new CustomEvent('click.dl', {\n detail: {\n list: list,\n selected: currentItem,\n data: currentItem.dataset,\n },\n });\n list.list.dispatchEvent(listEvent);\n list.hide();\n };\n\n var keydown = function keydown(e) {\n var typedOn = e.target;\n var list = e.detail.hook.list;\n var currentIndex = list.currentIndex;\n isUpArrow = false;\n isDownArrow = false;\n\n if (e.detail.which) {\n currentKey = e.detail.which;\n if (currentKey === 13) {\n selectItem(e.detail.hook.list);\n return;\n }\n if (currentKey === 38) {\n isUpArrow = true;\n }\n if (currentKey === 40) {\n isDownArrow = true;\n }\n } else if (e.detail.key) {\n currentKey = e.detail.key;\n if (currentKey === 'Enter') {\n selectItem(e.detail.hook.list);\n return;\n }\n if (currentKey === 'ArrowUp') {\n isUpArrow = true;\n }\n if (currentKey === 'ArrowDown') {\n isDownArrow = true;\n }\n }\n if (isUpArrow) {\n currentIndex--;\n }\n if (isDownArrow) {\n currentIndex++;\n }\n if (currentIndex < 0) {\n currentIndex = 0;\n }\n list.currentIndex = currentIndex;\n setMenuForArrows(e.detail.hook.list);\n };\n\n document.addEventListener('mousedown.dl', mousedown);\n document.addEventListener('keydown.dl', keydown);\n};\n\nexport default Keyboard;\n","/**\n * This library is deprecated and scheduled to be removed once the\n * filtered_search component is replaced with GitLab's new Pajamas\n * filter vue component.\n *\n * The documentation has been removed from the gitlab codebase but\n * can still be found in the commit history here:\n * https://gitlab.com/gitlab-org/gitlab/-/blob/28f20e28/doc/development/fe_guide/droplab/droplab.md\n */\n\nimport { DATA_TRIGGER } from './constants';\nimport HookButton from './hook_button';\nimport HookInput from './hook_input';\nimport Keyboard from './keyboard';\nimport utils from './utils';\n\nclass DropLab {\n constructor() {\n this.ready = false;\n this.hooks = [];\n this.queuedData = [];\n this.config = {};\n\n this.eventWrapper = {};\n }\n\n loadStatic() {\n const dropdownTriggers = [].slice.apply(document.querySelectorAll(`[${DATA_TRIGGER}]`));\n this.addHooks(dropdownTriggers);\n }\n\n addData(...args) {\n this.applyArgs(args, 'processAddData');\n }\n\n setData(...args) {\n this.applyArgs(args, 'processSetData');\n }\n\n destroy() {\n this.hooks.forEach((hook) => hook.destroy());\n this.hooks = [];\n this.removeEvents();\n }\n\n applyArgs(args, methodName) {\n if (this.ready) return this[methodName](...args);\n\n this.queuedData = this.queuedData || [];\n this.queuedData.push(args);\n\n return this.ready;\n }\n\n processAddData(trigger, data) {\n this.processData(trigger, data, 'addData');\n }\n\n processSetData(trigger, data) {\n this.processData(trigger, data, 'setData');\n }\n\n processData(trigger, data, methodName) {\n this.hooks.forEach((hook) => {\n if (Array.isArray(trigger)) hook.list[methodName](trigger);\n\n if (hook.trigger.id === trigger) hook.list[methodName](data);\n });\n }\n\n addEvents() {\n this.eventWrapper.documentClicked = this.documentClicked.bind(this);\n document.addEventListener('click', this.eventWrapper.documentClicked);\n }\n\n documentClicked(e) {\n if (e.defaultPrevented) return;\n\n if (utils.isDropDownParts(e.target)) return;\n\n if (e.target.tagName !== 'UL') {\n const closestUl = utils.closest(e.target, 'UL');\n if (utils.isDropDownParts(closestUl)) return;\n }\n\n this.hooks.forEach((hook) => hook.list.hide());\n }\n\n removeEvents() {\n document.removeEventListener('click', this.eventWrapper.documentClicked);\n }\n\n // eslint-disable-next-line max-params\n changeHookList(trigger, list, plugins, config) {\n const availableTrigger =\n typeof trigger === 'string' ? document.getElementById(trigger) : trigger;\n\n this.hooks.forEach((hook, i) => {\n const aHook = hook;\n\n aHook.list.list.dataset.dropdownActive = false;\n\n if (aHook.trigger !== availableTrigger) return;\n\n aHook.destroy();\n this.hooks.splice(i, 1);\n this.addHook(availableTrigger, list, plugins, config);\n });\n }\n\n // eslint-disable-next-line max-params\n addHook(hook, list, plugins, config) {\n const availableHook = typeof hook === 'string' ? document.querySelector(hook) : hook;\n let availableList;\n\n if (typeof list === 'string') {\n availableList = document.querySelector(list);\n } else if (list instanceof Element) {\n availableList = list;\n } else {\n availableList = document.querySelector(hook.dataset[utils.toCamelCase(DATA_TRIGGER)]);\n }\n\n availableList.dataset.dropdownActive = true;\n\n const HookObject = availableHook.tagName === 'INPUT' ? HookInput : HookButton;\n this.hooks.push(new HookObject(availableHook, availableList, plugins, config));\n\n return this;\n }\n\n addHooks(hooks, plugins, config) {\n hooks.forEach((hook) => this.addHook(hook, null, plugins, config));\n return this;\n }\n\n setConfig(obj) {\n this.config = obj;\n }\n\n fireReady() {\n const readyEvent = new CustomEvent('ready.dl', {\n detail: {\n dropdown: this,\n },\n });\n document.dispatchEvent(readyEvent);\n\n this.ready = true;\n }\n\n // eslint-disable-next-line max-params\n init(hook, list, plugins, config) {\n if (hook) {\n this.addHook(hook, list, plugins, config);\n } else {\n this.loadStatic();\n }\n\n this.addEvents();\n\n Keyboard();\n\n this.fireReady();\n\n this.queuedData.forEach((data) => this.addData(data));\n this.queuedData = [];\n\n return this;\n }\n}\n\nexport default DropLab;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","export default {\n methods: {\n animateChange() {\n this.preAnimation = true;\n this.pulseAnimation = false;\n\n setTimeout(() => {\n this.preAnimation = false;\n this.pulseAnimation = true;\n });\n },\n },\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('sidebar-editable-item',{ref:\"editable\",staticClass:\"block confidentiality\",attrs:{\"title\":_vm.__('Confidentiality'),\"tracking\":_vm.$options.tracking,\"loading\":_vm.isLoading,\"data-testid\":\"sidebar-confidentiality\"},scopedSlots:_vm._u([{key:\"collapsed\",fn:function(){return [_c('div',[(!_vm.isLoading)?_c('sidebar-confidentiality-content',{class:{ 'gl-mt-3': !_vm.isClassicSidebar },attrs:{\"confidential\":_vm.confidential,\"issuable-type\":_vm.issuableType},on:{\"expandSidebar\":_vm.expandSidebar}}):_vm._e()],1)]},proxy:true},{key:\"default\",fn:function(){return [_c('sidebar-confidentiality-content',{attrs:{\"confidential\":_vm.confidential,\"issuable-type\":_vm.issuableType}}),_vm._v(\" \"),_c('sidebar-confidentiality-form',{attrs:{\"iid\":_vm.iid,\"full-path\":_vm.fullPath,\"confidential\":_vm.confidential,\"issuable-type\":_vm.issuableType},on:{\"closeForm\":_vm.closeForm}})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_confidentiality_content.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_confidentiality_content.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlAlert, GlTooltipDirective } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport { TYPE_EPIC, WORKSPACE_GROUP, WORKSPACE_PROJECT } from '~/issues/constants';\nimport { confidentialityInfoText } from '~/vue_shared/constants';\n\nexport default {\n components: {\n GlIcon,\n GlAlert,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n confidential: {\n type: Boolean,\n required: true,\n },\n issuableType: {\n type: String,\n required: true,\n },\n },\n computed: {\n confidentialBodyText() {\n return confidentialityInfoText(\n this.issuableType === TYPE_EPIC ? WORKSPACE_GROUP : WORKSPACE_PROJECT,\n this.issuableType,\n );\n },\n confidentialIcon() {\n return this.confidential ? 'eye-slash' : 'eye';\n },\n tooltipLabel() {\n return this.confidential ? __('Confidential') : __('Not confidential');\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div\n v-gl-tooltip.viewport.left\n :title=\"tooltipLabel\"\n class=\"sidebar-collapsed-icon\"\n data-testid=\"sidebar-collapsed-icon\"\n @click=\"$emit('expandSidebar')\"\n >\n <gl-icon\n :size=\"16\"\n :name=\"confidentialIcon\"\n class=\"sidebar-item-icon gl-inline-block\"\n :class=\"{ 'is-active': confidential }\"\n />\n </div>\n <gl-icon\n :size=\"16\"\n :name=\"confidentialIcon\"\n class=\"sidebar-item-icon hide-collapsed gl-inline-block\"\n :class=\"{ 'is-active': confidential }\"\n />\n <span class=\"hide-collapsed\" data-testid=\"confidential-text\">\n {{ tooltipLabel }}\n <gl-alert\n v-if=\"confidential\"\n :show-icon=\"false\"\n :dismissible=\"false\"\n variant=\"warning\"\n class=\"gl-mt-3\"\n >\n {{ confidentialBodyText }}\n </gl-alert>\n </span>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_confidentiality_content.vue?vue&type=template&id=cc3f9314\"\nimport script from \"./sidebar_confidentiality_content.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_confidentiality_content.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.left\",modifiers:{\"viewport\":true,\"left\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.tooltipLabel,\"data-testid\":\"sidebar-collapsed-icon\"},on:{\"click\":function($event){return _vm.$emit('expandSidebar')}}},[_c('gl-icon',{staticClass:\"sidebar-item-icon gl-inline-block\",class:{ 'is-active': _vm.confidential },attrs:{\"size\":16,\"name\":_vm.confidentialIcon}})],1),_vm._v(\" \"),_c('gl-icon',{staticClass:\"sidebar-item-icon hide-collapsed gl-inline-block\",class:{ 'is-active': _vm.confidential },attrs:{\"size\":16,\"name\":_vm.confidentialIcon}}),_vm._v(\" \"),_c('span',{staticClass:\"hide-collapsed\",attrs:{\"data-testid\":\"confidential-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.tooltipLabel)+\"\\n \"),(_vm.confidential)?_c('gl-alert',{staticClass:\"gl-mt-3\",attrs:{\"show-icon\":false,\"dismissible\":false,\"variant\":\"warning\"}},[_vm._v(\"\\n \"+_vm._s(_vm.confidentialBodyText)+\"\\n \")]):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_confidentiality_form.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_confidentiality_form.vue?vue&type=script&lang=js\"","<script>\nimport { GlSprintf, GlButton } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { TYPE_ISSUE, TYPE_TEST_CASE, issuableTypeText } from '~/issues/constants';\nimport { __, sprintf } from '~/locale';\nimport { confidentialityQueries } from '../../queries/constants';\n\nexport default {\n i18n: {\n confidentialityOnWarning: __(\n 'You are going to turn on confidentiality. Only %{context} members with %{strongStart}%{permissions}%{strongEnd} can view or be notified about this %{issuableType}.',\n ),\n confidentialityOffWarning: __(\n 'You are going to turn off the confidentiality. This means %{strongStart}everyone%{strongEnd} will be able to see%{commentText} this %{issuableType}.',\n ),\n },\n components: {\n GlSprintf,\n GlButton,\n },\n props: {\n iid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n confidential: {\n required: true,\n type: Boolean,\n },\n issuableType: {\n required: true,\n type: String,\n },\n },\n data() {\n return {\n loading: false,\n };\n },\n computed: {\n toggleButtonText() {\n if (this.loading) {\n return __('Applying');\n }\n return this.confidential ? __('Turn off') : __('Turn on');\n },\n warningMessage() {\n return this.confidential\n ? this.$options.i18n.confidentialityOffWarning\n : this.$options.i18n.confidentialityOnWarning;\n },\n isIssue() {\n return this.issuableType === TYPE_ISSUE;\n },\n isTestCase() {\n return this.issuableType === TYPE_TEST_CASE;\n },\n isIssueOrTestCase() {\n return this.isIssue || this.isTestCase;\n },\n context() {\n return this.isIssueOrTestCase ? __('project') : __('group');\n },\n workspacePath() {\n return this.isIssueOrTestCase\n ? {\n projectPath: this.fullPath,\n }\n : {\n groupPath: this.fullPath,\n };\n },\n permissions() {\n return this.isIssue\n ? __('at least the Planner role, the author, and assignees')\n : __('at least the Planner role');\n },\n issuableTypeText() {\n return issuableTypeText[this.issuableType];\n },\n commentText() {\n return this.isTestCase ? '' : __(' and leave a comment on');\n },\n },\n methods: {\n submitForm() {\n this.loading = true;\n this.$apollo\n .mutate({\n mutation: confidentialityQueries[this.issuableType].mutation,\n variables: {\n input: {\n ...this.workspacePath,\n iid: this.iid,\n confidential: !this.confidential,\n },\n },\n })\n .then(\n ({\n data: {\n issuableSetConfidential: { errors },\n },\n }) => {\n if (errors.length) {\n createAlert({\n message: errors[0],\n });\n } else {\n this.$emit('closeForm');\n }\n },\n )\n .catch(() => {\n createAlert({\n message: sprintf(\n __('Something went wrong while setting %{issuableType} confidentiality.'),\n {\n issuableType: this.issuableTypeText,\n },\n ),\n });\n })\n .finally(() => {\n this.loading = false;\n });\n },\n },\n};\n</script>\n\n<template>\n <div class=\"dropdown show\">\n <div class=\"dropdown-menu sidebar-item-warning-message\">\n <div>\n <p data-testid=\"warning-message\">\n <gl-sprintf :message=\"warningMessage\">\n <template #strong=\"{ content }\">\n <strong>\n <gl-sprintf :message=\"content\">\n <template #permissions>{{ permissions }}</template>\n </gl-sprintf>\n </strong>\n </template>\n <template #context>{{ context }}</template>\n <template #commentText>{{ commentText }}</template>\n <template #issuableType>{{ issuableTypeText }}</template>\n </gl-sprintf>\n </p>\n <div class=\"sidebar-item-warning-message-actions\">\n <gl-button class=\"gl-mr-3\" data-testid=\"confidential-cancel\" @click=\"$emit('closeForm')\">\n {{ __('Cancel') }}\n </gl-button>\n <gl-button\n category=\"secondary\"\n variant=\"confirm\"\n :disabled=\"loading\"\n :loading=\"loading\"\n data-testid=\"confidential-toggle\"\n @click.prevent=\"submitForm\"\n >\n {{ toggleButtonText }}\n </gl-button>\n </div>\n </div>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_confidentiality_form.vue?vue&type=template&id=2980d1fb\"\nimport script from \"./sidebar_confidentiality_form.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_confidentiality_form.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"dropdown show\"},[_c('div',{staticClass:\"dropdown-menu sidebar-item-warning-message\"},[_c('div',[_c('p',{attrs:{\"data-testid\":\"warning-message\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.warningMessage},scopedSlots:_vm._u([{key:\"strong\",fn:function({ content }){return [_c('strong',[_c('gl-sprintf',{attrs:{\"message\":content},scopedSlots:_vm._u([{key:\"permissions\",fn:function(){return [_vm._v(_vm._s(_vm.permissions))]},proxy:true}],null,true)})],1)]}},{key:\"context\",fn:function(){return [_vm._v(_vm._s(_vm.context))]},proxy:true},{key:\"commentText\",fn:function(){return [_vm._v(_vm._s(_vm.commentText))]},proxy:true},{key:\"issuableType\",fn:function(){return [_vm._v(_vm._s(_vm.issuableTypeText))]},proxy:true}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"sidebar-item-warning-message-actions\"},[_c('gl-button',{staticClass:\"gl-mr-3\",attrs:{\"data-testid\":\"confidential-cancel\"},on:{\"click\":function($event){return _vm.$emit('closeForm')}}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Cancel'))+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{attrs:{\"category\":\"secondary\",\"variant\":\"confirm\",\"disabled\":_vm.loading,\"loading\":_vm.loading,\"data-testid\":\"confidential-toggle\"},on:{\"click\":function($event){$event.preventDefault();return _vm.submitForm.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm.toggleButtonText)+\"\\n \")])],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport produce from 'immer';\nimport Vue from 'vue';\nimport { createAlert } from '~/alert';\nimport { __, sprintf } from '~/locale';\nimport { Tracking } from '../../constants';\nimport { confidentialityQueries } from '../../queries/constants';\nimport SidebarEditableItem from '../sidebar_editable_item.vue';\nimport SidebarConfidentialityContent from './sidebar_confidentiality_content.vue';\nimport SidebarConfidentialityForm from './sidebar_confidentiality_form.vue';\n\nexport const confidentialWidget = Vue.observable({\n setConfidentiality: null,\n});\n\nconst hideDropdownEvent = new CustomEvent('hiddenGlDropdown', {\n bubbles: true,\n});\n\nexport default {\n tracking: {\n event: Tracking.editEvent,\n label: Tracking.rightSidebarLabel,\n property: 'confidentiality',\n },\n components: {\n SidebarEditableItem,\n SidebarConfidentialityContent,\n SidebarConfidentialityForm,\n },\n inject: {\n isClassicSidebar: {\n default: false,\n },\n },\n props: {\n iid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n issuableType: {\n required: true,\n type: String,\n },\n },\n data() {\n return {\n confidential: false,\n };\n },\n apollo: {\n confidential: {\n query() {\n return confidentialityQueries[this.issuableType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n iid: String(this.iid),\n };\n },\n update(data) {\n return data.workspace?.issuable?.confidential || false;\n },\n skip() {\n return !this.iid;\n },\n result({ data }) {\n if (!data) {\n return;\n }\n this.$emit('confidentialityUpdated', data.workspace?.issuable?.confidential);\n },\n error() {\n createAlert({\n message: sprintf(\n __('Something went wrong while setting %{issuableType} confidentiality.'),\n {\n issuableType: this.issuableType,\n },\n ),\n });\n },\n },\n },\n computed: {\n isLoading() {\n return this.$apollo.queries.confidential.loading;\n },\n },\n mounted() {\n confidentialWidget.setConfidentiality = this.setConfidentiality;\n },\n destroyed() {\n confidentialWidget.setConfidentiality = null;\n },\n methods: {\n closeForm() {\n this.$refs.editable.collapse();\n this.$el.dispatchEvent(hideDropdownEvent);\n this.$emit('closeForm');\n },\n // synchronizing the quick action with the sidebar widget\n // this is a temporary solution until we have confidentiality real-time updates\n setConfidentiality() {\n const { defaultClient: client } = this.$apollo.provider.clients;\n const sourceData = client.readQuery({\n query: confidentialityQueries[this.issuableType].query,\n variables: { fullPath: this.fullPath, iid: this.iid },\n });\n\n const data = produce(sourceData, (draftData) => {\n draftData.workspace.issuable.confidential = !this.confidential;\n });\n\n client.writeQuery({\n query: confidentialityQueries[this.issuableType].query,\n variables: { fullPath: this.fullPath, iid: this.iid },\n data,\n });\n },\n expandSidebar() {\n this.$refs.editable.expand();\n this.$emit('expandSidebar');\n },\n },\n};\n</script>\n\n<template>\n <sidebar-editable-item\n ref=\"editable\"\n :title=\"__('Confidentiality')\"\n :tracking=\"$options.tracking\"\n :loading=\"isLoading\"\n class=\"block confidentiality\"\n data-testid=\"sidebar-confidentiality\"\n >\n <template #collapsed>\n <div>\n <sidebar-confidentiality-content\n v-if=\"!isLoading\"\n :confidential=\"confidential\"\n :issuable-type=\"issuableType\"\n :class=\"{ 'gl-mt-3': !isClassicSidebar }\"\n @expandSidebar=\"expandSidebar\"\n />\n </div>\n </template>\n <template #default>\n <sidebar-confidentiality-content :confidential=\"confidential\" :issuable-type=\"issuableType\" />\n <sidebar-confidentiality-form\n :iid=\"iid\"\n :full-path=\"fullPath\"\n :confidential=\"confidential\"\n :issuable-type=\"issuableType\"\n @closeForm=\"closeForm\"\n />\n </template>\n </sidebar-editable-item>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_confidentiality_widget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_confidentiality_widget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./sidebar_confidentiality_widget.vue?vue&type=template&id=0e1d964c\"\nimport script from \"./sidebar_confidentiality_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_confidentiality_widget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { __ } from '~/locale';\nimport {\n OPTION_ANY,\n OPTION_CURRENT,\n OPTIONS_NONE_ANY,\n} from '~/vue_shared/components/filtered_search_bar/constants';\n\nexport * from '~/vue_shared/components/filtered_search_bar/constants';\n\nexport const WEIGHT_TOKEN_SUGGESTIONS_SIZE = 21;\n\nexport const DEFAULT_ITERATIONS = OPTIONS_NONE_ANY.concat(OPTION_CURRENT);\nexport const DEFAULT_CADENCES = [OPTION_ANY, OPTION_CURRENT];\nexport const DEFAULT_HEALTH_STATUSES = OPTIONS_NONE_ANY;\n\nexport const HEALTH_SUGGESTIONS = [\n { title: __('On track'), value: 'onTrack' },\n { title: __('Needs attention'), value: 'needsAttention' },\n { title: __('At risk'), value: 'atRisk' },\n];\n\nexport const TOKEN_TITLE_ITERATION = __('Iteration');\nexport const TOKEN_TITLE_EPIC = __('Epic');\nexport const TOKEN_TITLE_WEIGHT = __('Weight');\nexport const TOKEN_TITLE_HEALTH = __('Health');\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"Iteration\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Iteration\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadence\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"durationInWeeks\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":133}};\n doc.loc.source = {\"body\":\"fragment Iteration on Iteration {\\n id\\n title\\n startDate\\n dueDate\\n iterationCadence {\\n id\\n title\\n durationInWeeks\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"Iteration\"] = oneQuery(doc, \"Iteration\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('related-issues-block',{ref:\"relatedIssuesBlock\",class:_vm.cssClass,attrs:{\"help-path\":_vm.helpPath,\"is-fetching\":_vm.isFetching,\"is-submitting\":_vm.isSubmitting,\"related-issues\":_vm.state.relatedIssues,\"can-admin\":_vm.canAdmin,\"can-reorder\":_vm.canReorder,\"pending-references\":_vm.state.pendingReferences,\"is-form-visible\":_vm.isFormVisible,\"input-value\":_vm.inputValue,\"auto-complete-sources\":_vm.autoCompleteSources,\"auto-complete-epics\":_vm.autoCompleteEpics,\"auto-complete-issues\":_vm.autoCompleteIssues,\"issuable-type\":_vm.issuableType,\"path-id-separator\":_vm.pathIdSeparator,\"show-categorized-issues\":_vm.showCategorizedIssues,\"has-error\":_vm.hasError,\"item-add-failure-message\":_vm.errorMessage},on:{\"saveReorder\":_vm.saveIssueOrder,\"toggleAddRelatedIssuesForm\":_vm.onToggleAddRelatedIssuesForm,\"addIssuableFormInput\":_vm.onInput,\"addIssuableFormBlur\":_vm.onBlur,\"addIssuableFormSubmit\":_vm.onPendingFormSubmit,\"addIssuableFormCancel\":_vm.onPendingFormCancel,\"pendingIssuableRemoveRequest\":_vm.onPendingIssueRemoveRequest,\"relatedIssueRemoveRequest\":_vm.onRelatedIssueRemoveRequest,\"showForm\":function($event){_vm.isFormVisible = true},\"hideForm\":function($event){_vm.isFormVisible = false}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from '~/lib/utils/axios_utils';\nimport { linkedIssueTypesMap } from '../constants';\n\nclass RelatedIssuesService {\n constructor(endpoint) {\n this.endpoint = endpoint;\n }\n\n fetchRelatedIssues() {\n return axios.get(this.endpoint);\n }\n\n addRelatedIssues(newIssueReferences, linkType = linkedIssueTypesMap.RELATES_TO) {\n return axios.post(this.endpoint, {\n issuable_references: newIssueReferences,\n link_type: linkType,\n });\n }\n\n static saveOrder({ endpoint, move_before_id, move_after_id }) {\n return axios.put(endpoint, {\n epic: {\n move_before_id,\n move_after_id,\n },\n });\n }\n\n static remove(endpoint) {\n return axios.delete(endpoint);\n }\n}\n\nexport default RelatedIssuesService;\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./related_issues_root.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./related_issues_root.vue?vue&type=script&lang=js\"","<script>\n/*\n`rawReferences` are separated by spaces.\nGiven `abc 123 zxc`, `rawReferences = ['abc', '123', 'zxc']`\n\nConsider you are typing `abc 123 zxc` in the input and your caret position is\nat position 4 right before the `123` `rawReference`. Then you type `#` and\nit becomes a valid reference, `#123`, but we don't want to jump it straight into\n`pendingReferences` because you could still want to type. Say you typed `999`\nand now we have `#999123`. Only when you move your caret away from that `rawReference`\ndo we actually put it in the `pendingReferences`.\n\nYour caret can stop touching a `rawReference` can happen in a variety of ways:\n\n - As you type, we only tokenize after you type a space or move with the arrow keys\n - On blur, we consider your caret not touching anything\n\n---\n\n - When you click the \"Add related issues\"(in the `AddIssuableForm`),\n we submit the `pendingReferences` to the server and they come back as actual `relatedIssues`\n - When you click the \"Cancel\"(in the `AddIssuableForm`), we clear out `pendingReferences`\n and hide the `AddIssuableForm` area.\n\n*/\nimport { createAlert } from '~/alert';\nimport { getIdFromGraphQLId, isGid } from '~/graphql_shared/utils';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { HTTP_STATUS_NOT_FOUND } from '~/lib/utils/http_status';\nimport { __ } from '~/locale';\nimport {\n relatedIssuesRemoveErrorMap,\n pathIndeterminateErrorMap,\n addRelatedIssueErrorMap,\n PathIdSeparator,\n} from '../constants';\nimport RelatedIssuesService from '../services/related_issues_service';\nimport RelatedIssuesStore from '../stores/related_issues_store';\nimport RelatedIssuesBlock from './related_issues_block.vue';\n\nexport default {\n name: 'RelatedIssuesRoot',\n components: {\n RelatedIssuesBlock,\n },\n props: {\n endpoint: {\n type: String,\n required: true,\n },\n canAdmin: {\n type: Boolean,\n required: false,\n default: false,\n },\n canReorder: {\n type: Boolean,\n required: false,\n default: false,\n },\n helpPath: {\n type: String,\n required: false,\n default: '',\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n allowAutoComplete: {\n type: Boolean,\n required: false,\n default: true,\n },\n autoCompleteEpics: {\n type: Boolean,\n required: false,\n default: true,\n },\n autoCompleteIssues: {\n type: Boolean,\n required: false,\n default: true,\n },\n pathIdSeparator: {\n type: String,\n required: false,\n default: PathIdSeparator.Issue,\n },\n cssClass: {\n type: String,\n required: false,\n default: '',\n },\n showCategorizedIssues: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n data() {\n this.store = new RelatedIssuesStore();\n\n return {\n state: this.store.state,\n isFetching: false,\n isSubmitting: false,\n isFormVisible: false,\n inputValue: '',\n hasError: false,\n errorMessage: null,\n };\n },\n computed: {\n autoCompleteSources() {\n if (!this.allowAutoComplete) return {};\n return gl.GfmAutoComplete && gl.GfmAutoComplete.dataSources;\n },\n },\n created() {\n this.service = new RelatedIssuesService(this.endpoint);\n this.fetchRelatedIssues();\n },\n methods: {\n findRelatedIssueById(id) {\n return this.state.relatedIssues.find((issue) => issue.id === id);\n },\n onRelatedIssueRemoveRequest(idToRemove) {\n if (isGid(idToRemove)) {\n const deletedId = getIdFromGraphQLId(idToRemove);\n this.state.relatedIssues = this.state.relatedIssues.filter(\n (issue) => issue.id !== deletedId,\n );\n return;\n }\n\n const issueToRemove = this.findRelatedIssueById(idToRemove);\n\n if (issueToRemove) {\n RelatedIssuesService.remove(issueToRemove.relationPath)\n .then(({ data }) => {\n this.store.setRelatedIssues(data.issuables);\n })\n .catch((res) => {\n if (res && res.status !== HTTP_STATUS_NOT_FOUND) {\n createAlert({ message: relatedIssuesRemoveErrorMap[this.issuableType] });\n }\n });\n } else {\n createAlert({ message: pathIndeterminateErrorMap[this.issuableType] });\n }\n },\n onToggleAddRelatedIssuesForm() {\n this.isFormVisible = !this.isFormVisible;\n },\n onPendingIssueRemoveRequest(indexToRemove) {\n this.store.removePendingRelatedIssue(indexToRemove);\n },\n onPendingFormSubmit(event) {\n this.processAllReferences(event.pendingReferences);\n\n if (this.state.pendingReferences.length > 0) {\n this.hasError = false;\n this.isSubmitting = true;\n this.service\n .addRelatedIssues(this.state.pendingReferences, event.linkedIssueType)\n .then(({ data }) => {\n // We could potentially lose some pending issues in the interim here\n this.store.setPendingReferences([]);\n this.store.setRelatedIssues(data.issuables);\n\n // Close the form on submission\n this.isFormVisible = false;\n })\n .catch(({ response }) => {\n this.hasError = true;\n this.errorMessage = addRelatedIssueErrorMap[this.issuableType];\n if (response && response.data && response.data.message) {\n this.errorMessage = response.data.message;\n }\n this.isFormVisible = true;\n })\n .finally(() => {\n this.isSubmitting = false;\n });\n }\n },\n onPendingFormCancel() {\n this.hasError = false;\n this.isFormVisible = false;\n this.store.setPendingReferences([]);\n this.inputValue = '';\n },\n fetchRelatedIssues() {\n this.isFetching = true;\n this.service\n .fetchRelatedIssues()\n .then(({ data }) => {\n this.store.setRelatedIssues(data);\n })\n .catch(() => {\n this.store.setRelatedIssues([]);\n createAlert({ message: __('An error occurred while fetching issues.') });\n })\n .finally(() => {\n this.isFetching = false;\n });\n },\n saveIssueOrder({ issueId, beforeId, afterId, oldIndex, newIndex }) {\n const issueToReorder = this.findRelatedIssueById(issueId);\n\n if (issueToReorder) {\n RelatedIssuesService.saveOrder({\n endpoint: issueToReorder.relationPath,\n move_before_id: beforeId,\n move_after_id: afterId,\n })\n .then(({ data }) => {\n if (!data.message) {\n this.store.updateIssueOrder(oldIndex, newIndex);\n }\n })\n .catch(() => {\n createAlert({ message: __('An error occurred while reordering issues.') });\n });\n }\n },\n onInput({ untouchedRawReferences, touchedReference }) {\n this.store.addPendingReferences(untouchedRawReferences);\n\n this.formatInput(touchedReference);\n },\n formatInput(touchedReference = '') {\n const startsWithNumber = String(touchedReference).match(/^[0-9]/) !== null;\n\n if (startsWithNumber) {\n const { pathIdSeparator } = this;\n this.inputValue = `${pathIdSeparator}${touchedReference}`;\n } else {\n this.inputValue = `${touchedReference}`;\n }\n },\n onBlur(newValue) {\n this.processAllReferences(newValue);\n },\n processAllReferences(value = '') {\n const rawReferences = value.split(/\\s+/).filter((reference) => reference.trim().length > 0);\n\n this.store.addPendingReferences(rawReferences);\n this.inputValue = '';\n },\n },\n};\n</script>\n\n<template>\n <related-issues-block\n ref=\"relatedIssuesBlock\"\n :class=\"cssClass\"\n :help-path=\"helpPath\"\n :is-fetching=\"isFetching\"\n :is-submitting=\"isSubmitting\"\n :related-issues=\"state.relatedIssues\"\n :can-admin=\"canAdmin\"\n :can-reorder=\"canReorder\"\n :pending-references=\"state.pendingReferences\"\n :is-form-visible=\"isFormVisible\"\n :input-value=\"inputValue\"\n :auto-complete-sources=\"autoCompleteSources\"\n :auto-complete-epics=\"autoCompleteEpics\"\n :auto-complete-issues=\"autoCompleteIssues\"\n :issuable-type=\"issuableType\"\n :path-id-separator=\"pathIdSeparator\"\n :show-categorized-issues=\"showCategorizedIssues\"\n :has-error=\"hasError\"\n :item-add-failure-message=\"errorMessage\"\n @saveReorder=\"saveIssueOrder\"\n @toggleAddRelatedIssuesForm=\"onToggleAddRelatedIssuesForm\"\n @addIssuableFormInput=\"onInput\"\n @addIssuableFormBlur=\"onBlur\"\n @addIssuableFormSubmit=\"onPendingFormSubmit\"\n @addIssuableFormCancel=\"onPendingFormCancel\"\n @pendingIssuableRemoveRequest=\"onPendingIssueRemoveRequest\"\n @relatedIssueRemoveRequest=\"onRelatedIssueRemoveRequest\"\n @showForm=\"isFormVisible = true\"\n @hideForm=\"isFormVisible = false\"\n />\n</template>\n","import { render, staticRenderFns } from \"./related_issues_root.vue?vue&type=template&id=21d65f32\"\nimport script from \"./related_issues_root.vue?vue&type=script&lang=js\"\nexport * from \"./related_issues_root.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { produce } from 'immer';\nimport VueApollo from 'vue-apollo';\nimport { map, isEqual } from 'lodash';\nimport { apolloProvider } from '~/graphql_shared/issuable_client';\nimport { issuesListClient } from '~/issues/list';\nimport { TYPENAME_USER } from '~/graphql_shared/constants';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { getBaseURL } from '~/lib/utils/url_utility';\nimport { convertEachWordToTitleCase } from '~/lib/utils/text_utility';\nimport { getDraft, clearDraft } from '~/lib/utils/autosave';\nimport {\n findHierarchyWidgets,\n findHierarchyWidgetChildren,\n isNotesWidget,\n newWorkItemFullPath,\n newWorkItemId,\n getNewWorkItemAutoSaveKey,\n} from '../utils';\nimport {\n WIDGET_TYPE_ASSIGNEES,\n WIDGET_TYPE_COLOR,\n WIDGET_TYPE_HIERARCHY,\n WIDGET_TYPE_PARTICIPANTS,\n WIDGET_TYPE_PROGRESS,\n WIDGET_TYPE_START_AND_DUE_DATE,\n WIDGET_TYPE_TIME_TRACKING,\n WIDGET_TYPE_LABELS,\n WIDGET_TYPE_WEIGHT,\n WIDGET_TYPE_MILESTONE,\n WIDGET_TYPE_ITERATION,\n WIDGET_TYPE_HEALTH_STATUS,\n WIDGET_TYPE_DESCRIPTION,\n WIDGET_TYPE_CRM_CONTACTS,\n NEW_WORK_ITEM_IID,\n WIDGET_TYPE_CURRENT_USER_TODOS,\n WIDGET_TYPE_LINKED_ITEMS,\n STATE_CLOSED,\n} from '../constants';\nimport workItemByIidQuery from './work_item_by_iid.query.graphql';\nimport workItemByIdQuery from './work_item_by_id.query.graphql';\nimport getWorkItemTreeQuery from './work_item_tree.query.graphql';\n\nconst getNotesWidgetFromSourceData = (draftData) =>\n draftData?.workspace?.workItem?.widgets.find(isNotesWidget);\n\nconst updateNotesWidgetDataInDraftData = (draftData, notesWidget) => {\n const noteWidgetIndex = draftData.workspace.workItem.widgets.findIndex(isNotesWidget);\n draftData.workspace.workItem.widgets[noteWidgetIndex] = notesWidget;\n};\n\n/**\n * Work Item note create subscription update query callback\n *\n * @param currentNotes\n * @param subscriptionData\n */\nexport const updateCacheAfterCreatingNote = (currentNotes, subscriptionData) => {\n if (!subscriptionData.data?.workItemNoteCreated) {\n return currentNotes;\n }\n const newNote = subscriptionData.data.workItemNoteCreated;\n\n return produce(currentNotes, (draftData) => {\n const notesWidget = getNotesWidgetFromSourceData(draftData);\n\n if (!notesWidget.discussions) {\n return;\n }\n\n const discussion = notesWidget.discussions.nodes.find((d) => d.id === newNote.discussion.id);\n\n // handle the case where discussion already exists - we don't need to do anything, update will happen automatically\n if (discussion) {\n return;\n }\n\n notesWidget.discussions.nodes.push(newNote.discussion);\n updateNotesWidgetDataInDraftData(draftData, notesWidget);\n });\n};\n\n/**\n * Work Item note delete subscription update query callback\n *\n * @param currentNotes\n * @param subscriptionData\n */\nexport const updateCacheAfterDeletingNote = (currentNotes, subscriptionData) => {\n if (!subscriptionData.data?.workItemNoteDeleted) {\n return currentNotes;\n }\n const deletedNote = subscriptionData.data.workItemNoteDeleted;\n const { id, discussionId, lastDiscussionNote } = deletedNote;\n\n return produce(currentNotes, (draftData) => {\n const notesWidget = getNotesWidgetFromSourceData(draftData);\n\n if (!notesWidget.discussions) {\n return;\n }\n\n const discussionIndex = notesWidget.discussions.nodes.findIndex(\n (discussion) => discussion.id === discussionId,\n );\n\n if (discussionIndex === -1) {\n return;\n }\n\n if (lastDiscussionNote) {\n notesWidget.discussions.nodes.splice(discussionIndex, 1);\n } else {\n const deletedThreadDiscussion = notesWidget.discussions.nodes[discussionIndex];\n const deletedThreadIndex = deletedThreadDiscussion.notes.nodes.findIndex(\n (note) => note.id === id,\n );\n deletedThreadDiscussion.notes.nodes.splice(deletedThreadIndex, 1);\n notesWidget.discussions.nodes[discussionIndex] = deletedThreadDiscussion;\n }\n\n updateNotesWidgetDataInDraftData(draftData, notesWidget);\n });\n};\n\nfunction updateNoteAwardEmojiCache(currentNotes, note, callback) {\n if (!note.awardEmoji) {\n return currentNotes;\n }\n const { awardEmoji } = note;\n\n return produce(currentNotes, (draftData) => {\n const notesWidget = getNotesWidgetFromSourceData(draftData);\n\n if (!notesWidget.discussions) {\n return;\n }\n\n notesWidget.discussions.nodes.forEach((discussion) => {\n discussion.notes.nodes.forEach((n) => {\n if (n.id === note.id) {\n callback(n, awardEmoji);\n }\n });\n });\n\n updateNotesWidgetDataInDraftData(draftData, notesWidget);\n });\n}\n\nexport const updateCacheAfterAddingAwardEmojiToNote = (currentNotes, note) => {\n return updateNoteAwardEmojiCache(currentNotes, note, (n, awardEmoji) => {\n n.awardEmoji.nodes.push(awardEmoji);\n });\n};\n\nexport const updateCacheAfterRemovingAwardEmojiFromNote = (currentNotes, note) => {\n return updateNoteAwardEmojiCache(currentNotes, note, (n, awardEmoji) => {\n // eslint-disable-next-line no-param-reassign\n n.awardEmoji.nodes = n.awardEmoji.nodes.filter((emoji) => {\n return emoji.name !== awardEmoji.name || emoji.user.id !== awardEmoji.user.id;\n });\n });\n};\n\nexport const addHierarchyChild = ({ cache, id, workItem, atIndex = null }) => {\n const queryArgs = {\n query: getWorkItemTreeQuery,\n variables: { id },\n };\n const sourceData = cache.readQuery(queryArgs);\n\n if (!sourceData) {\n return;\n }\n\n cache.writeQuery({\n ...queryArgs,\n data: produce(sourceData, (draftState) => {\n const widget = findHierarchyWidgets(draftState?.workItem.widgets);\n widget.hasChildren = true;\n const children = findHierarchyWidgetChildren(draftState?.workItem) || [];\n const existingChild = children.find((child) => child.id === workItem?.id);\n if (!existingChild) {\n if (atIndex !== null) {\n children.splice(atIndex, 0, workItem);\n } else {\n children.unshift(workItem);\n }\n widget.hasChildren = children?.length > 0;\n widget.count = children?.length || 0;\n }\n }),\n });\n};\n\nexport const addHierarchyChildren = ({ cache, id, workItem, childrenIds }) => {\n const queryArgs = {\n query: getWorkItemTreeQuery,\n variables: {\n id,\n },\n };\n const sourceData = cache.readQuery(queryArgs);\n\n if (!sourceData) {\n return;\n }\n\n cache.writeQuery({\n ...queryArgs,\n data: produce(sourceData, (draftState) => {\n const newChildren = findHierarchyWidgetChildren(workItem);\n\n const existingChildren = findHierarchyWidgetChildren(draftState?.workItem);\n\n const childrenToAdd = newChildren.filter((item) => {\n return childrenIds.includes(item.id);\n });\n\n for (const item of childrenToAdd) {\n if (item.state === STATE_CLOSED) {\n existingChildren.push(item);\n } else {\n existingChildren.unshift(item);\n }\n }\n }),\n });\n};\n\nexport const removeHierarchyChild = ({ cache, id, workItem }) => {\n const queryArgs = {\n query: getWorkItemTreeQuery,\n variables: { id },\n };\n const sourceData = cache.readQuery(queryArgs);\n\n if (!sourceData) {\n return;\n }\n\n cache.writeQuery({\n ...queryArgs,\n data: produce(sourceData, (draftState) => {\n const widget = findHierarchyWidgets(draftState?.workItem.widgets);\n const children = findHierarchyWidgetChildren(draftState?.workItem);\n const index = children.findIndex((child) => child.id === workItem.id);\n if (index >= 0) children.splice(index, 1);\n widget.hasChildren = children?.length > 0;\n widget.count = children?.length || 0;\n }),\n });\n};\n\nexport const updateParent = ({ cache, fullPath, iid, workItem }) => {\n const queryArgs = {\n query: workItemByIidQuery,\n variables: { fullPath, iid },\n };\n const sourceData = cache.readQuery(queryArgs);\n\n if (!sourceData) {\n return;\n }\n\n cache.writeQuery({\n ...queryArgs,\n data: produce(sourceData, (draftState) => {\n const children = findHierarchyWidgetChildren(draftState.workspace?.workItem);\n const index = children.findIndex((child) => child.id === workItem.id);\n if (index >= 0) children.splice(index, 1);\n }),\n });\n};\n\nexport const updateWorkItemCurrentTodosWidget = ({ cache, fullPath, iid, todos }) => {\n const query = {\n query: workItemByIidQuery,\n variables: { fullPath, iid },\n };\n\n const sourceData = cache.readQuery(query);\n\n if (!sourceData) {\n return;\n }\n\n const newData = produce(sourceData, (draftState) => {\n const { widgets } = draftState.workspace.workItem;\n const widgetCurrentUserTodos = widgets.find(\n (widget) => widget.type === WIDGET_TYPE_CURRENT_USER_TODOS,\n );\n\n widgetCurrentUserTodos.currentUserTodos.nodes = todos;\n });\n\n cache.writeQuery({ ...query, data: newData });\n};\n\nexport const setNewWorkItemCache = async (\n fullPath,\n widgetDefinitions,\n workItemType,\n workItemTypeId,\n workItemTypeIconName,\n // eslint-disable-next-line max-params\n) => {\n const workItemAttributesWrapperOrder = [\n WIDGET_TYPE_ASSIGNEES,\n WIDGET_TYPE_LABELS,\n WIDGET_TYPE_WEIGHT,\n WIDGET_TYPE_MILESTONE,\n WIDGET_TYPE_ITERATION,\n WIDGET_TYPE_START_AND_DUE_DATE,\n WIDGET_TYPE_PROGRESS,\n WIDGET_TYPE_HEALTH_STATUS,\n WIDGET_TYPE_LINKED_ITEMS,\n WIDGET_TYPE_COLOR,\n WIDGET_TYPE_HIERARCHY,\n WIDGET_TYPE_TIME_TRACKING,\n WIDGET_TYPE_PARTICIPANTS,\n WIDGET_TYPE_CRM_CONTACTS,\n ];\n\n if (!widgetDefinitions) {\n return;\n }\n\n const workItemTitleCase = convertEachWordToTitleCase(workItemType.split('_').join(' '));\n const availableWidgets = widgetDefinitions?.flatMap((i) => i.type) || [];\n const currentUserId = convertToGraphQLId(TYPENAME_USER, gon?.current_user_id);\n const baseURL = getBaseURL();\n\n const widgets = [];\n\n widgets.push({\n type: WIDGET_TYPE_DESCRIPTION,\n description: null,\n descriptionHtml: '',\n lastEditedAt: null,\n lastEditedBy: null,\n taskCompletionStatus: null,\n __typename: 'WorkItemWidgetDescription',\n });\n\n workItemAttributesWrapperOrder.forEach((widgetName) => {\n if (availableWidgets.includes(widgetName)) {\n if (widgetName === WIDGET_TYPE_ASSIGNEES) {\n const assigneesWidgetData = widgetDefinitions.find(\n (definition) => definition.type === WIDGET_TYPE_ASSIGNEES,\n );\n widgets.push({\n type: 'ASSIGNEES',\n allowsMultipleAssignees: assigneesWidgetData.allowsMultipleAssignees || false,\n canInviteMembers: assigneesWidgetData.canInviteMembers || false,\n assignees: {\n nodes: [],\n __typename: 'UserCoreConnection',\n },\n __typename: 'WorkItemWidgetAssignees',\n });\n }\n\n if (widgetName === WIDGET_TYPE_LINKED_ITEMS) {\n widgets.push({\n type: WIDGET_TYPE_LINKED_ITEMS,\n linkedItems: {\n nodes: [],\n },\n __typename: 'WorkItemWidgetLinkedItems',\n });\n }\n\n if (widgetName === WIDGET_TYPE_CRM_CONTACTS) {\n widgets.push({\n type: 'CRM_CONTACTS',\n contacts: {\n nodes: [],\n __typename: 'CustomerRelationsContactConnection',\n },\n __typename: 'WorkItemWidgetCrmContacts',\n });\n }\n\n if (widgetName === WIDGET_TYPE_LABELS) {\n const labelsWidgetData = widgetDefinitions.find(\n (definition) => definition.type === WIDGET_TYPE_LABELS,\n );\n widgets.push({\n type: 'LABELS',\n allowsScopedLabels: labelsWidgetData.allowsScopedLabels,\n labels: {\n nodes: [],\n __typename: 'LabelConnection',\n },\n __typename: 'WorkItemWidgetLabels',\n });\n }\n\n if (widgetName === WIDGET_TYPE_WEIGHT) {\n const weightWidgetData = widgetDefinitions.find(\n (definition) => definition.type === WIDGET_TYPE_WEIGHT,\n );\n\n widgets.push({\n type: 'WEIGHT',\n weight: null,\n rolledUpWeight: 0,\n rolledUpCompletedWeight: 0,\n widgetDefinition: {\n editable: weightWidgetData?.editable,\n rollUp: weightWidgetData?.rollUp,\n },\n __typename: 'WorkItemWidgetWeight',\n });\n }\n\n if (widgetName === WIDGET_TYPE_MILESTONE) {\n widgets.push({\n type: 'MILESTONE',\n milestone: null,\n __typename: 'WorkItemWidgetMilestone',\n });\n }\n\n if (widgetName === WIDGET_TYPE_ITERATION) {\n widgets.push({\n iteration: null,\n type: 'ITERATION',\n __typename: 'WorkItemWidgetIteration',\n });\n }\n\n if (widgetName === WIDGET_TYPE_START_AND_DUE_DATE) {\n widgets.push({\n type: 'START_AND_DUE_DATE',\n dueDate: null,\n startDate: null,\n isFixed: false,\n rollUp: false,\n __typename: 'WorkItemWidgetStartAndDueDate',\n });\n }\n\n if (widgetName === WIDGET_TYPE_PROGRESS) {\n widgets.push({\n type: 'PROGRESS',\n progress: null,\n updatedAt: null,\n __typename: 'WorkItemWidgetProgress',\n });\n }\n\n if (widgetName === WIDGET_TYPE_HEALTH_STATUS) {\n widgets.push({\n type: 'HEALTH_STATUS',\n healthStatus: null,\n rolledUpHealthStatus: [],\n __typename: 'WorkItemWidgetHealthStatus',\n });\n }\n\n if (widgetName === WIDGET_TYPE_COLOR) {\n widgets.push({\n type: 'COLOR',\n color: '#1068bf',\n textColor: '#FFFFFF',\n __typename: 'WorkItemWidgetColor',\n });\n }\n\n if (widgetName === WIDGET_TYPE_HIERARCHY) {\n widgets.push({\n type: 'HIERARCHY',\n hasChildren: false,\n hasParent: false,\n parent: null,\n depthLimitReachedByType: [],\n rolledUpCountsByType: [],\n children: {\n nodes: [],\n __typename: 'WorkItemConnection',\n },\n __typename: 'WorkItemWidgetHierarchy',\n });\n }\n\n if (widgetName === WIDGET_TYPE_TIME_TRACKING) {\n widgets.push({\n type: 'TIME_TRACKING',\n timeEstimate: 0,\n timelogs: {\n nodes: [],\n __typename: 'WorkItemTimelogConnection',\n },\n totalTimeSpent: 0,\n __typename: 'WorkItemWidgetTimeTracking',\n });\n }\n }\n });\n\n const issuesListApolloProvider = new VueApollo({\n defaultClient: await issuesListClient(),\n });\n\n const cacheProvider = document.querySelector('.js-issues-list-app')\n ? issuesListApolloProvider\n : apolloProvider;\n\n const newWorkItemPath = newWorkItemFullPath(fullPath, workItemType);\n\n const autosaveKey = getNewWorkItemAutoSaveKey(fullPath, workItemType);\n\n const getStorageDraftString = getDraft(autosaveKey);\n\n const draftData = JSON.parse(getDraft(autosaveKey));\n\n // get the widgets stored in draft data\n const draftDataWidgetTypes = map(draftData?.workspace?.workItem?.widgets, 'type') || [];\n const freshWidgetTypes = map(widgets, 'type') || [];\n\n // this is to fix errors when we are introducing a new widget and the cache always updates from the old widgets\n // Like if we we introduce a new widget , the user might always see the cached data until hits cancel\n const draftWidgetsAreSameAsCacheDigits = isEqual(\n draftDataWidgetTypes.sort(),\n freshWidgetTypes.sort(),\n );\n\n const isValidDraftData =\n draftData?.workspace?.workItem &&\n getStorageDraftString &&\n draftData?.workspace?.workItem &&\n draftWidgetsAreSameAsCacheDigits;\n\n /** check in case of someone plays with the localstorage, we need to be sure */\n if (!isValidDraftData) {\n clearDraft(autosaveKey);\n }\n\n cacheProvider.clients.defaultClient.cache.writeQuery({\n query: workItemByIidQuery,\n variables: {\n fullPath: newWorkItemPath,\n iid: NEW_WORK_ITEM_IID,\n },\n data: isValidDraftData\n ? { ...draftData }\n : {\n workspace: {\n id: newWorkItemPath,\n workItem: {\n id: newWorkItemId(workItemType),\n iid: NEW_WORK_ITEM_IID,\n archived: false,\n title: '',\n state: 'OPEN',\n description: null,\n confidential: false,\n createdAt: null,\n updatedAt: null,\n closedAt: null,\n webUrl: `${baseURL}/groups/gitlab-org/-/work_items/new`,\n reference: '',\n createNoteEmail: null,\n project: null,\n namespace: {\n id: newWorkItemPath,\n fullPath,\n name: newWorkItemPath,\n __typename: 'Namespace',\n },\n author: {\n id: currentUserId,\n avatarUrl: gon?.current_user_avatar_url,\n username: gon?.current_username,\n name: gon?.current_user_fullname,\n webUrl: `${baseURL}/${gon?.current_username}`,\n webPath: `/${gon?.current_username}`,\n __typename: 'UserCore',\n },\n workItemType: {\n id: workItemTypeId || 'mock-work-item-type-id',\n name: workItemTitleCase,\n iconName: workItemTypeIconName,\n __typename: 'WorkItemType',\n },\n userPermissions: {\n deleteWorkItem: true,\n updateWorkItem: true,\n adminParentLink: true,\n setWorkItemMetadata: true,\n createNote: true,\n adminWorkItemLink: true,\n markNoteAsInternal: true,\n __typename: 'WorkItemPermissions',\n },\n widgets,\n __typename: 'WorkItem',\n },\n __typename: 'Namespace',\n },\n },\n });\n};\n\nexport const optimisticUserPermissions = {\n deleteWorkItem: false,\n updateWorkItem: false,\n adminParentLink: false,\n setWorkItemMetadata: false,\n createNote: false,\n adminWorkItemLink: false,\n markNoteAsInternal: false,\n __typename: 'WorkItemPermissions',\n};\n\nexport const updateCountsForParent = ({ cache, parentId, workItemType, isClosing }) => {\n if (!parentId) {\n return null;\n }\n\n const parent = cache.readQuery({\n query: workItemByIdQuery,\n variables: {\n id: parentId,\n },\n });\n\n if (!parent) {\n return null;\n }\n\n const updatedParent = produce(parent, (draft) => {\n const hierarchyWidget = findHierarchyWidgets(draft.workItem.widgets);\n\n const counts = hierarchyWidget.rolledUpCountsByType.find(\n (i) => i.workItemType.name === workItemType,\n );\n\n if (isClosing) {\n counts.countsByState.closed += 1;\n counts.countsByState.opened -= 1;\n } else {\n counts.countsByState.closed -= 1;\n counts.countsByState.opened += 1;\n }\n });\n\n cache.writeQuery({\n query: workItemByIdQuery,\n variables: {\n id: parentId,\n },\n data: updatedParent,\n });\n\n return updatedParent;\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-form',{attrs:{\"data-testid\":\"add-item-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.addOrCreateMethod.apply(null, arguments)}}},[(_vm.isCreateForm)?[_c('div',{staticClass:\"gl-flex gl-gap-x-3\"},[_c('gl-form-group',{staticClass:\"gl-w-full\",attrs:{\"label\":_vm.$options.i18n.titleInputLabel,\"description\":_vm.$options.i18n.titleInputValidationMessage,\"invalid-feedback\":_vm.error,\"state\":_vm.isInputValid,\"data-testid\":\"work-items-create-form-group\"}},[_c('gl-form-input',{ref:\"wiTitleInput\",staticClass:\"gl-mb-3\",attrs:{\"placeholder\":_vm.$options.i18n.titleInputPlaceholder,\"state\":_vm.isInputValid,\"maxlength\":\"255\",\"autofocus\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_vm._v(\" \"),(!_vm.workItemChildIsEpic)?_c('gl-form-group',{staticClass:\"gl-w-full\",attrs:{\"label\":_vm.$options.i18n.projectInputLabel,\"description\":_vm.$options.i18n.projectValidationMessage}},[_c('work-item-projects-listbox',{staticClass:\"gl-w-full\",attrs:{\"full-path\":_vm.fullPath,\"current-project-name\":_vm.fullName,\"is-group\":_vm.isGroup},model:{value:(_vm.selectedProjectFullPath),callback:function ($$v) {_vm.selectedProjectFullPath=$$v},expression:\"selectedProjectFullPath\"}})],1):_c('gl-form-group',{staticClass:\"gl-w-full\",attrs:{\"label\":_vm.$options.i18n.groupInputLabel,\"description\":_vm.$options.i18n.groupValidationMessage}},[_c('work-item-groups-listbox',{staticClass:\"gl-w-full\",attrs:{\"full-path\":_vm.fullPath,\"current-group-name\":_vm.fullName,\"is-group\":_vm.isGroup},on:{\"error\":function($event){return _vm.$emit('error', $event)}},model:{value:(_vm.selectedGroupFullPath),callback:function ($$v) {_vm.selectedGroupFullPath=$$v},expression:\"selectedGroupFullPath\"}})],1)],1),_vm._v(\" \"),_c('gl-form-checkbox',{ref:\"confidentialityCheckbox\",staticClass:\"gl-mb-5 md:!gl-mb-3\",attrs:{\"name\":\"isConfidential\",\"disabled\":_vm.parentConfidential},model:{value:(_vm.confidential),callback:function ($$v) {_vm.confidential=$$v},expression:\"confidential\"}},[_vm._v(_vm._s(_vm.confidentialityCheckboxLabel))]),_vm._v(\" \"),(_vm.showConfidentialityTooltip)?_c('gl-tooltip',{attrs:{\"target\":_vm.getConfidentialityTooltipTarget,\"triggers\":\"hover\"}},[_vm._v(_vm._s(_vm.confidentialityCheckboxTooltip))]):_vm._e()]:_c('div',{staticClass:\"gl-mb-4\"},[_c('work-item-token-input',{attrs:{\"is-create-form\":_vm.isCreateForm,\"is-group\":_vm.isGroup,\"parent-work-item-id\":_vm.issuableGid,\"children-type\":_vm.childrenType,\"children-ids\":_vm.childrenIds,\"are-work-items-to-add-valid\":_vm.areWorkItemsToAddValid,\"full-path\":_vm.fullPath},model:{value:(_vm.workItemsToAdd),callback:function ($$v) {_vm.workItemsToAdd=$$v},expression:\"workItemsToAdd\"}}),_vm._v(\" \"),(_vm.showWorkItemsToAddInvalidMessage)?_c('div',{staticClass:\"gl-text-danger\",attrs:{\"data-testid\":\"work-items-invalid\"}},[_vm._v(\"\\n \"+_vm._s(_vm.workItemsToAddInvalidMessage)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"gl-mt-3 gl-text-danger\",attrs:{\"data-testid\":\"work-items-error\"}},[_vm._v(\"\\n \"+_vm._s(_vm.error)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.areWorkItemsToAddWithinLimit)?_c('div',{staticClass:\"gl-mb-2 gl-text-red-500\",attrs:{\"data-testid\":\"work-items-limit-error\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.maxItemsErrorMessage)+\"\\n \")]):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-gap-3\"},[_c('gl-button',{attrs:{\"category\":\"primary\",\"variant\":\"confirm\",\"size\":\"small\",\"type\":\"submit\",\"disabled\":!_vm.canSubmitForm,\"loading\":_vm.submitInProgress,\"data-testid\":\"add-child-button\"}},[_vm._v(\"\\n \"+_vm._s(_vm.addOrCreateButtonLabel)+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{attrs:{\"category\":\"secondary\",\"size\":\"small\"},on:{\"click\":_vm.closeForm}},[_vm._v(\"\\n \"+_vm._s(_vm.s__('WorkItem|Cancel'))+\"\\n \")])],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_groups_listbox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_groups_listbox.vue?vue&type=script&lang=js\"","<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\nimport { debounce } from 'lodash';\nimport { __, s__ } from '~/locale';\nimport ProjectAvatar from '~/vue_shared/components/project_avatar.vue';\nimport namespaceGroupsForLinksWidgetQuery from '../../graphql/namespace_groups_for_links_widget.query.graphql';\nimport { SEARCH_DEBOUNCE } from '../../constants';\n\nexport default {\n components: {\n GlCollapsibleListbox,\n ProjectAvatar,\n },\n model: {\n prop: 'selectedGroupFullPath',\n event: 'selectGroup',\n },\n props: {\n fullPath: {\n required: true,\n type: String,\n },\n currentGroupName: {\n required: false,\n type: String,\n default: '',\n },\n isGroup: {\n required: false,\n type: Boolean,\n default: false,\n },\n selectedGroupFullPath: {\n required: false,\n type: String,\n default: null,\n },\n },\n data() {\n return {\n group: {},\n searchKey: '',\n };\n },\n apollo: {\n group: {\n query() {\n return namespaceGroupsForLinksWidgetQuery;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n groupSearch: this.searchKey,\n };\n },\n error() {\n this.$emit('error', __('There was a problem fetching groups.'));\n },\n },\n },\n computed: {\n filteredGroups() {\n if (!this.group.id) {\n return [];\n }\n\n const filteredGroups = [];\n const searchMatchesGroup =\n this.searchKey && this.group.name.toLowerCase().includes(this.searchKey.toLowerCase());\n\n // group is not filtered by graphql query so we filter it here\n if (!this.searchKey || searchMatchesGroup) {\n const { id, name, avatarUrl, path, fullPath } = this.group;\n filteredGroups.push({ id, name, avatarUrl, path, fullPath });\n }\n\n if (this.group.descendantGroups) {\n filteredGroups.push(...this.group.descendantGroups.nodes);\n }\n\n return filteredGroups;\n },\n groupsLoading() {\n return this.$apollo.queries.group.loading;\n },\n dropdownToggleText() {\n if (this.selectedGroup) {\n return this.selectedGroup.name || this.selectedGroup.path;\n }\n return this.selectedGroupFullPath && this.currentGroupName\n ? this.currentGroupName\n : s__('WorkItem|Select a group');\n },\n listItems() {\n return this.filteredGroups.map((group) => {\n return {\n id: group.id,\n text: group.name,\n value: group.fullPath,\n namespace: group.path,\n avatarUrl: group.avatarUrl,\n };\n });\n },\n selectedGroup() {\n return this.filteredGroups.find((g) => g.fullPath === this.selectedGroupFullPath) || null;\n },\n },\n created() {\n this.debouncedSearch = debounce(this.handleSearch, SEARCH_DEBOUNCE);\n },\n beforeDestroy() {\n this.debouncedSearch?.cancel();\n },\n methods: {\n handleSearch(keyword) {\n this.searchKey = keyword;\n },\n handleSelect(groupFullPath) {\n this.$emit('selectGroup', groupFullPath);\n },\n async handleDropdownShow() {\n this.searchKey = '';\n await this.$nextTick();\n this.$refs.searchInputField?.focusInput?.();\n },\n },\n};\n</script>\n\n<template>\n <gl-collapsible-listbox\n block\n searchable\n is-check-centered\n :items=\"listItems\"\n :selected=\"selectedGroupFullPath\"\n :toggle-text=\"dropdownToggleText\"\n :searching=\"groupsLoading\"\n fluid-width\n class=\"gl-relative\"\n @search=\"debouncedSearch\"\n @select=\"handleSelect\"\n @shown=\"handleDropdownShow\"\n >\n <template #list-item=\"{ item }\">\n <div class=\"gl-flex gl-w-full gl-items-center\">\n <project-avatar\n class=\"gl-mr-3\"\n :project-id=\"item.id\"\n :project-avatar-url=\"item.avatarUrl\"\n :project-name=\"item.text\"\n aria-hidden=\"true\"\n />\n <span>\n <span class=\"gl-mr-2 gl-block\"> {{ item.text }} </span>\n <span class=\"gl-block gl-text-subtle\"> {{ item.namespace }} </span>\n </span>\n </div>\n </template>\n </gl-collapsible-listbox>\n</template>\n","import { render, staticRenderFns } from \"./work_item_groups_listbox.vue?vue&type=template&id=56b66a2d\"\nimport script from \"./work_item_groups_listbox.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_groups_listbox.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-collapsible-listbox',{staticClass:\"gl-relative\",attrs:{\"block\":\"\",\"searchable\":\"\",\"is-check-centered\":\"\",\"items\":_vm.listItems,\"selected\":_vm.selectedGroupFullPath,\"toggle-text\":_vm.dropdownToggleText,\"searching\":_vm.groupsLoading,\"fluid-width\":\"\"},on:{\"search\":_vm.debouncedSearch,\"select\":_vm.handleSelect,\"shown\":_vm.handleDropdownShow},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('div',{staticClass:\"gl-flex gl-w-full gl-items-center\"},[_c('project-avatar',{staticClass:\"gl-mr-3\",attrs:{\"project-id\":item.id,\"project-avatar-url\":item.avatarUrl,\"project-name\":item.text,\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('span',[_c('span',{staticClass:\"gl-mr-2 gl-block\"},[_vm._v(\" \"+_vm._s(item.text)+\" \")]),_vm._v(\" \"),_c('span',{staticClass:\"gl-block gl-text-subtle\"},[_vm._v(\" \"+_vm._s(item.namespace)+\" \")])])],1)]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_links_form.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_links_form.vue?vue&type=script&lang=js\"","<script>\nimport { GlFormGroup, GlForm, GlButton, GlFormInput, GlFormCheckbox, GlTooltip } from '@gitlab/ui';\nimport { __, s__, sprintf } from '~/locale';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { fetchPolicies } from '~/lib/graphql';\nimport WorkItemTokenInput from '../shared/work_item_token_input.vue';\nimport { addHierarchyChild, addHierarchyChildren } from '../../graphql/cache_utils';\nimport namespaceWorkItemTypesQuery from '../../graphql/namespace_work_item_types.query.graphql';\nimport updateWorkItemHierarchyMutation from '../../graphql/update_work_item_hierarchy.mutation.graphql';\nimport createWorkItemMutation from '../../graphql/create_work_item.mutation.graphql';\nimport {\n FORM_TYPES,\n WORK_ITEMS_TYPE_MAP,\n WORK_ITEM_TYPE_ENUM_TASK,\n I18N_WORK_ITEM_CREATE_BUTTON_LABEL,\n I18N_WORK_ITEM_ADD_BUTTON_LABEL,\n I18N_WORK_ITEM_ADD_MULTIPLE_BUTTON_LABEL,\n I18N_WORK_ITEM_CONFIDENTIALITY_CHECKBOX_LABEL,\n I18N_WORK_ITEM_CONFIDENTIALITY_CHECKBOX_TOOLTIP,\n WORK_ITEM_TYPE_VALUE_EPIC,\n I18N_MAX_WORK_ITEMS_ERROR_MESSAGE,\n MAX_WORK_ITEMS,\n sprintfWorkItem,\n} from '../../constants';\nimport WorkItemProjectsListbox from './work_item_projects_listbox.vue';\nimport WorkItemGroupsListbox from './work_item_groups_listbox.vue';\n\nexport default {\n components: {\n GlForm,\n GlButton,\n GlFormGroup,\n GlFormInput,\n GlFormCheckbox,\n GlTooltip,\n WorkItemTokenInput,\n WorkItemProjectsListbox,\n WorkItemGroupsListbox,\n },\n mixins: [glFeatureFlagsMixin()],\n inject: ['hasIterationsFeature'],\n props: {\n fullPath: {\n type: String,\n required: true,\n },\n isGroup: {\n type: Boolean,\n required: false,\n default: false,\n },\n issuableGid: {\n type: String,\n required: false,\n default: null,\n },\n workItemIid: {\n type: String,\n required: false,\n default: null,\n },\n childrenIds: {\n type: Array,\n required: false,\n default: () => [],\n },\n parentConfidential: {\n type: Boolean,\n required: false,\n default: false,\n },\n parentIteration: {\n type: Object,\n required: false,\n default: () => {},\n },\n parentMilestone: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n formType: {\n type: String,\n required: true,\n },\n parentWorkItemType: {\n type: String,\n required: false,\n default: '',\n },\n childrenType: {\n type: String,\n required: false,\n default: WORK_ITEM_TYPE_ENUM_TASK,\n },\n fullName: {\n type: String,\n required: false,\n default: '',\n },\n },\n apollo: {\n workItemTypes: {\n query() {\n return namespaceWorkItemTypesQuery;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n };\n },\n update(data) {\n return data.workspace?.workItemTypes?.nodes;\n },\n },\n },\n data() {\n return {\n workItemTypes: [],\n workItemsToAdd: [],\n error: null,\n isInputValid: true,\n search: '',\n selectedProjectFullPath: this.isGroup ? null : this.fullPath,\n selectedGroupFullPath: null,\n childToCreateTitle: null,\n confidential: this.parentConfidential,\n submitInProgress: false,\n };\n },\n computed: {\n workItemChildIsEpic() {\n return this.childrenTypeValue === WORK_ITEM_TYPE_VALUE_EPIC;\n },\n workItemInput() {\n let workItemInput = {\n title: this.search?.title || this.search,\n workItemTypeId: this.childWorkItemType,\n hierarchyWidget: {\n parentId: this.issuableGid,\n },\n confidential: this.parentConfidential || this.confidential,\n };\n\n if (this.selectedProjectFullPath && !this.workItemChildIsEpic) {\n workItemInput = {\n ...workItemInput,\n namespacePath: this.selectedProjectFullPath,\n };\n } else if (this.selectedGroupFullPath && this.workItemChildIsEpic) {\n workItemInput = {\n ...workItemInput,\n namespacePath: this.selectedGroupFullPath,\n };\n } else {\n workItemInput = {\n ...workItemInput,\n projectPath: this.fullPath,\n };\n }\n\n if (this.parentMilestoneId) {\n workItemInput = {\n ...workItemInput,\n milestoneWidget: {\n milestoneId: this.parentMilestoneId,\n },\n };\n }\n\n if (this.associateIteration) {\n workItemInput = {\n ...workItemInput,\n iterationWidget: {\n iterationId: this.parentIterationId,\n },\n };\n }\n\n return workItemInput;\n },\n isCreateForm() {\n return this.formType === FORM_TYPES.create;\n },\n childrenTypeName() {\n return WORK_ITEMS_TYPE_MAP[this.childrenType]?.name;\n },\n childrenTypeValue() {\n return WORK_ITEMS_TYPE_MAP[this.childrenType]?.value;\n },\n addOrCreateButtonLabel() {\n if (this.isCreateForm) {\n return sprintfWorkItem(I18N_WORK_ITEM_CREATE_BUTTON_LABEL, this.childrenTypeName);\n }\n if (this.workItemsToAdd.length > 1) {\n return sprintfWorkItem(I18N_WORK_ITEM_ADD_MULTIPLE_BUTTON_LABEL, this.childrenTypeName);\n }\n return sprintfWorkItem(I18N_WORK_ITEM_ADD_BUTTON_LABEL, this.childrenTypeName);\n },\n confidentialityCheckboxLabel() {\n return sprintfWorkItem(I18N_WORK_ITEM_CONFIDENTIALITY_CHECKBOX_LABEL, this.childrenTypeName);\n },\n confidentialityCheckboxTooltip() {\n return sprintfWorkItem(\n I18N_WORK_ITEM_CONFIDENTIALITY_CHECKBOX_TOOLTIP,\n this.childrenTypeName,\n this.parentWorkItemType,\n );\n },\n showConfidentialityTooltip() {\n return this.isCreateForm && this.parentConfidential;\n },\n addOrCreateMethod() {\n return this.isCreateForm ? this.createChild : this.addChild;\n },\n childWorkItemType() {\n return this.workItemTypes.find((type) => type.name === this.childrenTypeValue)?.id;\n },\n parentIterationId() {\n return this.parentIteration?.id;\n },\n associateIteration() {\n return this.parentIterationId && this.hasIterationsFeature;\n },\n parentMilestoneId() {\n return this.parentMilestone?.id;\n },\n canCreateGroupLevelWorkItems() {\n return this.glFeatures.createGroupLevelWorkItems;\n },\n hasSuppliedNewItemName() {\n return this.search.length > 0;\n },\n hasSelectedProject() {\n return Boolean(this.selectedProjectFullPath);\n },\n canSubmitForm() {\n if (this.isCreateForm) {\n if (this.isGroup) {\n if (this.workItemChildIsEpic) {\n // must supply name, project will be ignored in request\n return this.hasSuppliedNewItemName;\n }\n if (!this.canCreateGroupLevelWorkItems) {\n // must supply name and project\n return this.hasSuppliedNewItemName && this.hasSelectedProject;\n }\n }\n return this.hasSuppliedNewItemName;\n }\n return this.workItemsToAdd.length > 0 && this.areWorkItemsToAddValid;\n },\n invalidWorkItemsToAdd() {\n return this.parentConfidential\n ? this.workItemsToAdd.filter((workItem) => !workItem.confidential)\n : [];\n },\n areWorkItemsToAddValid() {\n return this.invalidWorkItemsToAdd.length === 0 && this.areWorkItemsToAddWithinLimit;\n },\n showWorkItemsToAddInvalidMessage() {\n return !this.isCreateForm && this.invalidWorkItemsToAdd.length > 0;\n },\n workItemsToAddInvalidMessage() {\n return sprintf(\n s__(\n 'WorkItem|%{invalidWorkItemsList} cannot be added: Cannot assign a non-confidential %{childWorkItemType} to a confidential parent %{parentWorkItemType}. Make the selected %{childWorkItemType} confidential and try again.',\n ),\n {\n invalidWorkItemsList: this.invalidWorkItemsToAdd.map(({ title }) => title).join(', '),\n childWorkItemType: this.childrenTypeName,\n parentWorkItemType: this.parentWorkItemType,\n },\n );\n },\n areWorkItemsToAddWithinLimit() {\n return this.workItemsToAdd.length <= MAX_WORK_ITEMS;\n },\n },\n watch: {\n workItemsToAdd() {\n this.unsetError();\n },\n workItemChildIsEpic: {\n handler(isEpic) {\n this.selectedGroupFullPath = isEpic ? this.fullPath : null;\n },\n immediate: true,\n },\n },\n methods: {\n getConfidentialityTooltipTarget() {\n // We want tooltip to be anchored to `input` within checkbox component\n // but `$el.querySelector('input')` doesn't work. 🤷♂️\n return this.$refs.confidentialityCheckbox?.$el;\n },\n unsetError() {\n this.error = null;\n this.isInputValid = true;\n },\n markFormSubmitInProgress(value) {\n this.submitInProgress = value;\n this.$emit('update-in-progress', this.submitInProgress);\n },\n addChild() {\n this.markFormSubmitInProgress(true);\n this.$apollo\n .mutate({\n mutation: updateWorkItemHierarchyMutation,\n fetchPolicy: fetchPolicies.NO_CACHE,\n variables: {\n input: {\n id: this.issuableGid,\n hierarchyWidget: {\n childrenIds: this.workItemsToAdd.map((wi) => wi.id),\n },\n },\n },\n update: (\n cache,\n {\n data: {\n workItemUpdate: { workItem },\n },\n },\n ) =>\n addHierarchyChildren({\n cache,\n id: this.issuableGid,\n workItem,\n childrenIds: this.workItemsToAdd.map((wi) => wi.id),\n }),\n })\n .then(({ data }) => {\n // Marking submitInProgress cannot be in finally block\n // as the form may get close before the event is emitted\n this.markFormSubmitInProgress(false);\n if (data.workItemUpdate?.errors?.length) {\n [this.error] = data.workItemUpdate.errors;\n } else {\n this.unsetError();\n this.workItemsToAdd = [];\n this.closeForm();\n }\n })\n .catch(() => {\n this.error = this.$options.i18n.addChildErrorMessage;\n this.isInputValid = false;\n this.markFormSubmitInProgress(false);\n })\n .finally(() => {\n this.search = '';\n });\n },\n createChild() {\n if (!this.canSubmitForm) {\n return;\n }\n this.markFormSubmitInProgress(true);\n this.$apollo\n .mutate({\n mutation: createWorkItemMutation,\n variables: {\n input: this.workItemInput,\n },\n update: (cache, { data }) =>\n addHierarchyChild({\n cache,\n id: this.issuableGid,\n workItem: data.workItemCreate.workItem,\n }),\n })\n .then(({ data }) => {\n // Marking submitInProgress cannot be in finally block\n // as the form may get close before the event is emitted\n this.markFormSubmitInProgress(false);\n if (data.workItemCreate?.errors?.length) {\n [this.error] = data.workItemCreate.errors;\n } else {\n this.unsetError();\n this.$emit('addChild');\n this.closeForm();\n }\n })\n .catch(() => {\n this.error = this.$options.i18n.createChildErrorMessage;\n this.isInputValid = false;\n this.markFormSubmitInProgress(false);\n })\n .finally(() => {\n this.search = '';\n this.childToCreateTitle = null;\n });\n },\n closeForm() {\n this.$emit('cancel');\n },\n },\n i18n: {\n titleInputLabel: __('Title'),\n projectInputLabel: __('Project'),\n groupInputLabel: __('Group'),\n addChildErrorMessage: s__(\n 'WorkItem|Something went wrong when trying to add a child. Please try again.',\n ),\n createChildErrorMessage: s__(\n 'WorkItem|Something went wrong when trying to create a child. Please try again.',\n ),\n titleInputPlaceholder: s__('WorkItem|Add a title'),\n projectInputPlaceholder: s__('WorkItem|Select a project'),\n groupInputPlaceholder: s__('WorkItem|Select a group'),\n titleInputValidationMessage: __('Maximum of 255 characters'),\n maxItemsErrorMessage: I18N_MAX_WORK_ITEMS_ERROR_MESSAGE,\n },\n};\n</script>\n\n<template>\n <gl-form data-testid=\"add-item-form\" @submit.prevent=\"addOrCreateMethod\">\n <template v-if=\"isCreateForm\">\n <div class=\"gl-flex gl-gap-x-3\">\n <gl-form-group\n class=\"gl-w-full\"\n :label=\"$options.i18n.titleInputLabel\"\n :description=\"$options.i18n.titleInputValidationMessage\"\n :invalid-feedback=\"error\"\n :state=\"isInputValid\"\n data-testid=\"work-items-create-form-group\"\n >\n <gl-form-input\n ref=\"wiTitleInput\"\n v-model=\"search\"\n :placeholder=\"$options.i18n.titleInputPlaceholder\"\n :state=\"isInputValid\"\n maxlength=\"255\"\n class=\"gl-mb-3\"\n autofocus\n />\n </gl-form-group>\n <gl-form-group\n v-if=\"!workItemChildIsEpic\"\n class=\"gl-w-full\"\n :label=\"$options.i18n.projectInputLabel\"\n :description=\"$options.i18n.projectValidationMessage\"\n >\n <work-item-projects-listbox\n v-model=\"selectedProjectFullPath\"\n class=\"gl-w-full\"\n :full-path=\"fullPath\"\n :current-project-name=\"fullName\"\n :is-group=\"isGroup\"\n />\n </gl-form-group>\n <gl-form-group\n v-else\n class=\"gl-w-full\"\n :label=\"$options.i18n.groupInputLabel\"\n :description=\"$options.i18n.groupValidationMessage\"\n >\n <work-item-groups-listbox\n v-model=\"selectedGroupFullPath\"\n class=\"gl-w-full\"\n :full-path=\"fullPath\"\n :current-group-name=\"fullName\"\n :is-group=\"isGroup\"\n @error=\"$emit('error', $event)\"\n />\n </gl-form-group>\n </div>\n <gl-form-checkbox\n ref=\"confidentialityCheckbox\"\n v-model=\"confidential\"\n name=\"isConfidential\"\n class=\"gl-mb-5 md:!gl-mb-3\"\n :disabled=\"parentConfidential\"\n >{{ confidentialityCheckboxLabel }}</gl-form-checkbox\n >\n <gl-tooltip\n v-if=\"showConfidentialityTooltip\"\n :target=\"getConfidentialityTooltipTarget\"\n triggers=\"hover\"\n >{{ confidentialityCheckboxTooltip }}</gl-tooltip\n >\n </template>\n <div v-else class=\"gl-mb-4\">\n <work-item-token-input\n v-model=\"workItemsToAdd\"\n :is-create-form=\"isCreateForm\"\n :is-group=\"isGroup\"\n :parent-work-item-id=\"issuableGid\"\n :children-type=\"childrenType\"\n :children-ids=\"childrenIds\"\n :are-work-items-to-add-valid=\"areWorkItemsToAddValid\"\n :full-path=\"fullPath\"\n />\n <div\n v-if=\"showWorkItemsToAddInvalidMessage\"\n class=\"gl-text-danger\"\n data-testid=\"work-items-invalid\"\n >\n {{ workItemsToAddInvalidMessage }}\n </div>\n <div v-if=\"error\" class=\"gl-mt-3 gl-text-danger\" data-testid=\"work-items-error\">\n {{ error }}\n </div>\n <div\n v-if=\"!areWorkItemsToAddWithinLimit\"\n class=\"gl-mb-2 gl-text-red-500\"\n data-testid=\"work-items-limit-error\"\n >\n {{ $options.i18n.maxItemsErrorMessage }}\n </div>\n </div>\n <div class=\"gl-flex gl-gap-3\">\n <gl-button\n category=\"primary\"\n variant=\"confirm\"\n size=\"small\"\n type=\"submit\"\n :disabled=\"!canSubmitForm\"\n :loading=\"submitInProgress\"\n data-testid=\"add-child-button\"\n >\n {{ addOrCreateButtonLabel }}\n </gl-button>\n <gl-button category=\"secondary\" size=\"small\" @click=\"closeForm\">\n {{ s__('WorkItem|Cancel') }}\n </gl-button>\n </div>\n </gl-form>\n</template>\n","import { render, staticRenderFns } from \"./work_item_links_form.vue?vue&type=template&id=6a56e1e1\"\nimport script from \"./work_item_links_form.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_links_form.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import GlButton from '../../base/button/button';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlEmptyState',\n components: {\n GlButton\n },\n props: {\n /**\n * The title (heading) of the empty state.\n */\n title: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The illustration's URL.\n */\n svgPath: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The illustration's height used to prevent content reflow.\n */\n svgHeight: {\n type: Number,\n required: false,\n default: 144\n },\n /**\n * The desciption/body text of the empty state.\n */\n description: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The primary GlButton's href.\n */\n primaryButtonLink: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The primary GlButton's text. If falsey, the button is not shown.\n */\n primaryButtonText: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The secondary GlButton's href.\n */\n secondaryButtonLink: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The secondary GlButton's text. If falsey, the button is not shown.\n */\n secondaryButtonText: {\n type: String,\n required: false,\n default: null\n },\n /**\n * Determines whether to render the compact layout.\n */\n compact: {\n type: Boolean,\n required: false,\n default: false\n },\n invertInDarkMode: {\n type: Boolean,\n required: false,\n default: true\n },\n /**\n * CSS classes to add to the content container\n */\n contentClass: {\n type: [Array, String, Object],\n required: false,\n default: () => []\n }\n },\n computed: {\n height() {\n return this.shouldPreventImageReflow ? this.svgHeight : null;\n },\n shouldPreventImageReflow() {\n return Boolean(this.svgHeight);\n },\n shouldRenderPrimaryButton() {\n return Boolean(this.primaryButtonLink && this.primaryButtonText);\n },\n shouldRenderSecondaryButton() {\n return Boolean(this.secondaryButtonLink && this.secondaryButtonText);\n },\n contentClasses() {\n return [this.compact ? 'gl-grow gl-basis-0 gl-px-4' : 'gl-m-auto gl-p-5', this.contentClass];\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"gl-flex\",class:{\n 'gl-empty-state gl-flex-col gl-text-center': !_vm.compact,\n 'gl-flex-row': _vm.compact,\n }},[_c('div',{class:{ 'gl-hidden gl-px-4 sm:gl-block': _vm.compact, 'gl-max-w-full': !_vm.compact }},[(_vm.svgPath)?_c('img',{staticClass:\"gl-max-w-full\",class:{ 'gl-dark-invert-keep-hue': _vm.invertInDarkMode },attrs:{\"src\":_vm.svgPath,\"alt\":\"\",\"height\":_vm.height}}):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"gl-empty-state-content gl-mx-auto gl-my-0\",class:_vm.contentClasses,attrs:{\"data-testid\":\"gl-empty-state-content\"}},[_vm._t(\"title\",function(){return [_c('h1',{staticClass:\"gl-mb-0 gl-mt-0 gl-text-size-h-display gl-leading-36\",class:_vm.compact ? 'h5' : 'h4'},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")])]}),_vm._v(\" \"),(_vm.description || _vm.$scopedSlots.description)?_c('p',{ref:\"description\",staticClass:\"gl-mb-0 gl-mt-4 gl-text-subtle\"},[_vm._t(\"description\",function(){return [_vm._v(\"\\n \"+_vm._s(_vm.description)+\"\\n \")]})],2):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-mt-5 gl-flex gl-flex-wrap\",class:{ 'gl-justify-center': !_vm.compact }},[_vm._t(\"actions\",function(){return [(_vm.shouldRenderPrimaryButton)?_c('gl-button',{staticClass:\"gl-mb-3\",class:_vm.compact ? 'gl-mr-3' : 'gl-mx-2',attrs:{\"variant\":\"confirm\",\"href\":_vm.primaryButtonLink}},[_vm._v(_vm._s(_vm.primaryButtonText))]):_vm._e(),_vm._v(\" \"),(_vm.shouldRenderSecondaryButton)?_c('gl-button',{staticClass:\"gl-mb-3 gl-mr-3\",class:{ '!gl-mx-2': !_vm.compact },attrs:{\"href\":_vm.secondaryButtonLink}},[_vm._v(_vm._s(_vm.secondaryButtonText)+\"\\n \")]):_vm._e()]})],2)],2)])};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","(function() {\n var Query, coreChars, countDir, getCharCodes, getExtension, opt_char_re, truncatedUpperCase, _ref;\n\n _ref = require(\"./pathScorer\"), countDir = _ref.countDir, getExtension = _ref.getExtension;\n\n module.exports = Query = (function() {\n function Query(query, _arg) {\n var optCharRegEx, pathSeparator, _ref1;\n _ref1 = _arg != null ? _arg : {}, optCharRegEx = _ref1.optCharRegEx, pathSeparator = _ref1.pathSeparator;\n if (!(query && query.length)) {\n return null;\n }\n this.query = query;\n this.query_lw = query.toLowerCase();\n this.core = coreChars(query, optCharRegEx);\n this.core_lw = this.core.toLowerCase();\n this.core_up = truncatedUpperCase(this.core);\n this.depth = countDir(query, query.length, pathSeparator);\n this.ext = getExtension(this.query_lw);\n this.charCodes = getCharCodes(this.query_lw);\n }\n\n return Query;\n\n })();\n\n opt_char_re = /[ _\\-:\\/\\\\]/g;\n\n coreChars = function(query, optCharRegEx) {\n if (optCharRegEx == null) {\n optCharRegEx = opt_char_re;\n }\n return query.replace(optCharRegEx, '');\n };\n\n truncatedUpperCase = function(str) {\n var char, upper, _i, _len;\n upper = \"\";\n for (_i = 0, _len = str.length; _i < _len; _i++) {\n char = str[_i];\n upper += char.toUpperCase()[0];\n }\n return upper;\n };\n\n getCharCodes = function(str) {\n var charCodes, i, len;\n len = str.length;\n i = -1;\n charCodes = [];\n while (++i < len) {\n charCodes[str.charCodeAt(i)] = true;\n }\n return charCodes;\n };\n\n}).call(this);\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"toggleHierarchyTreeChild\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isExpanded\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"toggleHierarchyTreeChild\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"isExpanded\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isExpanded\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}]}]}}],\"loc\":{\"start\":0,\"end\":148}};\n doc.loc.source = {\"body\":\"mutation toggleHierarchyTreeChild($id: WorkItemID!, $isExpanded: Boolean!) {\\n toggleHierarchyTreeChild(id: $id, isExpanded: $isExpanded) @client\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"toggleHierarchyTreeChild\"] = oneQuery(doc, \"toggleHierarchyTreeChild\");\n \n","import has from 'lodash/has';\n\nconst tokensValidator = tokens => tokens.every(token => has(token, 'id'));\n\nexport { tokensValidator };\n","import GlToken from '../token/token';\nimport GlButton from '../button/button';\nimport { tokensValidator } from './helpers';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlTokenContainer',\n components: {\n GlToken,\n GlButton\n },\n props: {\n tokens: {\n type: Array,\n // All tokens need to have an `id` key\n validator: tokensValidator,\n required: true\n },\n state: {\n type: Boolean,\n required: false,\n default: null\n },\n registerFocusOnToken: {\n type: Function,\n required: true\n },\n viewOnly: {\n type: Boolean,\n required: false,\n default: false\n },\n showClearAllButton: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n data() {\n return {\n bindFocusEvent: true,\n focusedTokenIndex: null\n };\n },\n computed: {\n focusedToken() {\n return this.tokens[this.focusedTokenIndex] || null;\n }\n },\n watch: {\n focusedToken(newValue) {\n var _this$$refs$tokens;\n if (newValue === null) {\n return;\n }\n const tokenRef = (_this$$refs$tokens = this.$refs.tokens) === null || _this$$refs$tokens === void 0 ? void 0 : _this$$refs$tokens.find(ref => ref.dataset.tokenId === newValue.id.toString());\n if (tokenRef) {\n // Prevent `handleTokenFocus` from being called when we manually focus on a token\n this.bindFocusEvent = false;\n tokenRef.focus();\n this.bindFocusEvent = true;\n }\n }\n },\n created() {\n this.registerFocusOnToken(this.focusOnToken);\n },\n methods: {\n handleClose(token) {\n this.$emit('token-remove', token);\n this.focusedTokenIndex = null;\n },\n handleLeftArrow() {\n if (this.focusedTokenIndex === 0) {\n this.focusLastToken();\n } else {\n this.focusPrevToken();\n }\n },\n handleRightArrow() {\n if (this.focusedTokenIndex === this.tokens.length - 1) {\n this.focusFirstToken();\n } else {\n this.focusNextToken();\n }\n },\n handleHome() {\n this.focusFirstToken();\n },\n handleEnd() {\n this.focusLastToken();\n },\n handleDelete() {\n this.$emit('token-remove', this.focusedToken);\n if (this.focusedTokenIndex > 0) {\n this.focusPrevToken();\n }\n },\n handleEscape() {\n this.focusedTokenIndex = null;\n this.$emit('cancel-focus');\n },\n handleTab() {\n this.$emit('cancel-focus');\n },\n // Only called when a token is focused by a click/tap\n handleTokenFocus(index) {\n this.focusedTokenIndex = index;\n },\n focusLastToken() {\n this.focusedTokenIndex = this.tokens.length - 1;\n },\n focusFirstToken() {\n this.focusedTokenIndex = 0;\n },\n focusNextToken() {\n this.focusedTokenIndex += 1;\n },\n focusPrevToken() {\n this.focusedTokenIndex -= 1;\n },\n focusOnToken() {\n let tokenIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n this.focusedTokenIndex = tokenIndex;\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-flex gl-w-full gl-flex-nowrap gl-items-start\"},[_c('div',{ref:\"tokenContainer\",staticClass:\"-gl-mx-1 -gl-my-1 gl-flex gl-w-full gl-flex-wrap gl-items-center\",attrs:{\"role\":\"listbox\",\"aria-multiselectable\":\"false\",\"aria-orientation\":\"horizontal\",\"aria-invalid\":_vm.state === false && 'true'},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"])){ return null; }if('button' in $event && $event.button !== 0){ return null; }return _vm.handleLeftArrow.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"right\",39,$event.key,[\"Right\",\"ArrowRight\"])){ return null; }if('button' in $event && $event.button !== 2){ return null; }return _vm.handleRightArrow.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"home\",undefined,$event.key,undefined)){ return null; }return _vm.handleHome.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"end\",undefined,$event.key,undefined)){ return null; }return _vm.handleEnd.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"delete\",[8,46],$event.key,[\"Backspace\",\"Delete\",\"Del\"])){ return null; }return _vm.handleDelete.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.handleEscape.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }$event.preventDefault();return _vm.handleTab.apply(null, arguments)}]}},[_vm._l((_vm.tokens),function(token,index){return _c('div',{key:token.id,ref:\"tokens\",refInFor:true,staticClass:\"gl-token-selector-token-container gl-px-1 gl-py-2 gl-outline-none\",attrs:{\"data-token-id\":token.id,\"role\":\"option\",\"tabindex\":\"-1\"},on:{\"focus\":function($event){_vm.bindFocusEvent ? _vm.handleTokenFocus(index) : null;}}},[_c('gl-token',{staticClass:\"gl-cursor-default\",class:token.class,style:(token.style),attrs:{\"view-only\":_vm.viewOnly},on:{\"close\":function($event){return _vm.handleClose(token)}}},[_vm._t(\"token-content\",function(){return [_c('span',[_vm._v(\"\\n \"+_vm._s(token.name)+\"\\n \")])]},{\"token\":token})],2)],1)}),_vm._v(\" \"),_vm._t(\"text-input\")],2),_vm._v(\" \"),(_vm.showClearAllButton)?_c('div',{staticClass:\"gl-ml-3 gl-p-1\"},[_c('gl-button',{attrs:{\"size\":\"small\",\"aria-label\":\"Clear all\",\"icon\":\"clear\",\"category\":\"tertiary\",\"data-testid\":\"clear-all-button\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('clear-all')}}})],1):_vm._e()])};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import uniqueId from 'lodash/uniqueId';\nimport GlDropdownItem from '../dropdown/dropdown_item';\nimport { tokensValidator } from './helpers';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlTokenSelectorDropdown',\n components: {\n GlDropdownItem\n },\n props: {\n show: {\n type: Boolean,\n required: true\n },\n menuClass: {\n type: [String, Array, Object],\n required: false,\n default: ''\n },\n loading: {\n type: Boolean,\n required: false,\n default: false\n },\n dropdownItems: {\n type: Array,\n // All items need to have an `id` key\n validator: tokensValidator,\n required: true\n },\n inputText: {\n type: String,\n required: true\n },\n userDefinedTokenCanBeAdded: {\n type: Boolean,\n required: true\n },\n componentId: {\n type: String,\n required: true\n },\n registerDropdownEventHandlers: {\n type: Function,\n required: true\n },\n registerResetFocusedDropdownItem: {\n type: Function,\n required: true\n }\n },\n data() {\n return {\n focusedDropdownItemIndex: 0\n };\n },\n computed: {\n userDefinedToken() {\n return {\n id: uniqueId('user-defined-token'),\n name: this.inputText\n };\n },\n dropdownLength() {\n // Adds an additional dropdown item for the 'Add ... dropdown' item\n return this.userDefinedTokenCanBeAdded ? this.dropdownItems.length : this.dropdownItems.length - 1;\n },\n focusedLastDropdownItem() {\n return this.focusedDropdownItemIndex === this.dropdownLength;\n },\n focusedUserDefinedToken() {\n // User defined tokens are always the last in the list\n return this.userDefinedTokenCanBeAdded && this.focusedLastDropdownItem;\n },\n focusedDropdownItem() {\n if (this.focusedUserDefinedToken) {\n return this.userDefinedToken;\n }\n return this.dropdownItems[this.focusedDropdownItemIndex];\n }\n },\n watch: {\n focusedDropdownItem(newValue, oldValue) {\n if ((newValue === null || newValue === void 0 ? void 0 : newValue.id) !== (oldValue === null || oldValue === void 0 ? void 0 : oldValue.id)) {\n this.$emit('input', newValue);\n if (!newValue) {\n return;\n }\n const dropdownItemRef = this.getDropdownItemRef(newValue);\n if (dropdownItemRef !== null && dropdownItemRef !== void 0 && dropdownItemRef.$el) {\n dropdownItemRef.$el.scrollIntoView({\n block: 'nearest',\n inline: 'end'\n });\n }\n }\n }\n },\n created() {\n this.registerDropdownEventHandlers({\n handleUpArrow: this.handleUpArrow,\n handleDownArrow: this.handleDownArrow,\n handleHomeKey: this.handleHomeKey,\n handleEndKey: this.handleEndKey\n });\n this.registerResetFocusedDropdownItem(this.resetFocusedDropdownItem);\n this.$emit('input', this.focusedDropdownItem);\n },\n methods: {\n handleDropdownItemClick(dropdownItem) {\n this.$emit('dropdown-item-click', dropdownItem);\n },\n handleMousedown(dropdownItem) {\n // `event.relatedTarget` returns `null` on Safari because buttons are not focused on click (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus)\n // Because of this we need to manually focus on the button. We do this in `mousedown` because it is fired before the `blur` event\n const dropdownItemRef = this.getDropdownItemRef(dropdownItem);\n if (dropdownItemRef !== null && dropdownItemRef !== void 0 && dropdownItemRef.$el) {\n dropdownItemRef.$el.querySelector('button').focus();\n }\n },\n handleUpArrow() {\n if (!this.show) {\n return;\n }\n\n // First dropdown item has been reached\n if (this.focusedDropdownItemIndex === 0) {\n return;\n }\n this.focusPrevDropdownItem();\n },\n handleDownArrow() {\n if (!this.show) {\n this.$emit('show');\n return;\n }\n\n // Last dropdown item has been reached\n if (this.focusedLastDropdownItem) {\n return;\n }\n this.focusNextDropdownItem();\n },\n handleHomeKey(event) {\n event.preventDefault();\n this.focusFirstDropdownItem();\n },\n handleEndKey(event) {\n event.preventDefault();\n this.focusLastDropdownItem();\n },\n focusLastDropdownItem() {\n this.focusedDropdownItemIndex = this.dropdownLength;\n },\n focusFirstDropdownItem() {\n this.focusedDropdownItemIndex = 0;\n },\n focusNextDropdownItem() {\n this.focusedDropdownItemIndex += 1;\n },\n focusPrevDropdownItem() {\n this.focusedDropdownItemIndex -= 1;\n },\n resetFocusedDropdownItem() {\n this.focusedDropdownItemIndex = 0;\n },\n dropdownItemIsFocused(dropdownItem) {\n if (!this.focusedDropdownItem) {\n return false;\n }\n return dropdownItem.id === this.focusedDropdownItem.id;\n },\n getDropdownItemRef(dropdownItem) {\n var _this$$refs$dropdownI;\n if (this.focusedUserDefinedToken) {\n return this.$refs[this.userDefinedToken.id];\n }\n return (_this$$refs$dropdownI = this.$refs.dropdownItems) === null || _this$$refs$dropdownI === void 0 ? void 0 : _this$$refs$dropdownI.find(ref => ref.$attrs['data-dropdown-item-id'] === dropdownItem.id);\n },\n dropdownItemIdAttribute(dropdownItem) {\n return dropdownItem ? `${this.componentId}-dropdown-item-${dropdownItem.id}` : null;\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dropdown b-dropdown gl-dropdown gl-relative\",class:{ show: _vm.show }},[_c('ul',{ref:\"dropdownMenu\",staticClass:\"dropdown-menu gl-absolute\",class:[{ show: _vm.show }, _vm.menuClass],attrs:{\"role\":\"menu\",\"aria-activedescendant\":_vm.dropdownItemIdAttribute(_vm.focusedDropdownItem)}},[(_vm.loading)?_c('gl-dropdown-item',{attrs:{\"disabled\":\"\"}},[_vm._t(\"loading-content\",function(){return [_vm._v(\"Searching...\")]})],2):_vm._e(),_vm._v(\" \"),_vm._l((_vm.dropdownItems),function(dropdownItem){return _c('gl-dropdown-item',{key:dropdownItem.id,ref:\"dropdownItems\",refInFor:true,attrs:{\"id\":_vm.dropdownItemIdAttribute(dropdownItem),\"data-dropdown-item-id\":dropdownItem.id,\"active\":_vm.dropdownItemIsFocused(dropdownItem),\"active-class\":\"is-focused\",\"tabindex\":\"-1\"},on:{\"click\":function($event){return _vm.handleDropdownItemClick(dropdownItem)}}},[_c('div',{staticClass:\"-gl-mx-4 -gl-my-3 gl-px-4 gl-py-3\",on:{\"mousedown\":function($event){return _vm.handleMousedown(dropdownItem)}}},[_vm._t(\"dropdown-item-content\",function(){return [_vm._v(\"\\n \"+_vm._s(dropdownItem.name)+\"\\n \")]},{\"dropdownItem\":dropdownItem})],2)])}),_vm._v(\" \"),(_vm.userDefinedTokenCanBeAdded)?_c('gl-dropdown-item',{ref:_vm.userDefinedToken.id,attrs:{\"id\":_vm.dropdownItemIdAttribute(_vm.userDefinedToken),\"data-dropdown-item-id\":_vm.userDefinedToken.id,\"active\":_vm.dropdownItemIsFocused(_vm.userDefinedToken),\"active-class\":\"is-focused\",\"tabindex\":\"-1\"},on:{\"click\":function($event){return _vm.handleDropdownItemClick(_vm.userDefinedToken)}}},[_c('div',{staticClass:\"-gl-mx-4 -gl-my-3 gl-px-4 gl-py-3\",on:{\"mousedown\":function($event){return _vm.handleMousedown(_vm.userDefinedToken)}}},[_vm._t(\"user-defined-token-content\",function(){return [_vm._v(\"\\n Add \\\"\"+_vm._s(_vm.inputText)+\"\\\"\\n \")]},{\"inputText\":_vm.inputText})],2)]):(!_vm.dropdownItems.length)?_c('gl-dropdown-item',{attrs:{\"disabled\":\"\"}},[_vm._t(\"no-results-content\",function(){return [_vm._v(\"No matches found\")]})],2):_vm._e(),_vm._v(\" \"),_vm._t(\"dropdown-footer\")],2)])};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import uniqueId from 'lodash/uniqueId';\nimport { tokensValidator } from './helpers';\nimport GlTokenContainer from './token_container';\nimport GlTokenSelectorDropdown from './token_selector_dropdown';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlTokenSelector',\n componentId: uniqueId('token-selector'),\n components: {\n GlTokenContainer,\n GlTokenSelectorDropdown\n },\n model: {\n prop: 'selectedTokens',\n event: 'input'\n },\n props: {\n /**\n * Items to display in dropdown\n */\n dropdownItems: {\n type: Array,\n // All items need to have an `id` key\n validator: tokensValidator,\n required: false,\n default: () => []\n },\n /**\n * Should users be allowed to add tokens that are not in `dropdown-items`\n */\n allowUserDefinedTokens: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Shows 'Add new token option' in dropdown even if results are present, requires allowUserDefinedTokens to be true\n */\n showAddNewAlways: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Dropdown items are loading, can be used when requesting new dropdown items\n */\n loading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Hide the dropdown if `dropdown-items` is empty. Will show `no-results-content` slot if this is `false`\n */\n hideDropdownWithNoItems: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * CSS classes to add to the main token selector container (`.gl-token-selector`)\n */\n containerClass: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * CSS classes to add to dropdown menu `ul` element\n */\n menuClass: {\n type: [String, Array, Object],\n required: false,\n default: ''\n },\n /**\n * The autocomplete attribute value for the underlying `input` element\n */\n autocomplete: {\n type: String,\n required: false,\n default: 'off'\n },\n /**\n * The `aria-labelledby` attribute value for the underlying `input` element\n */\n ariaLabelledby: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The `placeholder` attribute value for the underlying `input` element\n */\n placeholder: {\n type: String,\n required: false,\n default: null\n },\n /**\n * HTML attributes to add to the text input. Helpful for adding `data-testid` attributes\n */\n textInputAttrs: {\n type: Object,\n required: false,\n default: null\n },\n /**\n * Controls the validation state appearance of the component. `true` for valid, `false` for invalid, or `null` for no validation state\n */\n state: {\n type: Boolean,\n required: false,\n default: null\n },\n /**\n * Tokens that are selected. This prop will automatically be added when using `v-model`\n */\n selectedTokens: {\n type: Array,\n // All tokens need to have an `id` key\n validator: tokensValidator,\n required: true\n },\n /**\n * Controls the `view-only` mode for the tokens\n */\n viewOnly: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Allows user to bulk delete tokens when enabled\n */\n allowClearAll: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n data() {\n return {\n inputText: '',\n inputFocused: false,\n dropdownIsOpen: false,\n focusedDropdownItem: null,\n triggerTokenFocusNextBackspace: true,\n rootElClasses: '',\n dropdownEventHandlers: {\n handleUpArrow: () => {},\n handleDownArrow: () => {},\n handleHomeKey: () => {},\n handleEndKey: () => {}\n },\n resetFocusedDropdownItem: () => {},\n focusOnToken: () => {}\n };\n },\n computed: {\n filteredDropdownItems() {\n return this.dropdownItems.filter(dropdownItem => this.selectedTokens.findIndex(token => token.id === dropdownItem.id) === -1);\n },\n dropdownHasNoItems() {\n return !this.filteredDropdownItems.length;\n },\n userDefinedTokenCanBeAdded() {\n if (!this.allowUserDefinedTokens || !this.inputText) {\n return false;\n }\n return this.showAddNewAlways || this.dropdownHasNoItems;\n },\n hideDropdown() {\n if (this.userDefinedTokenCanBeAdded) {\n return false;\n }\n if (this.hideDropdownWithNoItems && this.dropdownHasNoItems) {\n return true;\n }\n return false;\n },\n stateClass() {\n switch (this.state) {\n case true:\n return 'is-valid';\n case false:\n return 'is-invalid';\n default:\n return '';\n }\n },\n hasSelectedTokens() {\n return this.selectedTokens.length > 0;\n },\n showEmptyPlaceholder() {\n return !this.hasSelectedTokens && !this.inputFocused;\n },\n showClearAllButton() {\n return this.hasSelectedTokens && this.allowClearAll;\n }\n },\n watch: {\n inputText(newValue, oldValue) {\n if (newValue !== oldValue) {\n /**\n * Fired when user types in the token selector\n *\n * @property {string} inputText\n */\n this.$emit('text-input', newValue);\n this.resetFocusedDropdownItem();\n if (newValue !== '') {\n this.triggerTokenFocusNextBackspace = false;\n } else {\n this.triggerTokenFocusNextBackspace = true;\n }\n\n // Wait a tick so `text-input` event can be used to validate\n // the value and change the `allowUserDefinedTokens` and/or\n // `hideDropdownWithNoItems` props\n this.$nextTick(() => {\n if (this.hideDropdown) {\n this.closeDropdown();\n } else if (newValue !== '') {\n this.openDropdown();\n }\n });\n }\n }\n },\n methods: {\n handleFocus(event) {\n /**\n * Fired when the token selector is focused\n *\n * @property {FocusEvent} event\n */\n this.$emit('focus', event);\n this.openDropdown();\n this.inputFocused = true;\n this.focusOnToken();\n if (this.inputText === '') {\n this.triggerTokenFocusNextBackspace = true;\n }\n },\n handleBlur(event) {\n /**\n * Fired when the token selector is blurred\n *\n * @property {FocusEvent} event\n */\n this.$emit('blur', event);\n this.inputFocused = false;\n\n // `event.relatedTarget` returns `null` on Safari because buttons are not focused on click (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus)\n // Workaround is to:\n // 1. Explicitly focus the dropdown menu item button on `mousedown` event. (see './token_selector_dropdown.vue')\n // 2. Use `nextTick` so `blur` event is fired after the `mousedown` event\n this.$nextTick(() => {\n var _event$relatedTarget, _event$relatedTarget$;\n if (!((_event$relatedTarget = event.relatedTarget) !== null && _event$relatedTarget !== void 0 && (_event$relatedTarget$ = _event$relatedTarget.closest) !== null && _event$relatedTarget$ !== void 0 && _event$relatedTarget$.call(_event$relatedTarget, '.dropdown-item'))) {\n this.closeDropdown();\n }\n });\n },\n handleEnter() {\n if (this.focusedDropdownItem && this.dropdownIsOpen) {\n this.addToken(this.focusedDropdownItem);\n }\n },\n handleEscape() {\n this.inputText = '';\n this.closeDropdown();\n },\n handleBackspace(event) {\n if (this.inputText !== '' || !this.selectedTokens.length) {\n return;\n }\n\n // Prevent triggering the browser back button\n event.preventDefault();\n if (this.triggerTokenFocusNextBackspace) {\n this.$refs.textInput.blur();\n this.focusOnToken(this.selectedTokens.length - 1);\n } else {\n this.triggerTokenFocusNextBackspace = true;\n }\n },\n handleInputClick() {\n // Open the dropdown if the user clicks an already focused input\n if (this.inputFocused && this.inputText === '' && !this.dropdownIsOpen) {\n this.openDropdown();\n }\n },\n handleContainerClick(event) {\n // Bail if token is clicked\n const {\n target\n } = event;\n if ((target === null || target === void 0 ? void 0 : target.closest('.gl-token')) !== null || this.inputFocused) {\n return;\n }\n this.focusTextInput();\n },\n addToken(dropdownItem) {\n /**\n * Fired when a token is added or removed\n *\n * @property {array} selectedTokens\n */\n this.$emit('input', [...this.selectedTokens, dropdownItem]);\n this.inputText = '';\n this.closeDropdown();\n\n /**\n * Fired when a token is added\n *\n * @property {object} token\n */\n this.$emit('token-add', dropdownItem);\n },\n removeToken(token) {\n /**\n * Fired when a token is added or removed\n *\n * @property {array} selectedTokens\n */\n this.$emit('input', this.selectedTokens.filter(selectedToken => selectedToken.id !== token.id));\n /**\n * Fired when a token is removed\n *\n * @property {object} token\n */\n this.$emit('token-remove', token);\n },\n cancelTokenFocus() {\n this.focusTextInput();\n },\n closeDropdown() {\n this.dropdownIsOpen = false;\n this.resetFocusedDropdownItem();\n },\n openDropdown() {\n if (this.hideDropdown) {\n return;\n }\n this.dropdownIsOpen = true;\n },\n focusTextInput() {\n this.$refs.textInput.focus();\n },\n // Register methods passed as props from child components\n registerDropdownEventHandlers(dropdownEventHandlers) {\n this.dropdownEventHandlers = dropdownEventHandlers;\n },\n registerResetFocusedDropdownItem(resetFocusedDropdownItem) {\n this.resetFocusedDropdownItem = resetFocusedDropdownItem;\n },\n registerFocusOnToken(focusOnToken) {\n this.focusOnToken = focusOnToken;\n },\n clearAll() {\n this.$emit('input', []);\n this.focusTextInput();\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{ref:\"container\",staticClass:\"gl-token-selector gl-form-input gl-form-input-not-readonly form-control gl-flex !gl-cursor-text gl-items-center !gl-px-3 !gl-py-2\",class:[\n {\n 'gl-token-selector-focus-glow': _vm.inputFocused,\n 'gl-token-selector-view-only': _vm.viewOnly,\n },\n _vm.containerClass,\n _vm.stateClass ],on:{\"click\":_vm.handleContainerClick}},[(_vm.showEmptyPlaceholder)?_vm._t(\"empty-placeholder\"):_vm._e(),_vm._v(\" \"),_c('gl-token-container',{attrs:{\"tokens\":_vm.selectedTokens,\"state\":_vm.state,\"register-focus-on-token\":_vm.registerFocusOnToken,\"view-only\":_vm.viewOnly,\"show-clear-all-button\":_vm.showClearAllButton},on:{\"token-remove\":_vm.removeToken,\"cancel-focus\":_vm.cancelTokenFocus,\"clear-all\":_vm.clearAll},scopedSlots:_vm._u([{key:\"token-content\",fn:function(ref){\n var token = ref.token;\nreturn [_vm._t(\"token-content\",null,{\"token\":token})]}},{key:\"text-input\",fn:function(){return [_c('input',_vm._b({ref:\"textInput\",staticClass:\"gl-token-selector-input gl-h-auto gl-w-4/10 gl-grow gl-border-none gl-bg-transparent gl-px-1 gl-font-regular gl-text-base gl-leading-normal gl-text-default gl-outline-none\",attrs:{\"type\":\"text\",\"autocomplete\":_vm.autocomplete,\"aria-labelledby\":_vm.ariaLabelledby,\"placeholder\":_vm.placeholder,\"disabled\":_vm.viewOnly},domProps:{\"value\":_vm.inputText},on:{\"input\":function($event){_vm.inputText = $event.target.value;},\"focus\":_vm.handleFocus,\"blur\":_vm.handleBlur,\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleEnter.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.handleEscape.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"delete\",[8,46],$event.key,[\"Backspace\",\"Delete\",\"Del\"])){ return null; }return _vm.handleBackspace.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }$event.preventDefault();return _vm.dropdownEventHandlers.handleUpArrow.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }$event.preventDefault();return _vm.dropdownEventHandlers.handleDownArrow.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"home\",undefined,$event.key,undefined)){ return null; }return _vm.dropdownEventHandlers.handleHomeKey.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"end\",undefined,$event.key,undefined)){ return null; }return _vm.dropdownEventHandlers.handleEndKey.apply(null, arguments)},function($event){$event.stopPropagation();return _vm.$emit('keydown', $event)}],\"click\":_vm.handleInputClick}},'input',_vm.textInputAttrs,false))]},proxy:true}],null,true)})],2),_vm._v(\" \"),_c('gl-token-selector-dropdown',{attrs:{\"menu-class\":_vm.menuClass,\"show\":_vm.dropdownIsOpen,\"loading\":_vm.loading,\"dropdown-items\":_vm.filteredDropdownItems,\"selected-tokens\":_vm.selectedTokens,\"input-text\":_vm.inputText,\"user-defined-token-can-be-added\":_vm.userDefinedTokenCanBeAdded,\"component-id\":_vm.$options.componentId,\"register-dropdown-event-handlers\":_vm.registerDropdownEventHandlers,\"register-reset-focused-dropdown-item\":_vm.registerResetFocusedDropdownItem},on:{\"dropdown-item-click\":_vm.addToken,\"show\":_vm.openDropdown},scopedSlots:_vm._u([{key:\"loading-content\",fn:function(){return [_vm._t(\"loading-content\")]},proxy:true},{key:\"user-defined-token-content\",fn:function(){return [_vm._t(\"user-defined-token-content\",null,{\"inputText\":_vm.inputText})]},proxy:true},{key:\"no-results-content\",fn:function(){return [_vm._t(\"no-results-content\")]},proxy:true},{key:\"dropdown-item-content\",fn:function(ref){\n var dropdownItem = ref.dropdownItem;\nreturn [_vm._t(\"dropdown-item-content\",null,{\"dropdownItem\":dropdownItem})]}},{key:\"dropdown-footer\",fn:function(){return [_vm._t(\"dropdown-footer\")]},proxy:true}],null,true),model:{value:(_vm.focusedDropdownItem),callback:function ($$v) {_vm.focusedDropdownItem=$$v;},expression:\"focusedDropdownItem\"}})],1)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","/* eslint-disable @gitlab/require-i18n-strings */\nconst sensitiveDataPatterns = () => {\n const patPrefix = window.gon?.pat_prefix || 'glpat-';\n\n return [\n {\n name: 'GitLab personal access token',\n regex: `${patPrefix}[0-9a-zA-Z_-]{20}`,\n },\n {\n name: 'GitLab personal access token (routable)',\n regex: `${patPrefix}(?<base64_payload>[0-9a-zA-Z_-]{27,300})\\\\.(?<base64_payload_length>[0-9a-z]{2})(?<crc32>[0-9a-z]{7})`,\n },\n {\n name: 'Feed Token',\n regex: 'feed_token=[0-9a-zA-Z_-]{20}|glft-[0-9a-zA-Z_-]{20}|glft-[a-h0-9]+-[0-9]+_',\n },\n {\n name: 'GitLab OAuth Application Secret',\n regex: `gloas-[0-9a-zA-Z_-]{64}`,\n },\n {\n name: 'GitLab Deploy Token',\n regex: `gldt-[0-9a-zA-Z_-]{20}`,\n },\n {\n name: 'GitLab SCIM OAuth Access Token',\n regex: `glsoat-[0-9a-zA-Z_-]{20}`,\n },\n {\n name: 'GitLab CI Build (Job) Token',\n regex: `glcbt-[0-9a-zA-Z]{1,5}_[0-9a-zA-Z_-]{20}`,\n },\n {\n name: 'GitLab Feature Flags Client Token',\n regex: `glffct-[0-9a-zA-Z_-]{20}`,\n },\n {\n name: 'GitLab Runner Token',\n regex: 'glrt-[0-9a-zA-Z_-]{20}',\n },\n {\n name: 'GitLab Incoming Mail Token',\n regex: 'glimt-[0-9a-zA-Z_-]{25}',\n },\n {\n name: 'GitLab Agent for Kubernetes Token',\n regex: 'glagent-[0-9a-zA-Z_-]{50}',\n },\n {\n name: 'GitLab Pipeline Trigger Token',\n regex: 'glptt-[0-9a-zA-Z_-]{40}',\n },\n {\n name: 'Anthropic key',\n regex: 'sk-ant-[a-z]{3}\\\\d{2}-[A-Za-z0-9-_]{86}-[A-Za-z0-9-_]{8}',\n },\n ];\n};\n\nexport default sensitiveDataPatterns;\n","import { escape } from 'lodash';\nimport { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { __, n__, sprintf } from '~/locale';\nimport { InternalEvents } from '~/tracking';\nimport sensitiveDataPatterns from './secret_detection_patterns';\n\nconst CONTENT_TYPE = {\n COMMENT: 'comment',\n DESCRIPTION: 'description',\n};\n\nconst defaultContentType = CONTENT_TYPE.COMMENT;\n\nconst documentationHref = helpPagePath('user/application_security/secret_detection/client/index');\n\nexport const SHOW_CLIENT_SIDE_SECRET_DETECTION_WARNING =\n 'show_client_side_secret_detection_warning';\n\nconst i18n = {\n title: (count) =>\n n__(\n 'SecretDetection|Warning: Potential secret detected',\n 'SecretDetection|Warning: Potential secrets detected',\n count,\n ),\n promptMessage: (count) =>\n n__(\n 'SecretDetection|This %{contentType} appears to have the following secret in it. Are you sure you want to add this %{contentType}?',\n 'SecretDetection|This %{contentType} appears to have the following secrets in it. Are you sure you want to add this %{contentType}?',\n count,\n ),\n primaryBtnText: __('Add %{contentType}'),\n secondaryBtnText: __('Edit %{contentType}'),\n helpString: __('Why am I seeing this warning?'),\n};\n\nconst redactString = (inputString) => {\n if (inputString.length <= 9) return inputString;\n\n const prefix = inputString.substring(0, 5); // Keep the first 5 characters\n const suffix = inputString.substring(inputString.length - 4); // Keep the last 4 characters\n const redactLength = Math.min(inputString.length - prefix.length - suffix.length, 22);\n\n return `${prefix}${'*'.repeat(redactLength)}${suffix}`;\n};\n\nconst formatMessage = (findings, contentType) => {\n const header = sprintf(i18n.promptMessage(findings.length), { contentType });\n\n const matchedPatterns = findings.map(({ patternName, matchedString }) => {\n const redactedString = redactString(matchedString);\n return `<li>${escape(patternName)}: ${escape(redactedString)}</li>`;\n });\n\n const message = `\n ${header}\n <p><ul>\n ${matchedPatterns.join('')}\n </ul>\n <a href=\"${documentationHref}\" target=\"_blank\" rel=\"noopener noreferrer\">\n ${i18n.helpString}\n </a>\n `;\n\n return message;\n};\n\nconst containsSensitiveToken = (message) => {\n if (!message || typeof message !== 'string') {\n return null;\n }\n const findings = [];\n\n for (const rule of sensitiveDataPatterns()) {\n const regex = new RegExp(rule.regex, 'gi');\n const matches = message.match(regex);\n\n if (matches) {\n matches.forEach((match) => {\n findings.push({\n patternName: rule.name,\n matchedString: match,\n });\n });\n }\n }\n\n return findings.length > 0 ? findings : false;\n};\n\nconst confirmSensitiveAction = async (findings = [], contentType = defaultContentType) => {\n const title = i18n.title(findings.length);\n const modalHtmlMessage = formatMessage(findings, contentType);\n const primaryBtnText = sprintf(i18n.primaryBtnText, { contentType });\n const secondaryBtnText = sprintf(i18n.secondaryBtnText, { contentType });\n\n const confirmed = await confirmAction('', {\n title,\n modalHtmlMessage,\n primaryBtnVariant: 'danger',\n primaryBtnText,\n secondaryBtnText,\n hideCancel: true,\n });\n InternalEvents.trackEvent(SHOW_CLIENT_SIDE_SECRET_DETECTION_WARNING, {\n label: contentType,\n property: findings[0].patternName,\n value: confirmed ? 1 : 0,\n });\n return confirmed;\n};\n\n/**\n * Determines if the provided content contains sensitive patterns and confirms with the user when found.\n * @param {object} params - Parameters for detection and confirmation.\n * @param {string} params.content - The content to be checked for sensitive patterns.\n * @param {string} params.contentType - Type of content being checked.\n * @returns {Promise<boolean>} A Promise that resolves to:\n * - true if no sensitive patterns are found.\n * - true if sensitive patterns are found and the user chooses to proceed with them.\n * - false if sensitive patterns are found and the user chooses to update the content.\n */\nconst detectAndConfirmSensitiveTokens = ({ content, contentType }) => {\n const sensitiveTokens = containsSensitiveToken(content);\n if (!sensitiveTokens) {\n return Promise.resolve(true);\n }\n return confirmSensitiveAction(sensitiveTokens, contentType);\n};\n\nexport { detectAndConfirmSensitiveTokens, CONTENT_TYPE };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"js-issuable-move-block issuable-move-dropdown sidebar-move-issue-dropdown\"},[_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"data-testid\":\"move-collapsed\",\"title\":_vm.dropdownButtonTitle},on:{\"click\":function($event){return _vm.$emit('toggle-collapse')}}},[_c('gl-icon',{attrs:{\"name\":\"arrow-right\"}})],1),_vm._v(\" \"),_c('gl-collapsible-listbox',{ref:\"dropdown\",attrs:{\"items\":_vm.projectsList,\"block\":true,\"multiple\":true,\"searchable\":true,\"searching\":_vm.isSearching,\"search-placeholder\":_vm.__('Search project'),\"no-results-text\":_vm.noResultsText,\"header-text\":_vm.dropdownButtonTitle},on:{\"hidden\":_vm.handleDropdownHide,\"shown\":_vm.triggerSearch,\"search\":_vm.fetchProjects,\"select\":_vm.handleProjectSelect},scopedSlots:_vm._u([{key:\"toggle\",fn:function(){return [_c('gl-button',{staticClass:\"js-sidebar-dropdown-toggle hide-collapsed gl-w-full\",attrs:{\"loading\":_vm.moveInProgress,\"size\":\"medium\",\"data-testid\":\"dropdown-button\",\"disabled\":_vm.moveInProgress || _vm.disabled}},[_vm._v(_vm._s(_vm.dropdownButtonTitle))])]},proxy:true},{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"gl-p-3\",attrs:{\"data-testid\":\"footer\"}},[_c('gl-button',{staticClass:\"gl-w-full\",attrs:{\"category\":\"primary\",\"variant\":\"confirm\",\"disabled\":!Boolean(_vm.selectedProjects.length),\"data-testid\":\"dropdown-move-button\"},on:{\"click\":_vm.handleMoveClick}},[_vm._v(_vm._s(_vm.__('Move')))])],1)]},proxy:true}]),model:{value:(_vm.selectedProjects),callback:function ($$v) {_vm.selectedProjects=$$v},expression:\"selectedProjects\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_move_dropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_move_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlIcon,\n GlButton,\n GlCollapsibleListbox,\n GlTooltipDirective as GlTooltip,\n} from '@gitlab/ui';\nimport { debounce } from 'lodash';\nimport { __ } from '~/locale';\nimport { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';\nimport axios from '~/lib/utils/axios_utils';\n\nexport default {\n components: {\n GlIcon,\n GlButton,\n GlCollapsibleListbox,\n },\n directives: {\n GlTooltip,\n },\n props: {\n projectsFetchPath: {\n type: String,\n required: true,\n },\n dropdownButtonTitle: {\n type: String,\n required: true,\n },\n dropdownHeaderTitle: {\n type: String,\n required: true,\n },\n moveInProgress: {\n type: Boolean,\n required: false,\n default: false,\n },\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n projects: [],\n projectsList: [],\n selectedProjects: [],\n noResultsText: '',\n isSearching: false,\n };\n },\n mounted() {\n this.fetchProjects = debounce(this.fetchProjects, DEFAULT_DEBOUNCE_AND_THROTTLE_MS);\n },\n methods: {\n triggerSearch() {\n this.$refs.dropdown.search();\n },\n async fetchProjects(search = '') {\n this.isSearching = true;\n\n try {\n const { data } = await axios.get(this.projectsFetchPath, {\n params: {\n search,\n },\n });\n this.projects = data;\n this.projectsList = data.map((item) => ({\n value: item.id,\n text: item.name_with_namespace,\n }));\n\n if (!this.projectsList.length) {\n this.noResultsText = __('No matching results');\n }\n } catch (e) {\n this.noResultsText = __('Failed to load projects');\n } finally {\n this.isSearching = false;\n }\n },\n handleProjectSelect(items) {\n // hack: simulate a single select to prevent the dropdown from closing\n // todo: switch back to single select when https://gitlab.com/gitlab-org/gitlab-ui/-/issues/2363 is fixed\n this.selectedProjects = [items[items.length - 1]];\n },\n handleMoveClick() {\n this.$refs.dropdown.close();\n this.$emit(\n 'move-issuable',\n this.projects.find((item) => item.id === this.selectedProjects[0]),\n );\n },\n handleDropdownHide() {\n this.$emit('dropdown-close');\n },\n },\n};\n</script>\n\n<template>\n <div class=\"js-issuable-move-block issuable-move-dropdown sidebar-move-issue-dropdown\">\n <div\n v-gl-tooltip.left.viewport\n data-testid=\"move-collapsed\"\n :title=\"dropdownButtonTitle\"\n class=\"sidebar-collapsed-icon\"\n @click=\"$emit('toggle-collapse')\"\n >\n <gl-icon name=\"arrow-right\" />\n </div>\n <gl-collapsible-listbox\n ref=\"dropdown\"\n v-model=\"selectedProjects\"\n :items=\"projectsList\"\n :block=\"true\"\n :multiple=\"true\"\n :searchable=\"true\"\n :searching=\"isSearching\"\n :search-placeholder=\"__('Search project')\"\n :no-results-text=\"noResultsText\"\n :header-text=\"dropdownButtonTitle\"\n @hidden=\"handleDropdownHide\"\n @shown=\"triggerSearch\"\n @search=\"fetchProjects\"\n @select=\"handleProjectSelect\"\n >\n <template #toggle>\n <gl-button\n :loading=\"moveInProgress\"\n size=\"medium\"\n class=\"js-sidebar-dropdown-toggle hide-collapsed gl-w-full\"\n data-testid=\"dropdown-button\"\n :disabled=\"moveInProgress || disabled\"\n >{{ dropdownButtonTitle }}</gl-button\n >\n </template>\n <template #footer>\n <div data-testid=\"footer\" class=\"gl-p-3\">\n <gl-button\n category=\"primary\"\n variant=\"confirm\"\n :disabled=\"!Boolean(selectedProjects.length)\"\n class=\"gl-w-full\"\n data-testid=\"dropdown-move-button\"\n @click=\"handleMoveClick\"\n >{{ __('Move') }}</gl-button\n >\n </div>\n </template>\n </gl-collapsible-listbox>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./issuable_move_dropdown.vue?vue&type=template&id=23d44ad0\"\nimport script from \"./issuable_move_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./issuable_move_dropdown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var baseInverter = require('./_baseInverter');\n\n/**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\nfunction createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n}\n\nmodule.exports = createInverter;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:_vm.buttonClass},[_c('gl-modal',{attrs:{\"modal-id\":_vm.modalId,\"title\":_vm.$options.modal.title,\"action-primary\":_vm.$options.modal.actionPrimary,\"action-cancel\":_vm.$options.modal.actionCancel},on:{\"ok\":function($event){return _vm.$emit('archive-selected-designs')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.modal.text)+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{directives:[{name:\"gl-modal-directive\",rawName:\"v-gl-modal-directive\",value:(_vm.modalId),expression:\"modalId\"}],class:_vm.buttonClass,attrs:{\"data-testid\":\"archive-design-button\",\"size\":_vm.buttonSize,\"category\":_vm.buttonCategory,\"icon\":_vm.buttonIcon,\"loading\":_vm.loading,\"disabled\":!_vm.hasSelectedDesigns || _vm.loading}},[_vm._t(\"default\")],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./archive_design_button.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./archive_design_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlModal, GlModalDirective } from '@gitlab/ui';\nimport { uniqueId } from 'lodash';\nimport { s__, __ } from '~/locale';\n\nexport default {\n name: 'ArchiveDesignButton',\n components: {\n GlButton,\n GlModal,\n },\n directives: {\n GlModalDirective,\n },\n props: {\n hasSelectedDesigns: {\n type: Boolean,\n required: false,\n default: true,\n },\n loading: {\n type: Boolean,\n required: false,\n default: false,\n },\n buttonIcon: {\n type: String,\n required: false,\n default: undefined,\n },\n buttonCategory: {\n type: String,\n required: false,\n default: 'primary',\n },\n buttonClass: {\n type: String,\n required: false,\n default: '',\n },\n buttonSize: {\n type: String,\n required: false,\n default: 'small',\n },\n },\n data() {\n return {\n modalId: uniqueId('design-archive-confirmation-'),\n };\n },\n modal: {\n title: s__('DesignManagement|Are you sure you want to archive the selected designs?'),\n text: s__(\n 'DesignManagement|Archived designs will still be available in previous versions of the design collection.',\n ),\n actionPrimary: {\n text: s__('DesignManagement|Archive designs'),\n attributes: { variant: 'confirm', 'data-testid': 'confirm-archiving-button' },\n },\n actionCancel: {\n text: __('Cancel'),\n },\n },\n};\n</script>\n\n<template>\n <div :class=\"buttonClass\">\n <gl-modal\n :modal-id=\"modalId\"\n :title=\"$options.modal.title\"\n :action-primary=\"$options.modal.actionPrimary\"\n :action-cancel=\"$options.modal.actionCancel\"\n @ok=\"$emit('archive-selected-designs')\"\n >\n {{ $options.modal.text }}\n </gl-modal>\n <gl-button\n v-gl-modal-directive=\"modalId\"\n data-testid=\"archive-design-button\"\n :size=\"buttonSize\"\n :category=\"buttonCategory\"\n :icon=\"buttonIcon\"\n :loading=\"loading\"\n :class=\"buttonClass\"\n :disabled=\"!hasSelectedDesigns || loading\"\n >\n <slot></slot>\n </gl-button>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./archive_design_button.vue?vue&type=template&id=4937283d\"\nimport script from \"./archive_design_button.vue?vue&type=script&lang=js\"\nexport * from \"./archive_design_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\\n/* hide the existing modal header\\n */\\n#work-item-detail-modal .modal-header * {\\n display: none;\\n}\\n\", \"\"]);\n\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueSuggestion\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"sort\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"updated_desc\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"},\"value\":{\"kind\":\"IntValue\",\"value\":\"5\"}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"edges\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userNotesCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"upvotes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updatedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"author\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"username\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":542}};\n doc.loc.source = {\"body\":\"query issueSuggestion($fullPath: ID!, $search: String) {\\n project(fullPath: $fullPath) {\\n id\\n issues(search: $search, sort: updated_desc, first: 5) {\\n edges {\\n node {\\n id\\n iid\\n title\\n confidential\\n userNotesCount\\n upvotes\\n webUrl\\n state\\n closedAt\\n createdAt\\n updatedAt\\n author {\\n id\\n name\\n username\\n avatarUrl\\n webUrl\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueSuggestion\"] = oneQuery(doc, \"issueSuggestion\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.tooltip),expression:\"tooltip\"},{name:\"gl-resize-observer\",rawName:\"v-gl-resize-observer\",value:(_vm.onResize),expression:\"onResize\"}],staticClass:\"gl-min-w-0\",class:_vm.classes},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlTooltipDirective, GlResizeObserverDirective } from '@gitlab/ui';\nimport { isFunction, debounce } from 'lodash';\nimport { hasHorizontalOverflow } from '~/lib/utils/dom_utils';\n\nconst UPDATE_TOOLTIP_DEBOUNCED_WAIT_MS = 300;\n\nexport default {\n directives: {\n GlTooltip: GlTooltipDirective,\n GlResizeObserver: GlResizeObserverDirective,\n },\n props: {\n title: {\n type: String,\n required: false,\n default: '',\n },\n placement: {\n type: String,\n required: false,\n default: 'top',\n },\n boundary: {\n type: String,\n required: false,\n default: '',\n },\n truncateTarget: {\n type: [String, Function],\n required: false,\n default: '',\n },\n },\n data() {\n return {\n tooltipDisabled: true,\n };\n },\n computed: {\n classes() {\n if (this.tooltipDisabled) {\n return '';\n }\n return 'js-show-tooltip';\n },\n tooltip() {\n return {\n title: this.title,\n placement: this.placement,\n disabled: this.tooltipDisabled,\n // Only set the tooltip boundary if it's truthy\n ...(this.boundary && { boundary: this.boundary }),\n };\n },\n },\n watch: {\n title() {\n // Wait on $nextTick in case the slot width changes\n this.$nextTick(this.updateTooltip);\n },\n },\n created() {\n this.updateTooltipDebounced = debounce(this.updateTooltip, UPDATE_TOOLTIP_DEBOUNCED_WAIT_MS);\n },\n mounted() {\n this.updateTooltip();\n },\n methods: {\n selectTarget() {\n if (isFunction(this.truncateTarget)) {\n return this.truncateTarget(this.$el);\n }\n if (this.truncateTarget === 'child') {\n return this.$el.childNodes[0];\n }\n return this.$el;\n },\n updateTooltip() {\n this.tooltipDisabled = !hasHorizontalOverflow(this.selectTarget());\n },\n onResize() {\n this.updateTooltipDebounced();\n },\n },\n};\n</script>\n\n<template>\n <span v-gl-tooltip=\"tooltip\" v-gl-resize-observer=\"onResize\" :class=\"classes\" class=\"gl-min-w-0\">\n <slot></slot>\n </span>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./tooltip_on_truncate.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./tooltip_on_truncate.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./tooltip_on_truncate.vue?vue&type=template&id=50568281\"\nimport script from \"./tooltip_on_truncate.vue?vue&type=script&lang=js\"\nexport * from \"./tooltip_on_truncate.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/** Used to match template delimiters. */\nvar reEscape = /<%-([\\s\\S]+?)%>/g;\n\nmodule.exports = reEscape;\n","import memoize from 'lodash/memoize';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst getObserver = memoize(options => new IntersectionObserver(entries => {\n entries.forEach(entry => {\n entry.target.$_gl_intersectionHandler(entry);\n });\n}, options || {}));\nvar script = {\n name: 'GlIntersectionObserver',\n props: {\n /**\n * Extra options to pass directly to the intersection observer API.\n */\n options: {\n type: Object,\n required: false,\n default: null\n }\n },\n mounted() {\n const observer = getObserver(this.options);\n this.$el.$_gl_intersectionHandler = entry => {\n /**\n * Emitted when the element's visibility changes\n */\n this.$emit('update', entry);\n if (entry.isIntersecting) {\n /**\n * Emitted when the element appears on the page\n */\n this.$emit('appear');\n } else {\n /**\n * Emitted when the element disappears from the page\n */\n this.$emit('disappear');\n }\n };\n this.$el.$_gl_intersectionObserver = observer;\n observer.observe(this.$el);\n },\n destroyed() {\n this.$el.$_gl_intersectionObserver.unobserve(this.$el);\n delete this.$el.$_gl_intersectionHandler;\n delete this.$el.$_gl_intersectionObserver;\n },\n // Expose getObserver method for tests\n getObserver\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateBoardList\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"listId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ListID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"position\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"collapsed\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateBoardList\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"listId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"listId\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"position\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"position\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"collapsed\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"collapsed\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"list\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardListFragment\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":276}};\n doc.loc.source = {\"body\":\"#import \\\"./board_list.fragment.graphql\\\"\\n\\nmutation UpdateBoardList($listId: ListID!, $position: Int, $collapsed: Boolean) {\\n updateBoardList(input: { listId: $listId, position: $position, collapsed: $collapsed }) {\\n list {\\n ...BoardListFragment\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./board_list.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"UpdateBoardList\"] = oneQuery(doc, \"UpdateBoardList\");\n \n","import { uniqueId } from 'lodash';\nimport { findDesignWidget } from '../../utils';\n\nexport const findVersionId = (id) => (id.match('::Version/(.+$)') || [])[1];\n\nexport const findNoteId = (id) => (id.match('DiffNote/(.+$)') || [])[1];\n\nexport const extractDesigns = (data) =>\n findDesignWidget(data.project.workItems.nodes[0].widgets).designCollection.designs.nodes;\n\nexport const extractDesign = (data) => (extractDesigns(data) || [])[0];\n\nexport const extractVersions = (data) =>\n findDesignWidget(data.project.workItems.nodes[0].widgets).designCollection.versions.nodes;\n\nexport const extractDiscussions = (discussions) =>\n discussions.nodes.map((discussion, index) => ({\n ...discussion,\n index: index + 1,\n notes: discussion.notes.nodes,\n }));\n\nexport const getPageLayoutElement = () => document.querySelector('.layout-page');\n\nexport const designWidgetOf = (data) => findDesignWidget(data.workItem.widgets);\n\nexport const extractCurrentDiscussion = (discussions, id) =>\n discussions.nodes.find((discussion) => discussion.id === id);\n\n/**\n * Generates optimistic response for a design upload mutation\n * @param {Array<File>} files\n */\nexport const designUploadOptimisticResponse = (files) => {\n const designs = files.map((file) => ({\n __typename: 'Design',\n id: -uniqueId(),\n image: '',\n imageV432x230: '',\n description: '',\n descriptionHtml: '',\n filename: file.name,\n fullPath: '',\n imported: false,\n notesCount: 0,\n event: 'NONE',\n currentUserTodos: {\n __typename: 'TodoConnection',\n nodes: [],\n },\n diffRefs: {\n __typename: 'DiffRefs',\n baseSha: '',\n startSha: '',\n headSha: '',\n },\n discussions: {\n __typename: 'DesignDiscussion',\n nodes: [],\n },\n versions: {\n __typename: 'DesignVersionConnection',\n nodes: {\n __typename: 'DesignVersion',\n id: -uniqueId(),\n sha: -uniqueId(),\n createdAt: '',\n author: {\n __typename: 'UserCore',\n id: -uniqueId(),\n name: '',\n avatarUrl: '',\n },\n },\n },\n }));\n\n return {\n __typename: 'Mutation',\n designManagementUpload: {\n __typename: 'DesignManagementUploadPayload',\n designs,\n skippedDesigns: [],\n errors: [],\n },\n };\n};\n\n/**\n * Generates optimistic response for a design pin move mutation\n * @param {Object} note\n * @param {Object} position\n */\nexport const repositionImageDiffNoteOptimisticResponse = (note, { position }) => ({\n __typename: 'Mutation',\n repositionImageDiffNote: {\n __typename: 'RepositionImageDiffNotePayload',\n note: {\n ...note,\n position: {\n ...note.position,\n ...position,\n },\n },\n errors: [],\n },\n});\n\nexport const moveDesignOptimisticResponse = (designs) => ({\n __typename: 'Mutation',\n designManagementMove: {\n __typename: 'DesignManagementMovePayload',\n designCollection: {\n __typename: 'DesignCollection',\n designs: {\n __typename: 'DesignConnection',\n nodes: designs,\n },\n },\n errors: [],\n },\n});\n","import { __ } from '~/locale';\n\nexport const JIRA_IMPORT_SUCCESS_ALERT_HIDE_MAP_KEY = 'jira-import-success-alert-hide-map';\n\nexport const debounceWait = 500;\n\nexport const dropdownLabel = __(\n 'The GitLab user to which the Jira user %{jiraDisplayName} will be mapped',\n);\n\nexport const previousImportsMessage = __(`You have imported from this project\n %{numberOfPreviousImports} times before. Each new import will create duplicate issues.`);\n\nexport const tableConfig = [\n {\n key: 'jiraDisplayName',\n label: __('Jira display name'),\n },\n {\n key: 'arrow',\n label: '',\n },\n {\n key: 'gitlabUsername',\n label: __('GitLab username'),\n },\n];\n\nexport const userMappingMessage = __(`Jira users have been imported from the configured Jira\n instance. They can be mapped by selecting a GitLab user from the dropdown in the \"GitLab username\"\n column. When the form appears, the dropdown defaults to the user conducting the import.`);\n\n// pageSize must match the MAX_USERS value in app/services/jira_import/users_mapper_service.rb\nexport const userMappingsPageSize = 50;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"UserWithType\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":111}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n\\nfragment UserWithType on User {\\n ...User\\n type\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"UserWithType\"] = oneQuery(doc, \"UserWithType\");\n \n","import * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { sanitize } from '~/lib/dompurify';\n\n// We currently load + parse the data from the issue app and related merge request\nlet cachedParsedData;\n\nexport const parseIssuableData = (el) => {\n try {\n if (cachedParsedData) return cachedParsedData;\n\n const parsedData = JSON.parse(el.dataset.initial);\n parsedData.initialTitleHtml = sanitize(parsedData.initialTitleHtml);\n parsedData.initialDescriptionHtml = sanitize(parsedData.initialDescriptionHtml);\n\n cachedParsedData = parsedData;\n\n return parsedData;\n } catch (e) {\n Sentry.captureException(e);\n\n return {};\n }\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button',{staticClass:\"ml-sm-2 gl-w-full sm:gl-w-auto\",attrs:{\"loading\":_vm.isResolving},on:{\"click\":function($event){return _vm.$emit('onClick')}}},[_vm._v(\"\\n \"+_vm._s(_vm.buttonTitle)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_resolve_button.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_resolve_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\n\nexport default {\n name: 'ResolveDiscussionButton',\n components: {\n GlButton,\n },\n props: {\n isResolving: {\n type: Boolean,\n required: false,\n default: false,\n },\n buttonTitle: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <gl-button\n :loading=\"isResolving\"\n class=\"ml-sm-2 gl-w-full sm:gl-w-auto\"\n @click=\"$emit('onClick')\"\n >\n {{ buttonTitle }}\n </gl-button>\n</template>\n","import { render, staticRenderFns } from \"./discussion_resolve_button.vue?vue&type=template&id=f8c074dc\"\nimport script from \"./discussion_resolve_button.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_resolve_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import uniqueId from 'lodash/uniqueId';\nimport GlDisclosureDropdownItem from './disclosure_dropdown_item';\nimport { isGroup } from './utils';\nimport { DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS, DISCLOSURE_DROPDOWN_GROUP_NAME } from './constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst BORDER_CLASSES = {\n [DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.top]: 'gl-border-t gl-border-t-dropdown gl-pt-2 gl-mt-2',\n [DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.bottom]: 'gl-border-b gl-border-b-dropdown gl-pb-2 gl-mb-2'\n};\nvar script = {\n name: DISCLOSURE_DROPDOWN_GROUP_NAME,\n components: {\n GlDisclosureDropdownItem\n },\n props: {\n /**\n * Group of items\n */\n group: {\n type: Object,\n required: false,\n default: null,\n validator: isGroup\n },\n /**\n * If 'true', will set top border for the group\n * to separate from other groups. You can control\n * the border position using the `borderPosition`\n * property.\n */\n bordered: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Controls the position of the group's border. Valid\n * values are 'top' and 'bottom'.\n */\n borderPosition: {\n type: String,\n required: false,\n default: DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.top,\n validator: value => Object.keys(DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS).includes(value)\n }\n },\n computed: {\n borderClass() {\n return this.bordered ? BORDER_CLASSES[this.borderPosition] : null;\n },\n showHeader() {\n var _this$group;\n return this.$scopedSlots['group-label'] || ((_this$group = this.group) === null || _this$group === void 0 ? void 0 : _this$group.name);\n },\n groupLabeledBy() {\n return this.showHeader ? this.nameId : null;\n }\n },\n created() {\n this.nameId = uniqueId('gl-disclosure-dropdown-group-');\n },\n methods: {\n handleAction(action) {\n this.$emit('action', action);\n },\n uniqueItemId() {\n return uniqueId(`disclosure-item-`);\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{class:_vm.borderClass},[(_vm.showHeader)?_c('div',{staticClass:\"gl-py-2 gl-pl-4 gl-text-sm gl-font-bold gl-text-strong\",attrs:{\"id\":_vm.nameId,\"aria-hidden\":\"true\"}},[_vm._t(\"group-label\",function(){return [_vm._v(_vm._s(_vm.group.name))]})],2):_vm._e(),_vm._v(\" \"),_c('ul',{staticClass:\"gl-mb-0 gl-list-none gl-pl-0\",attrs:{\"aria-labelledby\":_vm.groupLabeledBy}},[_vm._t(\"default\",function(){return _vm._l((_vm.group.items),function(item){return _c('gl-disclosure-dropdown-item',{key:_vm.uniqueItemId(),attrs:{\"item\":item},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._t(\"list-item\",null,{\"item\":item})]},proxy:true}],null,true)})})})],2)])};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\nexport { BORDER_CLASSES };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"item-body gl-flex gl-items-center gl-gap-3\",class:{\n 'issuable-info-container': !_vm.canReorder,\n 'card-body': _vm.canReorder,\n }},[_c('div',{staticClass:\"item-contents py-xl-0 flex-xl-nowrap gl-flex gl-min-h-7 gl-grow gl-flex-wrap gl-items-center gl-gap-2 gl-px-3 gl-py-2\"},[_c('div',{staticClass:\"item-title gl-flex gl-min-w-0 gl-gap-3\"},[(_vm.hasState)?_c('gl-icon',{ref:\"iconElementXL\",class:_vm.iconClasses,attrs:{\"id\":`iconElementXL-${_vm.itemId}`,\"name\":_vm.iconName,\"title\":_vm.stateTitle,\"aria-label\":_vm.state}}):_vm._e(),_vm._v(\" \"),_c('gl-tooltip',{attrs:{\"target\":`iconElementXL-${_vm.itemId}`}},[_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.stateTitle),expression:\"stateTitle\"}]})]),_vm._v(\" \"),(_vm.confidential)?_c('gl-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"confidential-icon\",attrs:{\"name\":\"eye-slash\",\"title\":_vm.__('Confidential'),\"aria-label\":_vm.__('Confidential')}}):_vm._e(),_vm._v(\" \"),_c('gl-link',{staticClass:\"sortable-link\",attrs:{\"href\":_vm.computedPath},on:{\"click\":_vm.handleTitleClick}},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"item-info-area ml-xl-0 gl-ml-6 gl-flex gl-shrink-0 gl-grow gl-gap-3\"},[_c('div',{staticClass:\"item-meta gl-flex gl-flex-wrap-reverse gl-gap-3 md:gl-justify-between\"},[_c('div',{staticClass:\"item-path-area item-path-id gl-flex gl-flex-wrap gl-items-center gl-gap-3\"},[_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.iconElement}},[_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.stateTitle),expression:\"stateTitle\"}]})]),_vm._v(\" \"),(_vm.itemPath)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"path-id-text gl-inline-block\",attrs:{\"title\":_vm.itemPath}},[_vm._v(_vm._s(_vm.itemPath))]):_vm._e(),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.pathIdSeparator)+_vm._s(_vm.itemId))])],1),_vm._v(\" \"),_c('div',{staticClass:\"item-attributes-area gl-flex gl-items-center gl-gap-3\"},[(_vm.hasPipeline)?_c('span',{staticClass:\"mr-ci-status order-md-last -gl-mr-2 md:gl-ml-3\"},[_c('ci-icon',{attrs:{\"status\":_vm.pipelineStatus}})],1):_vm._e(),_vm._v(\" \"),(_vm.hasMilestone)?_c('issue-milestone',{staticClass:\"item-milestone order-md-first gl-ml-2 gl-flex gl-items-center gl-text-sm\",attrs:{\"milestone\":_vm.milestone}}):_vm._e(),_vm._v(\" \"),(_vm.weight > 0)?_c('span',{staticClass:\"order-md-1\"},[_c('issue-weight',{staticClass:\"item-weight gl-flex gl-items-center\",attrs:{\"weight\":_vm.weight}})],1):_vm._e(),_vm._v(\" \"),(_vm.dueDate)?_c('span',{staticClass:\"order-md-1\"},[_c('issue-due-date',{attrs:{\"date\":_vm.dueDate,\"closed\":Boolean(_vm.closedAt),\"tooltip-placement\":\"top\",\"css-class\":\"item-due-date gl-flex gl-items-center\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.hasAssignees)?_c('issue-assignees',{staticClass:\"item-assignees order-md-2 gl-flex gl-shrink-0 gl-items-center gl-self-end\",attrs:{\"assignees\":_vm.assignees}}):_vm._e()],1)])])]),_vm._v(\" \"),(_vm.isLocked)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-inline-block gl-cursor-not-allowed\",attrs:{\"title\":_vm.lockedMessage,\"data-testid\":\"lockIcon\"}},[_c('gl-icon',{attrs:{\"name\":\"lock\"}})],1):(_vm.canRemove)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"js-issue-item-remove-button gl-mr-2\",attrs:{\"icon\":\"close\",\"category\":\"tertiary\",\"size\":\"small\",\"disabled\":_vm.removeDisabled,\"data-testid\":\"remove-related-issue-button\",\"title\":_vm.__('Remove'),\"aria-label\":_vm.__('Remove')},on:{\"click\":_vm.onRemoveRequest}}):_vm._e(),_vm._v(\" \"),_c('work-item-detail-modal',{ref:\"modal\",attrs:{\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid},on:{\"close\":_vm.updateQueryParam,\"workItemDeleted\":_vm.handleWorkItemDeleted,\"openReportAbuse\":_vm.openReportAbuseDrawer}}),_vm._v(\" \"),(_vm.isReportDrawerOpen && _vm.reportAbusePath)?_c('abuse-category-selector',{attrs:{\"reported-user-id\":_vm.reportedUserId,\"reported-from-url\":_vm.reportedUrl,\"show-drawer\":_vm.isReportDrawerOpen},on:{\"close-drawer\":function($event){return _vm.toggleReportAbuseDrawer(false)}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./related_issuable_item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./related_issuable_item.vue?vue&type=script&lang=js\"","<script>\nimport '~/commons/bootstrap';\nimport { GlIcon, GlLink, GlTooltip, GlTooltipDirective, GlButton } from '@gitlab/ui';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport IssueDueDate from '~/boards/components/issue_due_date.vue';\nimport { TYPENAME_WORK_ITEM } from '~/graphql_shared/constants';\nimport { convertToGraphQLId, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { isModifierKey } from '~/lib/utils/common_utils';\nimport { setUrlParams, updateHistory } from '~/lib/utils/url_utility';\nimport { sprintf } from '~/locale';\nimport CiIcon from '~/vue_shared/components/ci_icon/ci_icon.vue';\nimport WorkItemDetailModal from '~/work_items/components/work_item_detail_modal.vue';\nimport { DETAIL_VIEW_QUERY_PARAM_NAME } from '~/work_items/constants';\nimport AbuseCategorySelector from '~/abuse_reports/components/abuse_category_selector.vue';\nimport relatedIssuableMixin from '../mixins/related_issuable_mixin';\nimport IssueAssignees from './issue_assignees.vue';\nimport IssueMilestone from './issue_milestone.vue';\n\nexport default {\n components: {\n IssueMilestone,\n IssueAssignees,\n CiIcon,\n GlIcon,\n GlLink,\n GlTooltip,\n IssueWeight: () => import('ee_component/issues/components/issue_weight.vue'),\n IssueDueDate,\n GlButton,\n WorkItemDetailModal,\n AbuseCategorySelector,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n SafeHtml,\n },\n mixins: [relatedIssuableMixin],\n inject: {\n reportAbusePath: {\n default: '',\n },\n },\n props: {\n canReorder: {\n type: Boolean,\n required: false,\n default: false,\n },\n isLocked: {\n type: Boolean,\n required: false,\n default: false,\n },\n lockedMessage: {\n type: String,\n required: false,\n default: '',\n },\n workItemType: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n isReportDrawerOpen: false,\n reportedUserId: 0,\n reportedUrl: '',\n };\n },\n computed: {\n stateTitle() {\n return sprintf(\n '<span class=\"gl-font-bold\">%{state}</span> %{timeInWords}<br/><span class=\"gl-text-tertiary\">%{timestamp}</span>',\n {\n state: this.stateText,\n timeInWords: this.stateTimeInWords,\n timestamp: this.stateTimestamp,\n },\n );\n },\n iconClasses() {\n return `${this.iconClass} ic-${this.iconName}`;\n },\n workItemId() {\n return convertToGraphQLId(TYPENAME_WORK_ITEM, this.idKey);\n },\n workItemIid() {\n return String(this.iid);\n },\n },\n methods: {\n handleTitleClick(event) {\n if (this.workItemType === 'TASK') {\n if (isModifierKey(event)) {\n return;\n }\n event.preventDefault();\n this.$refs.modal.show();\n this.updateQueryParam(this.idKey);\n }\n },\n handleWorkItemDeleted(workItemId) {\n this.$emit('relatedIssueRemoveRequest', workItemId);\n },\n updateQueryParam(id) {\n updateHistory({\n url: setUrlParams({ [DETAIL_VIEW_QUERY_PARAM_NAME]: id }),\n replace: true,\n });\n },\n toggleReportAbuseDrawer(isOpen, reply = {}) {\n this.isReportDrawerOpen = isOpen;\n this.reportedUrl = reply.url;\n this.reportedUserId = reply.author ? getIdFromGraphQLId(reply.author.id) : 0;\n },\n openReportAbuseDrawer(reply) {\n this.toggleReportAbuseDrawer(true, reply);\n },\n },\n};\n</script>\n\n<template>\n <div\n :class=\"{\n 'issuable-info-container': !canReorder,\n 'card-body': canReorder,\n }\"\n class=\"item-body gl-flex gl-items-center gl-gap-3\"\n >\n <div\n class=\"item-contents py-xl-0 flex-xl-nowrap gl-flex gl-min-h-7 gl-grow gl-flex-wrap gl-items-center gl-gap-2 gl-px-3 gl-py-2\"\n >\n <!-- Title area: Status icon (XL) and title -->\n <div class=\"item-title gl-flex gl-min-w-0 gl-gap-3\">\n <gl-icon\n v-if=\"hasState\"\n :id=\"`iconElementXL-${itemId}`\"\n ref=\"iconElementXL\"\n :class=\"iconClasses\"\n :name=\"iconName\"\n :title=\"stateTitle\"\n :aria-label=\"state\"\n />\n <gl-tooltip :target=\"`iconElementXL-${itemId}`\">\n <span v-safe-html=\"stateTitle\"></span>\n </gl-tooltip>\n <gl-icon\n v-if=\"confidential\"\n v-gl-tooltip\n name=\"eye-slash\"\n :title=\"__('Confidential')\"\n class=\"confidential-icon\"\n :aria-label=\"__('Confidential')\"\n />\n <gl-link :href=\"computedPath\" class=\"sortable-link\" @click=\"handleTitleClick\">\n {{ title }}\n </gl-link>\n </div>\n\n <!-- Info area: meta, path, and assignees -->\n <div class=\"item-info-area ml-xl-0 gl-ml-6 gl-flex gl-shrink-0 gl-grow gl-gap-3\">\n <!-- Meta area: path and attributes -->\n <!-- If there is no room beside the path, meta attributes are put ABOVE it (gl-flex-wrap-reverse). -->\n <!-- See design: https://gitlab-org.gitlab.io/gitlab-design/hosted/pedro/%2383-issue-mr-rows-cards-spec-previews/#artboard16 -->\n <div class=\"item-meta gl-flex gl-flex-wrap-reverse gl-gap-3 md:gl-justify-between\">\n <!-- Path area: status icon (<XL), path, issue # -->\n <div class=\"item-path-area item-path-id gl-flex gl-flex-wrap gl-items-center gl-gap-3\">\n <gl-tooltip :target=\"() => $refs.iconElement\">\n <span v-safe-html=\"stateTitle\"></span>\n </gl-tooltip>\n <span\n v-if=\"itemPath\"\n v-gl-tooltip\n :title=\"itemPath\"\n class=\"path-id-text gl-inline-block\"\n >{{ itemPath }}</span\n >\n <span>{{ pathIdSeparator }}{{ itemId }}</span>\n </div>\n\n <!-- Attributes area: CI, epic count, weight, milestone -->\n <!-- They have a different order on large screen sizes -->\n <div class=\"item-attributes-area gl-flex gl-items-center gl-gap-3\">\n <span v-if=\"hasPipeline\" class=\"mr-ci-status order-md-last -gl-mr-2 md:gl-ml-3\">\n <ci-icon :status=\"pipelineStatus\" />\n </span>\n\n <issue-milestone\n v-if=\"hasMilestone\"\n :milestone=\"milestone\"\n class=\"item-milestone order-md-first gl-ml-2 gl-flex gl-items-center gl-text-sm\"\n />\n\n <!-- Flex order for slots is defined in the parent component: e.g. related_issues_block.vue -->\n <span v-if=\"weight > 0\" class=\"order-md-1\">\n <issue-weight :weight=\"weight\" class=\"item-weight gl-flex gl-items-center\" />\n </span>\n\n <span v-if=\"dueDate\" class=\"order-md-1\">\n <issue-due-date\n :date=\"dueDate\"\n :closed=\"Boolean(closedAt)\"\n tooltip-placement=\"top\"\n css-class=\"item-due-date gl-flex gl-items-center\"\n />\n </span>\n\n <issue-assignees\n v-if=\"hasAssignees\"\n :assignees=\"assignees\"\n class=\"item-assignees order-md-2 gl-flex gl-shrink-0 gl-items-center gl-self-end\"\n />\n </div>\n </div>\n </div>\n </div>\n\n <span\n v-if=\"isLocked\"\n v-gl-tooltip\n class=\"gl-inline-block gl-cursor-not-allowed\"\n :title=\"lockedMessage\"\n data-testid=\"lockIcon\"\n >\n <gl-icon name=\"lock\" />\n </span>\n <gl-button\n v-else-if=\"canRemove\"\n v-gl-tooltip\n icon=\"close\"\n category=\"tertiary\"\n size=\"small\"\n :disabled=\"removeDisabled\"\n class=\"js-issue-item-remove-button gl-mr-2\"\n data-testid=\"remove-related-issue-button\"\n :title=\"__('Remove')\"\n :aria-label=\"__('Remove')\"\n @click=\"onRemoveRequest\"\n />\n <work-item-detail-modal\n ref=\"modal\"\n :work-item-id=\"workItemId\"\n :work-item-iid=\"workItemIid\"\n @close=\"updateQueryParam\"\n @workItemDeleted=\"handleWorkItemDeleted\"\n @openReportAbuse=\"openReportAbuseDrawer\"\n />\n <abuse-category-selector\n v-if=\"isReportDrawerOpen && reportAbusePath\"\n :reported-user-id=\"reportedUserId\"\n :reported-from-url=\"reportedUrl\"\n :show-drawer=\"isReportDrawerOpen\"\n @close-drawer=\"toggleReportAbuseDrawer(false)\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./related_issuable_item.vue?vue&type=template&id=5d26538e\"\nimport script from \"./related_issuable_item.vue?vue&type=script&lang=js\"\nexport * from \"./related_issuable_item.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('timeline-entry-item',{staticClass:\"note note-discussion\"},[_c('div',{staticClass:\"timeline-content\"},[_c('div',{staticClass:\"discussion js-discussion-container\",attrs:{\"data-discussion-id\":_vm.discussion.id,\"data-discussion-resolvable\":_vm.discussion.resolvable,\"data-discussion-resolved\":_vm.discussion.resolved,\"data-testid\":\"discussion-content\"}},[(_vm.shouldRenderDiffs)?_c('diff-discussion-header',{attrs:{\"discussion\":_vm.discussion}}):_vm._e(),_vm._v(\" \"),(!_vm.shouldHideDiscussionBody)?_c('div',{staticClass:\"discussion-body\"},[_c(_vm.wrapperComponent,_vm._b({tag:\"component\",staticClass:\"card discussion-wrapper\"},'component',_vm.wrapperComponentProps,false),[_c('discussion-notes',{attrs:{\"discussion\":_vm.discussion,\"diff-line\":_vm.diffLine,\"help-page-path\":_vm.helpPagePath,\"is-expanded\":_vm.isExpanded,\"line\":_vm.line,\"should-group-replies\":_vm.shouldGroupReplies,\"is-overview-tab\":_vm.isOverviewTab,\"should-scroll-to-note\":_vm.shouldScrollToNote},on:{\"startReplying\":_vm.showReplyForm},scopedSlots:_vm._u([{key:\"avatar-badge\",fn:function(){return [_vm._t(\"avatar-badge\")]},proxy:true},{key:\"footer\",fn:function({ showReplies }){return [(_vm.showDraft(_vm.discussion.reply_id))?_c('draft-note',{key:`draft_${_vm.discussion.id}`,attrs:{\"draft\":_vm.draftForDiscussion(_vm.discussion.reply_id),\"line\":_vm.line}}):(_vm.canShowReplyActions && showReplies)?_c('li',{staticClass:\"discussion-reply-holder clearfix gl-bg-subtle\",class:_vm.discussionHolderClass,attrs:{\"data-testid\":\"reply-wrapper\"}},[_c('div',{staticClass:\"flash-container !gl-mt-0 gl-mb-2\"}),_vm._v(\" \"),(!_vm.isReplying && _vm.userCanReply)?_c('discussion-actions',{attrs:{\"discussion\":_vm.discussion,\"is-resolving\":_vm.isResolving,\"resolve-button-title\":_vm.resolveButtonTitle,\"resolve-with-issue-path\":_vm.resolveWithIssuePath,\"should-show-jump-to-next-discussion\":_vm.shouldShowJumpToNextDiscussion},on:{\"showReplyForm\":_vm.showReplyForm,\"resolve\":_vm.resolveHandler}}):_vm._e(),_vm._v(\" \"),(_vm.isReplying)?_c('note-form',{ref:\"noteForm\",attrs:{\"discussion\":_vm.discussion,\"diff-file\":_vm.diffFile,\"line\":_vm.diffLine,\"save-button-title\":_vm.saveButtonTitle,\"autofocus\":!_vm.hasDraft,\"autosave-key\":_vm.autosaveKey},on:{\"handleFormUpdateAddToReview\":_vm.addReplyToReview,\"handleFormUpdate\":_vm.saveReply,\"cancelForm\":_vm.cancelReplyForm}}):_vm._e(),_vm._v(\" \"),(!_vm.isLoggedIn)?_c('note-signed-out-widget'):_vm._e()],1):_vm._e()]}}],null,true)})],1)],1):_vm._e()],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./diff_discussion_header.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./diff_discussion_header.vue?vue&type=script&lang=js\"","<script>\nimport { GlAvatar, GlAvatarLink } from '@gitlab/ui';\nimport { escape } from 'lodash';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions } from 'vuex';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { truncateSha } from '~/lib/utils/text_utility';\nimport { s__, __, sprintf } from '~/locale';\nimport { FILE_DIFF_POSITION_TYPE } from '~/diffs/constants';\nimport NoteEditedText from './note_edited_text.vue';\nimport NoteHeader from './note_header.vue';\nimport ToggleRepliesWidget from './toggle_replies_widget.vue';\n\nexport default {\n name: 'DiffDiscussionHeader',\n components: {\n GlAvatar,\n GlAvatarLink,\n NoteEditedText,\n NoteHeader,\n ToggleRepliesWidget,\n },\n directives: {\n SafeHtml,\n },\n props: {\n discussion: {\n type: Object,\n required: true,\n },\n },\n computed: {\n notes() {\n return this.discussion.notes;\n },\n firstNote() {\n return this.notes[0];\n },\n lastNote() {\n return this.notes[this.notes.length - 1];\n },\n author() {\n return this.firstNote.author;\n },\n resolvedText() {\n return this.discussion.resolved_by_push ? __('Automatically resolved') : __('Resolved');\n },\n lastUpdatedBy() {\n return this.notes.length > 1 ? this.lastNote.author : null;\n },\n lastUpdatedAt() {\n return this.notes.length > 1 ? this.lastNote.created_at : null;\n },\n headerText() {\n const linkStart = `<a href=\"${escape(this.discussion.discussion_path)}\">`;\n const linkEnd = '</a>';\n\n const { commit_id: commitId } = this.discussion;\n let commitDisplay = commitId;\n\n if (commitId) {\n commitDisplay = `<span class=\"commit-sha\">${truncateSha(commitId)}</span>`;\n }\n\n const {\n for_commit: isForCommit,\n diff_discussion: isDiffDiscussion,\n active: isActive,\n position,\n } = this.discussion;\n\n let text = s__('MergeRequests|started a thread');\n if (isForCommit) {\n text = s__(\n 'MergeRequests|started a thread on commit %{linkStart}%{commitDisplay}%{linkEnd}',\n );\n } else if (isDiffDiscussion && commitId) {\n text = isActive\n ? s__('MergeRequests|started a thread on commit %{linkStart}%{commitDisplay}%{linkEnd}')\n : s__(\n 'MergeRequests|started a thread on an outdated change in commit %{linkStart}%{commitDisplay}%{linkEnd}',\n );\n } else if (isDiffDiscussion && position?.position_type === FILE_DIFF_POSITION_TYPE) {\n text = isActive\n ? s__('MergeRequests|started a thread on %{linkStart}a file%{linkEnd}')\n : s__('MergeRequests|started a thread on %{linkStart}an old version of a file%{linkEnd}');\n } else if (isDiffDiscussion) {\n text = isActive\n ? s__('MergeRequests|started a thread on %{linkStart}the diff%{linkEnd}')\n : s__(\n 'MergeRequests|started a thread on %{linkStart}an old version of the diff%{linkEnd}',\n );\n }\n\n return sprintf(text, { commitDisplay, linkStart, linkEnd }, false);\n },\n toggleClass() {\n return this.discussion.expanded ? 'expanded' : 'collapsed';\n },\n replies() {\n return this.notes.filter((note) => !note.system);\n },\n },\n methods: {\n ...mapActions(['toggleDiscussion']),\n toggleDiscussionHandler() {\n this.toggleDiscussion({ discussionId: this.discussion.id });\n },\n },\n};\n</script>\n\n<template>\n <div class=\"discussion-header gl-flex gl-items-center\">\n <div v-once class=\"timeline-avatar gl-shrink-0 gl-self-start\">\n <gl-avatar-link\n v-if=\"author\"\n :href=\"author.path\"\n :data-user-id=\"author.id\"\n :data-username=\"author.username\"\n class=\"js-user-link\"\n >\n <gl-avatar :src=\"author.avatar_url\" :alt=\"author.name\" :size=\"32\" />\n </gl-avatar-link>\n </div>\n <div class=\"timeline-content gl-ml-3 gl-w-full\" :class=\"toggleClass\">\n <note-header :author=\"author\" :created-at=\"firstNote.created_at\" :note-id=\"firstNote.id\">\n <span v-safe-html=\"headerText\"></span>\n </note-header>\n <note-edited-text\n v-if=\"discussion.resolved\"\n :edited-at=\"discussion.resolved_at\"\n :edited-by=\"discussion.resolved_by\"\n :action-text=\"resolvedText\"\n class-name=\"discussion-headline-light js-discussion-headline gl-mt-1 gl-pl-3\"\n />\n <toggle-replies-widget\n :collapsed=\"!discussion.expanded\"\n :replies=\"replies\"\n class=\"gl-border-t -gl-mx-3 -gl-mb-3 gl-mt-4 !gl-border-x-0 !gl-border-b-0 gl-border-t-subtle dark:gl-border-t-section\"\n @toggle=\"toggleDiscussionHandler\"\n />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./diff_discussion_header.vue?vue&type=template&id=3bf75bc7\"\nimport script from \"./diff_discussion_header.vue?vue&type=script&lang=js\"\nexport * from \"./diff_discussion_header.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"discussion-header gl-flex gl-items-center\"},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"timeline-content gl-ml-3 gl-w-full\",class:_vm.toggleClass},[_c('note-header',{attrs:{\"author\":_vm.author,\"created-at\":_vm.firstNote.created_at,\"note-id\":_vm.firstNote.id}},[_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.headerText),expression:\"headerText\"}]})]),_vm._v(\" \"),(_vm.discussion.resolved)?_c('note-edited-text',{attrs:{\"edited-at\":_vm.discussion.resolved_at,\"edited-by\":_vm.discussion.resolved_by,\"action-text\":_vm.resolvedText,\"class-name\":\"discussion-headline-light js-discussion-headline gl-mt-1 gl-pl-3\"}}):_vm._e(),_vm._v(\" \"),_c('toggle-replies-widget',{staticClass:\"gl-border-t -gl-mx-3 -gl-mb-3 gl-mt-4 !gl-border-x-0 !gl-border-b-0 gl-border-t-subtle dark:gl-border-t-section\",attrs:{\"collapsed\":!_vm.discussion.expanded,\"replies\":_vm.replies},on:{\"toggle\":_vm.toggleDiscussionHandler}})],1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"timeline-avatar gl-shrink-0 gl-self-start\"},[(_vm.author)?_c('gl-avatar-link',{staticClass:\"js-user-link\",attrs:{\"href\":_vm.author.path,\"data-user-id\":_vm.author.id,\"data-username\":_vm.author.username}},[_c('gl-avatar',{attrs:{\"src\":_vm.author.avatar_url,\"alt\":_vm.author.name,\"size\":32}})],1):_vm._e()],1)\n}]\n\nexport { render, staticRenderFns }","<script>\nimport { GlButton, GlSkeletonLoader } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapState, mapActions } from 'vuex';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport DiffFileHeader from '~/diffs/components/diff_file_header.vue';\nimport ImageDiffOverlay from '~/diffs/components/image_diff_overlay.vue';\nimport { getDiffMode } from '~/diffs/store/utils';\nimport { diffViewerModes } from '~/ide/constants';\nimport DiffViewer from '~/vue_shared/components/diff_viewer/diff_viewer.vue';\nimport { isCollapsed } from '~/diffs/utils/diff_file';\nimport { FILE_DIFF_POSITION_TYPE, IMAGE_DIFF_POSITION_TYPE } from '~/diffs/constants';\n\nconst FIRST_CHAR_REGEX = /^(\\+|-| )/;\n\nexport default {\n components: {\n DiffFileHeader,\n GlSkeletonLoader,\n DiffViewer,\n ImageDiffOverlay,\n GlButton,\n },\n directives: {\n SafeHtml,\n },\n props: {\n discussion: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n error: false,\n };\n },\n computed: {\n ...mapState({\n projectPath: (state) => state.diffs.projectPath,\n }),\n diffMode() {\n return getDiffMode(this.discussion.diff_file);\n },\n diffViewerMode() {\n return this.discussion.diff_file?.viewer.name;\n },\n fileDiffRefs() {\n return this.discussion.diff_file.diff_refs;\n },\n headSha() {\n return (this.fileDiffRefs ? this.fileDiffRefs.head_sha : this.discussion.commit_id) || '';\n },\n baseSha() {\n return (this.fileDiffRefs ? this.fileDiffRefs.base_sha : this.discussion.commit_id) || '';\n },\n isTextFile() {\n return this.diffViewerMode === diffViewerModes.text;\n },\n hasTruncatedDiffLines() {\n return (\n this.discussion.truncated_diff_lines && this.discussion.truncated_diff_lines.length !== 0\n );\n },\n isCollapsed() {\n return isCollapsed(this.discussion.diff_file);\n },\n positionType() {\n return this.discussion.position?.position_type;\n },\n isFileDiscussion() {\n if (!this.discussion.diff_file) {\n return (\n this.discussion.original_position.position_type === IMAGE_DIFF_POSITION_TYPE ||\n this.discussion.original_position.position_type === FILE_DIFF_POSITION_TYPE\n );\n }\n\n return this.positionType === FILE_DIFF_POSITION_TYPE;\n },\n showHeader() {\n if (this.discussion.diff_file) return true;\n\n return (\n this.discussion.original_position.position_type === FILE_DIFF_POSITION_TYPE ||\n this.discussion.original_position.position_type === IMAGE_DIFF_POSITION_TYPE\n );\n },\n backfilledDiffFile() {\n /*\n * https://gitlab.com/gitlab-com/gl-infra/production/-/issues/19118\n *\n * For the vast majority of cases, this should just be discussion.diff_file,\n * but due to that defect, there are potentially some file discussions that cannot\n * be rendered because there is no diff file attached\n *\n * This allows the header to display (sans file mode change) to roughly simulate\n * having an actual diff file.\n */\n return (\n this.discussion.diff_file || {\n file_path: this.discussion.original_position.new_path,\n }\n );\n },\n },\n mounted() {\n if (this.isTextFile && !this.hasTruncatedDiffLines) {\n this.fetchDiff();\n }\n },\n methods: {\n ...mapActions(['fetchDiscussionDiffLines']),\n fetchDiff() {\n this.error = false;\n this.fetchDiscussionDiffLines(this.discussion)\n .then(this.highlight)\n .catch(() => {\n this.error = true;\n });\n },\n trimChar(line) {\n return line.replace(FIRST_CHAR_REGEX, '');\n },\n },\n userColorSchemeClass: window.gon.user_color_scheme,\n};\n</script>\n\n<template>\n <div :class=\"{ 'text-file': isTextFile }\" class=\"diff-file file-holder\">\n <diff-file-header\n v-if=\"showHeader\"\n :discussion-path=\"discussion.discussion_path\"\n :diff-file=\"backfilledDiffFile\"\n :can-current-user-fork=\"false\"\n class=\"gl-border gl-border-section\"\n :expanded=\"!isCollapsed\"\n />\n <div v-if=\"isTextFile\" class=\"diff-content\">\n <table class=\"code js-syntax-highlight\" :class=\"$options.userColorSchemeClass\">\n <template v-if=\"!isFileDiscussion\">\n <template v-if=\"hasTruncatedDiffLines\">\n <tr\n v-for=\"line in discussion.truncated_diff_lines\"\n v-once\n :key=\"line.line_code\"\n class=\"line_holder\"\n >\n <td :class=\"line.type\" class=\"diff-line-num old_line\">{{ line.old_line }}</td>\n <td :class=\"line.type\" class=\"diff-line-num new_line\">{{ line.new_line }}</td>\n <td\n v-safe-html=\"trimChar(line.rich_text)\"\n :class=\"line.type\"\n class=\"line_content\"\n ></td>\n </tr>\n </template>\n <tr v-if=\"!hasTruncatedDiffLines\" class=\"line_holder line-holder-placeholder\">\n <td class=\"old_line diff-line-num\"></td>\n <td class=\"new_line diff-line-num\"></td>\n <td v-if=\"error\" class=\"js-error-lazy-load-diff diff-loading-error-block\">\n {{ __('Unable to load the diff') }}\n <gl-button\n class=\"js-toggle-lazy-diff-retry-button gl-font-regular\"\n @click=\"fetchDiff\"\n >\n {{ __('Try again') }}\n </gl-button>\n </td>\n <td v-else class=\"line_content js-success-lazy-load\">\n <span></span>\n <gl-skeleton-loader />\n <span></span>\n </td>\n </tr>\n </template>\n <tr class=\"notes_holder\">\n <td :class=\"{ '!gl-border-t-0': isFileDiscussion }\" class=\"notes-content\" colspan=\"3\">\n <slot></slot>\n </td>\n </tr>\n </table>\n </div>\n <div v-else class=\"diff-content\">\n <diff-viewer\n v-if=\"!isFileDiscussion\"\n :diff-file=\"discussion.diff_file\"\n :diff-mode=\"diffMode\"\n :diff-viewer-mode=\"diffViewerMode\"\n :new-path=\"discussion.diff_file.new_path\"\n :new-sha=\"headSha\"\n :old-path=\"discussion.diff_file.old_path\"\n :old-sha=\"baseSha\"\n :file-hash=\"discussion.diff_file.file_hash\"\n :project-path=\"projectPath\"\n >\n <template #image-overlay=\"{ renderedWidth, renderedHeight }\">\n <image-diff-overlay\n v-if=\"renderedWidth\"\n :rendered-width=\"renderedWidth\"\n :rendered-height=\"renderedHeight\"\n :discussions=\"discussion\"\n :file-hash=\"discussion.diff_file.file_hash\"\n :show-comment-icon=\"true\"\n :should-toggle-discussion=\"false\"\n badge-class=\"image-comment-badge gl-text-purple-500 gl-bg-white gl-rounded-full gl-border-white gl-border-1 gl-border-solid gl-pointer-events-none gl-shadow-md\"\n />\n </template>\n </diff-viewer>\n <slot></slot>\n </div>\n </div>\n</template>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./diff_with_note.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./diff_with_note.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./diff_with_note.vue?vue&type=template&id=22f33285\"\nimport script from \"./diff_with_note.vue?vue&type=script&lang=js\"\nexport * from \"./diff_with_note.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"diff-file file-holder\",class:{ 'text-file': _vm.isTextFile }},[(_vm.showHeader)?_c('diff-file-header',{staticClass:\"gl-border gl-border-section\",attrs:{\"discussion-path\":_vm.discussion.discussion_path,\"diff-file\":_vm.backfilledDiffFile,\"can-current-user-fork\":false,\"expanded\":!_vm.isCollapsed}}):_vm._e(),_vm._v(\" \"),(_vm.isTextFile)?_c('div',{staticClass:\"diff-content\"},[_c('table',{staticClass:\"code js-syntax-highlight\",class:_vm.$options.userColorSchemeClass},[(!_vm.isFileDiscussion)?[(_vm.hasTruncatedDiffLines)?_vm._m(0):_vm._e(),_vm._v(\" \"),(!_vm.hasTruncatedDiffLines)?_c('tr',{staticClass:\"line_holder line-holder-placeholder\"},[_c('td',{staticClass:\"old_line diff-line-num\"}),_vm._v(\" \"),_c('td',{staticClass:\"new_line diff-line-num\"}),_vm._v(\" \"),(_vm.error)?_c('td',{staticClass:\"js-error-lazy-load-diff diff-loading-error-block\"},[_vm._v(\"\\n \"+_vm._s(_vm.__('Unable to load the diff'))+\"\\n \"),_c('gl-button',{staticClass:\"js-toggle-lazy-diff-retry-button gl-font-regular\",on:{\"click\":_vm.fetchDiff}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Try again'))+\"\\n \")])],1):_c('td',{staticClass:\"line_content js-success-lazy-load\"},[_c('span'),_vm._v(\" \"),_c('gl-skeleton-loader'),_vm._v(\" \"),_c('span')],1)]):_vm._e()]:_vm._e(),_vm._v(\" \"),_c('tr',{staticClass:\"notes_holder\"},[_c('td',{staticClass:\"notes-content\",class:{ '!gl-border-t-0': _vm.isFileDiscussion },attrs:{\"colspan\":\"3\"}},[_vm._t(\"default\")],2)])],2)]):_c('div',{staticClass:\"diff-content\"},[(!_vm.isFileDiscussion)?_c('diff-viewer',{attrs:{\"diff-file\":_vm.discussion.diff_file,\"diff-mode\":_vm.diffMode,\"diff-viewer-mode\":_vm.diffViewerMode,\"new-path\":_vm.discussion.diff_file.new_path,\"new-sha\":_vm.headSha,\"old-path\":_vm.discussion.diff_file.old_path,\"old-sha\":_vm.baseSha,\"file-hash\":_vm.discussion.diff_file.file_hash,\"project-path\":_vm.projectPath},scopedSlots:_vm._u([{key:\"image-overlay\",fn:function({ renderedWidth, renderedHeight }){return [(renderedWidth)?_c('image-diff-overlay',{attrs:{\"rendered-width\":renderedWidth,\"rendered-height\":renderedHeight,\"discussions\":_vm.discussion,\"file-hash\":_vm.discussion.diff_file.file_hash,\"show-comment-icon\":true,\"should-toggle-discussion\":false,\"badge-class\":\"image-comment-badge gl-text-purple-500 gl-bg-white gl-rounded-full gl-border-white gl-border-1 gl-border-solid gl-pointer-events-none gl-shadow-md\"}}):_vm._e()]}}],null,false,1973996370)}):_vm._e(),_vm._v(\" \"),_vm._t(\"default\")],2)],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _vm._l((_vm.discussion.truncated_diff_lines),function(line){return _c('tr',{key:line.line_code,staticClass:\"line_holder\"},[_c('td',{staticClass:\"diff-line-num old_line\",class:line.type},[_vm._v(_vm._s(line.old_line))]),_vm._v(\" \"),_c('td',{staticClass:\"diff-line-num new_line\",class:line.type},[_vm._v(_vm._s(line.new_line))]),_vm._v(\" \"),_c('td',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.trimChar(line.rich_text)),expression:\"trimChar(line.rich_text)\"}],staticClass:\"line_content\",class:line.type})])})\n}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_resolve_with_issue_button.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_resolve_with_issue_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective, GlButton } from '@gitlab/ui';\nimport { s__ } from '~/locale';\n\nexport default {\n i18n: {\n buttonLabel: s__('MergeRequests|Create issue to resolve thread'),\n },\n name: 'ResolveWithIssueButton',\n components: {\n GlButton,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n url: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <div class=\"btn-group\" role=\"group\">\n <gl-button\n v-gl-tooltip\n :href=\"url\"\n :title=\"$options.i18n.buttonLabel\"\n :aria-label=\"$options.i18n.buttonLabel\"\n class=\"new-issue-for-discussion discussion-create-issue-btn gl-w-full sm:gl-w-auto\"\n icon=\"issue-new\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./discussion_resolve_with_issue_button.vue?vue&type=template&id=444b6ab3\"\nimport script from \"./discussion_resolve_with_issue_button.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_resolve_with_issue_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"btn-group\",attrs:{\"role\":\"group\"}},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"new-issue-for-discussion discussion-create-issue-btn gl-w-full sm:gl-w-auto\",attrs:{\"href\":_vm.url,\"title\":_vm.$options.i18n.buttonLabel,\"aria-label\":_vm.$options.i18n.buttonLabel,\"icon\":\"issue-new\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_actions.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_actions.vue?vue&type=script&lang=js\"","<script>\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport DiscussionReplyPlaceholder from './discussion_reply_placeholder.vue';\nimport ResolveDiscussionButton from './discussion_resolve_button.vue';\nimport ResolveWithIssueButton from './discussion_resolve_with_issue_button.vue';\n\nexport default {\n name: 'DiscussionActions',\n components: {\n DiscussionReplyPlaceholder,\n ResolveDiscussionButton,\n ResolveWithIssueButton,\n },\n mixins: [glFeatureFlagsMixin()],\n props: {\n discussion: {\n type: Object,\n required: true,\n },\n isResolving: {\n type: Boolean,\n required: true,\n },\n resolveButtonTitle: {\n type: String,\n required: true,\n },\n resolveWithIssuePath: {\n type: String,\n required: false,\n default: '',\n },\n shouldShowJumpToNextDiscussion: {\n type: Boolean,\n required: true,\n },\n },\n computed: {\n resolvableNotes() {\n return this.discussion.notes.filter((x) => x.resolvable);\n },\n userCanResolveDiscussion() {\n return this.resolvableNotes.every((note) => note.current_user?.can_resolve_discussion);\n },\n },\n};\n</script>\n\n<template>\n <div class=\"discussion-with-resolve-btn clearfix\">\n <discussion-reply-placeholder @focus=\"$emit('showReplyForm')\" />\n\n <div v-if=\"userCanResolveDiscussion\" class=\"btn-group discussion-actions\" role=\"group\">\n <div class=\"btn-group\">\n <resolve-discussion-button\n v-if=\"discussion.resolvable\"\n data-testid=\"resolve-discussion-button\"\n :is-resolving=\"isResolving\"\n :button-title=\"resolveButtonTitle\"\n @onClick=\"$emit('resolve')\"\n />\n </div>\n <resolve-with-issue-button\n v-if=\"discussion.resolvable && resolveWithIssuePath\"\n :url=\"resolveWithIssuePath\"\n />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./discussion_actions.vue?vue&type=template&id=9c3894ac\"\nimport script from \"./discussion_actions.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_actions.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"discussion-with-resolve-btn clearfix\"},[_c('discussion-reply-placeholder',{on:{\"focus\":function($event){return _vm.$emit('showReplyForm')}}}),_vm._v(\" \"),(_vm.userCanResolveDiscussion)?_c('div',{staticClass:\"btn-group discussion-actions\",attrs:{\"role\":\"group\"}},[_c('div',{staticClass:\"btn-group\"},[(_vm.discussion.resolvable)?_c('resolve-discussion-button',{attrs:{\"data-testid\":\"resolve-discussion-button\",\"is-resolving\":_vm.isResolving,\"button-title\":_vm.resolveButtonTitle},on:{\"onClick\":function($event){return _vm.$emit('resolve')}}}):_vm._e()],1),_vm._v(\" \"),(_vm.discussion.resolvable && _vm.resolveWithIssuePath)?_c('resolve-with-issue-button',{attrs:{\"url\":_vm.resolveWithIssuePath}}):_vm._e()],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_notes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_notes.vue?vue&type=script&lang=js\"","<script>\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapActions } from 'vuex';\nimport { __ } from '~/locale';\nimport PlaceholderNote from '~/vue_shared/components/notes/placeholder_note.vue';\nimport PlaceholderSystemNote from '~/vue_shared/components/notes/placeholder_system_note.vue';\nimport SystemNote from '~/vue_shared/components/notes/system_note.vue';\nimport { FILE_DIFF_POSITION_TYPE } from '~/diffs/constants';\nimport { SYSTEM_NOTE } from '../constants';\nimport DiscussionNotesRepliesWrapper from './discussion_notes_replies_wrapper.vue';\nimport NoteEditedText from './note_edited_text.vue';\nimport NoteableNote from './noteable_note.vue';\nimport ToggleRepliesWidget from './toggle_replies_widget.vue';\n\nexport default {\n name: 'DiscussionNotes',\n components: {\n ToggleRepliesWidget,\n NoteEditedText,\n DiscussionNotesRepliesWrapper,\n },\n props: {\n discussion: {\n type: Object,\n required: true,\n },\n isExpanded: {\n type: Boolean,\n required: false,\n default: false,\n },\n diffLine: {\n type: Object,\n required: false,\n default: null,\n },\n line: {\n type: Object,\n required: false,\n default: null,\n },\n shouldGroupReplies: {\n type: Boolean,\n required: false,\n default: false,\n },\n helpPagePath: {\n type: String,\n required: false,\n default: '',\n },\n isOverviewTab: {\n type: Boolean,\n required: false,\n default: false,\n },\n shouldScrollToNote: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n computed: {\n ...mapGetters(['userCanReply']),\n hasReplies() {\n return Boolean(this.replies.length);\n },\n replies() {\n return this.discussion.notes.slice(1);\n },\n firstNote() {\n return this.discussion.notes.slice(0, 1)[0];\n },\n resolvedText() {\n return this.discussion.resolved_by_push ? __('Automatically resolved') : __('Resolved');\n },\n commit() {\n if (!this.discussion.for_commit) {\n return null;\n }\n\n return {\n id: this.discussion.commit_id,\n url: this.discussion.discussion_path,\n };\n },\n isDiscussionInternal() {\n return this.discussion.notes[0]?.internal;\n },\n isFileDiscussion() {\n return this.discussion.position?.position_type === FILE_DIFF_POSITION_TYPE;\n },\n },\n methods: {\n ...mapActions(['toggleDiscussion', 'setSelectedCommentPositionHover']),\n componentName(note) {\n if (note.isPlaceholderNote) {\n if (note.placeholderType === SYSTEM_NOTE) {\n return PlaceholderSystemNote;\n }\n\n return PlaceholderNote;\n }\n\n if (note.system) {\n return SystemNote;\n }\n\n return NoteableNote;\n },\n componentData(note) {\n return note.isPlaceholderNote ? note.notes[0] : note;\n },\n handleMouseEnter(discussion) {\n if (discussion.position) {\n this.setSelectedCommentPositionHover(discussion.position.line_range);\n }\n },\n handleMouseLeave(discussion) {\n // Even though position isn't used here we still don't want to unnecessarily call a mutation\n // The lack of position tells us that highlighting is irrelevant in this context\n if (discussion.position) {\n this.setSelectedCommentPositionHover();\n }\n },\n },\n};\n</script>\n\n<template>\n <div class=\"discussion-notes\">\n <ul\n class=\"notes\"\n @mouseenter=\"handleMouseEnter(discussion)\"\n @mouseleave=\"handleMouseLeave(discussion)\"\n >\n <template v-if=\"shouldGroupReplies\">\n <component\n :is=\"componentName(firstNote)\"\n :note=\"componentData(firstNote)\"\n :line=\"line || diffLine\"\n :discussion-file=\"discussion.diff_file\"\n :commit=\"commit\"\n :help-page-path=\"helpPagePath\"\n :show-reply-button=\"userCanReply\"\n :discussion-root=\"true\"\n :discussion-resolve-path=\"discussion.resolve_path\"\n :is-overview-tab=\"isOverviewTab\"\n :should-scroll-to-note=\"shouldScrollToNote\"\n :internal-note=\"isDiscussionInternal\"\n :class=\"{ '!gl-border-t-0': isFileDiscussion }\"\n @handleDeleteNote=\"$emit('deleteNote')\"\n @startReplying=\"$emit('startReplying')\"\n >\n <template #discussion-resolved-text>\n <note-edited-text\n v-if=\"discussion.resolved\"\n :edited-at=\"discussion.resolved_at\"\n :edited-by=\"discussion.resolved_by\"\n :action-text=\"resolvedText\"\n class-name=\"discussion-headline-light js-discussion-headline discussion-resolved-text -gl-mt-2 gl-mb-3 gl-ml-3\"\n />\n </template>\n <template #avatar-badge>\n <slot name=\"avatar-badge\"></slot>\n </template>\n </component>\n <discussion-notes-replies-wrapper\n v-if=\"hasReplies || userCanReply\"\n :is-diff-discussion=\"discussion.diff_discussion\"\n >\n <toggle-replies-widget\n v-if=\"hasReplies\"\n :collapsed=\"!isExpanded\"\n :replies=\"replies\"\n @toggle=\"toggleDiscussion({ discussionId: discussion.id })\"\n />\n <template v-if=\"isExpanded\">\n <component\n :is=\"componentName(note)\"\n v-for=\"note in replies\"\n :key=\"note.id\"\n :note=\"componentData(note)\"\n :help-page-path=\"helpPagePath\"\n :line=\"line\"\n :internal-note=\"isDiscussionInternal\"\n @handleDeleteNote=\"$emit('deleteNote')\"\n />\n </template>\n <slot :show-replies=\"isExpanded || !hasReplies\" name=\"footer\"></slot>\n </discussion-notes-replies-wrapper>\n </template>\n <template v-else>\n <component\n :is=\"componentName(note)\"\n v-for=\"(note, index) in discussion.notes\"\n :key=\"note.id\"\n :note=\"componentData(note)\"\n :discussion-file=\"discussion.diff_file\"\n :help-page-path=\"helpPagePath\"\n :line=\"diffLine\"\n :discussion-root=\"index === 0\"\n :discussion-resolve-path=\"discussion.resolve_path\"\n :is-overview-tab=\"isOverviewTab\"\n :should-scroll-to-note=\"shouldScrollToNote\"\n :internal-note=\"isDiscussionInternal\"\n @handleDeleteNote=\"$emit('deleteNote')\"\n >\n <template #avatar-badge>\n <slot v-if=\"index === 0\" name=\"avatar-badge\"></slot>\n </template>\n </component>\n <slot :show-replies=\"isExpanded || !hasReplies\" name=\"footer\"></slot>\n </template>\n </ul>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./discussion_notes.vue?vue&type=template&id=199511b7\"\nimport script from \"./discussion_notes.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_notes.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"discussion-notes\"},[_c('ul',{staticClass:\"notes\",on:{\"mouseenter\":function($event){return _vm.handleMouseEnter(_vm.discussion)},\"mouseleave\":function($event){return _vm.handleMouseLeave(_vm.discussion)}}},[(_vm.shouldGroupReplies)?[_c(_vm.componentName(_vm.firstNote),{tag:\"component\",class:{ '!gl-border-t-0': _vm.isFileDiscussion },attrs:{\"note\":_vm.componentData(_vm.firstNote),\"line\":_vm.line || _vm.diffLine,\"discussion-file\":_vm.discussion.diff_file,\"commit\":_vm.commit,\"help-page-path\":_vm.helpPagePath,\"show-reply-button\":_vm.userCanReply,\"discussion-root\":true,\"discussion-resolve-path\":_vm.discussion.resolve_path,\"is-overview-tab\":_vm.isOverviewTab,\"should-scroll-to-note\":_vm.shouldScrollToNote,\"internal-note\":_vm.isDiscussionInternal},on:{\"handleDeleteNote\":function($event){return _vm.$emit('deleteNote')},\"startReplying\":function($event){return _vm.$emit('startReplying')}},scopedSlots:_vm._u([{key:\"discussion-resolved-text\",fn:function(){return [(_vm.discussion.resolved)?_c('note-edited-text',{attrs:{\"edited-at\":_vm.discussion.resolved_at,\"edited-by\":_vm.discussion.resolved_by,\"action-text\":_vm.resolvedText,\"class-name\":\"discussion-headline-light js-discussion-headline discussion-resolved-text -gl-mt-2 gl-mb-3 gl-ml-3\"}}):_vm._e()]},proxy:true},{key:\"avatar-badge\",fn:function(){return [_vm._t(\"avatar-badge\")]},proxy:true}],null,true)}),_vm._v(\" \"),(_vm.hasReplies || _vm.userCanReply)?_c('discussion-notes-replies-wrapper',{attrs:{\"is-diff-discussion\":_vm.discussion.diff_discussion}},[(_vm.hasReplies)?_c('toggle-replies-widget',{attrs:{\"collapsed\":!_vm.isExpanded,\"replies\":_vm.replies},on:{\"toggle\":function($event){return _vm.toggleDiscussion({ discussionId: _vm.discussion.id })}}}):_vm._e(),_vm._v(\" \"),(_vm.isExpanded)?_vm._l((_vm.replies),function(note){return _c(_vm.componentName(note),{key:note.id,tag:\"component\",attrs:{\"note\":_vm.componentData(note),\"help-page-path\":_vm.helpPagePath,\"line\":_vm.line,\"internal-note\":_vm.isDiscussionInternal},on:{\"handleDeleteNote\":function($event){return _vm.$emit('deleteNote')}}})}):_vm._e(),_vm._v(\" \"),_vm._t(\"footer\",null,{\"showReplies\":_vm.isExpanded || !_vm.hasReplies})],2):_vm._e()]:[_vm._l((_vm.discussion.notes),function(note,index){return _c(_vm.componentName(note),{key:note.id,tag:\"component\",attrs:{\"note\":_vm.componentData(note),\"discussion-file\":_vm.discussion.diff_file,\"help-page-path\":_vm.helpPagePath,\"line\":_vm.diffLine,\"discussion-root\":index === 0,\"discussion-resolve-path\":_vm.discussion.resolve_path,\"is-overview-tab\":_vm.isOverviewTab,\"should-scroll-to-note\":_vm.shouldScrollToNote,\"internal-note\":_vm.isDiscussionInternal},on:{\"handleDeleteNote\":function($event){return _vm.$emit('deleteNote')}},scopedSlots:_vm._u([{key:\"avatar-badge\",fn:function(){return [(index === 0)?_vm._t(\"avatar-badge\"):_vm._e()]},proxy:true}],null,true)})}),_vm._v(\" \"),_vm._t(\"footer\",null,{\"showReplies\":_vm.isExpanded || !_vm.hasReplies})]],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./noteable_discussion.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./noteable_discussion.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective, GlIcon } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters } from 'vuex';\nimport DraftNote from '~/batch_comments/components/draft_note.vue';\nimport { createAlert } from '~/alert';\nimport { clearDraft, getDraft, getAutoSaveKeyFromDiscussion } from '~/lib/utils/autosave';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal';\nimport { ignoreWhilePending } from '~/lib/utils/ignore_while_pending';\nimport { s__, __, sprintf } from '~/locale';\nimport diffLineNoteFormMixin from '~/notes/mixins/diff_line_note_form';\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\nimport UserAvatarLink from '~/vue_shared/components/user_avatar/user_avatar_link.vue';\nimport { detectAndConfirmSensitiveTokens } from '~/lib/utils/secret_detection';\nimport { FILE_DIFF_POSITION_TYPE, IMAGE_DIFF_POSITION_TYPE } from '~/diffs/constants';\nimport eventHub from '../event_hub';\nimport noteable from '../mixins/noteable';\nimport resolvable from '../mixins/resolvable';\nimport { createNoteErrorMessages } from '../utils';\nimport DiffDiscussionHeader from './diff_discussion_header.vue';\nimport DiffWithNote from './diff_with_note.vue';\nimport DiscussionActions from './discussion_actions.vue';\nimport DiscussionNotes from './discussion_notes.vue';\nimport NoteForm from './note_form.vue';\nimport NoteSignedOutWidget from './note_signed_out_widget.vue';\n\nexport default {\n name: 'NoteableDiscussion',\n components: {\n GlIcon,\n UserAvatarLink,\n DiffDiscussionHeader,\n NoteSignedOutWidget,\n NoteForm,\n DraftNote,\n TimelineEntryItem,\n DiscussionNotes,\n DiscussionActions,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [noteable, resolvable, diffLineNoteFormMixin],\n props: {\n discussion: {\n type: Object,\n required: true,\n },\n line: {\n type: Object,\n required: false,\n default: null,\n },\n renderDiffFile: {\n type: Boolean,\n required: false,\n default: true,\n },\n alwaysExpanded: {\n type: Boolean,\n required: false,\n default: false,\n },\n discussionsByDiffOrder: {\n type: Boolean,\n required: false,\n default: false,\n },\n helpPagePath: {\n type: String,\n required: false,\n default: '',\n },\n isOverviewTab: {\n type: Boolean,\n required: false,\n default: false,\n },\n shouldScrollToNote: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n data() {\n return {\n isReplying: false,\n isResolving: false,\n resolveAsThread: true,\n };\n },\n computed: {\n ...mapGetters([\n 'convertedDisscussionIds',\n 'getNoteableData',\n 'userCanReply',\n 'showJumpToNextDiscussion',\n 'getUserData',\n ]),\n diffFile() {\n const diffFile = this.discussion.diff_file;\n if (!diffFile) return null;\n\n return {\n ...diffFile,\n view_path: window.location.href.replace(\n /\\/-\\/merge_requests.*/,\n `/-/blob/${diffFile.content_sha}/${diffFile.new_path}`,\n ),\n };\n },\n currentUser() {\n return this.getUserData;\n },\n isLoggedIn() {\n return isLoggedIn();\n },\n commentType() {\n return this.discussion.internal ? __('internal note') : __('comment');\n },\n autosaveKey() {\n return getAutoSaveKeyFromDiscussion(this.discussion);\n },\n newNotePath() {\n return this.getNoteableData.create_note_path;\n },\n saveButtonTitle() {\n return this.discussion.internal ? __('Reply internally') : __('Reply');\n },\n shouldShowJumpToNextDiscussion() {\n return this.showJumpToNextDiscussion(this.discussionsByDiffOrder ? 'diff' : 'discussion');\n },\n shouldRenderDiffs() {\n return this.discussion.diff_discussion && this.renderDiffFile;\n },\n shouldGroupReplies() {\n return !this.shouldRenderDiffs;\n },\n wrapperComponent() {\n return this.shouldRenderDiffs ? DiffWithNote : 'div';\n },\n wrapperComponentProps() {\n if (this.shouldRenderDiffs) {\n return { discussion: this.discussion };\n }\n\n return {};\n },\n isExpanded() {\n return this.discussion.expanded || this.alwaysExpanded;\n },\n shouldHideDiscussionBody() {\n return this.shouldRenderDiffs && !this.isExpanded;\n },\n diffLine() {\n if (this.line) {\n return this.line;\n }\n\n if (this.discussion.diff_discussion && this.discussion.truncated_diff_lines) {\n return this.discussion.truncated_diff_lines.slice(-1)[0];\n }\n\n return null;\n },\n resolveWithIssuePath() {\n return !this.discussionResolved ? this.discussion.resolve_with_issue_path : '';\n },\n canShowReplyActions() {\n if (this.shouldRenderDiffs) {\n if (this.discussion.diff_file?.diff_refs) {\n return true;\n }\n\n /*\n * https://gitlab.com/gitlab-com/gl-infra/production/-/issues/19118\n *\n * For most diff discussions we should have a `diff_file`.\n * However in some cases we might we might not have this object.\n * In these we need to check if the `original_position.position_type`\n * is either a file or an image, doing this allows us to still\n * render the reply actions.\n */\n return (\n this.discussion.original_position?.position_type === FILE_DIFF_POSITION_TYPE ||\n this.discussion.original_position?.position_type === IMAGE_DIFF_POSITION_TYPE\n );\n }\n\n return true;\n },\n isDiscussionInternal() {\n return this.discussion.notes[0]?.internal;\n },\n discussionHolderClass() {\n return {\n 'is-replying': this.isReplying,\n 'internal-note': this.isDiscussionInternal,\n '!gl-pt-0': !this.discussion.diff_discussion && this.isReplying,\n };\n },\n hasDraft() {\n return Boolean(getDraft(this.autosaveKey));\n },\n },\n created() {\n eventHub.$on('startReplying', this.onStartReplying);\n if (this.hasDraft) {\n this.showReplyForm();\n }\n },\n beforeDestroy() {\n eventHub.$off('startReplying', this.onStartReplying);\n },\n methods: {\n ...mapActions([\n 'saveNote',\n 'removePlaceholderNotes',\n 'toggleResolveNote',\n 'removeConvertedDiscussion',\n 'expandDiscussion',\n ]),\n showReplyForm(text) {\n this.isReplying = true;\n\n if (!this.discussion.expanded) {\n this.expandDiscussion({ discussionId: this.discussion.id });\n }\n\n if (typeof text !== 'undefined') {\n this.$nextTick(() => {\n this.$refs.noteForm.append(text);\n });\n }\n },\n cancelReplyForm: ignoreWhilePending(async function cancelReplyForm(shouldConfirm, isDirty) {\n if (shouldConfirm && isDirty) {\n const msg = sprintf(\n s__('Notes|Are you sure you want to cancel creating this %{commentType}?'),\n { commentType: this.commentType },\n );\n\n const confirmed = await confirmAction(msg, {\n primaryBtnText: __('Discard changes'),\n cancelBtnText: __('Continue editing'),\n });\n\n if (!confirmed) {\n return;\n }\n }\n\n if (this.convertedDisscussionIds.includes(this.discussion.id)) {\n this.removeConvertedDiscussion(this.discussion.id);\n }\n\n this.isReplying = false;\n clearDraft(this.autosaveKey);\n }),\n async saveReply(noteText, form, callback) {\n if (!noteText) {\n this.cancelReplyForm();\n callback();\n return;\n }\n\n const confirmSubmit = await detectAndConfirmSensitiveTokens({ content: noteText });\n\n if (!confirmSubmit) {\n callback();\n return;\n }\n\n const postData = {\n in_reply_to_discussion_id: this.discussion.reply_id,\n target_type: this.getNoteableData.targetType,\n note: { note: noteText },\n };\n\n if (this.convertedDisscussionIds.includes(this.discussion.id)) {\n postData.return_discussion = true;\n }\n\n if (this.discussion.for_commit) {\n postData.note_project_id = this.discussion.project_id;\n }\n\n const replyData = {\n endpoint: this.newNotePath,\n flashContainer: this.$el,\n data: postData,\n };\n\n this.saveNote(replyData)\n .then(() => {\n this.isReplying = false;\n clearDraft(this.autosaveKey);\n\n callback();\n })\n .catch((err) => {\n this.handleSaveError(err); // The 'err' parameter is being used in JH, don't remove it\n this.removePlaceholderNotes();\n\n callback(err);\n });\n },\n handleSaveError({ response }) {\n const errorMessage = createNoteErrorMessages(response.data, response.status)[0];\n\n createAlert({\n message: errorMessage,\n parent: this.$el,\n });\n },\n onStartReplying(discussionId) {\n if (this.discussion.id === discussionId) {\n this.showReplyForm();\n }\n },\n },\n};\n</script>\n\n<template>\n <timeline-entry-item class=\"note note-discussion\">\n <div class=\"timeline-content\">\n <div\n :data-discussion-id=\"discussion.id\"\n :data-discussion-resolvable=\"discussion.resolvable\"\n :data-discussion-resolved=\"discussion.resolved\"\n class=\"discussion js-discussion-container\"\n data-testid=\"discussion-content\"\n >\n <diff-discussion-header v-if=\"shouldRenderDiffs\" :discussion=\"discussion\" />\n <div v-if=\"!shouldHideDiscussionBody\" class=\"discussion-body\">\n <component\n :is=\"wrapperComponent\"\n v-bind=\"wrapperComponentProps\"\n class=\"card discussion-wrapper\"\n >\n <discussion-notes\n :discussion=\"discussion\"\n :diff-line=\"diffLine\"\n :help-page-path=\"helpPagePath\"\n :is-expanded=\"isExpanded\"\n :line=\"line\"\n :should-group-replies=\"shouldGroupReplies\"\n :is-overview-tab=\"isOverviewTab\"\n :should-scroll-to-note=\"shouldScrollToNote\"\n @startReplying=\"showReplyForm\"\n >\n <template #avatar-badge>\n <slot name=\"avatar-badge\"></slot>\n </template>\n <template #footer=\"{ showReplies }\">\n <draft-note\n v-if=\"showDraft(discussion.reply_id)\"\n :key=\"`draft_${discussion.id}`\"\n :draft=\"draftForDiscussion(discussion.reply_id)\"\n :line=\"line\"\n />\n <li\n v-else-if=\"canShowReplyActions && showReplies\"\n data-testid=\"reply-wrapper\"\n class=\"discussion-reply-holder clearfix gl-bg-subtle\"\n :class=\"discussionHolderClass\"\n >\n <div class=\"flash-container !gl-mt-0 gl-mb-2\"></div>\n <discussion-actions\n v-if=\"!isReplying && userCanReply\"\n :discussion=\"discussion\"\n :is-resolving=\"isResolving\"\n :resolve-button-title=\"resolveButtonTitle\"\n :resolve-with-issue-path=\"resolveWithIssuePath\"\n :should-show-jump-to-next-discussion=\"shouldShowJumpToNextDiscussion\"\n @showReplyForm=\"showReplyForm\"\n @resolve=\"resolveHandler\"\n />\n <note-form\n v-if=\"isReplying\"\n ref=\"noteForm\"\n :discussion=\"discussion\"\n :diff-file=\"diffFile\"\n :line=\"diffLine\"\n :save-button-title=\"saveButtonTitle\"\n :autofocus=\"!hasDraft\"\n :autosave-key=\"autosaveKey\"\n @handleFormUpdateAddToReview=\"addReplyToReview\"\n @handleFormUpdate=\"saveReply\"\n @cancelForm=\"cancelReplyForm\"\n />\n <note-signed-out-widget v-if=\"!isLoggedIn\" />\n </li>\n </template>\n </discussion-notes>\n </component>\n </div>\n </div>\n </div>\n </timeline-entry-item>\n</template>\n","import { render, staticRenderFns } from \"./noteable_discussion.vue?vue&type=template&id=704eedcc\"\nimport script from \"./noteable_discussion.vue?vue&type=script&lang=js\"\nexport * from \"./noteable_discussion.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableEpicUpdated\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableEpicUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasEpic\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":255}};\n doc.loc.source = {\"body\":\"#import \\\"./epic.fragment.graphql\\\"\\n\\nsubscription issuableEpicUpdated($issuableId: IssuableID!) {\\n issuableEpicUpdated(issuableId: $issuableId) {\\n ... on Issue {\\n id\\n hasEpic\\n attribute: epic {\\n ...EpicFragment\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./epic.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issuableEpicUpdated\"] = oneQuery(doc, \"issuableEpicUpdated\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{ref:\"crudComponent\",staticClass:\"crud gl-border gl-rounded-base gl-border-section gl-bg-subtle\",class:{ 'gl-mt-5': _vm.isCollapsible },attrs:{\"id\":_vm.anchorId}},[_c('header',{staticClass:\"crud-header gl-border-b gl-flex gl-flex-wrap gl-justify-between gl-gap-x-5 gl-gap-y-2 gl-rounded-t-base gl-border-section gl-bg-section gl-px-5 gl-py-4\",class:[\n _vm.headerClass,\n {\n 'gl-rounded-base gl-border-b-transparent': !_vm.isContentVisible,\n 'gl-relative gl-pr-10': _vm.isCollapsible,\n },\n ]},[_c('div',{staticClass:\"gl-flex gl-grow gl-flex-col gl-self-center\"},[_c('h2',{staticClass:\"gl-m-0 gl-inline-flex gl-items-center gl-gap-3 gl-text-base gl-font-bold gl-leading-normal\",class:_vm.titleClass,attrs:{\"data-testid\":\"crud-title\"}},[(_vm.anchorId)?_c('gl-link',{staticClass:\"anchor gl-absolute gl-no-underline\",attrs:{\"href\":`#${_vm.anchorId}`,\"aria-labelledby\":_vm.anchorId}}):_vm._e(),_vm._v(\" \"),(_vm.$scopedSlots.title)?_vm._t(\"title\"):[_vm._v(_vm._s(_vm.title))],_vm._v(\" \"),(_vm.displayedCount || _vm.$scopedSlots.count)?_c('span',{staticClass:\"crud-count gl-inline-flex gl-items-center gl-gap-2 gl-self-start gl-text-sm gl-text-subtle\",attrs:{\"data-testid\":\"crud-count\"}},[(_vm.displayedCount)?[(_vm.icon)?_c('gl-icon',{attrs:{\"name\":_vm.icon,\"variant\":\"subtle\",\"data-testid\":\"crud-icon\"}}):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.displayedCount)+\"\\n \")]:_vm._e(),_vm._v(\" \"),(_vm.$scopedSlots.count)?_vm._t(\"count\"):_vm._e()],2):_vm._e()],2),_vm._v(\" \"),(_vm.description || _vm.$scopedSlots.description)?_c('p',{staticClass:\"gl-mb-0 gl-mt-2 gl-text-sm gl-leading-normal gl-text-subtle\",attrs:{\"data-testid\":\"crud-description\"}},[(_vm.$scopedSlots.description)?_vm._t(\"description\"):[_vm._v(_vm._s(_vm.description))]],2):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-items-baseline gl-gap-3\",attrs:{\"data-testid\":\"crud-actions\"}},[_vm._t(\"actions\"),_vm._v(\" \"),(_vm.toggleText && !_vm.isFormUsedAndVisible)?_c('gl-button',{attrs:{\"size\":\"small\",\"aria-label\":_vm.toggleAriaLabel,\"data-testid\":\"crud-form-toggle\"},on:{\"click\":_vm.showForm}},[_vm._v(_vm._s(_vm.toggleText))]):_vm._e(),_vm._v(\" \"),(_vm.isCollapsible)?_c('div',{staticClass:\"gl-border-l gl-absolute gl-right-5 gl-top-4 gl-h-6 gl-border-l-section gl-pl-3\"},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"-gl-mr-2 gl-self-start\",attrs:{\"title\":_vm.toggleLabel,\"icon\":_vm.toggleIcon,\"category\":\"tertiary\",\"size\":\"small\",\"aria-label\":_vm.toggleLabel,\"aria-expanded\":_vm.ariaExpandedAttr,\"aria-controls\":_vm.anchorId,\"data-testid\":\"crud-collapse-toggle\"},on:{\"click\":_vm.toggleCollapse}})],1):_vm._e()],2)]),_vm._v(\" \"),(_vm.isFormUsedAndVisible)?_c('div',{staticClass:\"gl-border-b gl-border-section gl-bg-section gl-p-5 gl-pt-4\",attrs:{\"data-testid\":\"crud-form\"}},[_vm._t(\"form\",null,{\"hideForm\":_vm.hideForm})],2):_vm._e(),_vm._v(\" \"),(_vm.isContentVisible)?_c('div',{staticClass:\"crud-body gl-mx-5 gl-my-4\",class:[_vm.bodyClass, { 'gl-rounded-b-base': !_vm.$scopedSlots.footer }],attrs:{\"data-testid\":\"crud-body\"}},[(_vm.isLoading)?_c('gl-loading-icon',{attrs:{\"size\":\"sm\",\"data-testid\":\"crud-loading\"}}):(_vm.$scopedSlots.empty)?_c('span',{staticClass:\"gl-text-subtle\",attrs:{\"data-testid\":\"crud-empty\"}},[_vm._t(\"empty\")],2):_vm._t(\"default\",null,{\"showForm\":_vm.showForm}),_vm._v(\" \"),(_vm.$scopedSlots.pagination)?_c('div',{staticClass:\"crud-pagination gl-border-t gl-flex gl-justify-center gl-border-t-section gl-p-5\",attrs:{\"data-testid\":\"crud-pagination\"}},[_vm._t(\"pagination\")],2):_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.$scopedSlots.footer)?_c('footer',{staticClass:\"gl-border-t gl-rounded-b-base gl-border-section gl-bg-section gl-px-5 gl-py-4\",attrs:{\"data-testid\":\"crud-footer\"}},[_vm._t(\"footer\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./crud_component.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./crud_component.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlIcon, GlLoadingIcon, GlLink, GlTooltipDirective } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n components: {\n GlButton,\n GlIcon,\n GlLoadingIcon,\n GlLink,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n title: {\n type: String,\n required: false,\n default: '',\n },\n description: {\n type: String,\n required: false,\n default: null,\n },\n count: {\n type: [String, Number],\n required: false,\n default: '',\n },\n icon: {\n type: String,\n required: false,\n default: null,\n },\n toggleText: {\n type: String,\n required: false,\n default: null,\n },\n toggleAriaLabel: {\n type: String,\n required: false,\n default: null,\n },\n isCollapsible: {\n type: Boolean,\n required: false,\n default: false,\n },\n collapsed: {\n type: Boolean,\n required: false,\n default: false,\n },\n isLoading: {\n type: Boolean,\n required: false,\n default: false,\n },\n anchorId: {\n type: String,\n required: false,\n default: '',\n },\n headerClass: {\n type: [String, Object],\n required: false,\n default: null,\n },\n titleClass: {\n type: [String, Object],\n required: false,\n default: null,\n },\n bodyClass: {\n type: [String, Object],\n required: false,\n default: null,\n },\n persistCollapsedState: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n isCollapsed:\n this.collapsed ||\n (this.persistCollapsedState &&\n localStorage.getItem(this.getLocalStorageKeyName()) === 'true'),\n isFormVisible: false,\n };\n },\n computed: {\n isContentVisible() {\n const hasContent =\n this.$scopedSlots.default || this.$scopedSlots.empty || this.$scopedSlots.pagination;\n return !(hasContent && this.isCollapsible && this.isCollapsed);\n },\n toggleIcon() {\n return this.isCollapsed ? 'chevron-lg-down' : 'chevron-lg-up';\n },\n toggleLabel() {\n return this.isCollapsed ? __('Expand') : __('Collapse');\n },\n ariaExpandedAttr() {\n return this.isCollapsed ? 'false' : 'true';\n },\n displayedCount() {\n if (this.isLoading) {\n return '...';\n }\n\n return this.icon && !this.count ? '0' : this.count;\n },\n isFormUsedAndVisible() {\n return this.$scopedSlots.form && this.isFormVisible && !this.isCollapsed;\n },\n },\n watch: {\n collapsed: {\n handler(newVal) {\n this.isCollapsed = newVal > 0;\n },\n },\n },\n methods: {\n toggleCollapse() {\n this.isCollapsed = !this.isCollapsed;\n\n if (this.isCollapsed) {\n this.$emit('collapsed');\n } else {\n this.$emit('expanded');\n }\n\n if (this.persistCollapsedState) {\n localStorage.setItem(this.getLocalStorageKeyName(), this.isCollapsed);\n }\n },\n showForm() {\n this.isFormVisible = true;\n this.isCollapsed = false;\n this.$emit('showForm');\n },\n hideForm() {\n this.isFormVisible = false;\n this.$emit('hideForm');\n },\n toggleForm() {\n if (this.isFormVisible) {\n this.hideForm();\n } else {\n this.showForm();\n }\n },\n getLocalStorageKeyName() {\n return `crud-collapse-${this.anchorId}`;\n },\n },\n};\n</script>\n\n<template>\n <section\n :id=\"anchorId\"\n ref=\"crudComponent\"\n class=\"crud gl-border gl-rounded-base gl-border-section gl-bg-subtle\"\n :class=\"{ 'gl-mt-5': isCollapsible }\"\n >\n <header\n class=\"crud-header gl-border-b gl-flex gl-flex-wrap gl-justify-between gl-gap-x-5 gl-gap-y-2 gl-rounded-t-base gl-border-section gl-bg-section gl-px-5 gl-py-4\"\n :class=\"[\n headerClass,\n {\n 'gl-rounded-base gl-border-b-transparent': !isContentVisible,\n 'gl-relative gl-pr-10': isCollapsible,\n },\n ]\"\n >\n <div class=\"gl-flex gl-grow gl-flex-col gl-self-center\">\n <h2\n class=\"gl-m-0 gl-inline-flex gl-items-center gl-gap-3 gl-text-base gl-font-bold gl-leading-normal\"\n :class=\"titleClass\"\n data-testid=\"crud-title\"\n >\n <gl-link\n v-if=\"anchorId\"\n class=\"anchor gl-absolute gl-no-underline\"\n :href=\"`#${anchorId}`\"\n :aria-labelledby=\"anchorId\"\n />\n <slot v-if=\"$scopedSlots.title\" name=\"title\"></slot>\n <template v-else>{{ title }}</template>\n\n <span\n v-if=\"displayedCount || $scopedSlots.count\"\n class=\"crud-count gl-inline-flex gl-items-center gl-gap-2 gl-self-start gl-text-sm gl-text-subtle\"\n data-testid=\"crud-count\"\n >\n <template v-if=\"displayedCount\">\n <gl-icon v-if=\"icon\" :name=\"icon\" variant=\"subtle\" data-testid=\"crud-icon\" />\n {{ displayedCount }}\n </template>\n <slot v-if=\"$scopedSlots.count\" name=\"count\"></slot>\n </span>\n </h2>\n <p\n v-if=\"description || $scopedSlots.description\"\n class=\"gl-mb-0 gl-mt-2 gl-text-sm gl-leading-normal gl-text-subtle\"\n data-testid=\"crud-description\"\n >\n <slot v-if=\"$scopedSlots.description\" name=\"description\"></slot>\n <template v-else>{{ description }}</template>\n </p>\n </div>\n <div class=\"gl-flex gl-items-baseline gl-gap-3\" data-testid=\"crud-actions\">\n <slot name=\"actions\"></slot>\n <gl-button\n v-if=\"toggleText && !isFormUsedAndVisible\"\n size=\"small\"\n :aria-label=\"toggleAriaLabel\"\n data-testid=\"crud-form-toggle\"\n @click=\"showForm\"\n >{{ toggleText }}</gl-button\n >\n <div\n v-if=\"isCollapsible\"\n class=\"gl-border-l gl-absolute gl-right-5 gl-top-4 gl-h-6 gl-border-l-section gl-pl-3\"\n >\n <gl-button\n v-gl-tooltip\n :title=\"toggleLabel\"\n :icon=\"toggleIcon\"\n category=\"tertiary\"\n size=\"small\"\n :aria-label=\"toggleLabel\"\n :aria-expanded=\"ariaExpandedAttr\"\n :aria-controls=\"anchorId\"\n class=\"-gl-mr-2 gl-self-start\"\n data-testid=\"crud-collapse-toggle\"\n @click=\"toggleCollapse\"\n />\n </div>\n </div>\n </header>\n\n <div\n v-if=\"isFormUsedAndVisible\"\n class=\"gl-border-b gl-border-section gl-bg-section gl-p-5 gl-pt-4\"\n data-testid=\"crud-form\"\n >\n <slot name=\"form\" :hide-form=\"hideForm\"></slot>\n </div>\n\n <div\n v-if=\"isContentVisible\"\n class=\"crud-body gl-mx-5 gl-my-4\"\n :class=\"[bodyClass, { 'gl-rounded-b-base': !$scopedSlots.footer }]\"\n data-testid=\"crud-body\"\n >\n <gl-loading-icon v-if=\"isLoading\" size=\"sm\" data-testid=\"crud-loading\" />\n <span v-else-if=\"$scopedSlots.empty\" class=\"gl-text-subtle\" data-testid=\"crud-empty\">\n <slot name=\"empty\"></slot>\n </span>\n <slot v-else :show-form=\"showForm\"></slot>\n\n <div\n v-if=\"$scopedSlots.pagination\"\n class=\"crud-pagination gl-border-t gl-flex gl-justify-center gl-border-t-section gl-p-5\"\n data-testid=\"crud-pagination\"\n >\n <slot name=\"pagination\"></slot>\n </div>\n </div>\n\n <footer\n v-if=\"$scopedSlots.footer\"\n class=\"gl-border-t gl-rounded-b-base gl-border-section gl-bg-section gl-px-5 gl-py-4\"\n data-testid=\"crud-footer\"\n >\n <slot name=\"footer\"></slot>\n </footer>\n </section>\n</template>\n","import { render, staticRenderFns } from \"./crud_component.vue?vue&type=template&id=3c3ad8dc\"\nimport script from \"./crud_component.vue?vue&type=script&lang=js\"\nexport * from \"./crud_component.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"activeDesignDiscussion\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"activeDesignDiscussion\"},\"arguments\":[],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"source\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":90}};\n doc.loc.source = {\"body\":\"query activeDesignDiscussion {\\n activeDesignDiscussion @client {\\n id\\n source\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"activeDesignDiscussion\"] = oneQuery(doc, \"activeDesignDiscussion\");\n \n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getIssuesListDetails\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jiraImportStatus\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jiraImports\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"importedIssuesCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jiraProjectKey\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":369}};\n doc.loc.source = {\"body\":\"query getIssuesListDetails($fullPath: ID!) {\\n project(fullPath: $fullPath) {\\n id\\n issues {\\n nodes {\\n id\\n labels {\\n nodes {\\n id\\n title\\n color\\n }\\n }\\n }\\n }\\n jiraImportStatus\\n jiraImports {\\n nodes {\\n importedIssuesCount\\n jiraProjectKey\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"getIssuesListDetails\"] = oneQuery(doc, \"getIssuesListDetails\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"issueSetTimeEstimate\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateIssueInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetTimeEstimate\"},\"name\":{\"kind\":\"Name\",\"value\":\"updateIssue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"humanTimeEstimate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timeEstimate\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":212}};\n doc.loc.source = {\"body\":\"mutation issueSetTimeEstimate($input: UpdateIssueInput!) {\\n issuableSetTimeEstimate: updateIssue(input: $input) {\\n errors\\n issuable: issue {\\n id\\n humanTimeEstimate\\n timeEstimate\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueSetTimeEstimate\"] = oneQuery(doc, \"issueSetTimeEstimate\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getIssuesCountEE\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":false},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableSearchableField\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssigneeWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MilestoneWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTag\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTagWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReleaseTagWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueType\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IterationWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IterationsCadenceID\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WeightWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"HealthStatusFilter\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NegatedIssueFilterInput\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UnionedIssueFilterInput\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Time\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Time\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Time\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Time\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"skip\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"openedIssues\"},\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubepics\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubgroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"opened\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"closedIssues\"},\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubepics\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubgroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"closed\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"allIssues\"},\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubepics\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubgroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"all\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"include\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"openedIssues\"},\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubepics\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"opened\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTag\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTag\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTagWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTagWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"closedIssues\"},\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubepics\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"closed\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTag\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTag\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTagWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTagWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"allIssues\"},\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubepics\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"all\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTag\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTag\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTagWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTagWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":7768}};\n doc.loc.source = {\"body\":\"query getIssuesCountEE(\\n $isProject: Boolean = false\\n $fullPath: ID!\\n $iid: String\\n $search: String\\n $in: [IssuableSearchableField!]\\n $assigneeId: String\\n $assigneeWildcardId: AssigneeWildcardId\\n $assigneeUsernames: [String!]\\n $authorUsername: String\\n $confidential: Boolean\\n $labelName: [String]\\n $milestoneTitle: [String]\\n $milestoneWildcardId: MilestoneWildcardId\\n $myReactionEmoji: String\\n $releaseTag: [String!]\\n $releaseTagWildcardId: ReleaseTagWildcardId\\n $types: [IssueType!]\\n $epicId: String\\n $epicWildcardId: EpicWildcardId\\n $iterationId: [ID]\\n $iterationWildcardId: IterationWildcardId\\n $iterationCadenceId: [IterationsCadenceID!]\\n $weight: String\\n $weightWildcardId: WeightWildcardId\\n $healthStatusFilter: HealthStatusFilter\\n $crmContactId: String\\n $crmOrganizationId: String\\n $not: NegatedIssueFilterInput\\n $or: UnionedIssueFilterInput\\n $createdAfter: Time\\n $createdBefore: Time\\n $closedAfter: Time\\n $closedBefore: Time\\n) {\\n group(fullPath: $fullPath) @skip(if: $isProject) {\\n id\\n openedIssues: issues(\\n includeSubepics: true\\n includeSubgroups: true\\n state: opened\\n iid: $iid\\n search: $search\\n in: $in\\n assigneeId: $assigneeId\\n assigneeWildcardId: $assigneeWildcardId\\n assigneeUsernames: $assigneeUsernames\\n authorUsername: $authorUsername\\n confidential: $confidential\\n labelName: $labelName\\n milestoneTitle: $milestoneTitle\\n milestoneWildcardId: $milestoneWildcardId\\n myReactionEmoji: $myReactionEmoji\\n types: $types\\n epicId: $epicId\\n epicWildcardId: $epicWildcardId\\n iterationId: $iterationId\\n iterationWildcardId: $iterationWildcardId\\n iterationCadenceId: $iterationCadenceId\\n weight: $weight\\n weightWildcardId: $weightWildcardId\\n healthStatusFilter: $healthStatusFilter\\n crmContactId: $crmContactId\\n crmOrganizationId: $crmOrganizationId\\n not: $not\\n or: $or\\n createdAfter: $createdAfter\\n createdBefore: $createdBefore\\n closedAfter: $closedAfter\\n closedBefore: $closedBefore\\n ) {\\n count\\n }\\n closedIssues: issues(\\n includeSubepics: true\\n includeSubgroups: true\\n state: closed\\n iid: $iid\\n search: $search\\n in: $in\\n assigneeId: $assigneeId\\n assigneeWildcardId: $assigneeWildcardId\\n assigneeUsernames: $assigneeUsernames\\n authorUsername: $authorUsername\\n confidential: $confidential\\n labelName: $labelName\\n milestoneTitle: $milestoneTitle\\n milestoneWildcardId: $milestoneWildcardId\\n myReactionEmoji: $myReactionEmoji\\n types: $types\\n epicId: $epicId\\n epicWildcardId: $epicWildcardId\\n iterationId: $iterationId\\n iterationWildcardId: $iterationWildcardId\\n iterationCadenceId: $iterationCadenceId\\n weight: $weight\\n weightWildcardId: $weightWildcardId\\n healthStatusFilter: $healthStatusFilter\\n crmContactId: $crmContactId\\n crmOrganizationId: $crmOrganizationId\\n not: $not\\n or: $or\\n createdAfter: $createdAfter\\n createdBefore: $createdBefore\\n closedAfter: $closedAfter\\n closedBefore: $closedBefore\\n ) {\\n count\\n }\\n allIssues: issues(\\n includeSubepics: true\\n includeSubgroups: true\\n state: all\\n iid: $iid\\n search: $search\\n in: $in\\n assigneeId: $assigneeId\\n assigneeWildcardId: $assigneeWildcardId\\n assigneeUsernames: $assigneeUsernames\\n authorUsername: $authorUsername\\n confidential: $confidential\\n labelName: $labelName\\n milestoneTitle: $milestoneTitle\\n milestoneWildcardId: $milestoneWildcardId\\n myReactionEmoji: $myReactionEmoji\\n types: $types\\n epicId: $epicId\\n epicWildcardId: $epicWildcardId\\n iterationId: $iterationId\\n iterationWildcardId: $iterationWildcardId\\n iterationCadenceId: $iterationCadenceId\\n weight: $weight\\n weightWildcardId: $weightWildcardId\\n healthStatusFilter: $healthStatusFilter\\n crmContactId: $crmContactId\\n crmOrganizationId: $crmOrganizationId\\n not: $not\\n or: $or\\n createdAfter: $createdAfter\\n createdBefore: $createdBefore\\n closedAfter: $closedAfter\\n closedBefore: $closedBefore\\n ) {\\n count\\n }\\n }\\n project(fullPath: $fullPath) @include(if: $isProject) {\\n id\\n openedIssues: issues(\\n includeSubepics: true\\n state: opened\\n iid: $iid\\n search: $search\\n in: $in\\n assigneeId: $assigneeId\\n assigneeWildcardId: $assigneeWildcardId\\n assigneeUsernames: $assigneeUsernames\\n authorUsername: $authorUsername\\n confidential: $confidential\\n labelName: $labelName\\n milestoneTitle: $milestoneTitle\\n milestoneWildcardId: $milestoneWildcardId\\n myReactionEmoji: $myReactionEmoji\\n releaseTag: $releaseTag\\n releaseTagWildcardId: $releaseTagWildcardId\\n types: $types\\n epicId: $epicId\\n epicWildcardId: $epicWildcardId\\n iterationId: $iterationId\\n iterationWildcardId: $iterationWildcardId\\n iterationCadenceId: $iterationCadenceId\\n weight: $weight\\n weightWildcardId: $weightWildcardId\\n healthStatusFilter: $healthStatusFilter\\n crmContactId: $crmContactId\\n crmOrganizationId: $crmOrganizationId\\n not: $not\\n or: $or\\n createdAfter: $createdAfter\\n createdBefore: $createdBefore\\n closedAfter: $closedAfter\\n closedBefore: $closedBefore\\n ) {\\n count\\n }\\n closedIssues: issues(\\n includeSubepics: true\\n state: closed\\n iid: $iid\\n search: $search\\n in: $in\\n assigneeId: $assigneeId\\n assigneeWildcardId: $assigneeWildcardId\\n assigneeUsernames: $assigneeUsernames\\n authorUsername: $authorUsername\\n confidential: $confidential\\n labelName: $labelName\\n milestoneTitle: $milestoneTitle\\n milestoneWildcardId: $milestoneWildcardId\\n myReactionEmoji: $myReactionEmoji\\n releaseTag: $releaseTag\\n releaseTagWildcardId: $releaseTagWildcardId\\n types: $types\\n epicId: $epicId\\n epicWildcardId: $epicWildcardId\\n iterationId: $iterationId\\n iterationWildcardId: $iterationWildcardId\\n iterationCadenceId: $iterationCadenceId\\n weight: $weight\\n weightWildcardId: $weightWildcardId\\n healthStatusFilter: $healthStatusFilter\\n crmContactId: $crmContactId\\n crmOrganizationId: $crmOrganizationId\\n not: $not\\n or: $or\\n createdAfter: $createdAfter\\n createdBefore: $createdBefore\\n closedAfter: $closedAfter\\n closedBefore: $closedBefore\\n ) {\\n count\\n }\\n allIssues: issues(\\n includeSubepics: true\\n state: all\\n iid: $iid\\n search: $search\\n in: $in\\n assigneeId: $assigneeId\\n assigneeWildcardId: $assigneeWildcardId\\n assigneeUsernames: $assigneeUsernames\\n authorUsername: $authorUsername\\n confidential: $confidential\\n labelName: $labelName\\n milestoneTitle: $milestoneTitle\\n milestoneWildcardId: $milestoneWildcardId\\n myReactionEmoji: $myReactionEmoji\\n releaseTag: $releaseTag\\n releaseTagWildcardId: $releaseTagWildcardId\\n types: $types\\n epicId: $epicId\\n epicWildcardId: $epicWildcardId\\n iterationId: $iterationId\\n iterationWildcardId: $iterationWildcardId\\n iterationCadenceId: $iterationCadenceId\\n weight: $weight\\n weightWildcardId: $weightWildcardId\\n healthStatusFilter: $healthStatusFilter\\n crmContactId: $crmContactId\\n crmOrganizationId: $crmOrganizationId\\n not: $not\\n or: $or\\n createdAfter: $createdAfter\\n createdBefore: $createdBefore\\n closedAfter: $closedAfter\\n closedBefore: $closedBefore\\n ) {\\n count\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"getIssuesCountEE\"] = oneQuery(doc, \"getIssuesCountEE\");\n \n","import $ from 'jquery';\nimport Api from '~/api';\nimport { humanize } from '~/lib/utils/text_utility';\n\nexport default class CreateLabelDropdown {\n constructor($el, namespacePath, projectPath) {\n this.$el = $el;\n this.namespacePath = namespacePath;\n this.projectPath = projectPath;\n this.$dropdownBack = $('.dropdown-menu-back', this.$el.closest('.dropdown'));\n this.$cancelButton = $('.js-cancel-label-btn', this.$el);\n this.$newLabelField = $('#new_label_name', this.$el);\n this.$newColorField = $('#new_label_color', this.$el);\n this.$colorPreview = $('.js-dropdown-label-color-preview', this.$el);\n this.$addList = $('.js-add-list', this.$el);\n this.$newLabelError = $('.js-label-error', this.$el);\n this.$newLabelErrorContent = $('.gl-alert-content', this.$newLabelError);\n this.$newLabelCreateButton = $('.js-new-label-btn', this.$el);\n this.$colorSuggestions = $('.suggest-colors-dropdown a', this.$el);\n\n this.$newLabelError.hide();\n this.$newLabelCreateButton.disable();\n\n this.addListDefault = this.$addList.is(':checked');\n\n this.cleanBinding();\n this.addBinding();\n }\n\n cleanBinding() {\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.$colorSuggestions.off('click');\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.$newLabelField.off('keyup change');\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.$newColorField.off('keyup change');\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.$colorPreview.off('keyup change');\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.$dropdownBack.off('click');\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.$cancelButton.off('click');\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.$newLabelCreateButton.off('click');\n }\n\n addBinding() {\n const self = this;\n\n // eslint-disable-next-line func-names\n this.$colorSuggestions.on('click', function (e) {\n const $this = $(this);\n self.addColorValue(e, $this);\n });\n\n this.$newLabelField.on('keyup change', this.enableLabelCreateButton.bind(this));\n this.$newColorField.on('keyup change', this.enableLabelCreateButton.bind(this));\n this.$colorPreview.on('keyup change', this.enableLabelCreateButton.bind(this));\n\n this.$newColorField.on('input', this.updateColorPreview.bind(this));\n this.$colorPreview.on('input', this.updateColorPickerPreview.bind(this));\n\n this.$dropdownBack.on('click', this.resetForm.bind(this));\n\n this.$cancelButton.on('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n self.resetForm();\n self.$dropdownBack.trigger('click');\n });\n\n this.$newLabelCreateButton.on('click', this.saveLabel.bind(this));\n }\n\n addColorValue(e, $this) {\n e.preventDefault();\n e.stopPropagation();\n\n this.$newColorField.val($this.data('color')).trigger('change');\n this.$colorPreview.val($this.data('color')).trigger('change');\n }\n\n updateColorPreview() {\n const previewColor = this.$newColorField.val();\n return this.$colorPreview.val(previewColor);\n // Updates the preview color with the hex-color input\n }\n\n updateColorPickerPreview() {\n const previewColor = this.$colorPreview.val();\n return this.$newColorField.val(previewColor);\n // Updates the input color with the hex-color from the picker\n }\n\n enableLabelCreateButton() {\n if (this.$newLabelField.val() !== '' && this.$newColorField.val() !== '') {\n this.$newLabelError.hide();\n this.$newLabelCreateButton.enable();\n } else {\n this.$newLabelCreateButton.disable();\n }\n }\n\n resetForm() {\n this.$newLabelField.val('').trigger('change');\n\n this.$newColorField.val('').trigger('change');\n\n this.$addList.prop('checked', this.addListDefault);\n\n this.$colorPreview.val('');\n }\n\n saveLabel(e) {\n e.preventDefault();\n e.stopPropagation();\n\n Api.newLabel(\n this.namespacePath,\n this.projectPath,\n {\n title: this.$newLabelField.val(),\n color: this.$newColorField.val(),\n },\n (label) => {\n this.$newLabelCreateButton.enable();\n\n if (label.message) {\n let errors;\n\n if (typeof label.message === 'string') {\n errors = label.message;\n } else {\n errors = Object.keys(label.message)\n .map((key) => `${humanize(key)} ${label.message[key].join(', ')}`)\n .join('<br/>');\n }\n\n this.$newLabelErrorContent.html(errors);\n this.$newLabelError.show();\n } else {\n const addNewList = this.$addList.is(':checked');\n this.$dropdownBack.trigger('click');\n $(document).trigger('created.label', [label, addNewList]);\n }\n },\n );\n }\n}\n","/* eslint-disable func-names, no-underscore-dangle, no-new, consistent-return, no-shadow, no-param-reassign, no-lonely-if, no-empty */\n/* global Issuable */\n\nimport $ from 'jquery';\nimport { difference, isEqual, escape, sortBy, template, union } from 'lodash';\nimport initDeprecatedJQueryDropdown from '~/deprecated_jquery_dropdown';\nimport IssuableBulkUpdateActions from '~/issuable/issuable_bulk_update_actions';\nimport { isScopedLabel } from '~/lib/utils/common_utils';\nimport { createAlert } from '~/alert';\nimport axios from '~/lib/utils/axios_utils';\nimport { sprintf, __ } from '~/locale';\nimport CreateLabelDropdown from './create_label_dropdown';\n\nexport default class LabelsSelect {\n constructor(els, options = {}) {\n const _this = this;\n\n let $els = $(els);\n\n if (!els) {\n $els = $('.js-label-select');\n }\n\n $els.each((i, dropdown) => {\n const $dropdown = $(dropdown);\n const $dropdownContainer = $dropdown.closest('.labels-filter');\n const namespacePath = $dropdown.data('namespacePath');\n const projectPath = $dropdown.data('projectPath');\n const issueUpdateURL = $dropdown.data('issueUpdate');\n let selectedLabel = $dropdown.data('selected');\n if (selectedLabel != null && !$dropdown.hasClass('js-multiselect')) {\n selectedLabel = selectedLabel.split(',');\n }\n const showNo = $dropdown.data('showNo');\n const showAny = $dropdown.data('showAny');\n const showMenuAbove = $dropdown.data('showMenuAbove');\n const defaultLabel = $dropdown.data('defaultLabel') || __('Label');\n const abilityName = $dropdown.data('abilityName');\n const $selectbox = $dropdown.closest('.selectbox');\n const $block = $selectbox.closest('.block');\n const $form = $dropdown.closest('form, .js-issuable-update');\n const $sidebarCollapsedValue = $block.find('.sidebar-collapsed-icon span');\n const $value = $block.find('.value');\n const $loading = $block.find('.block-loading').addClass('gl-hidden');\n const fieldName = $dropdown.data('fieldName');\n let initialSelected = $selectbox\n .find(`input[name=\"${$dropdown.data('fieldName')}\"]`)\n .map(function () {\n return this.value;\n })\n .get();\n const scopedLabels = $dropdown.data('scopedLabels');\n const { handleClick } = options;\n\n if ($dropdown.closest('.dropdown').find('.dropdown-new-label').length) {\n new CreateLabelDropdown(\n $dropdown.closest('.dropdown').find('.dropdown-new-label'),\n namespacePath,\n projectPath,\n );\n }\n\n const saveLabelData = function () {\n const selected = $dropdown\n .closest('.selectbox')\n .find(`input[name='${fieldName}']`)\n .map(function () {\n return this.value;\n })\n .get();\n\n if (isEqual(initialSelected, selected)) return;\n initialSelected = selected;\n\n const data = {};\n data[abilityName] = {};\n data[abilityName].label_ids = selected;\n if (!selected.length) {\n data[abilityName].label_ids = [''];\n }\n $loading.removeClass('gl-hidden');\n $dropdown.trigger('loading.gl.dropdown');\n axios\n .put(issueUpdateURL, data)\n .then(({ data }) => {\n let template;\n $loading.addClass('gl-hidden');\n $dropdown.trigger('loaded.gl.dropdown');\n $selectbox.hide();\n data.issueUpdateURL = issueUpdateURL;\n let labelCount = 0;\n if (data.labels.length && issueUpdateURL) {\n template = LabelsSelect.getLabelTemplate({\n labels: sortBy(data.labels, 'title'),\n issueUpdateURL,\n enableScopedLabels: scopedLabels,\n });\n labelCount = data.labels.length;\n\n // EE Specific\n if (IS_EE) {\n /**\n * For Scoped labels, the last label selected with the\n * same key will be applied to the current issuable.\n *\n * If these are the labels - priority::1, priority::2; and if\n * we apply them in the same order, only priority::2 will stick\n * with the issuable.\n *\n * In the current dropdown implementation, we keep track of all\n * the labels selected via a hidden DOM element. Since a User\n * can select priority::1 and priority::2 at the same time, the\n * DOM will have 2 hidden input and the dropdown will show both\n * the items selected but in reality server only applied\n * priority::2.\n *\n * We find all the labels then find all the labels server accepted\n * and then remove the excess ones.\n */\n const toRemoveIds = Array.from(\n $form.find(`input[type=\"hidden\"][name=\"${fieldName}\"]`),\n )\n .map((el) => el.value)\n .map(Number);\n\n data.labels.forEach((label) => {\n const index = toRemoveIds.indexOf(label.id);\n toRemoveIds.splice(index, 1);\n });\n\n toRemoveIds.forEach((id) => {\n $form\n .find(`input[type=\"hidden\"][name=\"${fieldName}\"][value=\"${id}\"]`)\n .last()\n .remove();\n });\n }\n } else {\n template = `<span class=\"no-value\">${__('None')}</span>`;\n }\n $value.removeAttr('style').html(template);\n $sidebarCollapsedValue.text(labelCount);\n\n $('.has-tooltip', $value).tooltip({\n container: 'body',\n });\n })\n .catch(() =>\n createAlert({\n message: __('Error saving label update.'),\n }),\n );\n };\n initDeprecatedJQueryDropdown($dropdown, {\n showMenuAbove,\n data(term, callback) {\n const labelUrl = $dropdown.attr('data-labels');\n axios\n .get(labelUrl)\n .then((res) => {\n let { data } = res;\n if ($dropdown.hasClass('js-extra-options')) {\n const extraData = [];\n if (showNo) {\n extraData.unshift({\n id: 0,\n title: __('No label'),\n });\n }\n if (showAny) {\n extraData.unshift({\n isAny: true,\n title: __('Any label'),\n });\n }\n if (extraData.length) {\n extraData.push({ type: 'divider' });\n data = extraData.concat(data);\n }\n }\n\n callback(data);\n if (showMenuAbove) {\n $dropdown.data('deprecatedJQueryDropdown').positionMenuAbove();\n }\n })\n .catch(() =>\n createAlert({\n message: __('Error fetching labels.'),\n }),\n );\n },\n renderRow(label) {\n let colorEl;\n\n const selectedClass = [];\n const removesAll = label.id <= 0 || label.id == null;\n\n if ($dropdown.hasClass('js-filter-bulk-update')) {\n const indeterminate = $dropdown.data('indeterminate') || [];\n const marked = $dropdown.data('marked') || [];\n\n if (indeterminate.indexOf(label.id) !== -1) {\n selectedClass.push('is-indeterminate');\n }\n\n if (marked.indexOf(label.id) !== -1) {\n // Remove is-indeterminate class if the item will be marked as active\n const i = selectedClass.indexOf('is-indeterminate');\n if (i !== -1) {\n selectedClass.splice(i, 1);\n }\n selectedClass.push('is-active');\n }\n } else {\n if (this.id(label)) {\n const dropdownValue = this.id(label).toString().replace(/'/g, \"\\\\'\");\n\n if (\n $form.find(\n `input[type='hidden'][name='${this.fieldName}'][value='${dropdownValue}']`,\n ).length\n ) {\n selectedClass.push('is-active');\n }\n }\n\n if (this.multiSelect && removesAll) {\n selectedClass.push('dropdown-clear-active');\n }\n }\n\n if (label.color) {\n colorEl = `<span class='dropdown-label-box' style='background: ${label.color}'></span>`;\n } else {\n colorEl = '';\n }\n\n const linkEl = document.createElement('a');\n linkEl.href = '#';\n\n // We need to identify which items are actually labels\n if (label.id) {\n const selectedLayoutClasses = ['gl-flex', 'flex-row', 'gl-break-all'];\n selectedClass.push('label-item', ...selectedLayoutClasses);\n linkEl.dataset.labelId = label.id;\n }\n\n linkEl.className = selectedClass.join(' ');\n // eslint-disable-next-line no-unsanitized/property\n linkEl.innerHTML = `${colorEl} ${escape(label.title)}`;\n\n const listItemEl = document.createElement('li');\n listItemEl.appendChild(linkEl);\n\n return listItemEl;\n },\n search: {\n fields: ['title'],\n },\n selectable: true,\n filterable: true,\n selected: $dropdown.data('selected') || [],\n toggleLabel(selected, el) {\n const $dropdownParent = $dropdown.parent();\n const $dropdownInputField = $dropdownParent.find('.dropdown-input-field');\n const isSelected = el !== null ? el.hasClass('is-active') : false;\n\n const title = selected ? selected.title : null;\n const selectedLabels = this.selected;\n\n if ($dropdownInputField.length && $dropdownInputField.val().length) {\n $dropdownParent.find('.dropdown-input-clear').trigger('click');\n }\n\n if (selected && selected.id === 0) {\n this.selected = [];\n return __('No label');\n }\n if (isSelected) {\n this.selected.push(title);\n } else if (!isSelected && title) {\n const index = this.selected.indexOf(title);\n this.selected.splice(index, 1);\n }\n\n if (selectedLabels.length === 1) {\n return selectedLabels;\n }\n if (selectedLabels.length) {\n return sprintf(__('%{firstLabel} +%{labelCount} more'), {\n firstLabel: selectedLabels[0],\n labelCount: selectedLabels.length - 1,\n });\n }\n return defaultLabel;\n },\n fieldName: $dropdown.data('fieldName'),\n id(label) {\n if (label.id <= 0) return label.title;\n\n if ($dropdown.hasClass('js-issuable-form-dropdown')) {\n return label.id;\n }\n\n if ($dropdown.hasClass('js-filter-submit') && label.isAny == null) {\n return label.title;\n }\n return label.id;\n },\n hidden() {\n const page = $('body').attr('data-page');\n const isIssueIndex = page === 'projects:issues:index';\n const isMRIndex = page === 'projects:merge_requests:index';\n $selectbox.hide();\n // display:block overrides the hide-collapse rule\n $value.removeAttr('style');\n\n if ($dropdown.hasClass('js-issuable-form-dropdown')) {\n return;\n }\n\n if (\n $('html')\n .attr('class')\n .match(/issue-boards-page|epic-boards-page/)\n ) {\n return;\n }\n if ($dropdown.hasClass('js-multiselect')) {\n if ($dropdown.hasClass('js-filter-submit') && (isIssueIndex || isMRIndex)) {\n Issuable.filterResults($dropdown.closest('form'));\n } else if ($dropdown.hasClass('js-filter-submit')) {\n $dropdown.closest('form').submit();\n } else {\n if (!$dropdown.hasClass('js-filter-bulk-update')) {\n saveLabelData();\n $dropdown.data('deprecatedJQueryDropdown').clearMenu();\n }\n }\n }\n },\n multiSelect: $dropdown.hasClass('js-multiselect'),\n vue: false,\n clicked(clickEvent) {\n const { e, isMarking } = clickEvent;\n const label = clickEvent.selectedObj;\n\n const page = $('body').attr('data-page');\n const isIssueIndex = page === 'projects:issues:index';\n const isMRIndex = page === 'projects:merge_requests:index';\n\n if ($dropdown.parent().find('.is-active:not(.dropdown-clear-active)').length) {\n $dropdown.parent().find('.dropdown-clear-active').removeClass('is-active');\n }\n\n if ($dropdown.hasClass('js-issuable-form-dropdown')) {\n return;\n }\n\n if ($dropdown.hasClass('js-filter-bulk-update')) {\n _this.enableBulkLabelDropdown();\n _this.setDropdownData($dropdown, isMarking, label.id);\n return;\n }\n\n if ($dropdown.hasClass('js-filter-submit') && (isIssueIndex || isMRIndex)) {\n if (!$dropdown.hasClass('js-multiselect')) {\n selectedLabel = label.title;\n return Issuable.filterResults($dropdown.closest('form'));\n }\n } else if ($dropdown.hasClass('js-filter-submit')) {\n return $dropdown.closest('form').submit();\n } else if (handleClick) {\n e.preventDefault();\n handleClick(label);\n } else {\n if ($dropdown.hasClass('js-multiselect')) {\n } else {\n return saveLabelData();\n }\n }\n },\n preserveContext: true,\n });\n\n // Set dropdown data\n _this.setOriginalDropdownData($dropdownContainer, $dropdown);\n });\n this.bindEvents();\n }\n\n static getLabelTemplate(tplData) {\n // We could use ES6 template string here\n // and properly indent markup for readability\n // but that also introduces unintended white-space\n // so best approach is to use traditional way of\n // concatenation\n // see: http://2ality.com/2016/05/template-literal-whitespace.html#joining-arrays\n\n const linkOpenTag =\n '<a href=\"<%- issueUpdateURL.slice(0, issueUpdateURL.lastIndexOf(\"/\")) %>?label_name[]=<%- encodeURIComponent(label.title) %>\" class=\"gl-link gl-label-link has-tooltip\" <%= linkAttrs %> title=\"<%= tooltipTitleTemplate({ label, isScopedLabel, enableScopedLabels, escapeStr }) %>\">';\n const labelTemplate = template(\n [\n '<span class=\"gl-label\">',\n linkOpenTag,\n '<span class=\"gl-label-text <%= labelTextClass({ label, escapeStr }) %>\" style=\"background-color: <%= escapeStr(label.color) %>;\">',\n '<%- label.title %>',\n '</span>',\n '</a>',\n '</span>',\n ].join(''),\n );\n\n const labelTextClass = ({ label, escapeStr }) => {\n return escapeStr(\n label.text_color === '#FFFFFF' ? 'gl-label-text-light' : 'gl-label-text-dark',\n );\n };\n\n const rightLabelTextClass = ({ label, escapeStr }) => {\n return escapeStr(label.text_color === '#333333' ? labelTextClass({ label, escapeStr }) : '');\n };\n\n const scopedLabelTemplate = template(\n [\n '<span class=\"gl-label gl-label-scoped\" style=\"color: <%= escapeStr(label.color) %>; --label-inset-border: inset 0 0 0 2px <%= escapeStr(label.color) %>;\">',\n linkOpenTag,\n '<span class=\"gl-label-text <%= labelTextClass({ label, escapeStr }) %>\" style=\"background-color: <%= escapeStr(label.color) %>;\">',\n '<%- label.title.slice(0, label.title.lastIndexOf(\"::\")) %>',\n '</span>',\n '<span class=\"gl-label-text <%= rightLabelTextClass({ label, escapeStr }) %>\">',\n '<%- label.title.slice(label.title.lastIndexOf(\"::\") + 2) %>',\n '</span>',\n '</a>',\n '</span>',\n ].join(''),\n );\n\n const tooltipTitleTemplate = template(\n [\n '<% if (isScopedLabel(label) && enableScopedLabels) { %>',\n \"<span class='font-weight-bold'>Scoped label</span>\",\n '<br>',\n '<%= escapeStr(label.description) %>',\n '<% } else { %>',\n '<%= escapeStr(label.description) %>',\n '<% } %>',\n ].join(''),\n );\n\n const tpl = template(\n [\n '<% labels.forEach(function(label){ %>',\n '<% if (isScopedLabel(label) && enableScopedLabels) { %>',\n '<%= scopedLabelTemplate({ label, issueUpdateURL, isScopedLabel, enableScopedLabels, labelTextClass, rightLabelTextClass, tooltipTitleTemplate, escapeStr, linkAttrs: \\'data-html=\"true\"\\' }) %>',\n '<% } else { %>',\n '<%= labelTemplate({ label, issueUpdateURL, isScopedLabel, enableScopedLabels, labelTextClass, tooltipTitleTemplate, escapeStr, linkAttrs: \"\" }) %>',\n '<% } %>',\n '<% }); %>',\n ].join(''),\n );\n\n return tpl({\n ...tplData,\n labelTemplate,\n labelTextClass,\n rightLabelTextClass,\n scopedLabelTemplate,\n tooltipTitleTemplate,\n isScopedLabel,\n escapeStr: escape,\n });\n }\n\n bindEvents() {\n return $('body').on(\n 'change',\n '.issuable-list input[type=\"checkbox\"]',\n this.onSelectCheckboxIssue,\n );\n }\n // eslint-disable-next-line class-methods-use-this\n onSelectCheckboxIssue() {\n if ($('.issuable-list input[type=\"checkbox\"]:checked').length) {\n return;\n }\n return $('.issues-bulk-update .labels-filter .dropdown-toggle-text').text(__('Label'));\n }\n // eslint-disable-next-line class-methods-use-this\n enableBulkLabelDropdown() {\n IssuableBulkUpdateActions.willUpdateLabels = true;\n }\n // eslint-disable-next-line class-methods-use-this\n setDropdownData($dropdown, isMarking, labelId) {\n let userCheckedIds = $dropdown.data('user-checked') || [];\n let userUncheckedIds = $dropdown.data('user-unchecked') || [];\n\n if (isMarking) {\n userCheckedIds = union(userCheckedIds, [labelId]);\n userUncheckedIds = difference(userUncheckedIds, [labelId]);\n } else {\n userUncheckedIds = union(userUncheckedIds, [labelId]);\n userCheckedIds = difference(userCheckedIds, [labelId]);\n }\n\n $dropdown.data('user-checked', userCheckedIds);\n $dropdown.data('user-unchecked', userUncheckedIds);\n }\n // eslint-disable-next-line class-methods-use-this\n setOriginalDropdownData($container, $dropdown) {\n const labels = [];\n $container.find('[name=\"label_name[]\"]').map(function () {\n return labels.push(this.value);\n });\n $dropdown.data('marked', labels);\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('timeline-entry-item',{staticClass:\"system-note\",class:{\n target: _vm.isTargetNote,\n 'pr-0': _vm.shouldShowDescriptionVersion,\n },attrs:{\"id\":_vm.noteAnchorId}},[_c('div',{staticClass:\"gl-relative gl-float-left gl-flex gl-items-center gl-justify-center gl-rounded-full\",class:[\n _vm.iconBgClass,\n {\n 'system-note-icon -gl-mt-1 gl-ml-2 gl-h-6 gl-w-6': _vm.isAllowedIcon,\n 'system-note-dot -gl-top-1 gl-ml-4 gl-mt-3 gl-h-3 gl-w-3 gl-border-2 gl-border-solid gl-border-subtle gl-bg-gray-900':\n !_vm.isAllowedIcon,\n },\n ]},[(_vm.isAllowedIcon)?_c('gl-icon',{attrs:{\"name\":_vm.systemNoteIconName,\"size\":14,\"data-testid\":\"timeline-icon\"}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-ml-7\"},[_c('div',{staticClass:\"gl-flex gl-items-start gl-justify-between\"},[_c('note-header',{attrs:{\"author\":_vm.note.author,\"created-at\":_vm.note.created_at,\"note-id\":_vm.note.id,\"is-system-note\":true,\"is-imported\":_vm.note.imported},scopedSlots:_vm._u([(_vm.canSeeDescriptionVersion || _vm.note.outdated_line_change_path)?{key:\"extra-controls\",fn:function(){return [(_vm.canSeeDescriptionVersion)?_c('gl-button',{staticClass:\"gl-ml-3 gl-align-text-bottom !gl-text-sm\",attrs:{\"variant\":\"link\",\"icon\":_vm.descriptionVersionToggleIcon,\"data-testid\":\"compare-btn\"},on:{\"click\":_vm.toggleDescriptionVersion}},[_vm._v(_vm._s(_vm.__('Compare with previous version')))]):_vm._e(),_vm._v(\" \"),(_vm.note.outdated_line_change_path)?_c('gl-button',{staticClass:\"gl-align-text-bottom !gl-text-sm\",attrs:{\"icon\":_vm.showLines ? 'chevron-up' : 'chevron-down',\"variant\":\"link\",\"data-testid\":\"outdated-lines-change-btn\"},on:{\"click\":_vm.toggleDiff}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Compare changes'))+\"\\n \")]):_vm._e()]},proxy:true}:null],null,true)},[_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.actionTextHtml),expression:\"actionTextHtml\"}],ref:\"gfm-content\"})])],1),_vm._v(\" \"),_c('div',{staticClass:\"note-body gl-pb-3 gl-pl-3\"},[_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.note.note_html),expression:\"note.note_html\"}],staticClass:\"note-text md\",class:{\n 'gl-block gl-overflow-hidden': _vm.hasMoreCommits,\n 'system-note-commit-list': _vm.hasMoreCommits && !_vm.expanded,\n }}),_vm._v(\" \"),(_vm.hasMoreCommits)?_c('div',{staticClass:\"flex-list\"},[_c('div',{staticClass:\"flex-row gl-relative gl-z-2 gl-cursor-pointer gl-pl-4 gl-pt-3 gl-text-link hover:gl-underline\",on:{\"click\":function($event){_vm.expanded = !_vm.expanded}}},[_c('gl-icon',{staticClass:\"gl-mr-2\",attrs:{\"name\":_vm.toggleIcon,\"size\":12}}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.__('Toggle commit list')))])],1)]):_vm._e(),_vm._v(\" \"),(_vm.shouldShowDescriptionVersion)?_c('div',{staticClass:\"gl-relative !gl-pt-3\",attrs:{\"data-testid\":\"description-version\"}},[(_vm.isLoadingDescriptionVersion)?_c('pre',{staticClass:\"loading-state\"},[_vm._v(\" \"),_c('gl-skeleton-loader'),_vm._v(\"\\n \")],1):_c('pre',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.descriptionVersion),expression:\"descriptionVersion\"}],staticClass:\"gl-mt-3 gl-whitespace-pre-wrap gl-pr-7\"}),_vm._v(\" \"),(_vm.displayDeleteButton)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-absolute\",class:_vm.deleteButtonClasses,attrs:{\"title\":_vm.$options.i18n.deleteButtonLabel,\"aria-label\":_vm.$options.i18n.deleteButtonLabel,\"variant\":\"default\",\"category\":\"tertiary\",\"icon\":\"remove\",\"data-testid\":\"delete-description-version-button\"},on:{\"click\":_vm.deleteDescriptionVersion}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.lines.length && _vm.showLines)?_c('div',{staticClass:\"gl-my-2 gl-mr-5 gl-overflow-hidden gl-overflow-visible gl-rounded-small gl-border-1 gl-border-solid gl-border-strong gl-pl-0\"},[_c('table',{staticClass:\"code js-syntax-highlight\",class:_vm.$options.userColorSchemeClass,attrs:{\"data-testid\":\"outdated-lines\"}},_vm._m(0),0)]):(_vm.showLines)?_c('div',{staticClass:\"gl-mt-4\"},[_c('gl-skeleton-loader')],1):_vm._e()])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _vm._l((_vm.lines),function(line){return _c('tr',{key:line.line_code,staticClass:\"line_holder\"},[_c('td',{staticClass:\"diff-line-num old_line !gl-rounded-none !gl-border-0 !gl-border-b-0 !gl-border-t-0\",class:line.type},[_vm._v(\"\\n \"+_vm._s(line.old_line)+\"\\n \")]),_vm._v(\" \"),_c('td',{staticClass:\"diff-line-num new_line !gl-border-b-0 !gl-border-t-0\",class:line.type},[_vm._v(\"\\n \"+_vm._s(line.new_line)+\"\\n \")]),_vm._v(\" \"),_c('td',{staticClass:\"line_content !gl-table-cell !gl-rounded-none !gl-border-0\",class:line.type,domProps:{\"innerHTML\":_vm._s(line.rich_text /* eslint-disable-line vue/no-v-html */)}})])})\n}]\n\nexport { render, staticRenderFns }","export default {\n data() {\n return {\n isDescriptionVersionExpanded: false,\n deleteInProgress: false,\n };\n },\n computed: {\n canSeeDescriptionVersion() {\n return Boolean(\n this.note.description_diff_path &&\n this.note.description_version_id &&\n !this.note.description_version_deleted,\n );\n },\n displayDeleteButton() {\n return (\n this.note.can_delete_description_version &&\n !this.deleteInProgress &&\n !this.note.description_version_deleted\n );\n },\n shouldShowDescriptionVersion() {\n return this.canSeeDescriptionVersion && this.isDescriptionVersionExpanded;\n },\n descriptionVersionToggleIcon() {\n return this.isDescriptionVersionExpanded ? 'chevron-up' : 'chevron-down';\n },\n },\n methods: {\n toggleDescriptionVersion() {\n this.isDescriptionVersionExpanded = !this.isDescriptionVersionExpanded;\n const versionId = this.note.description_version_id;\n\n if (this.descriptionVersions?.[versionId]) {\n return false;\n }\n\n const endpoint = this.note.description_diff_path;\n const startingVersion = this.note.start_description_version_id;\n\n return this.fetchDescriptionVersion({ endpoint, startingVersion, versionId });\n },\n deleteDescriptionVersion() {\n const endpoint = this.note.delete_description_version_path;\n const startingVersion = this.note.start_description_version_id;\n const versionId = this.note.description_version_id;\n this.deleteInProgress = true;\n return this.softDeleteDescriptionVersion({ endpoint, startingVersion, versionId }).catch(\n () => {\n this.deleteInProgress = false;\n },\n );\n },\n },\n};\n","<script>\n/**\n * Common component to render a system note, icon and user information.\n *\n * This component needs to be used with a vuex store.\n * That vuex store needs to have a `targetNoteHash` getter\n *\n * @example\n * <system-note\n * :note=\"{\n * id: String,\n * author: Object,\n * createdAt: String,\n * note_html: String,\n * system_note_icon_name: String\n * }\"\n * />\n */\nimport { GlButton, GlSkeletonLoader, GlTooltipDirective, GlIcon } from '@gitlab/ui';\nimport $ from 'jquery';\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapActions, mapState } from 'vuex';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport descriptionVersionHistoryMixin from 'ee_else_ce/notes/mixins/description_version_history';\nimport axios from '~/lib/utils/axios_utils';\nimport { __ } from '~/locale';\nimport NoteHeader from '~/notes/components/note_header.vue';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { renderGFM } from '~/behaviors/markdown/render_gfm';\nimport TimelineEntryItem from './timeline_entry_item.vue';\n\nconst MAX_VISIBLE_COMMIT_LIST_COUNT = 3;\nconst ICON_COLORS = {\n check: 'system-note-icon-success',\n 'merge-request-close': 'system-note-icon-danger',\n merge: 'system-note-icon-info',\n 'issue-close': 'system-note-icon-info',\n issues: 'system-note-icon-success',\n error: 'system-note-icon-danger',\n};\n\nexport default {\n i18n: {\n deleteButtonLabel: __('Remove description history'),\n },\n name: 'SystemNote',\n components: {\n GlIcon,\n NoteHeader,\n TimelineEntryItem,\n GlButton,\n GlSkeletonLoader,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n SafeHtml,\n },\n mixins: [descriptionVersionHistoryMixin, glFeatureFlagsMixin()],\n props: {\n note: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n expanded: false,\n lines: [],\n showLines: false,\n loadingDiff: false,\n };\n },\n computed: {\n ...mapGetters(['targetNoteHash', 'descriptionVersions', 'getNoteableData']),\n ...mapState(['isLoadingDescriptionVersion']),\n noteAnchorId() {\n return `note_${this.note.id}`;\n },\n isAllowedIcon() {\n return Object.keys(ICON_COLORS).includes(this.note.system_note_icon_name);\n },\n isTargetNote() {\n return this.targetNoteHash === this.noteAnchorId;\n },\n toggleIcon() {\n return this.expanded ? 'chevron-up' : 'chevron-down';\n },\n // following 2 methods taken from code in `collapseLongCommitList` of notes.js:\n actionTextHtml() {\n return $(this.note.note_html).unwrap().html();\n },\n hasMoreCommits() {\n return $(this.note.note_html).filter('ul').children().length > MAX_VISIBLE_COMMIT_LIST_COUNT;\n },\n descriptionVersion() {\n return this.descriptionVersions[this.note.description_version_id];\n },\n singleLineDescription() {\n return !this.descriptionVersion?.match(/\\n/g);\n },\n deleteButtonClasses() {\n return this.singleLineDescription ? 'gl-top-5 gl-right-2 gl-mt-2' : 'gl-top-6 gl-right-3';\n },\n isMergeRequest() {\n return this.getNoteableData.noteableType === 'MergeRequest';\n },\n iconBgClass() {\n return ICON_COLORS[this.note.system_note_icon_name] || 'gl-bg-gray-50 gl-text-subtle';\n },\n systemNoteIconName() {\n let icon = this.note.system_note_icon_name;\n if (this.note.system_note_icon_name === 'issues') {\n // eslint-disable-next-line @gitlab/require-i18n-strings\n if (this.note.noteable_type === 'Issue') {\n icon = 'issue-open-m';\n } else if (this.note.noteable_type === 'MergeRequest') {\n icon = 'merge-request';\n }\n }\n return icon;\n },\n },\n mounted() {\n renderGFM(this.$refs['gfm-content']);\n },\n methods: {\n ...mapActions(['fetchDescriptionVersion', 'softDeleteDescriptionVersion']),\n async toggleDiff() {\n this.showLines = !this.showLines;\n\n if (!this.lines.length) {\n this.loadingDiff = true;\n const { data } = await axios.get(this.note.outdated_line_change_path);\n\n this.lines = data.map((l) => ({\n ...l,\n rich_text: l.rich_text.replace(/^[+ -]/, ''),\n }));\n this.loadingDiff = false;\n }\n },\n },\n userColorSchemeClass: window.gon.user_color_scheme,\n};\n</script>\n\n<template>\n <timeline-entry-item\n :id=\"noteAnchorId\"\n :class=\"{\n target: isTargetNote,\n 'pr-0': shouldShowDescriptionVersion,\n }\"\n class=\"system-note\"\n >\n <div\n :class=\"[\n iconBgClass,\n {\n 'system-note-icon -gl-mt-1 gl-ml-2 gl-h-6 gl-w-6': isAllowedIcon,\n 'system-note-dot -gl-top-1 gl-ml-4 gl-mt-3 gl-h-3 gl-w-3 gl-border-2 gl-border-solid gl-border-subtle gl-bg-gray-900':\n !isAllowedIcon,\n },\n ]\"\n class=\"gl-relative gl-float-left gl-flex gl-items-center gl-justify-center gl-rounded-full\"\n >\n <gl-icon\n v-if=\"isAllowedIcon\"\n :name=\"systemNoteIconName\"\n :size=\"14\"\n data-testid=\"timeline-icon\"\n />\n </div>\n <div class=\"gl-ml-7\">\n <div class=\"gl-flex gl-items-start gl-justify-between\">\n <note-header\n :author=\"note.author\"\n :created-at=\"note.created_at\"\n :note-id=\"note.id\"\n :is-system-note=\"true\"\n :is-imported=\"note.imported\"\n >\n <span ref=\"gfm-content\" v-safe-html=\"actionTextHtml\"></span>\n <template\n v-if=\"canSeeDescriptionVersion || note.outdated_line_change_path\"\n #extra-controls\n >\n <gl-button\n v-if=\"canSeeDescriptionVersion\"\n variant=\"link\"\n :icon=\"descriptionVersionToggleIcon\"\n data-testid=\"compare-btn\"\n class=\"gl-ml-3 gl-align-text-bottom !gl-text-sm\"\n @click=\"toggleDescriptionVersion\"\n >{{ __('Compare with previous version') }}</gl-button\n >\n <gl-button\n v-if=\"note.outdated_line_change_path\"\n :icon=\"showLines ? 'chevron-up' : 'chevron-down'\"\n variant=\"link\"\n data-testid=\"outdated-lines-change-btn\"\n class=\"gl-align-text-bottom !gl-text-sm\"\n @click=\"toggleDiff\"\n >\n {{ __('Compare changes') }}\n </gl-button>\n </template>\n </note-header>\n </div>\n <div class=\"note-body gl-pb-3 gl-pl-3\">\n <div\n v-safe-html=\"note.note_html\"\n :class=\"{\n 'gl-block gl-overflow-hidden': hasMoreCommits,\n 'system-note-commit-list': hasMoreCommits && !expanded,\n }\"\n class=\"note-text md\"\n ></div>\n <div v-if=\"hasMoreCommits\" class=\"flex-list\">\n <div\n class=\"flex-row gl-relative gl-z-2 gl-cursor-pointer gl-pl-4 gl-pt-3 gl-text-link hover:gl-underline\"\n @click=\"expanded = !expanded\"\n >\n <gl-icon :name=\"toggleIcon\" :size=\"12\" class=\"gl-mr-2\" />\n <span>{{ __('Toggle commit list') }}</span>\n </div>\n </div>\n <div\n v-if=\"shouldShowDescriptionVersion\"\n class=\"gl-relative !gl-pt-3\"\n data-testid=\"description-version\"\n >\n <pre v-if=\"isLoadingDescriptionVersion\" class=\"loading-state\">\n <gl-skeleton-loader />\n </pre>\n <pre\n v-else\n v-safe-html=\"descriptionVersion\"\n class=\"gl-mt-3 gl-whitespace-pre-wrap gl-pr-7\"\n ></pre>\n <gl-button\n v-if=\"displayDeleteButton\"\n v-gl-tooltip\n :title=\"$options.i18n.deleteButtonLabel\"\n :aria-label=\"$options.i18n.deleteButtonLabel\"\n variant=\"default\"\n category=\"tertiary\"\n icon=\"remove\"\n class=\"gl-absolute\"\n :class=\"deleteButtonClasses\"\n data-testid=\"delete-description-version-button\"\n @click=\"deleteDescriptionVersion\"\n />\n </div>\n <div\n v-if=\"lines.length && showLines\"\n class=\"gl-my-2 gl-mr-5 gl-overflow-hidden gl-overflow-visible gl-rounded-small gl-border-1 gl-border-solid gl-border-strong gl-pl-0\"\n >\n <table\n :class=\"$options.userColorSchemeClass\"\n class=\"code js-syntax-highlight\"\n data-testid=\"outdated-lines\"\n >\n <tr v-for=\"line in lines\" v-once :key=\"line.line_code\" class=\"line_holder\">\n <td\n :class=\"line.type\"\n class=\"diff-line-num old_line !gl-rounded-none !gl-border-0 !gl-border-b-0 !gl-border-t-0\"\n >\n {{ line.old_line }}\n </td>\n <td :class=\"line.type\" class=\"diff-line-num new_line !gl-border-b-0 !gl-border-t-0\">\n {{ line.new_line }}\n </td>\n <td\n :class=\"line.type\"\n class=\"line_content !gl-table-cell !gl-rounded-none !gl-border-0\"\n v-html=\"line.rich_text /* eslint-disable-line vue/no-v-html */\"\n ></td>\n </tr>\n </table>\n </div>\n <div v-else-if=\"showLines\" class=\"gl-mt-4\">\n <gl-skeleton-loader />\n </div>\n </div>\n </div>\n </timeline-entry-item>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./system_note.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./system_note.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./system_note.vue?vue&type=template&id=61beba08\"\nimport script from \"./system_note.vue?vue&type=script&lang=js\"\nexport * from \"./system_note.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-form-input',{staticClass:\"reply-placeholder-input-field js-discussion-reply-field-placeholder\",attrs:{\"data-testid\":\"discussion-reply-tab\",\"placeholder\":_vm.placeholderText,\"aria-label\":_vm.labelText},on:{\"focus\":function($event){return _vm.$emit('focus')}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_reply_placeholder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_reply_placeholder.vue?vue&type=script&lang=js\"","<script>\nimport { GlFormInput } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n name: 'ReplyPlaceholder',\n components: {\n GlFormInput,\n },\n props: {\n placeholderText: {\n type: String,\n required: false,\n default: __('Reply…'),\n },\n labelText: {\n type: String,\n required: false,\n default: __('Reply to comment'),\n },\n },\n};\n</script>\n\n<template>\n <gl-form-input\n class=\"reply-placeholder-input-field js-discussion-reply-field-placeholder\"\n data-testid=\"discussion-reply-tab\"\n :placeholder=\"placeholderText\"\n :aria-label=\"labelText\"\n @focus=\"$emit('focus')\"\n />\n</template>\n","import { render, staticRenderFns } from \"./discussion_reply_placeholder.vue?vue&type=template&id=3b8db008\"\nimport script from \"./discussion_reply_placeholder.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_reply_placeholder.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"IterationFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Iteration\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadence\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":130}};\n doc.loc.source = {\"body\":\"fragment IterationFragment on Iteration {\\n id\\n title\\n startDate\\n dueDate\\n webUrl\\n iterationCadence {\\n id\\n title\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"IterationFragment\"] = oneQuery(doc, \"IterationFragment\");\n \n","import { s__ } from '~/locale';\n\nexport const I18N = {\n errorMsg: s__('IncidentManagement|There was an error displaying the incidents.'),\n noIncidents: s__('IncidentManagement|No incidents to display.'),\n unassigned: s__('IncidentManagement|Unassigned'),\n createIncidentBtnLabel: s__('IncidentManagement|Create incident'),\n unPublished: s__('IncidentManagement|Unpublished'),\n noEscalationStatus: s__('IncidentManagement|None'),\n emptyState: {\n title: s__('IncidentManagement|Display your incidents in a dedicated view'),\n emptyClosedTabTitle: s__('IncidentManagement|There are no closed incidents'),\n description: s__(\n 'IncidentManagement|All alerts promoted to incidents are automatically displayed within the list. You can also create a new incident using the button below.',\n ),\n cannotCreateIncidentDescription: s__(\n 'IncidentManagement|All alerts promoted to incidents are automatically displayed within the list.',\n ),\n },\n};\n\nexport const INCIDENT_STATUS_TABS = [\n {\n title: s__('IncidentManagement|Open'),\n status: 'OPENED',\n filters: 'opened',\n },\n {\n title: s__('IncidentManagement|Closed'),\n status: 'CLOSED',\n filters: 'closed',\n },\n {\n title: s__('IncidentManagement|All'),\n status: 'ALL',\n filters: 'all',\n },\n];\n\nexport const ESCALATION_STATUSES = {\n TRIGGERED: s__('AlertManagement|Triggered'),\n ACKNOWLEDGED: s__('AlertManagement|Acknowledged'),\n RESOLVED: s__('AlertManagement|Resolved'),\n};\n\nexport const TH_CREATED_AT_TEST_ID = { 'data-testid': 'incident-management-created-at-sort' };\nexport const TH_SEVERITY_TEST_ID = { 'data-testid': 'incident-management-severity-sort' };\nexport const TH_ESCALATION_STATUS_TEST_ID = { 'data-testid': 'incident-management-status-sort' };\nexport const TH_INCIDENT_SLA_TEST_ID = { 'data-testid': 'incident-management-sla' };\nexport const TH_PUBLISHED_TEST_ID = { 'data-testid': 'incident-management-published-sort' };\nexport const INCIDENT_DETAILS_PATH = 'incident';\n\nconst category = 'Incident Management'; // eslint-disable-line @gitlab/require-i18n-strings\n\n/**\n * Tracks snowplow event when user clicks create new incident\n */\nexport const trackIncidentCreateNewOptions = {\n category,\n action: 'create_incident_button_clicks',\n};\n\n/**\n * Tracks snowplow event when user views incidents list\n */\nexport const trackIncidentListViewsOptions = {\n category,\n action: 'view_incidents_list',\n};\n\n/**\n * Tracks snowplow event when user views incident details\n */\nexport const trackIncidentDetailsViewsOptions = {\n category,\n action: 'view_incident_details',\n};\n","import { normalizeHeaders } from './common_utils';\nimport { HTTP_STATUS_ABORTED, successCodes } from './http_status';\n\n/**\n * Polling utility for handling realtime updates.\n * Requirements: Promise based HTTP client\n *\n * Service for promise based http client and method need to be provided as props\n *\n * @example\n * new Poll({\n * resource: resource,\n * method: 'name',\n * data: {page: 1, scope: 'all'}, // optional\n * successCallback: () => {},\n * errorCallback: () => {},\n * notificationCallback: () => {}, // optional\n * }).makeRequest();\n *\n * Usage in pipelines table with visibility lib:\n *\n * const poll = new Poll({\n * resource: this.service,\n * method: 'getPipelines',\n * data: { page: pageNumber, scope },\n * successCallback: this.successCallback,\n * errorCallback: this.errorCallback,\n * notificationCallback: this.updateLoading,\n * });\n *\n * if (!Visibility.hidden()) {\n * poll.makeRequest();\n * }\n *\n * Visibility.change(() => {\n * if (!Visibility.hidden()) {\n * poll.restart();\n * } else {\n * poll.stop();\n * }\n * });\n *\n * 1. Checks for response and headers before start polling\n * 2. Interval is provided by `Poll-Interval` header.\n * 3. If `Poll-Interval` is -1, we stop polling\n * 4. If HTTP response is 200, we poll.\n * 5. If HTTP response is different from 200, we stop polling.\n *\n * @example\n * // With initial delay (for, for example, reducing unnecessary requests)\n *\n * const poll = new Poll({\n * resource: this.service,\n * method: 'fetchNotes',\n * successCallback: () => {},\n * errorCallback: () => {},\n * });\n *\n * // Performs the first request in 2.5s and then uses the `Poll-Interval` header.\n * poll.makeDelayedRequest(2500);\n *\n */\nexport default class Poll {\n constructor(options = {}) {\n this.options = options;\n this.options.data = options.data || {};\n this.options.notificationCallback =\n options.notificationCallback || function notificationCallback() {};\n\n this.intervalHeader = 'POLL-INTERVAL';\n this.timeoutID = null;\n this.canPoll = true;\n }\n\n checkConditions(response) {\n const headers = normalizeHeaders(response.headers);\n const pollInterval = parseInt(headers[this.intervalHeader], 10);\n if (pollInterval > 0 && successCodes.indexOf(response.status) !== -1 && this.canPoll) {\n if (this.timeoutID) {\n clearTimeout(this.timeoutID);\n }\n\n this.timeoutID = setTimeout(() => {\n this.makeRequest();\n }, pollInterval);\n }\n this.options.successCallback(response);\n }\n\n makeDelayedRequest(delay = 0) {\n // So we don't make our specs artificially slower\n this.timeoutID = setTimeout(\n () => this.makeRequest(),\n process.env.NODE_ENV !== 'test' ? delay : 1,\n );\n }\n\n makeRequest() {\n const { resource, method, data, errorCallback, notificationCallback } = this.options;\n\n // It's called everytime a new request is made. Useful to update the status.\n notificationCallback(true);\n\n return resource[method](data)\n .then((response) => {\n this.checkConditions(response);\n notificationCallback(false);\n })\n .catch((error) => {\n notificationCallback(false);\n if (error.status === HTTP_STATUS_ABORTED) {\n return;\n }\n errorCallback(error);\n });\n }\n\n /**\n * Stops the polling recursive chain\n * and guarantees if the timeout is already running it won't make another request by\n * cancelling the previously established timeout.\n */\n stop() {\n this.canPoll = false;\n clearTimeout(this.timeoutID);\n }\n\n /**\n * Enables polling after it has been stopped\n */\n enable(options) {\n if (options && options.data) {\n this.options.data = options.data;\n }\n\n this.canPoll = true;\n\n if (options && options.response) {\n this.checkConditions(options.response);\n }\n }\n\n /**\n * Restarts polling after it has been stopped and makes a request\n */\n restart(options) {\n this.enable(options);\n this.makeRequest();\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(!_vm.isLoading)?_c('clipboard-button',_vm._b({attrs:{\"css-class\":\"sidebar-collapsed-icon js-dont-change-state !gl-rounded-none hover:gl-bg-transparent\"}},'clipboard-button',_vm.clipboardProps,false)):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed gl-flex gl-items-center gl-justify-between\"},[_c('span',{staticClass:\"gl-overflow-hidden gl-text-ellipsis gl-whitespace-nowrap\",attrs:{\"title\":_vm.value}},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.templateText},scopedSlots:_vm._u([{key:\"name\",fn:function(){return [_vm._v(_vm._s(_vm.name))]},proxy:true},{key:\"value\",fn:function(){return [_vm._v(_vm._s(_vm.value))]},proxy:true}])})],1),_vm._v(\" \"),(_vm.isLoading)?_c('gl-loading-icon',{attrs:{\"size\":\"sm\",\"inline\":\"\",\"label\":_vm.loadingIconLabel}}):_c('clipboard-button',_vm._b({attrs:{\"size\":\"small\"}},'clipboard-button',_vm.clipboardProps,false))],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copyable_field.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copyable_field.vue?vue&type=script&lang=js\"","<script>\nimport { GlLoadingIcon, GlSprintf } from '@gitlab/ui';\nimport { s__, __, sprintf } from '~/locale';\nimport ClipboardButton from '~/vue_shared/components/clipboard_button.vue';\n\n/**\n * Renders an inline field, whose value can be copied to the clipboard,\n * for use in the GitLab sidebar (issues, MRs, etc.).\n */\nexport default {\n name: 'CopyableField',\n components: {\n ClipboardButton,\n GlLoadingIcon,\n GlSprintf,\n },\n props: {\n value: {\n type: String,\n required: true,\n },\n name: {\n type: String,\n required: true,\n },\n isLoading: {\n type: Boolean,\n required: false,\n default: false,\n },\n clipboardTooltipText: {\n type: String,\n required: false,\n default: undefined,\n },\n },\n computed: {\n clipboardProps() {\n return {\n category: 'tertiary',\n tooltipBoundary: 'viewport',\n tooltipPlacement: 'left',\n text: this.value,\n title:\n this.clipboardTooltipText ||\n sprintf(this.$options.i18n.clipboardTooltip, { name: this.name }),\n };\n },\n loadingIconLabel() {\n return sprintf(this.$options.i18n.loadingIconLabel, { name: this.name });\n },\n },\n i18n: {\n loadingIconLabel: __('Loading %{name}'),\n clipboardTooltip: __('Copy %{name}'),\n templateText: s__('Sidebar|%{name}: %{value}'),\n },\n};\n</script>\n\n<template>\n <div>\n <clipboard-button\n v-if=\"!isLoading\"\n css-class=\"sidebar-collapsed-icon js-dont-change-state !gl-rounded-none hover:gl-bg-transparent\"\n v-bind=\"clipboardProps\"\n />\n\n <div class=\"hide-collapsed gl-flex gl-items-center gl-justify-between\">\n <span class=\"gl-overflow-hidden gl-text-ellipsis gl-whitespace-nowrap\" :title=\"value\">\n <gl-sprintf :message=\"$options.i18n.templateText\">\n <template #name>{{ name }}</template>\n <template #value>{{ value }}</template>\n </gl-sprintf>\n </span>\n\n <gl-loading-icon v-if=\"isLoading\" size=\"sm\" inline :label=\"loadingIconLabel\" />\n <clipboard-button v-else size=\"small\" v-bind=\"clipboardProps\" />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./copyable_field.vue?vue&type=template&id=05f82842\"\nimport script from \"./copyable_field.vue?vue&type=script&lang=js\"\nexport * from \"./copyable_field.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button',_vm._b({class:{ 'btn-icon': _vm.isIconButton },attrs:{\"aria-label\":_vm.buttonLabel},on:{\"click\":function($event){return _vm.onToggle($event)}}},'gl-button',_vm.$attrs,false),[_vm._t(\"default\",function(){return [_vm._v(_vm._s(_vm.buttonLabel))]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./todo_button.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./todo_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { todoLabel, updateGlobalTodoCount } from '../../utils';\n\nexport default {\n components: {\n GlButton,\n },\n props: {\n isTodo: {\n type: Boolean,\n required: false,\n default: true,\n },\n isIconButton: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n buttonLabel() {\n return todoLabel(this.isTodo);\n },\n },\n methods: {\n incrementGlobalTodoCount() {\n updateGlobalTodoCount(1);\n },\n decrementGlobalTodoCount() {\n updateGlobalTodoCount(-1);\n },\n onToggle(event) {\n if (this.isTodo) {\n this.decrementGlobalTodoCount();\n } else {\n this.incrementGlobalTodoCount();\n }\n this.$emit('click', event);\n },\n },\n};\n</script>\n\n<template>\n <gl-button\n v-bind=\"$attrs\"\n :aria-label=\"buttonLabel\"\n :class=\"{ 'btn-icon': isIconButton }\"\n @click=\"onToggle($event)\"\n >\n <slot>{{ buttonLabel }}</slot>\n </gl-button>\n</template>\n","import { render, staticRenderFns } from \"./todo_button.vue?vue&type=template&id=1d8cd8ea\"\nimport script from \"./todo_button.vue?vue&type=script&lang=js\"\nexport * from \"./todo_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","function getFileReviewsKey(mrPath) {\n return `${mrPath}-file-reviews`;\n}\n\nexport function isFileReviewed(reviews, file) {\n const fileReviews = reviews[file.file_identifier_hash];\n\n return file?.id && fileReviews?.length ? new Set(fileReviews).has(file.id) : false;\n}\n\nexport function reviewStatuses(files, reviews) {\n return files.reduce((flat, file) => {\n return {\n ...flat,\n [file.id]: isFileReviewed(reviews, file),\n };\n }, {});\n}\n\nexport function getReviewsForMergeRequest(mrPath) {\n const reviewsForMr = localStorage.getItem(getFileReviewsKey(mrPath));\n let reviews = {};\n\n if (reviewsForMr) {\n try {\n reviews = JSON.parse(reviewsForMr);\n } catch (err) {\n reviews = {};\n }\n }\n\n return reviews;\n}\n\nexport function setReviewsForMergeRequest(mrPath, reviews) {\n localStorage.setItem(getFileReviewsKey(mrPath), JSON.stringify(reviews));\n\n return reviews;\n}\n\nexport function reviewable(file) {\n return Boolean(file.id) && Boolean(file.file_identifier_hash);\n}\n\nexport function markFileReview(reviews, file, reviewed = true) {\n const usableReviews = { ...reviews };\n const updatedReviews = usableReviews;\n let fileReviews;\n\n if (reviewable(file)) {\n fileReviews = new Set(usableReviews[file.file_identifier_hash] || []);\n\n if (reviewed) {\n fileReviews.add(file.id);\n fileReviews.add(`hash:${file.file_hash}`);\n } else {\n fileReviews.delete(file.id);\n fileReviews.delete(`hash:${file.file_hash}`);\n }\n\n updatedReviews[file.file_identifier_hash] = Array.from(fileReviews);\n\n if (updatedReviews[file.file_identifier_hash].length === 0) {\n delete updatedReviews[file.file_identifier_hash];\n }\n }\n\n return updatedReviews;\n}\n","/* eslint-disable func-names, consistent-return, no-param-reassign */\n\nimport $ from 'jquery';\nimport { setCookie } from '~/lib/utils/common_utils';\nimport { hide, fixTitle } from '~/tooltips';\nimport { __ } from './locale';\n\nconst updateSidebarClasses = (layoutPage, rightSidebar, windowSize = window.innerWidth) => {\n if (windowSize >= 992) {\n layoutPage.classList.remove('right-sidebar-expanded', 'right-sidebar-collapsed');\n rightSidebar.classList.remove('right-sidebar-collapsed');\n rightSidebar.classList.add('right-sidebar-expanded');\n } else {\n layoutPage.classList.add('right-sidebar-collapsed', 'is-merge-request');\n rightSidebar.classList.add('right-sidebar-collapsed');\n rightSidebar.classList.remove('right-sidebar-expanded');\n }\n};\n\nfunction Sidebar() {\n this.sidebar = $('aside');\n\n this.isMR = /projects:merge_requests:/.test(document.body.dataset.page);\n\n this.removeListeners();\n this.addEventListeners();\n}\n\nSidebar.initialize = function () {\n if (!this.instance) {\n this.instance = new Sidebar();\n }\n};\n\nSidebar.prototype.removeListeners = function () {\n this.sidebar.off('click', '.sidebar-collapsed-icon');\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.sidebar.off('hidden.gl.dropdown');\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.sidebar.off('hiddenGlDropdown');\n // eslint-disable-next-line @gitlab/no-global-event-off\n $('.dropdown').off('loading.gl.dropdown');\n // eslint-disable-next-line @gitlab/no-global-event-off\n $('.dropdown').off('loaded.gl.dropdown');\n $(document).off('click', '.js-sidebar-toggle');\n};\n\nSidebar.prototype.addEventListeners = function () {\n const $document = $(document);\n\n this.sidebar.on('click', '.sidebar-collapsed-icon', this, this.sidebarCollapseClicked);\n this.sidebar.on('hidden.gl.dropdown', this, this.onSidebarDropdownHidden);\n this.sidebar.on('hiddenGlDropdown', this, this.onSidebarDropdownHidden);\n\n $document.on('click', '.js-sidebar-toggle', this.sidebarToggleClicked);\n\n const layoutPage = document.querySelector('.layout-page');\n const rightSidebar = document.querySelector('.js-right-sidebar');\n\n if (rightSidebar.classList.contains('right-sidebar-merge-requests')) {\n updateSidebarClasses(layoutPage, rightSidebar);\n\n const resizeHandler = new ResizeObserver((entries) => {\n for (const entry of entries) {\n updateSidebarClasses(layoutPage, rightSidebar, entry.contentRect.width);\n }\n });\n resizeHandler.observe(document.querySelector('html'));\n }\n};\n\nSidebar.prototype.sidebarToggleClicked = function (e, triggered) {\n const $toggleButtons = $('.js-sidebar-toggle');\n const $collapseIcon = $('.js-sidebar-collapse');\n const $expandIcon = $('.js-sidebar-expand');\n const $toggleContainer = $('.js-sidebar-toggle-container');\n const isExpanded = $toggleContainer.data('is-expanded');\n const tooltipLabel = isExpanded ? __('Expand sidebar') : __('Collapse sidebar');\n e.preventDefault();\n\n if (isExpanded) {\n $toggleContainer.data('is-expanded', false);\n $collapseIcon.addClass('hidden');\n $expandIcon.removeClass('hidden');\n $('aside.right-sidebar')\n .removeClass('right-sidebar-expanded')\n .addClass('right-sidebar-collapsed');\n\n if (!this.isMR) {\n $('.layout-page').removeClass('right-sidebar-expanded').addClass('right-sidebar-collapsed');\n }\n } else {\n $toggleContainer.data('is-expanded', true);\n $expandIcon.addClass('hidden');\n $collapseIcon.removeClass('hidden');\n $('aside.right-sidebar')\n .removeClass('right-sidebar-collapsed')\n .addClass('right-sidebar-expanded');\n\n if (!this.isMR) {\n $('.layout-page').removeClass('right-sidebar-collapsed').addClass('right-sidebar-expanded');\n }\n }\n\n $toggleButtons.attr('data-original-title', tooltipLabel);\n $toggleButtons.attr('title', tooltipLabel);\n fixTitle($toggleButtons);\n hide($toggleButtons);\n\n if (!triggered) {\n setCookie('collapsed_gutter', $('.right-sidebar').hasClass('right-sidebar-collapsed'));\n }\n};\n\nSidebar.prototype.sidebarCollapseClicked = function (e) {\n if ($(e.currentTarget).hasClass('js-dont-change-state')) {\n return;\n }\n const sidebar = e.data;\n e.preventDefault();\n const $block = $(this).closest('.block');\n return sidebar.openDropdown($block);\n};\n\nSidebar.prototype.openDropdown = function (blockOrName) {\n const $block = typeof blockOrName === 'string' ? this.getBlock(blockOrName) : blockOrName;\n if (!this.isOpen()) {\n this.setCollapseAfterUpdate($block);\n this.toggleSidebar('open');\n }\n};\n\nSidebar.prototype.setCollapseAfterUpdate = function ($block) {\n $block.addClass('collapse-after-update');\n return $('.layout-page').addClass('with-overlay');\n};\n\nSidebar.prototype.onSidebarDropdownHidden = function (e) {\n const sidebar = e.data;\n e.preventDefault();\n const $block = $(e.target).closest('.block');\n return sidebar.sidebarDropdownHidden($block);\n};\n\nSidebar.prototype.sidebarDropdownHidden = function ($block) {\n if ($block.hasClass('collapse-after-update')) {\n $block.removeClass('collapse-after-update');\n $('.layout-page').removeClass('with-overlay');\n return this.toggleSidebar('hide');\n }\n};\n\nSidebar.prototype.triggerOpenSidebar = function () {\n return this.sidebar.find('.js-sidebar-toggle').trigger('click');\n};\n\nSidebar.prototype.toggleSidebar = function (action) {\n if (action == null) {\n action = 'toggle';\n }\n if (action === 'toggle') {\n this.triggerOpenSidebar();\n }\n if (action === 'open') {\n if (!this.isOpen()) {\n this.triggerOpenSidebar();\n }\n }\n if (action === 'hide') {\n if (this.isOpen()) {\n return this.triggerOpenSidebar();\n }\n }\n};\n\nSidebar.prototype.isOpen = function () {\n return this.sidebar.is('.right-sidebar-expanded');\n};\n\nSidebar.prototype.getBlock = function (name) {\n return this.sidebar.find(`.block.${name}`);\n};\n\nexport default Sidebar;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"selectedBoardItems\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"selectedBoardItems\"},\"arguments\":[],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}]}]}}],\"loc\":{\"start\":0,\"end\":58}};\n doc.loc.source = {\"body\":\"query selectedBoardItems {\\n selectedBoardItems @client\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"selectedBoardItems\"] = oneQuery(doc, \"selectedBoardItems\");\n \n","import { s__ } from '~/locale';\nimport { helpPagePath } from '~/helpers/help_page_helper';\n\nexport const PROJECT_SELECT_LABEL_ID = 'project-select';\nexport const SEARCH_DELAY = 200;\nexport const VALID_TOKEN_BACKGROUND = 'gl-bg-green-100';\nexport const WARNING_TOKEN_BACKGROUND = 'gl-bg-orange-100';\nexport const INVALID_TOKEN_BACKGROUND = 'gl-bg-red-100';\nexport const TOAST_MESSAGE_LOCALSTORAGE_KEY = 'members_invited_successfully';\nexport const MEMBERS_WITH_QUEUED_STATUS_LOCALSTORAGE_KEY = 'members_queued_successfully';\n\nexport const GROUP_FILTERS = {\n ALL: 'all',\n DESCENDANT_GROUPS: 'descendant_groups',\n};\n\nexport const USERS_FILTER_ALL = 'all';\nexport const USERS_FILTER_SAML_PROVIDER_ID = 'saml_provider_id';\nexport const TRIGGER_ELEMENT_BUTTON = 'button';\nexport const TOP_NAV_INVITE_MEMBERS_COMPONENT = 'invite_members';\nexport const TRIGGER_ELEMENT_WITH_EMOJI = 'text-emoji';\nexport const TRIGGER_ELEMENT_DROPDOWN_WITH_EMOJI = 'dropdown-text-emoji';\nexport const TRIGGER_ELEMENT_DISCLOSURE_DROPDOWN = 'dropdown-text';\nexport const INVITE_MEMBER_MODAL_TRACKING_CATEGORY = 'invite_members_modal';\nexport const IMPORT_PROJECT_MEMBERS_MODAL_TRACKING_CATEGORY = 'invite_project_members_modal';\nexport const IMPORT_PROJECT_MEMBERS_MODAL_TRACKING_LABEL = 'project-members-page';\nexport const MEMBERS_MODAL_DEFAULT_TITLE = s__('InviteMembersModal|Invite members');\nexport const MEMBERS_MODAL_CELEBRATE_TITLE = s__(\n 'InviteMembersModal|GitLab is better with colleagues!',\n);\nexport const MEMBERS_MODAL_CELEBRATE_INTRO = s__(\n 'InviteMembersModal|How about inviting a colleague or two to join you?',\n);\nexport const MEMBERS_TO_GROUP_DEFAULT_INTRO_TEXT = s__(\n \"InviteMembersModal|You're inviting members to the %{strongStart}%{name}%{strongEnd} group.\",\n);\n\nexport const MEMBERS_TO_PROJECT_DEFAULT_INTRO_TEXT = s__(\n \"InviteMembersModal|You're inviting members to the %{strongStart}%{name}%{strongEnd} project.\",\n);\nexport const MEMBERS_TO_PROJECT_CELEBRATE_INTRO_TEXT = s__(\n \"InviteMembersModal|Congratulations on creating your project, you're almost there!\",\n);\nexport const MEMBERS_SEARCH_FIELD = s__('InviteMembersModal|Username, name or email address');\nexport const MEMBERS_PLACEHOLDER = s__(\n 'InviteMembersModal|Select from GitLab usernames or enter email addresses',\n);\n\nexport const GROUP_MODAL_DEFAULT_TITLE = s__('InviteMembersModal|Invite a group');\nexport const GROUP_MODAL_TO_GROUP_DEFAULT_INTRO_TEXT = s__(\n \"InviteMembersModal|You're inviting a group to the %{strongStart}%{name}%{strongEnd} group.\",\n);\nexport const GROUP_MODAL_TO_PROJECT_DEFAULT_INTRO_TEXT = s__(\n \"InviteMembersModal|You're inviting a group to the %{strongStart}%{name}%{strongEnd} project.\",\n);\n\nexport const GROUP_MODAL_TO_GROUP_ALERT_BODY = s__(\n 'InviteMembersModal|Inviting a group %{linkStart}adds its members to your group%{linkEnd}, including members who join after the invite. This might put your group over the free %{count} user limit.',\n);\nexport const GROUP_MODAL_TO_GROUP_ALERT_LINK = helpPagePath(\n 'user/project/members/sharing_projects_groups',\n {\n anchor: 'invite-a-group-to-a-group',\n },\n);\nexport const GROUP_MODAL_TO_PROJECT_ALERT_BODY = s__(\n 'InviteMembersModal|Inviting a group %{linkStart}adds its members to your project%{linkEnd}, including members who join after the invite. This might put your group over the free %{count} user limit.',\n);\nexport const GROUP_MODAL_TO_PROJECT_ALERT_LINK = helpPagePath(\n 'user/project/members/sharing_projects_groups',\n {\n anchor: 'invite-a-group-to-a-project',\n },\n);\n\nexport const GROUP_SEARCH_FIELD = s__('InviteMembersModal|Select a group to invite');\nexport const GROUP_PLACEHOLDER = s__('InviteMembersModal|Search for a group to invite');\n\nexport const ACCESS_LEVEL = s__('InviteMembersModal|Select maximum role');\nexport const ACCESS_EXPIRE_DATE = s__('InviteMembersModal|Access expiration date (optional)');\nexport const TOAST_MESSAGE_SUCCESSFUL = s__('InviteMembersModal|Members were successfully added.');\nexport const QUEUED_MESSAGE_SUCCESSFUL = s__(\n 'InviteMembersModal|Some invitations have been queued for administrator approval.',\n);\nexport const INVALID_FEEDBACK_MESSAGE_DEFAULT = s__('InviteMembersModal|Something went wrong');\nexport const READ_MORE_TEXT = s__(\n `InviteMembersModal|%{linkStart}Read more%{linkEnd} about role permissions. You can change this later. Invited members are limited to this role or their current group role, whichever is lower.`,\n);\nexport const READ_MORE_ACCESS_EXPIRATION_TEXT = s__(\n `InviteMembersModal|%{linkStart}Read more%{linkEnd} about access expiration`,\n);\nexport const INVITE_BUTTON_TEXT = s__('InviteMembersModal|Invite');\nexport const INVITE_BUTTON_TEXT_DISABLED = s__('InviteMembersModal|Manage members');\nexport const CANCEL_BUTTON_TEXT = s__('InviteMembersModal|Cancel');\nexport const HEADER_CLOSE_LABEL = s__('InviteMembersModal|Close invite team members');\nexport const MEMBER_ERROR_LIST_TEXT = s__(\n 'InviteMembersModal|Review the invite errors and try again:',\n);\nexport const COLLAPSED_ERRORS = s__('InviteMembersModal|Show more (%{count})');\nexport const EXPANDED_ERRORS = s__('InviteMembersModal|Show less');\nexport const EMPTY_INVITES_ALERT_TEXT = s__('InviteMembersModal|Please add members to invite');\n\nexport const MEMBER_MODAL_LABELS = {\n modal: {\n default: {\n title: MEMBERS_MODAL_DEFAULT_TITLE,\n },\n celebrate: {\n title: MEMBERS_MODAL_CELEBRATE_TITLE,\n intro: MEMBERS_MODAL_CELEBRATE_INTRO,\n },\n },\n toGroup: {\n default: {\n introText: MEMBERS_TO_GROUP_DEFAULT_INTRO_TEXT,\n },\n },\n toProject: {\n default: {\n introText: MEMBERS_TO_PROJECT_DEFAULT_INTRO_TEXT,\n },\n celebrate: {\n introText: MEMBERS_TO_PROJECT_CELEBRATE_INTRO_TEXT,\n },\n },\n searchField: MEMBERS_SEARCH_FIELD,\n placeHolder: MEMBERS_PLACEHOLDER,\n toastMessageSuccessful: TOAST_MESSAGE_SUCCESSFUL,\n memberErrorListText: MEMBER_ERROR_LIST_TEXT,\n collapsedErrors: COLLAPSED_ERRORS,\n expandedErrors: EXPANDED_ERRORS,\n emptyInvitesAlertText: EMPTY_INVITES_ALERT_TEXT,\n};\n\nexport const GROUP_MODAL_LABELS = {\n title: GROUP_MODAL_DEFAULT_TITLE,\n toGroup: {\n introText: GROUP_MODAL_TO_GROUP_DEFAULT_INTRO_TEXT,\n notificationText: GROUP_MODAL_TO_GROUP_ALERT_BODY,\n notificationLink: GROUP_MODAL_TO_GROUP_ALERT_LINK,\n },\n toProject: {\n introText: GROUP_MODAL_TO_PROJECT_DEFAULT_INTRO_TEXT,\n notificationText: GROUP_MODAL_TO_PROJECT_ALERT_BODY,\n notificationLink: GROUP_MODAL_TO_PROJECT_ALERT_LINK,\n },\n searchField: GROUP_SEARCH_FIELD,\n placeHolder: GROUP_PLACEHOLDER,\n toastMessageSuccessful: TOAST_MESSAGE_SUCCESSFUL,\n};\n\nexport const ON_SHOW_TRACK_LABEL = 'over_limit_modal_viewed';\nexport const ON_CELEBRATION_TRACK_LABEL = 'invite_celebration_modal';\n\nexport const WARNING_ALERT_TITLE = s__(\n 'InviteMembersModal|You only have space for %{count} more %{members} in %{name}',\n);\nexport const DANGER_ALERT_TITLE = s__(\n \"InviteMembersModal|You've reached your %{count} %{members} limit for %{name}\",\n);\n\nexport const REACHED_LIMIT_VARIANT = 'reached';\nexport const CLOSE_TO_LIMIT_VARIANT = 'close';\n\nexport const REACHED_LIMIT_MESSAGE = s__(\n 'InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects.',\n);\n\nexport const REACHED_LIMIT_UPGRADE_SUGGESTION_MESSAGE = REACHED_LIMIT_MESSAGE.concat(\n s__(\n 'InviteMembersModal| To get more members, the owner of this top-level group can %{trialLinkStart}start a trial%{trialLinkEnd} or %{upgradeLinkStart}upgrade%{upgradeLinkEnd} to a paid tier.',\n ),\n);\n\nexport const CLOSE_TO_LIMIT_MESSAGE = s__(\n 'InviteMembersModal|To get more members an owner of the group can %{trialLinkStart}start a trial%{trialLinkEnd} or %{upgradeLinkStart}upgrade%{upgradeLinkEnd} to a paid tier.',\n);\nexport const BLOCKED_SEAT_OVERAGES_BODY = s__(\n 'InviteMembersModal|You must purchase more seats for your subscription before this amount of users can be added.',\n);\nexport const BLOCKED_SEAT_OVERAGES_CTA = s__('InviteMembersModal|Purchase more seats');\nexport const BLOCKED_SEAT_OVERAGES_CTA_DOCS = s__('InviteMembersModal|Learn how to add seats');\nexport const BLOCKED_SEAT_OVERAGES_ERROR_REASON = 'seat_limit_exceeded_error';\n","import $ from 'jquery';\nimport LegacyTemplateSelector from '~/blob/legacy_template_selector';\nimport { __ } from '~/locale';\nimport { setUrlParams, updateHistory } from '~/lib/utils/url_utility';\nimport Api from '../api';\n\nexport default class IssuableTemplateSelector extends LegacyTemplateSelector {\n constructor(...args) {\n super(...args);\n\n this.projectId = this.dropdown.data('projectId');\n this.issuableType = this.$dropdownContainer.data('issuableType');\n this.titleInput = $(`#${this.issuableType}_title`);\n this.templateWarningEl = $('.js-issuable-template-warning');\n this.warnTemplateOverride = args[0].warnTemplateOverride;\n\n const initialQuery = {\n name: this.dropdown.data('selected'),\n };\n\n // Only use the default template if we don't have description data from autosave\n if (!initialQuery.name && this.dropdown.data('default') && !this.editor.getValue().length) {\n initialQuery.name = this.dropdown.data('default');\n }\n\n if (initialQuery.name) {\n this.requestFile(initialQuery);\n this.setToggleText(initialQuery.name);\n }\n\n $('.reset-template', this.dropdown.parent()).on('click', () => {\n this.setInputValueToTemplateContent();\n });\n\n $('.no-template', this.dropdown.parent()).on('click', () => {\n this.reset();\n });\n\n this.templateWarningEl.find('.js-close-btn').on('click', () => {\n // Explicitly check against 0 value\n if (this.previousSelectedIndex !== undefined) {\n this.dropdown.data('deprecatedJQueryDropdown').selectRowAtIndex(this.previousSelectedIndex);\n } else {\n this.reset();\n }\n\n this.templateWarningEl.addClass('hidden');\n });\n\n this.templateWarningEl.find('.js-override-template').on('click', () => {\n this.requestFile(this.overridingTemplate);\n this.setSelectedIndex();\n\n this.templateWarningEl.addClass('hidden');\n this.overridingTemplate = null;\n });\n }\n\n reset() {\n if (this.currentTemplate) {\n this.currentTemplate.content = '';\n }\n\n this.setInputValueToTemplateContent();\n this.setToggleText(__('Choose a template'));\n this.previousSelectedIndex = null;\n\n updateHistory({\n url: setUrlParams({ issuable_template: null }),\n replace: true,\n });\n }\n\n setToggleText(text) {\n $('.dropdown-toggle-text', this.dropdown).text(text);\n }\n\n setSelectedIndex() {\n this.previousSelectedIndex = this.dropdown.data('deprecatedJQueryDropdown').selectedIndex;\n }\n\n onDropdownClicked(query) {\n const content = this.getEditorContent();\n const isContentUnchanged =\n content === '' || (this.currentTemplate && content === this.currentTemplate.content);\n\n if (!this.warnTemplateOverride || isContentUnchanged) {\n super.onDropdownClicked(query);\n this.setSelectedIndex();\n\n return;\n }\n\n this.overridingTemplate = query.selectedObj;\n this.templateWarningEl.removeClass('hidden');\n }\n\n requestFile(query) {\n const callback = (currentTemplate) => {\n this.currentTemplate = currentTemplate;\n this.stopLoadingSpinner();\n this.setInputValueToTemplateContent();\n\n // Update URL with template param when template is selected\n if (this.currentTemplate?.name) {\n updateHistory({\n url: setUrlParams({ issuable_template: encodeURIComponent(this.currentTemplate.name) }),\n replace: true,\n });\n }\n };\n\n this.startLoadingSpinner();\n\n Api.projectTemplate(\n this.projectId,\n this.issuableType,\n query.name,\n { source_template_project_id: query.project_id },\n callback,\n );\n }\n\n setInputValueToTemplateContent() {\n // `this.setEditorContent` sets the value of the description input field\n // to the content of the template selected.\n if (this.titleInput.val() === '') {\n // If the title has not yet been set, focus the title input and\n // skip focusing the description input by setting `true` as the\n // `skipFocus` option to `setEditorContent`.\n this.setEditorContent(this.currentTemplate, { skipFocus: true });\n this.titleInput.focus();\n } else {\n this.setEditorContent(this.currentTemplate, { skipFocus: false });\n }\n }\n}\n","import $ from 'jquery';\nimport initDeprecatedJQueryDropdown from '~/deprecated_jquery_dropdown';\nimport { loadingIconForLegacyJS } from '~/loading_icon_for_legacy_js';\n\nexport default class LegacyTemplateSelector {\n constructor({ dropdown, data, pattern, wrapper, editor, $input } = {}) {\n this.pattern = pattern;\n this.editor = editor;\n this.dropdown = dropdown;\n this.$dropdownContainer = wrapper;\n this.$filenameInput = $input || $('#file_name');\n this.dropdownIcon = dropdown[0].querySelector('.dropdown-menu-toggle-icon');\n this.loadingIcon = loadingIconForLegacyJS({ classes: ['gl-hidden'] });\n this.dropdownIcon.parentNode.insertBefore(this.loadingIcon, this.dropdownIcon.nextSibling);\n\n this.initDropdown(dropdown, data);\n this.listenForFilenameInput();\n this.renderMatchedDropdown();\n this.initAutosizeUpdateEvent();\n }\n\n initDropdown(dropdown, data) {\n return initDeprecatedJQueryDropdown($(dropdown), {\n data,\n filterable: true,\n selectable: true,\n toggleLabel: (item) => item.name,\n search: {\n fields: ['name'],\n },\n clicked: (options) => this.onDropdownClicked(options),\n text: (item) => item.name,\n });\n }\n\n // Subclasses can override this method to conditionally prevent fetching file templates\n onDropdownClicked(options) {\n this.fetchFileTemplate(options);\n }\n\n initAutosizeUpdateEvent() {\n this.autosizeUpdateEvent = document.createEvent('Event');\n this.autosizeUpdateEvent.initEvent('autosize:update', true, false);\n }\n\n listenForFilenameInput() {\n return this.$filenameInput.on('keyup blur', (e) => this.renderMatchedDropdown(e));\n }\n\n renderMatchedDropdown() {\n if (!this.$filenameInput.length) {\n return null;\n }\n\n const filenameMatches = this.pattern.test(this.$filenameInput.val().trim());\n\n if (!filenameMatches) {\n return this.$dropdownContainer.addClass('hidden');\n }\n return this.$dropdownContainer.removeClass('hidden');\n }\n\n fetchFileTemplate(options) {\n const { e } = options;\n const item = options.selectedObj;\n\n e.preventDefault();\n return this.requestFile(item);\n }\n\n // eslint-disable-next-line class-methods-use-this\n requestFile() {\n // This `requestFile` method is an abstract method that should\n // be added by all subclasses.\n }\n\n setEditorContent(file, { skipFocus } = {}) {\n if (!file) return;\n\n let newValue = file.content;\n\n const urlParams = new URLSearchParams(window.location.search);\n if (urlParams.has('issue[description]')) {\n newValue += `\\n${urlParams.get('issue[description]')}`;\n }\n\n this.editor.setValue(newValue, 1);\n\n if (!skipFocus) this.editor.focus();\n\n if (this.editor instanceof $) {\n this.editor.get(0).dispatchEvent(this.autosizeUpdateEvent);\n this.editor.trigger('input');\n }\n }\n\n getEditorContent() {\n return this.editor.getValue();\n }\n\n startLoadingSpinner() {\n this.loadingIcon.classList.remove('gl-hidden');\n this.dropdownIcon.classList.add('gl-hidden');\n }\n\n stopLoadingSpinner() {\n this.loadingIcon.classList.add('gl-hidden');\n this.dropdownIcon.classList.remove('gl-hidden');\n }\n}\n","import $ from 'jquery';\nimport IssuableTemplateSelector from './issuable_template_selector';\n\nexport default class IssuableTemplateSelectors {\n constructor({ $dropdowns, editor, warnTemplateOverride } = {}) {\n this.$dropdowns = $dropdowns || $('.js-issuable-selector');\n this.editor = editor || this.initEditor();\n\n this.$dropdowns.each((i, dropdown) => {\n const $dropdown = $(dropdown);\n\n // eslint-disable-next-line no-new\n new IssuableTemplateSelector({\n pattern: /(\\.md)/,\n data: $dropdown.data('data'),\n wrapper: $dropdown.closest('.js-issuable-selector-wrap'),\n dropdown: $dropdown,\n editor: this.editor,\n warnTemplateOverride,\n });\n });\n }\n\n // eslint-disable-next-line class-methods-use-this\n initEditor() {\n const editor = $('.markdown-area');\n // Proxy ace-editor's .setValue to jQuery's .val\n editor.setValue = editor.val;\n editor.getValue = editor.val;\n return editor;\n }\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueTimeTrackingFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"humanTotalTimeSpent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalTimeSpent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelogs\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"TimelogFragment\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":238}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/issuable_timelogs.fragment.graphql\\\"\\n\\nfragment IssueTimeTrackingFragment on Issue {\\n __typename\\n id\\n humanTotalTimeSpent\\n totalTimeSpent\\n timelogs {\\n nodes {\\n ...TimelogFragment\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/issuable_timelogs.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"IssueTimeTrackingFragment\"] = oneQuery(doc, \"IssueTimeTrackingFragment\");\n \n","/**\n * Takes a file object and returns a data uri of its contents.\n *\n * @param {File} file\n */\nexport function readFileAsDataURL(file) {\n return new Promise((resolve) => {\n const reader = new FileReader();\n reader.addEventListener('load', (e) => resolve(e.target.result), { once: true });\n reader.readAsDataURL(file);\n });\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('sidebar-participants',{staticClass:\"block participants\",attrs:{\"loading\":_vm.isLoading,\"participants\":_vm.participants,\"number-of-less-participants\":8,\"lazy\":false},on:{\"toggleSidebar\":function($event){return _vm.$emit('toggleSidebar')}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_participants.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_participants.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { n__, sprintf } from '~/locale';\nimport Participants from './participants.vue';\n\nexport default {\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlIcon,\n GlLoadingIcon,\n Participants,\n },\n props: {\n loading: {\n type: Boolean,\n required: false,\n default: false,\n },\n participants: {\n type: Array,\n required: false,\n default: () => [],\n },\n numberOfLessParticipants: {\n type: Number,\n required: false,\n default: 8,\n },\n showParticipantLabel: {\n type: Boolean,\n required: false,\n default: true,\n },\n lazy: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n computed: {\n participantLabel() {\n return sprintf(\n n__('%{count} Participant', '%{count} Participants', this.participants.length),\n { count: this.loading ? '' : this.participantCount },\n );\n },\n participantCount() {\n return this.participants.length;\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div\n v-if=\"showParticipantLabel\"\n v-gl-tooltip.left.viewport\n :title=\"participantLabel\"\n class=\"sidebar-collapsed-icon\"\n @click=\"$emit('toggleSidebar')\"\n >\n <gl-icon name=\"users\" />\n <gl-loading-icon v-if=\"loading\" size=\"sm\" />\n <span v-else class=\"gl-px-3 gl-pt-2 gl-text-sm\">\n {{ participantCount }}\n </span>\n </div>\n <participants\n class=\"hide-collapsed\"\n :lazy=\"lazy\"\n :loading=\"loading\"\n :number-of-less-participants=\"numberOfLessParticipants\"\n :participants=\"participants\"\n :show-participant-label=\"showParticipantLabel\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_participants.vue?vue&type=template&id=515b3a1e\"\nimport script from \"./sidebar_participants.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_participants.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.showParticipantLabel)?_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.participantLabel},on:{\"click\":function($event){return _vm.$emit('toggleSidebar')}}},[_c('gl-icon',{attrs:{\"name\":\"users\"}}),_vm._v(\" \"),(_vm.loading)?_c('gl-loading-icon',{attrs:{\"size\":\"sm\"}}):_c('span',{staticClass:\"gl-px-3 gl-pt-2 gl-text-sm\"},[_vm._v(\"\\n \"+_vm._s(_vm.participantCount)+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),_c('participants',{staticClass:\"hide-collapsed\",attrs:{\"lazy\":_vm.lazy,\"loading\":_vm.loading,\"number-of-less-participants\":_vm.numberOfLessParticipants,\"participants\":_vm.participants,\"show-participant-label\":_vm.showParticipantLabel}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_participants_widget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_participants_widget.vue?vue&type=script&lang=js\"","<script>\nimport { __ } from '~/locale';\nimport { participantsQueries } from '../../queries/constants';\nimport SidebarParticipants from './sidebar_participants.vue';\n\nexport default {\n i18n: {\n fetchingError: __('An error occurred while fetching participants'),\n },\n components: {\n SidebarParticipants,\n },\n props: {\n iid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n issuableType: {\n required: true,\n type: String,\n },\n },\n data() {\n return {\n participants: [],\n };\n },\n apollo: {\n participants: {\n query() {\n return participantsQueries[this.issuableType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n iid: this.iid,\n };\n },\n update(data) {\n return data.workspace?.issuable?.participants.nodes || [];\n },\n skip() {\n return !this.iid;\n },\n error(error) {\n this.$emit('fetch-error', {\n message: this.$options.i18n.fetchingError,\n error,\n });\n },\n },\n },\n computed: {\n isLoading() {\n return this.$apollo.queries.participants.loading;\n },\n },\n};\n</script>\n\n<template>\n <sidebar-participants\n :loading=\"isLoading\"\n :participants=\"participants\"\n :number-of-less-participants=\"8\"\n :lazy=\"false\"\n class=\"block participants\"\n @toggleSidebar=\"$emit('toggleSidebar')\"\n />\n</template>\n","import { render, staticRenderFns } from \"./sidebar_participants_widget.vue?vue&type=template&id=a1edfb52\"\nimport script from \"./sidebar_participants_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_participants_widget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.componentType,{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.left\",modifiers:{\"viewport\":true,\"left\":true}}],tag:\"component\",staticClass:\"ci-icon gl-inline-flex gl-items-center gl-text-sm\",class:`ci-icon-variant-${_vm.variant}`,attrs:{\"variant\":_vm.variant,\"title\":_vm.title,\"aria-label\":_vm.ariaLabel,\"href\":_vm.href,\"data-testid\":\"ci-icon\"},on:{\"click\":function($event){return _vm.$emit('ciStatusBadgeClick')}}},[_c('span',{staticClass:\"ci-icon-gl-icon-wrapper\"},[_c('gl-icon',{attrs:{\"name\":_vm.icon}})],1),(_vm.showStatusText)?_c('span',{staticClass:\"gl-ml-2 gl-mr-3 gl-self-center gl-whitespace-nowrap gl-leading-1\",attrs:{\"data-testid\":\"ci-icon-text\"}},[_vm._v(_vm._s(_vm.status.text))]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ci_icon.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ci_icon.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective, GlIcon } from '@gitlab/ui';\nimport { sprintf, __ } from '~/locale';\n\n/**\n * Renders CI icon based on API response shared between all places where it is used.\n *\n * Receives status object containing:\n * status: {\n * icon: \"status_running\" // used to render the icon and CSS class\n * text: \"Running\",\n * detailsPath: '/project1/jobs/1' // can also be details_path\n * }\n *\n * You may use ~/graphql_shared/fragments/ci_icon.fragment.graphql to fetch this\n * from the GraphQL API.\n *\n */\n\nexport default {\n components: {\n GlIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n status: {\n type: Object,\n required: true,\n validator(status) {\n const { icon } = status;\n return typeof icon === 'string' && icon.startsWith('status');\n },\n },\n showStatusText: {\n type: Boolean,\n required: false,\n default: false,\n },\n showTooltip: {\n type: Boolean,\n required: false,\n default: true,\n },\n useLink: {\n type: Boolean,\n default: true,\n required: false,\n },\n },\n computed: {\n componentType() {\n return this.href ? 'a' : 'span';\n },\n title() {\n if (this.showTooltip) {\n // show tooltip only when not showing text already\n return !this.showStatusText ? this.status?.text : null;\n }\n return null;\n },\n ariaLabel() {\n return sprintf(__('Status: %{status}'), { status: this.status?.text });\n },\n href() {\n // href can come from GraphQL (camelCase) or REST API (snake_case)\n if (this.useLink) {\n return this.status.detailsPath || this.status.details_path;\n }\n return null;\n },\n icon() {\n if (this.status.icon) {\n return `${this.status.icon}_borderless`;\n }\n return null;\n },\n variant() {\n switch (this.status.icon) {\n case 'status_success':\n return 'success';\n case 'status_warning':\n case 'status_pending':\n return 'warning';\n case 'status_failed':\n return 'danger';\n case 'status_running':\n return 'info';\n // default covers the styles for the remainder of CI\n // statuses that are not explicitly stated here\n default:\n return 'neutral';\n }\n },\n },\n};\n</script>\n<template>\n <component\n :is=\"componentType\"\n v-gl-tooltip.viewport.left\n class=\"ci-icon gl-inline-flex gl-items-center gl-text-sm\"\n :class=\"`ci-icon-variant-${variant}`\"\n :variant=\"variant\"\n :title=\"title\"\n :aria-label=\"ariaLabel\"\n :href=\"href\"\n data-testid=\"ci-icon\"\n @click=\"$emit('ciStatusBadgeClick')\"\n >\n <span class=\"ci-icon-gl-icon-wrapper\"><gl-icon :name=\"icon\" /></span\n ><span\n v-if=\"showStatusText\"\n class=\"gl-ml-2 gl-mr-3 gl-self-center gl-whitespace-nowrap gl-leading-1\"\n data-testid=\"ci-icon-text\"\n >{{ status.text }}</span\n >\n </component>\n</template>\n","import { render, staticRenderFns } from \"./ci_icon.vue?vue&type=template&id=884042fa\"\nimport script from \"./ci_icon.vue?vue&type=script&lang=js\"\nexport * from \"./ci_icon.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import GlClearIconButton from '../../shared_components/clear_icon_button/clear_icon_button';\nimport GlFormInput from '../form/form_input/form_input';\nimport GlIcon from '../icon/icon';\nimport GlLoadingIcon from '../loading_icon/loading_icon';\nimport { translate } from '../../../utils/i18n';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlSearchboxByType',\n components: {\n GlClearIconButton,\n GlIcon,\n GlFormInput,\n GlLoadingIcon\n },\n inheritAttrs: false,\n model: {\n prop: 'value',\n event: 'input'\n },\n props: {\n /**\n * If provided, used as value of search input\n */\n value: {\n type: String,\n required: false,\n default: ''\n },\n borderless: {\n type: Boolean,\n required: false,\n default: false\n },\n clearButtonTitle: {\n type: String,\n required: false,\n default: () => translate('GlSearchBoxByType.clearButtonTitle', 'Clear')\n },\n /**\n * If provided and true, disables the input and controls\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Puts search box into loading state, rendering spinner\n */\n isLoading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Container for tooltip. Valid values: DOM node, selector string or `false` for default\n */\n tooltipContainer: {\n required: false,\n default: false,\n validator: value => value === false || typeof value === 'string' || value instanceof HTMLElement\n }\n },\n computed: {\n inputAttributes() {\n const attributes = {\n type: 'search',\n placeholder: translate('GlSearchBoxByType.input.placeholder', 'Search'),\n ...this.$attrs\n };\n if (!attributes['aria-label']) {\n attributes['aria-label'] = attributes.placeholder;\n }\n return attributes;\n },\n hasValue() {\n return Boolean(this.value.length);\n },\n inputListeners() {\n return {\n ...this.$listeners,\n input: this.onInput,\n focusin: this.onFocusin,\n focusout: this.onFocusout\n };\n },\n showClearButton() {\n return this.hasValue && !this.disabled;\n }\n },\n methods: {\n isInputOrClearButton(element) {\n var _this$$refs$input, _this$$refs$clearButt;\n return element === ((_this$$refs$input = this.$refs.input) === null || _this$$refs$input === void 0 ? void 0 : _this$$refs$input.$el) || element === ((_this$$refs$clearButt = this.$refs.clearButton) === null || _this$$refs$clearButt === void 0 ? void 0 : _this$$refs$clearButt.$el);\n },\n clearInput() {\n this.onInput('');\n this.focusInput();\n },\n focusInput() {\n this.$refs.input.$el.focus();\n },\n onInput(value) {\n this.$emit('input', value);\n },\n onFocusout(event) {\n const {\n relatedTarget\n } = event;\n if (this.isInputOrClearButton(relatedTarget)) {\n return;\n }\n this.$emit('focusout', event);\n },\n onFocusin(event) {\n const {\n relatedTarget\n } = event;\n if (this.isInputOrClearButton(relatedTarget)) {\n return;\n }\n this.$emit('focusin', event);\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-search-box-by-type\"},[_c('gl-icon',{staticClass:\"gl-search-box-by-type-search-icon\",attrs:{\"name\":\"search\",\"variant\":\"subtle\"}}),_vm._v(\" \"),_c('gl-form-input',_vm._g(_vm._b({ref:\"input\",class:{\n 'gl-search-box-by-type-input': !_vm.borderless,\n 'gl-search-box-by-type-input-borderless': _vm.borderless,\n },attrs:{\"value\":_vm.value,\"disabled\":_vm.disabled}},'gl-form-input',_vm.inputAttributes,false),_vm.inputListeners)),_vm._v(\" \"),(_vm.isLoading || _vm.showClearButton)?_c('div',{staticClass:\"gl-search-box-by-type-right-icons\"},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"gl-search-box-by-type-loading-icon\"}):_vm._e(),_vm._v(\" \"),(_vm.showClearButton)?_c('gl-clear-icon-button',{ref:\"clearButton\",staticClass:\"gl-search-box-by-type-clear gl-clear-icon-button\",attrs:{\"title\":_vm.clearButtonTitle,\"tooltip-container\":_vm.tooltipContainer},on:{\"click\":function($event){$event.stopPropagation();return _vm.clearInput.apply(null, arguments)},\"focusin\":_vm.onFocusin,\"focusout\":_vm.onFocusout}}):_vm._e()],1):_vm._e()],1)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateIssueState\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issueType\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isDirty\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateIssueState\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issueType\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issueType\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"isDirty\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isDirty\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}]}]}}],\"loc\":{\"start\":0,\"end\":138}};\n doc.loc.source = {\"body\":\"mutation updateIssueState($issueType: String, $isDirty: Boolean) {\\n updateIssueState(issueType: $issueType, isDirty: $isDirty) @client\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateIssueState\"] = oneQuery(doc, \"updateIssueState\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"sidebarSeverity\",staticClass:\"block\",attrs:{\"data-testid\":\"severity-block-container\"}},[_c('sidebar-editable-item',{ref:\"toggle\",attrs:{\"loading\":_vm.isUpdating,\"title\":_vm.$options.i18n.SEVERITY,\"can-edit\":_vm.canUpdate},on:{\"open\":_vm.showDropdown},scopedSlots:_vm._u([{key:\"collapsed\",fn:function(){return [_c('div',{ref:\"severity\",staticClass:\"sidebar-collapsed-icon\"},[_c('severity-token',{attrs:{\"severity\":_vm.selectedItem,\"icon-size\":14,\"icon-only\":true}}),_vm._v(\" \"),_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.severity,\"boundary\":\"viewport\",\"placement\":\"left\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.SEVERITY_VALUE},scopedSlots:_vm._u([{key:\"severity\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.selectedItem.label)+\"\\n \")]},proxy:true}])})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed\",attrs:{\"data-testid\":\"incident-severity\"}},[_c('severity-token',{attrs:{\"severity\":_vm.selectedItem}})],1)]},proxy:true},{key:\"default\",fn:function(){return [_c('gl-collapsible-listbox',{ref:\"dropdown\",staticClass:\"gl-mt-3\",attrs:{\"block\":\"\",\"header-text\":_vm.__('Assign severity'),\"toggle-text\":_vm.selectedItem.label,\"items\":_vm.dropdownItems,\"selected\":_vm.severity},on:{\"select\":_vm.updateSeverity},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('severity-token',{attrs:{\"severity\":item.severity}})]}}])})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_severity_widget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_severity_widget.vue?vue&type=script&lang=js\"","<script>\nimport { GlCollapsibleListbox, GlTooltip, GlSprintf } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { TYPE_INCIDENT } from '~/issues/constants';\nimport SidebarEditableItem from '~/sidebar/components/sidebar_editable_item.vue';\nimport updateIssuableSeverity from '../../queries/update_issuable_severity.mutation.graphql';\nimport { INCIDENT_SEVERITY, SEVERITY_I18N as I18N } from '../../constants';\nimport SeverityToken from './severity.vue';\n\nexport default {\n i18n: I18N,\n components: {\n GlTooltip,\n GlSprintf,\n GlCollapsibleListbox,\n SeverityToken,\n SidebarEditableItem,\n },\n inject: ['canUpdate'],\n props: {\n projectPath: {\n type: String,\n required: true,\n },\n iid: {\n type: String,\n required: true,\n },\n initialSeverity: {\n type: String,\n required: false,\n default: INCIDENT_SEVERITY.UNKNOWN.value,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_INCIDENT,\n validator: (value) => {\n // currently severity is supported only for incidents, but this list might be extended\n return [TYPE_INCIDENT].includes(value);\n },\n },\n },\n data() {\n return {\n isUpdating: false,\n severity: this.initialSeverity,\n };\n },\n computed: {\n severitiesList() {\n switch (this.issuableType) {\n case TYPE_INCIDENT:\n return Object.values(INCIDENT_SEVERITY);\n default:\n return [];\n }\n },\n dropdownItems() {\n return this.severitiesList.map((severity) => ({\n text: severity.label,\n value: severity.value,\n severity,\n }));\n },\n selectedItem() {\n return this.severitiesList.find((severity) => severity.value === this.severity);\n },\n },\n methods: {\n updateSeverity(value) {\n this.$refs.toggle.collapse();\n this.isUpdating = true;\n this.$apollo\n .mutate({\n mutation: updateIssuableSeverity,\n variables: {\n iid: this.iid,\n severity: value,\n projectPath: this.projectPath,\n },\n })\n .then((resp) => {\n const {\n data: {\n issueSetSeverity: {\n errors = [],\n issue: { severity },\n },\n },\n } = resp;\n\n if (errors[0]) {\n throw errors[0];\n }\n this.severity = severity;\n })\n .catch(() =>\n createAlert({\n message: `${this.$options.i18n.UPDATE_SEVERITY_ERROR} ${this.$options.i18n.TRY_AGAIN}`,\n }),\n )\n .finally(() => {\n this.isUpdating = false;\n });\n },\n showDropdown() {\n this.$refs.dropdown.open();\n },\n },\n};\n</script>\n\n<template>\n <div ref=\"sidebarSeverity\" class=\"block\" data-testid=\"severity-block-container\">\n <sidebar-editable-item\n ref=\"toggle\"\n :loading=\"isUpdating\"\n :title=\"$options.i18n.SEVERITY\"\n :can-edit=\"canUpdate\"\n @open=\"showDropdown\"\n >\n <template #collapsed>\n <div ref=\"severity\" class=\"sidebar-collapsed-icon\">\n <severity-token :severity=\"selectedItem\" :icon-size=\"14\" :icon-only=\"true\" />\n <gl-tooltip :target=\"() => $refs.severity\" boundary=\"viewport\" placement=\"left\">\n <gl-sprintf :message=\"$options.i18n.SEVERITY_VALUE\">\n <template #severity>\n {{ selectedItem.label }}\n </template>\n </gl-sprintf>\n </gl-tooltip>\n </div>\n <div class=\"hide-collapsed\" data-testid=\"incident-severity\">\n <severity-token :severity=\"selectedItem\" />\n </div>\n </template>\n\n <template #default>\n <gl-collapsible-listbox\n ref=\"dropdown\"\n class=\"gl-mt-3\"\n block\n :header-text=\"__('Assign severity')\"\n :toggle-text=\"selectedItem.label\"\n :items=\"dropdownItems\"\n :selected=\"severity\"\n @select=\"updateSeverity\"\n >\n <template #list-item=\"{ item }\">\n <severity-token :severity=\"item.severity\" />\n </template>\n </gl-collapsible-listbox>\n </template>\n </sidebar-editable-item>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_severity_widget.vue?vue&type=template&id=292f05fb\"\nimport script from \"./sidebar_severity_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_severity_widget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"projectWorkItems\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTerm\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueType\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableSearchableField\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"defaultValue\":{\"kind\":\"NullValue\"},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchByIid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":false},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchByText\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":true},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItems\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTerm\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"include\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchByText\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workItemsByIid\"},\"name\":{\"kind\":\"Name\",\"value\":\"workItems\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"include\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchByIid\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":613}};\n doc.loc.source = {\"body\":\"query projectWorkItems(\\n $searchTerm: String\\n $fullPath: ID!\\n $types: [IssueType!]\\n $in: [IssuableSearchableField!]\\n $iid: String = null\\n $searchByIid: Boolean = false\\n $searchByText: Boolean = true\\n) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n workItems(search: $searchTerm, types: $types, in: $in) @include(if: $searchByText) {\\n nodes {\\n id\\n iid\\n title\\n confidential\\n }\\n }\\n workItemsByIid: workItems(iid: $iid, types: $types) @include(if: $searchByIid) {\\n nodes {\\n id\\n iid\\n title\\n confidential\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"projectWorkItems\"] = oneQuery(doc, \"projectWorkItems\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"EscalationStatusFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"escalationStatus\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"escalationPolicy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"EscalationPolicyFragment\"},\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":176}};\n doc.loc.source = {\"body\":\"#import \\\"./escalation_policy.fragment.graphql\\\"\\n\\nfragment EscalationStatusFragment on Issue {\\n id\\n escalationStatus\\n escalationPolicy {\\n ...EscalationPolicyFragment\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./escalation_policy.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"EscalationStatusFragment\"] = oneQuery(doc, \"EscalationStatusFragment\");\n \n","import ClipboardJS from 'clipboard';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport { getSelectedFragment } from '~/lib/utils/common_utils';\nimport { isElementVisible } from '~/lib/utils/dom_utils';\nimport { s__ } from '~/locale';\nimport { DEBOUNCE_DROPDOWN_DELAY } from '~/sidebar/components/labels/labels_select_widget/constants';\nimport { CopyAsGFM } from '../markdown/copy_as_gfm';\nimport {\n ISSUE_MR_CHANGE_ASSIGNEE,\n ISSUE_MR_CHANGE_MILESTONE,\n ISSUABLE_CHANGE_LABEL,\n ISSUABLE_EDIT_DESCRIPTION,\n ISSUABLE_COPY_REF,\n ISSUABLE_COMMENT_OR_REPLY,\n} from './keybindings';\n\nexport default class ShortcutsWorkItem {\n constructor(shortcuts) {\n this.refInMemoryButton = document.createElement('button');\n this.refClipboardInstance = new ClipboardJS(this.refInMemoryButton);\n this.refClipboardInstance.on('success', () => {\n toast(s__('GlobalShortcuts|Copied reference to clipboard.'));\n });\n this.refClipboardInstance.on('error', () => {\n toast(s__('GlobalShortcuts|Unable to copy the reference at this time.'));\n });\n\n shortcuts.addAll([\n [ISSUE_MR_CHANGE_ASSIGNEE, () => ShortcutsWorkItem.openSidebarDropdown('js-assignee')],\n [ISSUE_MR_CHANGE_MILESTONE, () => ShortcutsWorkItem.openSidebarDropdown('js-milestone')],\n [ISSUABLE_CHANGE_LABEL, () => ShortcutsWorkItem.openSidebarDropdown('js-labels')],\n [ISSUABLE_EDIT_DESCRIPTION, ShortcutsWorkItem.editDescription],\n [ISSUABLE_COPY_REF, () => this.copyReference()],\n [ISSUABLE_COMMENT_OR_REPLY, ShortcutsWorkItem.replyWithSelectedText],\n ]);\n\n /**\n * We're attaching a global focus event listener on document for\n * every markdown input field.\n */\n document.addEventListener('focus', this.handleMarkdownFieldFocus);\n }\n\n destroy() {\n document.removeEventListener('focus', this.handleMarkdownFieldFocus);\n }\n\n /**\n * This event handler preserves last focused markdown input field.\n * @param {Object} event\n */\n static handleMarkdownFieldFocus({ target }) {\n if (target.matches('.js-vue-markdown-field .js-gfm-input')) {\n ShortcutsWorkItem.lastFocusedReplyField = target;\n }\n }\n\n static openSidebarDropdown(selector) {\n setTimeout(() => {\n const shortcutSelector = `.${selector} .shortcut-sidebar-dropdown-toggle`;\n const editBtn =\n document.querySelector(`.gl-drawer ${shortcutSelector}`) ||\n document.querySelector(`.modal ${shortcutSelector}`) ||\n document.querySelector(shortcutSelector);\n editBtn?.click();\n }, DEBOUNCE_DROPDOWN_DELAY);\n return false;\n }\n\n static editDescription() {\n // Need to click the element as on issues, editing is inline\n // on merge request, editing is on a different page\n const editDescriptionSelector = '.shortcut-edit-wi-description';\n const editButton =\n document.querySelector(`.gl-drawer ${editDescriptionSelector}`) ||\n document.querySelector(`.modal ${editDescriptionSelector}`) ||\n document.querySelector(editDescriptionSelector);\n\n editButton?.click();\n\n return false;\n }\n\n async copyReference() {\n const refSelector = '.shortcut-copy-reference';\n const refButton =\n document.querySelector(`.gl-drawer ${refSelector}`) ||\n document.querySelector(`.modal ${refSelector}`) ||\n document.querySelector(refSelector);\n const copiedRef = refButton?.dataset.clipboardText;\n\n if (copiedRef) {\n this.refInMemoryButton.dataset.clipboardText = copiedRef;\n\n this.refInMemoryButton.dispatchEvent(new CustomEvent('click'));\n }\n }\n\n static replyWithSelectedText() {\n const gfmSelector = '.js-vue-markdown-field .js-gfm-input';\n let replyField =\n document.querySelector(`.gl-drawer ${gfmSelector}`) ||\n document.querySelector(`.modal ${gfmSelector}`) ||\n document.querySelector(gfmSelector);\n\n // Ensure that markdown input is still present in the DOM\n // otherwise fall back to main comment input field.\n if (\n ShortcutsWorkItem.lastFocusedReplyField &&\n isElementVisible(ShortcutsWorkItem.lastFocusedReplyField)\n ) {\n replyField = ShortcutsWorkItem.lastFocusedReplyField;\n }\n\n if (!replyField || !isElementVisible(replyField)) {\n return false;\n }\n\n const documentFragment = getSelectedFragment(document.querySelector('#content-body'));\n\n if (!documentFragment) {\n replyField.focus();\n return false;\n }\n\n // Sanity check: Make sure the selected text comes from a discussion : it can either contain a message...\n let foundMessage = Boolean(documentFragment.querySelector('.md'));\n\n // ... Or come from a message\n if (!foundMessage) {\n if (documentFragment.originalNodes) {\n documentFragment.originalNodes.forEach((e) => {\n let node = e;\n do {\n // Text nodes don't define the `matches` method\n if (node.matches && node.matches('.md')) {\n foundMessage = true;\n }\n node = node.parentNode;\n } while (node && !foundMessage);\n });\n }\n\n // If there is no message, just select the reply field\n if (!foundMessage) {\n replyField.focus();\n return false;\n }\n }\n\n const el = CopyAsGFM.transformGFMSelection(documentFragment.cloneNode(true));\n const blockquoteEl = document.createElement('blockquote');\n blockquoteEl.appendChild(el);\n CopyAsGFM.nodeToGFM(blockquoteEl)\n .then((text) => {\n if (text.trim() === '') {\n return false;\n }\n\n // If replyField already has some content, add a newline before our quote\n const separator = (replyField.value.trim() !== '' && '\\n\\n') || '';\n replyField.value = `${replyField.value}${separator}${text}\\n\\n`;\n\n // Trigger autosize\n const event = document.createEvent('Event');\n event.initEvent('autosize:update', true, false);\n replyField.dispatchEvent(event);\n\n // Focus the input field\n replyField.focus();\n\n return false;\n })\n .catch(() => {});\n\n return false;\n }\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"projectEscalationPolicies\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attributes\"},\"name\":{\"kind\":\"Name\",\"value\":\"incidentManagementEscalationPolicies\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"EscalationPolicyFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":304}};\n doc.loc.source = {\"body\":\"#import \\\"./escalation_policy.fragment.graphql\\\"\\n\\nquery projectEscalationPolicies($fullPath: ID!, $title: String) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n attributes: incidentManagementEscalationPolicies(name: $title) {\\n nodes {\\n ...EscalationPolicyFragment\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./escalation_policy.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"projectEscalationPolicies\"] = oneQuery(doc, \"projectEscalationPolicies\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"toggleResolveWorkItemDesignDiscussion\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DiscussionID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"resolve\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"discussionToggleResolve\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"resolve\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"resolve\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"discussion\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ResolvedStatus\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"noteable\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Design\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignTodoItem\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"notes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignNote\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":562}};\n doc.loc.source = {\"body\":\"#import \\\"./fragments/design_note.fragment.graphql\\\"\\n#import \\\"./fragments/discussion_resolved_status.fragment.graphql\\\"\\n#import \\\"./fragments/design_todo_item.fragment.graphql\\\"\\n\\nmutation toggleResolveWorkItemDesignDiscussion($id: DiscussionID!, $resolve: Boolean!) {\\n discussionToggleResolve(input: { id: $id, resolve: $resolve }) {\\n discussion {\\n id\\n ...ResolvedStatus\\n noteable {\\n ... on Design {\\n ...DesignTodoItem\\n }\\n }\\n notes {\\n nodes {\\n ...DesignNote\\n }\\n }\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./fragments/design_note.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"./fragments/discussion_resolved_status.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"./fragments/design_todo_item.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"toggleResolveWorkItemDesignDiscussion\"] = oneQuery(doc, \"toggleResolveWorkItemDesignDiscussion\");\n \n","import createEventHub from '~/helpers/event_hub_factory';\n\nexport default createEventHub();\n","import uniqueId from 'lodash/uniqueId';\nimport { toggleLabelPosition } from '../../../utils/constants';\nimport GlIcon from '../icon/icon';\nimport GlLoadingIcon from '../loading_icon/loading_icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nlet uuid = 0;\nvar script = {\n name: 'GlToggle',\n components: {\n GlIcon,\n GlLoadingIcon\n },\n model: {\n prop: 'value',\n event: 'change'\n },\n props: {\n name: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The toggle's state.\n * @model\n */\n value: {\n type: Boolean,\n required: false,\n default: null\n },\n /**\n * Whether the toggle should be disabled.\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Whether the toggle is in the loading state.\n */\n isLoading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * The toggle's label.\n */\n label: {\n type: String,\n required: true\n },\n /**\n * The toggle's description.\n */\n description: {\n type: String,\n required: false,\n default: undefined\n },\n /**\n * A help text to be shown below the toggle.\n */\n help: {\n type: String,\n required: false,\n default: undefined\n },\n /**\n * The label's position relative to the toggle. If 'hidden', the toggle will add the .gl-sr-only class so the label is still accessible to screen readers.\n */\n labelPosition: {\n type: String,\n required: false,\n default: 'top',\n validator(position) {\n return Object.values(toggleLabelPosition).includes(position);\n }\n }\n },\n data() {\n return {\n labelId: uniqueId('toggle-label-')\n };\n },\n computed: {\n shouldRenderDescription() {\n // eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots\n return Boolean(this.$scopedSlots.description || this.description) && this.isVerticalLayout;\n },\n shouldRenderHelp() {\n // eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots\n return Boolean(this.$slots.help || this.help) && this.isVerticalLayout;\n },\n toggleClasses() {\n return [{\n 'gl-sr-only': this.labelPosition === 'hidden'\n }, this.shouldRenderDescription ? 'gl-mb-2' : 'gl-mb-3'];\n },\n icon() {\n return this.value ? 'check-xs' : 'close-xs';\n },\n helpId() {\n return this.shouldRenderHelp ? `toggle-help-${this.uuid}` : undefined;\n },\n isChecked() {\n return this.value ? 'true' : 'false';\n },\n isVerticalLayout() {\n return this.labelPosition === 'top' || this.labelPosition === 'hidden';\n }\n },\n beforeCreate() {\n this.uuid = uuid;\n uuid += 1;\n },\n methods: {\n toggleFeature() {\n if (!this.disabled) {\n /**\n * Emitted when the state changes.\n *\n * @event change\n * @property {boolean} value Whether the toggle is enabled.\n */\n this.$emit('change', !this.value);\n }\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-toggle-wrapper gl-mb-0 gl-flex\",class:{\n 'gl-flex-col': _vm.isVerticalLayout,\n 'gl-toggle-label-inline': !_vm.isVerticalLayout,\n 'is-disabled': _vm.disabled,\n },attrs:{\"data-testid\":\"toggle-wrapper\"}},[_c('span',{staticClass:\"gl-toggle-label gl-shrink-0\",class:_vm.toggleClasses,attrs:{\"id\":_vm.labelId,\"data-testid\":\"toggle-label\"}},[_vm._t(\"label\",function(){return [_vm._v(_vm._s(_vm.label))]})],2),_vm._v(\" \"),(_vm.shouldRenderDescription)?_c('span',{staticClass:\"gl-description-label gl-mb-3\",attrs:{\"data-testid\":\"toggle-description\"}},[_vm._t(\"description\",function(){return [_vm._v(_vm._s(_vm.description))]})],2):_vm._e(),_vm._v(\" \"),(_vm.name)?_c('input',{attrs:{\"name\":_vm.name,\"type\":\"hidden\"},domProps:{\"value\":_vm.value}}):_vm._e(),_vm._v(\" \"),_c('button',{staticClass:\"gl-toggle gl-shrink-0\",class:{\n 'is-checked': _vm.value,\n 'is-disabled': _vm.disabled || _vm.isLoading,\n },attrs:{\"role\":\"switch\",\"aria-checked\":_vm.isChecked,\"aria-labelledby\":_vm.labelId,\"aria-describedby\":_vm.helpId,\"aria-disabled\":_vm.disabled,\"type\":\"button\",\"disabled\":_vm.disabled},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleFeature.apply(null, arguments)}}},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"toggle-loading\",attrs:{\"color\":\"dark\"}}):_c('span',{staticClass:\"toggle-icon\"},[_c('gl-icon',{attrs:{\"name\":_vm.icon,\"size\":12}})],1)],1),_vm._v(\" \"),(_vm.shouldRenderHelp)?_c('span',{staticClass:\"gl-help-label\",attrs:{\"id\":_vm.helpId,\"data-testid\":\"toggle-help\"}},[_vm._t(\"help\",function(){return [_vm._v(_vm._s(_vm.help))]})],2):_vm._e()])};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"confidential-merge-request-fork-group form-group\"},[_c('label',[_vm._v(_vm._s(_vm.$options.i18n.project))]),_vm._v(\" \"),_c('div',[(_vm.projects.length)?_c('dropdown',{attrs:{\"projects\":_vm.projects,\"selected-project\":_vm.selectedProject},on:{\"select\":_vm.selectProject}}):_vm._e(),_vm._v(\" \"),_c('p',{staticClass:\"gl-mb-0 gl-mt-1 gl-text-subtle\"},[(_vm.projects.length)?[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.privateForkSelected)+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.noForks)),_c('br'),_vm._v(\" \"),_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.forkTheProject},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('a',{staticClass:\"help-link\",attrs:{\"href\":_vm.newForkPath,\"target\":\"_blank\"}},[_vm._v(_vm._s(content))])]}}])})],_vm._v(\" \"),_c('gl-link',{staticClass:\"gl-inline-block gl-w-auto gl-bg-transparent gl-p-0\",attrs:{\"href\":_vm.helpPagePath,\"target\":\"_blank\"}},[_c('help-icon',{attrs:{\"aria-label\":_vm.$options.i18n.readMore}})],1)],2)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n components: {\n GlCollapsibleListbox,\n },\n props: {\n projects: {\n type: Array,\n required: true,\n },\n selectedProject: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n },\n computed: {\n selectedProjectValue() {\n return this.selectedProject?.id && String(this.selectedProject.id);\n },\n toggleText() {\n return this.selectedProject?.name || __('Select private project');\n },\n listboxItems() {\n return this.projects.map(({ id, name }) => {\n return {\n value: String(id),\n text: name,\n };\n });\n },\n },\n methods: {\n selectProject(projectId) {\n const project = this.projects.find(({ id }) => String(id) === projectId);\n this.$emit('select', project);\n },\n },\n};\n</script>\n\n<template>\n <gl-collapsible-listbox\n icon=\"lock\"\n :items=\"listboxItems\"\n :selected=\"selectedProjectValue\"\n :toggle-text=\"toggleText\"\n block\n @select=\"selectProject\"\n />\n</template>\n","import { render, staticRenderFns } from \"./dropdown.vue?vue&type=template&id=6a1b4896\"\nimport script from \"./dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-collapsible-listbox',{attrs:{\"icon\":\"lock\",\"items\":_vm.listboxItems,\"selected\":_vm.selectedProjectValue,\"toggle-text\":_vm.toggleText,\"block\":\"\"},on:{\"select\":_vm.selectProject}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project_form_group.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project_form_group.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink, GlSprintf } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport Api from '~/api';\nimport { __ } from '~/locale';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport state from '../state';\nimport Dropdown from './dropdown.vue';\n\nexport default {\n components: {\n GlLink,\n GlSprintf,\n Dropdown,\n HelpIcon,\n },\n props: {\n namespacePath: {\n type: String,\n required: true,\n },\n projectPath: {\n type: String,\n required: true,\n },\n newForkPath: {\n type: String,\n required: true,\n },\n helpPagePath: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n projects: [],\n };\n },\n computed: {\n selectedProject() {\n return state.selectedProject;\n },\n },\n mounted() {\n this.fetchProjects();\n this.createBtn = document.querySelector('.js-create-target');\n this.warningText = document.querySelector('.js-exposed-info-warning');\n },\n methods: {\n selectProject(project) {\n if (project) {\n Object.assign(state, {\n selectedProject: project,\n });\n\n if (project.namespaceFullPath !== this.namespacePath) {\n this.showWarning();\n }\n } else if (this.createBtn) {\n this.createBtn.setAttribute('disabled', 'disabled');\n this.createBtn.classList.add('disabled');\n }\n },\n normalizeProjectData(data) {\n return data.map((p) => ({\n id: p.id,\n name: p.name_with_namespace,\n pathWithNamespace: p.path_with_namespace,\n namespaceFullpath: p.namespace.full_path,\n }));\n },\n fetchProjects() {\n Api.projectForks(this.projectPath, {\n with_merge_requests_enabled: true,\n min_access_level: 30,\n visibility: 'private',\n })\n .then(({ data }) => {\n this.projects = this.normalizeProjectData(data);\n this.selectProject(this.projects[0]);\n })\n .catch((e) => {\n createAlert({\n message: __('Error fetching forked projects. Please try again.'),\n });\n throw e;\n });\n },\n showWarning() {\n if (this.warningText) {\n this.warningText.classList.remove('gl-hidden');\n }\n },\n },\n i18n: {\n project: __('Project'),\n privateForkSelected: __(\n \"To protect this issue's confidentiality, a private fork of this project was selected.\",\n ),\n noForks: __('No forks are available to you.'),\n forkTheProject: __(\n `To protect this issue's confidentiality, %{linkStart}fork this project%{linkEnd} and set the fork's visibility to private.`,\n ),\n readMore: __('Read more'),\n },\n};\n</script>\n\n<template>\n <div class=\"confidential-merge-request-fork-group form-group\">\n <label>{{ $options.i18n.project }}</label>\n <div>\n <dropdown\n v-if=\"projects.length\"\n :projects=\"projects\"\n :selected-project=\"selectedProject\"\n @select=\"selectProject\"\n />\n <p class=\"gl-mb-0 gl-mt-1 gl-text-subtle\">\n <template v-if=\"projects.length\">\n {{ $options.i18n.privateForkSelected }}\n </template>\n <template v-else>\n {{ $options.i18n.noForks }}<br />\n <gl-sprintf :message=\"$options.i18n.forkTheProject\">\n <template #link=\"{ content }\">\n <a :href=\"newForkPath\" target=\"_blank\" class=\"help-link\">{{ content }}</a>\n </template>\n </gl-sprintf>\n </template>\n <gl-link\n :href=\"helpPagePath\"\n class=\"gl-inline-block gl-w-auto gl-bg-transparent gl-p-0\"\n target=\"_blank\"\n >\n <help-icon :aria-label=\"$options.i18n.readMore\" />\n </gl-link>\n </p>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./project_form_group.vue?vue&type=template&id=670004bd\"\nimport script from \"./project_form_group.vue?vue&type=script&lang=js\"\nexport * from \"./project_form_group.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueTodos\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentUserTodos\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"pending\"}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":243}};\n doc.loc.source = {\"body\":\"query issueTodos($fullPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n currentUserTodos(state: pending) {\\n nodes {\\n id\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueTodos\"] = oneQuery(doc, \"issueTodos\");\n \n","(function() {\n var computeScore, countDir, file_coeff, getExtension, getExtensionScore, isMatch, scorePath, scoreSize, tau_depth, _ref;\n\n _ref = require('./scorer'), isMatch = _ref.isMatch, computeScore = _ref.computeScore, scoreSize = _ref.scoreSize;\n\n tau_depth = 20;\n\n file_coeff = 2.5;\n\n exports.score = function(string, query, options) {\n var allowErrors, preparedQuery, score, string_lw;\n preparedQuery = options.preparedQuery, allowErrors = options.allowErrors;\n if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n return 0;\n }\n string_lw = string.toLowerCase();\n score = computeScore(string, string_lw, preparedQuery);\n score = scorePath(string, string_lw, score, options);\n return Math.ceil(score);\n };\n\n scorePath = function(subject, subject_lw, fullPathScore, options) {\n var alpha, basePathScore, basePos, depth, end, extAdjust, fileLength, pathSeparator, preparedQuery, useExtensionBonus;\n if (fullPathScore === 0) {\n return 0;\n }\n preparedQuery = options.preparedQuery, useExtensionBonus = options.useExtensionBonus, pathSeparator = options.pathSeparator;\n end = subject.length - 1;\n while (subject[end] === pathSeparator) {\n end--;\n }\n basePos = subject.lastIndexOf(pathSeparator, end);\n fileLength = end - basePos;\n extAdjust = 1.0;\n if (useExtensionBonus) {\n extAdjust += getExtensionScore(subject_lw, preparedQuery.ext, basePos, end, 2);\n fullPathScore *= extAdjust;\n }\n if (basePos === -1) {\n return fullPathScore;\n }\n depth = preparedQuery.depth;\n while (basePos > -1 && depth-- > 0) {\n basePos = subject.lastIndexOf(pathSeparator, basePos - 1);\n }\n basePathScore = basePos === -1 ? fullPathScore : extAdjust * computeScore(subject.slice(basePos + 1, end + 1), subject_lw.slice(basePos + 1, end + 1), preparedQuery);\n alpha = 0.5 * tau_depth / (tau_depth + countDir(subject, end + 1, pathSeparator));\n return alpha * basePathScore + (1 - alpha) * fullPathScore * scoreSize(0, file_coeff * fileLength);\n };\n\n exports.countDir = countDir = function(path, end, pathSeparator) {\n var count, i;\n if (end < 1) {\n return 0;\n }\n count = 0;\n i = -1;\n while (++i < end && path[i] === pathSeparator) {\n continue;\n }\n while (++i < end) {\n if (path[i] === pathSeparator) {\n count++;\n while (++i < end && path[i] === pathSeparator) {\n continue;\n }\n }\n }\n return count;\n };\n\n exports.getExtension = getExtension = function(str) {\n var pos;\n pos = str.lastIndexOf(\".\");\n if (pos < 0) {\n return \"\";\n } else {\n return str.substr(pos + 1);\n }\n };\n\n getExtensionScore = function(candidate, ext, startPos, endPos, maxDepth) {\n var m, matched, n, pos;\n if (!ext.length) {\n return 0;\n }\n pos = candidate.lastIndexOf(\".\", endPos);\n if (!(pos > startPos)) {\n return 0;\n }\n n = ext.length;\n m = endPos - pos;\n if (m < n) {\n n = m;\n m = ext.length;\n }\n pos++;\n matched = -1;\n while (++matched < n) {\n if (candidate[pos + matched] !== ext[matched]) {\n break;\n }\n }\n if (matched === 0 && maxDepth > 0) {\n return 0.9 * getExtensionScore(candidate, ext, startPos, pos - 2, maxDepth - 1);\n }\n return matched / m;\n };\n\n}).call(this);\n","import { last } from 'lodash';\nimport { JIRA_IMPORT_SUCCESS_ALERT_HIDE_MAP_KEY } from './constants';\n\nexport const IMPORT_STATE = {\n FAILED: 'failed',\n FINISHED: 'finished',\n NONE: 'none',\n SCHEDULED: 'scheduled',\n STARTED: 'started',\n};\n\nexport const isInProgress = (state) =>\n state === IMPORT_STATE.SCHEDULED || state === IMPORT_STATE.STARTED;\n\nexport const isFinished = (state) => state === IMPORT_STATE.FINISHED;\n\n/**\n * Converts the list of Jira projects into a format consumable by GlFormSelect.\n *\n * @param {Object[]} projects - List of Jira projects\n * @param {string} projects[].key - Jira project key\n * @param {string} projects[].name - Jira project name\n * @returns {Object[]} - List of Jira projects in a format consumable by GlFormSelect\n */\nexport const extractJiraProjectsOptions = (projects) =>\n projects.map(({ key, name }) => ({ text: `${name} (${key})`, value: key }));\n\n/**\n * Calculates the label title for the most recent Jira import.\n *\n * @param {Object[]} jiraImports - List of Jira imports\n * @param {string} jiraImports[].jiraProjectKey - Jira project key\n * @returns {string} - A label title\n */\nconst calculateJiraImportLabelTitle = (jiraImports) => {\n const mostRecentJiraProjectKey = last(jiraImports)?.jiraProjectKey;\n const jiraProjectImportCount = jiraImports.filter(\n (jiraImport) => jiraImport.jiraProjectKey === mostRecentJiraProjectKey,\n ).length;\n return `jira-import::${mostRecentJiraProjectKey}-${jiraProjectImportCount}`;\n};\n\n/**\n * Finds the label color from a list of labels.\n *\n * @param {string} labelTitle - Label title\n * @param {Object[]} labels - List of labels\n * @param {string} labels[].title - Label title\n * @param {string} labels[].color - Label color\n * @returns {string} - The label color associated with the given labelTitle\n */\nconst calculateJiraImportLabelColor = (labelTitle, labels) =>\n labels.find((label) => label.title === labelTitle)?.color;\n\n/**\n * Calculates the label for the most recent Jira import.\n *\n * @param {Object[]} jiraImports - List of Jira imports\n * @param {string} jiraImports[].jiraProjectKey - Jira project key\n * @param {Object[]} labels - List of labels\n * @param {string} labels[].title - Label title\n * @param {string} labels[].color - Label color\n * @returns {{color: string, title: string}} - A label object containing a label color and title\n */\nexport const calculateJiraImportLabel = (jiraImports, labels) => {\n const title = calculateJiraImportLabelTitle(jiraImports);\n return {\n color: calculateJiraImportLabelColor(title, labels),\n title,\n };\n};\n\n/**\n * Calculates whether the Jira import success alert should be shown.\n *\n * @param {string} labelTitle - Jira import label, for checking localStorage\n * @param {string} importStatus - Jira import status\n * @returns {boolean} - A boolean indicating whether to show the success alert\n */\nexport const shouldShowFinishedAlert = (labelTitle, importStatus) => {\n const finishedAlertHideMap =\n JSON.parse(localStorage.getItem(JIRA_IMPORT_SUCCESS_ALERT_HIDE_MAP_KEY)) || {};\n\n const shouldHide = finishedAlertHideMap[labelTitle];\n\n return !shouldHide && isFinished(importStatus);\n};\n\n/**\n * Updates the localStorage map to permanently hide the Jira import success alert\n *\n * @param {string} labelTitle - Jira import label, for checking localStorage\n */\nexport const setFinishedAlertHideMap = (labelTitle) => {\n const finishedAlertHideMap =\n JSON.parse(localStorage.getItem(JIRA_IMPORT_SUCCESS_ALERT_HIDE_MAP_KEY)) || {};\n\n finishedAlertHideMap[labelTitle] = true;\n\n localStorage.setItem(\n JIRA_IMPORT_SUCCESS_ALERT_HIDE_MAP_KEY,\n JSON.stringify(finishedAlertHideMap),\n );\n};\n","import { labelColorOptions } from '../../../utils/constants';\nimport { colorFromBackground } from '../../../utils/utils';\nimport GlButton from '../button/button';\nimport GlIcon from '../icon/icon';\nimport GlLink from '../link/link';\nimport GlTooltip from '../tooltip/tooltip';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nvar script = {\n name: 'GlLabel',\n components: {\n GlButton,\n GlIcon,\n GlLink,\n GlTooltip\n },\n props: {\n backgroundColor: {\n type: String,\n required: true,\n validator: value => /^(#|rgb|rgba)/.test(value)\n },\n title: {\n type: String,\n required: true,\n default: ''\n },\n description: {\n type: String,\n required: false,\n default: ''\n },\n tooltipPlacement: {\n type: String,\n required: false,\n default: 'top'\n },\n target: {\n type: String,\n required: false,\n default: ''\n },\n scoped: {\n type: Boolean,\n required: false,\n default: false\n },\n showCloseButton: {\n type: Boolean,\n required: false,\n default: false\n },\n disabled: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n data() {\n return {\n splitScopedLabelIndex: this.title.lastIndexOf('::')\n };\n },\n computed: {\n cssClasses() {\n const textColorVariant = colorFromBackground(this.backgroundColor);\n return {\n 'gl-label-scoped': this.scoped,\n 'gl-label-text-dark': textColorVariant === labelColorOptions.dark,\n 'gl-label-text-light': textColorVariant === labelColorOptions.light\n };\n },\n cssVariables() {\n return {\n '--label-background-color': this.backgroundColor,\n '--label-inset-border': `inset 0 0 0 2px ${this.backgroundColor}`\n };\n },\n scopedKey() {\n return this.scoped ? this.title.slice(0, this.splitScopedLabelIndex) : this.title;\n },\n scopedValue() {\n return this.title.slice(this.splitScopedLabelIndex + 2);\n },\n labelComponent() {\n return this.target ? GlLink : 'span';\n },\n tooltipTarget() {\n return this.target ? this.$refs.labelTitle.$el : this.$refs.labelTitle;\n }\n },\n watch: {\n title() {\n this.splitScopedLabelIndex = this.title.lastIndexOf('::');\n }\n },\n methods: {\n onClick(e) {\n /**\n * Emitted when label is clicked\n *\n * @event click\n * @type {object}\n */\n this.$emit('click', e);\n },\n onClose(e) {\n /**\n * Emitted when x is clicked\n *\n * @event close\n * @type {object}\n */\n this.$emit('close', e);\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',_vm._b({staticClass:\"gl-label\",class:_vm.cssClasses,style:(_vm.cssVariables),on:{\"click\":_vm.onClick}},'span',_vm.$attrs,false),[_c(_vm.labelComponent,{ref:\"labelTitle\",tag:\"component\",staticClass:\"gl-label-link\",class:{ 'gl-label-link-underline': _vm.target },attrs:{\"href\":_vm.target ? _vm.target : false,\"tabindex\":\"0\"}},[_c('span',{staticClass:\"gl-label-text\"},[_vm._v(\"\\n \"+_vm._s(_vm.scopedKey)+\"\\n \")]),_vm._v(\" \"),(_vm.scoped && _vm.scopedValue)?_c('span',{staticClass:\"gl-label-text-scoped\"},[_vm._v(\"\\n \"+_vm._s(_vm.scopedValue)+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(_vm.showCloseButton)?_c('gl-button',{staticClass:\"gl-label-close !gl-p-0\",attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"variant\":\"reset\",\"aria-label\":\"Remove label\",\"disabled\":_vm.disabled},on:{\"click\":_vm.onClose}},[_c('gl-icon',{attrs:{\"name\":\"close-xs\",\"size\":12}})],1):_vm._e(),_vm._v(\" \"),(_vm.description)?_c('gl-tooltip',{attrs:{\"target\":function () { return _vm.tooltipTarget; },\"placement\":_vm.tooltipPlacement,\"boundary\":\"viewport\"}},[(_vm.scoped)?_c('span',{staticClass:\"gl-label-tooltip-title\"},[_vm._v(\"Scoped label\")]):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.description)+\"\\n \")]):_vm._e()],1)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateEpicLabels\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateEpicInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"updateIssuableLabels\"},\"name\":{\"kind\":\"Name\",\"value\":\"updateEpic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":288}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/label.fragment.graphql\\\"\\n\\nmutation updateEpicLabels($input: UpdateEpicInput!) {\\n updateIssuableLabels: updateEpic(input: $input) {\\n issuable: epic {\\n id\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/label.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateEpicLabels\"] = oneQuery(doc, \"updateEpicLabels\");\n \n","import { parseBoolean } from '~/lib/utils/common_utils';\n\nexport default class SidebarStore {\n constructor(options) {\n if (!SidebarStore.singleton) {\n this.initSingleton(options);\n }\n\n // eslint-disable-next-line no-constructor-return\n return SidebarStore.singleton;\n }\n\n initSingleton(options) {\n const { currentUser, rootPath, editable, timeTrackingLimitToHours } = options;\n this.currentUser = currentUser;\n this.rootPath = rootPath;\n this.editable = parseBoolean(editable);\n this.timeEstimate = 0;\n this.totalTimeSpent = 0;\n this.humanTimeEstimate = '';\n this.humanTimeSpent = '';\n this.timeTrackingLimitToHours = timeTrackingLimitToHours;\n this.assignees = [];\n this.reviewers = [];\n this.isFetching = {\n assignees: true,\n reviewers: true,\n };\n this.isLoading = {};\n this.autocompleteProjects = [];\n this.moveToProjectId = 0;\n this.isLockDialogOpen = false;\n this.participants = [];\n this.projectEmailsEnabled = true;\n this.subscribeDisabledDescription = '';\n this.subscribed = null;\n this.changing = false;\n this.issuableType = options.issuableType;\n\n SidebarStore.singleton = this;\n }\n\n setAssigneeData({ assignees }) {\n this.isFetching.assignees = false;\n if (assignees) {\n this.assignees = assignees;\n }\n }\n\n setReviewerData({ reviewers }) {\n this.isFetching.reviewers = false;\n if (reviewers) {\n this.reviewers = reviewers;\n }\n }\n\n resetChanging() {\n this.changing = false;\n }\n\n setTimeTrackingData(data) {\n this.timeEstimate = data.time_estimate;\n this.totalTimeSpent = data.total_time_spent;\n this.humanTimeEstimate = data.human_time_estimate;\n this.humanTotalTimeSpent = data.human_total_time_spent;\n }\n\n setFetchingState(key, value) {\n this.isFetching[key] = value;\n }\n\n setLoadingState(key, value) {\n this.isLoading[key] = value;\n }\n\n addAssignee(assignee) {\n if (!this.findAssignee(assignee)) {\n this.changing = true;\n this.assignees.push(assignee);\n }\n }\n\n addReviewer(reviewer) {\n if (!this.findReviewer(reviewer)) {\n this.reviewers.push(reviewer);\n }\n }\n\n updateAssignee(id, stateKey) {\n const assignee = this.findAssignee({ id });\n\n if (assignee) {\n assignee[stateKey] = !assignee[stateKey];\n }\n }\n\n updateReviewer(id, stateKey) {\n const reviewer = this.findReviewer({ id });\n\n if (reviewer) {\n reviewer[stateKey] = !reviewer[stateKey];\n }\n }\n\n overwrite(key, newData) {\n this[key] = newData;\n }\n\n findAssignee(findAssignee) {\n return this.assignees.find(({ id }) => id === findAssignee.id);\n }\n\n findReviewer(findReviewer) {\n return this.reviewers.find(({ id }) => id === findReviewer.id);\n }\n\n removeAssignee(assignee) {\n if (assignee) {\n this.changing = true;\n this.assignees = this.assignees.filter(({ id }) => id !== assignee.id);\n }\n }\n\n removeReviewer(reviewer) {\n if (reviewer) {\n this.reviewers = this.reviewers.filter(({ id }) => id !== reviewer.id);\n }\n }\n\n removeAllAssignees() {\n this.changing = true;\n this.assignees = [];\n }\n\n removeAllReviewers() {\n this.reviewers = [];\n }\n\n setAssigneesFromRealtime(data) {\n this.assignees = data;\n }\n\n setReviewersFromRealtime(data) {\n this.reviewers = data;\n }\n\n setAutocompleteProjects(projects) {\n this.autocompleteProjects = projects;\n }\n\n setSubscribedState(subscribed) {\n this.subscribed = subscribed;\n }\n\n setMoveToProjectId(moveToProjectId) {\n this.moveToProjectId = moveToProjectId;\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"gl-flex gl-items-center gl-font-bold gl-leading-20 gl-text-default\",on:{\"click\":function($event){if($event.target !== $event.currentTarget)return null;return _vm.collapse.apply(null, arguments)}}},[_c('span',{staticClass:\"hide-collapsed\",attrs:{\"data-testid\":\"title\"},on:{\"click\":_vm.collapse}},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")]),_vm._v(\" \"),_vm._t(\"title-extra\"),_vm._v(\" \"),(_vm.loading || _vm.initialLoading)?_c('gl-loading-icon',{staticClass:\"hide-collapsed gl-ml-2\",attrs:{\"size\":\"sm\",\"inline\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.loading && _vm.isClassicSidebar)?_c('gl-loading-icon',{staticClass:\"hide-expanded gl-mx-auto gl-my-0\",attrs:{\"size\":\"sm\",\"inline\":\"\"}}):_vm._e(),_vm._v(\" \"),_vm._t(\"collapsed-right\"),_vm._v(\" \"),(_vm.canUpdate && !_vm.initialLoading && _vm.canEdit)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.html\",modifiers:{\"viewport\":true,\"html\":true}}],staticClass:\"hide-collapsed shortcut-sidebar-dropdown-toggle -gl-mr-2 gl-ml-auto\",attrs:{\"id\":_vm.buttonId,\"category\":\"tertiary\",\"size\":\"small\",\"title\":_vm.editTooltipText,\"aria-label\":_vm.editAriaLabelText,\"aria-keyshortcuts\":_vm.editKeyshortcutsText,\"data-testid\":\"edit-button\",\"data-track-action\":_vm.tracking.event,\"data-track-label\":_vm.tracking.label,\"data-track-property\":_vm.tracking.property},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.toggle.apply(null, arguments)},\"click\":_vm.toggle}},[_vm._v(\"\\n \"+_vm._s(_vm.editButtonText)+\"\\n \")]):_vm._e()],2),_vm._v(\" \"),(!_vm.initialLoading)?[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.edit),expression:\"!edit\"}],attrs:{\"data-testid\":\"collapsed-content\"}},[_vm._t(\"collapsed\",function(){return [_vm._v(_vm._s(_vm.__('None')))]})],2),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.edit),expression:\"edit\"}],class:{ 'gl-mt-3': !_vm.isClassicSidebar },attrs:{\"data-testid\":\"expanded-content\"}},[_vm._t(\"default\",null,{\"edit\":_vm.edit,\"toggle\":_vm.toggle})],2)]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_editable_item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_editable_item.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n i18n: {\n unassigned: __('Unassigned'),\n },\n components: { GlButton, GlLoadingIcon },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n inject: {\n canUpdate: {},\n isClassicSidebar: {\n default: false,\n },\n },\n props: {\n buttonId: {\n type: String,\n required: false,\n default: '',\n },\n title: {\n type: String,\n required: false,\n default: '',\n },\n loading: {\n type: Boolean,\n required: false,\n default: false,\n },\n initialLoading: {\n type: Boolean,\n required: false,\n default: false,\n },\n isDirty: {\n type: Boolean,\n required: false,\n default: false,\n },\n tracking: {\n type: Object,\n required: false,\n default: () => ({\n event: null,\n label: null,\n property: null,\n }),\n },\n canEdit: {\n type: Boolean,\n required: false,\n default: true,\n },\n shouldShowConfirmationPopover: {\n type: Boolean,\n required: false,\n default: false,\n },\n editTooltip: {\n type: String,\n required: false,\n default: '',\n },\n editAriaLabel: {\n type: String,\n required: false,\n default: '',\n },\n editKeyshortcuts: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n edit: false,\n };\n },\n computed: {\n editButtonText() {\n return this.isDirty ? __('Apply') : __('Edit');\n },\n editTooltipText() {\n return this.isDirty ? '' : this.editTooltip;\n },\n editAriaLabelText() {\n return this.isDirty ? this.editButtonText : this.editAriaLabel;\n },\n editKeyshortcutsText() {\n return this.isDirty ? __('Escape') : this.editKeyshortcuts;\n },\n },\n destroyed() {\n window.removeEventListener('click', this.collapseWhenOffClick);\n window.removeEventListener('keyup', this.collapseOnEscape);\n },\n methods: {\n collapseWhenOffClick({ target }) {\n if (!this.$el.contains(target)) {\n this.collapse();\n }\n },\n collapseOnEscape({ key }) {\n if (key === 'Escape') {\n this.collapse();\n }\n },\n expand() {\n if (this.edit) {\n return;\n }\n\n if (this.canEdit && this.canUpdate) {\n this.edit = true;\n }\n this.$emit('open');\n window.addEventListener('click', this.collapseWhenOffClick);\n window.addEventListener('keyup', this.collapseOnEscape);\n },\n collapse({ emitEvent = true } = {}) {\n if (!this.edit) {\n return;\n }\n\n this.edit = false;\n if (emitEvent) {\n this.$emit('close');\n }\n window.removeEventListener('click', this.collapseWhenOffClick);\n window.removeEventListener('keyup', this.collapseOnEscape);\n },\n toggle({ emitEvent = true } = {}) {\n if (this.shouldShowConfirmationPopover) {\n this.$emit('edit-confirm');\n return;\n }\n\n if (this.edit) {\n this.collapse({ emitEvent });\n } else {\n this.expand();\n }\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div\n class=\"gl-flex gl-items-center gl-font-bold gl-leading-20 gl-text-default\"\n @click.self=\"collapse\"\n >\n <span class=\"hide-collapsed\" data-testid=\"title\" @click=\"collapse\">\n {{ title }}\n </span>\n <slot name=\"title-extra\"></slot>\n <gl-loading-icon\n v-if=\"loading || initialLoading\"\n size=\"sm\"\n inline\n class=\"hide-collapsed gl-ml-2\"\n />\n <gl-loading-icon\n v-if=\"loading && isClassicSidebar\"\n size=\"sm\"\n inline\n class=\"hide-expanded gl-mx-auto gl-my-0\"\n />\n <slot name=\"collapsed-right\"></slot>\n <gl-button\n v-if=\"canUpdate && !initialLoading && canEdit\"\n :id=\"buttonId\"\n v-gl-tooltip.viewport.html\n category=\"tertiary\"\n size=\"small\"\n class=\"hide-collapsed shortcut-sidebar-dropdown-toggle -gl-mr-2 gl-ml-auto\"\n :title=\"editTooltipText\"\n :aria-label=\"editAriaLabelText\"\n :aria-keyshortcuts=\"editKeyshortcutsText\"\n data-testid=\"edit-button\"\n :data-track-action=\"tracking.event\"\n :data-track-label=\"tracking.label\"\n :data-track-property=\"tracking.property\"\n @keyup.esc=\"toggle\"\n @click=\"toggle\"\n >\n {{ editButtonText }}\n </gl-button>\n </div>\n <template v-if=\"!initialLoading\">\n <div v-show=\"!edit\" data-testid=\"collapsed-content\">\n <slot name=\"collapsed\">{{ __('None') }}</slot>\n </div>\n <div v-show=\"edit\" data-testid=\"expanded-content\" :class=\"{ 'gl-mt-3': !isClassicSidebar }\">\n <slot :edit=\"edit\" :toggle=\"toggle\"></slot>\n </div>\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_editable_item.vue?vue&type=template&id=6046ea02\"\nimport script from \"./sidebar_editable_item.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_editable_item.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('work-item-attribute',{attrs:{\"anchor-id\":\"board-card-due-date\",\"wrapper-component\":\"span\",\"wrapper-component-class\":`${_vm.cssClass} board-card-info gl-mr-3 gl-cursor-help gl-text-subtle`},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('gl-icon',{staticClass:\"board-card-info-icon gl-mr-2\",attrs:{\"variant\":_vm.isOverdue ? 'danger' : 'subtle',\"name\":_vm.iconName}})]},proxy:true},{key:\"title\",fn:function(){return [_c('time',{staticClass:\"board-card-info-text gl-text-sm\",attrs:{\"datetime\":\"date\"}},[_vm._v(_vm._s(_vm.body))])]},proxy:true},{key:\"tooltip-text\",fn:function(){return [_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(_vm.__('Due date')))]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),(_vm.isOverdue)?_c('div',[_vm._v(\"(\"+_vm._s(_vm.__('overdue'))+\")\")]):_vm._e()]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issue_due_date.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issue_due_date.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\nimport dateFormat from '~/lib/dateformat';\nimport {\n getDayDifference,\n getTimeago,\n localeDateFormat,\n newDate,\n} from '~/lib/utils/datetime_utility';\nimport { __ } from '~/locale';\nimport WorkItemAttribute from '~/vue_shared/components/work_item_attribute.vue';\n\nexport default {\n components: {\n WorkItemAttribute,\n GlIcon,\n },\n props: {\n closed: {\n type: Boolean,\n required: false,\n default: false,\n },\n date: {\n type: String,\n required: true,\n },\n cssClass: {\n type: String,\n required: false,\n default: '',\n },\n tooltipPlacement: {\n type: String,\n required: false,\n default: 'bottom',\n },\n },\n computed: {\n title() {\n const timeago = getTimeago();\n const { timeDifference, standardDateFormat } = this;\n const formattedDate = standardDateFormat;\n\n if (timeDifference >= -1 && timeDifference < 7) {\n return `${timeago.format(this.issueDueDate)} (${formattedDate})`;\n }\n\n return timeago.format(this.issueDueDate);\n },\n body() {\n const { timeDifference, issueDueDate, standardDateFormat } = this;\n\n if (timeDifference === 0) {\n return __('Today');\n }\n if (timeDifference === 1) {\n return __('Tomorrow');\n }\n if (timeDifference === -1) {\n return __('Yesterday');\n }\n if (timeDifference > 0 && timeDifference < 7) {\n return dateFormat(issueDueDate, 'dddd');\n }\n\n return standardDateFormat;\n },\n iconName() {\n return this.isOverdue ? 'calendar-overdue' : 'calendar';\n },\n issueDueDate() {\n return newDate(this.date);\n },\n timeDifference() {\n const today = new Date();\n return getDayDifference(today, this.issueDueDate);\n },\n isOverdue() {\n if (this.timeDifference >= 0 || this.closed) return false;\n return true;\n },\n standardDateFormat() {\n const today = new Date();\n return today.getFullYear() === this.issueDueDate.getFullYear()\n ? localeDateFormat.asDateWithoutYear.format(this.issueDueDate)\n : localeDateFormat.asDate.format(this.issueDueDate);\n },\n },\n};\n</script>\n\n<template>\n <work-item-attribute\n anchor-id=\"board-card-due-date\"\n wrapper-component=\"span\"\n :wrapper-component-class=\"`${cssClass} board-card-info gl-mr-3 gl-cursor-help gl-text-subtle`\"\n >\n <template #icon>\n <gl-icon\n :variant=\"isOverdue ? 'danger' : 'subtle'\"\n class=\"board-card-info-icon gl-mr-2\"\n :name=\"iconName\"\n />\n </template>\n <template #title>\n <time datetime=\"date\" class=\"board-card-info-text gl-text-sm\">{{ body }}</time>\n </template>\n <template #tooltip-text>\n <span class=\"gl-font-bold\">{{ __('Due date') }}</span>\n <br />\n <span>{{ title }}</span>\n <div v-if=\"isOverdue\">({{ __('overdue') }})</div>\n </template>\n </work-item-attribute>\n</template>\n","import { render, staticRenderFns } from \"./issue_due_date.vue?vue&type=template&id=47333aa6\"\nimport script from \"./issue_due_date.vue?vue&type=script&lang=js\"\nexport * from \"./issue_due_date.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { extend, mergeData } from '../../../vue';\nimport { NAME_COLLAPSE_HELPER } from '../../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../../constants/props';\nimport { setStyle, requestAF, reflow, removeStyle, getBCR } from '../../../utils/dom';\nimport { makeProp } from '../../../utils/props';\n\n// Generic collapse transion helper component\n\n// --- Helper methods ---\n\n// Transition event handler helpers\nconst onEnter = el => {\n setStyle(el, 'height', 0);\n // In a `requestAF()` for `appear` to work\n requestAF(() => {\n reflow(el);\n setStyle(el, 'height', `${el.scrollHeight}px`);\n });\n};\nconst onAfterEnter = el => {\n removeStyle(el, 'height');\n};\nconst onLeave = el => {\n setStyle(el, 'height', 'auto');\n setStyle(el, 'display', 'block');\n setStyle(el, 'height', `${getBCR(el).height}px`);\n reflow(el);\n setStyle(el, 'height', 0);\n};\nconst onAfterLeave = el => {\n removeStyle(el, 'height');\n};\n\n// --- Constants ---\n\n// Default transition props\n// `appear` will use the enter classes\nconst TRANSITION_PROPS = {\n css: true,\n enterClass: '',\n enterActiveClass: 'collapsing',\n enterToClass: 'collapse show',\n leaveClass: 'collapse show',\n leaveActiveClass: 'collapsing',\n leaveToClass: 'collapse'\n};\n\n// Default transition handlers\n// `appear` will use the enter handlers\nconst TRANSITION_HANDLERS = {\n enter: onEnter,\n afterEnter: onAfterEnter,\n leave: onLeave,\n afterLeave: onAfterLeave\n};\n\n// --- Main component ---\n\nconst props = {\n // // If `true` (and `visible` is `true` on mount), animate initially visible\n appear: makeProp(PROP_TYPE_BOOLEAN, false)\n};\n\n// --- Main component ---\n\n// @vue/component\nconst BVCollapse = /*#__PURE__*/extend({\n name: NAME_COLLAPSE_HELPER,\n functional: true,\n props,\n render(h, _ref) {\n let {\n props,\n data,\n children\n } = _ref;\n return h('transition',\n // We merge in the `appear` prop last\n mergeData(data, {\n props: TRANSITION_PROPS,\n on: TRANSITION_HANDLERS\n }, {\n props\n }),\n // Note: `<transition>` supports a single root element only\n children);\n }\n});\n\nexport { BVCollapse, props };\n","import { extend } from '../../vue';\nimport { NAME_COLLAPSE } from '../../constants/components';\nimport { EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_HIDE, EVENT_NAME_HIDDEN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { getRootActionEventName, getRootEventName } from '../../utils/events';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { props as props$1, idMixin } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVCollapse } from './helpers/bv-collapse';\n\n// --- Constants ---\nconst ROOT_ACTION_EVENT_NAME_TOGGLE = getRootActionEventName(NAME_COLLAPSE, 'toggle');\nconst ROOT_ACTION_EVENT_NAME_REQUEST_STATE = getRootActionEventName(NAME_COLLAPSE, 'request-state');\nconst ROOT_EVENT_NAME_ACCORDION = getRootEventName(NAME_COLLAPSE, 'accordion');\nconst ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state');\nconst ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state');\nconst {\n mixin: modelMixin,\n props: modelProps,\n prop: MODEL_PROP_NAME,\n event: MODEL_EVENT_NAME\n} = makeModelMixin('visible', {\n type: PROP_TYPE_BOOLEAN,\n defaultValue: false\n});\n\n// --- Props ---\n\nconst props = makePropsConfigurable(sortKeys({\n ...props$1,\n ...modelProps,\n // If `true` (and `visible` is `true` on mount), animate initially visible\n accordion: makeProp(PROP_TYPE_STRING),\n appear: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}), NAME_COLLAPSE);\n\n// --- Main component ---\n\n// @vue/component\nconst BCollapse = /*#__PURE__*/extend({\n name: NAME_COLLAPSE,\n mixins: [idMixin, modelMixin, normalizeSlotMixin, listenOnRootMixin],\n props,\n data() {\n return {\n show: this[MODEL_PROP_NAME],\n transitioning: false\n };\n },\n computed: {\n classObject() {\n const {\n transitioning\n } = this;\n return {\n collapse: !transitioning,\n show: this.show && !transitioning\n };\n },\n slotScope() {\n return {\n visible: this.show,\n close: () => {\n this.show = false;\n }\n };\n }\n },\n watch: {\n [MODEL_PROP_NAME](newValue) {\n if (newValue !== this.show) {\n this.show = newValue;\n }\n },\n show(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.emitState();\n }\n }\n },\n created() {\n this.show = this[MODEL_PROP_NAME];\n },\n mounted() {\n this.show = this[MODEL_PROP_NAME];\n // Listen for toggle events to open/close us\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_TOGGLE, this.handleToggleEvent);\n // Listen to other collapses for accordion events\n this.listenOnRoot(ROOT_EVENT_NAME_ACCORDION, this.handleAccordionEvent);\n this.$nextTick(() => {\n this.emitState();\n });\n // Listen for \"Sync state\" requests from `v-b-toggle`\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REQUEST_STATE, id => {\n if (id === this.safeId()) {\n this.$nextTick(this.emitSync);\n }\n });\n },\n updated() {\n // Emit a private event every time this component updates to ensure\n // the toggle button is in sync with the collapse's state\n // It is emitted regardless if the visible state changes\n this.emitSync();\n },\n beforeDestroy() {\n // Trigger state emit if needed\n this.show = false;\n },\n methods: {\n toggle() {\n this.show = !this.show;\n },\n onEnter() {\n this.transitioning = true;\n // This should be moved out so we can add cancellable events\n this.$emit(EVENT_NAME_SHOW);\n },\n onAfterEnter() {\n this.transitioning = false;\n this.$emit(EVENT_NAME_SHOWN);\n },\n onLeave() {\n this.transitioning = true;\n // This should be moved out so we can add cancellable events\n this.$emit(EVENT_NAME_HIDE);\n },\n onAfterLeave() {\n this.transitioning = false;\n this.$emit(EVENT_NAME_HIDDEN);\n },\n emitState() {\n const {\n show,\n accordion\n } = this;\n const id = this.safeId();\n this.$emit(MODEL_EVENT_NAME, show);\n\n // Let `v-b-toggle` know the state of this collapse\n this.emitOnRoot(ROOT_EVENT_NAME_STATE, id, show);\n if (accordion && show) {\n // Tell the other collapses in this accordion to close\n this.emitOnRoot(ROOT_EVENT_NAME_ACCORDION, id, accordion);\n }\n },\n emitSync() {\n // Emit a private event every time this component updates to ensure\n // the toggle button is in sync with the collapse's state\n // It is emitted regardless if the visible state changes\n this.emitOnRoot(ROOT_EVENT_NAME_SYNC_STATE, this.safeId(), this.show);\n },\n handleToggleEvent(id) {\n if (id === this.safeId()) {\n this.toggle();\n }\n },\n handleAccordionEvent(openedId, openAccordion) {\n const {\n accordion,\n show\n } = this;\n if (!accordion || accordion !== openAccordion) {\n return;\n }\n const isThis = openedId === this.safeId();\n // Open this collapse if not shown or\n // close this collapse if shown\n if (isThis && !show || !isThis && show) {\n this.toggle();\n }\n }\n },\n render(h) {\n const {\n appear\n } = this;\n const $content = h(this.tag, {\n class: this.classObject,\n directives: [{\n name: 'show',\n value: this.show\n }],\n attrs: {\n id: this.safeId()\n }\n }, this.normalizeSlot(SLOT_NAME_DEFAULT, this.slotScope));\n return h(BVCollapse, {\n props: {\n appear\n },\n on: {\n enter: this.onEnter,\n afterEnter: this.onAfterEnter,\n leave: this.onLeave,\n afterLeave: this.onAfterLeave\n }\n }, [$content]);\n }\n});\n\nexport { BCollapse, props };\n","/**\n * Regexp utility for the convenience of working with regular expressions.\n */\n\n// Inspired by https://github.com/mishoo/UglifyJS/blob/2bc1d02363db3798d5df41fb5059a19edca9b7eb/lib/parse-js.js#L203\n// Unicode 6.1\nexport const unicodeLetters =\n '\\\\u0041-\\\\u005A\\\\u0061-\\\\u007A\\\\u00AA\\\\u00B5\\\\u00BA\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u0527\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u08A0\\\\u08A2-\\\\u08AC\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0977\\\\u0979-\\\\u097F\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C33\\\\u0C35-\\\\u0C39\\\\u0C3D\\\\u0C58\\\\u0C59\\\\u0C60\\\\u0C61\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D60\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB0\\\\u0EB2\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F4\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F0\\\\u1700-\\\\u170C\\\\u170E-\\\\u1711\\\\u1720-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1877\\\\u1880-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191C\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19C1-\\\\u19C7\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4B\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF1\\\\u1CF5\\\\u1CF6\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2E2F\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FCC\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA697\\\\uA6A0-\\\\uA6EF\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA78E\\\\uA790-\\\\uA793\\\\uA7A0-\\\\uA7AA\\\\uA7F8-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA80-\\\\uAAAF\\\\uAAB1\\\\uAAB5\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uABC0-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC';\n\nexport const semverRegex =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\nexport const noSpacesRegex = /^\\S+$/;\n\n/**\n * Checks if a string contains potential regular expression elements.\n *\n * @param {string} str - The string to check for potential regex elements.\n * @returns {boolean} - Returns true if the string contains regex elements, otherwise false.\n */\n\nexport const containsPotentialRegex = (str) => {\n const regexPattern = /[*+?^${}()|[\\]\\\\]/;\n return regexPattern.test(str);\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getParent\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetHierarchy\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parent\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":224}};\n doc.loc.source = {\"body\":\"query getParent($id: WorkItemID!) {\\n workItem(id: $id) {\\n id\\n widgets {\\n ... on WorkItemWidgetHierarchy {\\n type\\n parent {\\n id\\n title\\n webUrl\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"getParent\"] = oneQuery(doc, \"getParent\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardListFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardList\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardListShared\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxIssueCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignee\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"username\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"milestone\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iteration\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":367}};\n doc.loc.source = {\"body\":\"#import \\\"~/boards/graphql/board_list_shared.fragment.graphql\\\"\\n\\nfragment BoardListFragment on BoardList {\\n ...BoardListShared\\n maxIssueCount\\n assignee {\\n id\\n name\\n username\\n avatarUrl\\n webUrl\\n }\\n milestone {\\n id\\n title\\n webPath\\n description\\n }\\n iteration {\\n id\\n title\\n startDate\\n dueDate\\n webPath\\n description\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/boards/graphql/board_list_shared.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"BoardListFragment\"] = oneQuery(doc, \"BoardListFragment\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueState\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issueState\"},\"arguments\":[],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}]}]}}],\"loc\":{\"start\":0,\"end\":42}};\n doc.loc.source = {\"body\":\"query issueState {\\n issueState @client\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueState\"] = oneQuery(doc, \"issueState\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"diff-stats\",class:{\n 'is-compare-versions-header gl-hidden lg:gl-inline-flex': _vm.isCompareVersionsHeader,\n 'gl-hidden sm:!gl-inline-flex': !_vm.isCompareVersionsHeader,\n }},[(_vm.notDiffable)?_c('div',{class:_vm.fileStats.classes},[_vm._v(\"\\n \"+_vm._s(_vm.fileStats.text)+\"\\n \")]):_c('div',{staticClass:\"diff-stats-contents\"},[(_vm.hasDiffFiles)?_c('div',{staticClass:\"diff-stats-group\"},[_c('gl-icon',{staticClass:\"diff-stats-icon\",attrs:{\"name\":\"doc-code\",\"variant\":\"subtle\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-font-bold gl-text-subtle\"},[_vm._v(_vm._s(_vm.diffsCount)+\" \"+_vm._s(_vm.filesText))])],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"diff-stats-group gl-flex gl-items-center gl-text-success\",class:{ 'gl-font-bold': _vm.isCompareVersionsHeader }},[_c('span',[_vm._v(\"+\")]),_vm._v(\" \"),_c('span',{attrs:{\"data-testid\":\"js-file-addition-line\"}},[_vm._v(_vm._s(_vm.addedLines))])]),_vm._v(\" \"),_c('div',{staticClass:\"diff-stats-group gl-flex gl-items-center gl-text-danger\",class:{ 'gl-font-bold': _vm.isCompareVersionsHeader }},[_c('span',[_vm._v(\"−\")]),_vm._v(\" \"),_c('span',{attrs:{\"data-testid\":\"js-file-deletion-line\"}},[_vm._v(_vm._s(_vm.removedLines))])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./diff_stats.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./diff_stats.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\nimport { isNumber } from 'lodash';\nimport { n__ } from '~/locale';\nimport { isNotDiffable, stats } from '../utils/diff_file';\n\nexport default {\n components: { GlIcon },\n props: {\n diffFile: {\n type: Object,\n required: false,\n default: () => null,\n },\n addedLines: {\n type: Number,\n required: true,\n },\n removedLines: {\n type: Number,\n required: true,\n },\n diffsCount: {\n type: String,\n required: false,\n default: null,\n },\n },\n computed: {\n diffFilesLength() {\n return parseInt(this.diffsCount, 10);\n },\n filesText() {\n return n__('file', 'files', this.diffFilesLength);\n },\n isCompareVersionsHeader() {\n return Boolean(this.diffsCount);\n },\n hasDiffFiles() {\n return isNumber(this.diffFilesLength) && this.diffFilesLength >= 0;\n },\n notDiffable() {\n return isNotDiffable(this.diffFile);\n },\n fileStats() {\n return stats(this.diffFile);\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"diff-stats\"\n :class=\"{\n 'is-compare-versions-header gl-hidden lg:gl-inline-flex': isCompareVersionsHeader,\n 'gl-hidden sm:!gl-inline-flex': !isCompareVersionsHeader,\n }\"\n >\n <div v-if=\"notDiffable\" :class=\"fileStats.classes\">\n {{ fileStats.text }}\n </div>\n <div v-else class=\"diff-stats-contents\">\n <div v-if=\"hasDiffFiles\" class=\"diff-stats-group\">\n <gl-icon name=\"doc-code\" class=\"diff-stats-icon\" variant=\"subtle\" />\n <span class=\"gl-font-bold gl-text-subtle\">{{ diffsCount }} {{ filesText }}</span>\n </div>\n <div\n class=\"diff-stats-group gl-flex gl-items-center gl-text-success\"\n :class=\"{ 'gl-font-bold': isCompareVersionsHeader }\"\n >\n <span>+</span>\n <span data-testid=\"js-file-addition-line\">{{ addedLines }}</span>\n </div>\n <div\n class=\"diff-stats-group gl-flex gl-items-center gl-text-danger\"\n :class=\"{ 'gl-font-bold': isCompareVersionsHeader }\"\n >\n <span>−</span>\n <span data-testid=\"js-file-deletion-line\">{{ removedLines }}</span>\n </div>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./diff_stats.vue?vue&type=template&id=7e7e1790\"\nimport script from \"./diff_stats.vue?vue&type=script&lang=js\"\nexport * from \"./diff_stats.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemAncestorsQuery\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemAncestors\"},\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":152}};\n doc.loc.source = {\"body\":\"#import \\\"./work_item_ancestors.fragment.graphql\\\"\\n\\nquery workItemAncestorsQuery($id: WorkItemID!) {\\n workItem(id: $id) {\\n ...WorkItemAncestors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./work_item_ancestors.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"workItemAncestorsQuery\"] = oneQuery(doc, \"workItemAncestorsQuery\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueNode\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"referencePath\"},\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"full\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timeEstimate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"totalTimeSpent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"humanTimeEstimate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"humanTotalTimeSpent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"emailsDisabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hidden\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"relativePosition\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"severity\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"milestone\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MilestoneFragment\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignees\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":573}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/milestone.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n\\nfragment IssueNode on Issue {\\n id\\n iid\\n title\\n referencePath: reference(full: true)\\n closedAt\\n dueDate\\n timeEstimate\\n totalTimeSpent\\n humanTimeEstimate\\n humanTotalTimeSpent\\n emailsDisabled\\n confidential\\n hidden\\n webUrl\\n relativePosition\\n type\\n severity\\n milestone {\\n ...MilestoneFragment\\n }\\n assignees {\\n nodes {\\n ...User\\n }\\n }\\n labels {\\n nodes {\\n id\\n title\\n color\\n description\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/milestone.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"IssueNode\"] = oneQuery(doc, \"IssueNode\");\n \n",";(function (global) {\n \"use strict\";\n\n var lastId = -1;\n\n // Visibility.js allow you to know, that your web page is in the background\n // tab and thus not visible to the user. This library is wrap under\n // Page Visibility API. It fix problems with different vendor prefixes and\n // add high-level useful functions.\n var self = {\n\n // Call callback only when page become to visible for user or\n // call it now if page is visible now or Page Visibility API\n // doesn’t supported.\n //\n // Return false if API isn’t supported, true if page is already visible\n // or listener ID (you can use it in `unbind` method) if page isn’t\n // visible now.\n //\n // Visibility.onVisible(function () {\n // startIntroAnimation();\n // });\n onVisible: function (callback) {\n var support = self.isSupported();\n if ( !support || !self.hidden() ) {\n callback();\n return support;\n }\n\n var listener = self.change(function (e, state) {\n if ( !self.hidden() ) {\n self.unbind(listener);\n callback();\n }\n });\n return listener;\n },\n\n // Call callback when visibility will be changed. First argument for\n // callback will be original event object, second will be visibility\n // state name.\n //\n // Return listener ID to unbind listener by `unbind` method.\n //\n // If Page Visibility API doesn’t supported method will be return false\n // and callback never will be called.\n //\n // Visibility.change(function(e, state) {\n // Statistics.visibilityChange(state);\n // });\n //\n // It is just proxy to `visibilitychange` event, but use vendor prefix.\n change: function (callback) {\n if ( !self.isSupported() ) {\n return false;\n }\n lastId += 1;\n var number = lastId;\n self._callbacks[number] = callback;\n self._listen();\n return number;\n },\n\n // Remove `change` listener by it ID.\n //\n // var id = Visibility.change(function(e, state) {\n // firstChangeCallback();\n // Visibility.unbind(id);\n // });\n unbind: function (id) {\n delete self._callbacks[id];\n },\n\n // Call `callback` in any state, expect “prerender”. If current state\n // is “prerender” it will wait until state will be changed.\n // If Page Visibility API doesn’t supported, it will call `callback`\n // immediately.\n //\n // Return false if API isn’t supported, true if page is already after\n // prerendering or listener ID (you can use it in `unbind` method)\n // if page is prerended now.\n //\n // Visibility.afterPrerendering(function () {\n // Statistics.countVisitor();\n // });\n afterPrerendering: function (callback) {\n var support = self.isSupported();\n var prerender = 'prerender';\n\n if ( !support || prerender != self.state() ) {\n callback();\n return support;\n }\n\n var listener = self.change(function (e, state) {\n if ( prerender != state ) {\n self.unbind(listener);\n callback();\n }\n });\n return listener;\n },\n\n // Return true if page now isn’t visible to user.\n //\n // if ( !Visibility.hidden() ) {\n // VideoPlayer.play();\n // }\n //\n // It is just proxy to `document.hidden`, but use vendor prefix.\n hidden: function () {\n return !!(self._doc.hidden || self._doc.webkitHidden);\n },\n\n // Return visibility state: 'visible', 'hidden' or 'prerender'.\n //\n // if ( 'prerender' == Visibility.state() ) {\n // Statistics.pageIsPrerendering();\n // }\n //\n // Don’t use `Visibility.state()` to detect, is page visible, because\n // visibility states can extend in next API versions.\n // Use more simpler and general `Visibility.hidden()` for this cases.\n //\n // It is just proxy to `document.visibilityState`, but use\n // vendor prefix.\n state: function () {\n return self._doc.visibilityState ||\n self._doc.webkitVisibilityState ||\n 'visible';\n },\n\n // Return true if browser support Page Visibility API.\n //\n // if ( Visibility.isSupported() ) {\n // Statistics.startTrackingVisibility();\n // Visibility.change(function(e, state)) {\n // Statistics.trackVisibility(state);\n // });\n // }\n isSupported: function () {\n return !!(self._doc.visibilityState ||\n self._doc.webkitVisibilityState);\n },\n\n // Link to document object to change it in tests.\n _doc: document || {},\n\n // Callbacks from `change` method, that wait visibility changes.\n _callbacks: { },\n\n // Listener for `visibilitychange` event.\n _change: function(event) {\n var state = self.state();\n\n for ( var i in self._callbacks ) {\n self._callbacks[i].call(self._doc, event, state);\n }\n },\n\n // Set listener for `visibilitychange` event.\n _listen: function () {\n if ( self._init ) {\n return;\n }\n\n var event = 'visibilitychange';\n if ( self._doc.webkitVisibilityState ) {\n event = 'webkit' + event;\n }\n\n var listener = function () {\n self._change.apply(self, arguments);\n };\n if ( self._doc.addEventListener ) {\n self._doc.addEventListener(event, listener);\n } else {\n self._doc.attachEvent(event, listener);\n }\n self._init = true;\n }\n\n };\n\n if ( typeof(module) != 'undefined' && module.exports ) {\n module.exports = self;\n } else {\n global.Visibility = self;\n }\n\n})(this);\n","/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/(?:\\s*\\/)+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an <a> element. Use the custom prop to remove this warning:\\n<router-link v-slot=\"{ navigate, href }\" custom></router-link>\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\"<router-link> with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"<router-link>'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"<router-link>'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first <a> child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the <a> is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have <a> child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'}\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1$1.ensureURL();\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1$1.ready) {\n this$1$1.ready = true;\n this$1$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1$1.ready = true;\n this$1$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1$1.errorCbs.length) {\n this$1$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1$1.replace(to);\n } else {\n this$1$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1$1.pending = null;\n onComplete(route);\n if (this$1$1.router.app) {\n this$1$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect <base> tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1$1.base);\n if (this$1$1.current === START && location === this$1$1._startLocation) {\n return\n }\n\n this$1$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route);\n this$1$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1$1.current;\n this$1$1.index = targetIndex;\n this$1$1.updateRoute(route);\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1$1.apps.indexOf(app);\n if (index > -1) { this$1$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; }\n\n if (!this$1$1.app) { this$1$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nvar VueRouter$1 = VueRouter;\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\n// We cannot remove this as it would be a breaking change\nVueRouter.install = install;\nVueRouter.version = '3.6.5';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nvar version = '3.6.5';\n\nexport { NavigationFailureType, Link as RouterLink, View as RouterView, START as START_LOCATION, VueRouter$1 as default, isNavigationFailure, version };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"data-testid\":\"assignees-widget\"}},[(_vm.shouldEnableRealtime)?_c('sidebar-assignees-realtime',{attrs:{\"issuable-type\":_vm.issuableType,\"issuable-id\":_vm.issuableId,\"query-variables\":_vm.queryVariables},on:{\"assigneesUpdated\":function($event){return _vm.$emit('assignees-updated', $event)}}}):_vm._e(),_vm._v(\" \"),_c('sidebar-editable-item',{ref:\"toggle\",attrs:{\"loading\":_vm.isSettingAssignees,\"initial-loading\":_vm.isAssigneesLoading,\"title\":_vm.assigneeText,\"edit-tooltip\":_vm.assigneeTooltip,\"edit-aria-label\":_vm.assigneeShortcutDescription,\"edit-keyshortcuts\":_vm.assigneeShortcutKey,\"is-dirty\":_vm.isDirty},on:{\"open\":_vm.showDropdown,\"close\":_vm.saveAssignees},scopedSlots:_vm._u([{key:\"collapsed\",fn:function(){return [_vm._t(\"collapsed\",null,{\"users\":_vm.assignees}),_vm._v(\" \"),_c('issuable-assignees',{attrs:{\"users\":_vm.assignees,\"issuable-type\":_vm.issuableType,\"signed-in\":_vm.signedIn,\"editable\":_vm.editable},on:{\"assign-self\":_vm.assignSelf,\"expand-widget\":_vm.expandWidget}})]},proxy:true},{key:\"default\",fn:function({ edit }){return [_c('user-select',{ref:\"userSelect\",staticClass:\"dropdown-menu-user -gl-mt-3 gl-w-full\",attrs:{\"text\":_vm.$options.i18n.assignees,\"header-text\":_vm.$options.i18n.assignTo,\"iid\":_vm.iid,\"issuable-id\":_vm.issuableId,\"full-path\":_vm.fullPath,\"allow-multiple-assignees\":_vm.allowMultipleAssignees,\"current-user\":_vm.currentUser,\"issuable-type\":_vm.issuableType,\"is-editing\":edit,\"issuable-author\":_vm.issuableAuthor},on:{\"toggle\":_vm.collapseWidget,\"error\":_vm.showError,\"input\":_vm.setDirtyState},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [(_vm.directlyInviteMembers)?_c('gl-dropdown-item',[_c('sidebar-invite-members',{attrs:{\"issuable-type\":_vm.issuableType}})],1):_vm._e()]},proxy:true}],null,true),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./assignees_realtime.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./assignees_realtime.vue?vue&type=script&lang=js\"","<script>\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { assigneesQueries } from '../../queries/constants';\n\nexport default {\n subscription: null,\n name: 'AssigneesRealtime',\n props: {\n mediator: {\n type: Object,\n required: false,\n default: null,\n },\n issuableType: {\n type: String,\n required: true,\n },\n queryVariables: {\n type: Object,\n required: true,\n },\n },\n computed: {\n issuableId() {\n return this.issuable?.id;\n },\n },\n apollo: {\n // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n issuable: {\n query() {\n return assigneesQueries[this.issuableType].query;\n },\n variables() {\n return this.queryVariables;\n },\n update(data) {\n return data.workspace?.issuable;\n },\n subscribeToMore: {\n document() {\n return assigneesQueries[this.issuableType].subscription;\n },\n variables() {\n return {\n issuableId: this.issuableId,\n };\n },\n skip() {\n return !this.issuableId;\n },\n updateQuery(\n _,\n {\n subscriptionData: {\n data: { issuableAssigneesUpdated },\n },\n },\n ) {\n if (issuableAssigneesUpdated) {\n const {\n id,\n assignees: { nodes },\n } = issuableAssigneesUpdated;\n if (this.mediator) {\n this.handleFetchResult(nodes);\n }\n this.$emit('assigneesUpdated', { id, assignees: nodes });\n }\n },\n },\n },\n },\n methods: {\n handleFetchResult(nodes) {\n const assignees = nodes.map((n) => ({\n ...n,\n avatar_url: n.avatarUrl,\n id: getIdFromGraphQLId(n.id),\n }));\n\n this.mediator.store.setAssigneesFromRealtime(assignees);\n },\n },\n render() {\n return null;\n },\n};\n</script>\n","var render, staticRenderFns\nimport script from \"./assignees_realtime.vue?vue&type=script&lang=js\"\nexport * from \"./assignees_realtime.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_assignees.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_assignees.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { n__ } from '~/locale';\nimport UncollapsedAssigneeList from './uncollapsed_assignee_list.vue';\n\nexport default {\n components: {\n GlButton,\n UncollapsedAssigneeList,\n },\n props: {\n users: {\n type: Array,\n required: true,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n signedIn: {\n type: Boolean,\n required: false,\n default: false,\n },\n editable: {\n type: Boolean,\n required: true,\n },\n },\n computed: {\n assigneesText() {\n return n__('Assignee', '%d Assignees', this.users.length);\n },\n emptyUsers() {\n return this.users.length === 0;\n },\n },\n};\n</script>\n\n<template>\n <div class=\"issuable-assignees gl-flex gl-flex-col\">\n <div\n v-if=\"emptyUsers\"\n class=\"hide-collapsed gl-flex gl-items-center gl-text-subtle\"\n data-testid=\"none\"\n >\n <span> {{ __('None') }}</span>\n <template v-if=\"signedIn && editable\">\n <span class=\"gl-ml-2\">-</span>\n <gl-button\n data-testid=\"assign-yourself\"\n category=\"tertiary\"\n variant=\"link\"\n class=\"gl-ml-2\"\n @click=\"$emit('assign-self')\"\n >\n <span class=\"gl-text-subtle hover:gl-text-blue-800\">{{ __('assign yourself') }}</span>\n </gl-button>\n </template>\n </div>\n <uncollapsed-assignee-list\n v-else\n :users=\"users\"\n :issuable-type=\"issuableType\"\n class=\"hide-collapsed gl-pt-2\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./issuable_assignees.vue?vue&type=template&id=6fdfb102\"\nimport script from \"./issuable_assignees.vue?vue&type=script&lang=js\"\nexport * from \"./issuable_assignees.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"issuable-assignees gl-flex gl-flex-col\"},[(_vm.emptyUsers)?_c('div',{staticClass:\"hide-collapsed gl-flex gl-items-center gl-text-subtle\",attrs:{\"data-testid\":\"none\"}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.__('None')))]),_vm._v(\" \"),(_vm.signedIn && _vm.editable)?[_c('span',{staticClass:\"gl-ml-2\"},[_vm._v(\"-\")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-ml-2\",attrs:{\"data-testid\":\"assign-yourself\",\"category\":\"tertiary\",\"variant\":\"link\"},on:{\"click\":function($event){return _vm.$emit('assign-self')}}},[_c('span',{staticClass:\"gl-text-subtle hover:gl-text-blue-800\"},[_vm._v(_vm._s(_vm.__('assign yourself')))])])]:_vm._e()],2):_c('uncollapsed-assignee-list',{staticClass:\"hide-collapsed gl-pt-2\",attrs:{\"users\":_vm.users,\"issuable-type\":_vm.issuableType}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_invite_members.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_invite_members.vue?vue&type=script&lang=js\"","<script>\nimport InviteMembersTrigger from '~/invite_members/components/invite_members_trigger.vue';\nimport { __ } from '~/locale';\n\nexport default {\n displayText: __('Invite members'),\n components: {\n InviteMembersTrigger,\n },\n props: {\n issuableType: {\n type: String,\n required: true,\n },\n },\n computed: {\n triggerSource() {\n return `${this.issuableType}_assignee_dropdown`;\n },\n },\n};\n</script>\n\n<template>\n <invite-members-trigger\n trigger-element=\"anchor\"\n :display-text=\"$options.displayText\"\n :trigger-source=\"triggerSource\"\n classes=\"gl-block gl-pl-0 hover:gl-no-underline hover:!gl-text-blue-800\"\n />\n</template>\n","import { render, staticRenderFns } from \"./sidebar_invite_members.vue?vue&type=template&id=3178adca\"\nimport script from \"./sidebar_invite_members.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_invite_members.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('invite-members-trigger',{attrs:{\"trigger-element\":\"anchor\",\"display-text\":_vm.$options.displayText,\"trigger-source\":_vm.triggerSource,\"classes\":\"gl-block gl-pl-0 hover:gl-no-underline hover:!gl-text-blue-800\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlDropdownItem } from '@gitlab/ui';\nimport Vue from 'vue';\nimport { createAlert } from '~/alert';\nimport { TYPE_ALERT, TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { __, n__ } from '~/locale';\nimport UserSelect from '~/vue_shared/components/user_select/user_select.vue';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { keysFor, ISSUE_MR_CHANGE_ASSIGNEE } from '~/behaviors/shortcuts/keybindings';\nimport { shouldDisableShortcuts } from '~/behaviors/shortcuts/shortcuts_toggle';\nimport { sanitize } from '~/lib/dompurify';\nimport { assigneesQueries } from '../../queries/constants';\nimport SidebarEditableItem from '../sidebar_editable_item.vue';\nimport SidebarAssigneesRealtime from './assignees_realtime.vue';\nimport IssuableAssignees from './issuable_assignees.vue';\nimport SidebarInviteMembers from './sidebar_invite_members.vue';\n\nexport const assigneesWidget = Vue.observable({\n updateAssignees: null,\n});\n\nconst hideDropdownEvent = new CustomEvent('hiddenGlDropdown', {\n bubbles: true,\n});\n\nexport default {\n i18n: {\n unassigned: __('Unassigned'),\n assignee: __('Assignee'),\n assignees: __('Assignees'),\n assignTo: __('Select assignees'),\n },\n components: {\n SidebarEditableItem,\n IssuableAssignees,\n GlDropdownItem,\n SidebarInviteMembers,\n SidebarAssigneesRealtime,\n UserSelect,\n },\n mixins: [glFeatureFlagsMixin()],\n inject: {\n directlyInviteMembers: {\n default: false,\n },\n },\n props: {\n iid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n initialAssignees: {\n type: Array,\n required: false,\n default: null,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n validator(value) {\n return [TYPE_ISSUE, TYPE_MERGE_REQUEST, TYPE_ALERT].includes(value);\n },\n },\n issuableId: {\n type: Number,\n required: false,\n default: null,\n },\n allowMultipleAssignees: {\n type: Boolean,\n required: true,\n },\n editable: {\n type: Boolean,\n required: true,\n },\n },\n data() {\n return {\n issuable: {},\n selected: [],\n isSettingAssignees: false,\n isDirty: false,\n oldIid: null,\n oldSelected: null,\n };\n },\n apollo: {\n issuable: {\n query() {\n return assigneesQueries[this.issuableType].query;\n },\n variables() {\n return this.queryVariables;\n },\n update(data) {\n return data.workspace?.issuable;\n },\n skip() {\n return !this.iid;\n },\n result({ data }) {\n if (!data) {\n return;\n }\n const issuable = data.workspace?.issuable;\n if (issuable) {\n this.selected = issuable.assignees.nodes.map((node) => ({\n ...node,\n canMerge: node.mergeRequestInteraction?.canMerge || false,\n }));\n }\n },\n error() {\n createAlert({ message: __('An error occurred while fetching participants.') });\n },\n },\n },\n computed: {\n shouldEnableRealtime() {\n // Note: Realtime is only available on issues right now, future support for MR wil be built later.\n return this.issuableType === TYPE_ISSUE;\n },\n queryVariables() {\n return {\n iid: this.iid,\n fullPath: this.fullPath,\n };\n },\n assignees() {\n const currentAssignees = this.$apollo.queries.issuable.loading\n ? this.initialAssignees\n : this.issuable?.assignees?.nodes;\n return currentAssignees || [];\n },\n assigneeText() {\n const items = this.$apollo.queries.issuable.loading ? this.initialAssignees : this.selected;\n if (!items) {\n return __('Assignee');\n }\n return n__('Assignee', '%d Assignees', items.length);\n },\n isAssigneesLoading() {\n return !this.initialAssignees && this.$apollo.queries.issuable.loading;\n },\n currentUser() {\n return {\n username: gon?.current_username,\n name: gon?.current_user_fullname,\n avatarUrl: gon?.current_user_avatar_url,\n canMerge: this.issuable?.userPermissions?.canMerge || false,\n };\n },\n signedIn() {\n return this.currentUser.username !== undefined;\n },\n issuableAuthor() {\n return this.issuable?.author;\n },\n assigneeShortcutDescription() {\n return shouldDisableShortcuts() ? null : ISSUE_MR_CHANGE_ASSIGNEE.description;\n },\n assigneeShortcutKey() {\n return shouldDisableShortcuts() ? null : keysFor(ISSUE_MR_CHANGE_ASSIGNEE)[0];\n },\n assigneeTooltip() {\n const description = this.assigneeShortcutDescription;\n const key = this.assigneeShortcutKey;\n return shouldDisableShortcuts()\n ? null\n : sanitize(`${description} <kbd class=\"flat gl-ml-1\" aria-hidden=true>${key}</kbd>`);\n },\n },\n watch: {\n iid(_, oldIid) {\n if (this.isDirty) {\n this.oldIid = oldIid;\n this.oldSelected = this.selected;\n }\n },\n },\n created() {\n assigneesWidget.updateAssignees = this.updateAssignees;\n },\n destroyed() {\n assigneesWidget.updateAssignees = null;\n },\n methods: {\n updateAssignees(assigneeUsernames) {\n this.isSettingAssignees = true;\n return this.$apollo\n .mutate({\n mutation: assigneesQueries[this.issuableType].mutation,\n variables: {\n ...this.queryVariables,\n assigneeUsernames,\n iid: this.oldIid || this.iid,\n },\n })\n .then(({ data }) => {\n this.$emit('assignees-updated', {\n id: data.issuableSetAssignees.issuable.id,\n assignees: data.issuableSetAssignees.issuable.assignees.nodes,\n });\n return data;\n })\n .catch(() => {\n createAlert({ message: __('An error occurred while updating assignees.') });\n })\n .finally(() => {\n this.isSettingAssignees = false;\n });\n },\n assignSelf() {\n this.updateAssignees([this.currentUser.username]);\n },\n saveAssignees() {\n if (this.isDirty) {\n this.isDirty = false;\n const usernames = this.oldSelected || this.selected;\n this.updateAssignees(usernames.map(({ username }) => username));\n this.oldIid = null;\n this.oldSelected = null;\n }\n this.$el.dispatchEvent(hideDropdownEvent);\n },\n collapseWidget() {\n this.$refs.toggle.collapse();\n },\n expandWidget() {\n this.$refs.toggle.expand();\n },\n showDropdown() {\n this.$refs.userSelect.showDropdown();\n },\n showError() {\n createAlert({ message: __('An error occurred while fetching participants.') });\n },\n setDirtyState() {\n this.isDirty = true;\n if (!this.allowMultipleAssignees) {\n this.collapseWidget();\n }\n },\n },\n};\n</script>\n\n<template>\n <div data-testid=\"assignees-widget\">\n <sidebar-assignees-realtime\n v-if=\"shouldEnableRealtime\"\n :issuable-type=\"issuableType\"\n :issuable-id=\"issuableId\"\n :query-variables=\"queryVariables\"\n @assigneesUpdated=\"$emit('assignees-updated', $event)\"\n />\n <sidebar-editable-item\n ref=\"toggle\"\n :loading=\"isSettingAssignees\"\n :initial-loading=\"isAssigneesLoading\"\n :title=\"assigneeText\"\n :edit-tooltip=\"assigneeTooltip\"\n :edit-aria-label=\"assigneeShortcutDescription\"\n :edit-keyshortcuts=\"assigneeShortcutKey\"\n :is-dirty=\"isDirty\"\n @open=\"showDropdown\"\n @close=\"saveAssignees\"\n >\n <template #collapsed>\n <slot name=\"collapsed\" :users=\"assignees\"></slot>\n <issuable-assignees\n :users=\"assignees\"\n :issuable-type=\"issuableType\"\n :signed-in=\"signedIn\"\n :editable=\"editable\"\n @assign-self=\"assignSelf\"\n @expand-widget=\"expandWidget\"\n />\n </template>\n <template #default=\"{ edit }\">\n <user-select\n ref=\"userSelect\"\n v-model=\"selected\"\n :text=\"$options.i18n.assignees\"\n :header-text=\"$options.i18n.assignTo\"\n :iid=\"iid\"\n :issuable-id=\"issuableId\"\n :full-path=\"fullPath\"\n :allow-multiple-assignees=\"allowMultipleAssignees\"\n :current-user=\"currentUser\"\n :issuable-type=\"issuableType\"\n :is-editing=\"edit\"\n :issuable-author=\"issuableAuthor\"\n class=\"dropdown-menu-user -gl-mt-3 gl-w-full\"\n @toggle=\"collapseWidget\"\n @error=\"showError\"\n @input=\"setDirtyState\"\n >\n <template #footer>\n <gl-dropdown-item v-if=\"directlyInviteMembers\">\n <sidebar-invite-members :issuable-type=\"issuableType\" />\n </gl-dropdown-item> </template\n ></user-select>\n </template>\n </sidebar-editable-item>\n </div>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_assignees_widget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_assignees_widget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./sidebar_assignees_widget.vue?vue&type=template&id=66077c2e\"\nimport script from \"./sidebar_assignees_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_assignees_widget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export const performanceMarkAndMeasure = ({ mark, measures = [] } = {}) => {\n window.requestAnimationFrame(() => {\n if (mark && !performance.getEntriesByName(mark).length) {\n performance.mark(mark);\n }\n measures.forEach((measure) => {\n performance.measure(measure.name, measure.start, measure.end);\n });\n });\n};\n","var baseIsRegExp = require('./_baseIsRegExp'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;\n\n/**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\nvar isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\nmodule.exports = isRegExp;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"projectAutocompleteUsersSearchWithMRPermissions\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"users\"},\"name\":{\"kind\":\"Name\",\"value\":\"autocompleteUsers\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserAvailability\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestInteraction\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canMerge\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":477}};\n doc.loc.source = {\"body\":\"#import \\\"../fragments/user.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/user_availability.fragment.graphql\\\"\\n\\nquery projectAutocompleteUsersSearchWithMRPermissions(\\n $search: String!\\n $fullPath: ID!\\n $mergeRequestId: MergeRequestID!\\n) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n users: autocompleteUsers(search: $search) {\\n ...User\\n ...UserAvailability\\n mergeRequestInteraction(id: $mergeRequestId) {\\n canMerge\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"../fragments/user.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user_availability.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"projectAutocompleteUsersSearchWithMRPermissions\"] = oneQuery(doc, \"projectAutocompleteUsersSearchWithMRPermissions\");\n \n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","import $ from 'jquery';\nimport { GitLabDropdown } from './gl_dropdown';\n\nexport default function initDeprecatedJQueryDropdown($el, opts) {\n // eslint-disable-next-line func-names\n return $el.each(function () {\n if (!$.data(this, 'deprecatedJQueryDropdown')) {\n const instance = new GitLabDropdown(this, opts);\n\n $.data(this, 'deprecatedJQueryDropdown', instance);\n this.GitLabDropdownInstance = instance;\n }\n });\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateWorkItemDesignDescriptionMutation\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignManagementUpdateInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"designManagementUpdate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"design\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"image\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"descriptionHtml\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":228}};\n doc.loc.source = {\"body\":\"mutation updateWorkItemDesignDescriptionMutation($input: DesignManagementUpdateInput!) {\\n designManagementUpdate(input: $input) {\\n errors\\n design {\\n id\\n image\\n description\\n descriptionHtml\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateWorkItemDesignDescriptionMutation\"] = oneQuery(doc, \"updateWorkItemDesignDescriptionMutation\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('sidebar-dropdown-widget',_vm._g(_vm._b({attrs:{\"icon\":_vm.icon,\"issuable-type\":_vm.issuableType,\"attr-workspace-path\":_vm.attrWorkspacePath,\"issuable-attribute\":_vm.issuableAttribute,\"iid\":_vm.iid,\"workspace-path\":_vm.workspacePath,\"show-work-item-epics\":_vm.showWorkItemEpics,\"is-epic-attribute\":_vm.isEpic,\"issuable-parent\":_vm.issuable},on:{\"updateAttribute\":_vm.updateAttribute},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(_,name){return {key:name,fn:function(slotData){return [_vm._t(name,null,null,slotData)]}}})],null,true)},'sidebar-dropdown-widget',_vm.$attrs,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { __ } from '~/locale';\nimport SidebarDropdownWidget from '~/sidebar/components/sidebar_dropdown_widget.vue';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST, TYPE_EPIC } from '~/issues/constants';\nimport { WORK_ITEM_TYPE_VALUE_EPIC } from '~/work_items/constants';\nimport { getIdFromGraphQLId, convertToGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_WORK_ITEM, TYPENAME_ISSUE } from '~/graphql_shared/constants';\nimport { createAlert } from '~/alert';\nimport {\n dropdowni18nText,\n IssuableAttributeType,\n IssuableAttributeState,\n LocalizedIssuableAttributeType,\n IssuableAttributeTypeKeyMap,\n SIDEBAR_ESCALATION_POLICY_TITLE,\n} from 'ee_else_ce/sidebar/constants';\nimport { issuableAttributesQueries } from '../queries/constants';\n\nconst widgetTitleText = {\n [IssuableAttributeType.Milestone]: __('Milestone'),\n [IssuableAttributeType.Iteration]: __('Iteration'),\n [IssuableAttributeType.Epic]: __('Epic'),\n [IssuableAttributeType.EscalationPolicy]: SIDEBAR_ESCALATION_POLICY_TITLE,\n none: __('None'),\n expired: __('(expired)'),\n};\n\nexport default {\n components: { SidebarDropdownWidget },\n provide: {\n issuableAttributesQueries,\n widgetTitleText,\n issuableAttributesState: IssuableAttributeState,\n },\n inheritAttrs: false,\n props: {\n issuableAttribute: {\n type: String,\n required: true,\n validator(value) {\n return [\n IssuableAttributeType.Milestone,\n IssuableAttributeType.Iteration,\n IssuableAttributeType.Epic,\n IssuableAttributeType.EscalationPolicy,\n ].includes(value);\n },\n },\n workspacePath: {\n required: true,\n type: String,\n },\n iid: {\n required: true,\n type: String,\n },\n attrWorkspacePath: {\n required: true,\n type: String,\n },\n issuableType: {\n type: String,\n required: true,\n validator(value) {\n return [TYPE_ISSUE, TYPE_MERGE_REQUEST].includes(value);\n },\n },\n icon: {\n type: String,\n required: false,\n default: undefined,\n },\n issueId: {\n type: String,\n required: false,\n default: '',\n },\n showWorkItemEpics: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n apollo: {\n // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n issuable: {\n query() {\n const { current } = this.issuableAttributeQuery;\n const { query } = current[this.issuableType];\n\n return query;\n },\n variables() {\n return {\n fullPath: this.workspacePath,\n iid: this.iid,\n };\n },\n update(data) {\n return data.workspace?.issuable || {};\n },\n result({ data }) {\n this.hasWorkItemParent = data?.workspace?.issuable?.hasParent && this.showWorkItemEpics;\n },\n error(error) {\n createAlert({\n message: this.i18n.currentFetchError,\n captureError: true,\n error,\n });\n },\n },\n // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n workItem: {\n query() {\n return issuableAttributesQueries[IssuableAttributeType.Parent].current[this.issuableType]\n .query;\n },\n variables() {\n return {\n id: this.issuableId,\n };\n },\n update(data) {\n return data.workspace?.workItems?.nodes[0] || {};\n },\n skip() {\n return !this.hasWorkItemParent;\n },\n result({ data }) {\n if (data?.workItem) {\n this.setParentData(data.workItem);\n }\n },\n error(error) {\n createAlert({\n message: this.i18n.currentFetchError,\n captureError: true,\n error,\n });\n },\n subscribeToMore: {\n document() {\n return issuableAttributesQueries[IssuableAttributeType.Parent].subscription;\n },\n variables() {\n return {\n workItemId: convertToGraphQLId(TYPENAME_WORK_ITEM, getIdFromGraphQLId(this.issuableId)),\n };\n },\n skip() {\n return this.skipRealTimeWorkItemParentUpdates;\n },\n updateQuery(_, { subscriptionData }) {\n if (subscriptionData.data?.workItem) {\n this.setParentData(subscriptionData.data.workItem);\n }\n },\n },\n },\n },\n data() {\n return {\n hasWorkItemParent: false,\n };\n },\n computed: {\n issuableId() {\n return this.issuableType === TYPE_ISSUE\n ? convertToGraphQLId(TYPENAME_ISSUE, this.issueId)\n : this.issueId;\n },\n issuableAttributeQuery() {\n return issuableAttributesQueries[this.issuableAttribute];\n },\n skipRealTimeWorkItemParentUpdates() {\n return this.isEpic && !this.showWorkItemEpics && !this.issuableId;\n },\n i18n() {\n const localizedAttribute =\n LocalizedIssuableAttributeType[IssuableAttributeTypeKeyMap[this.issuableAttribute]];\n return dropdowni18nText(localizedAttribute, this.issuableType);\n },\n isEpic() {\n return this.issuableAttribute === TYPE_EPIC;\n },\n },\n methods: {\n async updateAttribute({ id, workItemType }) {\n this.updating = true;\n let response;\n try {\n if (this.hasWorkItemParent) {\n // setting null if there is parent already assigned\n // to avoid parent already assigned error\n await this.updateWorkItem({\n input: {\n id: this.issuableId,\n hierarchyWidget: { parentId: null },\n },\n });\n } else if (this.isEpic && this.showWorkItemEpics && !this.issuable?.hasParent) {\n // Added checks to avoid getting it fired unnecessarily for other widgets\n\n // setting null if there is epic already assigned\n // to avoid epic already assigned error\n await this.updateIssuable({\n fullPath: this.workspacePath,\n attributeId: null,\n iid: this.iid,\n });\n }\n\n // Set actual data for work item epic or legacy epic\n if (workItemType?.name === WORK_ITEM_TYPE_VALUE_EPIC) {\n response = await this.updateWorkItem({\n input: {\n id: this.issuableId,\n hierarchyWidget: { parentId: id },\n },\n });\n } else {\n response = await this.updateIssuable({\n fullPath: this.workspacePath,\n attributeId: id,\n iid: this.iid,\n });\n }\n\n if (response.data.issuableSetAttribute?.errors?.length) {\n createAlert({\n message: response.data.issuableSetAttribute.errors[0],\n captureError: true,\n error: response.data.issuableSetAttribute.errors[0],\n });\n } else {\n this.hasWorkItemParent =\n workItemType?.name === WORK_ITEM_TYPE_VALUE_EPIC && this.showWorkItemEpics;\n this.$emit('attribute-updated', response.data);\n }\n } catch (error) {\n createAlert({ message: this.i18n.updateError, captureError: true, error });\n } finally {\n this.updating = false;\n }\n },\n updateWorkItem(variables) {\n const { current } = issuableAttributesQueries[IssuableAttributeType.Parent];\n const { mutation } = current[this.issuableType];\n\n return this.$apollo.mutate({\n mutation,\n variables,\n });\n },\n updateIssuable(variables) {\n const { current } = this.issuableAttributeQuery;\n const { mutation } = current[this.issuableType];\n\n return this.$apollo.mutate({\n mutation,\n variables,\n });\n },\n setParentData(workItem) {\n const parent = workItem?.widgets?.find((widget) => widget.type === 'HIERARCHY')?.parent;\n\n this.issuable = {\n ...this.issuable,\n attribute: parent\n ? {\n id: parent.id,\n title: parent.title,\n webUrl: parent.webUrl,\n }\n : null,\n };\n },\n },\n};\n</script>\n<template>\n <sidebar-dropdown-widget\n :icon=\"icon\"\n :issuable-type=\"issuableType\"\n :attr-workspace-path=\"attrWorkspacePath\"\n :issuable-attribute=\"issuableAttribute\"\n :iid=\"iid\"\n :workspace-path=\"workspacePath\"\n :show-work-item-epics=\"showWorkItemEpics\"\n :is-epic-attribute=\"isEpic\"\n :issuable-parent=\"issuable\"\n v-bind=\"$attrs\"\n @updateAttribute=\"updateAttribute\"\n v-on=\"$listeners\"\n >\n <template v-for=\"(_, name) in $scopedSlots\" #[name]=\"slotData\">\n <slot :name=\"name\" v-bind=\"slotData\"></slot>\n </template>\n </sidebar-dropdown-widget>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_dropdown_widget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_dropdown_widget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./sidebar_dropdown_widget.vue?vue&type=template&id=dd4f7e04\"\nimport script from \"./sidebar_dropdown_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_dropdown_widget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import GlLink from '../link/link';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'AvatarLink',\n components: {\n GlLink\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-link',_vm._g(_vm._b({staticClass:\"gl-avatar-link\"},'gl-link',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.userPermissions.adminMergeRequest)?_c('update-reviewers',{attrs:{\"selected-reviewers\":_vm.currentSelectedReviewers},scopedSlots:_vm._u([{key:\"default\",fn:function({ loading, updateReviewers }){return [_c('gl-collapsible-listbox',{staticClass:\"reviewers-dropdown\",attrs:{\"header-text\":_vm.$options.i18n.selectReviewer,\"reset-button-label\":_vm.$options.i18n.unassign,\"searchable\":\"\",\"multiple\":\"\",\"placement\":\"bottom-end\",\"is-check-centered\":\"\",\"items\":_vm.mappedUsers,\"loading\":loading,\"searching\":_vm.searching},on:{\"search\":_vm.debouncedFetchAutocompleteUsers,\"shown\":_vm.shownDropdown,\"hidden\":updateReviewers,\"reset\":_vm.removeAllReviewers},scopedSlots:_vm._u([{key:\"toggle\",fn:function(){return [_c('gl-button',{staticClass:\"js-sidebar-dropdown-toggle *:!gl-text-default\",attrs:{\"size\":\"small\",\"category\":\"tertiary\",\"loading\":loading,\"data-track-action\":\"click_edit_button\",\"data-track-label\":\"right_sidebar\",\"data-track-property\":\"reviewer\",\"data-testid\":\"reviewers-edit-button\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Edit'))+\"\\n \")])]},proxy:true},{key:\"list-item\",fn:function({ item }){return [_c('span',{staticClass:\"gl-flex gl-items-center\"},[_c('div',{staticClass:\"gl-relative gl-mr-3\"},[_c('gl-avatar',{attrs:{\"size\":32,\"src\":item.avatarUrl,\"entity-name\":item.value}}),_vm._v(\" \"),(item.mergeRequestInteraction && !item.mergeRequestInteraction.canMerge)?_c('gl-icon',{staticClass:\"reviewer-merge-icon\",attrs:{\"name\":\"warning-solid\",\"aria-hidden\":\"true\"}}):_vm._e()],1),_vm._v(\" \"),_c('span',{staticClass:\"gl-flex gl-flex-col\"},[_c('span',{staticClass:\"gl-whitespace-nowrap gl-font-bold\"},[_vm._v(_vm._s(item.text))]),_vm._v(\" \"),_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(\" \"+_vm._s(item.secondaryText))])])])]}},(_vm.directlyInviteMembers)?{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"gl-flex gl-flex-col gl-border-t-1 gl-border-t-dropdown !gl-p-2 !gl-pt-0 gl-border-t-solid\"},[_c('invite-members-trigger',{staticClass:\"!gl-mt-2 !gl-justify-start\",attrs:{\"trigger-element\":\"button\",\"display-text\":_vm.__('Invite members'),\"trigger-source\":\"merge_request_reviewers_dropdown\",\"category\":\"tertiary\",\"block\":\"\"}})],1)]},proxy:true}:null],null,true),model:{value:(_vm.currentSelectedReviewers),callback:function ($$v) {_vm.currentSelectedReviewers=$$v},expression:\"currentSelectedReviewers\"}})]}}],null,false,1187136036)}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./update_reviewers.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./update_reviewers.vue?vue&type=script&lang=js\"","<script>\nimport setReviewersMutation from './queries/set_reviewers.mutation.graphql';\n\nexport default {\n inject: ['projectPath', 'issuableIid'],\n props: {\n selectedReviewers: {\n type: Array,\n required: true,\n },\n },\n data() {\n return {\n loading: false,\n };\n },\n methods: {\n async updateReviewers() {\n this.loading = true;\n\n await this.$apollo.mutate({\n mutation: setReviewersMutation,\n variables: {\n reviewerUsernames: this.selectedReviewers,\n projectPath: this.projectPath,\n iid: this.issuableIid,\n },\n });\n\n this.loading = false;\n },\n },\n render() {\n return this.$scopedSlots.default({\n loading: this.loading,\n updateReviewers: this.updateReviewers,\n });\n },\n};\n</script>\n","var render, staticRenderFns\nimport script from \"./update_reviewers.vue?vue&type=script&lang=js\"\nexport * from \"./update_reviewers.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./reviewer_dropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./reviewer_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport { debounce } from 'lodash';\nimport { GlCollapsibleListbox, GlButton, GlAvatar, GlIcon } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';\nimport { TYPENAME_MERGE_REQUEST } from '~/graphql_shared/constants';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport userAutocompleteWithMRPermissionsQuery from '~/graphql_shared/queries/project_autocomplete_users_with_mr_permissions.query.graphql';\nimport InviteMembersTrigger from '~/invite_members/components/invite_members_trigger.vue';\nimport UpdateReviewers from './update_reviewers.vue';\nimport userPermissionsQuery from './queries/user_permissions.query.graphql';\n\nexport default {\n apollo: {\n userPermissions: {\n query: userPermissionsQuery,\n variables() {\n return {\n fullPath: this.projectPath,\n iid: this.issuableIid,\n };\n },\n update: (data) => data.project?.mergeRequest?.userPermissions || {},\n },\n },\n components: {\n GlCollapsibleListbox,\n GlButton,\n GlAvatar,\n GlIcon,\n UpdateReviewers,\n InviteMembersTrigger,\n },\n inject: ['projectPath', 'issuableId', 'issuableIid', 'directlyInviteMembers'],\n props: {\n users: {\n type: Array,\n required: false,\n default: () => [],\n },\n selectedReviewers: {\n type: Array,\n required: false,\n default: () => [],\n },\n visibleReviewers: {\n type: Array,\n required: false,\n default: () => [],\n },\n },\n data() {\n return {\n search: '',\n searching: false,\n fetchedUsers: [],\n currentSelectedReviewers: this.selectedReviewers.map((r) => r.username),\n userPermissions: {},\n };\n },\n computed: {\n mappedUsers() {\n const items = [];\n let users;\n\n if (this.selectedReviewersToShow.length && !this.search) {\n items.push({\n text: __('Reviewers'),\n options: this.selectedReviewersToShow.map((user) => this.mapUser(user)),\n });\n }\n\n if (this.fetchedUsers.length) {\n users = this.fetchedUsers;\n } else {\n users = this.users;\n }\n\n items.push({\n textSrOnly: true,\n text: __('Users'),\n options: users\n .filter((u) =>\n this.search ? true : !this.selectedReviewers.find(({ id }) => u.id === id),\n )\n .map((user) => this.mapUser(user)),\n });\n\n return items;\n },\n selectedReviewersToShow() {\n return this.selectedReviewers.filter((user) =>\n this.visibleReviewers.map((gqlUser) => gqlUser.id).includes(user.id),\n );\n },\n },\n watch: {\n selectedReviewers(newVal) {\n this.currentSelectedReviewers = newVal.map((r) => r.username);\n },\n },\n created() {\n this.debouncedFetchAutocompleteUsers = debounce(\n (search) => this.fetchAutocompleteUsers(search),\n DEFAULT_DEBOUNCE_AND_THROTTLE_MS,\n );\n },\n methods: {\n mapUser(user) {\n return {\n value: user.username,\n text: user.name,\n secondaryText: `@${user.username}`,\n ...user,\n };\n },\n shownDropdown() {\n if (!this.users.length && !this.fetchedUsers.length) {\n this.fetchAutocompleteUsers();\n }\n },\n async fetchAutocompleteUsers(search = '') {\n this.search = search;\n this.searching = true;\n\n const {\n data: {\n workspace: { users = [] },\n },\n } = await this.$apollo.query({\n query: userAutocompleteWithMRPermissionsQuery,\n variables: {\n search,\n fullPath: this.projectPath,\n mergeRequestId: convertToGraphQLId(TYPENAME_MERGE_REQUEST, this.issuableId),\n },\n });\n\n this.fetchedUsers = users;\n this.searching = false;\n },\n removeAllReviewers() {\n this.currentSelectedReviewers = [];\n },\n },\n i18n: {\n selectReviewer: __('Select reviewer'),\n unassign: __('Unassign'),\n },\n};\n</script>\n\n<template>\n <update-reviewers\n v-if=\"userPermissions.adminMergeRequest\"\n :selected-reviewers=\"currentSelectedReviewers\"\n >\n <template #default=\"{ loading, updateReviewers }\">\n <gl-collapsible-listbox\n v-model=\"currentSelectedReviewers\"\n :header-text=\"$options.i18n.selectReviewer\"\n :reset-button-label=\"$options.i18n.unassign\"\n searchable\n multiple\n placement=\"bottom-end\"\n is-check-centered\n class=\"reviewers-dropdown\"\n :items=\"mappedUsers\"\n :loading=\"loading\"\n :searching=\"searching\"\n @search=\"debouncedFetchAutocompleteUsers\"\n @shown=\"shownDropdown\"\n @hidden=\"updateReviewers\"\n @reset=\"removeAllReviewers\"\n >\n <template #toggle>\n <gl-button\n class=\"js-sidebar-dropdown-toggle *:!gl-text-default\"\n size=\"small\"\n category=\"tertiary\"\n :loading=\"loading\"\n data-track-action=\"click_edit_button\"\n data-track-label=\"right_sidebar\"\n data-track-property=\"reviewer\"\n data-testid=\"reviewers-edit-button\"\n >\n {{ __('Edit') }}\n </gl-button>\n </template>\n <template #list-item=\"{ item }\">\n <span class=\"gl-flex gl-items-center\">\n <div class=\"gl-relative gl-mr-3\">\n <gl-avatar :size=\"32\" :src=\"item.avatarUrl\" :entity-name=\"item.value\" />\n <gl-icon\n v-if=\"item.mergeRequestInteraction && !item.mergeRequestInteraction.canMerge\"\n name=\"warning-solid\"\n aria-hidden=\"true\"\n class=\"reviewer-merge-icon\"\n />\n </div>\n <span class=\"gl-flex gl-flex-col\">\n <span class=\"gl-whitespace-nowrap gl-font-bold\">{{ item.text }}</span>\n <span class=\"gl-text-subtle\"> {{ item.secondaryText }}</span>\n </span>\n </span>\n </template>\n\n <template v-if=\"directlyInviteMembers\" #footer>\n <div\n class=\"gl-flex gl-flex-col gl-border-t-1 gl-border-t-dropdown !gl-p-2 !gl-pt-0 gl-border-t-solid\"\n >\n <invite-members-trigger\n trigger-element=\"button\"\n :display-text=\"__('Invite members')\"\n trigger-source=\"merge_request_reviewers_dropdown\"\n category=\"tertiary\"\n block\n class=\"!gl-mt-2 !gl-justify-start\"\n />\n </div>\n </template>\n </gl-collapsible-listbox>\n </template>\n </update-reviewers>\n</template>\n","import { render, staticRenderFns } from \"./reviewer_dropdown.vue?vue&type=template&id=0401e65a\"\nimport script from \"./reviewer_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./reviewer_dropdown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\n\n/**\n * Returns the root element of the given Vue component.\n *\n * This should *only* be used in existing legacy areas of code where Vue is not\n * in use. For example, as part of the migration strategy defined in\n * https://gitlab.com/groups/gitlab-org/-/epics/7626.\n *\n * @param {Object} Component - The Vue component to render.\n * @param {Object} data - The data object to pass to the render function.\n * @param {string|Array} children - The children to render in the default slot\n * of the component.\n * @returns {HTMLElement}\n */\nexport const renderVueComponentForLegacyJS = (Component, data, children) => {\n const vm = new Vue({\n render(h) {\n return h(Component, data, children);\n },\n });\n\n vm.$mount();\n\n // Ensure it's rendered\n vm.$forceUpdate();\n\n const el = vm.$el.cloneNode(true);\n vm.$destroy();\n\n return el;\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestLabels\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"supportsLockOnMerge\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lockOnMerge\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":347}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/label.fragment.graphql\\\"\\n\\nquery mergeRequestLabels($fullPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: mergeRequest(iid: $iid) {\\n id\\n supportsLockOnMerge\\n labels {\\n nodes {\\n ...Label\\n lockOnMerge\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/label.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"mergeRequestLabels\"] = oneQuery(doc, \"mergeRequestLabels\");\n \n","var baseProperty = require('./_baseProperty');\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nmodule.exports = asciiSize;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"createAbuseReportLabel\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"labelCreate\"},\"name\":{\"kind\":\"Name\",\"value\":\"abuseReportLabelCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"label\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"textColor\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":250}};\n doc.loc.source = {\"body\":\"mutation createAbuseReportLabel($title: String!, $color: String) {\\n labelCreate: abuseReportLabelCreate(input: { title: $title, color: $color }) {\\n label {\\n id\\n title\\n description\\n color\\n textColor\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"createAbuseReportLabel\"] = oneQuery(doc, \"createAbuseReportLabel\");\n \n","var baseSlice = require('./_baseSlice');\n\n/**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n}\n\nmodule.exports = baseWhile;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('sidebar-editable-item',{ref:\"editable\",staticClass:\"block\",attrs:{\"title\":_vm.dateLabel,\"tracking\":_vm.tracking,\"loading\":_vm.isLoading,\"data-testid\":_vm.dataTestId},on:{\"open\":_vm.openDatePicker},scopedSlots:_vm._u([(_vm.canInherit)?{key:\"title-extra\",fn:function(){return [_c('help-icon',{ref:\"epicDatePopover\",staticClass:\"hide-collapsed gl-ml-3 gl-cursor-pointer\",attrs:{\"tabindex\":\"0\",\"aria-label\":_vm.$options.i18n.help,\"data-testid\":\"inherit-date-popover\"}}),_vm._v(\" \"),_c('gl-popover',{attrs:{\"target\":_vm.epicDatePopoverEl,\"triggers\":\"focus\",\"placement\":\"left\",\"boundary\":\"viewport\"}},[_c('p',[_vm._v(_vm._s(_vm.$options.i18n.dateHelpValidMessage))]),_vm._v(\" \"),_c('gl-link',{attrs:{\"href\":_vm.$options.dateHelpUrl,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$options.i18n.learnMore))])],1)]},proxy:true}:null,{key:\"collapsed\",fn:function(){return [_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.left\",modifiers:{\"viewport\":true,\"left\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.dateLabel}},[_c('gl-icon',{attrs:{\"size\":16,\"name\":\"calendar\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-px-3 gl-pt-2 gl-text-sm\"},[_vm._v(_vm._s(_vm.formattedDate))])],1),_vm._v(\" \"),(_vm.canInherit && !_vm.initialLoading)?_c('sidebar-inherit-date',{attrs:{\"issuable\":_vm.issuable,\"date-type\":_vm.dateType,\"is-loading\":_vm.isLoading},on:{\"reset-date\":function($event){return _vm.setDate(null)},\"set-date\":_vm.setFixedDate}}):_c('sidebar-formatted-date',{attrs:{\"has-date\":_vm.hasDate,\"formatted-date\":_vm.formattedDate,\"reset-text\":_vm.removeDateLabel,\"is-loading\":_vm.isLoading},on:{\"reset-date\":function($event){return _vm.setDate(null)}}})]},proxy:true},{key:\"default\",fn:function(){return [(!_vm.isLoading)?_c('gl-datepicker',{ref:\"datePicker\",staticClass:\"gl-relative\",attrs:{\"value\":_vm.parsedDate,\"min-date\":_vm.minDate,\"max-date\":_vm.maxDate,\"default-date\":_vm.parsedDate,\"first-day\":_vm.firstDay,\"show-clear-button\":\"\",\"autocomplete\":\"off\"},on:{\"input\":_vm.setDate,\"clear\":function($event){return _vm.setDate(null)}}}):_vm._e()]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_formatted_date.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_formatted_date.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\n\nexport default {\n components: {\n GlButton,\n },\n inject: ['canUpdate'],\n props: {\n formattedDate: {\n required: true,\n type: String,\n },\n hasDate: {\n required: true,\n type: Boolean,\n },\n resetText: {\n required: true,\n type: String,\n },\n isLoading: {\n required: true,\n type: Boolean,\n },\n canDelete: {\n required: false,\n type: Boolean,\n default: true,\n },\n },\n};\n</script>\n\n<template>\n <div class=\"hide-collapsed gl-flex gl-items-center\">\n <span :class=\"hasDate ? 'gl-text-default' : 'gl-text-subtle'\" data-testid=\"sidebar-date-value\">\n {{ formattedDate }}\n </span>\n <div v-if=\"hasDate && canUpdate && canDelete\" class=\"gl-flex\">\n <span class=\"gl-px-2\">-</span>\n <gl-button\n variant=\"link\"\n class=\"!gl-text-subtle\"\n data-testid=\"reset-button\"\n :disabled=\"isLoading\"\n @click=\"$emit('reset-date', $event)\"\n >\n {{ resetText }}\n </gl-button>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_formatted_date.vue?vue&type=template&id=551d23d8\"\nimport script from \"./sidebar_formatted_date.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_formatted_date.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"hide-collapsed gl-flex gl-items-center\"},[_c('span',{class:_vm.hasDate ? 'gl-text-default' : 'gl-text-subtle',attrs:{\"data-testid\":\"sidebar-date-value\"}},[_vm._v(\"\\n \"+_vm._s(_vm.formattedDate)+\"\\n \")]),_vm._v(\" \"),(_vm.hasDate && _vm.canUpdate && _vm.canDelete)?_c('div',{staticClass:\"gl-flex\"},[_c('span',{staticClass:\"gl-px-2\"},[_vm._v(\"-\")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"!gl-text-subtle\",attrs:{\"variant\":\"link\",\"data-testid\":\"reset-button\",\"disabled\":_vm.isLoading},on:{\"click\":function($event){return _vm.$emit('reset-date', $event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.resetText)+\"\\n \")])],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_inherit_date.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_inherit_date.vue?vue&type=script&lang=js\"","<script>\nimport { GlFormRadio } from '@gitlab/ui';\nimport { localeDateFormat, newDate } from '~/lib/utils/datetime_utility';\nimport { __ } from '~/locale';\nimport { dateFields } from '../../constants';\nimport SidebarFormattedDate from './sidebar_formatted_date.vue';\n\nexport default {\n components: {\n GlFormRadio,\n SidebarFormattedDate,\n },\n inject: ['canUpdate'],\n props: {\n issuable: {\n required: true,\n type: Object,\n },\n isLoading: {\n required: false,\n type: Boolean,\n default: false,\n },\n dateType: {\n type: String,\n required: true,\n },\n },\n computed: {\n dateIsFixed: {\n get() {\n return this.issuable?.[dateFields[this.dateType].isDateFixed] || false;\n },\n set(fixed) {\n if (fixed === this.issuable[dateFields[this.dateType].isDateFixed]) return;\n this.$emit('set-date', fixed);\n },\n },\n hasFixedDate() {\n return this.issuable[dateFields[this.dateType].dateFixed] !== null;\n },\n formattedFixedDate() {\n const dateFixed = this.issuable[dateFields[this.dateType].dateFixed];\n if (!dateFixed) {\n return this.$options.i18n.noDate;\n }\n\n return localeDateFormat.asDate.format(newDate(dateFixed));\n },\n formattedInheritedDate() {\n const dateFromMilestones = this.issuable[dateFields[this.dateType].dateFromMilestones];\n if (!dateFromMilestones) {\n return this.$options.i18n.noDate;\n }\n\n return localeDateFormat.asDate.format(newDate(dateFromMilestones));\n },\n },\n i18n: {\n fixed: __('Fixed:'),\n inherited: __('Inherited:'),\n remove: __('remove'),\n noDate: __('None'),\n },\n};\n</script>\n\n<template>\n <div class=\"hide-collapsed gl-mt-3\">\n <div class=\"gl-flex gl-items-baseline\" data-testid=\"sidebar-fixed-date\">\n <gl-form-radio\n v-model=\"dateIsFixed\"\n :value=\"true\"\n :disabled=\"!canUpdate || isLoading\"\n class=\"gl-pr-2\"\n >\n <span :class=\"dateIsFixed ? 'gl-font-bold gl-text-default' : 'gl-text-subtle'\">\n {{ $options.i18n.fixed }}\n </span>\n </gl-form-radio>\n <sidebar-formatted-date\n :has-date=\"dateIsFixed\"\n :formatted-date=\"formattedFixedDate\"\n :reset-text=\"$options.i18n.remove\"\n :is-loading=\"isLoading\"\n :can-delete=\"dateIsFixed && hasFixedDate\"\n class=\"gl-leading-normal\"\n @reset-date=\"$emit('reset-date', $event)\"\n />\n </div>\n <div class=\"gl-flex gl-items-baseline\" data-testid=\"sidebar-inherited-date\">\n <gl-form-radio\n v-model=\"dateIsFixed\"\n :value=\"false\"\n :disabled=\"!canUpdate || isLoading\"\n class=\"gl-pr-2\"\n >\n <span :class=\"!dateIsFixed ? 'gl-font-bold gl-text-default' : 'gl-text-disalbed'\">\n {{ $options.i18n.inherited }}\n </span>\n </gl-form-radio>\n <sidebar-formatted-date\n :has-date=\"!dateIsFixed\"\n :formatted-date=\"formattedInheritedDate\"\n :reset-text=\"$options.i18n.remove\"\n :is-loading=\"isLoading\"\n :can-delete=\"false\"\n class=\"gl-leading-normal\"\n />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_inherit_date.vue?vue&type=template&id=144fb6f1\"\nimport script from \"./sidebar_inherit_date.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_inherit_date.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"hide-collapsed gl-mt-3\"},[_c('div',{staticClass:\"gl-flex gl-items-baseline\",attrs:{\"data-testid\":\"sidebar-fixed-date\"}},[_c('gl-form-radio',{staticClass:\"gl-pr-2\",attrs:{\"value\":true,\"disabled\":!_vm.canUpdate || _vm.isLoading},model:{value:(_vm.dateIsFixed),callback:function ($$v) {_vm.dateIsFixed=$$v},expression:\"dateIsFixed\"}},[_c('span',{class:_vm.dateIsFixed ? 'gl-font-bold gl-text-default' : 'gl-text-subtle'},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.fixed)+\"\\n \")])]),_vm._v(\" \"),_c('sidebar-formatted-date',{staticClass:\"gl-leading-normal\",attrs:{\"has-date\":_vm.dateIsFixed,\"formatted-date\":_vm.formattedFixedDate,\"reset-text\":_vm.$options.i18n.remove,\"is-loading\":_vm.isLoading,\"can-delete\":_vm.dateIsFixed && _vm.hasFixedDate},on:{\"reset-date\":function($event){return _vm.$emit('reset-date', $event)}}})],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-items-baseline\",attrs:{\"data-testid\":\"sidebar-inherited-date\"}},[_c('gl-form-radio',{staticClass:\"gl-pr-2\",attrs:{\"value\":false,\"disabled\":!_vm.canUpdate || _vm.isLoading},model:{value:(_vm.dateIsFixed),callback:function ($$v) {_vm.dateIsFixed=$$v},expression:\"dateIsFixed\"}},[_c('span',{class:!_vm.dateIsFixed ? 'gl-font-bold gl-text-default' : 'gl-text-disalbed'},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.inherited)+\"\\n \")])]),_vm._v(\" \"),_c('sidebar-formatted-date',{staticClass:\"gl-leading-normal\",attrs:{\"has-date\":!_vm.dateIsFixed,\"formatted-date\":_vm.formattedInheritedDate,\"reset-text\":_vm.$options.i18n.remove,\"is-loading\":_vm.isLoading,\"can-delete\":false}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlIcon, GlDatepicker, GlTooltipDirective, GlLink, GlPopover } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { localeDateFormat, newDate, toISODateFormat } from '~/lib/utils/datetime_utility';\nimport { __, sprintf } from '~/locale';\nimport { dateFields, dateTypes, Tracking } from '../../constants';\nimport { dueDateQueries, startDateQueries } from '../../queries/constants';\nimport SidebarEditableItem from '../sidebar_editable_item.vue';\nimport SidebarFormattedDate from './sidebar_formatted_date.vue';\nimport SidebarInheritDate from './sidebar_inherit_date.vue';\n\nconst hideDropdownEvent = new CustomEvent('hiddenGlDropdown', {\n bubbles: true,\n});\n\nexport default {\n tracking: {\n event: Tracking.editEvent,\n label: Tracking.rightSidebarLabel,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlIcon,\n GlDatepicker,\n GlLink,\n GlPopover,\n SidebarEditableItem,\n SidebarFormattedDate,\n SidebarInheritDate,\n HelpIcon,\n },\n inject: ['canUpdate'],\n props: {\n iid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n dateType: {\n type: String,\n required: false,\n default: dateTypes.due,\n },\n issuableType: {\n required: true,\n type: String,\n },\n canInherit: {\n required: false,\n type: Boolean,\n default: false,\n },\n minDate: {\n required: false,\n type: Date,\n default: null,\n },\n maxDate: {\n required: false,\n type: Date,\n default: null,\n },\n },\n data() {\n return {\n issuable: {},\n loading: false,\n tracking: {\n ...this.$options.tracking,\n property: this.dateType === dateTypes.start ? 'startDate' : 'dueDate',\n },\n };\n },\n apollo: {\n issuable: {\n query() {\n return this.dateQueries[this.issuableType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n iid: String(this.iid),\n };\n },\n skip() {\n return !this.iid;\n },\n update(data) {\n return data.workspace?.issuable || {};\n },\n result({ data }) {\n if (!data) {\n return;\n }\n this.$emit(`${this.dateType}Updated`, data.workspace?.issuable?.[this.dateType]);\n },\n error() {\n createAlert({\n message: sprintf(\n __('Something went wrong while setting %{issuableType} %{dateType} date.'),\n {\n issuableType: this.issuableType,\n dateType: this.dateType === dateTypes.start ? 'start' : 'due',\n },\n ),\n });\n },\n subscribeToMore: {\n document() {\n return this.dateQueries[this.issuableType].subscription;\n },\n variables() {\n return {\n issuableId: this.issuableId,\n };\n },\n skip() {\n return this.skipIssueDueDateSubscription;\n },\n },\n },\n },\n computed: {\n dateQueries() {\n return this.dateType === dateTypes.start ? startDateQueries : dueDateQueries;\n },\n dateLabel() {\n return this.dateType === dateTypes.start\n ? this.$options.i18n.startDate\n : this.$options.i18n.dueDate;\n },\n removeDateLabel() {\n return this.dateType === dateTypes.start\n ? this.$options.i18n.removeStartDate\n : this.$options.i18n.removeDueDate;\n },\n dateValue() {\n return this.issuable?.[this.dateType] || null;\n },\n firstDay() {\n return gon.first_day_of_week;\n },\n isLoading() {\n return this.$apollo.queries.issuable.loading || this.loading;\n },\n initialLoading() {\n return this.$apollo.queries.issuable.loading;\n },\n hasDate() {\n return this.dateValue !== null;\n },\n parsedDate() {\n if (!this.hasDate) {\n return null;\n }\n\n return newDate(this.dateValue);\n },\n formattedDate() {\n if (!this.hasDate) {\n return this.$options.i18n.noDate;\n }\n\n return localeDateFormat.asDate.format(this.parsedDate);\n },\n workspacePath() {\n return this.issuableType === TYPE_ISSUE\n ? {\n projectPath: this.fullPath,\n }\n : {\n groupPath: this.fullPath,\n };\n },\n dataTestId() {\n return this.dateType === dateTypes.start ? 'sidebar-start-date' : 'sidebar-due-date';\n },\n issuableId() {\n return this.issuable.id;\n },\n skipIssueDueDateSubscription() {\n return this.issuableType !== TYPE_ISSUE || !this.issuableId || this.isLoading;\n },\n },\n methods: {\n epicDatePopoverEl() {\n return this.$refs?.epicDatePopover?.$el;\n },\n closeForm() {\n this.$refs.editable.collapse();\n this.$el.dispatchEvent(hideDropdownEvent);\n this.$emit('closeForm');\n },\n openDatePicker() {\n this.$refs.datePicker.show();\n },\n setFixedDate(isFixed) {\n const date = this.issuable[dateFields[this.dateType].dateFixed];\n this.setDate(date, isFixed);\n },\n setDate(date, isFixed = true) {\n const formattedDate = date ? toISODateFormat(date) : null;\n this.loading = true;\n this.$refs.editable.collapse();\n this.$apollo\n .mutate({\n mutation: this.dateQueries[this.issuableType].mutation,\n variables: {\n input: {\n ...this.workspacePath,\n iid: this.iid,\n ...(this.canInherit\n ? {\n [dateFields[this.dateType].dateFixed]: isFixed ? formattedDate : undefined,\n [dateFields[this.dateType].isDateFixed]: isFixed,\n }\n : {\n [this.dateType]: formattedDate,\n }),\n },\n },\n })\n .then(\n ({\n data: {\n issuableSetDate: { errors },\n },\n }) => {\n if (errors.length) {\n createAlert({\n message: errors[0],\n });\n } else {\n this.$emit('closeForm');\n }\n },\n )\n .catch(() => {\n createAlert({\n message: sprintf(\n __('Something went wrong while setting %{issuableType} %{dateType} date.'),\n {\n issuableType: this.issuableType,\n dateType: this.dateType === dateTypes.start ? 'start' : 'due',\n },\n ),\n });\n })\n .finally(() => {\n this.loading = false;\n });\n },\n },\n i18n: {\n dueDate: __('Due date'),\n startDate: __('Start date'),\n noDate: __('None'),\n removeDueDate: __('remove due date'),\n removeStartDate: __('remove start date'),\n dateHelpValidMessage: __(\n 'These dates affect how your epics appear in the roadmap. Set a fixed date or one inherited from the milestones assigned to issues in this epic.',\n ),\n help: __('Help'),\n learnMore: __('Learn more'),\n },\n dateHelpUrl: '/help/user/group/epics/manage_epics.md#start-and-due-date-inheritance',\n};\n</script>\n\n<template>\n <sidebar-editable-item\n ref=\"editable\"\n :title=\"dateLabel\"\n :tracking=\"tracking\"\n :loading=\"isLoading\"\n class=\"block\"\n :data-testid=\"dataTestId\"\n @open=\"openDatePicker\"\n >\n <template v-if=\"canInherit\" #title-extra>\n <help-icon\n ref=\"epicDatePopover\"\n class=\"hide-collapsed gl-ml-3 gl-cursor-pointer\"\n tabindex=\"0\"\n :aria-label=\"$options.i18n.help\"\n data-testid=\"inherit-date-popover\"\n />\n <gl-popover :target=\"epicDatePopoverEl\" triggers=\"focus\" placement=\"left\" boundary=\"viewport\">\n <p>{{ $options.i18n.dateHelpValidMessage }}</p>\n <gl-link :href=\"$options.dateHelpUrl\" target=\"_blank\">{{\n $options.i18n.learnMore\n }}</gl-link>\n </gl-popover>\n </template>\n <template #collapsed>\n <div v-gl-tooltip.viewport.left :title=\"dateLabel\" class=\"sidebar-collapsed-icon\">\n <gl-icon :size=\"16\" name=\"calendar\" />\n <span class=\"gl-px-3 gl-pt-2 gl-text-sm\">{{ formattedDate }}</span>\n </div>\n <sidebar-inherit-date\n v-if=\"canInherit && !initialLoading\"\n :issuable=\"issuable\"\n :date-type=\"dateType\"\n :is-loading=\"isLoading\"\n @reset-date=\"setDate(null)\"\n @set-date=\"setFixedDate\"\n />\n <sidebar-formatted-date\n v-else\n :has-date=\"hasDate\"\n :formatted-date=\"formattedDate\"\n :reset-text=\"removeDateLabel\"\n :is-loading=\"isLoading\"\n @reset-date=\"setDate(null)\"\n />\n </template>\n <template #default>\n <gl-datepicker\n v-if=\"!isLoading\"\n ref=\"datePicker\"\n class=\"gl-relative\"\n :value=\"parsedDate\"\n :min-date=\"minDate\"\n :max-date=\"maxDate\"\n :default-date=\"parsedDate\"\n :first-day=\"firstDay\"\n show-clear-button\n autocomplete=\"off\"\n @input=\"setDate\"\n @clear=\"setDate(null)\"\n />\n </template>\n </sidebar-editable-item>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_date_widget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_date_widget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./sidebar_date_widget.vue?vue&type=template&id=7f43361a\"\nimport script from \"./sidebar_date_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_date_widget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemParentUpdated\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"name\":{\"kind\":\"Name\",\"value\":\"workItemUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetHierarchy\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parent\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":284}};\n doc.loc.source = {\"body\":\"subscription workItemParentUpdated($workItemId: WorkItemID!) {\\n workItem: workItemUpdated(workItemId: $workItemId) {\\n id\\n widgets {\\n ... on WorkItemWidgetHierarchy {\\n type\\n parent {\\n id\\n title\\n webUrl\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"workItemParentUpdated\"] = oneQuery(doc, \"workItemParentUpdated\");\n \n","import GlBaseAnimatedIcon from './base_animated_icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlAnimatedChevronRightDownIcon',\n extends: GlBaseAnimatedIcon\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:_vm.iconStateClass,attrs:{\"aria-label\":_vm.ariaLabel,\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{staticClass:\"gl-animated-chevron-right-down-arrow\",attrs:{\"d\":\"M6.75 4.75L10 8L6.75 11.25\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})])};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import uniqueId from 'lodash/uniqueId';\nimport { BCollapse } from '../../../vendor/bootstrap-vue/src/components/collapse/collapse';\nimport GlAnimatedChevronRightDownIcon from '../animated_icon/animated_chevron_right_down_icon';\nimport { GlCollapseToggleDirective } from '../../../directives/collapse_toggle';\nimport GlButton from '../button/button';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlAccordionItem',\n components: {\n BCollapse,\n GlButton,\n GlAnimatedChevronRightDownIcon\n },\n directives: {\n GlCollapseToggle: GlCollapseToggleDirective\n },\n inject: ['accordionSetId', 'defaultHeaderLevel'],\n inheritAttrs: false,\n model: {\n prop: 'visible',\n event: 'input'\n },\n props: {\n /**\n * Used to set the title of accordion link\n */\n title: {\n type: String,\n required: true\n },\n /**\n * Used to set the title of accordion link when the content is visible\n * */\n titleVisible: {\n type: String,\n default: null,\n required: false\n },\n /**\n * When set, it will ensure the accordion item is initially visible\n */\n visible: {\n type: Boolean,\n default: false,\n required: false\n },\n /**\n * The header tag used in the accordion (h1/h2/h3/h4/h5/h6). This overrides the value provided by GlAccordion. For accessibility this should be set to an appropriate value in the context where the accordion is used.,\n */\n headerLevel: {\n type: Number,\n required: false,\n default: null,\n validator(value) {\n return value > 0 && value <= 6;\n }\n },\n /**\n * Additional CSS class(es) to be applied to the header\n */\n headerClass: {\n type: [String, Object, Array],\n required: false,\n default: ''\n }\n },\n data() {\n return {\n accordionItemId: uniqueId('accordion-item-'),\n isVisible: this.visible\n };\n },\n computed: {\n headerComponent() {\n const level = this.headerLevel || this.defaultHeaderLevel();\n return `h${level}`;\n },\n accordion() {\n return this.accordionSetId() || undefined;\n },\n buttonTitle() {\n return this.isVisible && this.titleVisible ? this.titleVisible : this.title;\n }\n },\n watch: {\n isVisible: {\n immediate: true,\n handler(isVisible) {\n this.$emit('input', isVisible);\n }\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-accordion-item\"},[_c(_vm.headerComponent,{tag:\"component\",staticClass:\"gl-accordion-item-header\",class:_vm.headerClass},[_c('gl-button',{directives:[{name:\"gl-collapse-toggle\",rawName:\"v-gl-collapse-toggle\",value:(_vm.accordionItemId),expression:\"accordionItemId\"}],attrs:{\"variant\":\"link\",\"button-text-classes\":\"gl-flex\"}},[_c('gl-animated-chevron-right-down-icon',{attrs:{\"is-on\":_vm.isVisible}}),_vm._v(\"\\n \"+_vm._s(_vm.buttonTitle)+\"\\n \")],1)],1),_vm._v(\" \"),_c('b-collapse',{staticClass:\"gl-mt-3 gl-text-base\",attrs:{\"id\":_vm.accordionItemId,\"visible\":_vm.isVisible,\"accordion\":_vm.accordion,\"data-testid\":(\"accordion-item-collapse-\" + _vm.accordionItemId)},model:{value:(_vm.isVisible),callback:function ($$v) {_vm.isVisible=$$v;},expression:\"isVisible\"}},[_vm._t(\"default\")],2)],1)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemMetadataWidgetsExtras\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidget\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetIteration\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iteration\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updatedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadence\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetNotifications\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribed\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetCurrentUserTodos\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentUserTodos\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"pending\"}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":448}};\n doc.loc.source = {\"body\":\"fragment WorkItemMetadataWidgetsExtras on WorkItemWidget {\\n ... on WorkItemWidgetIteration {\\n iteration {\\n description\\n id\\n iid\\n title\\n startDate\\n dueDate\\n updatedAt\\n iterationCadence {\\n title\\n }\\n }\\n }\\n\\n ... on WorkItemWidgetNotifications {\\n subscribed\\n }\\n\\n ... on WorkItemWidgetCurrentUserTodos {\\n currentUserTodos(state: pending) {\\n nodes {\\n id\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"WorkItemMetadataWidgetsExtras\"] = oneQuery(doc, \"WorkItemMetadataWidgetsExtras\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"CreateIssuableResourceLink\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableResourceLinkCreateInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableResourceLinkCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableResourceLink\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ResourceLinkFields\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":266}};\n doc.loc.source = {\"body\":\"#import \\\"../fragments/resource_link_fields.fragment.graphql\\\"\\n\\nmutation CreateIssuableResourceLink($input: IssuableResourceLinkCreateInput!) {\\n issuableResourceLinkCreate(input: $input) {\\n issuableResourceLink {\\n ...ResourceLinkFields\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"../fragments/resource_link_fields.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"CreateIssuableResourceLink\"] = oneQuery(doc, \"CreateIssuableResourceLink\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"suggested-colors gl-grid gl-grid-cols-[repeat(auto-fill,2rem)] gl-justify-between gl-gap-2\"},_vm._l((_vm.suggestedColors),function(color,index){return _c('gl-link',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip:tooltipcontainer\",arg:\"tooltipcontainer\"}],key:index,staticClass:\"gl-block gl-h-7 gl-w-7 gl-rounded-base\",style:(_vm.getStyle(color)),attrs:{\"title\":_vm.getColorName(color)},on:{\"click\":function($event){$event.preventDefault();_vm.handleColorClick(_vm.getColorCode(color))}}})}),1),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex\"},[_c('gl-form-group',{staticClass:\"gl-mb-0\"},[_c('gl-form-input',{staticClass:\"-gl-mr-1 gl-w-8 gl-rounded-e-none\",attrs:{\"type\":\"color\",\"value\":_vm.selectedColor,\"placeholder\":_vm.__('Select color'),\"data-testid\":\"selected-color\"},model:{value:(_vm.selectedColor),callback:function ($$v) {_vm.selectedColor=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"selectedColor\"}})],1),_vm._v(\" \"),_c('gl-form-group',{staticClass:\"gl-mb-0 gl-grow\",attrs:{\"invalid-feedback\":_vm.errorMessage,\"state\":_vm.validColor}},[_c('gl-form-input',{staticClass:\"gl-mb-2 gl-rounded-s-none\",attrs:{\"placeholder\":_vm.__('Use custom color #FF0000'),\"autofocus\":_vm.autofocus,\"state\":_vm.validColor},model:{value:(_vm.selectedColor),callback:function ($$v) {_vm.selectedColor=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"selectedColor\"}})],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_color_picker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_color_picker.vue?vue&type=script&lang=js\"","<script>\nimport { GlFormGroup, GlFormInput, GlLink, GlTooltipDirective } from '@gitlab/ui';\n\nexport default {\n components: {\n GlFormInput,\n GlLink,\n GlFormGroup,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n value: {\n type: String,\n required: false,\n default: '',\n },\n errorMessage: {\n type: String,\n required: false,\n default: '',\n },\n suggestedColors: {\n type: Array,\n required: false,\n default: () => [],\n },\n autofocus: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n selectedColor: {\n get() {\n return this.value;\n },\n set(color) {\n this.handleColorClick(color);\n },\n },\n validColor() {\n return !this.errorMessage;\n },\n },\n methods: {\n handleColorClick(color) {\n this.$emit('input', color);\n },\n getColorCode(color) {\n return Object.keys(color).pop();\n },\n getColorName(color) {\n return Object.values(color).pop();\n },\n getStyle(color) {\n return {\n backgroundColor: this.getColorCode(color),\n };\n },\n },\n};\n</script>\n<template>\n <div>\n <div\n class=\"suggested-colors gl-grid gl-grid-cols-[repeat(auto-fill,2rem)] gl-justify-between gl-gap-2\"\n >\n <gl-link\n v-for=\"(color, index) in suggestedColors\"\n :key=\"index\"\n v-gl-tooltip:tooltipcontainer\n class=\"gl-block gl-h-7 gl-w-7 gl-rounded-base\"\n :style=\"getStyle(color)\"\n :title=\"getColorName(color)\"\n @click.prevent=\"handleColorClick(getColorCode(color))\"\n />\n </div>\n <div class=\"gl-flex\">\n <gl-form-group class=\"gl-mb-0\">\n <gl-form-input\n v-model.trim=\"selectedColor\"\n class=\"-gl-mr-1 gl-w-8 gl-rounded-e-none\"\n type=\"color\"\n :value=\"selectedColor\"\n :placeholder=\"__('Select color')\"\n data-testid=\"selected-color\"\n />\n </gl-form-group>\n <gl-form-group :invalid-feedback=\"errorMessage\" :state=\"validColor\" class=\"gl-mb-0 gl-grow\">\n <gl-form-input\n v-model.trim=\"selectedColor\"\n class=\"gl-mb-2 gl-rounded-s-none\"\n :placeholder=\"__('Use custom color #FF0000')\"\n :autofocus=\"autofocus\"\n :state=\"validColor\"\n />\n </gl-form-group>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_color_picker.vue?vue&type=template&id=e1c9cc7a\"\nimport script from \"./sidebar_color_picker.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_color_picker.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n /*! \n * portal-vue © Thorsten Lünborg, 2019 \n * \n * Version: 2.1.7\n * \n * LICENCE: MIT \n * \n * https://github.com/linusborg/portal-vue\n * \n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Vue = _interopDefault(require('vue'));\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar inBrowser = typeof window !== 'undefined';\nfunction freeze(item) {\n if (Array.isArray(item) || _typeof(item) === 'object') {\n return Object.freeze(item);\n }\n\n return item;\n}\nfunction combinePassengers(transports) {\n var slotProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return transports.reduce(function (passengers, transport) {\n var temp = transport.passengers[0];\n var newPassengers = typeof temp === 'function' ? temp(slotProps) : transport.passengers;\n return passengers.concat(newPassengers);\n }, []);\n}\nfunction stableSort(array, compareFn) {\n return array.map(function (v, idx) {\n return [idx, v];\n }).sort(function (a, b) {\n return compareFn(a[1], b[1]) || a[0] - b[0];\n }).map(function (c) {\n return c[1];\n });\n}\nfunction pick(obj, keys) {\n return keys.reduce(function (acc, key) {\n if (obj.hasOwnProperty(key)) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\n\nvar transports = {};\nvar targets = {};\nvar sources = {};\nvar Wormhole = Vue.extend({\n data: function data() {\n return {\n transports: transports,\n targets: targets,\n sources: sources,\n trackInstances: inBrowser\n };\n },\n methods: {\n open: function open(transport) {\n if (!inBrowser) return;\n var to = transport.to,\n from = transport.from,\n passengers = transport.passengers,\n _transport$order = transport.order,\n order = _transport$order === void 0 ? Infinity : _transport$order;\n if (!to || !from || !passengers) return;\n var newTransport = {\n to: to,\n from: from,\n passengers: freeze(passengers),\n order: order\n };\n var keys = Object.keys(this.transports);\n\n if (keys.indexOf(to) === -1) {\n Vue.set(this.transports, to, []);\n }\n\n var currentIndex = this.$_getTransportIndex(newTransport); // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n\n var newTransports = this.transports[to].slice(0);\n\n if (currentIndex === -1) {\n newTransports.push(newTransport);\n } else {\n newTransports[currentIndex] = newTransport;\n }\n\n this.transports[to] = stableSort(newTransports, function (a, b) {\n return a.order - b.order;\n });\n },\n close: function close(transport) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var to = transport.to,\n from = transport.from;\n if (!to || !from && force === false) return;\n\n if (!this.transports[to]) {\n return;\n }\n\n if (force) {\n this.transports[to] = [];\n } else {\n var index = this.$_getTransportIndex(transport);\n\n if (index >= 0) {\n // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n var newTransports = this.transports[to].slice(0);\n newTransports.splice(index, 1);\n this.transports[to] = newTransports;\n }\n }\n },\n registerTarget: function registerTarget(target, vm, force) {\n if (!inBrowser) return;\n\n if (this.trackInstances && !force && this.targets[target]) {\n console.warn(\"[portal-vue]: Target \".concat(target, \" already exists\"));\n }\n\n this.$set(this.targets, target, Object.freeze([vm]));\n },\n unregisterTarget: function unregisterTarget(target) {\n this.$delete(this.targets, target);\n },\n registerSource: function registerSource(source, vm, force) {\n if (!inBrowser) return;\n\n if (this.trackInstances && !force && this.sources[source]) {\n console.warn(\"[portal-vue]: source \".concat(source, \" already exists\"));\n }\n\n this.$set(this.sources, source, Object.freeze([vm]));\n },\n unregisterSource: function unregisterSource(source) {\n this.$delete(this.sources, source);\n },\n hasTarget: function hasTarget(to) {\n return !!(this.targets[to] && this.targets[to][0]);\n },\n hasSource: function hasSource(to) {\n return !!(this.sources[to] && this.sources[to][0]);\n },\n hasContentFor: function hasContentFor(to) {\n return !!this.transports[to] && !!this.transports[to].length;\n },\n // Internal\n $_getTransportIndex: function $_getTransportIndex(_ref) {\n var to = _ref.to,\n from = _ref.from;\n\n for (var i in this.transports[to]) {\n if (this.transports[to][i].from === from) {\n return +i;\n }\n }\n\n return -1;\n }\n }\n});\nvar wormhole = new Wormhole(transports);\n\nvar _id = 1;\nvar Portal = Vue.extend({\n name: 'portal',\n props: {\n disabled: {\n type: Boolean\n },\n name: {\n type: String,\n default: function _default() {\n return String(_id++);\n }\n },\n order: {\n type: Number,\n default: 0\n },\n slim: {\n type: Boolean\n },\n slotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n tag: {\n type: String,\n default: 'DIV'\n },\n to: {\n type: String,\n default: function _default() {\n return String(Math.round(Math.random() * 10000000));\n }\n }\n },\n created: function created() {\n var _this = this;\n\n this.$nextTick(function () {\n wormhole.registerSource(_this.name, _this);\n });\n },\n mounted: function mounted() {\n if (!this.disabled) {\n this.sendUpdate();\n }\n },\n updated: function updated() {\n if (this.disabled) {\n this.clear();\n } else {\n this.sendUpdate();\n }\n },\n beforeDestroy: function beforeDestroy() {\n wormhole.unregisterSource(this.name);\n this.clear();\n },\n watch: {\n to: function to(newValue, oldValue) {\n oldValue && oldValue !== newValue && this.clear(oldValue);\n this.sendUpdate();\n }\n },\n methods: {\n clear: function clear(target) {\n var closer = {\n from: this.name,\n to: target || this.to\n };\n wormhole.close(closer);\n },\n normalizeSlots: function normalizeSlots() {\n return this.$scopedSlots.default ? [this.$scopedSlots.default] : this.$slots.default;\n },\n normalizeOwnChildren: function normalizeOwnChildren(children) {\n return typeof children === 'function' ? children(this.slotProps) : children;\n },\n sendUpdate: function sendUpdate() {\n var slotContent = this.normalizeSlots();\n\n if (slotContent) {\n var transport = {\n from: this.name,\n to: this.to,\n passengers: _toConsumableArray(slotContent),\n order: this.order\n };\n wormhole.open(transport);\n } else {\n this.clear();\n }\n }\n },\n render: function render(h) {\n var children = this.$slots.default || this.$scopedSlots.default || [];\n var Tag = this.tag;\n\n if (children && this.disabled) {\n return children.length <= 1 && this.slim ? this.normalizeOwnChildren(children)[0] : h(Tag, [this.normalizeOwnChildren(children)]);\n } else {\n return this.slim ? h() : h(Tag, {\n class: {\n 'v-portal': true\n },\n style: {\n display: 'none'\n },\n key: 'v-portal-placeholder'\n });\n }\n }\n});\n\nvar PortalTarget = Vue.extend({\n name: 'portalTarget',\n props: {\n multiple: {\n type: Boolean,\n default: false\n },\n name: {\n type: String,\n required: true\n },\n slim: {\n type: Boolean,\n default: false\n },\n slotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n tag: {\n type: String,\n default: 'div'\n },\n transition: {\n type: [String, Object, Function]\n }\n },\n data: function data() {\n return {\n transports: wormhole.transports,\n firstRender: true\n };\n },\n created: function created() {\n var _this = this;\n\n this.$nextTick(function () {\n wormhole.registerTarget(_this.name, _this);\n });\n },\n watch: {\n ownTransports: function ownTransports() {\n this.$emit('change', this.children().length > 0);\n },\n name: function name(newVal, oldVal) {\n /**\r\n * TODO\r\n * This should warn as well ...\r\n */\n wormhole.unregisterTarget(oldVal);\n wormhole.registerTarget(newVal, this);\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n if (this.transition) {\n this.$nextTick(function () {\n // only when we have a transition, because it causes a re-render\n _this2.firstRender = false;\n });\n }\n },\n beforeDestroy: function beforeDestroy() {\n wormhole.unregisterTarget(this.name);\n },\n computed: {\n ownTransports: function ownTransports() {\n var transports = this.transports[this.name] || [];\n\n if (this.multiple) {\n return transports;\n }\n\n return transports.length === 0 ? [] : [transports[transports.length - 1]];\n },\n passengers: function passengers() {\n return combinePassengers(this.ownTransports, this.slotProps);\n }\n },\n methods: {\n // can't be a computed prop because it has to \"react\" to $slot changes.\n children: function children() {\n return this.passengers.length !== 0 ? this.passengers : this.$scopedSlots.default ? this.$scopedSlots.default(this.slotProps) : this.$slots.default || [];\n },\n // can't be a computed prop because it has to \"react\" to this.children().\n noWrapper: function noWrapper() {\n var noWrapper = this.slim && !this.transition;\n\n if (noWrapper && this.children().length > 1) {\n console.warn('[portal-vue]: PortalTarget with `slim` option received more than one child element.');\n }\n\n return noWrapper;\n }\n },\n render: function render(h) {\n var noWrapper = this.noWrapper();\n var children = this.children();\n var Tag = this.transition || this.tag;\n return noWrapper ? children[0] : this.slim && !Tag ? h() : h(Tag, {\n props: {\n // if we have a transition component, pass the tag if it exists\n tag: this.transition && this.tag ? this.tag : undefined\n },\n class: {\n 'vue-portal-target': true\n }\n }, children);\n }\n});\n\nvar _id$1 = 0;\nvar portalProps = ['disabled', 'name', 'order', 'slim', 'slotProps', 'tag', 'to'];\nvar targetProps = ['multiple', 'transition'];\nvar MountingPortal = Vue.extend({\n name: 'MountingPortal',\n inheritAttrs: false,\n props: {\n append: {\n type: [Boolean, String]\n },\n bail: {\n type: Boolean\n },\n mountTo: {\n type: String,\n required: true\n },\n // Portal\n disabled: {\n type: Boolean\n },\n // name for the portal\n name: {\n type: String,\n default: function _default() {\n return 'mounted_' + String(_id$1++);\n }\n },\n order: {\n type: Number,\n default: 0\n },\n slim: {\n type: Boolean\n },\n slotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n tag: {\n type: String,\n default: 'DIV'\n },\n // name for the target\n to: {\n type: String,\n default: function _default() {\n return String(Math.round(Math.random() * 10000000));\n }\n },\n // Target\n multiple: {\n type: Boolean,\n default: false\n },\n targetSlim: {\n type: Boolean\n },\n targetSlotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n targetTag: {\n type: String,\n default: 'div'\n },\n transition: {\n type: [String, Object, Function]\n }\n },\n created: function created() {\n if (typeof document === 'undefined') return;\n var el = document.querySelector(this.mountTo);\n\n if (!el) {\n console.error(\"[portal-vue]: Mount Point '\".concat(this.mountTo, \"' not found in document\"));\n return;\n }\n\n var props = this.$props; // Target already exists\n\n if (wormhole.targets[props.name]) {\n if (props.bail) {\n console.warn(\"[portal-vue]: Target \".concat(props.name, \" is already mounted.\\n Aborting because 'bail: true' is set\"));\n } else {\n this.portalTarget = wormhole.targets[props.name];\n }\n\n return;\n }\n\n var append = props.append;\n\n if (append) {\n var type = typeof append === 'string' ? append : 'DIV';\n var mountEl = document.createElement(type);\n el.appendChild(mountEl);\n el = mountEl;\n } // get props for target from $props\n // we have to rename a few of them\n\n\n var _props = pick(this.$props, targetProps);\n\n _props.slim = this.targetSlim;\n _props.tag = this.targetTag;\n _props.slotProps = this.targetSlotProps;\n _props.name = this.to;\n this.portalTarget = new PortalTarget({\n el: el,\n parent: this.$parent || this,\n propsData: _props\n });\n },\n beforeDestroy: function beforeDestroy() {\n var target = this.portalTarget;\n\n if (this.append) {\n var el = target.$el;\n el.parentNode.removeChild(el);\n }\n\n target.$destroy();\n },\n render: function render(h) {\n if (!this.portalTarget) {\n console.warn(\"[portal-vue] Target wasn't mounted\");\n return h();\n } // if there's no \"manual\" scoped slot, so we create a <Portal> ourselves\n\n\n if (!this.$scopedSlots.manual) {\n var props = pick(this.$props, portalProps);\n return h(Portal, {\n props: props,\n attrs: this.$attrs,\n on: this.$listeners,\n scopedSlots: this.$scopedSlots\n }, this.$slots.default);\n } // else, we render the scoped slot\n\n\n var content = this.$scopedSlots.manual({\n to: this.to\n }); // if user used <template> for the scoped slot\n // content will be an array\n\n if (Array.isArray(content)) {\n content = content[0];\n }\n\n if (!content) return h();\n return content;\n }\n});\n\nfunction install(Vue$$1) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Vue$$1.component(options.portalName || 'Portal', Portal);\n Vue$$1.component(options.portalTargetName || 'PortalTarget', PortalTarget);\n Vue$$1.component(options.MountingPortalName || 'MountingPortal', MountingPortal);\n}\n\nvar index = {\n install: install\n};\n\nexports.default = index;\nexports.Portal = Portal;\nexports.PortalTarget = PortalTarget;\nexports.MountingPortal = MountingPortal;\nexports.Wormhole = wormhole;\n//# sourceMappingURL=portal-vue.common.js.map\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateTimelineEvent\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"TimelineEventUpdateInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelineEventUpdate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelineEvent\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"note\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"noteHtml\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"action\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"occurredAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelineEventTags\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":317}};\n doc.loc.source = {\"body\":\"mutation UpdateTimelineEvent($input: TimelineEventUpdateInput!) {\\n timelineEventUpdate(input: $input) {\\n timelineEvent {\\n id\\n note\\n noteHtml\\n action\\n occurredAt\\n createdAt\\n timelineEventTags {\\n nodes {\\n id\\n name\\n }\\n }\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"UpdateTimelineEvent\"] = oneQuery(doc, \"UpdateTimelineEvent\");\n \n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","class Vector {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n\n eq(x1, y1) {\n return this.x === x1 && this.y === y1;\n }\n\n neq(x1, y1) {\n return this.x !== x1 || this.y !== y1;\n }\n\n gte(x1, y1) {\n return this.x >= x1 && this.y >= y1;\n }\n\n gt(x1, y1) {\n return this.x > x1 && this.y > y1;\n }\n\n lte(x1, y1) {\n return this.x <= x1 && this.y <= y1;\n }\n\n lt(x1, y1) {\n return this.x < x1 && this.y < y1;\n }\n\n map(fn) {\n return new Vector(fn(this.x), fn(this.y));\n }\n\n mul(scalar) {\n return new Vector(this.x * scalar, this.y * scalar);\n }\n\n div(scalar) {\n return new Vector(this.x / scalar, this.y / scalar);\n }\n\n add(x1, y1) {\n return new Vector(this.x + x1, this.y + y1);\n }\n\n sub(x1, y1) {\n return new Vector(this.x - x1, this.y - y1);\n }\n\n round() {\n return new Vector(Math.round(this.x), Math.round(this.y));\n }\n\n floor() {\n return new Vector(Math.floor(this.x), Math.floor(this.y));\n }\n\n ceil() {\n return new Vector(Math.ceil(this.x), Math.ceil(this.y));\n }\n\n toSize() {\n return { width: this.x, height: this.y };\n }\n}\n\nconst vector = (x, y) => new Vector(x, y);\n\nexport default vector;\n","import { domToBlob } from 'modern-screenshot';\nimport vector from './vector';\nimport { readFileAsDataURL } from './file_utility';\n\n// 1 meter = 39.3701 inches\nconst METER_TO_INCHES = 39.3701;\nconst UNIT_METERS = 1;\nconst PNG_DEFAULT_PPI = 72;\n\nconst stringToUInt32 = (str) => {\n const buffer = str.split('').map((char) => char.charCodeAt(0));\n // eslint-disable-next-line no-bitwise\n return (buffer[0] << 24) + (buffer[1] << 16) + (buffer[2] << 8) + buffer[3];\n};\n\nconst getPixelsPerInch = (pngImage) => {\n // pHYs is a chunk that specifies the intended pixel size or aspect ratio of the image\n // See https://www.w3.org/TR/PNG-Chunks.html#C.pHYs\n const physPosition = pngImage.indexOf('pHYs');\n if (physPosition === -1) return null;\n\n // p H Y s x x x x y y y y u\n // - - - - 0 1 2 3 4 5 6 7 8\n // ^ width ^ height ^ unit\n const phys = pngImage.substring(physPosition + 4, physPosition + 4 + 9);\n if (phys.charCodeAt(8) !== UNIT_METERS) return null;\n\n return vector(phys.substring(0, 4), phys.substring(4, 8))\n .map(stringToUInt32)\n .div(METER_TO_INCHES)\n .round();\n};\n\nconst fileToPngImage = async (file) => {\n if (file.type !== 'image/png') return null;\n\n const dataUrl = await readFileAsDataURL(file);\n return atob(dataUrl.split(',')[1]).split('IDAT')[0];\n};\n\nexport const getRetinaDimensions = async (pngFile) => {\n try {\n const pngImage = await fileToPngImage(pngFile);\n const pixelsPerInch = getPixelsPerInch(pngImage);\n if (pixelsPerInch.lte(PNG_DEFAULT_PPI, PNG_DEFAULT_PPI)) return null;\n\n // IHDR is the first chunk in a PNG file\n // It contains the image dimensions\n // See https://www.w3.org/TR/PNG-Chunks.html#C.IHDR\n const ihdrPosition = pngImage.substring(0, 30).indexOf('IHDR');\n if (ihdrPosition === -1) return null;\n\n // I H D R x x x x y y y y\n // - - - - 0 1 2 3 4 5 6 7\n // ^ width ^ height\n const ihdr = pngImage.substring(ihdrPosition + 4, ihdrPosition + 4 + 8);\n\n return vector(ihdr.substring(0, 4), ihdr.substring(4, 8))\n .map(stringToUInt32)\n .mul(PNG_DEFAULT_PPI)\n .div(Math.max(pixelsPerInch.x, pixelsPerInch.y))\n .ceil()\n .toSize();\n } catch (e) {\n return null;\n }\n};\n\nexport function domElementToBlob(domElement) {\n return domToBlob(domElement);\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"issueSetSubscription\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueSetSubscriptionInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"updateIssuableSubscription\"},\"name\":{\"kind\":\"Name\",\"value\":\"issueSetSubscription\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribed\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":197}};\n doc.loc.source = {\"body\":\"mutation issueSetSubscription($input: IssueSetSubscriptionInput!) {\\n updateIssuableSubscription: issueSetSubscription(input: $input) {\\n issue {\\n id\\n subscribed\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueSetSubscription\"] = oneQuery(doc, \"issueSetSubscription\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"epicStartDate\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDateIsFixed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDateFixed\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDateFromMilestones\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":240}};\n doc.loc.source = {\"body\":\"query epicStartDate($fullPath: ID!, $iid: ID) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n issuable: epic(iid: $iid) {\\n id\\n startDate\\n startDateIsFixed\\n startDateFixed\\n startDateFromMilestones\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"epicStartDate\"] = oneQuery(doc, \"epicStartDate\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"value issuable-show-labels js-value\",class:{\n 'has-labels': _vm.selectedLabels.length,\n },attrs:{\"data-testid\":\"value-wrapper\"}},[_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.labelsList},on:{\"click\":_vm.handleCollapsedClick}},[_c('gl-icon',{attrs:{\"name\":\"labels\"}}),_vm._v(\" \"),_c('span',{staticClass:\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\"},[_vm._v(_vm._s(_vm.selectedLabels.length))])],1),_vm._v(\" \"),(!_vm.selectedLabels.length)?_c('span',{staticClass:\"hide-collapsed gl-text-subtle\",attrs:{\"data-testid\":\"empty-placeholder\"}},[_vm._t(\"default\")],2):_vm._l((_vm.sortedSelectedLabels),function(label){return _c('gl-label',{key:label.id,staticClass:\"hide-collapsed\",attrs:{\"data-testid\":\"selected-label-content\",\"data-qa-label-name\":label.title,\"title\":label.title,\"description\":label.description,\"background-color\":label.color,\"target\":_vm.labelFilterUrl(label),\"scoped\":_vm.scopedLabel(label),\"show-close-button\":_vm.showCloseButton(label),\"disabled\":_vm.disableLabels,\"tooltip-placement\":\"top\"},on:{\"close\":function($event){return _vm.removeLabel(label.id)}}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_value.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_value.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlLabel, GlTooltipDirective } from '@gitlab/ui';\nimport { sortBy } from 'lodash';\nimport { isScopedLabel } from '~/lib/utils/common_utils';\nimport { s__, sprintf } from '~/locale';\n\nexport default {\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlIcon,\n GlLabel,\n },\n inject: ['allowScopedLabels'],\n props: {\n disableLabels: {\n type: Boolean,\n required: false,\n default: false,\n },\n selectedLabels: {\n type: Array,\n required: true,\n },\n allowLabelRemove: {\n type: Boolean,\n required: true,\n },\n supportsLockOnMerge: {\n type: Boolean,\n required: false,\n default: false,\n },\n labelsFilterBasePath: {\n type: String,\n required: true,\n },\n labelsFilterParam: {\n type: String,\n required: true,\n },\n },\n computed: {\n sortedSelectedLabels() {\n return sortBy(this.selectedLabels, (label) => (isScopedLabel(label) ? 0 : 1));\n },\n labelsList() {\n const labelsString = this.selectedLabels.length\n ? this.selectedLabels\n .slice(0, 5)\n .map((label) => label.title)\n .join(', ')\n : s__('LabelSelect|Labels');\n\n if (this.selectedLabels.length > 5) {\n return sprintf(s__('LabelSelect|%{labelsString}, and %{remainingLabelCount} more'), {\n labelsString,\n remainingLabelCount: this.selectedLabels.length - 5,\n });\n }\n\n return labelsString;\n },\n },\n methods: {\n labelFilterUrl(label) {\n return `${this.labelsFilterBasePath}?${this.labelsFilterParam}[]=${encodeURIComponent(\n label.title,\n )}`;\n },\n scopedLabel(label) {\n return this.allowScopedLabels && isScopedLabel(label);\n },\n isLabelLocked(label) {\n return label.lockOnMerge && this.supportsLockOnMerge;\n },\n showCloseButton(label) {\n return this.allowLabelRemove && !this.isLabelLocked(label);\n },\n removeLabel(labelId) {\n this.$emit('onLabelRemove', labelId);\n },\n handleCollapsedClick() {\n this.$emit('onCollapsedValueClick');\n },\n },\n};\n</script>\n\n<template>\n <div\n :class=\"{\n 'has-labels': selectedLabels.length,\n }\"\n class=\"value issuable-show-labels js-value\"\n data-testid=\"value-wrapper\"\n >\n <div\n v-gl-tooltip.left.viewport\n :title=\"labelsList\"\n class=\"sidebar-collapsed-icon\"\n @click=\"handleCollapsedClick\"\n >\n <gl-icon name=\"labels\" />\n <span class=\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\">{{\n selectedLabels.length\n }}</span>\n </div>\n <span\n v-if=\"!selectedLabels.length\"\n class=\"hide-collapsed gl-text-subtle\"\n data-testid=\"empty-placeholder\"\n >\n <slot></slot>\n </span>\n <template v-else>\n <gl-label\n v-for=\"label in sortedSelectedLabels\"\n :key=\"label.id\"\n class=\"hide-collapsed\"\n data-testid=\"selected-label-content\"\n :data-qa-label-name=\"label.title\"\n :title=\"label.title\"\n :description=\"label.description\"\n :background-color=\"label.color\"\n :target=\"labelFilterUrl(label)\"\n :scoped=\"scopedLabel(label)\"\n :show-close-button=\"showCloseButton(label)\"\n :disabled=\"disableLabels\"\n tooltip-placement=\"top\"\n @close=\"removeLabel(label.id)\"\n />\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_value.vue?vue&type=template&id=029da1af\"\nimport script from \"./dropdown_value.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_value.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export const INLINE_DIFF_VIEW_TYPE = 'inline';\nexport const PARALLEL_DIFF_VIEW_TYPE = 'parallel';\nexport const MATCH_LINE_TYPE = 'match';\nexport const EXPANDED_LINE_TYPE = 'expanded';\nexport const OLD_NO_NEW_LINE_TYPE = 'old-nonewline';\nexport const NEW_NO_NEW_LINE_TYPE = 'new-nonewline';\nexport const CONTEXT_LINE_TYPE = 'context';\nexport const EMPTY_CELL_TYPE = 'empty-cell';\nexport const DIFF_NOTE_TYPE = 'DiffNote';\nexport const LEGACY_DIFF_NOTE_TYPE = 'LegacyDiffNote';\nexport const NEW_LINE_TYPE = 'new';\nexport const OLD_LINE_TYPE = 'old';\nexport const TEXT_DIFF_POSITION_TYPE = 'text';\nexport const IMAGE_DIFF_POSITION_TYPE = 'image';\nexport const FILE_DIFF_POSITION_TYPE = 'file';\n\nexport const LINE_POSITION_LEFT = 'left';\nexport const LINE_POSITION_RIGHT = 'right';\n\nexport const DIFF_VIEW_COOKIE_NAME = 'diff_view';\nexport const DIFF_WHITESPACE_COOKIE_NAME = 'diff_whitespace';\nexport const LINE_HOVER_CLASS_NAME = 'is-over';\n\nexport const UNFOLD_COUNT = 20;\nexport const COUNT_OF_AVATARS_IN_GUTTER = 3;\nexport const LENGTH_OF_AVATAR_TOOLTIP = 17;\n\nexport const DIFF_FILE_SYMLINK_MODE = '120000';\nexport const DIFF_FILE_DELETED_MODE = '0';\n\nexport const MR_TREE_SHOW_KEY = 'mr_tree_show';\n\nexport const TREE_TYPE = 'tree';\nexport const TREE_LIST_STORAGE_KEY = 'mr_diff_tree_list';\nexport const TREE_LIST_WIDTH_STORAGE_KEY = 'mr_tree_list_width';\n\nexport const INITIAL_TREE_WIDTH = 320;\nexport const MIN_TREE_WIDTH = 240;\nexport const TREE_HIDE_STATS_WIDTH = 260;\n\nexport const OLD_LINE_KEY = 'old_line';\nexport const NEW_LINE_KEY = 'new_line';\nexport const TYPE_KEY = 'type';\n\nexport const MAX_RENDERING_DIFF_LINES = 500;\nexport const MAX_RENDERING_BULK_ROWS = 30;\nexport const MIN_RENDERING_MS = 2;\nexport const START_RENDERING_INDEX = 200;\nexport const INLINE_DIFF_LINES_KEY = 'highlighted_diff_lines';\n\nexport const DIFF_COMPARE_BASE_VERSION_INDEX = -1;\nexport const DIFF_COMPARE_HEAD_VERSION_INDEX = -2;\n\n// Diff View Alerts\nexport const ALERT_OVERFLOW_HIDDEN = 'overflow';\nexport const ALERT_MERGE_CONFLICT = 'merge-conflict';\nexport const ALERT_COLLAPSED_FILES = 'collapsed';\n\n// Diff File collapse types\nexport const DIFF_FILE_AUTOMATIC_COLLAPSE = 'automatic';\nexport const DIFF_FILE_MANUAL_COLLAPSE = 'manual';\n\n// State machine states\nexport const STATE_IDLING = 'idle';\nexport const STATE_LOADING = 'loading';\nexport const STATE_ERRORED = 'errored';\n\n// State machine transitions\nexport const TRANSITION_LOAD_START = 'LOAD_START';\nexport const TRANSITION_LOAD_ERROR = 'LOAD_ERROR';\nexport const TRANSITION_LOAD_SUCCEED = 'LOAD_SUCCEED';\nexport const TRANSITION_ACKNOWLEDGE_ERROR = 'ACKNOWLEDGE_ERROR';\n\nexport const RENAMED_DIFF_TRANSITIONS = {\n [`${STATE_IDLING}:${TRANSITION_LOAD_START}`]: STATE_LOADING,\n [`${STATE_LOADING}:${TRANSITION_LOAD_ERROR}`]: STATE_ERRORED,\n [`${STATE_LOADING}:${TRANSITION_LOAD_SUCCEED}`]: STATE_IDLING,\n [`${STATE_ERRORED}:${TRANSITION_LOAD_START}`]: STATE_LOADING,\n [`${STATE_ERRORED}:${TRANSITION_ACKNOWLEDGE_ERROR}`]: STATE_IDLING,\n};\n\n// MR Diffs known events\nexport const EVT_MR_DIFF_GENERATED = 'mr:diffGenerated';\nexport const EVT_MR_PREPARED = 'mr:asyncPreparationFinished';\nexport const EVT_EXPAND_ALL_FILES = 'mr:diffs:expandAllFiles';\nexport const EVT_DISCUSSIONS_ASSIGNED = 'mr:diffs:discussionsAssigned';\nexport const EVT_PERF_MARK_FILE_TREE_START = 'mr:diffs:perf:fileTreeStart';\nexport const EVT_PERF_MARK_FILE_TREE_END = 'mr:diffs:perf:fileTreeEnd';\nexport const EVT_PERF_MARK_DIFF_FILES_START = 'mr:diffs:perf:filesStart';\nexport const EVT_PERF_MARK_FIRST_DIFF_FILE_SHOWN = 'mr:diffs:perf:firstFileShown';\nexport const EVT_PERF_MARK_DIFF_FILES_END = 'mr:diffs:perf:filesEnd';\n\nexport const CONFLICT_OUR = 'conflict_our';\nexport const CONFLICT_THEIR = 'conflict_their';\nexport const CONFLICT_MARKER = 'conflict_marker';\nexport const CONFLICT_MARKER_OUR = 'conflict_marker_our';\nexport const CONFLICT_MARKER_THEIR = 'conflict_marker_their';\n\n// Tracking events\nexport const DEFER_DURATION = 750;\nexport const TRACKING_CAP_KEY = 'code_review_events_dispatched';\nexport const TRACKING_CAP_LENGTH = 86400000; // 24 hours\n\nexport const TRACKING_CLICK_DIFF_VIEW_SETTING = 'i_code_review_click_diff_view_setting';\nexport const TRACKING_DIFF_VIEW_INLINE = 'i_code_review_diff_view_inline';\nexport const TRACKING_DIFF_VIEW_PARALLEL = 'i_code_review_diff_view_parallel';\n\nexport const TRACKING_CLICK_FILE_BROWSER_SETTING = 'i_code_review_click_file_browser_setting';\nexport const TRACKING_FILE_BROWSER_TREE = 'i_code_review_file_browser_tree_view';\nexport const TRACKING_FILE_BROWSER_LIST = 'i_code_review_file_browser_list_view';\n\nexport const TRACKING_CLICK_WHITESPACE_SETTING = 'i_code_review_click_whitespace_setting';\nexport const TRACKING_WHITESPACE_SHOW = 'i_code_review_diff_show_whitespace';\nexport const TRACKING_WHITESPACE_HIDE = 'i_code_review_diff_hide_whitespace';\n\nexport const TRACKING_CLICK_SINGLE_FILE_SETTING = 'i_code_review_click_single_file_mode_setting';\nexport const TRACKING_SINGLE_FILE_MODE = 'i_code_review_diff_single_file';\nexport const TRACKING_MULTIPLE_FILES_MODE = 'i_code_review_diff_multiple_files';\n\n// UI\nexport const ZERO_CHANGES_ALT_DISPLAY = '-';\n\n// SAST Findings\nexport const SAST_FINDING_DISMISSED = 'dismissed';\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueAssignees\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"author\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserWithType\"},\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserAvailability\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignees\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserWithType\"},\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserAvailability\"},\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":484}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user_with_type.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/user_availability.fragment.graphql\\\"\\n\\nquery issueAssignees($fullPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n author {\\n ...UserWithType\\n ...UserAvailability\\n }\\n assignees {\\n nodes {\\n ...UserWithType\\n ...UserAvailability\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user_with_type.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user_availability.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueAssignees\"] = oneQuery(doc, \"issueAssignees\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"alertSetAssignees\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetAssignees\"},\"name\":{\"kind\":\"Name\",\"value\":\"alertSetAssignees\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"alert\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignees\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserAvailability\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"notes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"AlertNote\"},\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":661}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/alert_note.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/user_availability.fragment.graphql\\\"\\n\\nmutation alertSetAssignees($fullPath: ID!, $assigneeUsernames: [String!]!, $iid: String!) {\\n issuableSetAssignees: alertSetAssignees(\\n input: { iid: $iid, assigneeUsernames: $assigneeUsernames, projectPath: $fullPath }\\n ) {\\n errors\\n issuable: alert {\\n id\\n iid\\n assignees {\\n nodes {\\n ...User\\n ...UserAvailability\\n }\\n }\\n notes {\\n nodes {\\n ...AlertNote\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/alert_note.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user_availability.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"alertSetAssignees\"] = oneQuery(doc, \"alertSetAssignees\");\n \n","import { extend, mergeData } from '../../vue';\nimport { NAME_NAV } from '../../constants/components';\nimport { PROP_TYPE_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\n\n// --- Helper methods ---\n\nconst computeJustifyContent = value => {\n value = value === 'left' ? 'start' : value === 'right' ? 'end' : value;\n return `justify-content-${value}`;\n};\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n align: makeProp(PROP_TYPE_STRING),\n // Set to `true` if placing in a card header\n cardHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n fill: makeProp(PROP_TYPE_BOOLEAN, false),\n justified: makeProp(PROP_TYPE_BOOLEAN, false),\n pills: makeProp(PROP_TYPE_BOOLEAN, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tabs: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'ul')\n}, NAME_NAV);\n\n// --- Main component ---\n\n// @vue/component\nconst BNav = /*#__PURE__*/extend({\n name: NAME_NAV,\n functional: true,\n props,\n render(h, _ref) {\n let {\n props,\n data,\n children\n } = _ref;\n const {\n tabs,\n pills,\n align,\n cardHeader\n } = props;\n return h(props.tag, mergeData(data, {\n staticClass: 'nav',\n class: {\n 'nav-tabs': tabs,\n 'nav-pills': pills && !tabs,\n 'card-header-tabs': cardHeader && tabs,\n 'card-header-pills': cardHeader && pills && !tabs,\n 'nav-fill': props.fill,\n 'nav-justified': props.justified,\n [computeJustifyContent(align)]: align,\n small: props.small\n }\n }), children);\n }\n});\n\nexport { BNav, props };\n","import { extend, COMPONENT_UID_KEY, REF_FOR_KEY } from '../../vue';\nimport { NAME_TAB_BUTTON_HELPER, NAME_TABS } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_CLICK, EVENT_NAME_FIRST, EVENT_NAME_PREV, EVENT_NAME_LAST, EVENT_NAME_NEXT, EVENT_NAME_CHANGED, EVENT_NAME_ACTIVATE_TAB } from '../../constants/events';\nimport { CODE_SPACE, CODE_UP, CODE_LEFT, CODE_HOME, CODE_DOWN, CODE_RIGHT, CODE_END } from '../../constants/key-codes';\nimport { PROP_TYPE_NUMBER, PROP_TYPE_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_ARRAY_OBJECT_STRING } from '../../constants/props';\nimport { SLOT_NAME_TITLE, SLOT_NAME_TABS_START, SLOT_NAME_TABS_END, SLOT_NAME_EMPTY } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, selectAll, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isEvent } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { stableSort } from '../../utils/stable-sort';\nimport { props as props$2, idMixin } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink } from '../link/link';\nimport { props as props$1, BNav } from '../nav/nav';\n\n// --- Constants ---\n\nconst {\n mixin: modelMixin,\n props: modelProps,\n prop: MODEL_PROP_NAME,\n event: MODEL_EVENT_NAME\n} = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER\n});\n\n// --- Helper methods ---\n\n// Filter function to filter out disabled tabs\nconst notDisabled = tab => !tab.disabled;\n\n// --- Helper components ---\n\n// @vue/component\nconst BVTabButton = /*#__PURE__*/extend({\n name: NAME_TAB_BUTTON_HELPER,\n inject: {\n getBvTabs: {\n default: /* istanbul ignore next */() => () => ({})\n }\n },\n props: {\n controls: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n posInSet: makeProp(PROP_TYPE_NUMBER),\n setSize: makeProp(PROP_TYPE_NUMBER),\n // Reference to the child <b-tab> instance\n tab: makeProp(),\n tabIndex: makeProp(PROP_TYPE_NUMBER)\n },\n computed: {\n bvTabs() {\n return this.getBvTabs();\n }\n },\n methods: {\n focus() {\n attemptFocus(this.$refs.link);\n },\n handleEvent(event) {\n /* istanbul ignore next */\n if (this.tab.disabled) {\n return;\n }\n const {\n type,\n keyCode,\n shiftKey\n } = event;\n if (type === 'click') {\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && keyCode === CODE_SPACE) {\n // For ARIA tabs the SPACE key will also trigger a click/select\n // Even with keyboard navigation disabled, SPACE should \"click\" the button\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/4323\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && !this.noKeyNav) {\n // For keyboard navigation\n if ([CODE_UP, CODE_LEFT, CODE_HOME].indexOf(keyCode) !== -1) {\n stopEvent(event);\n if (shiftKey || keyCode === CODE_HOME) {\n this.$emit(EVENT_NAME_FIRST, event);\n } else {\n this.$emit(EVENT_NAME_PREV, event);\n }\n } else if ([CODE_DOWN, CODE_RIGHT, CODE_END].indexOf(keyCode) !== -1) {\n stopEvent(event);\n if (shiftKey || keyCode === CODE_END) {\n this.$emit(EVENT_NAME_LAST, event);\n } else {\n this.$emit(EVENT_NAME_NEXT, event);\n }\n }\n }\n }\n },\n render(h) {\n const {\n id,\n tabIndex,\n setSize,\n posInSet,\n controls,\n handleEvent\n } = this;\n const {\n title,\n localActive,\n disabled,\n titleItemClass,\n titleLinkClass,\n titleLinkAttributes\n } = this.tab;\n const $link = h(BLink, {\n staticClass: 'nav-link',\n class: [{\n active: localActive && !disabled,\n disabled\n }, titleLinkClass,\n // Apply <b-tabs> `activeNavItemClass` styles when the tab is active\n localActive ? this.bvTabs.activeNavItemClass : null],\n props: {\n disabled\n },\n attrs: {\n ...titleLinkAttributes,\n id,\n role: 'tab',\n // Roving tab index when keynav enabled\n tabindex: tabIndex,\n 'aria-selected': localActive && !disabled ? 'true' : 'false',\n 'aria-setsize': setSize,\n 'aria-posinset': posInSet,\n 'aria-controls': controls\n },\n on: {\n click: handleEvent,\n keydown: handleEvent\n },\n ref: 'link'\n }, [this.tab.normalizeSlot(SLOT_NAME_TITLE) || title]);\n return h('li', {\n staticClass: 'nav-item',\n class: [titleItemClass],\n attrs: {\n role: 'presentation'\n }\n }, [$link]);\n }\n});\n\n// --- Props ---\n\nconst navProps = omit(props$1, ['tabs', 'cardHeader']);\nconst props = makePropsConfigurable(sortKeys({\n ...props$2,\n ...modelProps,\n ...navProps,\n // Only applied to the currently active `<b-nav-item>`\n activeNavItemClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Only applied to the currently active `<b-tab>`\n // This prop is sniffed by the `<b-tab>` child\n activeTabClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n contentClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Synonym for 'bottom'\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n // This prop is sniffed by the `<b-tab>` child\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n navClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n navWrapperClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n noNavStyle: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}), NAME_TABS);\n\n// --- Main component ---\n\n// @vue/component\nconst BTabs = /*#__PURE__*/extend({\n name: NAME_TABS,\n mixins: [idMixin, modelMixin, normalizeSlotMixin],\n provide() {\n return {\n getBvTabs: () => this\n };\n },\n props,\n data() {\n return {\n // Index of current tab\n currentTab: toInteger(this[MODEL_PROP_NAME], -1),\n // Array of direct child `<b-tab>` instances, in DOM order\n tabs: [],\n // Array of child instances registered (for triggering reactive updates)\n registeredTabs: []\n };\n },\n computed: {\n fade() {\n // This computed prop is sniffed by the tab child\n return !this.noFade;\n }\n },\n watch: {\n [MODEL_PROP_NAME](newValue, oldValue) {\n if (newValue !== oldValue) {\n newValue = toInteger(newValue, -1);\n oldValue = toInteger(oldValue, 0);\n const $tab = this.tabs[newValue];\n if ($tab && !$tab.disabled) {\n this.activateTab($tab);\n } else {\n // Try next or prev tabs\n if (newValue < oldValue) {\n this.previousTab();\n } else {\n this.nextTab();\n }\n }\n }\n },\n currentTab(newValue) {\n let index = -1;\n\n // Ensure only one tab is active at most\n this.tabs.forEach(($tab, i) => {\n if (i === newValue && !$tab.disabled) {\n $tab.localActive = true;\n index = i;\n } else {\n $tab.localActive = false;\n }\n });\n\n // Update the v-model\n this.$emit(MODEL_EVENT_NAME, index);\n },\n // If tabs added, removed, or re-ordered, we emit a `changed` event\n tabs(newValue, oldValue) {\n // We use `_uid` instead of `safeId()`, as the later is changed in a `$nextTick()`\n // if no explicit ID is provided, causing duplicate emits\n if (!looseEqual(newValue.map($tab => $tab[COMPONENT_UID_KEY]), oldValue.map($tab => $tab[COMPONENT_UID_KEY]))) {\n // In a `$nextTick()` to ensure `currentTab` has been set first\n this.$nextTick(() => {\n // We emit shallow copies of the new and old arrays of tabs,\n // to prevent users from potentially mutating the internal arrays\n this.$emit(EVENT_NAME_CHANGED, newValue.slice(), oldValue.slice());\n });\n }\n },\n // Each `<b-tab>` will register/unregister itself\n // We use this to detect when tabs are added/removed\n // to trigger the update of the tabs\n registeredTabs() {\n this.updateTabs();\n }\n },\n created() {\n // Create private non-reactive props\n this.$_observer = null;\n },\n mounted() {\n this.setObserver(true);\n },\n beforeDestroy() {\n this.setObserver(false);\n // Ensure no references to child instances exist\n this.tabs = [];\n },\n methods: {\n registerTab($tab) {\n if (!arrayIncludes(this.registeredTabs, $tab)) {\n this.registeredTabs.push($tab);\n }\n },\n unregisterTab($tab) {\n this.registeredTabs = this.registeredTabs.slice().filter($t => $t !== $tab);\n },\n // DOM observer is needed to detect changes in order of tabs\n setObserver() {\n let on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n if (on) {\n /* istanbul ignore next: difficult to test mutation observer in JSDOM */\n const handler = () => {\n this.$nextTick(() => {\n requestAF(() => {\n this.updateTabs();\n });\n });\n };\n\n // Watch for changes to `<b-tab>` sub components\n this.$_observer = observeDom(this.$refs.content, handler, {\n childList: true,\n subtree: false,\n attributes: true,\n attributeFilter: ['id']\n });\n }\n },\n getTabs() {\n const $tabs = this.registeredTabs;\n // Dropped intentionally\n // .filter(\n // $tab => $tab.$children.filter($t => $t && $t._isTab).length === 0\n // )\n\n // DOM Order of Tabs\n let order = [];\n /* istanbul ignore next: too difficult to test */\n if (IS_BROWSER && $tabs.length > 0) {\n // We rely on the DOM when mounted to get the \"true\" order of the `<b-tab>` children\n // `querySelectorAll()` always returns elements in document order, regardless of\n // order specified in the selector\n const selector = $tabs.map($tab => `#${$tab.safeId()}`).join(', ');\n order = selectAll(selector, this.$el).map($el => $el.id).filter(identity);\n }\n\n // Stable sort keeps the original order if not found in the `order` array,\n // which will be an empty array before mount\n return stableSort($tabs, (a, b) => order.indexOf(a.safeId()) - order.indexOf(b.safeId()));\n },\n updateTabs() {\n const $tabs = this.getTabs();\n\n // Find last active non-disabled tab in current tabs\n // We trust tab state over `currentTab`, in case tabs were added/removed/re-ordered\n let tabIndex = $tabs.indexOf($tabs.slice().reverse().find($tab => $tab.localActive && !$tab.disabled));\n\n // Else try setting to `currentTab`\n if (tabIndex < 0) {\n const {\n currentTab\n } = this;\n if (currentTab >= $tabs.length) {\n // Handle last tab being removed, so find the last non-disabled tab\n tabIndex = $tabs.indexOf($tabs.slice().reverse().find(notDisabled));\n } else if ($tabs[currentTab] && !$tabs[currentTab].disabled) {\n // Current tab is not disabled\n tabIndex = currentTab;\n }\n }\n\n // Else find first non-disabled tab in current tabs\n if (tabIndex < 0) {\n tabIndex = $tabs.indexOf($tabs.find(notDisabled));\n }\n\n // Ensure only one tab is active at a time\n $tabs.forEach(($tab, index) => {\n $tab.localActive = index === tabIndex;\n });\n this.tabs = $tabs;\n this.currentTab = tabIndex;\n },\n // Find a button that controls a tab, given the tab reference\n // Returns the button vm instance\n getButtonForTab($tab) {\n return (this.$refs.buttons || []).find($btn => $btn.tab === $tab);\n },\n // Force a button to re-render its content, given a `<b-tab>` instance\n // Called by `<b-tab>` on `update()`\n updateButton($tab) {\n const $button = this.getButtonForTab($tab);\n if ($button && $button.$forceUpdate) {\n $button.$forceUpdate();\n }\n },\n // Activate a tab given a `<b-tab>` instance\n // Also accessed by `<b-tab>`\n activateTab($tab) {\n const {\n currentTab,\n tabs: $tabs\n } = this;\n let result = false;\n if ($tab) {\n const index = $tabs.indexOf($tab);\n if (index !== currentTab && index > -1 && !$tab.disabled) {\n const tabEvent = new BvEvent(EVENT_NAME_ACTIVATE_TAB, {\n cancelable: true,\n vueTarget: this,\n componentId: this.safeId()\n });\n this.$emit(tabEvent.type, index, currentTab, tabEvent);\n if (!tabEvent.defaultPrevented) {\n this.currentTab = index;\n result = true;\n }\n }\n }\n\n // Couldn't set tab, so ensure v-model is up to date\n /* istanbul ignore next: should rarely happen */\n if (!result && this[MODEL_PROP_NAME] !== currentTab) {\n this.$emit(MODEL_EVENT_NAME, currentTab);\n }\n return result;\n },\n // Deactivate a tab given a `<b-tab>` instance\n // Accessed by `<b-tab>`\n deactivateTab($tab) {\n if ($tab) {\n // Find first non-disabled tab that isn't the one being deactivated\n // If no tabs are available, then don't deactivate current tab\n return this.activateTab(this.tabs.filter($t => $t !== $tab).find(notDisabled));\n }\n /* istanbul ignore next: should never/rarely happen */\n return false;\n },\n // Focus a tab button given its `<b-tab>` instance\n focusButton($tab) {\n // Wrap in `$nextTick()` to ensure DOM has completed rendering\n this.$nextTick(() => {\n attemptFocus(this.getButtonForTab($tab));\n });\n },\n // Emit a click event on a specified `<b-tab>` component instance\n emitTabClick(tab, event) {\n if (isEvent(event) && tab && tab.$emit && !tab.disabled) {\n tab.$emit(EVENT_NAME_CLICK, event);\n }\n },\n // Click handler\n clickTab($tab, event) {\n this.activateTab($tab);\n this.emitTabClick($tab, event);\n },\n // Move to first non-disabled tab\n firstTab(focus) {\n const $tab = this.tabs.find(notDisabled);\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to previous non-disabled tab\n previousTab(focus) {\n const currentIndex = mathMax(this.currentTab, 0);\n const $tab = this.tabs.slice(0, currentIndex).reverse().find(notDisabled);\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to next non-disabled tab\n nextTab(focus) {\n const currentIndex = mathMax(this.currentTab, -1);\n const $tab = this.tabs.slice(currentIndex + 1).find(notDisabled);\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to last non-disabled tab\n lastTab(focus) {\n const $tab = this.tabs.slice().reverse().find(notDisabled);\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n }\n },\n render(h) {\n const {\n align,\n end,\n fill,\n firstTab,\n justified,\n lastTab,\n nextTab,\n noKeyNav,\n noNavStyle,\n pills,\n previousTab,\n small,\n tabs: $tabs\n } = this;\n\n // Currently active tab\n const $activeTab = $tabs.find($tab => $tab.localActive && !$tab.disabled);\n\n // Tab button to allow focusing when no active tab found (keynav only)\n const $fallbackTab = $tabs.find($tab => !$tab.disabled);\n\n // For each `<b-tab>` found create the tab buttons\n const $buttons = $tabs.map(($tab, index) => {\n const {\n safeId\n } = $tab;\n\n // Ensure at least one tab button is focusable when keynav enabled (if possible)\n let tabIndex = null;\n if (!noKeyNav) {\n // Buttons are not in tab index unless active, or a fallback tab\n tabIndex = -1;\n if ($tab === $activeTab || !$activeTab && $tab === $fallbackTab) {\n // Place tab button in tab sequence\n tabIndex = null;\n }\n }\n return h(BVTabButton, {\n props: {\n controls: safeId ? safeId() : null,\n id: $tab.controlledBy || (safeId ? safeId(`_BV_tab_button_`) : null),\n noKeyNav,\n posInSet: index + 1,\n setSize: $tabs.length,\n tab: $tab,\n tabIndex\n },\n on: {\n [EVENT_NAME_CLICK]: event => {\n this.clickTab($tab, event);\n },\n [EVENT_NAME_FIRST]: firstTab,\n [EVENT_NAME_PREV]: previousTab,\n [EVENT_NAME_NEXT]: nextTab,\n [EVENT_NAME_LAST]: lastTab\n },\n key: $tab[COMPONENT_UID_KEY] || index,\n ref: 'buttons',\n // Needed to make `this.$refs.buttons` an array\n [REF_FOR_KEY]: true\n });\n });\n let $nav = h(BNav, {\n class: this.navClass,\n attrs: {\n role: 'tablist',\n id: this.safeId('_BV_tab_controls_')\n },\n props: {\n fill,\n justified,\n align,\n tabs: !noNavStyle && !pills,\n pills: !noNavStyle && pills,\n small\n },\n ref: 'nav'\n }, [this.normalizeSlot(SLOT_NAME_TABS_START) || h(), $buttons, this.normalizeSlot(SLOT_NAME_TABS_END) || h()]);\n $nav = h('div', {\n class: this.navWrapperClass,\n key: 'bv-tabs-nav'\n }, [$nav]);\n const $children = this.normalizeSlot() || [];\n let $empty = h();\n if ($children.length === 0) {\n $empty = h('div', {\n class: ['tab-pane', 'active'],\n key: 'bv-empty-tab'\n }, this.normalizeSlot(SLOT_NAME_EMPTY));\n }\n const $content = h('div', {\n staticClass: 'tab-content',\n class: this.contentClass,\n attrs: {\n id: this.safeId('_BV_tab_container_')\n },\n key: 'bv-content',\n ref: 'content'\n }, [$children, $empty]);\n\n // Render final output\n return h(this.tag, {\n staticClass: 'tabs',\n attrs: {\n id: this.safeId()\n }\n }, [end ? $content : h(), $nav, end ? h() : $content]);\n }\n});\n\nexport { BTabs, props };\n","import { BTabs } from '../../../../vendor/bootstrap-vue/src/components/tabs/tabs';\nimport { tabsButtonDefaults } from '../../../../utils/constants';\nimport GlButton from '../../button/button';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst validatorHelper = obj => Object.keys(obj).every(val => val === 'text' || val === 'attributes');\nvar script = {\n name: 'GlTabs',\n components: {\n BTabs,\n GlButton\n },\n inheritAttrs: false,\n props: {\n actionPrimary: {\n type: Object,\n required: false,\n default: null,\n validator: obj => validatorHelper(obj)\n },\n actionSecondary: {\n type: Object,\n required: false,\n default: null,\n validator: obj => validatorHelper(obj)\n },\n actionTertiary: {\n type: Object,\n required: false,\n default: null,\n validator: obj => validatorHelper(obj)\n },\n contentClass: {\n type: [String, Array, Object],\n required: false,\n default: null\n },\n navClass: {\n type: [String, Array, Object],\n required: false,\n default: null\n },\n justified: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Sync active tab with query string parameters. Allows for deep linking into specific tabs.\n */\n syncActiveTabWithQueryParams: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Name to use for query string parameter.\n */\n queryParamName: {\n type: String,\n required: false,\n default: 'tab'\n },\n value: {\n type: Number,\n required: false,\n default: 0\n }\n },\n data() {\n return {\n activeTabIndex: 0\n };\n },\n computed: {\n hasActions() {\n return [this.actionPrimary, this.actionSecondary, this.actionTertiary].some(Boolean);\n },\n listeners() {\n return {\n ...this.$listeners,\n input: this.handleInput\n };\n }\n },\n watch: {\n value: {\n handler(newValue) {\n if (this.activeTabIndex !== newValue) {\n this.activeTabIndex = newValue;\n }\n },\n immediate: true\n }\n },\n mounted() {\n if (this.syncActiveTabWithQueryParams) {\n this.syncActiveTabFromQueryParams();\n window.addEventListener('popstate', this.syncActiveTabFromQueryParams);\n }\n\n // Because we are manually binding `value` attribute to `b-tabs` the `input`\n // event is no longer automatically fired when the component is mounted.\n // To maintain parity with original `b-tabs` functionality\n // we manually fire the `input` event when the component is mounted.\n this.$emit('input', this.activeTabIndex);\n },\n destroyed() {\n window.removeEventListener('popstate', this.syncActiveTabFromQueryParams);\n },\n methods: {\n buttonBinding(prop, name) {\n if (!prop.attributes) {\n return tabsButtonDefaults[name];\n }\n return prop.attributes;\n },\n primary() {\n this.$emit('primary');\n },\n secondary() {\n this.$emit('secondary');\n },\n tertiary() {\n this.$emit('tertiary');\n },\n /**\n * When the query parameter is updated, update the active tab to match.\n */\n async syncActiveTabFromQueryParams() {\n await this.$nextTick();\n const queryParamValue = this.getQueryParamValue();\n const tabIndexToActivate = this.getTabs().findIndex((tab, tabIndex) => this.getTabQueryParamValue(tabIndex) === queryParamValue);\n this.activeTabIndex = tabIndexToActivate !== -1 ? tabIndexToActivate : 0;\n },\n /**\n * Returns a list of all <b-tab> instances associated with this tab control.\n */\n getTabs() {\n return this.$refs.bTabs.getTabs();\n },\n /**\n * Get the value of the query param as defined by the `queryParamName` prop.\n */\n getQueryParamValue() {\n const searchParams = new URLSearchParams(window.location.search);\n return searchParams.get(this.queryParamName);\n },\n /**\n * Set the value of the query param as defined by the `queryParamName` prop.\n * This method does nothing if the query param is already up to date.\n */\n setQueryParamValueIfNecessary(tabIndex) {\n const currentQueryParamValue = this.getQueryParamValue();\n const newQueryParamValue = this.getTabQueryParamValue(tabIndex);\n\n // If the current query parameter is already up-to-date,\n // avoid creating a duplicate history entry.\n if (tabIndex === 0 && !currentQueryParamValue || tabIndex !== 0 && currentQueryParamValue === newQueryParamValue) {\n return;\n }\n const searchParams = new URLSearchParams(window.location.search);\n searchParams.set(this.queryParamName, newQueryParamValue);\n window.history.pushState({}, '', `${window.location.pathname}?${searchParams.toString()}`);\n },\n /**\n * Returns the query param value for a tab.\n * Defaults to the tab index unless the `query-param-value` attribute is set.\n */\n getTabQueryParamValue(tabIndex) {\n const tab = this.getTabs()[tabIndex];\n return (tab === null || tab === void 0 ? void 0 : tab.$attrs['query-param-value']) || tabIndex.toString();\n },\n /**\n * Event handler for `input` event.\n */\n handleInput(tabIndex) {\n this.$emit('input', tabIndex);\n this.activeTabIndex = tabIndex;\n if (this.syncActiveTabWithQueryParams) {\n this.setQueryParamValueIfNecessary(tabIndex);\n }\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-tabs',_vm._g(_vm._b({ref:\"bTabs\",staticClass:\"gl-tabs\",attrs:{\"no-nav-style\":true,\"no-fade\":true,\"active-nav-item-class\":\"gl-tab-nav-item-active\",\"content-class\":[_vm.contentClass, 'gl-tab-content'],\"nav-class\":[_vm.navClass, 'gl-tabs-nav'],\"justified\":_vm.justified,\"value\":_vm.activeTabIndex},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$slots)),function(slot){return {key:slot,fn:function(){return [_vm._t(slot)]},proxy:true}}),(_vm.hasActions)?{key:\"tabs-start\",fn:function(){return [_c('div',{staticClass:\"gl-actions-tabs-start\",attrs:{\"data-testid\":\"actions-tabs-start\"}},[(_vm.actionPrimary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-primary\"},on:{\"click\":_vm.primary}},'gl-button',_vm.buttonBinding(_vm.actionPrimary, 'actionPrimary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionPrimary.text)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.actionSecondary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-secondary\"},on:{\"click\":_vm.secondary}},'gl-button',_vm.buttonBinding(_vm.actionSecondary, 'actionSecondary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionSecondary.text)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.actionTertiary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-tertiary\"},on:{\"click\":_vm.tertiary}},'gl-button',_vm.buttonBinding(_vm.actionTertiary, 'actionTertiary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionTertiary.text)+\"\\n \")]):_vm._e()],1)]},proxy:true}:null,(_vm.hasActions)?{key:\"tabs-end\",fn:function(){return [_c('div',{staticClass:\"gl-actions-tabs-end\",attrs:{\"data-testid\":\"actions-tabs-end\"}},[(_vm.actionPrimary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-primary\"},on:{\"click\":_vm.primary}},'gl-button',_vm.buttonBinding(_vm.actionPrimary, 'actionPrimary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionPrimary.text)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.actionSecondary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-secondary\"},on:{\"click\":_vm.secondary}},'gl-button',_vm.buttonBinding(_vm.actionSecondary, 'actionSecondary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionSecondary.text)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.actionTertiary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-tertiary\"},on:{\"click\":_vm.tertiary}},'gl-button',_vm.buttonBinding(_vm.actionTertiary, 'actionTertiary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionTertiary.text)+\"\\n \")]):_vm._e()],1)]},proxy:true}:null],null,true)},'b-tabs',_vm.$attrs,false),_vm.listeners))};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import { __, s__ } from '~/locale';\nimport { STATUS_LABELS } from './constants';\n\nexport const getStatusLabel = (status) => STATUS_LABELS[status] ?? s__('IncidentManagement|None');\n\nexport const todoLabel = (hasTodo) => {\n return hasTodo ? __('Mark as done') : __('Add a to-do item');\n};\n\nexport const updateGlobalTodoCount = (delta) => {\n // Optimistic update of user counts\n document.dispatchEvent(new CustomEvent('todo:toggle', { detail: { delta } }));\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueEscalationPolicy\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"escalationPolicy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"EscalationPolicyFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":294}};\n doc.loc.source = {\"body\":\"#import \\\"./escalation_policy.fragment.graphql\\\"\\n\\nquery issueEscalationPolicy($fullPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n attribute: escalationPolicy {\\n ...EscalationPolicyFragment\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./escalation_policy.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueEscalationPolicy\"] = oneQuery(doc, \"issueEscalationPolicy\");\n \n","import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';\n\nclass RelatedIssuesStore {\n constructor() {\n this.state = {\n // Stores issue objects of the known related issues\n relatedIssues: [],\n // Stores references of the \"staging area\" related issues that are planned to be added\n pendingReferences: [],\n };\n }\n\n setRelatedIssues(issues = []) {\n this.state.relatedIssues = convertObjectPropsToCamelCase(issues, { deep: true });\n }\n\n addRelatedIssues(issues = []) {\n this.setRelatedIssues(this.state.relatedIssues.concat(issues));\n }\n\n removeRelatedIssue(issue) {\n this.state.relatedIssues = this.state.relatedIssues.filter((x) => x.id !== issue.id);\n }\n\n updateIssueOrder(oldIndex, newIndex) {\n if (this.state.relatedIssues.length > 0) {\n const updatedIssue = this.state.relatedIssues.splice(oldIndex, 1)[0];\n this.state.relatedIssues.splice(newIndex, 0, updatedIssue);\n }\n }\n\n setPendingReferences(issues) {\n // Remove duplicates but retain order.\n // If you don't do this, Vue will be confused by duplicates and refuse to delete them all.\n this.state.pendingReferences = issues.filter((ref, idx) => issues.indexOf(ref) === idx);\n }\n\n addPendingReferences(references = []) {\n const issues = this.state.pendingReferences.concat(references);\n this.setPendingReferences(issues);\n }\n\n removePendingRelatedIssue(indexToRemove) {\n this.state.pendingReferences = this.state.pendingReferences.filter(\n (reference, index) => index !== indexToRemove,\n );\n }\n}\n\nexport default RelatedIssuesStore;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"addReviewerPermissions\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"adminMergeRequest\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":211}};\n doc.loc.source = {\"body\":\"query addReviewerPermissions($fullPath: ID!, $iid: String!) {\\n project(fullPath: $fullPath) {\\n id\\n mergeRequest(iid: $iid) {\\n id\\n userPermissions {\\n adminMergeRequest\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"addReviewerPermissions\"] = oneQuery(doc, \"addReviewerPermissions\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-shrink-0\",attrs:{\"icon\":\"lock\",\"title\":_vm.title,\"aria-label\":_vm.title,\"variant\":\"warning\",\"data-testid\":\"locked-badge\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./locked_badge.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./locked_badge.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlTooltipDirective } from '@gitlab/ui';\nimport { issuableTypeText } from '~/issues/constants';\nimport { __, sprintf } from '~/locale';\n\nexport default {\n components: {\n GlBadge,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n issuableType: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n title() {\n return sprintf(\n __('The discussion in this %{issuable} is locked. Only project members can comment.'),\n {\n issuable: issuableTypeText[this.issuableType],\n },\n );\n },\n },\n};\n</script>\n\n<template>\n <gl-badge\n v-gl-tooltip\n icon=\"lock\"\n :title=\"title\"\n :aria-label=\"title\"\n variant=\"warning\"\n data-testid=\"locked-badge\"\n class=\"gl-shrink-0\"\n />\n</template>\n","import { render, staticRenderFns } from \"./locked_badge.vue?vue&type=template&id=42bccf50\"\nimport script from \"./locked_badge.vue?vue&type=script&lang=js\"\nexport * from \"./locked_badge.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./collapsed_assignee.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./collapsed_assignee.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport AssigneeAvatar from './assignee_avatar.vue';\nimport UserNameWithStatus from './user_name_with_status.vue';\n\nexport default {\n components: {\n GlButton,\n AssigneeAvatar,\n UserNameWithStatus,\n },\n props: {\n user: {\n type: Object,\n required: true,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n },\n computed: {\n availability() {\n return this.user?.availability || '';\n },\n },\n};\n</script>\n<template>\n <gl-button variant=\"link\" class=\"!gl-bg-transparent\">\n <assignee-avatar :user=\"user\" :img-size=\"24\" :issuable-type=\"issuableType\" />\n <user-name-with-status\n :name=\"user.name\"\n :availability=\"availability\"\n container-classes=\"author\"\n />\n </gl-button>\n</template>\n","import { render, staticRenderFns } from \"./collapsed_assignee.vue?vue&type=template&id=e2ee50c4\"\nimport script from \"./collapsed_assignee.vue?vue&type=script&lang=js\"\nexport * from \"./collapsed_assignee.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button',{staticClass:\"!gl-bg-transparent\",attrs:{\"variant\":\"link\"}},[_c('assignee-avatar',{attrs:{\"user\":_vm.user,\"img-size\":24,\"issuable-type\":_vm.issuableType}}),_vm._v(\" \"),_c('user-name-with-status',{attrs:{\"name\":_vm.user.name,\"availability\":_vm.availability,\"container-classes\":\"author\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlButton, GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { __, sprintf } from '~/locale';\nimport { isUserBusy } from '~/set_status_modal/utils';\nimport CollapsedAssignee from './collapsed_assignee.vue';\n\nconst DEFAULT_MAX_COUNTER = 99;\nconst DEFAULT_RENDER_COUNT = 5;\n\nconst generateCollapsedAssigneeTooltip = ({ renderUsers, allUsers, tooltipTitleMergeStatus }) => {\n const names = renderUsers.map(({ name, availability }) => {\n if (availability && isUserBusy(availability)) {\n return sprintf(__('%{name} (Busy)'), { name });\n }\n return name;\n });\n\n if (!allUsers.length) {\n return __('Assignees');\n }\n if (allUsers.length > names.length) {\n names.push(sprintf(__('+ %{amount} more'), { amount: allUsers.length - names.length }));\n }\n const text = names.join(', ');\n return tooltipTitleMergeStatus ? `${text} (${tooltipTitleMergeStatus})` : text;\n};\n\nexport default {\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlButton,\n CollapsedAssignee,\n GlIcon,\n },\n props: {\n users: {\n type: Array,\n required: true,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n },\n computed: {\n isMergeRequest() {\n return this.issuableType === TYPE_MERGE_REQUEST;\n },\n hasNoUsers() {\n return !this.users.length;\n },\n hasMoreThanOneAssignee() {\n return this.users.length > 1;\n },\n hasMoreThanTwoAssignees() {\n return this.users.length > 2;\n },\n allAssigneesCanMerge() {\n return this.users.every((user) => user.can_merge || user.mergeRequestInteraction?.canMerge);\n },\n sidebarAvatarCounter() {\n if (this.users.length > DEFAULT_MAX_COUNTER) {\n return `${DEFAULT_MAX_COUNTER}+`;\n }\n\n return `+${this.users.length - 1}`;\n },\n collapsedUsers() {\n const collapsedLength = this.hasMoreThanTwoAssignees ? 1 : this.users.length;\n\n return this.users.slice(0, collapsedLength);\n },\n tooltipTitleMergeStatus() {\n if (!this.isMergeRequest) {\n return '';\n }\n\n const mergeLength = this.users.filter(\n (u) => u.can_merge || u.mergeRequestInteraction?.canMerge,\n ).length;\n\n if (mergeLength === this.users.length) {\n return '';\n }\n if (mergeLength > 0) {\n return sprintf(__('%{mergeLength}/%{usersLength} can merge'), {\n mergeLength,\n usersLength: this.users.length,\n });\n }\n\n return this.users.length === 1 ? __('cannot merge') : __('no one can merge');\n },\n tooltipTitle() {\n const maxRender = Math.min(DEFAULT_RENDER_COUNT, this.users.length);\n const renderUsers = this.users.slice(0, maxRender);\n return generateCollapsedAssigneeTooltip({\n renderUsers,\n allUsers: this.users,\n tooltipTitleMergeStatus: this.tooltipTitleMergeStatus,\n });\n },\n\n tooltipOptions() {\n return { container: 'body', placement: 'left', boundary: 'viewport' };\n },\n },\n};\n</script>\n\n<template>\n <div\n v-gl-tooltip=\"tooltipOptions\"\n :class=\"{ 'multiple-users gl-relative': hasMoreThanOneAssignee }\"\n :title=\"tooltipTitle\"\n class=\"sidebar-collapsed-icon sidebar-collapsed-user\"\n >\n <gl-icon v-if=\"hasNoUsers\" name=\"user\" :aria-label=\"__('None')\" />\n <collapsed-assignee\n v-for=\"user in collapsedUsers\"\n :key=\"user.id\"\n :user=\"user\"\n :issuable-type=\"issuableType\"\n />\n <gl-button v-if=\"hasMoreThanTwoAssignees\" variant=\"link\" class=\"!gl-bg-transparent\">\n <span class=\"avatar-counter sidebar-avatar-counter gl-flex gl-items-center gl-pl-3\">\n {{ sidebarAvatarCounter }}\n </span>\n <gl-icon\n v-if=\"isMergeRequest && !allAssigneesCanMerge\"\n name=\"warning-solid\"\n aria-hidden=\"true\"\n class=\"merge-icon\"\n />\n </gl-button>\n </div>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./collapsed_assignee_list.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./collapsed_assignee_list.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./collapsed_assignee_list.vue?vue&type=template&id=483c5258\"\nimport script from \"./collapsed_assignee_list.vue?vue&type=script&lang=js\"\nexport * from \"./collapsed_assignee_list.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.tooltipOptions),expression:\"tooltipOptions\"}],staticClass:\"sidebar-collapsed-icon sidebar-collapsed-user\",class:{ 'multiple-users gl-relative': _vm.hasMoreThanOneAssignee },attrs:{\"title\":_vm.tooltipTitle}},[(_vm.hasNoUsers)?_c('gl-icon',{attrs:{\"name\":\"user\",\"aria-label\":_vm.__('None')}}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.collapsedUsers),function(user){return _c('collapsed-assignee',{key:user.id,attrs:{\"user\":user,\"issuable-type\":_vm.issuableType}})}),_vm._v(\" \"),(_vm.hasMoreThanTwoAssignees)?_c('gl-button',{staticClass:\"!gl-bg-transparent\",attrs:{\"variant\":\"link\"}},[_c('span',{staticClass:\"avatar-counter sidebar-avatar-counter gl-flex gl-items-center gl-pl-3\"},[_vm._v(\"\\n \"+_vm._s(_vm.sidebarAvatarCounter)+\"\\n \")]),_vm._v(\" \"),(_vm.isMergeRequest && !_vm.allAssigneesCanMerge)?_c('gl-icon',{staticClass:\"merge-icon\",attrs:{\"name\":\"warning-solid\",\"aria-hidden\":\"true\"}}):_vm._e()],1):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy_email_to_clipboard.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy_email_to_clipboard.vue?vue&type=script&lang=js\"","<script>\nimport CopyableField from './copyable_field.vue';\n\nexport default {\n components: {\n CopyableField,\n },\n props: {\n issueEmailAddress: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <copyable-field\n data-testid=\"copy-forward-email\"\n :name=\"s__('RightSidebar|Issue email')\"\n :clipboard-tooltip-text=\"s__('RightSidebar|Copy email address')\"\n :value=\"issueEmailAddress\"\n />\n</template>\n","import { render, staticRenderFns } from \"./copy_email_to_clipboard.vue?vue&type=template&id=7ed445fa\"\nimport script from \"./copy_email_to_clipboard.vue?vue&type=script&lang=js\"\nexport * from \"./copy_email_to_clipboard.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('copyable-field',{attrs:{\"data-testid\":\"copy-forward-email\",\"name\":_vm.s__('RightSidebar|Issue email'),\"clipboard-tooltip-text\":_vm.s__('RightSidebar|Copy email address'),\"value\":_vm.issueEmailAddress}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\nimport {\n INCIDENTS_I18N as i18n,\n STATUS_ACKNOWLEDGED,\n STATUS_TRIGGERED,\n STATUS_RESOLVED,\n} from '../../constants';\nimport { getStatusLabel } from '../../utils';\n\nconst STATUS_LIST = [STATUS_TRIGGERED, STATUS_ACKNOWLEDGED, STATUS_RESOLVED];\n\nexport default {\n i18n,\n STATUS_LIST,\n components: {\n GlCollapsibleListbox,\n },\n props: {\n value: {\n type: String,\n required: false,\n default: null,\n validator(value) {\n return [...STATUS_LIST, null].includes(value);\n },\n },\n headerText: {\n type: String,\n required: false,\n default: null,\n },\n statusSubtexts: {\n type: Object,\n required: false,\n default() {\n return {};\n },\n },\n },\n data() {\n return {\n selected: this.value,\n };\n },\n computed: {\n statusDropdownOptions() {\n return this.$options.STATUS_LIST.map((status) => ({\n text: this.getStatusLabel(status),\n subtext: this.statusSubtexts[status],\n value: status,\n }));\n },\n currentStatusLabel() {\n return this.getStatusLabel(this.value);\n },\n },\n\n methods: {\n show() {\n this.$refs.dropdown.open();\n },\n hide() {\n this.$refs.dropdown.close();\n },\n getStatusLabel,\n },\n};\n</script>\n\n<template>\n <gl-collapsible-listbox\n ref=\"dropdown\"\n v-model=\"selected\"\n :header-text=\"headerText\"\n block\n :toggle-text=\"currentStatusLabel\"\n :items=\"statusDropdownOptions\"\n toggle-class=\"dropdown-menu-toggle gl-mb-2\"\n data-testid=\"escalation-status-dropdown\"\n @select=\"$emit('input', selected)\"\n >\n <template #list-item=\"{ item }\">\n <span class=\"gl-block\">{{ item.text }}</span>\n <span v-if=\"item.subtext\" class=\"gl-text-sm gl-text-subtle\">{{ item.subtext }}</span>\n </template>\n </gl-collapsible-listbox>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./escalation_status.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./escalation_status.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./escalation_status.vue?vue&type=template&id=2b732154\"\nimport script from \"./escalation_status.vue?vue&type=script&lang=js\"\nexport * from \"./escalation_status.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-collapsible-listbox',{ref:\"dropdown\",attrs:{\"header-text\":_vm.headerText,\"block\":\"\",\"toggle-text\":_vm.currentStatusLabel,\"items\":_vm.statusDropdownOptions,\"toggle-class\":\"dropdown-menu-toggle gl-mb-2\",\"data-testid\":\"escalation-status-dropdown\"},on:{\"select\":function($event){return _vm.$emit('input', _vm.selected)}},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('span',{staticClass:\"gl-block\"},[_vm._v(_vm._s(item.text))]),_vm._v(\" \"),(item.subtext)?_c('span',{staticClass:\"gl-text-sm gl-text-subtle\"},[_vm._v(_vm._s(item.subtext))]):_vm._e()]}}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./escalation_status.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./escalation_status.vue?vue&type=script&lang=js\"","<script>\nimport EscalationStatus from '~/sidebar/components/incidents/escalation_status.vue';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { i18nStatusHeaderText, STATUS_SUBTEXTS } from '../../constants';\n\nexport default {\n i18n: i18nStatusHeaderText,\n\n components: {\n EscalationStatus,\n },\n mixins: [glFeatureFlagMixin()],\n props: {\n // eslint-disable-next-line @gitlab/vue-require-required-key\n value: EscalationStatus.props.value,\n },\n computed: {\n headerText() {\n return this.escalationPoliciesEnabled ? this.$options.i18n : '';\n },\n statusSubtexts() {\n return this.escalationPoliciesEnabled ? STATUS_SUBTEXTS : {};\n },\n\n escalationPoliciesEnabled() {\n return this.glFeatures.escalationPolicies;\n },\n },\n methods: {\n show() {\n this.$refs.escalationStatus.show();\n },\n // Pass through to wrapped component\n hide() {\n this.$refs.escalationStatus.hide();\n },\n },\n};\n</script>\n\n<template>\n <escalation-status\n ref=\"escalationStatus\"\n :header-text=\"headerText\"\n :status-subtexts=\"statusSubtexts\"\n :value=\"value\"\n v-bind=\"$attrs\"\n v-on=\"$listeners\"\n />\n</template>\n","import { render, staticRenderFns } from \"./escalation_status.vue?vue&type=template&id=69cc828d\"\nimport script from \"./escalation_status.vue?vue&type=script&lang=js\"\nexport * from \"./escalation_status.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('escalation-status',_vm._g(_vm._b({ref:\"escalationStatus\",attrs:{\"header-text\":_vm.headerText,\"status-subtexts\":_vm.statusSubtexts,\"value\":_vm.value}},'escalation-status',_vm.$attrs,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_escalation_status.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_escalation_status.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { logError } from '~/lib/logger';\nimport EscalationStatus from 'ee_else_ce/sidebar/components/incidents/escalation_status.vue';\nimport { INCIDENTS_I18N as i18n } from '../../constants';\nimport { escalationStatusQuery, escalationStatusMutation } from '../../queries/constants';\nimport { getStatusLabel } from '../../utils';\nimport SidebarEditableItem from '../sidebar_editable_item.vue';\n\nexport default {\n i18n,\n components: {\n EscalationStatus,\n SidebarEditableItem,\n GlIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n iid: {\n type: String,\n required: true,\n },\n projectPath: {\n type: String,\n required: true,\n },\n issuableType: {\n required: true,\n type: String,\n },\n },\n data() {\n return {\n status: null,\n isUpdating: false,\n };\n },\n apollo: {\n status: {\n query() {\n return escalationStatusQuery;\n },\n variables() {\n return {\n fullPath: this.projectPath,\n iid: this.iid,\n };\n },\n update(data) {\n return data.workspace?.issuable?.escalationStatus;\n },\n error(error) {\n const message = this.$options.i18n.fetchError;\n createAlert({ message });\n logError(message, error);\n },\n },\n },\n computed: {\n isLoading() {\n return this.$apollo.queries.status.loading;\n },\n currentStatusLabel() {\n return getStatusLabel(this.status);\n },\n tooltipText() {\n return `${this.$options.i18n.title}: ${this.currentStatusLabel}`;\n },\n },\n methods: {\n updateStatus(status) {\n this.isUpdating = true;\n this.closeSidebar();\n return this.$apollo\n .mutate({\n mutation: escalationStatusMutation,\n variables: {\n status,\n iid: this.iid,\n projectPath: this.projectPath,\n },\n })\n .then(({ data: { issueSetEscalationStatus } }) => {\n this.status = issueSetEscalationStatus.issue.escalationStatus;\n })\n .catch((error) => {\n const message = this.$options.i18n.updateError;\n createAlert({ message });\n logError(message, error);\n })\n .finally(() => {\n this.isUpdating = false;\n });\n },\n closeSidebar() {\n this.close();\n this.$refs.editable.collapse();\n },\n open() {\n this.$refs.escalationStatus.show();\n },\n close() {\n this.$refs.escalationStatus.hide();\n },\n },\n};\n</script>\n\n<template>\n <sidebar-editable-item\n ref=\"editable\"\n :title=\"$options.i18n.title\"\n :initial-loading=\"isLoading\"\n :loading=\"isUpdating\"\n @open=\"open\"\n @close=\"close\"\n >\n <template #default>\n <escalation-status ref=\"escalationStatus\" :value=\"status\" @input=\"updateStatus\" />\n </template>\n <template #collapsed>\n <div\n v-gl-tooltip.viewport.left=\"tooltipText\"\n class=\"sidebar-collapsed-icon\"\n data-testid=\"status-icon\"\n >\n <gl-icon name=\"status\" :size=\"16\" />\n </div>\n <span class=\"hide-collapsed gl-text-subtle\">{{ currentStatusLabel }}</span>\n </template>\n </sidebar-editable-item>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_escalation_status.vue?vue&type=template&id=62aac7a7\"\nimport script from \"./sidebar_escalation_status.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_escalation_status.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('sidebar-editable-item',{ref:\"editable\",attrs:{\"title\":_vm.$options.i18n.title,\"initial-loading\":_vm.isLoading,\"loading\":_vm.isUpdating},on:{\"open\":_vm.open,\"close\":_vm.close},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('escalation-status',{ref:\"escalationStatus\",attrs:{\"value\":_vm.status},on:{\"input\":_vm.updateStatus}})]},proxy:true},{key:\"collapsed\",fn:function(){return [_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.left\",value:(_vm.tooltipText),expression:\"tooltipText\",modifiers:{\"viewport\":true,\"left\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"data-testid\":\"status-icon\"}},[_c('gl-icon',{attrs:{\"name\":\"status\",\"size\":16}})],1),_vm._v(\" \"),_c('span',{staticClass:\"hide-collapsed gl-text-subtle\"},[_vm._v(_vm._s(_vm.currentStatusLabel))])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlDropdownItem } from '@gitlab/ui';\nimport { TYPENAME_MILESTONE } from '~/graphql_shared/constants';\nimport { convertToGraphQLId, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport {\n TYPE_ISSUE,\n TYPE_MERGE_REQUEST,\n WORKSPACE_GROUP,\n WORKSPACE_PROJECT,\n} from '~/issues/constants';\nimport { __ } from '~/locale';\nimport { IssuableAttributeType } from '../../constants';\nimport SidebarDropdown from '../sidebar_dropdown.vue';\n\nconst noMilestone = {\n id: 0,\n title: __('No milestone'),\n};\n\nconst placeholderMilestone = {\n id: -1,\n title: __('Select milestone'),\n};\n\nexport default {\n issuableAttribute: IssuableAttributeType.Milestone,\n components: {\n GlDropdownItem,\n SidebarDropdown,\n },\n props: {\n attrWorkspacePath: {\n required: true,\n type: String,\n },\n canAdminMilestone: {\n type: Boolean,\n required: false,\n default: false,\n },\n issuableType: {\n type: String,\n required: true,\n validator(value) {\n return [TYPE_ISSUE, TYPE_MERGE_REQUEST].includes(value);\n },\n },\n inputName: {\n type: String,\n required: false,\n default: 'update[milestone_id]',\n },\n milestoneId: {\n type: String,\n required: false,\n default: '',\n },\n milestoneTitle: {\n type: String,\n required: false,\n default: '',\n },\n projectMilestonesPath: {\n type: String,\n required: false,\n default: '',\n },\n workspaceType: {\n type: String,\n required: true,\n validator(value) {\n return [WORKSPACE_GROUP, WORKSPACE_PROJECT].includes(value);\n },\n },\n },\n data() {\n return {\n milestone: this.milestoneId\n ? {\n id: convertToGraphQLId(TYPENAME_MILESTONE, this.milestoneId),\n title: this.milestoneTitle,\n }\n : placeholderMilestone,\n };\n },\n computed: {\n footerItemText() {\n return this.canAdminMilestone ? __('Manage milestones') : __('View milestones');\n },\n value() {\n return this.milestone.id === placeholderMilestone.id\n ? undefined\n : getIdFromGraphQLId(this.milestone.id);\n },\n },\n methods: {\n handleChange(milestone) {\n this.milestone = milestone.id === null ? noMilestone : milestone;\n },\n },\n};\n</script>\n\n<template>\n <div>\n <input type=\"hidden\" :name=\"inputName\" :value=\"value\" />\n <sidebar-dropdown\n :attr-workspace-path=\"attrWorkspacePath\"\n :current-attribute=\"milestone\"\n :issuable-attribute=\"$options.issuableAttribute\"\n :issuable-type=\"issuableType\"\n :workspace-type=\"workspaceType\"\n data-testid=\"issuable-milestone-dropdown\"\n @change=\"handleChange\"\n >\n <template #footer>\n <gl-dropdown-item v-if=\"projectMilestonesPath\" :href=\"projectMilestonesPath\">\n {{ footerItemText }}\n </gl-dropdown-item>\n </template>\n </sidebar-dropdown>\n </div>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./milestone_dropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./milestone_dropdown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./milestone_dropdown.vue?vue&type=template&id=d7d922a8\"\nimport script from \"./milestone_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./milestone_dropdown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('input',{attrs:{\"type\":\"hidden\",\"name\":_vm.inputName},domProps:{\"value\":_vm.value}}),_vm._v(\" \"),_c('sidebar-dropdown',{attrs:{\"attr-workspace-path\":_vm.attrWorkspacePath,\"current-attribute\":_vm.milestone,\"issuable-attribute\":_vm.$options.issuableAttribute,\"issuable-type\":_vm.issuableType,\"workspace-type\":_vm.workspaceType,\"data-testid\":\"issuable-milestone-dropdown\"},on:{\"change\":_vm.handleChange},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [(_vm.projectMilestonesPath)?_c('gl-dropdown-item',{attrs:{\"href\":_vm.projectMilestonesPath}},[_vm._v(\"\\n \"+_vm._s(_vm.footerItemText)+\"\\n \")]):_vm._e()]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./move_issues_button.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./move_issues_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlAlert } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { logError } from '~/lib/logger';\nimport { s__ } from '~/locale';\nimport {\n WORK_ITEM_TYPE_ENUM_ISSUE,\n WORK_ITEM_TYPE_ENUM_INCIDENT,\n WORK_ITEM_TYPE_ENUM_TASK,\n WORK_ITEM_TYPE_ENUM_TEST_CASE,\n} from '~/work_items/constants';\nimport issuableEventHub from '~/issues/list/eventhub';\nimport getIssuesQuery from 'ee_else_ce/issues/list/queries/get_issues.query.graphql';\nimport getIssuesCountQuery from 'ee_else_ce/issues/list/queries/get_issues_counts.query.graphql';\nimport moveIssueMutation from '../../queries/move_issue.mutation.graphql';\nimport IssuableMoveDropdown from './issuable_move_dropdown.vue';\n\nexport default {\n name: 'MoveIssuesButton',\n components: {\n IssuableMoveDropdown,\n GlAlert,\n },\n props: {\n projectFullPath: {\n type: String,\n required: true,\n },\n projectsFetchPath: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n selectedIssuables: [],\n moveInProgress: false,\n };\n },\n computed: {\n cannotMoveTasksWarningTitle() {\n if (this.tasksSelected && this.testCasesSelected) {\n return s__('Issues|Tasks and test cases can not be moved.');\n }\n\n if (this.testCasesSelected) {\n return s__('Issues|Test cases can not be moved.');\n }\n\n return s__('Issues|Tasks can not be moved.');\n },\n issuesSelected() {\n return this.selectedIssuables.some((item) => item.type === WORK_ITEM_TYPE_ENUM_ISSUE);\n },\n incidentsSelected() {\n return this.selectedIssuables.some((item) => item.type === WORK_ITEM_TYPE_ENUM_INCIDENT);\n },\n tasksSelected() {\n return this.selectedIssuables.some((item) => item.type === WORK_ITEM_TYPE_ENUM_TASK);\n },\n testCasesSelected() {\n return this.selectedIssuables.some((item) => item.type === WORK_ITEM_TYPE_ENUM_TEST_CASE);\n },\n },\n mounted() {\n issuableEventHub.$on('issuables:issuableChecked', this.handleIssuableChecked);\n },\n beforeDestroy() {\n issuableEventHub.$off('issuables:issuableChecked', this.handleIssuableChecked);\n },\n methods: {\n handleIssuableChecked(issuable, value) {\n if (value) {\n this.selectedIssuables.push(issuable);\n } else {\n const index = this.selectedIssuables.indexOf(issuable);\n if (index > -1) {\n this.selectedIssuables.splice(index, 1);\n }\n }\n },\n moveIssues(targetProject) {\n const iids = this.selectedIssuables.reduce((result, issueData) => {\n if (\n issueData.type === WORK_ITEM_TYPE_ENUM_ISSUE ||\n issueData.type === WORK_ITEM_TYPE_ENUM_INCIDENT\n ) {\n result.push(issueData.iid);\n }\n return result;\n }, []);\n\n if (iids.length === 0) {\n return;\n }\n\n this.moveInProgress = true;\n issuableEventHub.$emit('issuables:bulkMoveStarted');\n\n const promises = iids.map((id) => {\n return this.moveIssue(id, targetProject);\n });\n\n Promise.all(promises)\n .then((promisesResult) => {\n let foundError = false;\n\n for (const promiseResult of promisesResult) {\n if (promiseResult.data.issueMove?.errors?.length) {\n foundError = true;\n logError(\n `Error moving issue. Error message: ${promiseResult.data.issueMove.errors[0].message}`,\n );\n }\n }\n\n if (!foundError) {\n const client = this.$apollo.provider.defaultClient;\n client.refetchQueries({\n include: [getIssuesQuery, getIssuesCountQuery],\n });\n this.moveInProgress = false;\n this.selectedIssuables = [];\n issuableEventHub.$emit('issuables:bulkMoveEnded');\n } else {\n throw new Error();\n }\n })\n .catch(() => {\n this.moveInProgress = false;\n issuableEventHub.$emit('issuables:bulkMoveEnded');\n\n createAlert({\n message: s__(`Issues|There was an error while moving the issues.`),\n });\n });\n },\n moveIssue(issueIid, targetProject) {\n return this.$apollo.mutate({\n mutation: moveIssueMutation,\n variables: {\n moveIssueInput: {\n projectPath: this.projectFullPath,\n iid: issueIid,\n targetProjectPath: targetProject.full_path,\n },\n },\n });\n },\n },\n i18n: {\n dropdownButtonTitle: s__('Issues|Move selected'),\n },\n};\n</script>\n<template>\n <div>\n <issuable-move-dropdown\n :project-full-path=\"projectFullPath\"\n :projects-fetch-path=\"projectsFetchPath\"\n :move-in-progress=\"moveInProgress\"\n :disabled=\"!issuesSelected && !incidentsSelected\"\n :dropdown-header-title=\"$options.i18n.dropdownButtonTitle\"\n :dropdown-button-title=\"$options.i18n.dropdownButtonTitle\"\n @move-issuable=\"moveIssues\"\n />\n <gl-alert v-if=\"tasksSelected || testCasesSelected\" :dismissible=\"false\" variant=\"warning\">\n {{ cannotMoveTasksWarningTitle }}\n </gl-alert>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./move_issues_button.vue?vue&type=template&id=7ae2c75c\"\nimport script from \"./move_issues_button.vue?vue&type=script&lang=js\"\nexport * from \"./move_issues_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('issuable-move-dropdown',{attrs:{\"project-full-path\":_vm.projectFullPath,\"projects-fetch-path\":_vm.projectsFetchPath,\"move-in-progress\":_vm.moveInProgress,\"disabled\":!_vm.issuesSelected && !_vm.incidentsSelected,\"dropdown-header-title\":_vm.$options.i18n.dropdownButtonTitle,\"dropdown-button-title\":_vm.$options.i18n.dropdownButtonTitle},on:{\"move-issuable\":_vm.moveIssues}}),_vm._v(\" \"),(_vm.tasksSelected || _vm.testCasesSelected)?_c('gl-alert',{attrs:{\"dismissible\":false,\"variant\":\"warning\"}},[_vm._v(\"\\n \"+_vm._s(_vm.cannotMoveTasksWarningTitle)+\"\\n \")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_reference_widget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_reference_widget.vue?vue&type=script&lang=js\"","<script>\nimport { __ } from '~/locale';\nimport { referenceQueries } from '../../queries/constants';\nimport CopyableField from './copyable_field.vue';\n\nexport default {\n components: {\n CopyableField,\n },\n inject: ['fullPath', 'iid'],\n props: {\n issuableType: {\n required: true,\n type: String,\n },\n },\n data() {\n return {\n reference: '',\n };\n },\n apollo: {\n reference: {\n query() {\n return referenceQueries[this.issuableType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n iid: this.iid,\n };\n },\n update(data) {\n return data.workspace?.issuable?.reference || '';\n },\n error(error) {\n this.$emit('fetch-error', {\n message: __('An error occurred while fetching reference'),\n error,\n });\n },\n },\n },\n computed: {\n isLoading() {\n return this.$apollo.queries.reference.loading;\n },\n },\n};\n</script>\n\n<template>\n <copyable-field\n class=\"sub-block\"\n :is-loading=\"isLoading\"\n :name=\"__('Reference')\"\n :value=\"reference\"\n />\n</template>\n","import { render, staticRenderFns } from \"./sidebar_reference_widget.vue?vue&type=template&id=4906c7c8\"\nimport script from \"./sidebar_reference_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_reference_widget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('copyable-field',{staticClass:\"sub-block\",attrs:{\"is-loading\":_vm.isLoading,\"name\":_vm.__('Reference'),\"value\":_vm.reference}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_reviewers_inputs.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_reviewers_inputs.vue?vue&type=script&lang=js\"","<script>\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { state } from './sidebar_reviewers.vue';\n\nexport default {\n data() {\n return state;\n },\n computed: {\n reviewers() {\n return this.issuable?.reviewers?.nodes || [];\n },\n },\n methods: {\n getIdFromGraphQLId,\n },\n};\n</script>\n\n<template>\n <div>\n <input\n v-for=\"reviewer in reviewers\"\n :key=\"reviewer.id\"\n type=\"hidden\"\n name=\"merge_request[reviewer_ids][]\"\n :value=\"getIdFromGraphQLId(reviewer.id)\"\n :data-avatar-url=\"reviewer.avatarUrl\"\n :data-name=\"reviewer.name\"\n :data-username=\"reviewer.username\"\n :data-can_merge=\"reviewer.mergeRequestInteraction.canMerge\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_reviewers_inputs.vue?vue&type=template&id=21442096\"\nimport script from \"./sidebar_reviewers_inputs.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_reviewers_inputs.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',_vm._l((_vm.reviewers),function(reviewer){return _c('input',{key:reviewer.id,attrs:{\"type\":\"hidden\",\"name\":\"merge_request[reviewer_ids][]\",\"data-avatar-url\":reviewer.avatarUrl,\"data-name\":reviewer.name,\"data-username\":reviewer.username,\"data-can_merge\":reviewer.mergeRequestInteraction.canMerge},domProps:{\"value\":_vm.getIdFromGraphQLId(reviewer.id)}})}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./status_dropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./status_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport { statusDropdownOptions } from '../../constants';\n\nexport default {\n components: {\n GlCollapsibleListbox,\n },\n data() {\n return {\n status: null,\n selectedValue: undefined,\n };\n },\n computed: {\n dropdownText() {\n const selected = this.$options.statusDropdownOptions.find(\n (option) => option.value === this.selectedValue,\n );\n return selected?.text || this.$options.i18n.defaultDropdownText;\n },\n },\n methods: {\n handleReset() {\n this.selectedValue = undefined;\n },\n },\n i18n: {\n dropdownTitle: __('Change status'),\n defaultDropdownText: __('Select status'),\n resetText: __('Reset'),\n },\n statusDropdownOptions,\n};\n</script>\n<template>\n <div>\n <input type=\"hidden\" name=\"update[state_event]\" :value=\"selectedValue\" />\n <gl-collapsible-listbox\n v-model=\"selectedValue\"\n block\n :header-text=\"$options.i18n.dropdownTitle\"\n :reset-button-label=\"$options.i18n.resetText\"\n :toggle-text=\"dropdownText\"\n :items=\"$options.statusDropdownOptions\"\n @reset=\"handleReset\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./status_dropdown.vue?vue&type=template&id=bede5c70\"\nimport script from \"./status_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./status_dropdown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"update[state_event]\"},domProps:{\"value\":_vm.selectedValue}}),_vm._v(\" \"),_c('gl-collapsible-listbox',{attrs:{\"block\":\"\",\"header-text\":_vm.$options.i18n.dropdownTitle,\"reset-button-label\":_vm.$options.i18n.resetText,\"toggle-text\":_vm.dropdownText,\"items\":_vm.$options.statusDropdownOptions},on:{\"reset\":_vm.handleReset},model:{value:(_vm.selectedValue),callback:function ($$v) {_vm.selectedValue=$$v},expression:\"selectedValue\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./subscriptions_dropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./subscriptions_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport { subscriptionsDropdownOptions } from '../../constants';\n\nexport default {\n subscriptionsDropdownOptions,\n i18n: {\n defaultDropdownText: __('Select subscription'),\n headerText: __('Change subscription'),\n resetText: __('Reset'),\n },\n components: {\n GlCollapsibleListbox,\n },\n data() {\n return {\n selectedValue: undefined,\n };\n },\n computed: {\n dropdownText() {\n const selected = this.$options.subscriptionsDropdownOptions.find(\n (option) => option.value === this.selectedValue,\n );\n return selected?.text || this.$options.i18n.defaultDropdownText;\n },\n },\n methods: {\n handleReset() {\n this.selectedValue = undefined;\n },\n },\n};\n</script>\n<template>\n <div>\n <input type=\"hidden\" name=\"update[subscription_event]\" :value=\"selectedValue\" />\n <gl-collapsible-listbox\n v-model=\"selectedValue\"\n block\n :header-text=\"$options.i18n.headerText\"\n :reset-button-label=\"$options.i18n.resetText\"\n :toggle-text=\"dropdownText\"\n :items=\"$options.subscriptionsDropdownOptions\"\n @reset=\"handleReset\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./subscriptions_dropdown.vue?vue&type=template&id=ac9e51ba\"\nimport script from \"./subscriptions_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./subscriptions_dropdown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"update[subscription_event]\"},domProps:{\"value\":_vm.selectedValue}}),_vm._v(\" \"),_c('gl-collapsible-listbox',{attrs:{\"block\":\"\",\"header-text\":_vm.$options.i18n.headerText,\"reset-button-label\":_vm.$options.i18n.resetText,\"toggle-text\":_vm.dropdownText,\"items\":_vm.$options.subscriptionsDropdownOptions},on:{\"reset\":_vm.handleReset},model:{value:(_vm.selectedValue),callback:function ($$v) {_vm.selectedValue=$$v},expression:\"selectedValue\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_time_tracking.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_time_tracking.vue?vue&type=script&lang=js\"","<script>\nimport $ from 'jquery';\nimport { intersection } from 'lodash';\n\nimport '~/smart_interval';\n\nimport eventHub from '../../event_hub';\nimport IssuableTimeTracker from './time_tracker.vue';\n\nexport default {\n components: {\n IssuableTimeTracker,\n },\n props: {\n fullPath: {\n type: String,\n required: false,\n default: '',\n },\n issuableId: {\n type: String,\n required: true,\n },\n issuableIid: {\n type: String,\n required: true,\n },\n limitToHours: {\n type: Boolean,\n required: false,\n default: false,\n },\n canAddTimeEntries: {\n type: Boolean,\n required: false,\n default: true,\n },\n canSetTimeEstimate: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n mounted() {\n this.listenForQuickActions();\n },\n methods: {\n listenForQuickActions() {\n $(document).on('ajax:success', '.gfm-form', this.quickActionListened);\n\n eventHub.$on('timeTrackingUpdated', (data) => {\n this.quickActionListened({ detail: [data] });\n });\n },\n quickActionListened(e) {\n const data = e.detail[0];\n\n const subscribedCommands = ['spend_time', 'time_estimate'];\n let changedCommands;\n if (data !== undefined) {\n changedCommands = data.commands_changes ? Object.keys(data.commands_changes) : [];\n } else {\n changedCommands = [];\n }\n if (changedCommands && intersection(subscribedCommands, changedCommands).length) {\n eventHub.$emit('timeTracker:refresh');\n }\n },\n },\n};\n</script>\n\n<template>\n <div class=\"block time-tracking\">\n <issuable-time-tracker\n :full-path=\"fullPath\"\n :issuable-id=\"issuableId\"\n :issuable-iid=\"issuableIid\"\n :limit-to-hours=\"limitToHours\"\n :can-add-time-entries=\"canAddTimeEntries\"\n :can-set-time-estimate=\"canSetTimeEstimate\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_time_tracking.vue?vue&type=template&id=22c1b5e0\"\nimport script from \"./sidebar_time_tracking.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_time_tracking.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"block time-tracking\"},[_c('issuable-time-tracker',{attrs:{\"full-path\":_vm.fullPath,\"issuable-id\":_vm.issuableId,\"issuable-iid\":_vm.issuableIid,\"limit-to-hours\":_vm.limitToHours,\"can-add-time-entries\":_vm.canAddTimeEntries,\"can-set-time-estimate\":_vm.canSetTimeEstimate}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./crm_contacts.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./crm_contacts.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlLink, GlPopover, GlTooltipDirective } from '@gitlab/ui';\nimport { __, n__, sprintf } from '~/locale';\nimport { createAlert } from '~/alert';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport { convertToGraphQLId, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_ISSUE } from '~/graphql_shared/constants';\nimport { DOCS_URL_IN_EE_DIR } from 'jh_else_ce/lib/utils/url_utility';\nimport getIssueCrmContactsQuery from '../../queries/get_issue_crm_contacts.query.graphql';\nimport issueCrmContactsSubscription from '../../queries/issue_crm_contacts.subscription.graphql';\n\nexport default {\n crmDocsLink: `${DOCS_URL_IN_EE_DIR}/user/crm/`,\n components: {\n GlIcon,\n GlLink,\n GlPopover,\n HelpIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n issueId: {\n type: String,\n required: true,\n },\n groupIssuesPath: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n contacts: [],\n };\n },\n apollo: {\n contacts: {\n query: getIssueCrmContactsQuery,\n variables() {\n return this.queryVariables;\n },\n update(data) {\n return data?.issue?.customerRelationsContacts?.nodes;\n },\n error(error) {\n createAlert({\n message: __('Something went wrong trying to load issue contacts.'),\n error,\n captureError: true,\n });\n },\n subscribeToMore: {\n document: issueCrmContactsSubscription,\n variables() {\n return this.queryVariables;\n },\n updateQuery(prev, { subscriptionData }) {\n const draftData = subscriptionData?.data?.issueCrmContactsUpdated;\n if (prev && draftData) return { issue: draftData };\n return prev;\n },\n },\n },\n },\n computed: {\n shouldShowContacts() {\n return this.contacts?.length;\n },\n queryVariables() {\n return { id: convertToGraphQLId(TYPENAME_ISSUE, this.issueId) };\n },\n contactsLabel() {\n return sprintf(n__('%{count} contact', '%{count} contacts', this.contactCount), {\n count: this.contactCount,\n });\n },\n contactCount() {\n return this.contacts?.length || 0;\n },\n },\n methods: {\n shouldShowPopover(contact) {\n return this.popOverData(contact).length > 0;\n },\n divider(index) {\n if (index < this.contactCount - 1) return ',';\n return '';\n },\n popOverData(contact) {\n return [contact.organization?.name, contact.email, contact.phone, contact.description].filter(\n Boolean,\n );\n },\n getIssuesPath(contactId) {\n const id = getIdFromGraphQLId(contactId);\n return `${this.groupIssuesPath}?crm_contact_id=${id}`;\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div v-gl-tooltip.left.viewport :title=\"contactsLabel\" class=\"sidebar-collapsed-icon\">\n <gl-icon name=\"users\" />\n <span> {{ contactCount }} </span>\n </div>\n <div class=\"hide-collapsed help-button gl-float-right\">\n <gl-link :href=\"$options.crmDocsLink\" target=\"_blank\"><help-icon /></gl-link>\n </div>\n <div class=\"hide-collapsed gl-font-bold gl-leading-20\">\n {{ contactsLabel }}\n </div>\n <div v-if=\"shouldShowContacts\" class=\"hide-collapsed gl-mt-2 gl-flex gl-flex-wrap\">\n <div\n v-for=\"(contact, index) in contacts\"\n :id=\"`contact_container_${index}`\"\n :key=\"index\"\n class=\"gl-pr-2\"\n >\n <gl-link :id=\"`contact_${index}`\" :href=\"getIssuesPath(contact.id)\"\n >{{ contact.firstName }} {{ contact.lastName }}{{ divider(index) }}</gl-link\n >\n <gl-popover\n v-if=\"shouldShowPopover(contact)\"\n :target=\"`contact_${index}`\"\n :container=\"`contact_container_${index}`\"\n triggers=\"hover focus\"\n placement=\"top\"\n >\n <div v-for=\"row in popOverData(contact)\" :key=\"row\">{{ row }}</div>\n </gl-popover>\n </div>\n </div>\n <div\n v-else\n data-testid=\"crm-empty-message\"\n class=\"hide-collapsed gl-flex gl-items-center gl-text-subtle\"\n >\n {{ __('To add active contacts, use /add_contacts.') }}\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./crm_contacts.vue?vue&type=template&id=fde89430\"\nimport script from \"./crm_contacts.vue?vue&type=script&lang=js\"\nexport * from \"./crm_contacts.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.contactsLabel}},[_c('gl-icon',{attrs:{\"name\":\"users\"}}),_vm._v(\" \"),_c('span',[_vm._v(\" \"+_vm._s(_vm.contactCount)+\" \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed help-button gl-float-right\"},[_c('gl-link',{attrs:{\"href\":_vm.$options.crmDocsLink,\"target\":\"_blank\"}},[_c('help-icon')],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed gl-font-bold gl-leading-20\"},[_vm._v(\"\\n \"+_vm._s(_vm.contactsLabel)+\"\\n \")]),_vm._v(\" \"),(_vm.shouldShowContacts)?_c('div',{staticClass:\"hide-collapsed gl-mt-2 gl-flex gl-flex-wrap\"},_vm._l((_vm.contacts),function(contact,index){return _c('div',{key:index,staticClass:\"gl-pr-2\",attrs:{\"id\":`contact_container_${index}`}},[_c('gl-link',{attrs:{\"id\":`contact_${index}`,\"href\":_vm.getIssuesPath(contact.id)}},[_vm._v(_vm._s(contact.firstName)+\" \"+_vm._s(contact.lastName)+_vm._s(_vm.divider(index)))]),_vm._v(\" \"),(_vm.shouldShowPopover(contact))?_c('gl-popover',{attrs:{\"target\":`contact_${index}`,\"container\":`contact_container_${index}`,\"triggers\":\"hover focus\",\"placement\":\"top\"}},_vm._l((_vm.popOverData(contact)),function(row){return _c('div',{key:row},[_vm._v(_vm._s(row))])}),0):_vm._e()],1)}),0):_c('div',{staticClass:\"hide-collapsed gl-flex gl-items-center gl-text-subtle\",attrs:{\"data-testid\":\"crm-empty-message\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('To add active contacts, use /add_contacts.'))+\"\\n \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('project-select',{attrs:{\"projects-fetch-path\":_vm.projectsAutocompleteEndpoint,\"dropdown-button-title\":_vm.dropdownButtonTitle,\"dropdown-header-title\":_vm.$options.i18n.title,\"move-in-progress\":_vm.moveInProgress},on:{\"move-issuable\":_vm.moveIssue}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./move_issue_button.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./move_issue_button.vue?vue&type=script&lang=js\"","<script>\nimport ProjectSelect from '~/sidebar/components/move/issuable_move_dropdown.vue';\nimport { __ } from '~/locale';\nimport { createAlert } from '~/alert';\nimport { visitUrl } from '~/lib/utils/url_utility';\nimport moveIssueMutation from '../../queries/move_issue.mutation.graphql';\n\nexport default {\n name: 'MoveIssueButton',\n components: { ProjectSelect },\n inject: ['projectsAutocompleteEndpoint', 'projectFullPath', 'issueIid'],\n\n i18n: {\n title: __('Move issue'),\n titleInProgress: __('Moving issue'),\n moveErrorMessage: __('An error occurred while moving the issue.'),\n },\n data() {\n return {\n moveInProgress: false,\n };\n },\n computed: {\n dropdownButtonTitle() {\n return this.moveInProgress ? this.$options.i18n.titleInProgress : this.$options.i18n.title;\n },\n },\n methods: {\n async moveIssue(targetProject) {\n this.moveInProgress = true;\n\n try {\n const { data } = await this.$apollo.mutate({\n mutation: moveIssueMutation,\n variables: {\n moveIssueInput: {\n projectPath: this.projectFullPath,\n iid: this.issueIid,\n targetProjectPath: targetProject.full_path,\n },\n },\n });\n\n if (!data.issueMove) return;\n\n const { errors } = data.issueMove;\n if (errors?.length > 0) {\n throw new Error(`Error moving the issue. Error message: ${errors[0].message}`);\n }\n\n visitUrl(data.issueMove?.issue.webUrl);\n } catch (error) {\n createAlert({\n message: this.$options.i18n.moveErrorMessage,\n captureError: true,\n error,\n });\n } finally {\n this.moveInProgress = false;\n }\n },\n },\n};\n</script>\n<template>\n <project-select\n :projects-fetch-path=\"projectsAutocompleteEndpoint\"\n :dropdown-button-title=\"dropdownButtonTitle\"\n :dropdown-header-title=\"$options.i18n.title\"\n :move-in-progress=\"moveInProgress\"\n @move-issuable=\"moveIssue\"\n />\n</template>\n","import { render, staticRenderFns } from \"./move_issue_button.vue?vue&type=template&id=f71528c0\"\nimport script from \"./move_issue_button.vue?vue&type=script&lang=js\"\nexport * from \"./move_issue_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./confidentiality_dropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./confidentiality_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n components: {\n GlCollapsibleListbox,\n },\n data() {\n return {\n value: null,\n };\n },\n i18n: {\n defaultDropdownText: __('Select confidentiality'),\n headerText: __('Change confidentiality'),\n resetText: __('Reset'),\n },\n computed: {\n toggleText() {\n return this.value ? null : this.$options.i18n.defaultDropdownText;\n },\n },\n methods: {\n handleReset() {\n this.value = null;\n },\n },\n dropdownOptions: [\n {\n text: __('Confidential'),\n value: 'true',\n },\n {\n text: __('Not confidential'),\n value: 'false',\n },\n ],\n};\n</script>\n\n<template>\n <div>\n <input type=\"hidden\" name=\"update[confidentiality]\" :value=\"value\" />\n <gl-collapsible-listbox\n v-model=\"value\"\n block\n :header-text=\"$options.i18n.headerText\"\n :reset-button-label=\"$options.i18n.resetText\"\n :toggle-text=\"toggleText\"\n :items=\"$options.dropdownOptions\"\n @reset=\"handleReset\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./confidentiality_dropdown.vue?vue&type=template&id=06b73f4c\"\nimport script from \"./confidentiality_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./confidentiality_dropdown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"update[confidentiality]\"},domProps:{\"value\":_vm.value}}),_vm._v(\" \"),_c('gl-collapsible-listbox',{attrs:{\"block\":\"\",\"header-text\":_vm.$options.i18n.headerText,\"reset-button-label\":_vm.$options.i18n.resetText,\"toggle-text\":_vm.toggleText,\"items\":_vm.$options.dropdownOptions},on:{\"reset\":_vm.handleReset},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport { TYPENAME_ISSUE, TYPENAME_MERGE_REQUEST } from '~/graphql_shared/constants';\nimport { convertToGraphQLId, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST, WORKSPACE_PROJECT } from '~/issues/constants';\nimport { gqlClient } from '~/issues/list/graphql';\nimport {\n isInDesignPage,\n isInIncidentPage,\n isInIssuePage,\n parseBoolean,\n} from '~/lib/utils/common_utils';\nimport { __ } from '~/locale';\nimport { apolloProvider } from '~/graphql_shared/issuable_client';\nimport Translate from '~/vue_shared/translate';\nimport UserSelect from '~/vue_shared/components/user_select/user_select.vue';\nimport CollapsedAssigneeList from './components/assignees/collapsed_assignee_list.vue';\nimport SidebarAssigneesWidget from './components/assignees/sidebar_assignees_widget.vue';\nimport CopyEmailToClipboard from './components/copy/copy_email_to_clipboard.vue';\nimport SidebarDueDateWidget from './components/date/sidebar_date_widget.vue';\nimport SidebarEscalationStatus from './components/incidents/sidebar_escalation_status.vue';\nimport LabelsSelectWidget from './components/labels/labels_select_widget/labels_select_root.vue';\nimport IssuableLockForm from './components/lock/issuable_lock_form.vue';\nimport MilestoneDropdown from './components/milestone/milestone_dropdown.vue';\nimport MoveIssuesButton from './components/move/move_issues_button.vue';\nimport SidebarParticipantsWidget from './components/participants/sidebar_participants_widget.vue';\nimport SidebarReferenceWidget from './components/copy/sidebar_reference_widget.vue';\nimport SidebarReviewers from './components/reviewers/sidebar_reviewers.vue';\nimport SidebarReviewersInputs from './components/reviewers/sidebar_reviewers_inputs.vue';\nimport SidebarSeverityWidget from './components/severity/sidebar_severity_widget.vue';\nimport SidebarDropdownWidget from './components/sidebar_dropdown_widget.vue';\nimport StatusDropdown from './components/status/status_dropdown.vue';\nimport SidebarSubscriptionsWidget from './components/subscriptions/sidebar_subscriptions_widget.vue';\nimport SubscriptionsDropdown from './components/subscriptions/subscriptions_dropdown.vue';\nimport SidebarTimeTracking from './components/time_tracking/sidebar_time_tracking.vue';\nimport SidebarTodoWidget from './components/todo_toggle/sidebar_todo_widget.vue';\nimport { IssuableAttributeType } from './constants';\nimport CrmContacts from './components/crm_contacts/crm_contacts.vue';\nimport trackShowInviteMemberLink from './track_invite_members';\nimport MoveIssueButton from './components/move/move_issue_button.vue';\nimport ConfidentialityDropdown from './components/confidential/confidentiality_dropdown.vue';\n\nVue.use(Translate);\nVue.use(VueApollo);\n\nfunction getSidebarOptions(sidebarOptEl = document.querySelector('.js-sidebar-options')) {\n return JSON.parse(sidebarOptEl.innerHTML);\n}\n\nfunction mountSidebarTodoWidget() {\n const el = document.querySelector('.js-sidebar-todo-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { projectPath, iid, id } = el.dataset;\n\n return new Vue({\n el,\n name: 'SidebarTodoWidgetRoot',\n apolloProvider,\n provide: {\n isClassicSidebar: true,\n },\n render: (createElement) =>\n createElement(SidebarTodoWidget, {\n props: {\n fullPath: projectPath,\n issuableId:\n isInIssuePage() || isInIncidentPage() || isInDesignPage()\n ? convertToGraphQLId(TYPENAME_ISSUE, id)\n : convertToGraphQLId(TYPENAME_MERGE_REQUEST, id),\n issuableIid: iid,\n issuableType:\n isInIssuePage() || isInIncidentPage() || isInDesignPage()\n ? TYPE_ISSUE\n : TYPE_MERGE_REQUEST,\n },\n }),\n });\n}\n\nfunction mountSidebarAssigneesWidget() {\n const el = document.querySelector('.js-sidebar-assignees-root');\n\n if (!el) {\n return;\n }\n\n const { id, iid, fullPath, editable } = getSidebarOptions();\n const isIssuablePage = isInIssuePage() || isInIncidentPage() || isInDesignPage();\n const issuableType = isIssuablePage ? TYPE_ISSUE : TYPE_MERGE_REQUEST;\n // eslint-disable-next-line no-new\n new Vue({\n el,\n name: 'SidebarAssigneesRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(editable),\n directlyInviteMembers: Object.prototype.hasOwnProperty.call(\n el.dataset,\n 'directlyInviteMembers',\n ),\n },\n render: (createElement) =>\n createElement(SidebarAssigneesWidget, {\n props: {\n iid: String(iid),\n fullPath,\n issuableType,\n issuableId: id,\n allowMultipleAssignees: !el.dataset.maxAssignees || el.dataset.maxAssignees > 1,\n editable: parseBoolean(editable),\n },\n scopedSlots: {\n collapsed: ({ users }) =>\n createElement(CollapsedAssigneeList, {\n props: {\n users,\n issuableType,\n },\n }),\n },\n }),\n });\n}\n\nfunction mountSidebarReviewers(mediator) {\n const el = document.querySelector('.js-sidebar-reviewers-root');\n\n if (!el) {\n return;\n }\n\n const {\n id,\n iid,\n fullPath,\n multipleApprovalRulesAvailable = false,\n directlyInviteMembers = false,\n } = getSidebarOptions();\n // eslint-disable-next-line no-new\n new Vue({\n el,\n name: 'SidebarReviewersRoot',\n apolloProvider,\n provide: {\n issuableIid: String(iid),\n issuableId: String(id),\n projectPath: fullPath,\n multipleApprovalRulesAvailable: parseBoolean(multipleApprovalRulesAvailable),\n directlyInviteMembers: parseBoolean(directlyInviteMembers),\n },\n render: (createElement) =>\n createElement(SidebarReviewers, {\n props: {\n mediator,\n issuableIid: String(iid),\n projectPath: fullPath,\n field: el.dataset.field,\n issuableType: isInIssuePage() || isInDesignPage() ? TYPE_ISSUE : TYPE_MERGE_REQUEST,\n },\n }),\n });\n\n const reviewersInputEl = document.querySelector('.js-reviewers-inputs');\n\n if (reviewersInputEl) {\n // eslint-disable-next-line no-new\n new Vue({\n el: reviewersInputEl,\n render(createElement) {\n return createElement(SidebarReviewersInputs);\n },\n });\n }\n\n const reviewerDropdown = document.querySelector('.js-sidebar-reviewer-dropdown');\n\n if (reviewerDropdown) {\n trackShowInviteMemberLink(reviewerDropdown);\n }\n}\n\nfunction mountSidebarCrmContacts() {\n const el = document.querySelector('.js-sidebar-crm-contacts-root');\n\n if (!el) {\n return null;\n }\n\n const { issueId, groupIssuesPath } = el.dataset;\n\n return new Vue({\n el,\n name: 'SidebarCrmContactsRoot',\n apolloProvider,\n render: (createElement) =>\n createElement(CrmContacts, {\n props: {\n issueId,\n groupIssuesPath,\n },\n }),\n });\n}\n\nfunction mountSidebarMilestoneWidget() {\n const el = document.querySelector('.js-sidebar-milestone-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { canEdit, projectPath, issueIid } = el.dataset;\n\n return new Vue({\n el,\n name: 'SidebarMilestoneWidgetRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(canEdit),\n isClassicSidebar: true,\n },\n render: (createElement) =>\n createElement(SidebarDropdownWidget, {\n props: {\n attrWorkspacePath: projectPath,\n workspacePath: projectPath,\n iid: issueIid,\n issuableType:\n isInIssuePage() || isInIncidentPage() || isInDesignPage()\n ? TYPE_ISSUE\n : TYPE_MERGE_REQUEST,\n issuableAttribute: IssuableAttributeType.Milestone,\n icon: 'milestone',\n },\n }),\n });\n}\n\nexport function mountMilestoneDropdown() {\n const el = document.querySelector('.js-milestone-dropdown-root');\n\n if (!el) {\n return null;\n }\n\n Vue.use(VueApollo);\n\n const {\n canAdminMilestone,\n fullPath,\n inputName,\n milestoneId,\n milestoneTitle,\n projectMilestonesPath,\n workspaceType,\n } = el.dataset;\n\n return new Vue({\n el,\n name: 'MilestoneDropdownRoot',\n apolloProvider,\n render(createElement) {\n return createElement(MilestoneDropdown, {\n props: {\n attrWorkspacePath: fullPath,\n canAdminMilestone,\n inputName,\n issuableType: isInIssuePage() ? TYPE_ISSUE : TYPE_MERGE_REQUEST,\n milestoneId,\n milestoneTitle,\n projectMilestonesPath,\n workspaceType,\n },\n });\n },\n });\n}\n\nexport function mountSidebarLabelsWidget() {\n const el = document.querySelector('.js-sidebar-labels-widget-root');\n\n if (!el) {\n return null;\n }\n\n return new Vue({\n el,\n name: 'SidebarLabelsWidgetRoot',\n apolloProvider,\n provide: {\n ...el.dataset,\n canUpdate: parseBoolean(el.dataset.canEdit),\n allowLabelCreate: parseBoolean(el.dataset.allowLabelCreate),\n allowLabelEdit: parseBoolean(el.dataset.canEdit),\n allowScopedLabels: parseBoolean(el.dataset.allowScopedLabels),\n isClassicSidebar: true,\n },\n render: (createElement) =>\n createElement(LabelsSelectWidget, {\n props: {\n iid: String(el.dataset.iid),\n fullPath: el.dataset.projectPath,\n allowLabelRemove: parseBoolean(el.dataset.canEdit),\n allowMultiselect: true,\n footerCreateLabelTitle: __('Create project label'),\n footerManageLabelTitle: __('Manage project labels'),\n labelsCreateTitle: __('Create project label'),\n labelsFilterBasePath: el.dataset.projectIssuesPath,\n issuableType:\n isInIssuePage() || isInIncidentPage() || isInDesignPage()\n ? TYPE_ISSUE\n : TYPE_MERGE_REQUEST,\n workspaceType: WORKSPACE_PROJECT,\n attrWorkspacePath: el.dataset.projectPath,\n labelCreateType: WORKSPACE_PROJECT,\n },\n class: ['block labels js-labels-block'],\n scopedSlots: {\n default: () => __('None'),\n },\n }),\n });\n}\n\nfunction mountSidebarDueDateWidget() {\n const el = document.querySelector('.js-sidebar-due-date-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { fullPath, iid, editable } = getSidebarOptions();\n\n return new Vue({\n el,\n name: 'SidebarDueDateWidgetRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(editable),\n },\n render: (createElement) =>\n createElement(SidebarDueDateWidget, {\n props: {\n iid: String(iid),\n fullPath,\n issuableType: TYPE_ISSUE,\n },\n }),\n });\n}\n\nfunction mountSidebarReferenceWidget() {\n const el = document.querySelector('.js-sidebar-reference-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { fullPath, iid } = getSidebarOptions();\n\n return new Vue({\n el,\n name: 'SidebarReferenceWidgetRoot',\n apolloProvider,\n provide: {\n iid: String(iid),\n fullPath,\n },\n render: (createElement) =>\n createElement(SidebarReferenceWidget, {\n props: {\n issuableType:\n isInIssuePage() || isInIncidentPage() || isInDesignPage()\n ? TYPE_ISSUE\n : TYPE_MERGE_REQUEST,\n },\n }),\n });\n}\n\nfunction mountIssuableLockForm(store) {\n const el = document.querySelector('.js-sidebar-lock-root');\n\n if (!el || !store) {\n return null;\n }\n\n const { fullPath, editable } = getSidebarOptions();\n\n return new Vue({\n el,\n name: 'SidebarLockRoot',\n store,\n provide: {\n fullPath,\n },\n render: (createElement) =>\n createElement(IssuableLockForm, {\n props: {\n isEditable: parseBoolean(editable),\n },\n }),\n });\n}\n\nfunction mountSidebarParticipantsWidget() {\n const el = document.querySelector('.js-sidebar-participants-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { fullPath, iid } = getSidebarOptions();\n\n return new Vue({\n el,\n name: 'SidebarParticipantsWidgetRoot',\n apolloProvider,\n render: (createElement) =>\n createElement(SidebarParticipantsWidget, {\n props: {\n iid: String(iid),\n fullPath,\n issuableType:\n isInIssuePage() || isInIncidentPage() || isInDesignPage()\n ? TYPE_ISSUE\n : TYPE_MERGE_REQUEST,\n },\n }),\n });\n}\n\nfunction mountSidebarSubscriptionsWidget() {\n const el = document.querySelector('.js-sidebar-subscriptions-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { fullPath, iid, editable } = getSidebarOptions();\n\n return new Vue({\n el,\n name: 'SidebarSubscriptionsWidgetRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(editable),\n },\n render: (createElement) =>\n createElement(SidebarSubscriptionsWidget, {\n props: {\n iid: String(iid),\n fullPath,\n issuableType:\n isInIssuePage() || isInIncidentPage() || isInDesignPage()\n ? TYPE_ISSUE\n : TYPE_MERGE_REQUEST,\n },\n }),\n });\n}\n\nfunction mountSidebarTimeTracking() {\n const el = document.querySelector('.js-sidebar-time-tracking-root');\n\n const { id, iid, fullPath, issuableType, timeTrackingLimitToHours, canCreateTimelogs, editable } =\n getSidebarOptions();\n\n if (!el) {\n return null;\n }\n\n return new Vue({\n el,\n name: 'SidebarTimeTrackingRoot',\n apolloProvider,\n provide: { issuableType },\n render: (createElement) =>\n createElement(SidebarTimeTracking, {\n props: {\n fullPath,\n issuableId: id.toString(),\n issuableIid: iid.toString(),\n limitToHours: timeTrackingLimitToHours,\n canAddTimeEntries: canCreateTimelogs,\n canSetTimeEstimate: parseBoolean(editable),\n },\n }),\n });\n}\n\nfunction mountSidebarSeverityWidget() {\n const el = document.querySelector('.js-sidebar-severity-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { fullPath, iid, severity, editable } = getSidebarOptions();\n\n return new Vue({\n el,\n name: 'SidebarSeverityWidgetRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(editable),\n },\n render: (createElement) =>\n createElement(SidebarSeverityWidget, {\n props: {\n projectPath: fullPath,\n iid: String(iid),\n initialSeverity: severity.toUpperCase(),\n },\n }),\n });\n}\n\nfunction mountSidebarEscalationStatus() {\n const el = document.querySelector('.js-sidebar-escalation-status-root');\n\n if (!el) {\n return null;\n }\n\n const { issuableType } = getSidebarOptions();\n const { canUpdate, issueIid, projectPath } = el.dataset;\n\n return new Vue({\n el,\n name: 'SidebarEscalationStatusRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(canUpdate),\n },\n render: (createElement) =>\n createElement(SidebarEscalationStatus, {\n props: {\n iid: issueIid,\n issuableType,\n projectPath,\n },\n }),\n });\n}\n\nfunction mountCopyEmailToClipboard() {\n const el = document.querySelector('.js-sidebar-copy-email-root');\n\n if (!el) {\n return null;\n }\n\n const { createNoteEmail } = getSidebarOptions();\n\n return new Vue({\n el,\n name: 'SidebarCopyEmailRoot',\n render: (createElement) =>\n createElement(CopyEmailToClipboard, { props: { issueEmailAddress: createNoteEmail } }),\n });\n}\n\nexport async function mountMoveIssuesButton() {\n const el = document.querySelector('.js-move-issues');\n\n if (!el) {\n return null;\n }\n\n Vue.use(VueApollo);\n\n return new Vue({\n el,\n name: 'MoveIssuesRoot',\n apolloProvider: new VueApollo({\n defaultClient: await gqlClient(),\n }),\n render: (createElement) =>\n createElement(MoveIssuesButton, {\n props: {\n projectFullPath: el.dataset.projectFullPath,\n projectsFetchPath: el.dataset.projectsFetchPath,\n },\n }),\n });\n}\n\nexport function mountStatusDropdown() {\n const el = document.querySelector('.js-status-dropdown');\n\n if (!el) {\n return null;\n }\n\n return new Vue({\n el,\n name: 'StatusDropdownRoot',\n render: (createElement) => createElement(StatusDropdown),\n });\n}\n\nexport function mountSubscriptionsDropdown() {\n const el = document.querySelector('.js-subscriptions-dropdown');\n\n if (!el) {\n return null;\n }\n\n return new Vue({\n el,\n name: 'SubscriptionsDropdownRoot',\n render: (createElement) => createElement(SubscriptionsDropdown),\n });\n}\n\nexport function mountConfidentialityDropdown() {\n const el = document.querySelector('.js-confidentiality-dropdown');\n\n if (!el) {\n return null;\n }\n\n return new Vue({\n el,\n name: 'ConfidentialityDropdownRoot',\n render: (createElement) => createElement(ConfidentialityDropdown),\n });\n}\n\nexport function mountMoveIssueButton() {\n const el = document.querySelector('.js-sidebar-move-issue-block');\n\n if (!el) {\n return null;\n }\n\n const { projectsAutocompleteEndpoint } = getSidebarOptions();\n const { projectFullPath, issueIid } = el.dataset;\n\n Vue.use(VueApollo);\n\n return new Vue({\n el,\n name: 'MoveIssueDropdownRoot',\n apolloProvider,\n provide: {\n projectsAutocompleteEndpoint,\n projectFullPath,\n issueIid,\n },\n render: (createElement) => createElement(MoveIssueButton),\n });\n}\n\nexport function mountAssigneesDropdown() {\n const el = document.querySelector('.js-assignee-dropdown');\n const assigneeIdsInput = document.querySelector('.js-assignee-ids-input');\n\n if (!el || !assigneeIdsInput) {\n return null;\n }\n\n const { fullPath } = el.dataset;\n const currentUser = {\n id: gon?.current_user_id,\n username: gon?.current_username,\n name: gon?.current_user_fullname,\n avatarUrl: gon?.current_user_avatar_url,\n };\n\n return new Vue({\n el,\n apolloProvider,\n data() {\n return {\n selectedUserName: '',\n value: [],\n };\n },\n methods: {\n onSelectedUnassigned() {\n assigneeIdsInput.value = 0;\n this.value = [];\n this.selectedUserName = __('Unassigned');\n },\n onSelected(selected) {\n assigneeIdsInput.value = selected.map((user) => getIdFromGraphQLId(user.id));\n this.value = selected;\n this.selectedUserName = selected.map((user) => user.name).join(', ');\n },\n },\n render(h) {\n const component = this;\n\n return h(UserSelect, {\n props: {\n text: component.selectedUserName || __('Select assignee'),\n headerText: __('Select assignees'),\n fullPath,\n currentUser,\n value: component.value,\n },\n on: {\n input(selected) {\n if (!selected.length) {\n component.onSelectedUnassigned();\n return;\n }\n\n component.onSelected(selected);\n },\n },\n class: 'gl-w-full',\n });\n },\n });\n}\n\nexport function mountSidebar(mediator, store) {\n mountSidebarTodoWidget();\n mountSidebarAssigneesWidget();\n mountSidebarReviewers(mediator);\n mountSidebarCrmContacts();\n mountSidebarLabelsWidget();\n mountSidebarMilestoneWidget();\n mountSidebarDueDateWidget();\n mountSidebarReferenceWidget();\n mountIssuableLockForm(store);\n mountSidebarParticipantsWidget();\n mountSidebarSubscriptionsWidget();\n mountCopyEmailToClipboard();\n mountSidebarTimeTracking();\n mountSidebarSeverityWidget();\n mountSidebarEscalationStatus();\n mountMoveIssueButton();\n}\n\nexport { getSidebarOptions };\n","import $ from 'jquery';\nimport Tracking from '~/tracking';\n\nexport default function initTrackInviteMembers(userDropdown) {\n const { trackAction, trackLabel } = userDropdown.querySelector(\n '.js-invite-members-track',\n ).dataset;\n\n $(userDropdown).on('shown.bs.dropdown', () => {\n Tracking.event(undefined, trackAction, {\n label: trackLabel,\n });\n });\n}\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar regexpTag = '[object RegExp]';\n\n/**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\nfunction baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n}\n\nmodule.exports = baseIsRegExp;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-mt-3\",attrs:{\"data-testid\":\"disabled-comments\"}},[_c('span',{staticClass:\"issuable-note-warning gl-inline-block gl-w-full gl-rounded-base gl-px-5 gl-py-4\"},[_c('gl-icon',{staticClass:\"icon\",attrs:{\"size\":16,\"name\":\"lock\"}}),_vm._v(\" \"),(_vm.isProjectArchived)?_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.projectArchivedWarning)+\"\\n \"),_c('gl-link',{staticClass:\"learn-more\",attrs:{\"href\":_vm.archivedProjectDocsPath,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Learn more'))+\"\\n \")])],1):_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.lockedIssueWarning)+\"\\n \"),_c('gl-link',{staticClass:\"learn-more\",attrs:{\"href\":_vm.lockedIssueDocsPath,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Learn more'))+\"\\n \")])],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_locked_widget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./discussion_locked_widget.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink, GlIcon } from '@gitlab/ui';\nimport { __, sprintf } from '~/locale';\nimport issuableStateMixin from '../mixins/issuable_state';\n\nexport default {\n components: {\n GlIcon,\n GlLink,\n },\n mixins: [issuableStateMixin],\n props: {\n issuableType: {\n required: true,\n type: String,\n },\n },\n computed: {\n issuableDisplayName() {\n return this.issuableType.replace(/_/g, ' ');\n },\n projectArchivedWarning() {\n return __('This project is archived and cannot be commented on.');\n },\n lockedIssueWarning() {\n return sprintf(\n __(\n 'The discussion in this %{issuableDisplayName} is locked. Only project members can comment.',\n ),\n { issuableDisplayName: this.issuableDisplayName },\n );\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-mt-3\" data-testid=\"disabled-comments\">\n <span class=\"issuable-note-warning gl-inline-block gl-w-full gl-rounded-base gl-px-5 gl-py-4\">\n <gl-icon :size=\"16\" name=\"lock\" class=\"icon\" />\n <span v-if=\"isProjectArchived\">\n {{ projectArchivedWarning }}\n <gl-link :href=\"archivedProjectDocsPath\" target=\"_blank\" class=\"learn-more\">\n {{ __('Learn more') }}\n </gl-link>\n </span>\n\n <span v-else>\n {{ lockedIssueWarning }}\n <gl-link :href=\"lockedIssueDocsPath\" target=\"_blank\" class=\"learn-more\">\n {{ __('Learn more') }}\n </gl-link>\n </span>\n </span>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./discussion_locked_widget.vue?vue&type=template&id=522d0260\"\nimport script from \"./discussion_locked_widget.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_locked_widget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"isShowingLabels\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isShowingLabels\"},\"arguments\":[],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}]}]}}],\"loc\":{\"start\":0,\"end\":52}};\n doc.loc.source = {\"body\":\"query isShowingLabels {\\n isShowingLabels @client\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"isShowingLabels\"] = oneQuery(doc, \"isShowingLabels\");\n \n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GroupBoard\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"boardId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"board\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"boardId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardScopeFragment\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":236}};\n doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/boards/graphql/board_scope.fragment.graphql\\\"\\n\\nquery GroupBoard($fullPath: ID!, $boardId: BoardID!) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n board(id: $boardId) {\\n ...BoardScopeFragment\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/boards/graphql/board_scope.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"GroupBoard\"] = oneQuery(doc, \"GroupBoard\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('crud-component',{ref:\"relatedIssuesWidget\",attrs:{\"is-collapsible\":\"\",\"is-loading\":_vm.isFetching,\"title\":_vm.headerTextDisplay,\"icon\":_vm.issuableTypeIcon,\"count\":_vm.badgeLabel,\"toggle-text\":_vm.addButtonTextDisplay,\"toggle-aria-label\":_vm.addIssuableButtonText,\"help-path\":_vm.helpPath,\"help-link-text\":_vm.helpLinkText,\"anchor-id\":\"related-issues\",\"data-testid\":\"related-issues-block\"},on:{\"showForm\":function($event){return _vm.$emit('showForm')},\"hideForm\":function($event){return _vm.$emit('hideForm')}},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"header-actions\")]},proxy:true},{key:\"form\",fn:function(){return [_c('add-issuable-form',{attrs:{\"show-categorized-issues\":_vm.showCategorizedIssues,\"is-submitting\":_vm.isSubmitting,\"issuable-type\":_vm.issuableType,\"input-value\":_vm.inputValue,\"pending-references\":_vm.pendingReferences,\"auto-complete-sources\":_vm.autoCompleteSources,\"auto-complete-epics\":_vm.autoCompleteEpics,\"auto-complete-issues\":_vm.autoCompleteIssues,\"path-id-separator\":_vm.pathIdSeparator,\"has-error\":_vm.hasError,\"item-add-failure-message\":_vm.itemAddFailureMessage},on:{\"pendingIssuableRemoveRequest\":function($event){return _vm.$emit('pendingIssuableRemoveRequest', $event)},\"addIssuableFormInput\":function($event){return _vm.$emit('addIssuableFormInput', $event)},\"addIssuableFormBlur\":function($event){return _vm.$emit('addIssuableFormBlur', $event)},\"addIssuableFormSubmit\":_vm.handleFormSubmit,\"addIssuableFormCancel\":_vm.handleFormCancel}})]},proxy:true},(!_vm.shouldShowTokenBody)?{key:\"empty\",fn:function(){return [_vm._t(\"empty-state-message\",function(){return [_vm._v(_vm._s(_vm.emptyStateMessage))]}),_vm._v(\" \"),(_vm.hasHelpPath)?_c('gl-link',{attrs:{\"href\":_vm.helpPath,\"data-testid\":\"help-link\",\"aria-label\":_vm.helpLinkText}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Learn more.'))+\"\\n \")]):_vm._e()]},proxy:true}:null,{key:\"default\",fn:function(){return _vm._l((_vm.categorisedIssues),function(category,index){return _c('related-issues-list',{key:category.linkType,class:{\n 'gl-mb-5 gl-border-b-1 gl-border-b-default gl-border-b-solid':\n index !== _vm.categorisedIssues.length - 1,\n },attrs:{\"list-link-type\":category.linkType,\"heading\":_vm.$options.linkedIssueTypesTextMap[category.linkType],\"can-admin\":_vm.canAdmin,\"can-reorder\":_vm.canReorder,\"is-fetching\":_vm.isFetching,\"issuable-type\":_vm.issuableType,\"path-id-separator\":_vm.pathIdSeparator,\"related-issues\":category.issues},on:{\"relatedIssueRemoveRequest\":function($event){return _vm.$emit('relatedIssueRemoveRequest', $event)},\"saveReorder\":function($event){return _vm.$emit('saveReorder', $event)}}})})},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./related_issues_list.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./related_issues_list.vue?vue&type=script&lang=js\"","<script>\nimport { GlLoadingIcon } from '@gitlab/ui';\nimport Sortable from 'sortablejs';\nimport RelatedIssuableItem from '~/issuable/components/related_issuable_item.vue';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { defaultSortableOptions } from '~/sortable/constants';\n\nexport default {\n components: {\n GlLoadingIcon,\n RelatedIssuableItem,\n },\n props: {\n canAdmin: {\n type: Boolean,\n required: false,\n default: false,\n },\n canReorder: {\n type: Boolean,\n required: false,\n default: false,\n },\n listLinkType: {\n type: String,\n required: false,\n default: '',\n },\n heading: {\n type: String,\n required: false,\n default: '',\n },\n isFetching: {\n type: Boolean,\n required: false,\n default: false,\n },\n issuableType: {\n type: String,\n required: true,\n },\n pathIdSeparator: {\n type: String,\n required: true,\n },\n relatedIssues: {\n type: Array,\n required: false,\n default: () => [],\n },\n },\n mounted() {\n if (this.canReorder) {\n this.sortable = Sortable.create(this.$refs.list, {\n ...defaultSortableOptions,\n onStart: this.addDraggingCursor,\n onEnd: this.reordered,\n });\n }\n },\n methods: {\n getBeforeAfterId(itemEl) {\n const prevItemEl = itemEl.previousElementSibling;\n const nextItemEl = itemEl.nextElementSibling;\n\n return {\n beforeId: prevItemEl && parseInt(prevItemEl.dataset.orderingId, 10),\n afterId: nextItemEl && parseInt(nextItemEl.dataset.orderingId, 10),\n };\n },\n reordered(event) {\n this.removeDraggingCursor();\n const { beforeId, afterId } = this.getBeforeAfterId(event.item);\n const { oldIndex, newIndex } = event;\n\n this.$emit('saveReorder', {\n issueId: parseInt(event.item.dataset.key, 10),\n oldIndex,\n newIndex,\n afterId,\n beforeId,\n });\n },\n addDraggingCursor() {\n document.body.classList.add('is-dragging');\n },\n removeDraggingCursor() {\n document.body.classList.remove('is-dragging');\n },\n issuableOrderingId({ epicIssueId, id }) {\n return this.issuableType === TYPE_ISSUE ? epicIssueId : id;\n },\n },\n};\n</script>\n\n<template>\n <div :data-link-type=\"listLinkType\">\n <h4 v-if=\"heading\" class=\"gl-mx-5 -gl-mb-2 gl-mt-4 gl-text-sm gl-font-semibold gl-text-subtle\">\n {{ heading }}\n </h4>\n <div class=\"related-issues-token-body\" :class=\"{ 'sortable-container': canReorder }\">\n <div v-if=\"isFetching\" class=\"gl-mb-2\" data-testid=\"related-issues-loading-placeholder\">\n <gl-loading-icon\n ref=\"loadingIcon\"\n size=\"sm\"\n label=\"Fetching linked issues\"\n class=\"gl-mt-2\"\n />\n </div>\n <ul ref=\"list\" :class=\"{ 'content-list': !canReorder }\" class=\"related-items-list !gl-m-3\">\n <li\n v-for=\"issue in relatedIssues\"\n :key=\"issue.id\"\n :class=\"{\n 'gl-cursor-grab': canReorder,\n 'sortable-row': canReorder,\n 'card card-slim': canReorder,\n }\"\n :data-key=\"issue.id\"\n :data-ordering-id=\"issuableOrderingId(issue)\"\n class=\"js-related-issues-token-list-item list-item !gl-border-b-0 !gl-p-0\"\n >\n <related-issuable-item\n :id-key=\"issue.id\"\n :iid=\"issue.iid\"\n :display-reference=\"issue.reference\"\n :confidential=\"issue.confidential\"\n :title=\"issue.title\"\n :path=\"issue.path\"\n :state=\"issue.state\"\n :milestone=\"issue.milestone\"\n :assignees=\"issue.assignees\"\n :created-at=\"issue.createdAt\"\n :closed-at=\"issue.closedAt\"\n :weight=\"issue.weight\"\n :due-date=\"issue.dueDate\"\n :can-remove=\"canAdmin\"\n :can-reorder=\"canReorder\"\n :path-id-separator=\"pathIdSeparator\"\n :is-locked=\"issue.lockIssueRemoval\"\n :locked-message=\"issue.lockedMessage\"\n :work-item-type=\"issue.type\"\n event-namespace=\"relatedIssue\"\n data-testid=\"related-issuable-content\"\n @relatedIssueRemoveRequest=\"$emit('relatedIssueRemoveRequest', $event)\"\n />\n </li>\n </ul>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./related_issues_list.vue?vue&type=template&id=fcc87b90\"\nimport script from \"./related_issues_list.vue?vue&type=script&lang=js\"\nexport * from \"./related_issues_list.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"data-link-type\":_vm.listLinkType}},[(_vm.heading)?_c('h4',{staticClass:\"gl-mx-5 -gl-mb-2 gl-mt-4 gl-text-sm gl-font-semibold gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(_vm.heading)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"related-issues-token-body\",class:{ 'sortable-container': _vm.canReorder }},[(_vm.isFetching)?_c('div',{staticClass:\"gl-mb-2\",attrs:{\"data-testid\":\"related-issues-loading-placeholder\"}},[_c('gl-loading-icon',{ref:\"loadingIcon\",staticClass:\"gl-mt-2\",attrs:{\"size\":\"sm\",\"label\":\"Fetching linked issues\"}})],1):_vm._e(),_vm._v(\" \"),_c('ul',{ref:\"list\",staticClass:\"related-items-list !gl-m-3\",class:{ 'content-list': !_vm.canReorder }},_vm._l((_vm.relatedIssues),function(issue){return _c('li',{key:issue.id,staticClass:\"js-related-issues-token-list-item list-item !gl-border-b-0 !gl-p-0\",class:{\n 'gl-cursor-grab': _vm.canReorder,\n 'sortable-row': _vm.canReorder,\n 'card card-slim': _vm.canReorder,\n },attrs:{\"data-key\":issue.id,\"data-ordering-id\":_vm.issuableOrderingId(issue)}},[_c('related-issuable-item',{attrs:{\"id-key\":issue.id,\"iid\":issue.iid,\"display-reference\":issue.reference,\"confidential\":issue.confidential,\"title\":issue.title,\"path\":issue.path,\"state\":issue.state,\"milestone\":issue.milestone,\"assignees\":issue.assignees,\"created-at\":issue.createdAt,\"closed-at\":issue.closedAt,\"weight\":issue.weight,\"due-date\":issue.dueDate,\"can-remove\":_vm.canAdmin,\"can-reorder\":_vm.canReorder,\"path-id-separator\":_vm.pathIdSeparator,\"is-locked\":issue.lockIssueRemoval,\"locked-message\":issue.lockedMessage,\"work-item-type\":issue.type,\"event-namespace\":\"relatedIssue\",\"data-testid\":\"related-issuable-content\"},on:{\"relatedIssueRemoveRequest\":function($event){return _vm.$emit('relatedIssueRemoveRequest', $event)}}})],1)}),0)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./related_issues_block.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./related_issues_block.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink } from '@gitlab/ui';\nimport CrudComponent from '~/vue_shared/components/crud_component.vue';\nimport { __, sprintf } from '~/locale';\nimport {\n issuableIconMap,\n linkedIssueTypesMap,\n linkedIssueTypesTextMap,\n issuablesBlockHeaderTextMap,\n issuablesBlockHelpTextMap,\n issuablesBlockAddButtonTextMap,\n} from '../constants';\nimport AddIssuableForm from './add_issuable_form.vue';\nimport RelatedIssuesList from './related_issues_list.vue';\n\nexport default {\n name: 'RelatedIssuesBlock',\n components: {\n GlLink,\n CrudComponent,\n AddIssuableForm,\n RelatedIssuesList,\n },\n props: {\n isFetching: {\n type: Boolean,\n required: false,\n default: false,\n },\n isSubmitting: {\n type: Boolean,\n required: false,\n default: false,\n },\n relatedIssues: {\n type: Array,\n required: false,\n default: () => [],\n },\n canAdmin: {\n type: Boolean,\n required: false,\n default: false,\n },\n canReorder: {\n type: Boolean,\n required: false,\n default: false,\n },\n isFormVisible: {\n type: Boolean,\n required: false,\n default: false,\n },\n pendingReferences: {\n type: Array,\n required: false,\n default: () => [],\n },\n inputValue: {\n type: String,\n required: false,\n default: '',\n },\n pathIdSeparator: {\n type: String,\n required: true,\n },\n helpPath: {\n type: String,\n required: false,\n default: '',\n },\n autoCompleteSources: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n issuableType: {\n type: String,\n required: true,\n },\n showCategorizedIssues: {\n type: Boolean,\n required: false,\n default: true,\n },\n autoCompleteEpics: {\n type: Boolean,\n required: false,\n default: true,\n },\n autoCompleteIssues: {\n type: Boolean,\n required: false,\n default: true,\n },\n hasError: {\n type: Boolean,\n required: false,\n default: false,\n },\n itemAddFailureMessage: {\n type: String,\n required: false,\n default: '',\n },\n headerText: {\n type: String,\n required: false,\n default: '',\n },\n addButtonText: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n hasRelatedIssues() {\n return this.relatedIssues.length > 0;\n },\n categorisedIssues() {\n if (this.showCategorizedIssues) {\n return Object.values(linkedIssueTypesMap)\n .map((linkType) => ({\n linkType,\n issues: this.relatedIssues.filter((issue) => issue.linkType === linkType),\n }))\n .filter((obj) => obj.issues.length > 0);\n }\n\n if (this.relatedIssues.length > 0) {\n return [{ issues: this.relatedIssues }];\n }\n\n return [];\n },\n shouldShowTokenBody() {\n return this.hasRelatedIssues || this.isFetching;\n },\n headerTextDisplay() {\n return this.headerText ? this.headerText : issuablesBlockHeaderTextMap[this.issuableType];\n },\n addButtonTextDisplay() {\n if (!this.canAdmin) {\n return;\n }\n\n // eslint-disable-next-line consistent-return\n return this.addButtonText ? this.addButtonText : __('Add');\n },\n helpLinkText() {\n return issuablesBlockHelpTextMap[this.issuableType];\n },\n addIssuableButtonText() {\n return issuablesBlockAddButtonTextMap[this.issuableType];\n },\n badgeLabel() {\n return this.isFetching && this.relatedIssues.length === 0 ? '...' : this.relatedIssues.length;\n },\n hasHelpPath() {\n return this.helpPath.length > 0;\n },\n issuableTypeIcon() {\n return issuableIconMap[this.issuableType];\n },\n emptyStateMessage() {\n return this.showCategorizedIssues\n ? sprintf(this.$options.i18n.emptyItemsPremium, { issuableType: this.issuableType })\n : sprintf(this.$options.i18n.emptyItemsFree, { issuableType: this.issuableType });\n },\n },\n watch: {\n isFormVisible(newVal) {\n if (newVal === true) {\n this.$refs.relatedIssuesWidget.showForm();\n } else {\n this.$refs.relatedIssuesWidget.hideForm();\n }\n },\n },\n mounted() {\n if (this.isFormVisible) {\n this.$refs.relatedIssuesWidget.showForm();\n }\n },\n methods: {\n handleFormSubmit(event) {\n this.$emit('addIssuableFormSubmit', event);\n },\n handleFormCancel(event) {\n this.$emit('addIssuableFormCancel', event);\n this.$refs.relatedIssuesWidget.hideForm();\n },\n },\n linkedIssueTypesTextMap,\n i18n: {\n emptyItemsFree: __(\"Link %{issuableType}s together to show that they're related.\"),\n emptyItemsPremium: __(\n \"Link %{issuableType}s together to show that they're related or that one is blocking others.\",\n ),\n },\n};\n</script>\n\n<template>\n <crud-component\n ref=\"relatedIssuesWidget\"\n is-collapsible\n :is-loading=\"isFetching\"\n :title=\"headerTextDisplay\"\n :icon=\"issuableTypeIcon\"\n :count=\"badgeLabel\"\n :toggle-text=\"addButtonTextDisplay\"\n :toggle-aria-label=\"addIssuableButtonText\"\n :help-path=\"helpPath\"\n :help-link-text=\"helpLinkText\"\n anchor-id=\"related-issues\"\n data-testid=\"related-issues-block\"\n @showForm=\"$emit('showForm')\"\n @hideForm=\"$emit('hideForm')\"\n >\n <template #actions>\n <slot name=\"header-actions\"></slot>\n </template>\n\n <template #form>\n <add-issuable-form\n :show-categorized-issues=\"showCategorizedIssues\"\n :is-submitting=\"isSubmitting\"\n :issuable-type=\"issuableType\"\n :input-value=\"inputValue\"\n :pending-references=\"pendingReferences\"\n :auto-complete-sources=\"autoCompleteSources\"\n :auto-complete-epics=\"autoCompleteEpics\"\n :auto-complete-issues=\"autoCompleteIssues\"\n :path-id-separator=\"pathIdSeparator\"\n :has-error=\"hasError\"\n :item-add-failure-message=\"itemAddFailureMessage\"\n @pendingIssuableRemoveRequest=\"$emit('pendingIssuableRemoveRequest', $event)\"\n @addIssuableFormInput=\"$emit('addIssuableFormInput', $event)\"\n @addIssuableFormBlur=\"$emit('addIssuableFormBlur', $event)\"\n @addIssuableFormSubmit=\"handleFormSubmit\"\n @addIssuableFormCancel=\"handleFormCancel\"\n />\n </template>\n\n <template v-if=\"!shouldShowTokenBody\" #empty>\n <slot name=\"empty-state-message\">{{ emptyStateMessage }}</slot>\n <gl-link\n v-if=\"hasHelpPath\"\n :href=\"helpPath\"\n data-testid=\"help-link\"\n :aria-label=\"helpLinkText\"\n >\n {{ __('Learn more.') }}\n </gl-link>\n </template>\n\n <template #default>\n <related-issues-list\n v-for=\"(category, index) in categorisedIssues\"\n :key=\"category.linkType\"\n :list-link-type=\"category.linkType\"\n :heading=\"$options.linkedIssueTypesTextMap[category.linkType]\"\n :can-admin=\"canAdmin\"\n :can-reorder=\"canReorder\"\n :is-fetching=\"isFetching\"\n :issuable-type=\"issuableType\"\n :path-id-separator=\"pathIdSeparator\"\n :related-issues=\"category.issues\"\n :class=\"{\n 'gl-mb-5 gl-border-b-1 gl-border-b-default gl-border-b-solid':\n index !== categorisedIssues.length - 1,\n }\"\n @relatedIssueRemoveRequest=\"$emit('relatedIssueRemoveRequest', $event)\"\n @saveReorder=\"$emit('saveReorder', $event)\"\n />\n </template>\n </crud-component>\n</template>\n","import { render, staticRenderFns } from \"./related_issues_block.vue?vue&type=template&id=0aa9b1f8\"\nimport script from \"./related_issues_block.vue?vue&type=script&lang=js\"\nexport * from \"./related_issues_block.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export const AJAX_USERS_SELECT_PARAMS_MAP = {\n project_id: 'projectId',\n group_id: 'groupId',\n todo_filter: 'todoFilter',\n todo_state_filter: 'todoStateFilter',\n current_user: 'showCurrentUser',\n author_id: 'authorId',\n states: 'states',\n};\n\nexport const ACTIVE_AND_BLOCKED_USER_STATES = ['active', 'blocked', 'ldap_blocked'];\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"projectIssueMilestone\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"milestone\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MilestoneFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":272}};\n doc.loc.source = {\"body\":\"#import \\\"./milestone.fragment.graphql\\\"\\n\\nquery projectIssueMilestone($fullPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n attribute: milestone {\\n ...MilestoneFragment\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./milestone.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"projectIssueMilestone\"] = oneQuery(doc, \"projectIssueMilestone\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{class:_vm.containerClasses},[_c('gl-sprintf',{attrs:{\"message\":_vm.s__('UserAvailability|%{author}%{badgeStart}Busy%{badgeEnd}')},scopedSlots:_vm._u([{key:\"author\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.name))]),(_vm.hasPronouns)?_c('span',{staticClass:\"gl-ml-1 gl-text-sm gl-font-normal gl-text-subtle\"},[_vm._v(\"(\"+_vm._s(_vm.pronouns)+\")\")]):_vm._e()]},proxy:true},{key:\"badge\",fn:function({ content }){return [(_vm.isBusy)?_c('gl-badge',{staticClass:\"gl-ml-2\",attrs:{\"variant\":\"warning\"}},[_vm._v(\"\\n \"+_vm._s(content)+\"\\n \")]):_vm._e()]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_name_with_status.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_name_with_status.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlSprintf } from '@gitlab/ui';\nimport { isUserBusy } from '~/set_status_modal/utils';\n\nexport default {\n name: 'UserNameWithStatus',\n components: {\n GlBadge,\n GlSprintf,\n },\n props: {\n name: {\n type: String,\n required: true,\n },\n containerClasses: {\n type: String,\n required: false,\n default: '',\n },\n availability: {\n type: String,\n required: false,\n default: '',\n },\n pronouns: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n hasPronouns() {\n return this.pronouns !== null && this.pronouns.trim() !== '';\n },\n isBusy() {\n return isUserBusy(this.availability);\n },\n },\n};\n</script>\n<template>\n <span :class=\"containerClasses\">\n <gl-sprintf :message=\"s__('UserAvailability|%{author}%{badgeStart}Busy%{badgeEnd}')\">\n <template #author\n ><span>{{ name }}</span\n ><span v-if=\"hasPronouns\" class=\"gl-ml-1 gl-text-sm gl-font-normal gl-text-subtle\"\n >({{ pronouns }})</span\n ></template\n >\n <template #badge=\"{ content }\">\n <gl-badge v-if=\"isBusy\" variant=\"warning\" class=\"gl-ml-2\">\n {{ content }}\n </gl-badge>\n </template>\n </gl-sprintf>\n </span>\n</template>\n","import { render, staticRenderFns } from \"./user_name_with_status.vue?vue&type=template&id=029cafa0\"\nimport script from \"./user_name_with_status.vue?vue&type=script&lang=js\"\nexport * from \"./user_name_with_status.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","var baseIteratee = require('./_baseIteratee'),\n baseWhile = require('./_baseWhile');\n\n/**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\nfunction takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3), false, true)\n : [];\n}\n\nmodule.exports = takeRightWhile;\n","(function() {\n var basenameMatch, computeMatch, isMatch, isWordStart, match, mergeMatches, scoreAcronyms, scoreCharacter, scoreConsecutives, _ref;\n\n _ref = require('./scorer'), isMatch = _ref.isMatch, isWordStart = _ref.isWordStart, scoreConsecutives = _ref.scoreConsecutives, scoreCharacter = _ref.scoreCharacter, scoreAcronyms = _ref.scoreAcronyms;\n\n exports.match = match = function(string, query, options) {\n var allowErrors, baseMatches, matches, pathSeparator, preparedQuery, string_lw;\n allowErrors = options.allowErrors, preparedQuery = options.preparedQuery, pathSeparator = options.pathSeparator;\n if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n return [];\n }\n string_lw = string.toLowerCase();\n matches = computeMatch(string, string_lw, preparedQuery);\n if (matches.length === 0) {\n return matches;\n }\n if (string.indexOf(pathSeparator) > -1) {\n baseMatches = basenameMatch(string, string_lw, preparedQuery, pathSeparator);\n matches = mergeMatches(matches, baseMatches);\n }\n return matches;\n };\n\n exports.wrap = function(string, query, options) {\n var matchIndex, matchPos, matchPositions, output, strPos, tagClass, tagClose, tagOpen, _ref1;\n if ((options.wrap != null)) {\n _ref1 = options.wrap, tagClass = _ref1.tagClass, tagOpen = _ref1.tagOpen, tagClose = _ref1.tagClose;\n }\n if (tagClass == null) {\n tagClass = 'highlight';\n }\n if (tagOpen == null) {\n tagOpen = '<strong class=\"' + tagClass + '\">';\n }\n if (tagClose == null) {\n tagClose = '</strong>';\n }\n if (string === query) {\n return tagOpen + string + tagClose;\n }\n matchPositions = match(string, query, options);\n if (matchPositions.length === 0) {\n return string;\n }\n output = '';\n matchIndex = -1;\n strPos = 0;\n while (++matchIndex < matchPositions.length) {\n matchPos = matchPositions[matchIndex];\n if (matchPos > strPos) {\n output += string.substring(strPos, matchPos);\n strPos = matchPos;\n }\n while (++matchIndex < matchPositions.length) {\n if (matchPositions[matchIndex] === matchPos + 1) {\n matchPos++;\n } else {\n matchIndex--;\n break;\n }\n }\n matchPos++;\n if (matchPos > strPos) {\n output += tagOpen;\n output += string.substring(strPos, matchPos);\n output += tagClose;\n strPos = matchPos;\n }\n }\n if (strPos <= string.length - 1) {\n output += string.substring(strPos);\n }\n return output;\n };\n\n basenameMatch = function(subject, subject_lw, preparedQuery, pathSeparator) {\n var basePos, depth, end;\n end = subject.length - 1;\n while (subject[end] === pathSeparator) {\n end--;\n }\n basePos = subject.lastIndexOf(pathSeparator, end);\n if (basePos === -1) {\n return [];\n }\n depth = preparedQuery.depth;\n while (depth-- > 0) {\n basePos = subject.lastIndexOf(pathSeparator, basePos - 1);\n if (basePos === -1) {\n return [];\n }\n }\n basePos++;\n end++;\n return computeMatch(subject.slice(basePos, end), subject_lw.slice(basePos, end), preparedQuery, basePos);\n };\n\n mergeMatches = function(a, b) {\n var ai, bj, i, j, m, n, out;\n m = a.length;\n n = b.length;\n if (n === 0) {\n return a.slice();\n }\n if (m === 0) {\n return b.slice();\n }\n i = -1;\n j = 0;\n bj = b[j];\n out = [];\n while (++i < m) {\n ai = a[i];\n while (bj <= ai && ++j < n) {\n if (bj < ai) {\n out.push(bj);\n }\n bj = b[j];\n }\n out.push(ai);\n }\n while (j < n) {\n out.push(b[j++]);\n }\n return out;\n };\n\n computeMatch = function(subject, subject_lw, preparedQuery, offset) {\n var DIAGONAL, LEFT, STOP, UP, acro_score, align, backtrack, csc_diag, csc_row, csc_score, i, j, m, matches, move, n, pos, query, query_lw, score, score_diag, score_row, score_up, si_lw, start, trace;\n if (offset == null) {\n offset = 0;\n }\n query = preparedQuery.query;\n query_lw = preparedQuery.query_lw;\n m = subject.length;\n n = query.length;\n acro_score = scoreAcronyms(subject, subject_lw, query, query_lw).score;\n score_row = new Array(n);\n csc_row = new Array(n);\n STOP = 0;\n UP = 1;\n LEFT = 2;\n DIAGONAL = 3;\n trace = new Array(m * n);\n pos = -1;\n j = -1;\n while (++j < n) {\n score_row[j] = 0;\n csc_row[j] = 0;\n }\n i = -1;\n while (++i < m) {\n score = 0;\n score_up = 0;\n csc_diag = 0;\n si_lw = subject_lw[i];\n j = -1;\n while (++j < n) {\n csc_score = 0;\n align = 0;\n score_diag = score_up;\n if (query_lw[j] === si_lw) {\n start = isWordStart(i, subject, subject_lw);\n csc_score = csc_diag > 0 ? csc_diag : scoreConsecutives(subject, subject_lw, query, query_lw, i, j, start);\n align = score_diag + scoreCharacter(i, j, start, acro_score, csc_score);\n }\n score_up = score_row[j];\n csc_diag = csc_row[j];\n if (score > score_up) {\n move = LEFT;\n } else {\n score = score_up;\n move = UP;\n }\n if (align > score) {\n score = align;\n move = DIAGONAL;\n } else {\n csc_score = 0;\n }\n score_row[j] = score;\n csc_row[j] = csc_score;\n trace[++pos] = score > 0 ? move : STOP;\n }\n }\n i = m - 1;\n j = n - 1;\n pos = i * n + j;\n backtrack = true;\n matches = [];\n while (backtrack && i >= 0 && j >= 0) {\n switch (trace[pos]) {\n case UP:\n i--;\n pos -= n;\n break;\n case LEFT:\n j--;\n pos--;\n break;\n case DIAGONAL:\n matches.push(i + offset);\n j--;\n i--;\n pos -= n + 1;\n break;\n default:\n backtrack = false;\n }\n }\n matches.reverse();\n return matches;\n };\n\n}).call(this);\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ProjectBoard\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"boardId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"board\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"boardId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"BoardScopeFragment\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":240}};\n doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/boards/graphql/board_scope.fragment.graphql\\\"\\n\\nquery ProjectBoard($fullPath: ID!, $boardId: BoardID!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n board(id: $boardId) {\\n ...BoardScopeFragment\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/boards/graphql/board_scope.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"ProjectBoard\"] = oneQuery(doc, \"ProjectBoard\");\n \n","var arrayMap = require('./_arrayMap'),\n baseIntersection = require('./_baseIntersection'),\n baseRest = require('./_baseRest'),\n castArrayLikeObject = require('./_castArrayLikeObject');\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nmodule.exports = intersection;\n","import { extend } from '../../vue';\nimport { NAME_TAB } from '../../constants/components';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING, PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_OBJECT } from '../../constants/props';\nimport { SLOT_NAME_TITLE } from '../../constants/slots';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { props as props$1, idMixin } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVTransition } from '../transition/bv-transition';\n\n// --- Constants ---\n\nconst MODEL_PROP_NAME_ACTIVE = 'active';\nconst MODEL_EVENT_NAME_ACTIVE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_ACTIVE;\n\n// --- Props ---\n\nconst props = makePropsConfigurable(sortKeys({\n ...props$1,\n [MODEL_PROP_NAME_ACTIVE]: makeProp(PROP_TYPE_BOOLEAN, false),\n buttonId: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n noBody: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n title: makeProp(PROP_TYPE_STRING),\n // Sniffed by `<b-tabs>` and added to nav `li.nav-item`\n titleItemClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n titleLinkAttributes: makeProp(PROP_TYPE_OBJECT),\n // Sniffed by `<b-tabs>` and added to nav `a.nav-link`\n titleLinkClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}), NAME_TAB);\n\n// --- Main component ---\n\n// @vue/component\nconst BTab = /*#__PURE__*/extend({\n name: NAME_TAB,\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n getBvTabs: {\n default: () => () => ({})\n }\n },\n props,\n data() {\n return {\n localActive: this[MODEL_PROP_NAME_ACTIVE] && !this.disabled\n };\n },\n computed: {\n bvTabs() {\n return this.getBvTabs();\n },\n // For parent sniffing of child\n _isTab() {\n return true;\n },\n tabClasses() {\n const {\n localActive: active,\n disabled\n } = this;\n return [{\n active,\n disabled,\n 'card-body': this.bvTabs.card && !this.noBody\n },\n // Apply <b-tabs> `activeTabClass` styles when this tab is active\n active ? this.bvTabs.activeTabClass : null];\n },\n controlledBy() {\n return this.buttonId || this.safeId('__BV_tab_button__');\n },\n computedNoFade() {\n return !(this.bvTabs.fade || false);\n },\n computedLazy() {\n return this.bvTabs.lazy || this.lazy;\n }\n },\n watch: {\n [MODEL_PROP_NAME_ACTIVE](newValue, oldValue) {\n if (newValue !== oldValue) {\n if (newValue) {\n // If activated post mount\n this.activate();\n } else {\n /* istanbul ignore next */\n if (!this.deactivate()) {\n // Tab couldn't be deactivated, so we reset the synced active prop\n // Deactivation will fail if no other tabs to activate\n this.$emit(MODEL_EVENT_NAME_ACTIVE, this.localActive);\n }\n }\n }\n },\n disabled(newValue, oldValue) {\n if (newValue !== oldValue) {\n const {\n firstTab\n } = this.bvTabs;\n if (newValue && this.localActive && firstTab) {\n this.localActive = false;\n firstTab();\n }\n }\n },\n localActive(newValue) {\n // Make `active` prop work with `.sync` modifier\n this.$emit(MODEL_EVENT_NAME_ACTIVE, newValue);\n }\n },\n mounted() {\n // Inform `<b-tabs>` of our presence\n this.registerTab();\n },\n updated() {\n // Force the tab button content to update (since slots are not reactive)\n // Only done if we have a title slot, as the title prop is reactive\n const {\n updateButton\n } = this.bvTabs;\n if (updateButton && this.hasNormalizedSlot(SLOT_NAME_TITLE)) {\n updateButton(this);\n }\n },\n beforeDestroy() {\n // Inform `<b-tabs>` of our departure\n this.unregisterTab();\n },\n methods: {\n // Private methods\n registerTab() {\n // Inform `<b-tabs>` of our presence\n const {\n registerTab\n } = this.bvTabs;\n if (registerTab) {\n registerTab(this);\n }\n },\n unregisterTab() {\n // Inform `<b-tabs>` of our departure\n const {\n unregisterTab\n } = this.bvTabs;\n if (unregisterTab) {\n unregisterTab(this);\n }\n },\n // Public methods\n activate() {\n // Not inside a `<b-tabs>` component or tab is disabled\n const {\n activateTab\n } = this.bvTabs;\n return activateTab && !this.disabled ? activateTab(this) : false;\n },\n deactivate() {\n // Not inside a `<b-tabs>` component or not active to begin with\n const {\n deactivateTab\n } = this.bvTabs;\n return deactivateTab && this.localActive ? deactivateTab(this) : false;\n }\n },\n render(h) {\n const {\n localActive\n } = this;\n const $content = h(this.tag, {\n staticClass: 'tab-pane',\n class: this.tabClasses,\n directives: [{\n name: 'show',\n value: localActive\n }],\n attrs: {\n role: 'tabpanel',\n id: this.safeId(),\n 'aria-hidden': localActive ? 'false' : 'true',\n 'aria-labelledby': this.controlledBy || null\n },\n ref: 'panel'\n },\n // Render content lazily if requested\n [localActive || !this.computedLazy ? this.normalizeSlot() : h()]);\n return h(BVTransition, {\n props: {\n mode: 'out-in',\n noFade: this.computedNoFade\n }\n }, [$content]);\n }\n});\n\nexport { BTab, props };\n","import isPlainObject from 'lodash/isPlainObject';\nimport { BTab } from '../../../../vendor/bootstrap-vue/src/components/tabs/tab';\nimport { DEFAULT_TAB_TITLE_LINK_CLASS } from '../constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nvar script = {\n name: 'GlTab',\n components: {\n BTab\n },\n inheritAttrs: false,\n props: {\n titleLinkClass: {\n type: [String, Array, Object],\n required: false,\n default: ''\n },\n /**\n * Query string parameter value to use when `gl-tabs` `sync-active-tab-with-query-params` prop is set to `true`.\n */\n queryParamValue: {\n type: String,\n required: false,\n default: null\n }\n },\n computed: {\n linkClass() {\n const {\n titleLinkClass\n } = this;\n if (Array.isArray(titleLinkClass)) {\n return [...titleLinkClass, DEFAULT_TAB_TITLE_LINK_CLASS];\n }\n if (isPlainObject(titleLinkClass)) {\n return {\n ...titleLinkClass,\n [DEFAULT_TAB_TITLE_LINK_CLASS]: true\n };\n }\n return `${titleLinkClass} ${DEFAULT_TAB_TITLE_LINK_CLASS}`.trim();\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-tab',_vm._g(_vm._b({attrs:{\"title-link-class\":_vm.linkClass,\"query-param-value\":_vm.queryParamValue},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$slots)),function(slot){return {key:slot,fn:function(){return [_vm._t(slot)]},proxy:true}})],null,true)},'b-tab',_vm.$attrs,false),_vm.$listeners))};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","const DEFAULT_TAB_TITLE_LINK_CLASS = 'gl-tab-nav-item';\n\nexport { DEFAULT_TAB_TITLE_LINK_CLASS };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('timeline-entry-item',{staticClass:\"note note-wrapper note-comment being-posted fade-in-half\",class:_vm.internalNoteClass},[_c('div',{staticClass:\"timeline-avatar gl-float-left\"},[_c('gl-avatar-link',{attrs:{\"href\":_vm.getUserData.path}},[_c('gl-avatar',{attrs:{\"src\":_vm.getUserData.avatar_url,\"entity-name\":_vm.getUserData.username,\"alt\":_vm.getUserData.name,\"size\":32}})],1)],1),_vm._v(\" \"),_c('div',{ref:\"note\",staticClass:\"timeline-content\",class:{ discussion: !_vm.note.individual_note }},[_c('div',{staticClass:\"note-header\"},[_c('div',{staticClass:\"note-header-info\"},[_c('a',{attrs:{\"href\":_vm.getUserData.path}},[_c('span',{staticClass:\"gl-hidden gl-font-bold sm:gl-inline-block\"},[_vm._v(_vm._s(_vm.getUserData.name))]),_vm._v(\" \"),_c('span',{staticClass:\"note-headline-light\"},[_vm._v(\"@\"+_vm._s(_vm.getUserData.username))])])])]),_vm._v(\" \"),_c('div',{staticClass:\"timeline-discussion-body\"},[_c('div',{staticClass:\"note-body\"},[_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.renderedNote),expression:\"renderedNote\"}],staticClass:\"note-text md\"})])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./placeholder_note.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./placeholder_note.vue?vue&type=script&lang=js\"","<script>\n/**\n * Common component to render a placeholder note and user information.\n *\n * This component needs to be used with a vuex store.\n * That vuex store needs to have a `getUserData` getter that contains\n * {\n * path: String,\n * avatar_url: String,\n * name: String,\n * username: String,\n * }\n *\n * @example\n * <placeholder-note\n * :note=\"{body: 'This is a note'}\"\n * />\n */\nimport { GlAvatarLink, GlAvatar } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters } from 'vuex';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { renderMarkdown } from '~/notes/utils';\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\n\nexport default {\n name: 'PlaceholderNote',\n directives: { SafeHtml },\n components: {\n GlAvatarLink,\n GlAvatar,\n TimelineEntryItem,\n },\n props: {\n note: {\n type: Object,\n required: true,\n },\n line: {\n type: Object,\n required: false,\n default: null,\n },\n isOverviewTab: {\n type: Boolean,\n required: false,\n default: false,\n },\n internalNote: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n ...mapGetters(['getUserData']),\n renderedNote() {\n return renderMarkdown(this.note.body);\n },\n internalNoteClass() {\n return {\n 'internal-note': this.internalNote,\n };\n },\n },\n};\n</script>\n\n<template>\n <timeline-entry-item\n class=\"note note-wrapper note-comment being-posted fade-in-half\"\n :class=\"internalNoteClass\"\n >\n <div class=\"timeline-avatar gl-float-left\">\n <gl-avatar-link :href=\"getUserData.path\">\n <gl-avatar\n :src=\"getUserData.avatar_url\"\n :entity-name=\"getUserData.username\"\n :alt=\"getUserData.name\"\n :size=\"32\"\n />\n </gl-avatar-link>\n </div>\n <div ref=\"note\" :class=\"{ discussion: !note.individual_note }\" class=\"timeline-content\">\n <div class=\"note-header\">\n <div class=\"note-header-info\">\n <a :href=\"getUserData.path\">\n <span class=\"gl-hidden gl-font-bold sm:gl-inline-block\">{{ getUserData.name }}</span>\n <span class=\"note-headline-light\">@{{ getUserData.username }}</span>\n </a>\n </div>\n </div>\n <div class=\"timeline-discussion-body\">\n <div class=\"note-body\">\n <div v-safe-html=\"renderedNote\" class=\"note-text md\"></div>\n </div>\n </div>\n </div>\n </timeline-entry-item>\n</template>\n","import { render, staticRenderFns } from \"./placeholder_note.vue?vue&type=template&id=b3280ce2\"\nimport script from \"./placeholder_note.vue?vue&type=script&lang=js\"\nexport * from \"./placeholder_note.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getSavedRepliesEE\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"groupPath\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"defaultValue\":{\"kind\":\"NullValue\"},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"hideGroup\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":true},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"defaultValue\":{\"kind\":\"NullValue\"},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"hideProject\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":true},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"groupPath\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"skip\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"hideGroup\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"savedReplies\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestorGroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"content\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"skip\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"hideProject\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"savedReplies\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"content\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentUser\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"savedReplies\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"content\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":594}};\n doc.loc.source = {\"body\":\"query getSavedRepliesEE(\\n $groupPath: ID = null\\n $hideGroup: Boolean = true\\n $projectPath: ID = null\\n $hideProject: Boolean = true\\n) {\\n group(fullPath: $groupPath) @skip(if: $hideGroup) {\\n id\\n savedReplies(includeAncestorGroups: true) {\\n nodes {\\n id\\n name\\n content\\n }\\n }\\n }\\n project(fullPath: $projectPath) @skip(if: $hideProject) {\\n id\\n savedReplies {\\n nodes {\\n id\\n name\\n content\\n }\\n }\\n }\\n currentUser {\\n id\\n savedReplies {\\n nodes {\\n id\\n name\\n content\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"getSavedRepliesEE\"] = oneQuery(doc, \"getSavedRepliesEE\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"epicReference\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"full\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":178}};\n doc.loc.source = {\"body\":\"query epicReference($fullPath: ID!, $iid: ID) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n issuable: epic(iid: $iid) {\\n id\\n reference(full: true)\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"epicReference\"] = oneQuery(doc, \"epicReference\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('sidebar-editable-item',{ref:\"editable\",attrs:{\"title\":_vm.attributeTypeTitle,\"data-testid\":`${_vm.formatIssuableAttribute.kebab}-edit`,\"button-id\":`${_vm.formatIssuableAttribute.kebab}-edit`,\"tracking\":_vm.tracking,\"should-show-confirmation-popover\":_vm.shouldShowConfirmationPopover,\"loading\":_vm.updating || _vm.loading},on:{\"open\":_vm.showDropdown,\"edit-confirm\":_vm.handleEditConfirmation},scopedSlots:_vm._u([{key:\"collapsed\",fn:function(){return [_vm._t(\"value-collapsed\",function(){return [(_vm.isClassicSidebar)?_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.attributeTypeTitle}},[_c('gl-icon',{attrs:{\"aria-label\":_vm.attributeTypeTitle,\"name\":_vm.attributeTypeIcon}}),_vm._v(\" \"),_c('span',{staticClass:\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\"},[_vm._v(\"\\n \"+_vm._s(_vm.attributeTitle)+\"\\n \")])],1):_vm._e()]},{\"currentAttribute\":_vm.currentAttribute}),_vm._v(\" \"),_c('div',{class:_vm.isClassicSidebar ? 'hide-collapsed' : 'gl-mt-3',attrs:{\"data-testid\":`select-${_vm.formatIssuableAttribute.kebab}`}},[(_vm.updating)?_c('span',[_vm._v(_vm._s(_vm.selectedTitle))]):(!_vm.currentAttribute && _vm.hasCurrentAttribute)?[_c('gl-icon',{attrs:{\"name\":\"warning\",\"variant\":\"warning\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.i18n.noPermissionToView))])]:(!_vm.currentAttribute)?_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.none)+\"\\n \")]):_vm._t(\"value\",function(){return [_c('gl-link',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.tooltipText),expression:\"tooltipText\"}],staticClass:\"gl-text-inherit hover:gl-text-blue-800\",attrs:{\"href\":_vm.attributeUrl,\"data-testid\":`${_vm.formatIssuableAttribute.kebab}-link`}},[_vm._v(\"\\n \"+_vm._s(_vm.attributeTitle)+\"\\n \"),(_vm.isAttributeOverdue(_vm.currentAttribute))?_c('span',[_vm._v(_vm._s(_vm.$options.i18n.expired))]):_vm._e()])]},{\"attributeTitle\":_vm.attributeTitle,\"attributeUrl\":_vm.attributeUrl,\"currentAttribute\":_vm.currentAttribute})],2)]},proxy:true},(_vm.shouldShowConfirmationPopover)?{key:\"default\",fn:function({ toggle }){return [_c('gl-popover',{ref:\"popover\",attrs:{\"target\":`${_vm.formatIssuableAttribute.kebab}-edit`,\"placement\":\"bottomleft\",\"boundary\":\"viewport\",\"triggers\":\"click\"}},[_c('div',{staticClass:\"gl-mb-4 gl-text-base\"},[_vm._v(\"\\n \"+_vm._s(_vm.i18n.editConfirmation)+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-items-center\"},[_c('gl-button',{attrs:{\"size\":\"small\",\"variant\":\"confirm\",\"category\":\"primary\",\"data-testid\":\"confirm-edit-cta\"},on:{\"click\":function($event){$event.preventDefault();return (() => _vm.handlePopoverConfirm(toggle)).apply(null, arguments)}}},[_vm._v(_vm._s(_vm.i18n.editConfirmationCta))]),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-ml-auto\",attrs:{\"size\":\"small\",\"name\":\"cancel\",\"variant\":\"default\",\"category\":\"primary\",\"data-testid\":\"confirm-edit-cancel\"},on:{\"click\":function($event){$event.preventDefault();return _vm.handlePopoverClose.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.i18n.editConfirmationCancel))])],1)])]}}:{key:\"default\",fn:function(){return [_c('sidebar-dropdown',{ref:\"dropdown\",attrs:{\"attr-workspace-path\":_vm.attrWorkspacePath,\"current-attribute\":_vm.currentAttribute,\"issuable-attribute\":_vm.issuableAttribute,\"issuable-type\":_vm.issuableType,\"show-work-item-epics\":_vm.showWorkItemEpics},on:{\"change\":_vm.updateAttribute},scopedSlots:_vm._u([{key:\"list\",fn:function({ attributesList, isAttributeChecked, updateAttribute: update }){return [_vm._t(\"list\",null,{\"attributesList\":attributesList,\"isAttributeChecked\":isAttributeChecked,\"updateAttribute\":update})]}}],null,true)})]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_dropdown_widget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_dropdown_widget.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlIcon, GlLink, GlPopover, GlTooltipDirective } from '@gitlab/ui';\nimport { kebabCase, snakeCase } from 'lodash';\nimport { createAlert } from '~/alert';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { timeFor } from '~/lib/utils/datetime_utility';\nimport { __ } from '~/locale';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\n\nimport {\n dropdowni18nText,\n LocalizedIssuableAttributeType,\n IssuableAttributeTypeKeyMap,\n IssuableAttributeType,\n Tracking,\n} from 'ee_else_ce/sidebar/constants';\nimport { issuableAttributesQueries } from 'ee_else_ce/sidebar/queries/constants';\nimport SidebarDropdown from './sidebar_dropdown.vue';\nimport SidebarEditableItem from './sidebar_editable_item.vue';\n\nexport default {\n i18n: {\n expired: __('(expired)'),\n none: __('None'),\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlLink,\n GlIcon,\n GlPopover,\n GlButton,\n SidebarDropdown,\n SidebarEditableItem,\n },\n mixins: [glFeatureFlagMixin()],\n inject: {\n isClassicSidebar: {\n default: false,\n },\n issuableAttributesQueries: {\n default: issuableAttributesQueries,\n },\n widgetTitleText: {\n default: {\n [IssuableAttributeType.Milestone]: __('Milestone'),\n expired: __('(expired)'),\n none: __('None'),\n },\n },\n },\n props: {\n issuableAttribute: {\n type: String,\n required: true,\n },\n workspacePath: {\n required: true,\n type: String,\n },\n iid: {\n required: true,\n type: String,\n },\n attrWorkspacePath: {\n required: true,\n type: String,\n },\n issuableType: {\n type: String,\n required: true,\n validator(value) {\n return [TYPE_ISSUE, TYPE_MERGE_REQUEST].includes(value);\n },\n },\n icon: {\n type: String,\n required: false,\n default: undefined,\n },\n showWorkItemEpics: {\n type: Boolean,\n required: false,\n default: false,\n },\n isEpicAttribute: {\n type: Boolean,\n required: false,\n default: false,\n },\n issuableParent: {\n type: Object,\n required: false,\n default: null,\n },\n },\n apollo: {\n issuable: {\n query() {\n const { current } = this.issuableAttributeQuery;\n const { query } = current[this.issuableType];\n\n return query;\n },\n variables() {\n return {\n fullPath: this.workspacePath,\n iid: this.iid,\n };\n },\n update(data) {\n return data.workspace?.issuable || {};\n },\n result({ data }) {\n if (this.glFeatures?.epicWidgetEditConfirmation && this.isEpicAttribute) {\n this.hasCurrentAttribute = data?.workspace?.issuable.hasEpic;\n }\n },\n skip() {\n return !this.iid;\n },\n error(error) {\n createAlert({\n message: this.i18n.currentFetchError,\n captureError: true,\n error,\n });\n },\n subscribeToMore: {\n document() {\n return issuableAttributesQueries[this.issuableAttribute].subscription;\n },\n variables() {\n return {\n issuableId: this.issuableId,\n };\n },\n skip() {\n return this.shouldSkipRealTimeEpicLinkUpdates;\n },\n },\n },\n },\n data() {\n return {\n updating: false,\n selectedTitle: null,\n issuable: {},\n hasCurrentAttribute: false,\n editConfirmation: false,\n tracking: {\n event: Tracking.editEvent,\n label: Tracking.rightSidebarLabel,\n property: this.issuableAttribute,\n },\n };\n },\n computed: {\n currentAttribute() {\n if (this.isEpicAttribute && this.issuableParent?.attribute) {\n return this.issuableParent.attribute;\n }\n return this.issuable.attribute;\n },\n issuableId() {\n return this.issuable.id;\n },\n issuableAttributeQuery() {\n return this.issuableAttributesQueries[this.issuableAttribute];\n },\n attributeTitle() {\n return this.currentAttribute?.title || __('None');\n },\n attributeUrl() {\n return this.currentAttribute?.webUrl;\n },\n loading() {\n return this.$apollo.queries.issuable.loading;\n },\n attributeTypeTitle() {\n return this.widgetTitleText[this.issuableAttribute];\n },\n attributeTypeIcon() {\n return this.icon || this.issuableAttribute;\n },\n tooltipText() {\n return timeFor(this.currentAttribute?.dueDate);\n },\n i18n() {\n const localizedAttribute =\n LocalizedIssuableAttributeType[IssuableAttributeTypeKeyMap[this.issuableAttribute]];\n return dropdowni18nText(localizedAttribute, this.issuableType);\n },\n formatIssuableAttribute() {\n return {\n kebab: kebabCase(this.issuableAttribute),\n snake: snakeCase(this.issuableAttribute),\n };\n },\n shouldShowConfirmationPopover() {\n if (!this.glFeatures?.epicWidgetEditConfirmation) {\n return false;\n }\n\n return this.isEpicAttribute && this.currentAttribute === null && this.hasCurrentAttribute\n ? !this.editConfirmation\n : false;\n },\n shouldSkipRealTimeEpicLinkUpdates() {\n return !this.issuableId || this.issuableAttribute !== IssuableAttributeType.Epic;\n },\n },\n methods: {\n updateAttribute({ id, workItemType }) {\n if (this.currentAttribute === null && id === null) return;\n if (id === this.currentAttribute?.id) return;\n\n if (this.showWorkItemEpics && this.isEpicAttribute) {\n this.$emit('updateAttribute', { id, workItemType });\n } else {\n this.updating = true;\n\n const { current } = this.issuableAttributeQuery;\n const { mutation } = current[this.issuableType];\n\n this.$apollo\n .mutate({\n mutation,\n variables: {\n fullPath: this.workspacePath,\n attributeId:\n this.issuableAttribute === IssuableAttributeType.Milestone &&\n this.issuableType === TYPE_ISSUE\n ? getIdFromGraphQLId(id)\n : id,\n iid: this.iid,\n },\n })\n .then(({ data }) => {\n if (data.issuableSetAttribute?.errors?.length) {\n createAlert({\n message: data.issuableSetAttribute.errors[0],\n captureError: true,\n error: data.issuableSetAttribute.errors[0],\n });\n } else {\n this.$emit('attribute-updated', data);\n }\n })\n .catch((error) => {\n createAlert({ message: this.i18n.updateError, captureError: true, error });\n })\n .finally(() => {\n this.updating = false;\n this.selectedTitle = null;\n });\n }\n },\n isAttributeOverdue(attribute) {\n return this.issuableAttribute === IssuableAttributeType.Milestone\n ? attribute?.expired\n : false;\n },\n showDropdown() {\n this.$refs.dropdown.show();\n },\n handlePopoverClose() {\n this.$refs.popover.$emit('close');\n },\n handlePopoverConfirm(cb) {\n this.editConfirmation = true;\n this.handlePopoverClose();\n setTimeout(cb, 0);\n },\n handleEditConfirmation() {\n this.$refs.popover.$emit('open');\n },\n },\n};\n</script>\n\n<template>\n <sidebar-editable-item\n ref=\"editable\"\n :title=\"attributeTypeTitle\"\n :data-testid=\"`${formatIssuableAttribute.kebab}-edit`\"\n :button-id=\"`${formatIssuableAttribute.kebab}-edit`\"\n :tracking=\"tracking\"\n :should-show-confirmation-popover=\"shouldShowConfirmationPopover\"\n :loading=\"updating || loading\"\n @open=\"showDropdown\"\n @edit-confirm=\"handleEditConfirmation\"\n >\n <template #collapsed>\n <slot name=\"value-collapsed\" :current-attribute=\"currentAttribute\">\n <div\n v-if=\"isClassicSidebar\"\n v-gl-tooltip.left.viewport\n :title=\"attributeTypeTitle\"\n class=\"sidebar-collapsed-icon\"\n >\n <gl-icon :aria-label=\"attributeTypeTitle\" :name=\"attributeTypeIcon\" />\n <span class=\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\">\n {{ attributeTitle }}\n </span>\n </div>\n </slot>\n <div\n :data-testid=\"`select-${formatIssuableAttribute.kebab}`\"\n :class=\"isClassicSidebar ? 'hide-collapsed' : 'gl-mt-3'\"\n >\n <span v-if=\"updating\">{{ selectedTitle }}</span>\n <template v-else-if=\"!currentAttribute && hasCurrentAttribute\">\n <gl-icon name=\"warning\" variant=\"warning\" />\n <span class=\"gl-text-subtle\">{{ i18n.noPermissionToView }}</span>\n </template>\n <span v-else-if=\"!currentAttribute\" class=\"gl-text-subtle\">\n {{ $options.i18n.none }}\n </span>\n <slot\n v-else\n name=\"value\"\n :attribute-title=\"attributeTitle\"\n :attribute-url=\"attributeUrl\"\n :current-attribute=\"currentAttribute\"\n >\n <gl-link\n v-gl-tooltip=\"tooltipText\"\n class=\"gl-text-inherit hover:gl-text-blue-800\"\n :href=\"attributeUrl\"\n :data-testid=\"`${formatIssuableAttribute.kebab}-link`\"\n >\n {{ attributeTitle }}\n <span v-if=\"isAttributeOverdue(currentAttribute)\">{{ $options.i18n.expired }}</span>\n </gl-link>\n </slot>\n </div>\n </template>\n <template v-if=\"shouldShowConfirmationPopover\" #default=\"{ toggle }\">\n <gl-popover\n ref=\"popover\"\n :target=\"`${formatIssuableAttribute.kebab}-edit`\"\n placement=\"bottomleft\"\n boundary=\"viewport\"\n triggers=\"click\"\n >\n <div class=\"gl-mb-4 gl-text-base\">\n {{ i18n.editConfirmation }}\n </div>\n <div class=\"gl-flex gl-items-center\">\n <gl-button\n size=\"small\"\n variant=\"confirm\"\n category=\"primary\"\n data-testid=\"confirm-edit-cta\"\n @click.prevent=\"() => handlePopoverConfirm(toggle)\"\n >{{ i18n.editConfirmationCta }}</gl-button\n >\n <gl-button\n class=\"gl-ml-auto\"\n size=\"small\"\n name=\"cancel\"\n variant=\"default\"\n category=\"primary\"\n data-testid=\"confirm-edit-cancel\"\n @click.prevent=\"handlePopoverClose\"\n >{{ i18n.editConfirmationCancel }}</gl-button\n >\n </div>\n </gl-popover>\n </template>\n <template v-else #default>\n <sidebar-dropdown\n ref=\"dropdown\"\n :attr-workspace-path=\"attrWorkspacePath\"\n :current-attribute=\"currentAttribute\"\n :issuable-attribute=\"issuableAttribute\"\n :issuable-type=\"issuableType\"\n :show-work-item-epics=\"showWorkItemEpics\"\n @change=\"updateAttribute\"\n >\n <template #list=\"{ attributesList, isAttributeChecked, updateAttribute: update }\">\n <slot\n name=\"list\"\n :attributes-list=\"attributesList\"\n :is-attribute-checked=\"isAttributeChecked\"\n :update-attribute=\"update\"\n >\n </slot>\n </template>\n </sidebar-dropdown>\n </template>\n </sidebar-editable-item>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_dropdown_widget.vue?vue&type=template&id=5aba64de\"\nimport script from \"./sidebar_dropdown_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_dropdown_widget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"projectIssueIterationMutation\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"attributeId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IterationID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetAttribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"issueSetIteration\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"attributeId\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"iteration\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":354}};\n doc.loc.source = {\"body\":\"mutation projectIssueIterationMutation($fullPath: ID!, $iid: String!, $attributeId: IterationID) {\\n issuableSetAttribute: issueSetIteration(\\n input: { projectPath: $fullPath, iid: $iid, iterationId: $attributeId }\\n ) {\\n errors\\n issuable: issue {\\n id\\n attribute: iteration {\\n title\\n id\\n state\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"projectIssueIterationMutation\"] = oneQuery(doc, \"projectIssueIterationMutation\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueNode\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"blocked\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"blockedByCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iteration\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadence\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":291}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/issue.fragment.graphql\\\"\\n\\nfragment Issue on Issue {\\n ...IssueNode\\n id\\n weight\\n blocked\\n blockedByCount\\n epic {\\n id\\n }\\n iteration {\\n id\\n title\\n startDate\\n dueDate\\n iterationCadence {\\n id\\n title\\n }\\n }\\n healthStatus\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/issue.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"Issue\"] = oneQuery(doc, \"Issue\");\n \n","import { parseBoolean } from '~/lib/utils/common_utils';\nimport AccessorUtilities from './lib/utils/accessor';\n\nexport default class Autosave {\n // eslint-disable-next-line max-params\n constructor(field, key, fallbackKey, lockVersion) {\n this.field = field;\n this.type = this.field.getAttribute('type');\n this.isLocalStorageAvailable = AccessorUtilities.canUseLocalStorage();\n this.key = Array.isArray(key) ? `autosave/${key.join('/')}` : `autosave/${key}`;\n this.fallbackKey = fallbackKey;\n this.lockVersionKey = `${this.key}/lockVersion`;\n this.lockVersion = lockVersion;\n this.restore();\n this.saveAction = this.save.bind(this);\n // used by app/assets/javascripts/deprecated_notes.js\n this.field.$autosave = this;\n this.field.addEventListener('input', this.saveAction);\n }\n\n restore() {\n if (!this.isLocalStorageAvailable) return;\n const text = window.localStorage.getItem(this.key);\n const fallbackText = window.localStorage.getItem(this.fallbackKey);\n const newValue = text || fallbackText;\n\n if (newValue == null) return;\n\n let originalValue = this.field.value;\n if (this.type === 'checkbox') {\n originalValue = this.field.checked;\n this.field.checked = parseBoolean(newValue);\n } else {\n this.field.value = newValue;\n }\n\n if (originalValue === newValue) return;\n this.triggerInputEvents();\n }\n\n triggerInputEvents() {\n // trigger events so @input, @change and v-model trigger in Vue components\n const inputEvent = new Event('input', { bubbles: true, cancelable: false });\n const changeEvent = new Event('change', { bubbles: true, cancelable: false });\n this.field.dispatchEvent(inputEvent);\n this.field.dispatchEvent(changeEvent);\n }\n\n getSavedLockVersion() {\n if (!this.isLocalStorageAvailable) return undefined;\n return window.localStorage.getItem(this.lockVersionKey);\n }\n\n save() {\n const value = this.type === 'checkbox' ? this.field.checked : this.field.value;\n\n if (this.isLocalStorageAvailable && value) {\n if (this.fallbackKey) {\n window.localStorage.setItem(this.fallbackKey, value);\n }\n if (this.lockVersion !== undefined) {\n window.localStorage.setItem(this.lockVersionKey, this.lockVersion);\n }\n return window.localStorage.setItem(this.key, value);\n }\n\n return this.reset();\n }\n\n reset() {\n if (!this.isLocalStorageAvailable) return undefined;\n\n window.localStorage.removeItem(this.lockVersionKey);\n window.localStorage.removeItem(this.fallbackKey);\n return window.localStorage.removeItem(this.key);\n }\n\n dispose() {\n delete this.field.$autosave;\n this.field.removeEventListener('input', this.saveAction);\n }\n}\n","import { clamp } from 'lodash';\nimport {\n ARROW_DOWN_KEY,\n ARROW_UP_KEY,\n END_KEY,\n HOME_KEY,\n ESC_KEY,\n NUMPAD_ENTER_KEY,\n} from '~/lib/utils/keys';\n\nexport default {\n methods: {\n getFocusableOptions() {\n return Array.from(this.$refs.resultsList?.querySelectorAll('.gl-new-dropdown-item') || []);\n },\n onKeydown(event) {\n const { code, target } = event;\n\n let stop = true;\n\n const elements = this.getFocusableOptions();\n if (elements.length < 1) return;\n\n const isSearchInput = target.matches('input[role=\"searchbox\"]');\n\n if (code === HOME_KEY) {\n if (isSearchInput) return;\n\n this.focusItem(0, elements);\n } else if (code === END_KEY) {\n if (isSearchInput) return;\n\n this.focusItem(elements.length - 1, elements);\n } else if (code === ARROW_UP_KEY) {\n if (isSearchInput) return;\n\n if (elements.indexOf(target) === 0) {\n this.focusSearchInput();\n } else {\n this.focusNextItem(event, elements, -1);\n }\n } else if (code === ARROW_DOWN_KEY) {\n this.focusNextItem(event, elements, 1);\n } else if (code === ESC_KEY) {\n this.$refs.modal.close();\n } else if (code === NUMPAD_ENTER_KEY) {\n event.target?.firstChild.click();\n } else {\n stop = false;\n }\n\n if (stop) {\n event.preventDefault();\n }\n },\n focusSearchInput() {\n this.$refs.searchInput.$el.querySelector('input')?.focus();\n },\n focusNextItem(event, elements, offset) {\n const { target } = event;\n const currentIndex = elements.indexOf(target);\n const nextIndex = clamp(currentIndex + offset, 0, elements.length - 1);\n\n this.focusItem(nextIndex, elements);\n },\n focusItem(index, elements) {\n this.nextFocusedItemIndex = index;\n\n elements[index]?.focus();\n },\n },\n};\n","/* eslint-disable func-names, no-param-reassign, operator-assignment, consistent-return */\nimport $ from 'jquery';\nimport Shortcuts from '~/behaviors/shortcuts/shortcuts';\nimport { insertText } from '~/lib/utils/common_utils';\nimport axios from '~/lib/utils/axios_utils';\n\nconst LINK_TAG_PATTERN = '[{text}](url)';\nconst INDENT_CHAR = ' ';\nconst INDENT_LENGTH = 2;\n\n// at the start of a line, find any amount of whitespace followed by\n// a bullet point character (*+-) and an optional checkbox ([ ] [x])\n// OR a number with a . after it and an optional checkbox ([ ] [x])\n// followed by one or more whitespace characters\nconst LIST_LINE_HEAD_PATTERN =\n /^(?<indent>\\s*)(?<leader>((?<isUl>[*+-])|(?<isOl>\\d+\\.))( \\[([xX~\\s])\\])?\\s)(?<content>.)?/;\n\n// detect a horizontal rule that might be mistaken for a list item (not full pattern for an <hr>)\nconst HR_PATTERN = /^((\\s{0,3}-+\\s*-+\\s*-+\\s*[\\s-]*)|(\\s{0,3}\\*+\\s*\\*+\\s*\\*+\\s*[\\s*]*))$/;\n\nlet compositioningNoteText = false;\n\nfunction selectedText(text, textarea) {\n return text.substring(textarea.selectionStart, textarea.selectionEnd);\n}\n\nfunction addBlockTags(blockTag, selected) {\n return `${blockTag}\\n${selected}\\n${blockTag}`;\n}\n\n/**\n * Returns the line of text that is before the first line\n * of the current selection\n *\n * @param {String} text - the text of the targeted text area\n * @param {Object} textArea - the targeted text area\n * @returns {String}\n */\nfunction lineBeforeSelection(text, textArea) {\n let split = text.substring(0, textArea.selectionStart);\n\n split = split.split('\\n');\n\n // Last item, at -1, is the line where the start of selection is.\n // Line before selection is therefore at -2\n const lineBefore = split[split.length - 2];\n\n return lineBefore === undefined ? '' : lineBefore;\n}\n\n/**\n * Returns the line of text that is after the last line\n * of the current selection\n *\n * @param {String} text - the text of the targeted text area\n * @param {Object} textArea - the targeted text area\n * @returns {String}\n */\nfunction lineAfterSelection(text, textArea) {\n let split = text.substring(textArea.selectionEnd);\n\n // remove possible leading newline to get at the real line\n split = split.replace(/^\\n/, '');\n split = split.split('\\n');\n\n return split[0];\n}\n\n/**\n * Returns the text lines that encompass the current selection\n *\n * @param {Object} textArea - the targeted text area\n * @returns {Object}\n */\nfunction linesFromSelection(textArea) {\n const text = textArea.value;\n const { selectionStart, selectionEnd } = textArea;\n\n let startPos = text[selectionStart] === '\\n' ? selectionStart - 1 : selectionStart;\n startPos = text.lastIndexOf('\\n', startPos) + 1;\n\n let endPos = selectionEnd === selectionStart ? selectionEnd : selectionEnd - 1;\n endPos = text.indexOf('\\n', endPos);\n if (endPos < 0) endPos = text.length;\n\n const selectedRange = text.substring(startPos, endPos);\n const lines = selectedRange.split('\\n');\n\n return {\n lines,\n selectionStart,\n selectionEnd,\n startPos,\n endPos,\n };\n}\n\n/**\n * Set the selection of a textarea such that it maintains the\n * previous selection before the lines were indented/outdented\n *\n * @param {Object} textArea - the targeted text area\n * @param {Number} selectionStart - start position of original selection\n * @param {Number} selectionEnd - end position of original selection\n * @param {Number} lineStart - start pos of first line\n * @param {Number} firstLineChange - number of characters changed on first line\n * @param {Number} totalChanged - total number of characters changed\n */\n// eslint-disable-next-line max-params\nfunction setNewSelectionRange(\n textArea,\n selectionStart,\n selectionEnd,\n lineStart,\n firstLineChange,\n totalChanged,\n) {\n let newStart = Math.max(lineStart, selectionStart + firstLineChange);\n let newEnd = Math.max(lineStart, selectionEnd + totalChanged);\n\n if (selectionStart === selectionEnd) {\n newEnd = newStart;\n } else if (selectionStart === lineStart) {\n newStart = lineStart;\n }\n\n textArea.setSelectionRange(newStart, newEnd);\n}\n\nfunction convertMonacoSelectionToAceFormat(sel) {\n return {\n start: {\n row: sel.startLineNumber,\n column: sel.startColumn,\n },\n end: {\n row: sel.endLineNumber,\n column: sel.endColumn,\n },\n };\n}\n\nfunction getEditorSelectionRange(editor) {\n return convertMonacoSelectionToAceFormat(editor.getSelection());\n}\n\n// eslint-disable-next-line max-params\nfunction editorBlockTagText(text, blockTag, selected, editor) {\n const lines = text.split('\\n');\n const selectionRange = getEditorSelectionRange(editor);\n const shouldRemoveBlock =\n lines[selectionRange.start.row - 1] === blockTag &&\n lines[selectionRange.end.row + 1] === blockTag;\n\n if (shouldRemoveBlock) {\n if (blockTag !== null) {\n const lastLine = lines[selectionRange.end.row + 1];\n const rangeWithBlockTags = new Range(\n lines[selectionRange.start.row - 1],\n 0,\n selectionRange.end.row + 1,\n lastLine.length,\n );\n editor.getSelection().setSelectionRange(rangeWithBlockTags);\n }\n return selected;\n }\n return addBlockTags(blockTag, selected);\n}\n\n// eslint-disable-next-line max-params\nfunction blockTagText(text, textArea, blockTag, selected) {\n const shouldRemoveBlock =\n lineBeforeSelection(text, textArea) === blockTag &&\n lineAfterSelection(text, textArea) === blockTag;\n\n if (shouldRemoveBlock) {\n // To remove the block tag we have to select the line before & after\n if (blockTag != null) {\n textArea.selectionStart = textArea.selectionStart - (blockTag.length + 1);\n textArea.selectionEnd = textArea.selectionEnd + (blockTag.length + 1);\n }\n return selected;\n }\n return addBlockTags(blockTag, selected);\n}\n\nfunction moveCursor({\n textArea,\n tag,\n cursorOffset,\n positionBetweenTags,\n removedLastNewLine,\n select,\n editor,\n editorSelectionStart,\n editorSelectionEnd,\n}) {\n let pos;\n if (textArea && !textArea.setSelectionRange) {\n return;\n }\n if (select && select.length > 0) {\n if (textArea) {\n // calculate the part of the text to be selected\n const startPosition = textArea.selectionStart - (tag.length - tag.indexOf(select));\n const endPosition = startPosition + select.length;\n return textArea.setSelectionRange(startPosition, endPosition);\n }\n if (editor) {\n editor.selectWithinSelection(select, tag);\n return;\n }\n }\n if (textArea) {\n if (textArea.selectionStart === textArea.selectionEnd) {\n if (positionBetweenTags) {\n pos = textArea.selectionStart - tag.length;\n } else {\n pos = textArea.selectionStart;\n }\n\n if (removedLastNewLine) {\n pos -= 1;\n }\n\n if (cursorOffset) {\n pos -= cursorOffset;\n }\n\n return textArea.setSelectionRange(pos, pos);\n }\n } else if (editor && editorSelectionStart.row === editorSelectionEnd.row) {\n if (positionBetweenTags) {\n editor.moveCursor(tag.length * -1);\n }\n }\n}\n\n/**\n * Inserts the given MarkdownText into the given textArea or editor\n *\n * WARNING: This is a bit of legacy code that has some complicated logic.\n * There are a lot of hidden contexts to consider here. Please proceed with caution.\n *\n * We've tried to document the parameter responsibilities as best as possible.\n * Please look for actual usage in the code to verify any assumptions.\n *\n * @param {Object} options - Named parameters\n * @param {HTMLTextAreaElement} options.textArea - The relevant text area\n * @param {String} options.text - The current text of the text area\n * @param {String} options.tag - The markdown tag we want to enter (Example: `- [ ] ` for lists)\n * @param {Number} options.cursorOffset - Applied to the position after we insert the text (moves backward)\n * @param {String} options.blockTag - The markdown tag to use if a block is detected (Example ` ``` ` vs. ` ` `)\n * @param {Boolean} options.wrap - Flag for whether the tag is a wrapping tag (Example `**text**` vs `* text`)\n * @param {String} options.select - The text to select after inserting (Example `url` of `({text})[url]`)\n * @param {Object} options.editor - The instance of the SourceEditor which we are inserting MarkdownText into. This should be mutually exclusive with textArea.\n */\nexport function insertMarkdownText({\n textArea,\n text,\n tag,\n cursorOffset,\n blockTag,\n selected = '',\n wrap,\n select,\n editor,\n}) {\n // If we aren't really inserting anything, let's just noop.\n // Let's check for `selected` too because there might be hidden logic that actually\n // is expected to run for this case.\n if (!tag && !blockTag && !selected) {\n return;\n }\n\n let removedLastNewLine = false;\n let removedFirstNewLine = false;\n let currentLineEmpty = false;\n let editorSelectionStart;\n let editorSelectionEnd;\n let lastNewLine;\n let textToInsert;\n selected = selected.toString();\n\n if (editor) {\n const selectionRange = getEditorSelectionRange(editor);\n\n editorSelectionStart = selectionRange.start;\n editorSelectionEnd = selectionRange.end;\n }\n\n // check for link pattern and selected text is an URL\n // if so fill in the url part instead of the text part of the pattern.\n if (tag === LINK_TAG_PATTERN) {\n if (URL) {\n try {\n const url = new URL(selected);\n\n if (url.origin !== 'null' || url.origin === null) {\n tag = '[text]({text})';\n select = 'text';\n }\n } catch (e) {\n // ignore - no valid url\n }\n }\n }\n\n // Remove the first newline\n if (selected.indexOf('\\n') === 0) {\n removedFirstNewLine = true;\n selected = selected.replace(/\\n+/, '');\n }\n\n // Remove the last newline\n if (textArea) {\n if (textArea.selectionEnd - textArea.selectionStart > selected.replace(/\\n$/, '').length) {\n removedLastNewLine = true;\n selected = selected.replace(/\\n$/, '');\n }\n } else if (editor) {\n if (editorSelectionStart.row !== editorSelectionEnd.row) {\n removedLastNewLine = true;\n selected = selected.replace(/\\n$/, '');\n }\n }\n\n const selectedSplit = selected.split('\\n');\n\n if (editor && !wrap) {\n lastNewLine = editor.getValue().split('\\n')[editorSelectionStart.row];\n\n if (/^\\s*$/.test(lastNewLine)) {\n currentLineEmpty = true;\n }\n } else if (textArea && !wrap) {\n lastNewLine = textArea.value.substr(0, textArea.selectionStart).lastIndexOf('\\n');\n\n // Check whether the current line is empty or consists only of spaces(=handle as empty)\n if (/^\\s*$/.test(textArea.value.substring(lastNewLine, textArea.selectionStart))) {\n currentLineEmpty = true;\n }\n }\n\n const isBeginning =\n (textArea && textArea.selectionStart === 0) ||\n (editor && editorSelectionStart.column === 0 && editorSelectionStart.row === 0);\n\n const startChar = !wrap && !currentLineEmpty && !isBeginning ? '\\n' : '';\n const textPlaceholder = '{text}';\n\n if (selectedSplit.length > 1 && (!wrap || (blockTag != null && blockTag !== ''))) {\n if (blockTag != null && blockTag !== '') {\n textToInsert = editor\n ? editorBlockTagText(text, blockTag, selected, editor)\n : blockTagText(text, textArea, blockTag, selected);\n } else {\n textToInsert = selectedSplit\n .map((val) => {\n if (tag.indexOf(textPlaceholder) > -1) {\n return tag.replace(textPlaceholder, val);\n }\n if (val.indexOf(tag) === 0) {\n return String(val.replace(tag, ''));\n }\n return String(tag) + val;\n })\n .join('\\n');\n }\n } else if (tag.indexOf(textPlaceholder) > -1) {\n textToInsert = tag.replace(textPlaceholder, () =>\n selected.replace(/\\\\n/g, '\\n').replace(/%br/g, '\\\\n'),\n );\n } else {\n textToInsert = String(startChar) + tag + selected + (wrap ? tag : '');\n }\n\n if (removedFirstNewLine) {\n textToInsert = `\\n${textToInsert}`;\n }\n\n if (removedLastNewLine) {\n textToInsert += '\\n';\n }\n\n if (editor) {\n editor.replaceSelectedText(textToInsert, select);\n } else {\n insertText(textArea, textToInsert);\n }\n\n moveCursor({\n textArea,\n tag: tag.replace(textPlaceholder, selected),\n cursorOffset,\n positionBetweenTags: wrap && selected.length === 0,\n removedLastNewLine,\n select,\n editor,\n editorSelectionStart,\n editorSelectionEnd,\n });\n}\n\nexport function updateText({ textArea, tag, cursorOffset, blockTag, wrap, select, tagContent }) {\n const $textArea = $(textArea);\n textArea = $textArea.get(0);\n const text = $textArea.val();\n const selected = selectedText(text, textArea) || tagContent;\n textArea.focus();\n insertMarkdownText({\n textArea,\n text,\n tag,\n cursorOffset,\n blockTag,\n selected,\n wrap,\n select,\n });\n textArea.click();\n}\n\n/**\n * Indents selected lines to the right by 2 spaces\n *\n * @param {Object} textArea - jQuery object with the targeted text area\n */\nfunction indentLines($textArea) {\n const textArea = $textArea.get(0);\n const { lines, selectionStart, selectionEnd, startPos, endPos } = linesFromSelection(textArea);\n const shiftedLines = [];\n let totalAdded = 0;\n\n textArea.focus();\n textArea.setSelectionRange(startPos, endPos);\n\n lines.forEach((line) => {\n line = INDENT_CHAR.repeat(INDENT_LENGTH) + line;\n totalAdded += INDENT_LENGTH;\n\n shiftedLines.push(line);\n });\n\n const textToInsert = shiftedLines.join('\\n');\n\n insertText(textArea, textToInsert);\n setNewSelectionRange(textArea, selectionStart, selectionEnd, startPos, INDENT_LENGTH, totalAdded);\n}\n\n/**\n * Outdents selected lines to the left by 2 spaces\n *\n * @param {Object} textArea - the targeted text area\n */\nfunction outdentLines($textArea) {\n const textArea = $textArea.get(0);\n const { lines, selectionStart, selectionEnd, startPos, endPos } = linesFromSelection(textArea);\n const shiftedLines = [];\n let totalRemoved = 0;\n let removedFromFirstline = -1;\n let removedFromLine = 0;\n\n textArea.focus();\n textArea.setSelectionRange(startPos, endPos);\n\n lines.forEach((line) => {\n removedFromLine = 0;\n\n if (line.length > 0) {\n // need to count how many spaces are actually removed, so can't use `replace`\n while (removedFromLine < INDENT_LENGTH && line[removedFromLine] === INDENT_CHAR) {\n removedFromLine += 1;\n }\n\n if (removedFromLine > 0) {\n line = line.slice(removedFromLine);\n totalRemoved += removedFromLine;\n }\n }\n\n if (removedFromFirstline === -1) removedFromFirstline = removedFromLine;\n shiftedLines.push(line);\n });\n\n const textToInsert = shiftedLines.join('\\n');\n\n if (totalRemoved > 0) insertText(textArea, textToInsert);\n\n setNewSelectionRange(\n textArea,\n selectionStart,\n selectionEnd,\n startPos,\n -removedFromFirstline,\n -totalRemoved,\n );\n}\n\n/* eslint-disable @gitlab/require-i18n-strings */\nfunction handleSurroundSelectedText(e, textArea) {\n if (!gon.markdown_surround_selection) return;\n if (e.metaKey || e.ctrlKey) return;\n if (textArea.selectionStart === textArea.selectionEnd) return;\n\n const keys = {\n '*': '**{text}**', // wraps with bold character\n _: '_{text}_', // wraps with italic character\n '`': '`{text}`', // wraps with inline character\n \"'\": \"'{text}'\", // single quotes\n '\"': '\"{text}\"', // double quotes\n '[': '[{text}]', // brackets\n '{': '{{text}}', // braces\n '(': '({text})', // parentheses\n '<': '<{text}>', // angle brackets\n };\n const tag = keys[e.key];\n\n if (tag) {\n e.preventDefault();\n\n updateText({\n tag,\n textArea,\n blockTag: '',\n wrap: true,\n select: '',\n tagContent: '',\n });\n }\n}\n/* eslint-enable @gitlab/require-i18n-strings */\n\n/**\n * Returns the content for a new line following a list item.\n *\n * @param {Object} listLineMatch - regex match of the current line\n * @param {Object?} nextLineMatch - regex match of the next line\n * @returns string with the new list item\n */\nfunction continueOlText(listLineMatch, nextLineMatch) {\n const { indent, leader } = listLineMatch.groups;\n const { indent: nextIndent, isOl: nextIsOl } = nextLineMatch?.groups ?? {};\n\n const [numStr, postfix = ''] = leader.split('.');\n\n const incrementBy = nextIsOl && nextIndent === indent ? 0 : 1;\n const num = parseInt(numStr, 10) + incrementBy;\n\n return `${indent}${num}.${postfix}`;\n}\n\nfunction handleContinueList(e, textArea) {\n if (!gon.markdown_automatic_lists) return;\n if (!(e.key === 'Enter')) return;\n if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) return;\n if (textArea.selectionStart !== textArea.selectionEnd) return;\n\n // prevent unintended line breaks inserted using Japanese IME on MacOS\n if (compositioningNoteText) return;\n\n const selectedLines = linesFromSelection(textArea);\n const firstSelectedLine = selectedLines.lines[0];\n const listLineMatch = firstSelectedLine.match(LIST_LINE_HEAD_PATTERN);\n\n if (listLineMatch) {\n const { leader, indent, content, isOl } = listLineMatch.groups;\n const emptyListItem = !content;\n const prefixLength = leader.length + indent.length;\n\n if (selectedLines.selectionStart - selectedLines.startPos < prefixLength) {\n // cursor in the indent/leader area, allow the natural line feed to be added\n return;\n }\n\n if (emptyListItem) {\n // erase empty list item - select the text and allow the\n // natural line feed to erase the text\n textArea.selectionStart = textArea.selectionStart - listLineMatch[0].length;\n return;\n }\n\n let itemToInsert;\n\n // Behaviors specific to either `ol` or `ul`\n if (isOl) {\n const nextLine = lineAfterSelection(textArea.value, textArea);\n const nextLineMatch = nextLine.match(LIST_LINE_HEAD_PATTERN);\n\n itemToInsert = continueOlText(listLineMatch, nextLineMatch);\n } else {\n if (firstSelectedLine.match(HR_PATTERN)) return;\n\n itemToInsert = `${indent}${leader}`;\n }\n\n itemToInsert = itemToInsert.replace(/\\[[x~]\\]/i, '[ ]');\n\n e.preventDefault();\n\n updateText({\n tag: itemToInsert,\n textArea,\n blockTag: '',\n wrap: false,\n select: '',\n tagContent: '',\n });\n }\n}\n\nexport function keypressNoteText(e) {\n const textArea = this;\n\n if ($(textArea).atwho?.('isSelecting')) return;\n\n handleContinueList(e, textArea);\n handleSurroundSelectedText(e, textArea);\n}\n\nexport function compositionStartNoteText() {\n compositioningNoteText = true;\n}\n\nexport function compositionEndNoteText() {\n compositioningNoteText = false;\n}\n\nexport function updateTextForToolbarBtn($toolbarBtn) {\n const $textArea = $toolbarBtn.closest('.md-area').find('textarea');\n if (!$textArea.length) return;\n\n switch ($toolbarBtn.data('mdCommand')) {\n case 'indentLines':\n indentLines($textArea);\n break;\n case 'outdentLines':\n outdentLines($textArea);\n break;\n default:\n return updateText({\n textArea: $textArea,\n tag: $toolbarBtn.data('mdTag'),\n cursorOffset: $toolbarBtn.data('mdCursorOffset'),\n blockTag: $toolbarBtn.data('mdBlock'),\n wrap: !$toolbarBtn.data('mdPrepend'),\n select: $toolbarBtn.data('mdSelect'),\n tagContent: $toolbarBtn.attr('data-md-tag-content'),\n });\n }\n}\n\nexport function addMarkdownListeners(form) {\n $('.markdown-area', form)\n .on('keydown', keypressNoteText)\n .on('compositionstart', compositionStartNoteText)\n .on('compositionend', compositionEndNoteText)\n .each(function attachTextareaShortcutHandlers() {\n Shortcuts.initMarkdownEditorShortcuts($(this), updateTextForToolbarBtn);\n });\n\n const $allToolbarBtns = $(form)\n .off('click', '.js-md')\n .on('click', '.js-md', function () {\n const $toolbarBtn = $(this);\n\n return updateTextForToolbarBtn($toolbarBtn);\n });\n\n return $allToolbarBtns;\n}\n\nexport function addEditorMarkdownListeners(editor) {\n // eslint-disable-next-line @gitlab/no-global-event-off\n $('.js-md')\n .off('click')\n .on('click', (e) => {\n const { mdTag, mdBlock, mdPrepend, mdSelect } = $(e.currentTarget).data();\n\n insertMarkdownText({\n tag: mdTag,\n blockTag: mdBlock,\n wrap: !mdPrepend,\n select: mdSelect,\n selected: editor.getSelectedText(),\n text: editor.getValue(),\n editor,\n });\n editor.focus();\n });\n}\n\nexport function removeMarkdownListeners(form) {\n $('.markdown-area', form)\n .off('keydown', keypressNoteText)\n .off('compositionstart', compositionStartNoteText)\n .off('compositionend', compositionEndNoteText)\n .each(function removeTextareaShortcutHandlers() {\n Shortcuts.removeMarkdownEditorShortcuts($(this));\n });\n\n // eslint-disable-next-line @gitlab/no-global-event-off\n return $('.js-md', form).off('click');\n}\n\n/**\n * If the textarea cursor is positioned in a Markdown image declaration,\n * it uses the Markdown API to resolve the image’s absolute URL.\n * @param {Object} textarea Textarea DOM element\n * @param {String} markdownPreviewPath Markdown API path\n * @returns {Object} an object containing the image’s absolute URL, filename,\n * and the markdown declaration. If the textarea cursor is not positioned\n * in an image, it returns null.\n */\nexport const resolveSelectedImage = async (textArea, markdownPreviewPath = '') => {\n const { lines, startPos } = linesFromSelection(textArea);\n\n // image declarations can’t span more than one line in Markdown\n if (lines > 0) {\n return null;\n }\n\n const selectedLine = lines[0];\n\n if (!/!\\[.+?\\]\\(.+?\\)/.test(selectedLine)) return null;\n\n const lineSelectionStart = textArea.selectionStart - startPos;\n const preExlm = selectedLine.substring(0, lineSelectionStart).lastIndexOf('!');\n const postClose = selectedLine.substring(lineSelectionStart).indexOf(')');\n\n if (preExlm >= 0 && postClose >= 0) {\n const imageMarkdown = selectedLine.substring(preExlm, lineSelectionStart + postClose + 1);\n const { data } = await axios.post(markdownPreviewPath, { text: imageMarkdown });\n const parser = new DOMParser();\n\n const dom = parser.parseFromString(data.body, 'text/html');\n const imageURL = dom.body.querySelector('a').getAttribute('href');\n\n if (imageURL) {\n const filename = imageURL.substring(imageURL.lastIndexOf('/') + 1);\n\n return {\n imageMarkdown,\n imageURL,\n filename,\n };\n }\n }\n\n return null;\n};\n\nexport const repeatCodeBackticks = (content) => {\n const numBackticks =\n Math.max(2, content.match(/```+/g)?.sort((a, b) => b.length - a.length)[0]?.length || 0) + 1;\n return '`'.repeat(numBackticks);\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"issueSetTitle\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateIssueInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"updateIssuableTitle\"},\"name\":{\"kind\":\"Name\",\"value\":\"updateIssue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":160}};\n doc.loc.source = {\"body\":\"mutation issueSetTitle($input: UpdateIssueInput!) {\\n updateIssuableTitle: updateIssue(input: $input) {\\n issue {\\n id\\n title\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueSetTitle\"] = oneQuery(doc, \"issueSetTitle\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"setReviewers\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"reviewerUsernames\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestSetReviewers\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"reviewerUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"reviewerUsernames\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":232}};\n doc.loc.source = {\"body\":\"mutation setReviewers($projectPath: ID!, $iid: String!, $reviewerUsernames: [String!]!) {\\n mergeRequestSetReviewers(\\n input: { projectPath: $projectPath, iid: $iid, reviewerUsernames: $reviewerUsernames }\\n ) {\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"setReviewers\"] = oneQuery(doc, \"setReviewers\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"time-tracker sidebar-help-wrap\",attrs:{\"data-testid\":\"time-tracker\"}},[(_vm.showCollapsed)?_c('time-tracking-collapsed-state',{attrs:{\"show-comparison-state\":_vm.showComparisonState,\"show-no-time-tracking-state\":_vm.showNoTimeTrackingState,\"show-spent-only-state\":_vm.showSpentOnlyState,\"show-estimate-only-state\":_vm.showEstimateOnlyState,\"time-spent-human-readable\":_vm.humanTotalTimeSpent,\"time-estimate-human-readable\":_vm.humanTimeEstimate}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed gl-flex gl-items-center gl-font-bold gl-leading-20 gl-text-default\"},[_vm._v(\"\\n \"+_vm._s(_vm.__('Time tracking'))+\"\\n \"),(_vm.isTimeTrackingInfoLoading)?_c('gl-loading-icon',{staticClass:\"gl-ml-2\",attrs:{\"size\":\"sm\",\"inline\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.canSetTimeEstimate || _vm.canAddTimeEntries)?_c('div',{staticClass:\"gl-ml-auto gl-flex\"},[(_vm.canSetTimeEstimate)?_c('gl-button',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.$options.setTimeEstimateModalId),expression:\"$options.setTimeEstimateModalId\"},{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.top\",modifiers:{\"top\":true}}],attrs:{\"category\":\"tertiary\",\"icon\":\"timer\",\"size\":\"small\",\"data-testid\":\"set-time-estimate-button\",\"title\":_vm.timeEstimateTooltip,\"aria-label\":_vm.timeEstimateTooltip}}):_vm._e(),_vm._v(\" \"),(_vm.canAddTimeEntries)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.top\",modifiers:{\"top\":true}}],attrs:{\"category\":\"tertiary\",\"icon\":\"plus\",\"size\":\"small\",\"data-testid\":\"add-time-entry-button\",\"title\":_vm.__('Add time entry')},on:{\"click\":function($event){return _vm.openRegisterTimeSpentModal()}}}):_vm._e()],1):_vm._e()],1),_vm._v(\" \"),(!_vm.isTimeTrackingInfoLoading)?_c('div',{staticClass:\"hide-collapsed\"},[(_vm.showEstimateOnlyState)?_c('div',{attrs:{\"data-testid\":\"estimateOnlyPane\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.estimatedOnlyText)+\" \"+_vm._s(_vm.humanTimeEstimate)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showSpentOnlyState)?_c('time-tracking-spent-only-pane',{attrs:{\"time-spent-human-readable\":_vm.humanTotalTimeSpent}}):_vm._e(),_vm._v(\" \"),(_vm.showNoTimeTrackingState)?_c('div',{attrs:{\"data-testid\":\"noTrackingPane\"}},[_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.$options.i18n.noTimeTrackingText))])]):_vm._e(),_vm._v(\" \"),(_vm.showComparisonState)?_c('time-tracking-comparison-pane',{attrs:{\"time-estimate\":_vm.timeEstimate,\"time-spent\":_vm.totalTimeSpent,\"time-spent-human-readable\":_vm.humanTotalTimeSpent,\"time-estimate-human-readable\":_vm.humanTimeEstimate,\"limit-to-hours\":_vm.limitToHours}}):_vm._e(),_vm._v(\" \"),(_vm.isTimeReportSupported)?_c('div',[(_vm.hasTotalTimeSpent)?_c('gl-link',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:('time-tracking-report'),expression:\"'time-tracking-report'\"}],staticClass:\"gl-text-default\",attrs:{\"data-testid\":\"reportLink\",\"href\":\"#\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Time tracking report'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('gl-modal',{attrs:{\"modal-id\":\"time-tracking-report\",\"size\":\"lg\",\"title\":_vm.__('Time tracking report'),\"hide-footer\":true}},[_c('time-tracking-report',{attrs:{\"limit-to-hours\":_vm.limitToHours,\"issuable-id\":_vm.issuableId}})],1)],1):_vm._e(),_vm._v(\" \"),_c('create-timelog-form',{attrs:{\"issuable-id\":_vm.issuableId}}),_vm._v(\" \"),_c('set-time-estimate-form',{attrs:{\"full-path\":_vm.fullPath,\"issuable-iid\":_vm.issuableIid,\"time-tracking\":_vm.timeTracking}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./collapsed_state.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./collapsed_state.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { __, sprintf } from '~/locale';\n\nexport default {\n name: 'TimeTrackingCollapsedState',\n components: {\n GlIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n showComparisonState: {\n type: Boolean,\n required: true,\n },\n showSpentOnlyState: {\n type: Boolean,\n required: true,\n },\n showEstimateOnlyState: {\n type: Boolean,\n required: true,\n },\n showNoTimeTrackingState: {\n type: Boolean,\n required: true,\n },\n timeSpentHumanReadable: {\n type: String,\n required: false,\n default: '',\n },\n timeEstimateHumanReadable: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n divClass() {\n if (this.showComparisonState) {\n return 'compare';\n }\n if (this.showEstimateOnlyState) {\n return 'estimate-only';\n }\n if (this.showSpentOnlyState) {\n return 'spend-only';\n }\n if (this.showNoTimeTrackingState) {\n return 'no-tracking';\n }\n\n return '';\n },\n spanClass() {\n if (this.showNoTimeTrackingState) {\n return 'no-value collapse-truncated-title gl-pt-2 gl-px-3 gl-text-sm';\n }\n\n return '';\n },\n text() {\n if (this.showComparisonState) {\n return `${this.timeSpentHumanReadable} / ${this.timeEstimateHumanReadable}`;\n }\n if (this.showEstimateOnlyState) {\n return `-- / ${this.timeEstimateHumanReadable}`;\n }\n if (this.showSpentOnlyState) {\n return `${this.timeSpentHumanReadable} / --`;\n }\n if (this.showNoTimeTrackingState) {\n return __('None');\n }\n\n return '';\n },\n timeTrackedTooltipText() {\n let title;\n if (this.showComparisonState) {\n title = __('Time remaining');\n } else if (this.showEstimateOnlyState) {\n title = __('Estimated');\n } else if (this.showSpentOnlyState) {\n title = __('Time spent');\n }\n\n return sprintf('%{title}: %{text}', { title, text: this.text });\n },\n tooltipText() {\n return this.showNoTimeTrackingState ? __('Time tracking') : this.timeTrackedTooltipText;\n },\n },\n};\n</script>\n\n<template>\n <div\n v-gl-tooltip:body.viewport.left\n :title=\"tooltipText\"\n data-testid=\"collapsedState\"\n class=\"sidebar-collapsed-icon py-1 !gl-h-auto\"\n >\n <gl-icon name=\"timer\" />\n <div class=\"time-tracking-collapsed-summary\">\n <div class=\"gl-px-4\" :class=\"divClass\">\n <span class=\"gl-text-sm\" :class=\"spanClass\"> {{ text }} </span>\n </div>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./collapsed_state.vue?vue&type=template&id=74d723ca\"\nimport script from \"./collapsed_state.vue?vue&type=script&lang=js\"\nexport * from \"./collapsed_state.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip:body.viewport.left\",arg:\"body\",modifiers:{\"viewport\":true,\"left\":true}}],staticClass:\"sidebar-collapsed-icon py-1 !gl-h-auto\",attrs:{\"title\":_vm.tooltipText,\"data-testid\":\"collapsedState\"}},[_c('gl-icon',{attrs:{\"name\":\"timer\"}}),_vm._v(\" \"),_c('div',{staticClass:\"time-tracking-collapsed-summary\"},[_c('div',{staticClass:\"gl-px-4\",class:_vm.divClass},[_c('span',{staticClass:\"gl-text-sm\",class:_vm.spanClass},[_vm._v(\" \"+_vm._s(_vm.text)+\" \")])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comparison_pane.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comparison_pane.vue?vue&type=script&lang=js\"","<script>\nimport { GlProgressBar, GlTooltipDirective } from '@gitlab/ui';\nimport { parseSeconds, stringifyTime } from '~/lib/utils/datetime_utility';\nimport { s__, sprintf } from '~/locale';\n\nexport default {\n name: 'TimeTrackingComparisonPane',\n components: {\n GlProgressBar,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n timeSpent: {\n type: Number,\n required: true,\n },\n timeEstimate: {\n type: Number,\n required: true,\n },\n timeSpentHumanReadable: {\n type: String,\n required: true,\n },\n timeEstimateHumanReadable: {\n type: String,\n required: true,\n },\n limitToHours: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n parsedTimeRemaining() {\n const diffSeconds = this.timeEstimate - this.timeSpent;\n return parseSeconds(diffSeconds, { limitToHours: this.limitToHours });\n },\n timeRemainingHumanReadable() {\n return stringifyTime(this.parsedTimeRemaining);\n },\n timeRemainingTooltip() {\n const { timeRemainingHumanReadable, timeRemainingMinutes } = this;\n return timeRemainingMinutes < 0\n ? sprintf(s__('TimeTracking|Over by %{timeRemainingHumanReadable}'), {\n timeRemainingHumanReadable,\n })\n : sprintf(s__('TimeTracking|Time remaining: %{timeRemainingHumanReadable}'), {\n timeRemainingHumanReadable,\n });\n },\n /* Diff values for comparison meter */\n timeRemainingMinutes() {\n return this.timeEstimate - this.timeSpent;\n },\n timeRemainingPercent() {\n return Math.floor((this.timeSpent / this.timeEstimate) * 100);\n },\n timeRemainingStatusClass() {\n return this.timeEstimate >= this.timeSpent ? 'within_estimate' : 'over_estimate';\n },\n progressBarVariant() {\n return this.timeRemainingPercent > 100 ? 'danger' : 'primary';\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-mt-2\" data-testid=\"timeTrackingComparisonPane\">\n <div\n v-gl-tooltip\n data-testid=\"compareMeter\"\n :title=\"timeRemainingTooltip\"\n :class=\"timeRemainingStatusClass\"\n class=\"compare-meter\"\n >\n <gl-progress-bar\n data-testid=\"timeRemainingProgress\"\n :value=\"timeRemainingPercent\"\n :variant=\"progressBarVariant\"\n />\n <div class=\"compare-display-container gl-mt-2 gl-flex gl-justify-between\">\n <div class=\"gl-float-left\">\n <span class=\"gl-text-subtle\">{{ s__('TimeTracking|Spent') }}</span>\n <span class=\"compare-value spent\">{{ timeSpentHumanReadable }}</span>\n </div>\n <div class=\"estimated gl-float-right\">\n <span class=\"gl-text-subtle\">{{ s__('TimeTrackingEstimated|Est') }}</span>\n <span class=\"compare-value\">{{ timeEstimateHumanReadable }}</span>\n </div>\n </div>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./comparison_pane.vue?vue&type=template&id=7d5da840\"\nimport script from \"./comparison_pane.vue?vue&type=script&lang=js\"\nexport * from \"./comparison_pane.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-mt-2\",attrs:{\"data-testid\":\"timeTrackingComparisonPane\"}},[_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"compare-meter\",class:_vm.timeRemainingStatusClass,attrs:{\"data-testid\":\"compareMeter\",\"title\":_vm.timeRemainingTooltip}},[_c('gl-progress-bar',{attrs:{\"data-testid\":\"timeRemainingProgress\",\"value\":_vm.timeRemainingPercent,\"variant\":_vm.progressBarVariant}}),_vm._v(\" \"),_c('div',{staticClass:\"compare-display-container gl-mt-2 gl-flex gl-justify-between\"},[_c('div',{staticClass:\"gl-float-left\"},[_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.s__('TimeTracking|Spent')))]),_vm._v(\" \"),_c('span',{staticClass:\"compare-value spent\"},[_vm._v(_vm._s(_vm.timeSpentHumanReadable))])]),_vm._v(\" \"),_c('div',{staticClass:\"estimated gl-float-right\"},[_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.s__('TimeTrackingEstimated|Est')))]),_vm._v(\" \"),_c('span',{staticClass:\"compare-value\"},[_vm._v(_vm._s(_vm.timeEstimateHumanReadable))])])])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlSprintf } from '@gitlab/ui';\nimport { s__ } from '~/locale';\n\nconst timeSpent = s__('TimeTracking|%{spentStart}Spent: %{spentEnd}');\n\nexport default {\n name: 'TimeTrackingSpentOnlyPane',\n timeSpent,\n components: {\n GlSprintf,\n },\n props: {\n timeSpentHumanReadable: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <div data-testid=\"spentOnlyPane\">\n <gl-sprintf :message=\"$options.timeSpent\">\n <template #spent=\"{ content }\">\n <span class=\"gl-font-bold\">{{ content }}</span\n >{{ timeSpentHumanReadable }}\n </template>\n </gl-sprintf>\n </div>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./spent_only_pane.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./spent_only_pane.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./spent_only_pane.vue?vue&type=template&id=0706bdc9\"\nimport script from \"./spent_only_pane.vue?vue&type=script&lang=js\"\nexport * from \"./spent_only_pane.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"data-testid\":\"spentOnlyPane\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.timeSpent},scopedSlots:_vm._u([{key:\"spent\",fn:function({ content }){return [_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(content))]),_vm._v(_vm._s(_vm.timeSpentHumanReadable)+\"\\n \")]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./time_tracker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./time_tracker.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlLink,\n GlModal,\n GlButton,\n GlModalDirective,\n GlLoadingIcon,\n GlTooltipDirective,\n} from '@gitlab/ui';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { BV_SHOW_MODAL } from '~/lib/utils/constants';\nimport { s__, __ } from '~/locale';\n\nimport { timeTrackingQueries } from '../../queries/constants';\nimport eventHub from '../../event_hub';\nimport TimeTrackingCollapsedState from './collapsed_state.vue';\nimport TimeTrackingComparisonPane from './comparison_pane.vue';\nimport TimeTrackingSpentOnlyPane from './spent_only_pane.vue';\nimport TimeTrackingReport from './time_tracking_report.vue';\nimport { CREATE_TIMELOG_MODAL_ID, SET_TIME_ESTIMATE_MODAL_ID } from './constants';\nimport CreateTimelogForm from './create_timelog_form.vue';\nimport SetTimeEstimateForm from './set_time_estimate_form.vue';\n\nexport default {\n name: 'IssuableTimeTracker',\n i18n: {\n noTimeTrackingText: __('No estimate or time spent'),\n estimatedOnlyText: s__('TimeTracking|Estimated:'),\n },\n components: {\n GlLink,\n GlModal,\n GlButton,\n GlLoadingIcon,\n TimeTrackingCollapsedState,\n TimeTrackingSpentOnlyPane,\n TimeTrackingComparisonPane,\n TimeTrackingReport,\n CreateTimelogForm,\n SetTimeEstimateForm,\n },\n directives: {\n GlModal: GlModalDirective,\n GlTooltip: GlTooltipDirective,\n },\n inject: {\n issuableType: {\n default: null,\n },\n },\n props: {\n limitToHours: {\n type: Boolean,\n default: false,\n required: false,\n },\n fullPath: {\n type: String,\n required: false,\n default: '',\n },\n issuableId: {\n type: String,\n required: false,\n default: '',\n },\n issuableIid: {\n type: String,\n required: false,\n default: '',\n },\n initialTimeTracking: {\n type: Object,\n required: false,\n default: null,\n },\n /*\n In issue list, \"time-tracking-collapsed-state\" is always rendered even if the sidebar isn't collapsed.\n The actual hiding is controlled with css classes:\n Hide \"time-tracking-collapsed-state\"\n if .right-sidebar .right-sidebar-collapsed .sidebar-collapsed-icon\n Show \"time-tracking-collapsed-state\"\n if .right-sidebar .right-sidebar-expanded .sidebar-collapsed-icon\n\n In Swimlanes sidebar, we do not use collapsed state at all.\n */\n showCollapsed: {\n type: Boolean,\n default: true,\n required: false,\n },\n canAddTimeEntries: {\n type: Boolean,\n required: false,\n default: true,\n },\n canSetTimeEstimate: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n timeTracking: {\n ...this.initialTimeTracking,\n },\n };\n },\n apollo: {\n // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n issuableTimeTracking: {\n query() {\n return timeTrackingQueries[this.issuableType].query;\n },\n skip() {\n // Skip the query if either of the conditions are true\n // 1. issuableType is not provided\n // 2. Time tracking info was provided via prop\n // 3. issuableIid and fullPath are not provided\n if (!this.issuableType || !timeTrackingQueries[this.issuableType]) {\n return true;\n }\n if (this.initialTimeTracking) {\n return true;\n }\n if (!this.issuableIid || !this.fullPath) {\n return true;\n }\n return false;\n },\n variables() {\n return {\n iid: this.issuableIid,\n fullPath: this.fullPath,\n };\n },\n update(data) {\n this.timeTracking = {\n ...data.workspace?.issuable,\n };\n },\n },\n },\n computed: {\n isTimeTrackingInfoLoading() {\n return this.$apollo?.queries.issuableTimeTracking?.loading ?? false;\n },\n timeEstimate() {\n return this.timeTracking?.timeEstimate || 0;\n },\n totalTimeSpent() {\n return this.timeTracking?.totalTimeSpent || 0;\n },\n humanTimeEstimate() {\n return this.timeTracking?.humanTimeEstimate || '';\n },\n humanTotalTimeSpent() {\n return this.timeTracking?.humanTotalTimeSpent || '';\n },\n hasTotalTimeSpent() {\n return Boolean(this.totalTimeSpent);\n },\n hasTimeEstimate() {\n return Boolean(this.timeEstimate);\n },\n showComparisonState() {\n return this.hasTimeEstimate && this.hasTotalTimeSpent;\n },\n showEstimateOnlyState() {\n return this.hasTimeEstimate && !this.hasTotalTimeSpent;\n },\n showSpentOnlyState() {\n return this.hasTotalTimeSpent && !this.hasTimeEstimate;\n },\n showNoTimeTrackingState() {\n return !this.hasTimeEstimate && !this.hasTotalTimeSpent;\n },\n isTimeReportSupported() {\n return [TYPE_ISSUE, TYPE_MERGE_REQUEST].includes(this.issuableType) && this.issuableId;\n },\n timeEstimateTooltip() {\n return this.hasTimeEstimate\n ? s__('TimeTracking|Edit estimate')\n : s__('TimeTracking|Set estimate');\n },\n },\n watch: {\n /**\n * When `initialTimeTracking` is provided via prop,\n * we don't query the same via GraphQl and instead\n * monitor it for any updates (eg; Epic Swimlanes)\n */\n initialTimeTracking(timeTracking) {\n this.timeTracking = timeTracking;\n },\n },\n created() {\n eventHub.$on('timeTracker:refresh', this.refresh);\n },\n methods: {\n refresh() {\n this.$apollo.queries.issuableTimeTracking.refetch();\n },\n openRegisterTimeSpentModal() {\n this.$root.$emit(BV_SHOW_MODAL, CREATE_TIMELOG_MODAL_ID);\n },\n },\n setTimeEstimateModalId: SET_TIME_ESTIMATE_MODAL_ID,\n};\n</script>\n\n<template>\n <div v-cloak class=\"time-tracker sidebar-help-wrap\" data-testid=\"time-tracker\">\n <time-tracking-collapsed-state\n v-if=\"showCollapsed\"\n :show-comparison-state=\"showComparisonState\"\n :show-no-time-tracking-state=\"showNoTimeTrackingState\"\n :show-spent-only-state=\"showSpentOnlyState\"\n :show-estimate-only-state=\"showEstimateOnlyState\"\n :time-spent-human-readable=\"humanTotalTimeSpent\"\n :time-estimate-human-readable=\"humanTimeEstimate\"\n />\n <div class=\"hide-collapsed gl-flex gl-items-center gl-font-bold gl-leading-20 gl-text-default\">\n {{ __('Time tracking') }}\n <gl-loading-icon v-if=\"isTimeTrackingInfoLoading\" size=\"sm\" class=\"gl-ml-2\" inline />\n <div v-if=\"canSetTimeEstimate || canAddTimeEntries\" class=\"gl-ml-auto gl-flex\">\n <gl-button\n v-if=\"canSetTimeEstimate\"\n v-gl-modal=\"$options.setTimeEstimateModalId\"\n v-gl-tooltip.top\n category=\"tertiary\"\n icon=\"timer\"\n size=\"small\"\n data-testid=\"set-time-estimate-button\"\n :title=\"timeEstimateTooltip\"\n :aria-label=\"timeEstimateTooltip\"\n />\n <gl-button\n v-if=\"canAddTimeEntries\"\n v-gl-tooltip.top\n category=\"tertiary\"\n icon=\"plus\"\n size=\"small\"\n data-testid=\"add-time-entry-button\"\n :title=\"__('Add time entry')\"\n @click=\"openRegisterTimeSpentModal()\"\n />\n </div>\n </div>\n <div v-if=\"!isTimeTrackingInfoLoading\" class=\"hide-collapsed\">\n <div v-if=\"showEstimateOnlyState\" data-testid=\"estimateOnlyPane\">\n {{ $options.i18n.estimatedOnlyText }} {{ humanTimeEstimate }}\n </div>\n <time-tracking-spent-only-pane\n v-if=\"showSpentOnlyState\"\n :time-spent-human-readable=\"humanTotalTimeSpent\"\n />\n <div v-if=\"showNoTimeTrackingState\" data-testid=\"noTrackingPane\">\n <span class=\"gl-text-subtle\">{{ $options.i18n.noTimeTrackingText }}</span>\n </div>\n <time-tracking-comparison-pane\n v-if=\"showComparisonState\"\n :time-estimate=\"timeEstimate\"\n :time-spent=\"totalTimeSpent\"\n :time-spent-human-readable=\"humanTotalTimeSpent\"\n :time-estimate-human-readable=\"humanTimeEstimate\"\n :limit-to-hours=\"limitToHours\"\n />\n <div v-if=\"isTimeReportSupported\">\n <gl-link\n v-if=\"hasTotalTimeSpent\"\n v-gl-modal=\"'time-tracking-report'\"\n class=\"gl-text-default\"\n data-testid=\"reportLink\"\n href=\"#\"\n >\n {{ __('Time tracking report') }}\n </gl-link>\n <gl-modal\n modal-id=\"time-tracking-report\"\n size=\"lg\"\n :title=\"__('Time tracking report')\"\n :hide-footer=\"true\"\n >\n <time-tracking-report :limit-to-hours=\"limitToHours\" :issuable-id=\"issuableId\" />\n </gl-modal>\n </div>\n <create-timelog-form :issuable-id=\"issuableId\" />\n <set-time-estimate-form\n :full-path=\"fullPath\"\n :issuable-iid=\"issuableIid\"\n :time-tracking=\"timeTracking\"\n />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./time_tracker.vue?vue&type=template&id=a3c3d876\"\nimport script from \"./time_tracker.vue?vue&type=script&lang=js\"\nexport * from \"./time_tracker.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"MilestoneFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Milestone\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"expired\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":75}};\n doc.loc.source = {\"body\":\"fragment MilestoneFragment on Milestone {\\n expired\\n id\\n state\\n title\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"MilestoneFragment\"] = oneQuery(doc, \"MilestoneFragment\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestReviewersUpdated\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestReviewersUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reviewers\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"UserAvailability\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestInteraction\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canMerge\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canUpdate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approved\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reviewState\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ReviewersApplicableApprovalRules\"},\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":681}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/user_availability.fragment.graphql\\\"\\n#import \\\"ee_else_ce/sidebar/queries/reviewer_applicable_approval_rules.fragment.graphql\\\"\\n\\nsubscription mergeRequestReviewersUpdated($issuableId: IssuableID!) {\\n mergeRequestReviewersUpdated(issuableId: $issuableId) {\\n ... on MergeRequest {\\n id\\n reviewers {\\n nodes {\\n ...User\\n ...UserAvailability\\n mergeRequestInteraction {\\n canMerge\\n canUpdate\\n approved\\n reviewState\\n\\n ...ReviewersApplicableApprovalRules\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user_availability.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/sidebar/queries/reviewer_applicable_approval_rules.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"mergeRequestReviewersUpdated\"] = oneQuery(doc, \"mergeRequestReviewersUpdated\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"searchIterations\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":false},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IterationState\"}},\"defaultValue\":{\"kind\":\"EnumValue\",\"value\":\"all\"},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"skip\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iterations\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"EnumValue\",\"value\":\"TITLE\"},{\"kind\":\"EnumValue\",\"value\":\"CADENCE_TITLE\"}]}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestors\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"sort\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"CADENCE_AND_DUE_DATE_DESC\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Iteration\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"include\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iterations\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"EnumValue\",\"value\":\"TITLE\"},{\"kind\":\"EnumValue\",\"value\":\"CADENCE_TITLE\"}]}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestors\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"sort\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"CADENCE_AND_DUE_DATE_DESC\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Iteration\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":767}};\n doc.loc.source = {\"body\":\"#import \\\"./iteration.fragment.graphql\\\"\\n\\nquery searchIterations(\\n $fullPath: ID!\\n $search: String\\n $id: ID\\n $isProject: Boolean = false\\n $state: IterationState = all\\n) {\\n group(fullPath: $fullPath) @skip(if: $isProject) {\\n id\\n iterations(\\n search: $search\\n in: [TITLE, CADENCE_TITLE]\\n id: $id\\n includeAncestors: true\\n sort: CADENCE_AND_DUE_DATE_DESC\\n state: $state\\n ) {\\n nodes {\\n ...Iteration\\n }\\n }\\n }\\n project(fullPath: $fullPath) @include(if: $isProject) {\\n id\\n iterations(\\n search: $search\\n in: [TITLE, CADENCE_TITLE]\\n id: $id\\n includeAncestors: true\\n sort: CADENCE_AND_DUE_DATE_DESC\\n state: $state\\n ) {\\n nodes {\\n ...Iteration\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./iteration.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"searchIterations\"] = oneQuery(doc, \"searchIterations\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"designNoteWorkItemToggleAwardEmoji\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"awardableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AwardableID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"awardEmojiToggle\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"awardableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"awardableId\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"toggledOn\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":193}};\n doc.loc.source = {\"body\":\"mutation designNoteWorkItemToggleAwardEmoji($awardableId: AwardableID!, $name: String!) {\\n awardEmojiToggle(input: { awardableId: $awardableId, name: $name }) {\\n errors\\n toggledOn\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"designNoteWorkItemToggleAwardEmoji\"] = oneQuery(doc, \"designNoteWorkItemToggleAwardEmoji\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"issueEscalationPolicyMutation\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"attributeId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IncidentManagementEscalationPolicyID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetAttribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"issueSetEscalationPolicy\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"escalationPolicyId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"attributeId\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"escalationPolicy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"EscalationPolicyFragment\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"escalationStatus\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":474}};\n doc.loc.source = {\"body\":\"#import \\\"./escalation_policy.fragment.graphql\\\"\\n\\nmutation issueEscalationPolicyMutation(\\n $fullPath: ID!\\n $iid: String!\\n $attributeId: IncidentManagementEscalationPolicyID\\n) {\\n issuableSetAttribute: issueSetEscalationPolicy(\\n input: { projectPath: $fullPath, iid: $iid, escalationPolicyId: $attributeId }\\n ) {\\n errors\\n issuable: issue {\\n id\\n attribute: escalationPolicy {\\n ...EscalationPolicyFragment\\n }\\n escalationStatus\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./escalation_policy.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueEscalationPolicyMutation\"] = oneQuery(doc, \"issueEscalationPolicyMutation\");\n \n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","import 'jquery';\nimport 'jquery.caret'; // required by at.js\nimport '@gitlab/at.js';\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"createWorkItem\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemCreateInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItem\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":186}};\n doc.loc.source = {\"body\":\"#import \\\"./work_item.fragment.graphql\\\"\\n\\nmutation createWorkItem($input: WorkItemCreateInput!) {\\n workItemCreate(input: $input) {\\n workItem {\\n ...WorkItem\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./work_item.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"createWorkItem\"] = oneQuery(doc, \"createWorkItem\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showInDropdown && !_vm.isNotificationsTodosButtons)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"notification-toggle\"},on:{\"action\":_vm.toggleSubscribed},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('gl-toggle',{staticClass:\"merge-request-notification-toggle\",attrs:{\"value\":_vm.subscribed,\"label\":_vm.__('Notifications'),\"label-position\":\"left\"}})]},proxy:true}],null,false,2441604390)}):(_vm.isNotificationsTodosButtons)?_c('div',{class:{ 'inline-block': !_vm.isMergeRequest }},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover.top\",modifiers:{\"hover\":true,\"top\":true}}],ref:\"tooltip\",staticClass:\"hide-collapsed\",class:{ 'gl-ml-2': _vm.isIssuable, 'btn-icon': _vm.isNotificationsTodosButtons },attrs:{\"category\":\"secondary\",\"data-testid\":\"subscribe-button\",\"title\":_vm.notificationTooltip},on:{\"click\":_vm.toggleSubscribed}},[_c('gl-animated-notification-icon',{class:{ '!gl-text-blue-500': _vm.subscribed },attrs:{\"is-on\":!_vm.subscribed}})],1),_vm._v(\" \"),(!_vm.isMergeRequest)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],ref:\"tooltip\",staticClass:\"sidebar-collapsed-icon sidebar-collapsed-container !gl-rounded-none !gl-border-0\",attrs:{\"category\":\"secondary\",\"data-testid\":\"subscribe-button\",\"title\":_vm.notificationTooltip},on:{\"click\":_vm.toggleSubscribed}},[_c('gl-animated-notification-icon',{class:{ '!gl-text-blue-500': _vm.subscribed },attrs:{\"is-on\":!_vm.subscribed}})],1):_vm._e()],1):_c('sidebar-editable-item',{ref:\"editable\",staticClass:\"block subscriptions\",attrs:{\"title\":_vm.$options.i18n.notifications,\"tracking\":_vm.$options.tracking,\"loading\":_vm.isLoading,\"can-edit\":false},scopedSlots:_vm._u([{key:\"collapsed-right\",fn:function(){return [_c('gl-toggle',{staticClass:\"hide-collapsed gl-ml-auto\",attrs:{\"value\":_vm.subscribed,\"is-loading\":_vm.isLoading,\"disabled\":_vm.canSubscribe,\"data-testid\":\"subscription-toggle\",\"label\":_vm.$options.i18n.notifications,\"label-position\":\"hidden\"},on:{\"change\":_vm.setSubscribed}})]},proxy:true},{key:\"collapsed\",fn:function(){return [_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.left\",modifiers:{\"viewport\":true,\"left\":true}}],ref:\"tooltip\",staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.notificationTooltip},on:{\"click\":_vm.toggleSubscribed}},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"sidebar-item-icon is-active\",attrs:{\"size\":\"sm\"}}):_c('gl-icon',{staticClass:\"sidebar-item-icon is-active\",attrs:{\"name\":_vm.notificationIcon,\"size\":16}})],1),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.emailsDisabled),expression:\"emailsDisabled\"}],staticClass:\"hide-collapsed gl-mt-3 gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(_vm.subscribeDisabledDescription)+\"\\n \")])]},proxy:true},{key:\"default\",fn:function(){return undefined},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport {\n GlButton,\n GlDisclosureDropdownItem,\n GlIcon,\n GlLoadingIcon,\n GlToggle,\n GlTooltipDirective,\n GlAnimatedNotificationIcon,\n} from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { TYPE_ISSUE, TYPE_EPIC, WORKSPACE_GROUP, WORKSPACE_PROJECT } from '~/issues/constants';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport { __, sprintf } from '~/locale';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport { subscribedQueries } from '../../queries/constants';\nimport { Tracking } from '../../constants';\nimport SidebarEditableItem from '../sidebar_editable_item.vue';\n\nconst ICON_ON = 'notifications';\nconst ICON_OFF = 'notifications-off';\n\nexport default {\n tracking: {\n event: Tracking.editEvent,\n label: Tracking.rightSidebarLabel,\n property: 'subscriptions',\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlButton,\n GlDisclosureDropdownItem,\n GlIcon,\n GlLoadingIcon,\n GlToggle,\n GlAnimatedNotificationIcon,\n SidebarEditableItem,\n },\n mixins: [glFeatureFlagMixin()],\n props: {\n iid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n issuableType: {\n required: true,\n type: String,\n },\n showInDropdown: {\n required: false,\n type: Boolean,\n default: true,\n },\n },\n data() {\n return {\n subscribed: false,\n loading: false,\n emailsDisabled: false,\n };\n },\n apollo: {\n subscribed: {\n query() {\n return subscribedQueries[this.issuableType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n iid: String(this.iid),\n };\n },\n skip() {\n return !this.iid;\n },\n update(data) {\n return data.workspace?.issuable?.subscribed || false;\n },\n result({ data }) {\n if (!data) {\n return;\n }\n this.emailsDisabled = this.parentIsGroup\n ? data.workspace?.emailsDisabled\n : data.workspace?.issuable?.emailsDisabled;\n this.$emit('subscribedUpdated', data.workspace?.issuable?.subscribed);\n },\n error() {\n createAlert({\n message: sprintf(\n __('Something went wrong while setting %{issuableType} notifications.'),\n {\n issuableType: this.issuableType,\n },\n ),\n });\n },\n },\n },\n computed: {\n isIssuable() {\n return this.issuableType === TYPE_ISSUE;\n },\n isLoading() {\n return this.$apollo.queries?.subscribed?.loading || this.loading;\n },\n notificationTooltip() {\n if (this.emailsDisabled) {\n return this.subscribeDisabledDescription;\n }\n return this.subscribed ? this.$options.i18n.labelOn : this.$options.i18n.labelOff;\n },\n notificationIcon() {\n if (this.emailsDisabled || !this.subscribed) {\n return ICON_OFF;\n }\n return ICON_ON;\n },\n parentIsGroup() {\n return this.issuableType === TYPE_EPIC;\n },\n subscribeDisabledDescription() {\n return sprintf(__('Disabled by %{parent} owner'), {\n parent: this.parentIsGroup ? WORKSPACE_GROUP : WORKSPACE_PROJECT,\n });\n },\n isLoggedIn() {\n return isLoggedIn();\n },\n canSubscribe() {\n return this.emailsDisabled || !this.isLoggedIn;\n },\n isNotificationsTodosButtons() {\n return this.glFeatures.notificationsTodosButtons;\n },\n isMergeRequest() {\n return this.issuableType === 'merge_request';\n },\n },\n methods: {\n setSubscribed(subscribed) {\n this.loading = true;\n this.$apollo\n .mutate({\n mutation: subscribedQueries[this.issuableType].mutation,\n variables: {\n fullPath: this.fullPath,\n iid: this.iid,\n subscribedState: subscribed,\n },\n })\n .then(\n ({\n data: {\n updateIssuableSubscription: { errors },\n },\n }) => {\n if (errors.length) {\n createAlert({\n message: errors[0],\n });\n }\n\n toast(subscribed ? __('Notifications turned on.') : __('Notifications turned off.'));\n },\n )\n .catch(() => {\n createAlert({\n message: sprintf(\n __('Something went wrong while setting %{issuableType} notifications.'),\n {\n issuableType: this.issuableType,\n },\n ),\n });\n })\n .finally(() => {\n this.loading = false;\n });\n },\n toggleSubscribed() {\n if (this.emailsDisabled) {\n this.expandSidebar();\n } else {\n this.setSubscribed(!this.subscribed);\n }\n },\n expandSidebar() {\n this.$emit('expandSidebar');\n },\n },\n i18n: {\n notifications: __('Notifications'),\n labelOn: __('Notifications on'),\n labelOff: __('Notifications off'),\n },\n};\n</script>\n\n<template>\n <gl-disclosure-dropdown-item\n v-if=\"showInDropdown && !isNotificationsTodosButtons\"\n data-testid=\"notification-toggle\"\n @action=\"toggleSubscribed\"\n >\n <template #list-item>\n <gl-toggle\n :value=\"subscribed\"\n :label=\"__('Notifications')\"\n class=\"merge-request-notification-toggle\"\n label-position=\"left\"\n />\n </template>\n </gl-disclosure-dropdown-item>\n <div v-else-if=\"isNotificationsTodosButtons\" :class=\"{ 'inline-block': !isMergeRequest }\">\n <gl-button\n ref=\"tooltip\"\n v-gl-tooltip.hover.top\n category=\"secondary\"\n data-testid=\"subscribe-button\"\n class=\"hide-collapsed\"\n :title=\"notificationTooltip\"\n :class=\"{ 'gl-ml-2': isIssuable, 'btn-icon': isNotificationsTodosButtons }\"\n @click=\"toggleSubscribed\"\n >\n <gl-animated-notification-icon\n :class=\"{ '!gl-text-blue-500': subscribed }\"\n :is-on=\"!subscribed\"\n />\n </gl-button>\n <gl-button\n v-if=\"!isMergeRequest\"\n ref=\"tooltip\"\n v-gl-tooltip.left.viewport\n category=\"secondary\"\n data-testid=\"subscribe-button\"\n :title=\"notificationTooltip\"\n class=\"sidebar-collapsed-icon sidebar-collapsed-container !gl-rounded-none !gl-border-0\"\n @click=\"toggleSubscribed\"\n >\n <gl-animated-notification-icon\n :class=\"{ '!gl-text-blue-500': subscribed }\"\n :is-on=\"!subscribed\"\n />\n </gl-button>\n </div>\n <sidebar-editable-item\n v-else\n ref=\"editable\"\n :title=\"$options.i18n.notifications\"\n :tracking=\"$options.tracking\"\n :loading=\"isLoading\"\n :can-edit=\"false\"\n class=\"block subscriptions\"\n >\n <template #collapsed-right>\n <gl-toggle\n :value=\"subscribed\"\n :is-loading=\"isLoading\"\n :disabled=\"canSubscribe\"\n class=\"hide-collapsed gl-ml-auto\"\n data-testid=\"subscription-toggle\"\n :label=\"$options.i18n.notifications\"\n label-position=\"hidden\"\n @change=\"setSubscribed\"\n />\n </template>\n <template #collapsed>\n <span\n ref=\"tooltip\"\n v-gl-tooltip.viewport.left\n :title=\"notificationTooltip\"\n class=\"sidebar-collapsed-icon\"\n @click=\"toggleSubscribed\"\n >\n <gl-loading-icon v-if=\"isLoading\" size=\"sm\" class=\"sidebar-item-icon is-active\" />\n <gl-icon v-else :name=\"notificationIcon\" :size=\"16\" class=\"sidebar-item-icon is-active\" />\n </span>\n <div v-show=\"emailsDisabled\" class=\"hide-collapsed gl-mt-3 gl-text-subtle\">\n {{ subscribeDisabledDescription }}\n </div>\n </template>\n <template #default> </template>\n </sidebar-editable-item>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_subscriptions_widget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_subscriptions_widget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./sidebar_subscriptions_widget.vue?vue&type=template&id=b8d97386\"\nimport script from \"./sidebar_subscriptions_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_subscriptions_widget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getWorkItemDesignList\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"atVersion\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignManagementVersionID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetDesigns\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"designCollection\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"copyState\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"designs\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"atVersion\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"atVersion\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"event\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"filename\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"notesCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"image\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"imageV432x230\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"descriptionHtml\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentUserTodos\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"pending\"}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"diffRefs\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignDiffRefs\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"versions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"VersionListItem\"},\"directives\":[]}]}}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1001}};\n doc.loc.source = {\"body\":\"#import \\\"./fragments/version.fragment.graphql\\\"\\n#import \\\"./fragments/diff_refs.fragment.graphql\\\"\\n\\nquery getWorkItemDesignList($id: WorkItemID!, $atVersion: DesignManagementVersionID) {\\n workItem(id: $id) {\\n id\\n workItemType {\\n id\\n name\\n }\\n widgets {\\n type\\n ... on WorkItemWidgetDesigns {\\n designCollection {\\n copyState\\n designs(atVersion: $atVersion) {\\n nodes {\\n id\\n event\\n filename\\n notesCount\\n image\\n imageV432x230\\n description\\n descriptionHtml\\n fullPath\\n currentUserTodos(state: pending) {\\n nodes {\\n id\\n }\\n }\\n diffRefs {\\n ...DesignDiffRefs\\n }\\n }\\n }\\n versions {\\n nodes {\\n ...VersionListItem\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./fragments/version.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"./fragments/diff_refs.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"getWorkItemDesignList\"] = oneQuery(doc, \"getWorkItemDesignList\");\n \n","import { GlToast } from '@gitlab/ui';\nimport Vue from 'vue';\n\nVue.use(GlToast);\nconst instance = new Vue();\n\nexport default function showGlobalToast(...args) {\n return instance.$toast.show(...args);\n}\n","import $ from 'jquery';\nimport { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';\nimport '~/lib/utils/jquery_at_who';\nimport GfmAutoComplete, { showAndHideHelper, escape, setupSubcommands } from '~/gfm_auto_complete';\nimport { s__ } from '~/locale';\nimport { MERGE_REQUEST_NOTEABLE_TYPE } from '~/notes/constants';\n\n/**\n * This is added to keep the export parity with the CE counterpart.\n *\n * Some modules import `defaultAutocompleteConfig` or `membersBeforeSave`\n * which will be undefined if not exported from here in EE.\n */\nexport {\n escape,\n defaultAutocompleteConfig,\n membersBeforeSave,\n highlighter,\n CONTACT_STATE_ACTIVE,\n CONTACTS_ADD_COMMAND,\n CONTACTS_REMOVE_COMMAND,\n} from '~/gfm_auto_complete';\n\nconst EPICS_ALIAS = 'epics';\nconst ITERATIONS_ALIAS = 'iterations';\nconst VULNERABILITIES_ALIAS = 'vulnerabilities';\n\nexport const Q_ISSUE_SUB_COMMANDS = {\n dev: {\n header: s__('AmazonQ|dev'),\n description: s__('AmazonQ|Create a merge request to incorporate Amazon Q suggestions (Beta)'),\n },\n transform: {\n header: s__('AmazonQ|transform'),\n description: s__('AmazonQ|Upgrade Java Maven application to Java 17 (Beta)'),\n },\n};\n\nexport const Q_MERGE_REQUEST_SUB_COMMANDS = {\n dev: {\n header: s__('AmazonQ|dev'),\n description: s__('AmazonQ|Apply changes to this merge request based on the comments (Beta)'),\n },\n fix: {\n header: s__('AmazonQ|fix'),\n description: s__('AmazonQ|Create fixes for review findings (Beta)'),\n },\n review: {\n header: s__('AmazonQ|review'),\n description: s__('AmazonQ|Review merge request for code quality and security issues (Beta)'),\n },\n};\n\nexport const Q_MERGE_REQUEST_CAN_SUGGEST_SUB_COMMANDS = {\n test: {\n header: s__('AmazonQ|test'),\n description: s__(\n 'AmazonQ|Create unit tests for selected lines of code in Java or Python files (Beta)',\n ),\n },\n};\n\nconst getQSubCommands = ($input) => {\n if ($input.data('noteableType') === MERGE_REQUEST_NOTEABLE_TYPE) {\n const canSuggest = $input.data('canSuggest');\n\n return {\n ...Q_MERGE_REQUEST_SUB_COMMANDS,\n ...(canSuggest ? Q_MERGE_REQUEST_CAN_SUGGEST_SUB_COMMANDS : {}),\n };\n }\n\n return Q_ISSUE_SUB_COMMANDS;\n};\n\nGfmAutoComplete.Iterations = {\n templateFunction({ id, title }) {\n return `<li><small>*iteration:${id}</small> ${escape(title)}</li>`;\n },\n};\n\nclass GfmAutoCompleteEE extends GfmAutoComplete {\n setupAtWho($input) {\n if (this.enableMap.epics) {\n this.setupAutoCompleteEpics($input, this.getDefaultCallbacks());\n }\n\n if (this.enableMap.iterations) {\n this.setupAutoCompleteIterations($input, this.getDefaultCallbacks());\n }\n\n if (this.enableMap.vulnerabilities) {\n this.setupAutoCompleteVulnerabilities($input, this.getDefaultCallbacks());\n }\n\n super.setupAtWho($input);\n }\n\n loadSubcommands($input, data) {\n if (data.some((c) => c.name === 'q')) {\n setupSubcommands($input, 'q', getQSubCommands($input));\n }\n\n super.loadSubcommands($input, data);\n }\n\n // eslint-disable-next-line class-methods-use-this\n setupAutoCompleteEpics = ($input, defaultCallbacks) => {\n $input.atwho({\n at: '&',\n alias: EPICS_ALIAS,\n searchKey: 'search',\n displayTpl(value) {\n let tmpl = GfmAutoComplete.Loading.template;\n if (value.title != null) {\n tmpl = GfmAutoComplete.Issues.templateFunction(value);\n }\n return tmpl;\n },\n data: GfmAutoComplete.defaultLoadingData,\n insertTpl: GfmAutoComplete.Issues.insertTemplateFunction,\n skipSpecialCharacterTest: true,\n callbacks: {\n ...defaultCallbacks,\n beforeSave(merges) {\n return $.map(merges, (m) => {\n if (m.title == null) {\n return m;\n }\n return {\n id: m.iid,\n reference: m.reference,\n title: m.title,\n search: `${m.iid} ${m.title}`,\n };\n });\n },\n },\n });\n showAndHideHelper($input, EPICS_ALIAS);\n };\n\n // eslint-disable-next-line class-methods-use-this\n setupAutoCompleteIterations = ($input, defaultCallbacks) => {\n $input.atwho({\n at: '*iteration:',\n alias: ITERATIONS_ALIAS,\n searchKey: 'search',\n displayTpl(value) {\n let tmpl = GfmAutoComplete.Loading.template;\n if (value.id != null) {\n tmpl = GfmAutoComplete.Iterations.templateFunction(value);\n }\n return tmpl;\n },\n data: GfmAutoComplete.defaultLoadingData,\n // eslint-disable-next-line no-template-curly-in-string\n insertTpl: '${atwho-at}${id}',\n skipSpecialCharacterTest: true,\n callbacks: {\n ...defaultCallbacks,\n beforeSave(merges) {\n return $.map(merges, (m) => {\n if (m.id == null) {\n return m;\n }\n\n return {\n id: m.id,\n title: m.title,\n search: `${m.id} ${m.title}`,\n };\n });\n },\n },\n });\n showAndHideHelper($input, ITERATIONS_ALIAS);\n };\n\n // eslint-disable-next-line class-methods-use-this\n setupAutoCompleteVulnerabilities = ($input, defaultCallbacks) => {\n $input.atwho({\n at: '[vulnerability:',\n suffix: ']',\n alias: VULNERABILITIES_ALIAS,\n delay: DEFAULT_DEBOUNCE_AND_THROTTLE_MS,\n searchKey: 'search',\n displayTpl(value) {\n let tmpl = GfmAutoComplete.Loading.template;\n if (value.title != null) {\n tmpl = GfmAutoComplete.Issues.templateFunction(value);\n }\n return tmpl;\n },\n data: GfmAutoComplete.defaultLoadingData,\n insertTpl: GfmAutoComplete.Issues.insertTemplateFunction,\n skipSpecialCharacterTest: true,\n callbacks: {\n ...defaultCallbacks,\n beforeSave(merges) {\n return merges.map((m) => {\n if (m.title == null) {\n return m;\n }\n return {\n id: m.id,\n title: m.title,\n reference: m.reference,\n search: `${m.id} ${m.title}`,\n };\n });\n },\n },\n });\n showAndHideHelper($input, VULNERABILITIES_ALIAS);\n };\n}\n\nexport default GfmAutoCompleteEE;\n","import { TYPENAME_USER } from '~/graphql_shared/constants';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport createGqClient, { fetchPolicies } from '~/lib/graphql';\nimport axios from '~/lib/utils/axios_utils';\nimport reviewerRereviewMutation from '../queries/reviewer_rereview.mutation.graphql';\n\nexport const gqClient = createGqClient(\n {},\n {\n fetchPolicy: fetchPolicies.NO_CACHE,\n },\n);\n\nexport default class SidebarService {\n constructor(endpointMap) {\n if (!SidebarService.singleton) {\n this.endpoint = endpointMap.endpoint;\n this.moveIssueEndpoint = endpointMap.moveIssueEndpoint;\n this.projectsAutocompleteEndpoint = endpointMap.projectsAutocompleteEndpoint;\n this.fullPath = endpointMap.fullPath;\n this.iid = endpointMap.iid;\n this.issuableType = endpointMap.issuableType;\n\n SidebarService.singleton = this;\n }\n\n // eslint-disable-next-line no-constructor-return\n return SidebarService.singleton;\n }\n\n get() {\n return axios.get(this.endpoint);\n }\n\n update(key, data) {\n return axios.put(this.endpoint, { [key]: data });\n }\n\n getProjectsAutocomplete(searchTerm) {\n return axios.get(this.projectsAutocompleteEndpoint, {\n params: {\n search: searchTerm,\n },\n });\n }\n\n moveIssue(moveToProjectId) {\n return axios.post(this.moveIssueEndpoint, {\n move_to_project_id: moveToProjectId,\n });\n }\n\n requestReview(userId) {\n return gqClient.mutate({\n mutation: reviewerRereviewMutation,\n variables: {\n userId: convertToGraphQLId(TYPENAME_USER, `${userId}`),\n projectPath: this.fullPath,\n iid: this.iid.toString(),\n },\n });\n }\n}\n","import { createAlert } from '~/alert';\nimport { __ } from '~/locale';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport { visitUrl } from '~/lib/utils/url_utility';\nimport Service from './services/sidebar_service';\nimport Store from './stores/sidebar_store';\n\nexport default class SidebarMediator {\n constructor(options) {\n if (!SidebarMediator.singleton) {\n this.initSingleton(options);\n }\n\n // eslint-disable-next-line no-constructor-return\n return SidebarMediator.singleton;\n }\n\n initSingleton(options) {\n this.store = new Store(options);\n this.service = new Service({\n endpoint: options.endpoint,\n moveIssueEndpoint: options.moveIssueEndpoint,\n projectsAutocompleteEndpoint: options.projectsAutocompleteEndpoint,\n fullPath: options.fullPath,\n iid: options.iid,\n issuableType: options.issuableType,\n });\n SidebarMediator.singleton = this;\n }\n\n assignYourself() {\n this.store.addAssignee(this.store.currentUser);\n }\n addSelfReview() {\n this.store.addReviewer(this.store.currentUser);\n }\n\n async saveAssignees(field) {\n const selected = this.store.assignees.map((u) => u.id);\n\n // If there are no ids, that means we have to unassign (which is id = 0)\n // And it only accepts an array, hence [0]\n const assignees = selected.length === 0 ? [0] : selected;\n const data = { assignee_ids: assignees };\n\n try {\n const res = await this.service.update(field, data);\n\n this.store.overwrite('assignees', res.data.assignees);\n\n if (res.data.reviewers) {\n this.store.overwrite('reviewers', res.data.reviewers);\n }\n\n return Promise.resolve(res);\n } catch (e) {\n return Promise.reject(e);\n }\n }\n\n async saveReviewers(field) {\n const selectedReviewers = this.store.reviewers;\n const selectedIds = selectedReviewers.map((u) => u.id);\n const suggestedSelectedIds = selectedReviewers.filter((u) => u.suggested).map((u) => u.id);\n\n // If there are no ids, that means we have to unassign (which is id = 0)\n // And it only accepts an array, hence [0]\n const reviewers = selectedIds.length === 0 ? [0] : selectedIds;\n const data = { reviewer_ids: reviewers, suggested_reviewer_ids: suggestedSelectedIds };\n\n try {\n const res = await this.service.update(field, data);\n\n this.store.overwrite('reviewers', res.data.reviewers);\n this.store.overwrite('assignees', res.data.assignees);\n\n return Promise.resolve(res);\n } catch (e) {\n return Promise.reject();\n }\n }\n\n requestReview({ userId, callback }) {\n return this.service\n .requestReview(userId)\n .then(() => {\n this.store.updateReviewer(userId, 'reviewed');\n toast(__('Requested review'));\n callback(userId, true);\n })\n .catch(() => callback(userId, false));\n }\n\n setMoveToProjectId(projectId) {\n this.store.setMoveToProjectId(projectId);\n }\n\n fetch() {\n return this.service\n .get()\n .then(({ data }) => {\n this.processFetchedData(data);\n })\n .catch(() =>\n createAlert({\n message: __('Error occurred when fetching sidebar data'),\n }),\n );\n }\n\n processFetchedData(data) {\n this.store.setAssigneeData(data);\n this.store.setReviewerData(data);\n this.store.setTimeTrackingData(data);\n }\n\n fetchAutocompleteProjects(searchTerm) {\n return this.service.getProjectsAutocomplete(searchTerm).then(({ data }) => {\n this.store.setAutocompleteProjects(data);\n return this.store.autocompleteProjects;\n });\n }\n\n moveIssue() {\n return this.service.moveIssue(this.store.moveToProjectId).then(({ data }) => {\n if (window.location.pathname !== data.web_url) {\n visitUrl(data.web_url);\n }\n });\n }\n}\n","import $ from 'jquery';\nimport { flatten } from 'lodash';\nimport Vue from 'vue';\nimport { InternalEvents } from '~/tracking';\nimport { FIND_FILE_SHORTCUT_CLICK } from '~/tracking/constants';\nimport { Mousetrap, addStopCallback } from '~/lib/mousetrap';\nimport { getCookie, setCookie, parseBoolean } from '~/lib/utils/common_utils';\nimport { waitForElement } from '~/lib/utils/dom_utils';\nimport findAndFollowLink from '~/lib/utils/navigation_utility';\nimport { refreshCurrentPage } from '~/lib/utils/url_utility';\nimport {\n keysFor,\n TOGGLE_KEYBOARD_SHORTCUTS_DIALOG,\n START_SEARCH,\n START_SEARCH_PROJECT_FILE,\n FOCUS_FILTER_BAR,\n TOGGLE_PERFORMANCE_BAR,\n HIDE_APPEARING_CONTENT,\n TOGGLE_CANARY,\n TOGGLE_MARKDOWN_PREVIEW,\n FIND_AND_REPLACE,\n GO_TO_YOUR_TODO_LIST,\n GO_TO_ACTIVITY_FEED,\n GO_TO_YOUR_ISSUES,\n GO_TO_YOUR_MERGE_REQUESTS,\n GO_TO_YOUR_PROJECTS,\n GO_TO_YOUR_GROUPS,\n GO_TO_MILESTONE_LIST,\n GO_TO_YOUR_SNIPPETS,\n GO_TO_YOUR_REVIEW_REQUESTS,\n} from './keybindings';\nimport { disableShortcuts, shouldDisableShortcuts } from './shortcuts_toggle';\n\n/**\n * The key used to save and fetch the local Mousetrap instance\n * attached to a `<textarea>` element using `jQuery.data`\n */\nexport const LOCAL_MOUSETRAP_DATA_KEY = 'local-mousetrap-instance';\n\n/**\n * Gets a mapping of toolbar button => keyboard shortcuts\n * associated to the given markdown editor `<textarea>` element\n *\n * @param {HTMLTextAreaElement} $textarea The jQuery-wrapped `<textarea>`\n * element to extract keyboard shortcuts from\n *\n * @returns A Map with keys that are jQuery-wrapped toolbar buttons\n * (i.e. `$toolbarBtn`) and values that are arrays of string\n * keyboard shortcuts (e.g. `['command+k', 'ctrl+k]`).\n */\nfunction getToolbarBtnToShortcutsMap($textarea) {\n const $allToolbarBtns = $textarea.closest('.md-area').find('.js-md');\n const map = new Map();\n\n $allToolbarBtns.each(function attachToolbarBtnHandler() {\n const $toolbarBtn = $(this);\n const keyboardShortcuts = $toolbarBtn.data('md-shortcuts');\n\n if (keyboardShortcuts?.length) {\n map.set($toolbarBtn, keyboardShortcuts);\n }\n });\n\n return map;\n}\n\nexport default class Shortcuts {\n constructor() {\n if (process.env.NODE_ENV !== 'production' && this.constructor !== Shortcuts) {\n // eslint-disable-next-line @gitlab/require-i18n-strings\n throw new Error('Shortcuts cannot be subclassed.');\n }\n\n this.extensions = new Map();\n this.onToggleHelp = this.onToggleHelp.bind(this);\n this.helpModalElement = null;\n this.helpModalVueInstance = null;\n\n this.addAll([\n [TOGGLE_KEYBOARD_SHORTCUTS_DIALOG, this.onToggleHelp],\n [START_SEARCH_PROJECT_FILE, Shortcuts.focusSearchFile],\n [START_SEARCH, Shortcuts.focusSearch],\n [FOCUS_FILTER_BAR, this.focusFilter.bind(this)],\n [TOGGLE_PERFORMANCE_BAR, Shortcuts.onTogglePerfBar],\n [HIDE_APPEARING_CONTENT, Shortcuts.hideAppearingContent],\n [TOGGLE_CANARY, Shortcuts.onToggleCanary],\n\n [GO_TO_YOUR_TODO_LIST, () => findAndFollowLink('.shortcuts-todos')],\n [GO_TO_ACTIVITY_FEED, () => findAndFollowLink('.dashboard-shortcuts-activity')],\n [GO_TO_YOUR_ISSUES, () => findAndFollowLink('.dashboard-shortcuts-issues')],\n [\n GO_TO_YOUR_MERGE_REQUESTS,\n () =>\n findAndFollowLink(\n '.dashboard-shortcuts-merge_requests, .js-merge-request-dashboard-shortcut',\n ),\n ],\n [\n GO_TO_YOUR_REVIEW_REQUESTS,\n () =>\n findAndFollowLink(\n '.dashboard-shortcuts-review_requests, .js-merge-request-dashboard-shortcut',\n ),\n ],\n [GO_TO_YOUR_PROJECTS, () => findAndFollowLink('.dashboard-shortcuts-projects')],\n [GO_TO_YOUR_GROUPS, () => findAndFollowLink('.dashboard-shortcuts-groups')],\n [GO_TO_MILESTONE_LIST, () => findAndFollowLink('.dashboard-shortcuts-milestones')],\n [GO_TO_YOUR_SNIPPETS, () => findAndFollowLink('.dashboard-shortcuts-snippets')],\n\n [TOGGLE_MARKDOWN_PREVIEW, Shortcuts.toggleMarkdownPreview],\n ]);\n\n addStopCallback((e, element, combo) =>\n keysFor(TOGGLE_MARKDOWN_PREVIEW).includes(combo) ? false : undefined,\n );\n\n if (gon?.features?.findAndReplace) {\n this.add(FIND_AND_REPLACE, Shortcuts.toggleFindAndReplaceBar);\n\n addStopCallback((e, element, combo) =>\n keysFor(FIND_AND_REPLACE).includes(combo) ? false : undefined,\n );\n }\n\n $(document).on('click', '.js-shortcuts-modal-trigger', this.onToggleHelp);\n\n if (shouldDisableShortcuts()) {\n disableShortcuts();\n }\n }\n\n /**\n * Instantiate a legacy shortcut extension class.\n *\n * NOTE: The preferred approach for adding shortcuts is described in\n * https://docs.gitlab.com/ee/development/fe_guide/keyboard_shortcuts.html.\n * This method is only for existing legacy shortcut classes.\n *\n * A shortcut extension class packages up several shortcuts and behaviors for\n * a page or set of pages. They are considered legacy because they usually do\n * not follow modern best practices. For instance, they may hook into the UI\n * in brittle ways, e.g.. querySelectors.\n *\n * Extension classes can declare dependencies on other shortcut extension\n * classes by listing them in a static `dependencies` property. This is\n * essentially a reimplementation of the previous subclassing approach, but\n * with idempotency: a shortcut extension class can now only be added at most\n * one time.\n *\n * Extension classes are instantiated and given the Shortcuts singleton\n * instance as their first argument. If the class constructor needs\n * additional arguments, pass them via the second argument as an array.\n *\n * See https://gitlab.com/gitlab-org/gitlab/-/issues/392845 for more context.\n *\n * @param {Function} Extension The extension class to add/instantiate.\n * @param {Array} [args] A list of additional args to pass to the extension\n * class constructor.\n * @param {Set} [extensionsCurrentlyLoading] For internal use only. Do not\n * use.\n * @returns The instantiated shortcut extension class.\n */\n addExtension(Extension, args = [], extensionsCurrentlyLoading = new Set()) {\n extensionsCurrentlyLoading.add(Extension);\n\n let instance = this.extensions.get(Extension);\n if (!instance) {\n for (const Dep of Extension.dependencies ?? []) {\n if (extensionsCurrentlyLoading.has(Dep) || Dep === Shortcuts) {\n // We've encountered a circular dependency, so stop recursing.\n // eslint-disable-next-line no-continue\n continue;\n }\n\n extensionsCurrentlyLoading.add(Dep);\n\n this.addExtension(Dep, [], extensionsCurrentlyLoading);\n }\n\n instance = new Extension(this, ...args);\n this.extensions.set(Extension, instance);\n }\n\n extensionsCurrentlyLoading.delete(Extension);\n return instance;\n }\n\n /**\n * Bind the keyboard shortcut(s) defined by the given command to the given\n * callback.\n *\n * @param {Object} command A command object.\n * @param {Function} callback The callback to call when the command's key\n * combo has been pressed.\n * @returns {void}\n */\n // eslint-disable-next-line class-methods-use-this\n add(command, callback) {\n Mousetrap.bind(keysFor(command), callback);\n }\n\n /**\n * Bind the keyboard shortcut(s) defined by the given commands to the given\n * callbacks.\n *\n * @param {Array<[Object, Function]>} commandsAndCallbacks An array of\n * command/callback pairs.\n * @returns {void}\n */\n addAll(commandsAndCallbacks) {\n commandsAndCallbacks.forEach((commandAndCallback) => this.add(...commandAndCallback));\n }\n\n onToggleHelp(e) {\n if (e?.preventDefault) {\n e.preventDefault();\n }\n\n if (this.helpModalElement && this.helpModalVueInstance) {\n this.helpModalVueInstance.$destroy();\n this.helpModalElement.remove();\n this.helpModalElement = null;\n this.helpModalVueInstance = null;\n } else {\n this.helpModalElement = document.createElement('div');\n document.body.append(this.helpModalElement);\n\n this.helpModalVueInstance = new Vue({\n el: this.helpModalElement,\n components: {\n ShortcutsHelp: () => import('./shortcuts_help.vue'),\n },\n render: (createElement) => {\n return createElement('shortcuts-help', {\n on: {\n hidden: this.onToggleHelp,\n },\n });\n },\n });\n }\n }\n\n static onTogglePerfBar(e) {\n e.preventDefault();\n const performanceBarCookieName = 'perf_bar_enabled';\n if (parseBoolean(getCookie(performanceBarCookieName))) {\n setCookie(performanceBarCookieName, 'false', { path: '/' });\n } else {\n setCookie(performanceBarCookieName, 'true', { path: '/' });\n }\n refreshCurrentPage();\n }\n\n static onToggleCanary(e) {\n e.preventDefault();\n const canaryCookieName = 'gitlab_canary';\n const currentValue = parseBoolean(getCookie(canaryCookieName));\n setCookie(canaryCookieName, (!currentValue).toString(), { expires: 365, path: '/' });\n refreshCurrentPage();\n }\n\n static toggleMarkdownPreview(e) {\n $(document).triggerHandler('markdown-preview:toggle', [e]);\n }\n\n static toggleFindAndReplaceBar(e) {\n $(document).triggerHandler('markdown-editor:find-and-replace', [e]);\n }\n\n focusFilter(e) {\n if (!this.filterInput) {\n this.filterInput = $('input[type=search]', '.nav-controls');\n }\n this.filterInput.focus();\n e.preventDefault();\n }\n\n static focusSearch(e) {\n document.querySelector('#super-sidebar-search')?.click();\n InternalEvents.trackEvent('press_keyboard_shortcut_to_activate_command_palette');\n\n if (e.preventDefault) {\n e.preventDefault();\n }\n }\n\n static async focusSearchFile(e) {\n if (e?.key) {\n InternalEvents.trackEvent(FIND_FILE_SHORTCUT_CLICK);\n }\n e?.preventDefault();\n document.querySelector('#super-sidebar-search')?.click();\n\n const searchInput = await waitForElement('#super-sidebar-search-modal #search');\n if (!searchInput) return;\n\n const currentPath = document.querySelector('.js-repo-breadcrumbs')?.dataset.currentPath;\n\n searchInput.value = `~${currentPath ? `${currentPath}/` : ''}`;\n searchInput.dispatchEvent(new Event('input'));\n }\n\n static hideAppearingContent(e) {\n const elements = document.querySelectorAll('.tooltip, .popover');\n\n elements.forEach((element) => {\n element.style.display = 'none';\n });\n\n if (e.preventDefault) {\n e.preventDefault();\n }\n }\n\n /**\n * Initializes markdown editor shortcuts on the provided `<textarea>` element\n *\n * @param {JQuery} $textarea The jQuery-wrapped `<textarea>` element\n * where markdown shortcuts should be enabled\n * @param {Function} handler The handler to call when a\n * keyboard shortcut is pressed inside the markdown `<textarea>`\n */\n static initMarkdownEditorShortcuts($textarea, handler) {\n const toolbarBtnToShortcutsMap = getToolbarBtnToShortcutsMap($textarea);\n\n const localMousetrap = new Mousetrap($textarea[0]);\n\n // Save a reference to the local mousetrap instance on the <textarea>\n // so that it can be retrieved when unbinding shortcut handlers\n $textarea.data(LOCAL_MOUSETRAP_DATA_KEY, localMousetrap);\n\n toolbarBtnToShortcutsMap.forEach((keyboardShortcuts, $toolbarBtn) => {\n localMousetrap.bind(keyboardShortcuts, (e) => {\n e.preventDefault();\n\n handler($toolbarBtn);\n });\n });\n\n // Get an array of all shortcut strings that have been added above\n const allShortcuts = flatten([...toolbarBtnToShortcutsMap.values()]);\n\n const originalStopCallback = Mousetrap.prototype.stopCallback;\n localMousetrap.stopCallback = function newStopCallback(e, element, combo) {\n if (allShortcuts.includes(combo)) {\n return false;\n }\n\n return originalStopCallback.call(this, e, element, combo);\n };\n }\n\n /**\n * Removes markdown editor shortcut handlers originally attached\n * with `initMarkdownEditorShortcuts`.\n *\n * Note: it is safe to call this function even if `initMarkdownEditorShortcuts`\n * has _not_ yet been called on the given `<textarea>`.\n *\n * @param {JQuery} $textarea The jQuery-wrapped `<textarea>`\n * to remove shortcut handlers from\n */\n static removeMarkdownEditorShortcuts($textarea) {\n const localMousetrap = $textarea.data(LOCAL_MOUSETRAP_DATA_KEY);\n\n if (localMousetrap) {\n getToolbarBtnToShortcutsMap($textarea).forEach((keyboardShortcuts) => {\n localMousetrap.unbind(keyboardShortcuts);\n });\n }\n }\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"projectIssueMilestoneMutation\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"attributeId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetAttribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"updateIssue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"attributeId\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"milestone\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"expired\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":355}};\n doc.loc.source = {\"body\":\"mutation projectIssueMilestoneMutation($fullPath: ID!, $iid: String!, $attributeId: ID) {\\n issuableSetAttribute: updateIssue(\\n input: { projectPath: $fullPath, iid: $iid, milestoneId: $attributeId }\\n ) {\\n errors\\n issuable: issue {\\n id\\n attribute: milestone {\\n title\\n id\\n state\\n expired\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"projectIssueMilestoneMutation\"] = oneQuery(doc, \"projectIssueMilestoneMutation\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueEpics\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicState\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableSearchableField\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iidStartsWith\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attributes\"},\"name\":{\"kind\":\"Name\",\"value\":\"epics\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestorGroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeDescendantGroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iidStartsWith\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iidStartsWith\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicFragment\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":496}};\n doc.loc.source = {\"body\":\"#import \\\"./epic.fragment.graphql\\\"\\n\\nquery issueEpics(\\n $fullPath: ID!\\n $title: String\\n $state: EpicState\\n $in: [IssuableSearchableField!]\\n $iidStartsWith: String\\n) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n attributes: epics(\\n search: $title\\n in: $in\\n state: $state\\n includeAncestorGroups: true\\n includeDescendantGroups: false\\n iidStartsWith: $iidStartsWith\\n ) {\\n nodes {\\n ...EpicFragment\\n state\\n iid\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./epic.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueEpics\"] = oneQuery(doc, \"issueEpics\");\n \n","import { extend, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_ARRAY_OBJECT_STRING } from '../../constants/props';\nimport { sortKeys, omit } from '../../utils/object';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { props as props$1, BForm } from '../form/form';\n\n// --- Props ---\n\nconst props = makePropsConfigurable(sortKeys({\n ...props$1,\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n formClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}), NAME_DROPDOWN_FORM);\n\n// --- Main component ---\n\n// @vue/component\nconst BDropdownForm = /*#__PURE__*/extend({\n name: NAME_DROPDOWN_FORM,\n functional: true,\n props,\n render(h, _ref) {\n let {\n props,\n data,\n listeners,\n children\n } = _ref;\n return h('li', mergeData(omit(data, ['attrs', 'on']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(BForm, {\n staticClass: 'b-dropdown-form',\n class: [props.formClass, {\n disabled: props.disabled\n }],\n props,\n attrs: {\n ...(data.attrs || {}),\n disabled: props.disabled,\n // Tab index of -1 for keyboard navigation\n tabindex: props.disabled ? null : '-1'\n },\n on: listeners,\n ref: 'form'\n }, children)]);\n }\n});\n\nexport { BDropdownForm, props };\n","import { BDropdownForm } from '../../../vendor/bootstrap-vue/src/components/dropdown/dropdown-form';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlDropdownForm',\n components: {\n BDropdownForm\n },\n inheritAttrs: false\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-dropdown-form',_vm._g(_vm._b({attrs:{\"form-class\":\"gl-p-0\"}},'b-dropdown-form',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemMetadataWidgets\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidget\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetStartAndDueDate\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetWeight\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rolledUpWeight\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgetDefinition\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"editable\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rollUp\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetProgress\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"progress\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updatedAt\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetHealthStatus\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rolledUpHealthStatus\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetMilestone\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"milestone\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MilestoneFragment\"},\"directives\":[]}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetAssignees\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowsMultipleAssignees\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canInviteMembers\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"assignees\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetLabels\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowsScopedLabels\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetLinkedItems\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"linkedItems\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"linkId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"linkType\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetIteration\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iteration\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadence\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1244}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/label.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n#import \\\"~/work_items/graphql/milestone.fragment.graphql\\\"\\n\\nfragment WorkItemMetadataWidgets on WorkItemWidget {\\n type\\n ... on WorkItemWidgetStartAndDueDate {\\n dueDate\\n startDate\\n }\\n ... on WorkItemWidgetWeight {\\n weight\\n rolledUpWeight\\n widgetDefinition {\\n editable\\n rollUp\\n }\\n }\\n ... on WorkItemWidgetProgress {\\n progress\\n updatedAt\\n }\\n ... on WorkItemWidgetHealthStatus {\\n healthStatus\\n rolledUpHealthStatus {\\n count\\n healthStatus\\n }\\n }\\n ... on WorkItemWidgetMilestone {\\n milestone {\\n ...MilestoneFragment\\n }\\n }\\n ... on WorkItemWidgetAssignees {\\n allowsMultipleAssignees\\n canInviteMembers\\n assignees {\\n nodes {\\n ...User\\n }\\n }\\n }\\n ... on WorkItemWidgetLabels {\\n allowsScopedLabels\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n }\\n ... on WorkItemWidgetLinkedItems {\\n linkedItems {\\n nodes {\\n linkId\\n linkType\\n }\\n }\\n }\\n ... on WorkItemWidgetIteration {\\n iteration {\\n title\\n startDate\\n dueDate\\n iterationCadence {\\n title\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/label.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/work_items/graphql/milestone.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"WorkItemMetadataWidgets\"] = oneQuery(doc, \"WorkItemMetadataWidgets\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"boardsAppError\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"boardsAppError\"},\"arguments\":[],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}]}]}}],\"loc\":{\"start\":0,\"end\":50}};\n doc.loc.source = {\"body\":\"query boardsAppError {\\n boardsAppError @client\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"boardsAppError\"] = oneQuery(doc, \"boardsAppError\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.treeRootWrapper,_vm._b({tag:\"component\",staticClass:\"content-list\",class:{\n 'sortable-container gl-cursor-grab': _vm.canReorder,\n 'disabled-content': _vm.disableList,\n },attrs:{\"data-testid\":\"child-items-container\",\"move\":_vm.onMove},on:{\"start\":_vm.handleDragOnStart,\"end\":_vm.handleDragOnEnd}},'component',_vm.treeRootOptions,false),_vm._l((_vm.displayableChildren),function(child){return _c('work-item-link-child',{key:child.id,staticClass:\"!gl-border-x-0 !gl-border-b-1 !gl-border-t-0 !gl-border-solid !gl-pb-2 last:!gl-border-b-0 last:!gl-pb-0\",attrs:{\"can-update\":_vm.canUpdate,\"issuable-gid\":child.id,\"child-item\":child,\"confidential\":child.confidential,\"work-item-type\":child.workItemType.name,\"has-indirect-children\":_vm.hasIndirectChildren,\"show-labels\":_vm.showLabels,\"show-closed\":_vm.showClosed,\"work-item-full-path\":_vm.fullPath,\"show-task-weight\":_vm.showTaskWeight,\"dragged-item-type\":_vm.draggedItemType,\"allowed-children-by-type\":_vm.allowedChildrenByType,\"is-top-level\":_vm.isTopLevel,\"data-child-title\":child.title,\"data-child-type\":child.workItemType.name,\"active-child-item-id\":_vm.activeChildItemId,\"parent-id\":_vm.parentId},on:{\"drag\":function($event){return _vm.$emit('drag', $event)},\"drop\":function($event){return _vm.$emit('drop')},\"mouseover\":function($event){return _vm.prefetchWorkItem(child)},\"mouseout\":_vm.clearPrefetching,\"removeChild\":_vm.removeChild,\"error\":function($event){return _vm.$emit('error', $event)},\"click\":function($event){return _vm.onClick($event, child)}},nativeOn:{\"click\":function($event){return _vm.onClick($event, child)}}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_link_child.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_link_child.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlTooltipDirective } from '@gitlab/ui';\nimport { __, s__ } from '~/locale';\nimport { createAlert } from '~/alert';\nimport { STATE_OPEN, WORK_ITEM_TYPE_VALUE_TASK } from '../../constants';\nimport { findHierarchyWidgets, getDefaultHierarchyChildrenCount, getItems } from '../../utils';\nimport toggleHierarchyTreeChildMutation from '../../graphql/client/toggle_hierarchy_tree_child.mutation.graphql';\nimport isExpandedHierarchyTreeChildQuery from '../../graphql/client/is_expanded_hierarchy_tree_child.query.graphql';\nimport getWorkItemTreeQuery from '../../graphql/work_item_tree.query.graphql';\nimport WorkItemLinkChildContents from '../shared/work_item_link_child_contents.vue';\nimport WorkItemChildrenLoadMore from '../shared/work_item_children_load_more.vue';\n\nexport default {\n name: 'WorkItemLinkChild',\n components: {\n GlButton,\n WorkItemChildrenWrapper: () => import('./work_item_children_wrapper.vue'),\n WorkItemLinkChildContents,\n WorkItemChildrenLoadMore,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n canUpdate: {\n type: Boolean,\n required: true,\n },\n issuableGid: {\n type: String,\n required: true,\n },\n childItem: {\n type: Object,\n required: true,\n },\n hasIndirectChildren: {\n type: Boolean,\n required: false,\n default: true,\n },\n workItemType: {\n type: String,\n required: false,\n default: '',\n },\n showLabels: {\n type: Boolean,\n required: false,\n default: true,\n },\n showClosed: {\n type: Boolean,\n required: false,\n default: true,\n },\n workItemFullPath: {\n type: String,\n required: false,\n default: '',\n },\n isTopLevel: {\n type: Boolean,\n required: false,\n default: false,\n },\n draggedItemType: {\n type: String,\n required: false,\n default: null,\n },\n showTaskWeight: {\n type: Boolean,\n required: false,\n default: true,\n },\n allowedChildrenByType: {\n type: Object,\n required: false,\n default: () => {},\n },\n activeChildItemId: {\n type: String,\n required: false,\n default: null,\n },\n parentId: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n isExpanded: false,\n isLoadingChildren: false,\n children: [],\n fetchNextPageInProgress: false,\n hierarchyWidget: {},\n childItemId: '',\n };\n },\n apollo: {\n hierarchyWidget: {\n query: getWorkItemTreeQuery,\n variables() {\n return {\n id: this.childItemId,\n pageSize: getDefaultHierarchyChildrenCount(),\n endCursor: '',\n };\n },\n skip() {\n return !this.childItemId;\n },\n update({ workItem }) {\n if (workItem) {\n this.isLoadingChildren = false;\n const { hasChildren, children } = findHierarchyWidgets(workItem.widgets);\n this.children = children.nodes;\n return {\n pageInfo: children.pageInfo,\n count: children.count,\n nodes: children.nodes,\n hasChildren,\n };\n }\n this.childItemId = '';\n return {};\n },\n error(error) {\n createAlert({\n message: s__('Hierarchy|Something went wrong while fetching children.'),\n captureError: true,\n error,\n });\n },\n result() {\n if (this.hasNextPage && this.children.length === 0) {\n this.fetchNextPage();\n }\n },\n },\n isExpanded: {\n query: isExpandedHierarchyTreeChildQuery,\n variables() {\n return { id: this.childItem.id };\n },\n update(data) {\n this.childItemId = data?.isExpandedHierarchyTreeChild?.id;\n return data?.isExpandedHierarchyTreeChild?.isExpanded || false;\n },\n },\n },\n computed: {\n hasChildren() {\n return (\n findHierarchyWidgets(this.childItem.widgets).hasChildren ||\n this.hierarchyWidget?.hasChildren\n );\n },\n shouldExpandChildren() {\n // In case the parent is the same as the child,\n // it is creating a cycle and recursively expanding the tree\n // Issue details: https://gitlab.com/gitlab-org/gitlab/-/issues/498106\n if (this.parentId === this.childItem.id) {\n return false;\n }\n const rolledUpCountsByType =\n findHierarchyWidgets(this.childItem.widgets)?.rolledUpCountsByType || [];\n const nrOpenChildren = rolledUpCountsByType\n .map((i) => i.countsByState.all - i.countsByState.closed)\n .reduce((sum, n) => sum + n, 0);\n\n return this.hasChildren && (nrOpenChildren > 0 || this.showClosed);\n },\n pageInfo() {\n return this.hierarchyWidget.pageInfo || {};\n },\n hasNextPage() {\n return Boolean(this.pageInfo?.hasNextPage);\n },\n endCursor() {\n return this.pageInfo?.endCursor || '';\n },\n isItemOpen() {\n return this.childItem.state === STATE_OPEN;\n },\n childItemType() {\n return this.childItem.workItemType.name;\n },\n iconClass() {\n if (this.childItemType === WORK_ITEM_TYPE_VALUE_TASK) {\n return this.isItemOpen ? 'gl-fill-icon-success' : 'gl-fill-icon-info';\n }\n return '';\n },\n stateTimestamp() {\n return this.isItemOpen ? this.childItem.createdAt : this.childItem.closedAt;\n },\n stateTimestampTypeText() {\n return this.isItemOpen ? __('Created') : __('Closed');\n },\n chevronType() {\n return this.isExpanded ? 'chevron-down' : 'chevron-right';\n },\n chevronTooltip() {\n return this.isExpanded ? __('Collapse') : __('Expand');\n },\n childItemClass() {\n return {\n '!gl-ml-0': this.hasChildren || (!this.hasIndirectChildren && this.isTopLevel),\n 'gl-bg-blue-50 hover:gl-bg-blue-50 gl-border-default': this.isActive,\n };\n },\n shouldShowWeight() {\n return this.childItemType === WORK_ITEM_TYPE_VALUE_TASK ? this.showTaskWeight : true;\n },\n allowedChildTypes() {\n return this.allowedChildrenByType?.[this.childItemType] || [];\n },\n draggedItemTypeIsAllowed() {\n return this.allowedChildTypes.includes(this.draggedItemType);\n },\n showChildrenDropzone() {\n return !this.hasChildren && this.draggedItemTypeIsAllowed;\n },\n displayableChildren() {\n const filterClosed = getItems(this.showClosed);\n return filterClosed(this.children);\n },\n isActive() {\n return this.activeChildItemId === this.childItem.id;\n },\n },\n methods: {\n toggleItem() {\n if (this.children.length === 0 && this.hasChildren) {\n this.isLoadingChildren = true;\n this.childItemId = this.childItem.id;\n }\n this.$apollo.mutate({\n mutation: toggleHierarchyTreeChildMutation,\n variables: {\n id: this.childItem.id,\n isExpanded: !this.isExpanded,\n },\n });\n },\n async fetchNextPage() {\n if (this.hasNextPage && !this.fetchNextPageInProgress) {\n this.fetchNextPageInProgress = true;\n\n try {\n await this.$apollo.queries.hierarchyWidget.fetchMore({\n variables: {\n endCursor: this.endCursor,\n },\n });\n } catch (error) {\n createAlert({\n message: s__('Hierarchy|Something went wrong while fetching children.'),\n captureError: true,\n error,\n });\n } finally {\n this.fetchNextPageInProgress = false;\n }\n }\n },\n },\n};\n</script>\n\n<template>\n <li class=\"tree-item !gl-px-0 !gl-py-2\">\n <div class=\"gl-flex gl-items-start\">\n <div v-if=\"hasIndirectChildren\" class=\"gl-mr-2 gl-h-7 gl-w-5\">\n <gl-button\n v-if=\"shouldExpandChildren\"\n v-gl-tooltip.hover\n :title=\"chevronTooltip\"\n :aria-label=\"chevronTooltip\"\n :icon=\"chevronType\"\n category=\"tertiary\"\n size=\"small\"\n :loading=\"isLoadingChildren && !fetchNextPageInProgress\"\n class=\"!gl-px-0 !gl-py-3\"\n data-testid=\"expand-child\"\n @click.stop=\"toggleItem\"\n />\n </div>\n <div\n data-testid=\"child-contents-container\"\n class=\"gl-w-full\"\n :class=\"{\n '!gl-border-x-0 !gl-border-b-1 !gl-border-t-0 !gl-border-solid gl-border-default !gl-pb-2':\n isExpanded && shouldExpandChildren && !isLoadingChildren,\n }\"\n >\n <work-item-link-child-contents\n :child-item=\"childItem\"\n :can-update=\"canUpdate\"\n :class=\"childItemClass\"\n :parent-work-item-id=\"issuableGid\"\n :work-item-type=\"workItemType\"\n :show-labels=\"showLabels\"\n :show-closed=\"showClosed\"\n :work-item-full-path=\"workItemFullPath\"\n :show-weight=\"shouldShowWeight\"\n :is-active=\"isActive\"\n @click=\"$emit('click', $event)\"\n @removeChild=\"$emit('removeChild', childItem)\"\n />\n </div>\n </div>\n <div class=\"!gl-ml-6\">\n <work-item-children-wrapper\n v-if=\"isExpanded || showChildrenDropzone\"\n :can-update=\"canUpdate\"\n :work-item-id=\"issuableGid\"\n :work-item-iid=\"childItem.iid\"\n :work-item-type=\"workItemType\"\n :children=\"displayableChildren\"\n :parent=\"childItem\"\n :show-labels=\"showLabels\"\n :show-closed=\"showClosed\"\n :full-path=\"workItemFullPath\"\n :is-top-level=\"false\"\n :show-task-weight=\"showTaskWeight\"\n :has-indirect-children=\"hasIndirectChildren\"\n :dragged-item-type=\"draggedItemType\"\n :allowed-children-by-type=\"allowedChildrenByType\"\n :active-child-item-id=\"activeChildItemId\"\n :parent-id=\"parentId\"\n @drag=\"$emit('drag', $event)\"\n @drop=\"$emit('drop')\"\n @removeChild=\"$emit('removeChild', childItem)\"\n @error=\"$emit('error', $event)\"\n @click=\"$emit('click', $event)\"\n />\n <work-item-children-load-more\n v-if=\"hasNextPage && isExpanded\"\n class=\"!gl-pl-5\"\n data-testid=\"work-item-load-more\"\n :fetch-next-page-in-progress=\"fetchNextPageInProgress\"\n @fetch-next-page=\"fetchNextPage\"\n />\n </div>\n </li>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_children_wrapper.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_children_wrapper.vue?vue&type=script&lang=js\"","<script>\nimport Draggable from 'vuedraggable';\nimport { cloneDeep } from 'lodash';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\n\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';\nimport { ESC_KEY } from '~/lib/utils/keys';\nimport { s__ } from '~/locale';\nimport { defaultSortableOptions, DRAG_DELAY } from '~/sortable/constants';\nimport { sortableStart, sortableEnd } from '~/sortable/utils';\n\nimport { WORK_ITEM_TYPE_VALUE_OBJECTIVE, WORK_ITEM_TYPE_VALUE_EPIC } from '../../constants';\nimport { findHierarchyWidgetChildren, getItems } from '../../utils';\nimport {\n addHierarchyChild,\n removeHierarchyChild,\n optimisticUserPermissions,\n} from '../../graphql/cache_utils';\nimport moveWorkItem from '../../graphql/move_work_item.mutation.graphql';\nimport toggleHierarchyTreeChildMutation from '../../graphql/client/toggle_hierarchy_tree_child.mutation.graphql';\nimport updateWorkItemMutation from '../../graphql/update_work_item.mutation.graphql';\nimport workItemByIidQuery from '../../graphql/work_item_by_iid.query.graphql';\nimport getWorkItemTreeQuery from '../../graphql/work_item_tree.query.graphql';\nimport WorkItemLinkChild from './work_item_link_child.vue';\n\nexport default {\n components: {\n WorkItemLinkChild,\n },\n props: {\n fullPath: {\n type: String,\n required: true,\n },\n workItemType: {\n type: String,\n required: false,\n default: '',\n },\n workItemId: {\n type: String,\n required: true,\n },\n workItemIid: {\n type: String,\n required: false,\n default: null,\n },\n children: {\n type: Array,\n required: true,\n },\n canUpdate: {\n type: Boolean,\n required: false,\n default: false,\n },\n showLabels: {\n type: Boolean,\n required: false,\n default: true,\n },\n showClosed: {\n type: Boolean,\n required: false,\n default: true,\n },\n disableContent: {\n type: Boolean,\n required: false,\n default: false,\n },\n isTopLevel: {\n type: Boolean,\n required: false,\n default: true,\n },\n parent: {\n type: Object,\n required: true,\n },\n showTaskWeight: {\n type: Boolean,\n required: false,\n default: true,\n },\n hasIndirectChildren: {\n type: Boolean,\n required: false,\n default: true,\n },\n allowedChildrenByType: {\n type: Object,\n required: false,\n default: () => {},\n },\n draggedItemType: {\n type: String,\n required: false,\n default: null,\n },\n activeChildItemId: {\n type: String,\n required: false,\n default: null,\n },\n parentId: {\n type: String,\n required: false,\n default: null,\n },\n },\n data() {\n return {\n prefetchedWorkItem: null,\n updateInProgress: false,\n currentClientX: 0,\n currentClientY: 0,\n childrenWorkItems: [],\n toParent: {},\n dragCancelled: false,\n };\n },\n computed: {\n canReorder() {\n return isLoggedIn() && this.canUpdate;\n },\n treeRootWrapper() {\n return this.canReorder ? Draggable : 'ul';\n },\n treeRootOptions() {\n const options = {\n ...defaultSortableOptions,\n fallbackOnBody: false,\n group: 'sortable-container',\n tag: 'ul',\n 'data-parent-id': this.workItemId,\n 'data-parent-title': this.parent.title,\n value: this.children,\n delay: DRAG_DELAY,\n delayOnTouchOnly: true,\n };\n\n return this.canReorder ? options : {};\n },\n disableList() {\n return this.disableContent || this.updateInProgress;\n },\n apolloClient() {\n return this.$apollo.provider.clients.defaultClient;\n },\n displayableChildren() {\n const filterClosed = getItems(this.showClosed);\n return filterClosed(this.children);\n },\n },\n mounted() {\n this.handleDocumentKeyup = this.handleKeyUp.bind(this);\n },\n methods: {\n async removeChild(child) {\n try {\n const { data } = await this.$apollo.mutate({\n mutation: updateWorkItemMutation,\n variables: { input: { id: child.id, hierarchyWidget: { parentId: null } } },\n update: (cache) =>\n removeHierarchyChild({\n cache,\n id: this.workItemId,\n workItem: child,\n }),\n });\n\n if (data.workItemUpdate.errors.length) {\n throw new Error(data.workItemUpdate.errors);\n }\n\n this.$toast.show(s__('WorkItem|Child removed'), {\n action: {\n text: s__('WorkItem|Undo'),\n onClick: (_, toast) => {\n this.undoChildRemoval(child);\n toast.hide();\n },\n },\n });\n } catch (error) {\n this.$emit('error', s__('WorkItem|Something went wrong while removing child.'));\n Sentry.captureException(error);\n }\n },\n async undoChildRemoval(child) {\n try {\n this.updateInProgress = true;\n const { data } = await this.$apollo.mutate({\n mutation: updateWorkItemMutation,\n variables: { input: { id: child.id, hierarchyWidget: { parentId: this.workItemId } } },\n update: (cache) =>\n addHierarchyChild({\n cache,\n id: this.workItemId,\n workItem: child,\n }),\n });\n\n if (data.workItemUpdate.errors.length) {\n throw new Error(data.workItemUpdate.errors);\n }\n\n this.$toast.show(s__('WorkItem|Child removal reverted'));\n } catch (error) {\n this.$emit('error', s__('WorkItem|Something went wrong while undoing child removal.'));\n Sentry.captureException(error);\n } finally {\n this.updateInProgress = false;\n }\n },\n addWorkItemQuery({ iid }) {\n this.$apollo.addSmartQuery('prefetchedWorkItem', {\n query: workItemByIidQuery,\n variables: {\n fullPath: this.fullPath,\n iid,\n },\n update(data) {\n return data.workspace.workItem;\n },\n });\n },\n prefetchWorkItem({ iid }) {\n if (this.workItemType !== WORK_ITEM_TYPE_VALUE_OBJECTIVE) {\n this.prefetch = setTimeout(\n () => this.addWorkItemQuery({ iid }),\n DEFAULT_DEBOUNCE_AND_THROTTLE_MS,\n );\n }\n },\n clearPrefetching() {\n if (this.prefetch) {\n clearTimeout(this.prefetch);\n }\n },\n async fetchChildren(id) {\n await this.$apollo.addSmartQuery('childrenWorkItems', {\n query: getWorkItemTreeQuery,\n variables: {\n id,\n },\n update: (data) => findHierarchyWidgetChildren(data?.workItem),\n result({ data }) {\n const { workItem } = data;\n this.toParent = {\n id: workItem.id,\n title: workItem.title,\n confidential: workItem.confidential,\n workItemType: workItem.workItemType,\n };\n },\n error() {\n this.$emit('error', s__('Hierarchy|Something went wrong while fetching children.'));\n },\n });\n },\n\n getReorderParams({ oldIndex, newIndex }) {\n let relativePosition;\n\n // adjacentWorkItemId is always the item that's at the position\n // where target was moved.\n const adjacentWorkItemId = this.children[newIndex].id;\n\n if (newIndex === 0) {\n // If newIndex is `0`, item was moved to the top.\n // Adjacent reference will be the one which is currently at the top,\n // and it's relative position with respect to target's new position is `BEFORE`.\n relativePosition = 'BEFORE';\n } else if (newIndex === this.children.length - 1) {\n // If newIndex is last position in list, item was moved to the bottom.\n // Adjacent reference will be the one which is currently at the bottom,\n // and it's relative position with respect to target's new position is `AFTER`.\n relativePosition = 'AFTER';\n } else if (oldIndex < newIndex) {\n // If newIndex is neither top nor bottom, it was moved somewhere in the middle.\n // Adjacent reference will be the one which is currently at that position,\n\n // when the item is moved down, the newIndex is after the adjacent reference.\n relativePosition = 'AFTER';\n } else {\n // when the item is moved up, the newIndex is before the adjacent reference.\n relativePosition = 'BEFORE';\n }\n\n return {\n relativePosition,\n adjacentWorkItemId,\n };\n },\n async getMoveItemParams({ toParentId, newIndex }) {\n await this.fetchChildren(toParentId);\n let adjacentWorkItemId;\n let relativePosition;\n if (this.childrenWorkItems.length > 0) {\n relativePosition = 'BEFORE';\n adjacentWorkItemId = this.childrenWorkItems[newIndex]?.id;\n if (!adjacentWorkItemId) {\n adjacentWorkItemId = this.childrenWorkItems[this.childrenWorkItems.length - 1].id;\n relativePosition = 'AFTER';\n }\n }\n return {\n adjacentWorkItemId,\n relativePosition,\n parentId: toParentId,\n };\n },\n handleDragOnStart(params) {\n sortableStart();\n this.$emit('drag', params.item.dataset.childType);\n this.dragCancelled = false;\n // Attach listener to detect `ESC` key press to cancel drag.\n document.addEventListener('keyup', this.handleDocumentKeyup);\n },\n async handleDragOnEnd(params) {\n clearTimeout(this.toggleTimer);\n sortableEnd();\n this.$emit('drop');\n document.removeEventListener('keyup', this.handleDocumentKeyup);\n // Drag was cancelled, prevent reordering.\n if (this.dragCancelled) return;\n\n const { oldIndex, newIndex, from, to } = params;\n const fromParentId = from.dataset.parentId;\n const toParentId = to.dataset.parentId;\n const toParentTitle = to.dataset.parentTitle;\n const targetItem = this.children[oldIndex];\n let hierarchyWidgetParams;\n let updatedChildren;\n let toParentHasChildren;\n\n this.updateInProgress = true;\n if (fromParentId === toParentId) {\n if (oldIndex === newIndex) {\n this.updateInProgress = false;\n return;\n }\n hierarchyWidgetParams = this.getReorderParams({ oldIndex, newIndex });\n updatedChildren = cloneDeep(this.children);\n updatedChildren.splice(oldIndex, 1);\n } else {\n hierarchyWidgetParams = await this.getMoveItemParams({ toParentId, newIndex });\n updatedChildren = cloneDeep(this.childrenWorkItems);\n toParentHasChildren = updatedChildren.length > 0;\n }\n\n updatedChildren.splice(newIndex, 0, targetItem);\n const currentPageSize = updatedChildren.length;\n\n this.$apollo\n .mutate({\n mutation: moveWorkItem,\n variables: {\n pageSize: currentPageSize,\n endCursor: '',\n input: {\n id: targetItem.id,\n ...hierarchyWidgetParams,\n },\n },\n update: async (cache) => {\n if (fromParentId !== toParentId) {\n removeHierarchyChild({\n cache,\n id: fromParentId,\n workItem: targetItem,\n });\n // When the new parent does not have existing children, it needs to be expanded\n if (!toParentHasChildren) {\n this.openChild(toParentId);\n }\n }\n },\n optimisticResponse: {\n workItemsHierarchyReorder: {\n __typename: 'workItemsHierarchyReorderPayload',\n workItem: {\n ...targetItem,\n userPermissions: optimisticUserPermissions,\n widgets: [\n {\n __typename: 'WorkItemWidgetHierarchy',\n type: 'HIERARCHY',\n hasChildren: false,\n depthLimitReachedByType: [],\n rolledUpCountsByType: [],\n parent: { id: toParentId },\n children: [],\n },\n ],\n },\n parentWorkItem: {\n __typename: 'WorkItem',\n id: toParentId,\n userPermissions: optimisticUserPermissions,\n confidential: this.toParent.confidential || this.parent.confidential,\n title: toParentTitle,\n workItemType: this.toParent.workItemType || this.parent.workItemType,\n widgets: [\n {\n __typename: 'WorkItemWidgetHierarchy',\n type: 'HIERARCHY',\n hasChildren: true,\n depthLimitReachedByType: [],\n rolledUpCountsByType: [],\n parent: null,\n children: {\n __typename: 'WorkItemConnection',\n pageInfo: {\n hasNextPage: false,\n hasPreviousPage: false,\n startCursor: '',\n endCursor: '',\n },\n count: updatedChildren.length,\n nodes: [...updatedChildren],\n },\n },\n ],\n },\n errors: [],\n },\n },\n })\n .then(\n ({\n data: {\n workItemsHierarchyReorder: { errors },\n },\n }) => {\n if (errors?.length) {\n throw new Error(errors[0]);\n }\n },\n )\n .catch((error) => {\n this.$emit('error', error.message);\n Sentry.captureException(error);\n if (fromParentId !== toParentId) {\n const { cache } = this.apolloClient;\n addHierarchyChild({\n cache,\n id: fromParentId,\n workItem: targetItem,\n atIndex: oldIndex,\n });\n }\n })\n .finally(() => {\n this.updateInProgress = false;\n });\n },\n onMove(e, originalEvent) {\n const item = e.relatedContext.element;\n const { clientX, clientY } = originalEvent;\n\n // Cache current cursor position\n this.currentClientX = clientX;\n this.currentClientY = clientY;\n\n // Check if current item is an Epic\n if (\n [WORK_ITEM_TYPE_VALUE_EPIC, WORK_ITEM_TYPE_VALUE_OBJECTIVE].includes(\n item?.workItemType.name,\n )\n ) {\n const { top, left } = originalEvent.target.getBoundingClientRect();\n\n // Check if user has paused cursor on top of current item's boundary\n if (clientY >= top && clientX >= left) {\n // Wait for moment before expanding\n this.toggleTimer = setTimeout(() => {\n // Ensure that current cursor position is still within item's boundary\n if (this.currentClientX === clientX && this.currentClientY === clientY) {\n this.openChild(item.id);\n }\n }, 1000);\n } else {\n clearTimeout(this.toggleTimer);\n }\n }\n },\n onClick(event, child) {\n if (this.isTopLevel) {\n this.$emit('show-modal', { event, child: event.childItem || child });\n } else {\n // To avoid incorrect work item to be bubbled up\n // Assign the correct child item\n if (!event.childItem) {\n Object.assign(event, { childItem: child });\n }\n this.$emit('click', event);\n }\n },\n openChild(id) {\n this.$apollo.mutate({\n mutation: toggleHierarchyTreeChildMutation,\n variables: {\n id,\n isExpanded: true,\n },\n });\n },\n handleKeyUp(e) {\n if (e.code === ESC_KEY) {\n this.dragCancelled = true;\n // Sortable.js internally listens for `mouseup` event on document\n // to register drop event, see https://github.com/SortableJS/Sortable/blob/master/src/Sortable.js#L625\n // We need to manually trigger it to simulate cancel behaviour as VueDraggable doesn't\n // natively support it, see https://github.com/SortableJS/Vue.Draggable/issues/968.\n document.dispatchEvent(new Event('mouseup'));\n }\n },\n },\n};\n</script>\n\n<template>\n <component\n :is=\"treeRootWrapper\"\n v-bind=\"treeRootOptions\"\n data-testid=\"child-items-container\"\n class=\"content-list\"\n :class=\"{\n 'sortable-container gl-cursor-grab': canReorder,\n 'disabled-content': disableList,\n }\"\n :move=\"onMove\"\n @start=\"handleDragOnStart\"\n @end=\"handleDragOnEnd\"\n >\n <work-item-link-child\n v-for=\"child in displayableChildren\"\n :key=\"child.id\"\n :can-update=\"canUpdate\"\n :issuable-gid=\"child.id\"\n :child-item=\"child\"\n :confidential=\"child.confidential\"\n :work-item-type=\"child.workItemType.name\"\n :has-indirect-children=\"hasIndirectChildren\"\n :show-labels=\"showLabels\"\n :show-closed=\"showClosed\"\n :work-item-full-path=\"fullPath\"\n :show-task-weight=\"showTaskWeight\"\n :dragged-item-type=\"draggedItemType\"\n :allowed-children-by-type=\"allowedChildrenByType\"\n :is-top-level=\"isTopLevel\"\n :data-child-title=\"child.title\"\n :data-child-type=\"child.workItemType.name\"\n :active-child-item-id=\"activeChildItemId\"\n :parent-id=\"parentId\"\n class=\"!gl-border-x-0 !gl-border-b-1 !gl-border-t-0 !gl-border-solid !gl-pb-2 last:!gl-border-b-0 last:!gl-pb-0\"\n @drag=\"$emit('drag', $event)\"\n @drop=\"$emit('drop')\"\n @mouseover=\"prefetchWorkItem(child)\"\n @mouseout=\"clearPrefetching\"\n @removeChild=\"removeChild\"\n @error=\"$emit('error', $event)\"\n @click=\"onClick($event, child)\"\n @click.native=\"onClick($event, child)\"\n />\n </component>\n</template>\n","import { render, staticRenderFns } from \"./work_item_link_child.vue?vue&type=template&id=32952954\"\nimport script from \"./work_item_link_child.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_link_child.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"tree-item !gl-px-0 !gl-py-2\"},[_c('div',{staticClass:\"gl-flex gl-items-start\"},[(_vm.hasIndirectChildren)?_c('div',{staticClass:\"gl-mr-2 gl-h-7 gl-w-5\"},[(_vm.shouldExpandChildren)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"!gl-px-0 !gl-py-3\",attrs:{\"title\":_vm.chevronTooltip,\"aria-label\":_vm.chevronTooltip,\"icon\":_vm.chevronType,\"category\":\"tertiary\",\"size\":\"small\",\"loading\":_vm.isLoadingChildren && !_vm.fetchNextPageInProgress,\"data-testid\":\"expand-child\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleItem.apply(null, arguments)}}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-w-full\",class:{\n '!gl-border-x-0 !gl-border-b-1 !gl-border-t-0 !gl-border-solid gl-border-default !gl-pb-2':\n _vm.isExpanded && _vm.shouldExpandChildren && !_vm.isLoadingChildren,\n },attrs:{\"data-testid\":\"child-contents-container\"}},[_c('work-item-link-child-contents',{class:_vm.childItemClass,attrs:{\"child-item\":_vm.childItem,\"can-update\":_vm.canUpdate,\"parent-work-item-id\":_vm.issuableGid,\"work-item-type\":_vm.workItemType,\"show-labels\":_vm.showLabels,\"show-closed\":_vm.showClosed,\"work-item-full-path\":_vm.workItemFullPath,\"show-weight\":_vm.shouldShowWeight,\"is-active\":_vm.isActive},on:{\"click\":function($event){return _vm.$emit('click', $event)},\"removeChild\":function($event){return _vm.$emit('removeChild', _vm.childItem)}}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"!gl-ml-6\"},[(_vm.isExpanded || _vm.showChildrenDropzone)?_c('work-item-children-wrapper',{attrs:{\"can-update\":_vm.canUpdate,\"work-item-id\":_vm.issuableGid,\"work-item-iid\":_vm.childItem.iid,\"work-item-type\":_vm.workItemType,\"children\":_vm.displayableChildren,\"parent\":_vm.childItem,\"show-labels\":_vm.showLabels,\"show-closed\":_vm.showClosed,\"full-path\":_vm.workItemFullPath,\"is-top-level\":false,\"show-task-weight\":_vm.showTaskWeight,\"has-indirect-children\":_vm.hasIndirectChildren,\"dragged-item-type\":_vm.draggedItemType,\"allowed-children-by-type\":_vm.allowedChildrenByType,\"active-child-item-id\":_vm.activeChildItemId,\"parent-id\":_vm.parentId},on:{\"drag\":function($event){return _vm.$emit('drag', $event)},\"drop\":function($event){return _vm.$emit('drop')},\"removeChild\":function($event){return _vm.$emit('removeChild', _vm.childItem)},\"error\":function($event){return _vm.$emit('error', $event)},\"click\":function($event){return _vm.$emit('click', $event)}}}):_vm._e(),_vm._v(\" \"),(_vm.hasNextPage && _vm.isExpanded)?_c('work-item-children-load-more',{staticClass:\"!gl-pl-5\",attrs:{\"data-testid\":\"work-item-load-more\",\"fetch-next-page-in-progress\":_vm.fetchNextPageInProgress},on:{\"fetch-next-page\":_vm.fetchNextPage}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./work_item_children_wrapper.vue?vue&type=template&id=db005e2e\"\nimport script from \"./work_item_children_wrapper.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_children_wrapper.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"name\":\"design-disclosure\"}},[(_vm.open)?_c('aside',{staticClass:\"design-disclosure gl-border-l gl-relative gl-right-0 gl-top-0 gl-z-0 gl-flex gl-h-full gl-w-full gl-flex-col gl-overflow-y-auto gl-bg-white\"},[_vm._t(\"default\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_disclosure.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./design_disclosure.vue?vue&type=script&lang=js\"","<script>\nexport default {\n props: {\n open: {\n type: Boolean,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <transition name=\"design-disclosure\">\n <aside\n v-if=\"open\"\n class=\"design-disclosure gl-border-l gl-relative gl-right-0 gl-top-0 gl-z-0 gl-flex gl-h-full gl-w-full gl-flex-col gl-overflow-y-auto gl-bg-white\"\n >\n <slot></slot>\n </aside>\n </transition>\n</template>\n","import { render, staticRenderFns } from \"./design_disclosure.vue?vue&type=template&id=3d08c64d\"\nimport script from \"./design_disclosure.vue?vue&type=script&lang=js\"\nexport * from \"./design_disclosure.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Epic\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":56}};\n doc.loc.source = {\"body\":\"fragment EpicFragment on Epic {\\n id\\n title\\n webUrl\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"EpicFragment\"] = oneQuery(doc, \"EpicFragment\");\n \n","import { set, isEmpty } from 'lodash';\nimport { produce } from 'immer';\nimport { findWidget } from '~/issues/list/utils';\nimport { newDate, toISODateFormat } from '~/lib/utils/datetime_utility';\nimport { updateDraft } from '~/lib/utils/autosave';\nimport { getNewWorkItemAutoSaveKey, newWorkItemFullPath } from '../utils';\nimport {\n WIDGET_TYPE_ASSIGNEES,\n WIDGET_TYPE_COLOR,\n WIDGET_TYPE_LABELS,\n WIDGET_TYPE_HEALTH_STATUS,\n WIDGET_TYPE_DESCRIPTION,\n WIDGET_TYPE_CRM_CONTACTS,\n WIDGET_TYPE_ITERATION,\n WIDGET_TYPE_WEIGHT,\n WIDGET_TYPE_START_AND_DUE_DATE,\n NEW_WORK_ITEM_IID,\n WIDGET_TYPE_MILESTONE,\n WIDGET_TYPE_HIERARCHY,\n} from '../constants';\nimport workItemByIidQuery from './work_item_by_iid.query.graphql';\n\n// eslint-disable-next-line max-params\nconst updateWidget = (draftData, widgetType, newData, nodePath) => {\n /** set all other values other than when it is undefined including null/0 or empty array as well */\n /** we have to make sure we do not pass values when custom types are introduced */\n if (newData === undefined) return;\n\n if (draftData.workspace) {\n const widget = findWidget(widgetType, draftData.workspace.workItem);\n set(widget, nodePath, newData);\n }\n};\n\nconst updateDatesWidget = (draftData, dates) => {\n if (!dates) return;\n\n const dueDate = dates.dueDate ? toISODateFormat(newDate(dates.dueDate)) : null;\n const startDate = dates.startDate ? toISODateFormat(newDate(dates.startDate)) : null;\n\n const widget = findWidget(WIDGET_TYPE_START_AND_DUE_DATE, draftData.workspace.workItem);\n Object.assign(widget, {\n dueDate,\n startDate,\n isFixed: dates.isFixed,\n rollUp: dates.rollUp,\n __typename: 'WorkItemWidgetStartAndDueDate',\n });\n};\n\nexport const updateNewWorkItemCache = (input, cache) => {\n const {\n healthStatus,\n fullPath,\n workItemType,\n assignees,\n color,\n title,\n description,\n confidential,\n labels,\n rolledUpDates,\n crmContacts,\n iteration,\n weight,\n milestone,\n parent,\n } = input;\n\n const query = workItemByIidQuery;\n const variables = {\n fullPath: newWorkItemFullPath(fullPath, workItemType),\n iid: NEW_WORK_ITEM_IID,\n };\n\n cache.updateQuery({ query, variables }, (sourceData) =>\n produce(sourceData, (draftData) => {\n const widgetUpdates = [\n {\n widgetType: WIDGET_TYPE_ASSIGNEES,\n newData: assignees,\n nodePath: 'assignees.nodes',\n },\n {\n widgetType: WIDGET_TYPE_LABELS,\n newData: labels,\n nodePath: 'labels.nodes',\n },\n {\n widgetType: WIDGET_TYPE_COLOR,\n newData: color,\n nodePath: 'color',\n },\n {\n widgetType: WIDGET_TYPE_CRM_CONTACTS,\n newData: crmContacts,\n nodePath: 'contacts.nodes',\n },\n {\n widgetType: WIDGET_TYPE_DESCRIPTION,\n newData: description,\n nodePath: 'description',\n },\n {\n widgetType: WIDGET_TYPE_HEALTH_STATUS,\n newData: healthStatus,\n nodePath: 'healthStatus',\n },\n {\n widgetType: WIDGET_TYPE_ITERATION,\n newData: iteration,\n nodePath: 'iteration',\n },\n {\n widgetType: WIDGET_TYPE_WEIGHT,\n newData: weight,\n nodePath: 'weight',\n },\n {\n widgetType: WIDGET_TYPE_MILESTONE,\n newData: milestone,\n nodePath: 'milestone',\n },\n {\n widgetType: WIDGET_TYPE_HIERARCHY,\n newData: parent,\n nodePath: 'parent',\n },\n ];\n\n widgetUpdates.forEach(({ widgetType, newData, nodePath }) => {\n updateWidget(draftData, widgetType, newData, nodePath);\n });\n\n updateDatesWidget(draftData, rolledUpDates);\n\n // We want to allow users to delete a title for an in-progress work item draft\n // as we check for the title being valid when submitting the form\n if (title !== undefined) draftData.workspace.workItem.title = title;\n\n if (confidential !== undefined) draftData.workspace.workItem.confidential = confidential;\n }),\n );\n\n const newData = cache.readQuery({ query, variables });\n\n const autosaveKey = getNewWorkItemAutoSaveKey(fullPath, workItemType);\n\n const isQueryDataValid = !isEmpty(newData) && newData?.workspace?.workItem;\n\n if (isQueryDataValid && autosaveKey) {\n updateDraft(autosaveKey, JSON.stringify(newData));\n }\n};\n\nexport const workItemBulkEdit = (input) => {\n return {\n updatedIssueCount: input.ids.length,\n };\n};\n","import produce from 'immer';\nimport VueApollo from 'vue-apollo';\nimport { concatPagination } from '@apollo/client/utilities';\nimport errorQuery from '~/boards/graphql/client/error.query.graphql';\nimport selectedBoardItemsQuery from '~/boards/graphql/client/selected_board_items.query.graphql';\nimport isShowingLabelsQuery from '~/graphql_shared/client/is_showing_labels.query.graphql';\nimport getIssueStateQuery from '~/issues/show/queries/get_issue_state.query.graphql';\nimport createDefaultClient from '~/lib/graphql';\nimport typeDefs from '~/work_items/graphql/typedefs.graphql';\nimport {\n WIDGET_TYPE_NOTES,\n WIDGET_TYPE_AWARD_EMOJI,\n WIDGET_TYPE_HIERARCHY,\n WIDGET_TYPE_DESIGNS,\n} from '~/work_items/constants';\n\nimport isExpandedHierarchyTreeChildQuery from '~/work_items/graphql/client/is_expanded_hierarchy_tree_child.query.graphql';\nimport activeBoardItemQuery from 'ee_else_ce/boards/graphql/client/active_board_item.query.graphql';\nimport activeDiscussionQuery from '~/work_items/components/design_management/graphql/client/active_design_discussion.query.graphql';\nimport { updateNewWorkItemCache, workItemBulkEdit } from '~/work_items/graphql/resolvers';\n\nexport const config = {\n typeDefs,\n cacheConfig: {\n typePolicies: {\n Query: {\n fields: {\n isShowingLabels: {\n read(currentState) {\n return currentState ?? true;\n },\n },\n selectedBoardItems: {\n read(currentState) {\n return currentState ?? [];\n },\n },\n boardList: {\n keyArgs: ['id'],\n },\n epicBoardList: {\n keyArgs: ['id'],\n },\n isExpandedHierarchyTreeChild: (_, { variables, toReference }) =>\n toReference({ __typename: 'LocalWorkItemChildIsExpanded', id: variables.id }),\n },\n },\n DesignManagement: {\n merge(existing = {}, incoming) {\n return { ...existing, ...incoming };\n },\n },\n WorkItemDescriptionTemplateConnection: {\n fields: {\n nodes: {\n read(_, { variables }) {\n const templates = [\n /* eslint-disable @gitlab/require-i18n-strings */\n { name: 'template 1', content: 'A template' },\n { name: 'template 2', content: 'Another template' },\n { name: 'template 3', content: 'Secret template omg wow' },\n { name: 'template 4', content: 'Another another template' },\n /* eslint-enable @gitlab/require-i18n-strings */\n ];\n if (variables.search) {\n return templates.filter(({ name }) => name.includes(variables.search));\n }\n if (variables.name) {\n return templates.filter(({ name }) => name === variables.name);\n }\n return templates;\n },\n },\n },\n },\n Project: {\n fields: {\n projectMembers: {\n keyArgs: ['fullPath', 'search', 'relations', 'first'],\n },\n },\n },\n WorkItemWidgetNotes: {\n fields: {\n // If we add any key args, the discussions field becomes discussions({\"filter\":\"ONLY_ACTIVITY\",\"first\":10}) and\n // kills any possibility to handle it on the widget level without hardcoding a string.\n discussions: {\n keyArgs: false,\n },\n },\n },\n WorkItemWidgetAwardEmoji: {\n fields: {\n // If we add any key args, the awardEmoji field becomes awardEmoji({\"first\":10}) and\n // kills any possibility to handle it on the widget level without hardcoding a string.\n awardEmoji: {\n keyArgs: false,\n },\n },\n },\n WorkItemWidgetProgress: {\n fields: {\n progress: {\n // We want to show null progress as 0 as per https://gitlab.com/gitlab-org/gitlab/-/issues/386117\n read(existing) {\n return existing === null ? 0 : existing;\n },\n },\n },\n },\n DescriptionVersion: {\n fields: {\n startVersionId: {\n read() {\n // we need to set this when fetching the diff in the last 10 mins , the starting diff will be the very first one , so need to save it\n return '';\n },\n },\n },\n },\n WorkItemWidgetHierarchy: {\n fields: {\n // If we add any key args, the children field becomes children({\"first\":10}) and\n // kills any possibility to handle it on the widget level without hardcoding a string.\n children: {\n keyArgs: false,\n },\n },\n },\n WorkItem: {\n fields: {\n // widgets policy because otherwise the subscriptions invalidate the cache\n widgets: {\n merge(existing = [], incoming, context) {\n if (existing.length === 0) {\n return incoming;\n }\n return existing.map((existingWidget) => {\n const incomingWidget = incoming.find(\n (w) => w.type && w.type === existingWidget.type,\n );\n\n // we want to concat next page of awardEmoji to the existing ones\n if (incomingWidget?.type === WIDGET_TYPE_AWARD_EMOJI && context.variables.after) {\n // concatPagination won't work because we were placing new widget here so we have to do this manually\n return {\n ...incomingWidget,\n awardEmoji: {\n ...incomingWidget.awardEmoji,\n nodes: [\n ...existingWidget.awardEmoji.nodes,\n ...incomingWidget.awardEmoji.nodes,\n ],\n },\n };\n }\n\n // we want to concat next page of discussions to the existing ones\n if (incomingWidget?.type === WIDGET_TYPE_NOTES && context.variables.after) {\n // concatPagination won't work because we were placing new widget here so we have to do this manually\n return {\n ...incomingWidget,\n discussions: {\n ...incomingWidget.discussions,\n nodes: [\n ...existingWidget.discussions.nodes,\n ...incomingWidget.discussions.nodes,\n ],\n },\n };\n }\n\n // we want to concat next page of children work items within Hierarchy widget to the existing ones\n if (\n incomingWidget?.type === WIDGET_TYPE_HIERARCHY &&\n context.variables.endCursor &&\n incomingWidget.children?.nodes\n ) {\n // concatPagination won't work because we were placing new widget here so we have to do this manually\n return {\n ...incomingWidget,\n children: {\n ...incomingWidget.children,\n nodes: [...existingWidget.children.nodes, ...incomingWidget.children.nodes],\n },\n };\n }\n\n // Prevent cache being overwritten when opening a design\n if (incomingWidget?.type === WIDGET_TYPE_DESIGNS && context.variables.filenames) {\n return existingWidget;\n }\n\n return { ...existingWidget, ...incomingWidget };\n });\n },\n },\n },\n },\n MemberInterfaceConnection: {\n fields: {\n nodes: concatPagination(),\n },\n },\n Group: {\n fields: {\n projects: {\n keyArgs: ['includeSubgroups', 'search'],\n },\n descendantGroups: {\n keyArgs: ['includeSubgroups', 'search'],\n },\n },\n },\n ProjectConnection: {\n fields: {\n nodes: concatPagination(),\n },\n },\n GroupConnection: {\n fields: {\n nodes: concatPagination(),\n },\n },\n MergeRequestApprovalState: {\n merge: true,\n },\n WorkItemType: {\n fields: {\n widgetDefinitions: {\n merge(existing = [], incoming) {\n return [...existing, ...incoming];\n },\n },\n },\n },\n },\n },\n};\n\nexport const resolvers = {\n Mutation: {\n updateIssueState: (_, { issueType = undefined, isDirty = false }, { cache }) => {\n const sourceData = cache.readQuery({ query: getIssueStateQuery });\n const data = produce(sourceData, (draftData) => {\n draftData.issueState = { issueType, isDirty };\n });\n cache.writeQuery({ query: getIssueStateQuery, data });\n },\n setActiveBoardItem(_, { boardItem, listId }, { cache }) {\n cache.writeQuery({\n query: activeBoardItemQuery,\n data: { activeBoardItem: { ...boardItem, listId } },\n });\n return { ...boardItem, listId };\n },\n setSelectedBoardItems(_, { itemId }, { cache }) {\n const sourceData = cache.readQuery({ query: selectedBoardItemsQuery });\n cache.writeQuery({\n query: selectedBoardItemsQuery,\n data: { selectedBoardItems: [...sourceData.selectedBoardItems, itemId] },\n });\n return [...sourceData.selectedBoardItems, itemId];\n },\n unsetSelectedBoardItems(_, _variables, { cache }) {\n cache.writeQuery({\n query: selectedBoardItemsQuery,\n data: { selectedBoardItems: [] },\n });\n return [];\n },\n setError(_, { error }, { cache }) {\n cache.writeQuery({\n query: errorQuery,\n data: { boardsAppError: error },\n });\n return error;\n },\n clientToggleListCollapsed(_, { list = {}, collapsed = false }) {\n return {\n list: {\n ...list,\n collapsed,\n },\n };\n },\n clientToggleEpicListCollapsed(_, { list = {}, collapsed = false }) {\n return {\n list: {\n ...list,\n collapsed,\n },\n };\n },\n setIsShowingLabels(_, { isShowingLabels }, { cache }) {\n cache.writeQuery({\n query: isShowingLabelsQuery,\n data: { isShowingLabels },\n });\n return isShowingLabels;\n },\n updateNewWorkItem(_, { input }, { cache }) {\n updateNewWorkItemCache(input, cache);\n },\n localWorkItemBulkUpdate(_, { input }) {\n return workItemBulkEdit(input);\n },\n toggleHierarchyTreeChild(_, { id, isExpanded = false }, { cache }) {\n cache.writeQuery({\n query: isExpandedHierarchyTreeChildQuery,\n variables: { id },\n data: {\n isExpandedHierarchyTreeChild: {\n id,\n isExpanded,\n __typename: 'LocalWorkItemChildIsExpanded',\n },\n },\n });\n },\n updateActiveDesignDiscussion: (_, { id = null, source }, { cache }) => {\n const data = {\n activeDesignDiscussion: {\n __typename: 'ActiveDesignDiscussion',\n id,\n source,\n },\n };\n\n cache.writeQuery({ query: activeDiscussionQuery, data });\n },\n },\n};\n\nexport const defaultClient = createDefaultClient(resolvers, config);\n\nexport const apolloProvider = new VueApollo({\n defaultClient,\n});\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"02f4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar defined = __webpack_require__(\"be13\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n\n/***/ \"0390\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(\"02f4\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"07e3\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"0fc9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"3a38\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"1654\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $at = __webpack_require__(\"71c1\")(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(\"30f1\")(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n\n/***/ \"1691\":\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"1af6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = __webpack_require__(\"63b6\");\n\n$export($export.S, 'Array', { isArray: __webpack_require__(\"9003\") });\n\n\n/***/ }),\n\n/***/ \"1bc3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"f772\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"1ec9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"f772\");\nvar document = __webpack_require__(\"e53d\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"20fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $defineProperty = __webpack_require__(\"d9f6\");\nvar createDesc = __webpack_require__(\"aebd\");\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n/***/ }),\n\n/***/ \"214f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(\"b0c5\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar fails = __webpack_require__(\"79e5\");\nvar defined = __webpack_require__(\"be13\");\nvar wks = __webpack_require__(\"2b4c\");\nvar regexpExec = __webpack_require__(\"520a\");\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n\n\n/***/ }),\n\n/***/ \"230e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar document = __webpack_require__(\"7726\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"23c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"2d95\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"241e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"25eb\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"25eb\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"294c\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"2aba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar has = __webpack_require__(\"69a8\");\nvar SRC = __webpack_require__(\"ca5a\")('src');\nvar $toString = __webpack_require__(\"fa5b\");\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(\"8378\").inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"2b4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"5537\")('wks');\nvar uid = __webpack_require__(\"ca5a\");\nvar Symbol = __webpack_require__(\"7726\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"2d95\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"2fdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(\"5ca1\");\nvar context = __webpack_require__(\"d2c8\");\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"30f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"b8e3\");\nvar $export = __webpack_require__(\"63b6\");\nvar redefine = __webpack_require__(\"9138\");\nvar hide = __webpack_require__(\"35e8\");\nvar Iterators = __webpack_require__(\"481b\");\nvar $iterCreate = __webpack_require__(\"8f60\");\nvar setToStringTag = __webpack_require__(\"45f2\");\nvar getPrototypeOf = __webpack_require__(\"53e2\");\nvar ITERATOR = __webpack_require__(\"5168\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"32a6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"241e\");\nvar $keys = __webpack_require__(\"c3a1\");\n\n__webpack_require__(\"ce7e\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n\n/***/ \"32e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar createDesc = __webpack_require__(\"4630\");\nmodule.exports = __webpack_require__(\"9e1e\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"32fc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"e53d\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"335c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"6b4c\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"355d\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"35e8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"d9f6\");\nvar createDesc = __webpack_require__(\"aebd\");\nmodule.exports = __webpack_require__(\"8e60\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"36c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"335c\");\nvar defined = __webpack_require__(\"25eb\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"3702\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// check on default Array iterator\nvar Iterators = __webpack_require__(\"481b\");\nvar ITERATOR = __webpack_require__(\"5168\")('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n/***/ }),\n\n/***/ \"3a38\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"40c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"6b4c\");\nvar TAG = __webpack_require__(\"5168\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"4588\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"45f2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"d9f6\").f;\nvar has = __webpack_require__(\"07e3\");\nvar TAG = __webpack_require__(\"5168\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"4630\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"469f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"6c1c\");\n__webpack_require__(\"1654\");\nmodule.exports = __webpack_require__(\"7d7b\");\n\n\n/***/ }),\n\n/***/ \"481b\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"4aa6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"dc62\");\n\n/***/ }),\n\n/***/ \"4bf8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"4ee1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ITERATOR = __webpack_require__(\"5168\")('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n/***/ }),\n\n/***/ \"50ed\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"5147\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n\n\n/***/ }),\n\n/***/ \"5168\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"dbdb\")('wks');\nvar uid = __webpack_require__(\"62a0\");\nvar Symbol = __webpack_require__(\"e53d\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"5176\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"51b6\");\n\n/***/ }),\n\n/***/ \"51b6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"a3c3\");\nmodule.exports = __webpack_require__(\"584a\").Object.assign;\n\n\n/***/ }),\n\n/***/ \"520a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar regexpFlags = __webpack_require__(\"0bfb\");\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"53e2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"07e3\");\nvar toObject = __webpack_require__(\"241e\");\nvar IE_PROTO = __webpack_require__(\"5559\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"549b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ctx = __webpack_require__(\"d864\");\nvar $export = __webpack_require__(\"63b6\");\nvar toObject = __webpack_require__(\"241e\");\nvar call = __webpack_require__(\"b0dc\");\nvar isArrayIter = __webpack_require__(\"3702\");\nvar toLength = __webpack_require__(\"b447\");\nvar createProperty = __webpack_require__(\"20fd\");\nvar getIterFn = __webpack_require__(\"7cd6\");\n\n$export($export.S + $export.F * !__webpack_require__(\"4ee1\")(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n/***/ }),\n\n/***/ \"54a1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"6c1c\");\n__webpack_require__(\"1654\");\nmodule.exports = __webpack_require__(\"95d5\");\n\n\n/***/ }),\n\n/***/ \"5537\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"8378\");\nvar global = __webpack_require__(\"7726\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(\"2d00\") ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"5559\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"dbdb\")('keys');\nvar uid = __webpack_require__(\"62a0\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"584a\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"5b4e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(\"36c3\");\nvar toLength = __webpack_require__(\"b447\");\nvar toAbsoluteIndex = __webpack_require__(\"0fc9\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n\n/***/ \"5ca1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar core = __webpack_require__(\"8378\");\nvar hide = __webpack_require__(\"32e9\");\nvar redefine = __webpack_require__(\"2aba\");\nvar ctx = __webpack_require__(\"9b43\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"5d73\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"469f\");\n\n/***/ }),\n\n/***/ \"5f1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar classof = __webpack_require__(\"23c6\");\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n\n\n/***/ }),\n\n/***/ \"626a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"2d95\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"62a0\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"63b6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"e53d\");\nvar core = __webpack_require__(\"584a\");\nvar ctx = __webpack_require__(\"d864\");\nvar hide = __webpack_require__(\"35e8\");\nvar has = __webpack_require__(\"07e3\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"6762\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(\"5ca1\");\nvar $includes = __webpack_require__(\"c366\")(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n__webpack_require__(\"9c6c\")('includes');\n\n\n/***/ }),\n\n/***/ \"6821\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"626a\");\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"69a8\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"6a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"d3f4\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"6b4c\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"6c1c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"c367\");\nvar global = __webpack_require__(\"e53d\");\nvar hide = __webpack_require__(\"35e8\");\nvar Iterators = __webpack_require__(\"481b\");\nvar TO_STRING_TAG = __webpack_require__(\"5168\")('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n/***/ }),\n\n/***/ \"71c1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"3a38\");\nvar defined = __webpack_require__(\"25eb\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n\n/***/ \"7726\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"774e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"d2d5\");\n\n/***/ }),\n\n/***/ \"77f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"794b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"8e60\") && !__webpack_require__(\"294c\")(function () {\n return Object.defineProperty(__webpack_require__(\"1ec9\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"79aa\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"79e5\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"7cd6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"40c3\");\nvar ITERATOR = __webpack_require__(\"5168\")('iterator');\nvar Iterators = __webpack_require__(\"481b\");\nmodule.exports = __webpack_require__(\"584a\").getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n\n/***/ \"7d7b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"e4ae\");\nvar get = __webpack_require__(\"7cd6\");\nmodule.exports = __webpack_require__(\"584a\").getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n\n\n/***/ }),\n\n/***/ \"7e90\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"d9f6\");\nvar anObject = __webpack_require__(\"e4ae\");\nvar getKeys = __webpack_require__(\"c3a1\");\n\nmodule.exports = __webpack_require__(\"8e60\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"8436\":\n/***/ (function(module, exports) {\n\nmodule.exports = function () { /* empty */ };\n\n\n/***/ }),\n\n/***/ \"86cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"9e1e\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"8aae\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"32a6\");\nmodule.exports = __webpack_require__(\"584a\").Object.keys;\n\n\n/***/ }),\n\n/***/ \"8e60\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"294c\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"8f60\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"a159\");\nvar descriptor = __webpack_require__(\"aebd\");\nvar setToStringTag = __webpack_require__(\"45f2\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"35e8\")(IteratorPrototype, __webpack_require__(\"5168\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"9003\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.2 IsArray(argument)\nvar cof = __webpack_require__(\"6b4c\");\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n\n/***/ }),\n\n/***/ \"9138\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"35e8\");\n\n\n/***/ }),\n\n/***/ \"9306\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(\"c3a1\");\nvar gOPS = __webpack_require__(\"9aa9\");\nvar pIE = __webpack_require__(\"355d\");\nvar toObject = __webpack_require__(\"241e\");\nvar IObject = __webpack_require__(\"335c\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(\"294c\")(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"9427\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(\"63b6\");\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: __webpack_require__(\"a159\") });\n\n\n/***/ }),\n\n/***/ \"95d5\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"40c3\");\nvar ITERATOR = __webpack_require__(\"5168\")('iterator');\nvar Iterators = __webpack_require__(\"481b\");\nmodule.exports = __webpack_require__(\"584a\").isIterable = function (it) {\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n // eslint-disable-next-line no-prototype-builtins\n || Iterators.hasOwnProperty(classof(O));\n};\n\n\n/***/ }),\n\n/***/ \"9aa9\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"9b43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"d8e8\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"9c6c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(\"2b4c\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(\"32e9\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"9def\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"4588\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"9e1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"a159\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"e4ae\");\nvar dPs = __webpack_require__(\"7e90\");\nvar enumBugKeys = __webpack_require__(\"1691\");\nvar IE_PROTO = __webpack_require__(\"5559\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(\"1ec9\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(\"32fc\").appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"a352\":\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"sortablejs\");\n\n/***/ }),\n\n/***/ \"a3c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(\"63b6\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(\"9306\") });\n\n\n/***/ }),\n\n/***/ \"a481\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar toLength = __webpack_require__(\"9def\");\nvar toInteger = __webpack_require__(\"4588\");\nvar advanceStringIndex = __webpack_require__(\"0390\");\nvar regExpExec = __webpack_require__(\"5f1b\");\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(\"214f\")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"a4bb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"8aae\");\n\n/***/ }),\n\n/***/ \"a745\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"f410\");\n\n/***/ }),\n\n/***/ \"aae3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(\"d3f4\");\nvar cof = __webpack_require__(\"2d95\");\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"aebd\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"b0c5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpExec = __webpack_require__(\"520a\");\n__webpack_require__(\"5ca1\")({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n\n\n/***/ }),\n\n/***/ \"b0dc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// call something on iterator step with safe closing on error\nvar anObject = __webpack_require__(\"e4ae\");\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n/***/ }),\n\n/***/ \"b447\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"3a38\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"b8e3\":\n/***/ (function(module, exports) {\n\nmodule.exports = true;\n\n\n/***/ }),\n\n/***/ \"be13\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"c366\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(\"6821\");\nvar toLength = __webpack_require__(\"9def\");\nvar toAbsoluteIndex = __webpack_require__(\"77f1\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n\n/***/ \"c367\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"8436\");\nvar step = __webpack_require__(\"50ed\");\nvar Iterators = __webpack_require__(\"481b\");\nvar toIObject = __webpack_require__(\"36c3\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(\"30f1\")(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"c3a1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"e6f3\");\nvar enumBugKeys = __webpack_require__(\"1691\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"c649\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return insertNodeAt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return camelize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return console; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return removeNode; });\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var F_source_vuedraggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"4aa6\");\n/* harmony import */ var F_source_vuedraggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(F_source_vuedraggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\nfunction getConsole() {\n if (typeof window !== \"undefined\") {\n return window.console;\n }\n\n return global.console;\n}\n\nvar console = getConsole();\n\nfunction cached(fn) {\n var cache = F_source_vuedraggable_node_modules_babel_runtime_corejs2_core_js_object_create__WEBPACK_IMPORTED_MODULE_1___default()(null);\n\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n\nvar regex = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(regex, function (_, c) {\n return c ? c.toUpperCase() : \"\";\n });\n});\n\nfunction removeNode(node) {\n if (node.parentElement !== null) {\n node.parentElement.removeChild(node);\n }\n}\n\nfunction insertNodeAt(fatherNode, node, position) {\n var refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n fatherNode.insertBefore(node, refNode);\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"c69a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"9e1e\") && !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty(__webpack_require__(\"230e\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"c8ba\":\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"c8bb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"54a1\");\n\n/***/ }),\n\n/***/ \"ca5a\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"cb7c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"ce7e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"63b6\");\nvar core = __webpack_require__(\"584a\");\nvar fails = __webpack_require__(\"294c\");\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"d2c8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = __webpack_require__(\"aae3\");\nvar defined = __webpack_require__(\"be13\");\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n\n/***/ }),\n\n/***/ \"d2d5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"1654\");\n__webpack_require__(\"549b\");\nmodule.exports = __webpack_require__(\"584a\").Array.from;\n\n\n/***/ }),\n\n/***/ \"d3f4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"d864\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"79aa\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"d8e8\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"d9f6\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"e4ae\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"794b\");\nvar toPrimitive = __webpack_require__(\"1bc3\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"8e60\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"dbdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"584a\");\nvar global = __webpack_require__(\"e53d\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(\"b8e3\") ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"dc62\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"9427\");\nvar $Object = __webpack_require__(\"584a\").Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n\n\n/***/ }),\n\n/***/ \"e4ae\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"f772\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"e53d\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"e6f3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"07e3\");\nvar toIObject = __webpack_require__(\"36c3\");\nvar arrayIndexOf = __webpack_require__(\"5b4e\")(false);\nvar IE_PROTO = __webpack_require__(\"5559\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"f410\":\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(\"1af6\");\nmodule.exports = __webpack_require__(\"584a\").Array.isArray;\n\n\n/***/ }),\n\n/***/ \"f559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\nvar $export = __webpack_require__(\"5ca1\");\nvar toLength = __webpack_require__(\"9def\");\nvar context = __webpack_require__(\"d2c8\");\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ \"f772\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"fa5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"5537\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var setPublicPath_i\n if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime-corejs2/core-js/object/assign.js\nvar object_assign = __webpack_require__(\"5176\");\nvar assign_default = /*#__PURE__*/__webpack_require__.n(object_assign);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.starts-with.js\nvar es6_string_starts_with = __webpack_require__(\"f559\");\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime-corejs2/core-js/object/keys.js\nvar keys = __webpack_require__(\"a4bb\");\nvar keys_default = /*#__PURE__*/__webpack_require__.n(keys);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime-corejs2/core-js/array/is-array.js\nvar is_array = __webpack_require__(\"a745\");\nvar is_array_default = /*#__PURE__*/__webpack_require__.n(is_array);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/arrayWithHoles.js\n\nfunction _arrayWithHoles(arr) {\n if (is_array_default()(arr)) return arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime-corejs2/core-js/get-iterator.js\nvar get_iterator = __webpack_require__(\"5d73\");\nvar get_iterator_default = /*#__PURE__*/__webpack_require__.n(get_iterator);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/iterableToArrayLimit.js\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = get_iterator_default()(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray.js\n\n\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__(\"6762\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__(\"2fdb\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n if (is_array_default()(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime-corejs2/core-js/array/from.js\nvar from = __webpack_require__(\"774e\");\nvar from_default = /*#__PURE__*/__webpack_require__.n(from);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime-corejs2/core-js/is-iterable.js\nvar is_iterable = __webpack_require__(\"c8bb\");\nvar is_iterable_default = /*#__PURE__*/__webpack_require__.n(is_iterable);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/iterableToArray.js\n\n\nfunction _iterableToArray(iter) {\n if (is_iterable_default()(Object(iter)) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return from_default()(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray.js\n\n\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_ = __webpack_require__(\"a352\");\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_);\n\n// EXTERNAL MODULE: ./src/util/helper.js\nvar helper = __webpack_require__(\"c649\");\n\n// CONCATENATED MODULE: ./src/vuedraggable.js\n\n\n\n\n\n\n\n\n\n\nfunction buildAttribute(object, propName, value) {\n if (value === undefined) {\n return object;\n }\n\n object = object || {};\n object[propName] = value;\n return object;\n}\n\nfunction computeVmIndex(vnodes, element) {\n return vnodes.map(function (elt) {\n return elt.elm;\n }).indexOf(element);\n}\n\nfunction _computeIndexes(slots, children, isTransition, footerOffset) {\n if (!slots) {\n return [];\n }\n\n var elmFromNodes = slots.map(function (elt) {\n return elt.elm;\n });\n var footerIndex = children.length - footerOffset;\n\n var rawIndexes = _toConsumableArray(children).map(function (elt, idx) {\n return idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt);\n });\n\n return isTransition ? rawIndexes.filter(function (ind) {\n return ind !== -1;\n }) : rawIndexes;\n}\n\nfunction emit(evtName, evtData) {\n var _this = this;\n\n this.$nextTick(function () {\n return _this.$emit(evtName.toLowerCase(), evtData);\n });\n}\n\nfunction delegateAndEmit(evtName) {\n var _this2 = this;\n\n return function (evtData) {\n if (_this2.realList !== null) {\n _this2[\"onDrag\" + evtName](evtData);\n }\n\n emit.call(_this2, evtName, evtData);\n };\n}\n\nfunction isTransitionName(name) {\n return [\"transition-group\", \"TransitionGroup\"].includes(name);\n}\n\nfunction vuedraggable_isTransition(slots) {\n if (!slots || slots.length !== 1) {\n return false;\n }\n\n var _slots = _slicedToArray(slots, 1),\n componentOptions = _slots[0].componentOptions;\n\n if (!componentOptions) {\n return false;\n }\n\n return isTransitionName(componentOptions.tag);\n}\n\nfunction getSlot(slot, scopedSlot, key) {\n return slot[key] || (scopedSlot[key] ? scopedSlot[key]() : undefined);\n}\n\nfunction computeChildrenAndOffsets(children, slot, scopedSlot) {\n var headerOffset = 0;\n var footerOffset = 0;\n var header = getSlot(slot, scopedSlot, \"header\");\n\n if (header) {\n headerOffset = header.length;\n children = children ? [].concat(_toConsumableArray(header), _toConsumableArray(children)) : _toConsumableArray(header);\n }\n\n var footer = getSlot(slot, scopedSlot, \"footer\");\n\n if (footer) {\n footerOffset = footer.length;\n children = children ? [].concat(_toConsumableArray(children), _toConsumableArray(footer)) : _toConsumableArray(footer);\n }\n\n return {\n children: children,\n headerOffset: headerOffset,\n footerOffset: footerOffset\n };\n}\n\nfunction getComponentAttributes($attrs, componentData) {\n var attributes = null;\n\n var update = function update(name, value) {\n attributes = buildAttribute(attributes, name, value);\n };\n\n var attrs = keys_default()($attrs).filter(function (key) {\n return key === \"id\" || key.startsWith(\"data-\");\n }).reduce(function (res, key) {\n res[key] = $attrs[key];\n return res;\n }, {});\n\n update(\"attrs\", attrs);\n\n if (!componentData) {\n return attributes;\n }\n\n var on = componentData.on,\n props = componentData.props,\n componentDataAttrs = componentData.attrs;\n update(\"on\", on);\n update(\"props\", props);\n\n assign_default()(attributes.attrs, componentDataAttrs);\n\n return attributes;\n}\n\nvar eventsListened = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\nvar eventsToEmit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\nvar readonlyProperties = [\"Move\"].concat(eventsListened, eventsToEmit).map(function (evt) {\n return \"on\" + evt;\n});\nvar draggingElement = null;\nvar vuedraggable_props = {\n options: Object,\n list: {\n type: Array,\n required: false,\n default: null\n },\n value: {\n type: Array,\n required: false,\n default: null\n },\n noTransitionOnDrag: {\n type: Boolean,\n default: false\n },\n clone: {\n type: Function,\n default: function _default(original) {\n return original;\n }\n },\n element: {\n type: String,\n default: \"div\"\n },\n tag: {\n type: String,\n default: null\n },\n move: {\n type: Function,\n default: null\n },\n componentData: {\n type: Object,\n required: false,\n default: null\n }\n};\nvar draggableComponent = {\n name: \"draggable\",\n inheritAttrs: false,\n props: vuedraggable_props,\n data: function data() {\n return {\n transitionMode: false,\n noneFunctionalComponentMode: false\n };\n },\n render: function render(h) {\n var slots = this.$slots.default;\n this.transitionMode = vuedraggable_isTransition(slots);\n\n var _computeChildrenAndOf = computeChildrenAndOffsets(slots, this.$slots, this.$scopedSlots),\n children = _computeChildrenAndOf.children,\n headerOffset = _computeChildrenAndOf.headerOffset,\n footerOffset = _computeChildrenAndOf.footerOffset;\n\n this.headerOffset = headerOffset;\n this.footerOffset = footerOffset;\n var attributes = getComponentAttributes(this.$attrs, this.componentData);\n return h(this.getTag(), attributes, children);\n },\n created: function created() {\n if (this.list !== null && this.value !== null) {\n helper[\"b\" /* console */].error(\"Value and list props are mutually exclusive! Please set one or another.\");\n }\n\n if (this.element !== \"div\") {\n helper[\"b\" /* console */].warn(\"Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props\");\n }\n\n if (this.options !== undefined) {\n helper[\"b\" /* console */].warn(\"Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props\");\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.noneFunctionalComponentMode = this.getTag().toLowerCase() !== this.$el.nodeName.toLowerCase() && !this.getIsFunctional();\n\n if (this.noneFunctionalComponentMode && this.transitionMode) {\n throw new Error(\"Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: \".concat(this.getTag()));\n }\n\n var optionsAdded = {};\n eventsListened.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = delegateAndEmit.call(_this3, elt);\n });\n eventsToEmit.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = emit.bind(_this3, elt);\n });\n\n var attributes = keys_default()(this.$attrs).reduce(function (res, key) {\n res[Object(helper[\"a\" /* camelize */])(key)] = _this3.$attrs[key];\n return res;\n }, {});\n\n var options = assign_default()({}, this.options, attributes, optionsAdded, {\n onMove: function onMove(evt, originalEvent) {\n return _this3.onDragMove(evt, originalEvent);\n }\n });\n\n !(\"draggable\" in options) && (options.draggable = \">*\");\n this._sortable = new external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default.a(this.rootContainer, options);\n this.computeIndexes();\n },\n beforeDestroy: function beforeDestroy() {\n if (this._sortable !== undefined) this._sortable.destroy();\n },\n computed: {\n rootContainer: function rootContainer() {\n return this.transitionMode ? this.$el.children[0] : this.$el;\n },\n realList: function realList() {\n return this.list ? this.list : this.value;\n }\n },\n watch: {\n options: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n $attrs: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n realList: function realList() {\n this.computeIndexes();\n }\n },\n methods: {\n getIsFunctional: function getIsFunctional() {\n var fnOptions = this._vnode.fnOptions;\n return fnOptions && fnOptions.functional;\n },\n getTag: function getTag() {\n return this.tag || this.element;\n },\n updateOptions: function updateOptions(newOptionValue) {\n for (var property in newOptionValue) {\n var value = Object(helper[\"a\" /* camelize */])(property);\n\n if (readonlyProperties.indexOf(value) === -1) {\n this._sortable.option(value, newOptionValue[property]);\n }\n }\n },\n getChildrenNodes: function getChildrenNodes() {\n if (this.noneFunctionalComponentMode) {\n return this.$children[0].$slots.default;\n }\n\n var rawNodes = this.$slots.default;\n return this.transitionMode ? rawNodes[0].child.$slots.default : rawNodes;\n },\n computeIndexes: function computeIndexes() {\n var _this4 = this;\n\n this.$nextTick(function () {\n _this4.visibleIndexes = _computeIndexes(_this4.getChildrenNodes(), _this4.rootContainer.children, _this4.transitionMode, _this4.footerOffset);\n });\n },\n getUnderlyingVm: function getUnderlyingVm(htmlElt) {\n var index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\n\n if (index === -1) {\n //Edge case during move callback: related element might be\n //an element different from collection\n return null;\n }\n\n var element = this.realList[index];\n return {\n index: index,\n element: element\n };\n },\n getUnderlyingPotencialDraggableComponent: function getUnderlyingPotencialDraggableComponent(_ref) {\n var vue = _ref.__vue__;\n\n if (!vue || !vue.$options || !isTransitionName(vue.$options._componentTag)) {\n if (!(\"realList\" in vue) && vue.$children.length === 1 && \"realList\" in vue.$children[0]) return vue.$children[0];\n return vue;\n }\n\n return vue.$parent;\n },\n emitChanges: function emitChanges(evt) {\n var _this5 = this;\n\n this.$nextTick(function () {\n _this5.$emit(\"change\", evt);\n });\n },\n alterList: function alterList(onList) {\n if (this.list) {\n onList(this.list);\n return;\n }\n\n var newList = _toConsumableArray(this.value);\n\n onList(newList);\n this.$emit(\"input\", newList);\n },\n spliceList: function spliceList() {\n var _arguments = arguments;\n\n var spliceList = function spliceList(list) {\n return list.splice.apply(list, _toConsumableArray(_arguments));\n };\n\n this.alterList(spliceList);\n },\n updatePosition: function updatePosition(oldIndex, newIndex) {\n var updatePosition = function updatePosition(list) {\n return list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\n };\n\n this.alterList(updatePosition);\n },\n getRelatedContextFromMoveEvent: function getRelatedContextFromMoveEvent(_ref2) {\n var to = _ref2.to,\n related = _ref2.related;\n var component = this.getUnderlyingPotencialDraggableComponent(to);\n\n if (!component) {\n return {\n component: component\n };\n }\n\n var list = component.realList;\n var context = {\n list: list,\n component: component\n };\n\n if (to !== related && list && component.getUnderlyingVm) {\n var destination = component.getUnderlyingVm(related);\n\n if (destination) {\n return assign_default()(destination, context);\n }\n }\n\n return context;\n },\n getVmIndex: function getVmIndex(domIndex) {\n var indexes = this.visibleIndexes;\n var numberIndexes = indexes.length;\n return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\n },\n getComponent: function getComponent() {\n return this.$slots.default[0].componentInstance;\n },\n resetTransitionData: function resetTransitionData(index) {\n if (!this.noTransitionOnDrag || !this.transitionMode) {\n return;\n }\n\n var nodes = this.getChildrenNodes();\n nodes[index].data = null;\n var transitionContainer = this.getComponent();\n transitionContainer.children = [];\n transitionContainer.kept = undefined;\n },\n onDragStart: function onDragStart(evt) {\n this.context = this.getUnderlyingVm(evt.item);\n evt.item._underlying_vm_ = this.clone(this.context.element);\n draggingElement = evt.item;\n },\n onDragAdd: function onDragAdd(evt) {\n var element = evt.item._underlying_vm_;\n\n if (element === undefined) {\n return;\n }\n\n Object(helper[\"d\" /* removeNode */])(evt.item);\n var newIndex = this.getVmIndex(evt.newIndex);\n this.spliceList(newIndex, 0, element);\n this.computeIndexes();\n var added = {\n element: element,\n newIndex: newIndex\n };\n this.emitChanges({\n added: added\n });\n },\n onDragRemove: function onDragRemove(evt) {\n Object(helper[\"c\" /* insertNodeAt */])(this.rootContainer, evt.item, evt.oldIndex);\n\n if (evt.pullMode === \"clone\") {\n Object(helper[\"d\" /* removeNode */])(evt.clone);\n return;\n }\n\n var oldIndex = this.context.index;\n this.spliceList(oldIndex, 1);\n var removed = {\n element: this.context.element,\n oldIndex: oldIndex\n };\n this.resetTransitionData(oldIndex);\n this.emitChanges({\n removed: removed\n });\n },\n onDragUpdate: function onDragUpdate(evt) {\n Object(helper[\"d\" /* removeNode */])(evt.item);\n Object(helper[\"c\" /* insertNodeAt */])(evt.from, evt.item, evt.oldIndex);\n var oldIndex = this.context.index;\n var newIndex = this.getVmIndex(evt.newIndex);\n this.updatePosition(oldIndex, newIndex);\n var moved = {\n element: this.context.element,\n oldIndex: oldIndex,\n newIndex: newIndex\n };\n this.emitChanges({\n moved: moved\n });\n },\n updateProperty: function updateProperty(evt, propertyName) {\n evt.hasOwnProperty(propertyName) && (evt[propertyName] += this.headerOffset);\n },\n computeFutureIndex: function computeFutureIndex(relatedContext, evt) {\n if (!relatedContext.element) {\n return 0;\n }\n\n var domChildren = _toConsumableArray(evt.to.children).filter(function (el) {\n return el.style[\"display\"] !== \"none\";\n });\n\n var currentDOMIndex = domChildren.indexOf(evt.related);\n var currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\n var draggedInList = domChildren.indexOf(draggingElement) !== -1;\n return draggedInList || !evt.willInsertAfter ? currentIndex : currentIndex + 1;\n },\n onDragMove: function onDragMove(evt, originalEvent) {\n var onMove = this.move;\n\n if (!onMove || !this.realList) {\n return true;\n }\n\n var relatedContext = this.getRelatedContextFromMoveEvent(evt);\n var draggedContext = this.context;\n var futureIndex = this.computeFutureIndex(relatedContext, evt);\n\n assign_default()(draggedContext, {\n futureIndex: futureIndex\n });\n\n var sendEvt = assign_default()({}, evt, {\n relatedContext: relatedContext,\n draggedContext: draggedContext\n });\n\n return onMove(sendEvt, originalEvent);\n },\n onDragEnd: function onDragEnd() {\n this.computeIndexes();\n draggingElement = null;\n }\n }\n};\n\nif (typeof window !== \"undefined\" && \"Vue\" in window) {\n window.Vue.component(\"draggable\", draggableComponent);\n}\n\n/* harmony default export */ var vuedraggable = (draggableComponent);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (vuedraggable);\n\n\n\n/***/ })\n\n/******/ })[\"default\"];\n//# sourceMappingURL=vuedraggable.common.js.map","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nmodule.exports = kebabCase;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateEpicTitle\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateEpicInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"updateIssuableTitle\"},\"name\":{\"kind\":\"Name\",\"value\":\"updateEpic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":159}};\n doc.loc.source = {\"body\":\"mutation updateEpicTitle($input: UpdateEpicInput!) {\\n updateIssuableTitle: updateEpic(input: $input) {\\n epic {\\n id\\n title\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateEpicTitle\"] = oneQuery(doc, \"updateEpicTitle\");\n \n","import { Mousetrap } from '~/lib/mousetrap';\nimport 'mousetrap/plugins/pause/mousetrap-pause';\n\nconst shorcutsDisabledKey = 'shortcutsDisabled';\n\nexport const shouldDisableShortcuts = () => !window.gon.keyboard_shortcuts_enabled;\n\nexport function enableShortcuts() {\n localStorage.setItem(shorcutsDisabledKey, false);\n Mousetrap.unpause();\n}\n\nexport function disableShortcuts() {\n localStorage.setItem(shorcutsDisabledKey, true);\n Mousetrap.pause();\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"gl-flex gl-gap-3\"},[(_vm.itemsBlockedBy.length > 0)?[_c('span',{staticClass:\"gl-cursor-pointer gl-text-sm gl-text-subtle\",attrs:{\"id\":_vm.itemsBlockedByIconId,\"aria-label\":_vm.blockedByLabel,\"tabIndex\":\"0\",\"data-testid\":\"relationship-blocked-by-icon\"},on:{\"mouseenter\":_vm.handleMouseEnter}},[_c('gl-icon',{attrs:{\"name\":\"entity-blocked\",\"variant\":\"danger\"}}),_vm._v(\"\\n \"+_vm._s(_vm.itemsBlockedBy.length)+\"\\n \")],1),_vm._v(\" \"),_c('work-item-relationship-popover',{attrs:{\"target\":_vm.itemsBlockedByIconId,\"title\":_vm.s__('WorkItem|Blocked by'),\"loading\":_vm.isLoading,\"linked-work-items\":_vm.childBlockedByItems,\"work-item-full-path\":_vm.workItemFullPath,\"work-item-web-url\":_vm.workItemWebUrl,\"work-item-type\":_vm.workItemType}})]:_vm._e(),_vm._v(\" \"),(_vm.itemsBlocks.length > 0)?[_c('span',{staticClass:\"gl-cursor-pointer gl-text-sm gl-text-subtle\",attrs:{\"id\":_vm.itemsBlocksIconId,\"aria-label\":_vm.blocksLabel,\"tabIndex\":\"0\",\"data-testid\":\"relationship-blocks-icon\"},on:{\"mouseenter\":_vm.handleMouseEnter}},[_c('gl-icon',{attrs:{\"name\":\"entity-blocking\",\"variant\":\"warning\"}}),_vm._v(\"\\n \"+_vm._s(_vm.itemsBlocks.length)+\"\\n \")],1),_vm._v(\" \"),_c('work-item-relationship-popover',{attrs:{\"target\":_vm.itemsBlocksIconId,\"title\":_vm.s__('WorkItem|Blocking'),\"loading\":_vm.isLoading,\"linked-work-items\":_vm.childBlocksItems,\"work-item-full-path\":_vm.workItemFullPath,\"work-item-web-url\":_vm.workItemWebUrl,\"work-item-type\":_vm.workItemType}})]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_relationship_popover_metadata.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_relationship_popover_metadata.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective, GlAvatarsInline, GlAvatar, GlAvatarLink } from '@gitlab/ui';\nimport ItemMilestone from '~/issuable/components/issue_milestone.vue';\nimport { s__, sprintf } from '~/locale';\nimport { WIDGET_TYPE_MILESTONE, WIDGET_TYPE_ASSIGNEES } from '~/work_items/constants';\nimport { findWidget } from '~/issues/list/utils';\nimport { getDisplayReference } from '../../utils';\n\nexport default {\n name: 'WorkItemRelationshipPopoverMetadata',\n components: {\n ItemMilestone,\n GlAvatar,\n GlAvatarLink,\n GlAvatarsInline,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n workItem: {\n type: Object,\n required: true,\n },\n workItemFullPath: {\n type: String,\n required: true,\n },\n },\n assigneesDisplayLimit: 3,\n computed: {\n workItemAssignees() {\n return findWidget(WIDGET_TYPE_ASSIGNEES, this.workItem)?.assignees?.nodes || [];\n },\n workItemMilestone() {\n return findWidget(WIDGET_TYPE_MILESTONE, this.workItem)?.milestone;\n },\n fullReference() {\n return getDisplayReference(this.workItemFullPath, this.workItem.reference);\n },\n directNamespaceReference() {\n return this.fullReference.split('/').slice(-1)[0];\n },\n assigneesCollapsedTooltip() {\n if (this.workItemAssignees.length > this.$options.assigneesDisplayLimit) {\n return sprintf(s__('WorkItem|%{count} more assignees'), {\n count: this.workItemAssignees.length - this.$options.assigneesDisplayLimit,\n });\n }\n return '';\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"shrink-0 gl-mt-1 gl-flex gl-w-fit gl-flex-wrap gl-items-center gl-gap-x-3 gl-gap-y-2 gl-text-sm gl-text-subtle\"\n >\n <span v-gl-tooltip :title=\"fullReference\">{{ directNamespaceReference }}</span>\n <slot name=\"weight-metadata\"></slot>\n <item-milestone\n v-if=\"workItemMilestone\"\n :milestone=\"workItemMilestone\"\n class=\"gl-flex gl-max-w-15 !gl-cursor-help gl-items-center gl-gap-2 gl-leading-normal !gl-no-underline\"\n />\n <slot name=\"additional-metadata\"></slot>\n <gl-avatars-inline\n v-if=\"workItemAssignees.length\"\n collapsed\n :avatars=\"workItemAssignees\"\n :max-visible=\"$options.assigneesDisplayLimit\"\n :avatar-size=\"16\"\n badge-tooltip-prop=\"name\"\n :badge-sr-only-text=\"assigneesCollapsedTooltip\"\n >\n <template #avatar=\"{ avatar }\">\n <gl-avatar-link v-gl-tooltip :href=\"avatar.webUrl\" :title=\"avatar.name\">\n <gl-avatar :alt=\"avatar.name\" :src=\"avatar.avatarUrl\" :size=\"16\" />\n </gl-avatar-link>\n </template>\n </gl-avatars-inline>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_relationship_popover_metadata.vue?vue&type=template&id=1111bb9c\"\nimport script from \"./work_item_relationship_popover_metadata.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_relationship_popover_metadata.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"shrink-0 gl-mt-1 gl-flex gl-w-fit gl-flex-wrap gl-items-center gl-gap-x-3 gl-gap-y-2 gl-text-sm gl-text-subtle\"},[_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"title\":_vm.fullReference}},[_vm._v(_vm._s(_vm.directNamespaceReference))]),_vm._v(\" \"),_vm._t(\"weight-metadata\"),_vm._v(\" \"),(_vm.workItemMilestone)?_c('item-milestone',{staticClass:\"gl-flex gl-max-w-15 !gl-cursor-help gl-items-center gl-gap-2 gl-leading-normal !gl-no-underline\",attrs:{\"milestone\":_vm.workItemMilestone}}):_vm._e(),_vm._v(\" \"),_vm._t(\"additional-metadata\"),_vm._v(\" \"),(_vm.workItemAssignees.length)?_c('gl-avatars-inline',{attrs:{\"collapsed\":\"\",\"avatars\":_vm.workItemAssignees,\"max-visible\":_vm.$options.assigneesDisplayLimit,\"avatar-size\":16,\"badge-tooltip-prop\":\"name\",\"badge-sr-only-text\":_vm.assigneesCollapsedTooltip},scopedSlots:_vm._u([{key:\"avatar\",fn:function({ avatar }){return [_c('gl-avatar-link',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"href\":avatar.webUrl,\"title\":avatar.name}},[_c('gl-avatar',{attrs:{\"alt\":avatar.name,\"src\":avatar.avatarUrl,\"size\":16}})],1)]}}],null,false,3379637811)}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_relationship_popover_metadata.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_relationship_popover_metadata.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective, GlIcon, GlTooltip } from '@gitlab/ui';\nimport {\n WIDGET_TYPE_WEIGHT,\n WIDGET_TYPE_ITERATION,\n WIDGET_TYPE_START_AND_DUE_DATE,\n} from '~/work_items/constants';\nimport { findWidget } from '~/issues/list/utils';\nimport { humanTimeframe, newDate } from '~/lib/utils/datetime_utility';\nimport { getIterationPeriod } from 'ee/iterations/utils';\nimport WorkItemRelationshipPopoverMetadata from '~/work_items/components/shared/work_item_relationship_popover_metadata.vue';\n\nexport default {\n name: 'WorkItemRelationshipPopoverMetadataEE',\n components: {\n GlIcon,\n GlTooltip,\n WorkItemRelationshipPopoverMetadata,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n workItem: {\n type: Object,\n required: true,\n },\n workItemFullPath: {\n type: String,\n required: true,\n },\n },\n computed: {\n workItemWeight() {\n return findWidget(WIDGET_TYPE_WEIGHT, this.workItem)?.weight;\n },\n workItemIteration() {\n return findWidget(WIDGET_TYPE_ITERATION, this.workItem)?.iteration;\n },\n workItemStartDate() {\n return findWidget(WIDGET_TYPE_START_AND_DUE_DATE, this.workItem)?.startDate;\n },\n workItemDueDate() {\n return findWidget(WIDGET_TYPE_START_AND_DUE_DATE, this.workItem)?.dueDate;\n },\n showDate() {\n return this.workItemStartDate || this.workItemDueDate;\n },\n workItemTimeframe() {\n return humanTimeframe(newDate(this.workItemStartDate), newDate(this.workItemDueDate));\n },\n iterationPeriod() {\n return getIterationPeriod(this.workItemIteration);\n },\n iterationTitle() {\n return this.workItemIteration?.title;\n },\n iterationCadenceTitle() {\n return this.workItemIteration?.iterationCadence?.title;\n },\n },\n};\n</script>\n\n<template>\n <work-item-relationship-popover-metadata\n :work-item=\"workItem\"\n :work-item-full-path=\"workItemFullPath\"\n >\n <template #weight-metadata>\n <span\n v-if=\"workItemWeight\"\n v-gl-tooltip\n :title=\"__('Weight')\"\n data-testid=\"item-weight\"\n class=\"gl-flex gl-cursor-help gl-items-center gl-gap-2\"\n >\n <gl-icon name=\"weight\" />\n <span data-testid=\"weight-value\">{{ workItemWeight }}</span>\n </span>\n </template>\n <template #additional-metadata>\n <div\n v-if=\"workItemIteration\"\n ref=\"iterationInfo\"\n data-testid=\"item-iteration\"\n class=\"gl-flex gl-cursor-help gl-items-center gl-gap-2\"\n >\n <gl-icon name=\"iteration\" />\n <span data-testid=\"iteration-period\">{{ iterationPeriod }}</span>\n <gl-tooltip :target=\"() => $refs.iterationInfo\">\n <div class=\"gl-flex gl-flex-col\">\n <span data-testid=\"iteration-title\" class=\"gl-font-bold\">{{ __('Iteration') }}</span>\n <span v-if=\"iterationCadenceTitle\" data-testid=\"iteration-cadence\">\n {{ iterationCadenceTitle }}\n </span>\n <span v-if=\"iterationPeriod\" data-testid=\"iteration-value\">\n {{ iterationPeriod }}\n </span>\n <span v-if=\"iterationTitle\" data-testid=\"iteration-name\">\n {{ iterationTitle }}\n </span>\n </div>\n </gl-tooltip>\n </div>\n <div\n v-if=\"showDate\"\n v-gl-tooltip\n data-testid=\"item-dates\"\n :title=\"__('Dates')\"\n class=\"gl-flex gl-min-w-10 gl-max-w-26 gl-cursor-help gl-flex-wrap gl-gap-2\"\n >\n <gl-icon name=\"calendar\" />\n <span data-testid=\"dates-value\">{{ workItemTimeframe }}</span>\n </div>\n </template>\n </work-item-relationship-popover-metadata>\n</template>\n","import { render, staticRenderFns } from \"./work_item_relationship_popover_metadata.vue?vue&type=template&id=f3d83020\"\nimport script from \"./work_item_relationship_popover_metadata.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_relationship_popover_metadata.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('work-item-relationship-popover-metadata',{attrs:{\"work-item\":_vm.workItem,\"work-item-full-path\":_vm.workItemFullPath},scopedSlots:_vm._u([{key:\"weight-metadata\",fn:function(){return [(_vm.workItemWeight)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-flex gl-cursor-help gl-items-center gl-gap-2\",attrs:{\"title\":_vm.__('Weight'),\"data-testid\":\"item-weight\"}},[_c('gl-icon',{attrs:{\"name\":\"weight\"}}),_vm._v(\" \"),_c('span',{attrs:{\"data-testid\":\"weight-value\"}},[_vm._v(_vm._s(_vm.workItemWeight))])],1):_vm._e()]},proxy:true},{key:\"additional-metadata\",fn:function(){return [(_vm.workItemIteration)?_c('div',{ref:\"iterationInfo\",staticClass:\"gl-flex gl-cursor-help gl-items-center gl-gap-2\",attrs:{\"data-testid\":\"item-iteration\"}},[_c('gl-icon',{attrs:{\"name\":\"iteration\"}}),_vm._v(\" \"),_c('span',{attrs:{\"data-testid\":\"iteration-period\"}},[_vm._v(_vm._s(_vm.iterationPeriod))]),_vm._v(\" \"),_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.iterationInfo}},[_c('div',{staticClass:\"gl-flex gl-flex-col\"},[_c('span',{staticClass:\"gl-font-bold\",attrs:{\"data-testid\":\"iteration-title\"}},[_vm._v(_vm._s(_vm.__('Iteration')))]),_vm._v(\" \"),(_vm.iterationCadenceTitle)?_c('span',{attrs:{\"data-testid\":\"iteration-cadence\"}},[_vm._v(\"\\n \"+_vm._s(_vm.iterationCadenceTitle)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.iterationPeriod)?_c('span',{attrs:{\"data-testid\":\"iteration-value\"}},[_vm._v(\"\\n \"+_vm._s(_vm.iterationPeriod)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.iterationTitle)?_c('span',{attrs:{\"data-testid\":\"iteration-name\"}},[_vm._v(\"\\n \"+_vm._s(_vm.iterationTitle)+\"\\n \")]):_vm._e()])])],1):_vm._e(),_vm._v(\" \"),(_vm.showDate)?_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-flex gl-min-w-10 gl-max-w-26 gl-cursor-help gl-flex-wrap gl-gap-2\",attrs:{\"data-testid\":\"item-dates\",\"title\":_vm.__('Dates')}},[_c('gl-icon',{attrs:{\"name\":\"calendar\"}}),_vm._v(\" \"),_c('span',{attrs:{\"data-testid\":\"dates-value\"}},[_vm._v(_vm._s(_vm.workItemTimeframe))])],1):_vm._e()]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlPopover, GlLoadingIcon, GlTooltipDirective, GlLink } from '@gitlab/ui';\nimport { n__ } from '~/locale';\nimport { WORK_ITEM_TYPE_VALUE_ISSUE } from '~/work_items/constants';\nimport WorkItemRelationshipPopoverMetadata from 'ee_else_ce/work_items/components/shared/work_item_relationship_popover_metadata.vue';\nimport WorkItemTypeIcon from '../work_item_type_icon.vue';\n\nconst defaultDisplayLimit = 3;\n\nexport default {\n components: {\n GlPopover,\n GlLoadingIcon,\n GlLink,\n WorkItemTypeIcon,\n WorkItemRelationshipPopoverMetadata,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n linkedWorkItems: {\n type: Array,\n required: true,\n },\n title: {\n type: String,\n required: true,\n },\n target: {\n type: String,\n required: true,\n },\n workItemFullPath: {\n type: String,\n required: true,\n },\n workItemType: {\n type: String,\n required: true,\n },\n workItemWebUrl: {\n type: String,\n required: true,\n },\n loading: {\n type: Boolean,\n default: false,\n required: false,\n },\n },\n defaultDisplayLimit: 3,\n computed: {\n atLinkedItemsDisplayLimit() {\n return this.linkedWorkItems.length > defaultDisplayLimit;\n },\n displayedIssuablesCount() {\n return this.atLinkedItemsDisplayLimit\n ? this.linkedWorkItems.length - defaultDisplayLimit\n : this.linkedWorkItems.length;\n },\n moreItemsText() {\n return n__('WorkItem|+%d more item', 'WorkItem|+%d more items', this.displayedIssuablesCount);\n },\n linkedItemsToDisplay() {\n return this.linkedWorkItems.slice(0, defaultDisplayLimit);\n },\n moreItemsLink() {\n return `${this.workItemWebUrl}#${this.workItemType === WORK_ITEM_TYPE_VALUE_ISSUE ? 'related-issues' : 'linkeditems'}`;\n },\n },\n};\n</script>\n\n<template>\n <gl-popover\n :target=\"target\"\n placement=\"top\"\n triggers=\"hover focus\"\n :css-classes=\"['gl-max-w-sm']\"\n >\n <template #title>\n <span class=\"gl-text-sm gl-text-subtle\">{{ title }}</span>\n </template>\n <gl-loading-icon v-if=\"loading\" size=\"sm\" />\n\n <template v-else>\n <ul\n class=\"gl-mb-0 gl-flex gl-list-none gl-flex-col gl-gap-3 gl-p-0\"\n :class=\"{ 'gl-mb-3': atLinkedItemsDisplayLimit }\"\n >\n <li v-for=\"{ workItem } in linkedItemsToDisplay\" :key=\"workItem.id\">\n <work-item-type-icon\n :show-tooltip-on-hover=\"true\"\n class=\"gl-mr-1 gl-cursor-help\"\n icon-variant=\"subtle\"\n :work-item-type=\"workItem.workItemType.name\"\n />\n <gl-link\n :href=\"workItem.webUrl\"\n class=\"gl-link gl-hyphens-auto gl-break-words gl-text-base gl-font-semibold gl-text-default hover:gl-text-default\"\n @click.exact=\"$emit('click', $event)\"\n @mouseover=\"$emit('mouseover')\"\n @mouseout=\"$emit('mouseout')\"\n >\n {{ workItem.title }}\n </gl-link>\n <work-item-relationship-popover-metadata\n :work-item=\"workItem\"\n :work-item-full-path=\"workItemFullPath\"\n />\n </li>\n </ul>\n <gl-link\n v-if=\"atLinkedItemsDisplayLimit\"\n data-testid=\"more-related-items-link\"\n :href=\"moreItemsLink\"\n class=\"gl-mt-3 gl-text-sm !gl-text-blue-500\"\n >{{ moreItemsText }}</gl-link\n >\n </template>\n </gl-popover>\n</template>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_relationship_popover.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_relationship_popover.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./work_item_relationship_popover.vue?vue&type=template&id=6e9f53bb\"\nimport script from \"./work_item_relationship_popover.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_relationship_popover.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-popover',{attrs:{\"target\":_vm.target,\"placement\":\"top\",\"triggers\":\"hover focus\",\"css-classes\":['gl-max-w-sm']},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"gl-text-sm gl-text-subtle\"},[_vm._v(_vm._s(_vm.title))])]},proxy:true}])},[_vm._v(\" \"),(_vm.loading)?_c('gl-loading-icon',{attrs:{\"size\":\"sm\"}}):[_c('ul',{staticClass:\"gl-mb-0 gl-flex gl-list-none gl-flex-col gl-gap-3 gl-p-0\",class:{ 'gl-mb-3': _vm.atLinkedItemsDisplayLimit }},_vm._l((_vm.linkedItemsToDisplay),function({ workItem }){return _c('li',{key:workItem.id},[_c('work-item-type-icon',{staticClass:\"gl-mr-1 gl-cursor-help\",attrs:{\"show-tooltip-on-hover\":true,\"icon-variant\":\"subtle\",\"work-item-type\":workItem.workItemType.name}}),_vm._v(\" \"),_c('gl-link',{staticClass:\"gl-link gl-hyphens-auto gl-break-words gl-text-base gl-font-semibold gl-text-default hover:gl-text-default\",attrs:{\"href\":workItem.webUrl},on:{\"click\":function($event){if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.$emit('click', $event)},\"mouseover\":function($event){return _vm.$emit('mouseover')},\"mouseout\":function($event){return _vm.$emit('mouseout')}}},[_vm._v(\"\\n \"+_vm._s(workItem.title)+\"\\n \")]),_vm._v(\" \"),_c('work-item-relationship-popover-metadata',{attrs:{\"work-item\":workItem,\"work-item-full-path\":_vm.workItemFullPath}})],1)}),0),_vm._v(\" \"),(_vm.atLinkedItemsDisplayLimit)?_c('gl-link',{staticClass:\"gl-mt-3 gl-text-sm !gl-text-blue-500\",attrs:{\"data-testid\":\"more-related-items-link\",\"href\":_vm.moreItemsLink}},[_vm._v(_vm._s(_vm.moreItemsText))]):_vm._e()]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_relationship_icons.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_relationship_icons.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\nimport { n__, sprintf } from '~/locale';\nimport { LINKED_CATEGORIES_MAP, sprintfWorkItem } from '../../constants';\nimport workItemLinkedItemsQuery from '../../graphql/work_item_linked_items.query.graphql';\nimport { findLinkedItemsWidget } from '../../utils';\nimport WorkItemRelationshipPopover from './work_item_relationship_popover.vue';\n\nexport default {\n components: {\n GlIcon,\n WorkItemRelationshipPopover,\n },\n props: {\n linkedWorkItems: {\n type: Array,\n required: true,\n },\n workItemType: {\n type: String,\n required: true,\n },\n workItemWebUrl: {\n type: String,\n required: true,\n },\n workItemFullPath: {\n type: String,\n required: true,\n },\n workItemIid: {\n type: String,\n required: true,\n },\n },\n apollo: {\n childItemLinkedItems: {\n skip() {\n return this.skipQuery;\n },\n query() {\n return workItemLinkedItemsQuery;\n },\n variables() {\n return {\n fullPath: this.workItemFullPath,\n iid: this.workItemIid,\n };\n },\n update({ workspace }) {\n if (!workspace?.workItem) return [];\n\n this.skipQuery = true;\n return findLinkedItemsWidget(workspace.workItem).linkedItems?.nodes || [];\n },\n },\n },\n data() {\n return {\n skipQuery: true,\n childItemLinkedItems: [],\n };\n },\n computed: {\n itemsBlockedBy() {\n return this.linkedWorkItems.filter((item) => {\n return item.linkType === LINKED_CATEGORIES_MAP.IS_BLOCKED_BY;\n });\n },\n itemsBlocks() {\n return this.linkedWorkItems.filter((item) => {\n return item.linkType === LINKED_CATEGORIES_MAP.BLOCKS;\n });\n },\n itemsBlockedByIconId() {\n return `relationship-blocked-by-icon-${this.workItemIid}`;\n },\n itemsBlocksIconId() {\n return `relationship-blocks-icon-${this.workItemIid}`;\n },\n blockedByLabel() {\n const message = sprintf(\n n__(\n 'WorkItem|%{workItemType} is blocked by 1 item',\n 'WorkItem|%{workItemType} is blocked by %{itemCount} items',\n this.itemsBlockedBy.length,\n ),\n { itemCount: this.itemsBlockedBy.length },\n );\n return sprintfWorkItem(message, this.workItemType);\n },\n blocksLabel() {\n const message = sprintf(\n n__(\n 'WorkItem|%{workItemType} blocks 1 item',\n 'WorkItem|%{workItemType} blocks %{itemCount} items',\n this.itemsBlocks.length,\n ),\n { itemCount: this.itemsBlocks.length },\n );\n return sprintfWorkItem(message, this.workItemType);\n },\n isLoading() {\n return this.$apollo.queries.childItemLinkedItems.loading;\n },\n childBlockedByItems() {\n return this.childItemLinkedItems.filter((item) => {\n return item.linkType === LINKED_CATEGORIES_MAP.IS_BLOCKED_BY;\n });\n },\n childBlocksItems() {\n return this.childItemLinkedItems.filter((item) => {\n return item.linkType === LINKED_CATEGORIES_MAP.BLOCKS;\n });\n },\n },\n methods: {\n handleMouseEnter() {\n this.skipQuery = false;\n },\n },\n};\n</script>\n\n<template>\n <span class=\"gl-flex gl-gap-3\">\n <template v-if=\"itemsBlockedBy.length > 0\">\n <span\n :id=\"itemsBlockedByIconId\"\n :aria-label=\"blockedByLabel\"\n tabIndex=\"0\"\n class=\"gl-cursor-pointer gl-text-sm gl-text-subtle\"\n data-testid=\"relationship-blocked-by-icon\"\n @mouseenter=\"handleMouseEnter\"\n >\n <gl-icon name=\"entity-blocked\" variant=\"danger\" />\n {{ itemsBlockedBy.length }}\n </span>\n <work-item-relationship-popover\n :target=\"itemsBlockedByIconId\"\n :title=\"s__('WorkItem|Blocked by')\"\n :loading=\"isLoading\"\n :linked-work-items=\"childBlockedByItems\"\n :work-item-full-path=\"workItemFullPath\"\n :work-item-web-url=\"workItemWebUrl\"\n :work-item-type=\"workItemType\"\n />\n </template>\n\n <template v-if=\"itemsBlocks.length > 0\">\n <span\n :id=\"itemsBlocksIconId\"\n :aria-label=\"blocksLabel\"\n tabIndex=\"0\"\n class=\"gl-cursor-pointer gl-text-sm gl-text-subtle\"\n data-testid=\"relationship-blocks-icon\"\n @mouseenter=\"handleMouseEnter\"\n >\n <gl-icon name=\"entity-blocking\" variant=\"warning\" />\n {{ itemsBlocks.length }}\n </span>\n <work-item-relationship-popover\n :target=\"itemsBlocksIconId\"\n :title=\"s__('WorkItem|Blocking')\"\n :loading=\"isLoading\"\n :linked-work-items=\"childBlocksItems\"\n :work-item-full-path=\"workItemFullPath\"\n :work-item-web-url=\"workItemWebUrl\"\n :work-item-type=\"workItemType\"\n />\n </template>\n </span>\n</template>\n","import { render, staticRenderFns } from \"./work_item_relationship_icons.vue?vue&type=template&id=a9d202e8\"\nimport script from \"./work_item_relationship_icons.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_relationship_icons.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemById\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItem\"},\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":123}};\n doc.loc.source = {\"body\":\"#import \\\"./work_item.fragment.graphql\\\"\\n\\nquery workItemById($id: WorkItemID!) {\\n workItem(id: $id) {\\n ...WorkItem\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./work_item.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"workItemById\"] = oneQuery(doc, \"workItemById\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.viewer)?_c('div',{staticClass:\"diff-file preview-container\"},[_c(_vm.viewer,{tag:\"component\",attrs:{\"diff-file\":_vm.diffFile,\"diff-mode\":_vm.diffMode,\"new-path\":_vm.fullNewPath,\"old-path\":_vm.fullOldPath,\"old-size\":_vm.oldSize,\"new-size\":_vm.newSize,\"project-path\":_vm.projectPath,\"a-mode\":_vm.aMode,\"b-mode\":_vm.bMode},scopedSlots:_vm._u([{key:\"image-overlay\",fn:function({ renderedWidth, renderedHeight }){return [_vm._t(\"image-overlay\",null,{\"renderedWidth\":renderedWidth,\"renderedHeight\":renderedHeight})]}}],null,true)}),_vm._v(\" \"),_vm._t(\"default\")],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const diffModes = {\n replaced: 'replaced',\n new: 'new',\n deleted: 'deleted',\n renamed: 'renamed',\n};\n\nexport const imageViewMode = {\n twoup: 'twoup',\n swipe: 'swipe',\n onion: 'onion',\n};\n","<script>\nimport DownloadViewer from '../../content_viewer/viewers/download_viewer.vue';\nimport { diffModes } from '../constants';\n\nexport default {\n components: {\n DownloadViewer,\n },\n props: {\n diffMode: {\n type: String,\n required: true,\n },\n newPath: {\n type: String,\n required: true,\n },\n oldPath: {\n type: String,\n required: true,\n },\n projectPath: {\n type: String,\n required: false,\n default: '',\n },\n },\n diffModes,\n};\n</script>\n\n<template>\n <div class=\"diff-file-container\">\n <div class=\"diff-viewer\">\n <div v-if=\"diffMode === $options.diffModes.replaced\" class=\"two-up view row\">\n <div class=\"col-sm-6 deleted\">\n <download-viewer :path=\"oldPath\" :project-path=\"projectPath\" />\n </div>\n <div class=\"col-sm-6 added\">\n <download-viewer :path=\"newPath\" :project-path=\"projectPath\" />\n </div>\n </div>\n <div v-else-if=\"diffMode === $options.diffModes.new\" class=\"added\">\n <download-viewer :path=\"newPath\" :project-path=\"projectPath\" />\n </div>\n <div v-else class=\"deleted\">\n <download-viewer :path=\"oldPath\" :project-path=\"projectPath\" />\n </div>\n </div>\n </div>\n</template>\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./download_diff_viewer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./download_diff_viewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./download_diff_viewer.vue?vue&type=template&id=45a37e32\"\nimport script from \"./download_diff_viewer.vue?vue&type=script&lang=js\"\nexport * from \"./download_diff_viewer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"diff-file-container\"},[_c('div',{staticClass:\"diff-viewer\"},[(_vm.diffMode === _vm.$options.diffModes.replaced)?_c('div',{staticClass:\"two-up view row\"},[_c('div',{staticClass:\"col-sm-6 deleted\"},[_c('download-viewer',{attrs:{\"path\":_vm.oldPath,\"project-path\":_vm.projectPath}})],1),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-6 added\"},[_c('download-viewer',{attrs:{\"path\":_vm.newPath,\"project-path\":_vm.projectPath}})],1)]):(_vm.diffMode === _vm.$options.diffModes.new)?_c('div',{staticClass:\"added\"},[_c('download-viewer',{attrs:{\"path\":_vm.newPath,\"project-path\":_vm.projectPath}})],1):_c('div',{staticClass:\"deleted\"},[_c('download-viewer',{attrs:{\"path\":_vm.oldPath,\"project-path\":_vm.projectPath}})],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export function pixeliseValue(val) {\n return val ? `${val}px` : '';\n}\n","<script>\nimport ImageViewer from '../../../content_viewer/viewers/image_viewer.vue';\nimport { pixeliseValue } from '../../../lib/utils/dom_utils';\n\nexport default {\n components: {\n ImageViewer,\n },\n props: {\n newPath: {\n type: String,\n required: true,\n },\n oldPath: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n onionMaxWidth: undefined,\n onionMaxHeight: undefined,\n onionOldImgInfo: null,\n onionNewImgInfo: null,\n onionDraggerPos: 0,\n onionOpacity: 1,\n dragging: false,\n };\n },\n computed: {\n onionMaxPixelWidth() {\n return pixeliseValue(this.onionMaxWidth);\n },\n onionMaxPixelHeight() {\n return pixeliseValue(this.onionMaxHeight);\n },\n onionDraggerPixelPos() {\n return pixeliseValue(this.onionDraggerPos);\n },\n },\n beforeDestroy() {\n document.body.removeEventListener('mouseup', this.stopDrag);\n document.body.removeEventListener('touchend', this.stopDrag);\n document.body.removeEventListener('mousemove', this.dragMove);\n document.body.removeEventListener('touchmove', this.dragMove);\n },\n methods: {\n dragMove(e) {\n if (!this.dragging) return;\n const moveX = e.pageX || e.touches[0].pageX;\n const left = moveX - this.$refs.dragTrack.getBoundingClientRect().left;\n const dragTrackWidth =\n this.$refs.dragTrack.clientWidth - this.$refs.dragger.clientWidth || 100;\n\n let leftValue = left;\n if (leftValue < 0) leftValue = 0;\n if (leftValue > dragTrackWidth) leftValue = dragTrackWidth;\n\n this.onionOpacity = left / dragTrackWidth;\n this.onionDraggerPos = leftValue;\n },\n startDrag() {\n this.dragging = true;\n document.body.style.userSelect = 'none';\n document.body.addEventListener('mousemove', this.dragMove);\n document.body.addEventListener('touchmove', this.dragMove);\n },\n stopDrag() {\n this.dragging = false;\n document.body.style.userSelect = '';\n document.body.removeEventListener('mousemove', this.dragMove);\n document.body.removeEventListener('touchmove', this.dragMove);\n },\n prepareOnionSkin() {\n if (this.onionOldImgInfo && this.onionNewImgInfo) {\n this.onionMaxWidth = Math.max(\n this.onionOldImgInfo.renderedWidth,\n this.onionNewImgInfo.renderedWidth,\n );\n this.onionMaxHeight = Math.max(\n this.onionOldImgInfo.renderedHeight,\n this.onionNewImgInfo.renderedHeight,\n );\n\n this.onionOpacity = 1;\n this.onionDraggerPos =\n this.$refs.dragTrack.clientWidth - this.$refs.dragger.clientWidth || 100;\n\n document.body.addEventListener('mouseup', this.stopDrag);\n document.body.addEventListener('touchend', this.stopDrag);\n }\n },\n onionNewImgLoaded(imgInfo) {\n this.onionNewImgInfo = imgInfo;\n this.prepareOnionSkin();\n },\n onionOldImgLoaded(imgInfo) {\n this.onionOldImgInfo = imgInfo;\n this.prepareOnionSkin();\n },\n },\n};\n</script>\n\n<template>\n <div class=\"onion-skin view\">\n <div\n :style=\"{\n width: onionMaxPixelWidth,\n height: onionMaxPixelHeight,\n 'user-select': dragging ? 'none' : null,\n }\"\n class=\"onion-skin-frame\"\n >\n <div\n :style=\"{\n width: onionMaxPixelWidth,\n height: onionMaxPixelHeight,\n }\"\n class=\"frame deleted\"\n >\n <image-viewer\n key=\"onionOldImg\"\n :render-info=\"false\"\n :path=\"oldPath\"\n @imgLoaded=\"onionOldImgLoaded\"\n />\n </div>\n <div\n ref=\"addedFrame\"\n :style=\"{\n opacity: onionOpacity,\n width: onionMaxPixelWidth,\n height: onionMaxPixelHeight,\n }\"\n class=\"added frame\"\n >\n <image-viewer\n key=\"onionNewImg\"\n :render-info=\"false\"\n :path=\"newPath\"\n @imgLoaded=\"onionNewImgLoaded\"\n >\n <template #image-overlay=\"{ renderedWidth, renderedHeight }\">\n <slot\n :rendered-width=\"renderedWidth\"\n :rendered-height=\"renderedHeight\"\n name=\"image-overlay\"\n ></slot>\n </template>\n </image-viewer>\n </div>\n <div class=\"controls\">\n <div class=\"transparent\"></div>\n <div\n ref=\"dragTrack\"\n class=\"drag-track\"\n @mousedown=\"startDrag\"\n @mouseup=\"stopDrag\"\n @touchstart=\"startDrag\"\n @touchend=\"stopDrag\"\n >\n <div ref=\"dragger\" :style=\"{ left: onionDraggerPixelPos }\" class=\"dragger\"></div>\n </div>\n <div class=\"opaque\"></div>\n </div>\n </div>\n </div>\n</template>\n","import mod from \"-!../../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./onion_skin_viewer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./onion_skin_viewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./onion_skin_viewer.vue?vue&type=template&id=5a4671c8\"\nimport script from \"./onion_skin_viewer.vue?vue&type=script&lang=js\"\nexport * from \"./onion_skin_viewer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"onion-skin view\"},[_c('div',{staticClass:\"onion-skin-frame\",style:({\n width: _vm.onionMaxPixelWidth,\n height: _vm.onionMaxPixelHeight,\n 'user-select': _vm.dragging ? 'none' : null,\n })},[_c('div',{staticClass:\"frame deleted\",style:({\n width: _vm.onionMaxPixelWidth,\n height: _vm.onionMaxPixelHeight,\n })},[_c('image-viewer',{key:\"onionOldImg\",attrs:{\"render-info\":false,\"path\":_vm.oldPath},on:{\"imgLoaded\":_vm.onionOldImgLoaded}})],1),_vm._v(\" \"),_c('div',{ref:\"addedFrame\",staticClass:\"added frame\",style:({\n opacity: _vm.onionOpacity,\n width: _vm.onionMaxPixelWidth,\n height: _vm.onionMaxPixelHeight,\n })},[_c('image-viewer',{key:\"onionNewImg\",attrs:{\"render-info\":false,\"path\":_vm.newPath},on:{\"imgLoaded\":_vm.onionNewImgLoaded},scopedSlots:_vm._u([{key:\"image-overlay\",fn:function({ renderedWidth, renderedHeight }){return [_vm._t(\"image-overlay\",null,{\"renderedWidth\":renderedWidth,\"renderedHeight\":renderedHeight})]}}],null,true)})],1),_vm._v(\" \"),_c('div',{staticClass:\"controls\"},[_c('div',{staticClass:\"transparent\"}),_vm._v(\" \"),_c('div',{ref:\"dragTrack\",staticClass:\"drag-track\",on:{\"mousedown\":_vm.startDrag,\"mouseup\":_vm.stopDrag,\"touchstart\":_vm.startDrag,\"touchend\":_vm.stopDrag}},[_c('div',{ref:\"dragger\",staticClass:\"dragger\",style:({ left: _vm.onionDraggerPixelPos })})]),_vm._v(\" \"),_c('div',{staticClass:\"opaque\"})])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./swipe_viewer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./swipe_viewer.vue?vue&type=script&lang=js\"","<script>\nimport { throttle } from 'lodash';\nimport ImageViewer from '../../../content_viewer/viewers/image_viewer.vue';\nimport { pixeliseValue } from '../../../lib/utils/dom_utils';\n\nexport default {\n components: {\n ImageViewer,\n },\n props: {\n newPath: {\n type: String,\n required: true,\n },\n oldPath: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n dragging: false,\n swipeOldImgInfo: null,\n swipeNewImgInfo: null,\n swipeMaxWidth: undefined,\n swipeMaxHeight: undefined,\n swipeBarPos: 1,\n swipeWrapWidth: 0,\n };\n },\n computed: {\n swipeMaxPixelWidth() {\n return pixeliseValue(this.swipeMaxWidth);\n },\n swipeMaxPixelHeight() {\n return pixeliseValue(this.swipeMaxHeight);\n },\n swipeWrapPixelWidth() {\n return pixeliseValue(this.swipeWrapWidth);\n },\n swipeBarPixelPos() {\n return pixeliseValue(this.swipeBarPos);\n },\n },\n beforeDestroy() {\n window.removeEventListener('resize', this.resizeThrottled, false);\n document.body.removeEventListener('mouseup', this.stopDrag);\n document.body.removeEventListener('mousemove', this.dragMove);\n document.body.removeEventListener('touchend', this.stopDrag);\n document.body.removeEventListener('touchmove', this.dragMove);\n },\n mounted() {\n window.addEventListener('resize', this.resize, false);\n },\n methods: {\n dragMove(e) {\n if (!this.dragging) return;\n\n const moveX = e.pageX || e.touches[0].pageX;\n let leftValue = moveX - this.$refs.swipeFrame.getBoundingClientRect().left;\n const { clientWidth } = this.$refs.swipeFrame;\n if (leftValue <= 0) {\n leftValue = 0;\n } else if (leftValue > clientWidth) {\n leftValue = clientWidth;\n }\n\n this.swipeWrapWidth = (leftValue / clientWidth) * 100;\n this.swipeBarPos = leftValue;\n },\n startDrag() {\n this.dragging = true;\n document.body.addEventListener('mousemove', this.dragMove);\n document.body.addEventListener('touchmove', this.dragMove);\n },\n stopDrag() {\n this.dragging = false;\n document.body.removeEventListener('mousemove', this.dragMove);\n document.body.removeEventListener('touchmove', this.dragMove);\n },\n prepareSwipe() {\n if (this.swipeOldImgInfo && this.swipeNewImgInfo && this.swipeOldImgInfo.renderedWidth > 0) {\n // Add 2 for border width\n this.swipeMaxWidth =\n Math.max(this.swipeOldImgInfo.renderedWidth, this.swipeNewImgInfo.renderedWidth) + 2;\n this.swipeMaxHeight =\n Math.max(this.swipeOldImgInfo.renderedHeight, this.swipeNewImgInfo.renderedHeight) + 2;\n\n document.body.addEventListener('mouseup', this.stopDrag);\n document.body.addEventListener('touchend', this.stopDrag);\n }\n },\n swipeNewImgLoaded(imgInfo) {\n this.swipeNewImgInfo = imgInfo;\n this.prepareSwipe();\n },\n swipeOldImgLoaded(imgInfo) {\n this.swipeOldImgInfo = imgInfo;\n this.prepareSwipe();\n },\n resize: throttle(function throttledResize() {\n this.swipeBarPos = 0;\n this.swipeWrapWidth = 0;\n this.prepareSwipe();\n }, 400),\n },\n};\n</script>\n\n<template>\n <div class=\"swipe view\">\n <div\n ref=\"swipeFrame\"\n :style=\"{\n width: swipeMaxPixelWidth,\n height: swipeMaxPixelHeight,\n 'user-select': dragging ? 'none' : null,\n }\"\n class=\"swipe-frame\"\n >\n <image-viewer\n key=\"swipeOldImg\"\n ref=\"swipeOldImg\"\n :render-info=\"false\"\n :path=\"oldPath\"\n class=\"frame deleted\"\n @imgLoaded=\"swipeOldImgLoaded\"\n />\n <div\n ref=\"swipeWrap\"\n :style=\"{\n width: `${swipeWrapWidth}%`,\n }\"\n class=\"swipe-wrap\"\n >\n <image-viewer\n key=\"swipeNewImg\"\n :render-info=\"false\"\n :path=\"newPath\"\n :style=\"{\n width: swipeMaxPixelWidth,\n }\"\n class=\"frame added\"\n @imgLoaded=\"swipeNewImgLoaded\"\n >\n <template #image-overlay=\"{ renderedWidth, renderedHeight }\">\n <slot\n :rendered-width=\"renderedWidth\"\n :rendered-height=\"renderedHeight\"\n name=\"image-overlay\"\n ></slot>\n </template>\n </image-viewer>\n </div>\n <span\n ref=\"swipeBar\"\n :style=\"{ left: swipeBarPixelPos }\"\n class=\"swipe-bar\"\n @mousedown=\"startDrag\"\n @mouseup=\"stopDrag\"\n @touchstart=\"startDrag\"\n @touchend=\"stopDrag\"\n >\n <span class=\"top-handle\"></span> <span class=\"bottom-handle\"></span>\n </span>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./swipe_viewer.vue?vue&type=template&id=6f12ef5d\"\nimport script from \"./swipe_viewer.vue?vue&type=script&lang=js\"\nexport * from \"./swipe_viewer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"swipe view\"},[_c('div',{ref:\"swipeFrame\",staticClass:\"swipe-frame\",style:({\n width: _vm.swipeMaxPixelWidth,\n height: _vm.swipeMaxPixelHeight,\n 'user-select': _vm.dragging ? 'none' : null,\n })},[_c('image-viewer',{key:\"swipeOldImg\",ref:\"swipeOldImg\",staticClass:\"frame deleted\",attrs:{\"render-info\":false,\"path\":_vm.oldPath},on:{\"imgLoaded\":_vm.swipeOldImgLoaded}}),_vm._v(\" \"),_c('div',{ref:\"swipeWrap\",staticClass:\"swipe-wrap\",style:({\n width: `${_vm.swipeWrapWidth}%`,\n })},[_c('image-viewer',{key:\"swipeNewImg\",staticClass:\"frame added\",style:({\n width: _vm.swipeMaxPixelWidth,\n }),attrs:{\"render-info\":false,\"path\":_vm.newPath},on:{\"imgLoaded\":_vm.swipeNewImgLoaded},scopedSlots:_vm._u([{key:\"image-overlay\",fn:function({ renderedWidth, renderedHeight }){return [_vm._t(\"image-overlay\",null,{\"renderedWidth\":renderedWidth,\"renderedHeight\":renderedHeight})]}}],null,true)})],1),_vm._v(\" \"),_c('span',{ref:\"swipeBar\",staticClass:\"swipe-bar\",style:({ left: _vm.swipeBarPixelPos }),on:{\"mousedown\":_vm.startDrag,\"mouseup\":_vm.stopDrag,\"touchstart\":_vm.startDrag,\"touchend\":_vm.stopDrag}},[_c('span',{staticClass:\"top-handle\"}),_vm._v(\" \"),_c('span',{staticClass:\"bottom-handle\"})])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./two_up_viewer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./two_up_viewer.vue?vue&type=script&lang=js\"","<script>\nimport ImageViewer from '../../../content_viewer/viewers/image_viewer.vue';\n\nexport default {\n components: {\n ImageViewer,\n },\n props: {\n newPath: {\n type: String,\n required: true,\n },\n oldPath: {\n type: String,\n required: true,\n },\n newSize: {\n type: Number,\n required: false,\n default: 0,\n },\n oldSize: {\n type: Number,\n required: false,\n default: 0,\n },\n },\n};\n</script>\n\n<template>\n <div class=\"two-up view gl-flex\">\n <image-viewer\n :path=\"oldPath\"\n :file-size=\"oldSize\"\n :render-info=\"true\"\n inner-css-classes=\"frame deleted\"\n class=\"wrap w-50\"\n />\n <image-viewer\n :path=\"newPath\"\n :file-size=\"newSize\"\n :render-info=\"true\"\n :inner-css-classes=\"['frame', 'added']\"\n class=\"wrap w-50\"\n >\n <template #image-overlay=\"{ renderedWidth, renderedHeight }\">\n <slot\n :rendered-width=\"renderedWidth\"\n :rendered-height=\"renderedHeight\"\n name=\"image-overlay\"\n ></slot>\n </template>\n </image-viewer>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./two_up_viewer.vue?vue&type=template&id=af139274\"\nimport script from \"./two_up_viewer.vue?vue&type=script&lang=js\"\nexport * from \"./two_up_viewer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"two-up view gl-flex\"},[_c('image-viewer',{staticClass:\"wrap w-50\",attrs:{\"path\":_vm.oldPath,\"file-size\":_vm.oldSize,\"render-info\":true,\"inner-css-classes\":\"frame deleted\"}}),_vm._v(\" \"),_c('image-viewer',{staticClass:\"wrap w-50\",attrs:{\"path\":_vm.newPath,\"file-size\":_vm.newSize,\"render-info\":true,\"inner-css-classes\":['frame', 'added']},scopedSlots:_vm._u([{key:\"image-overlay\",fn:function({ renderedWidth, renderedHeight }){return [_vm._t(\"image-overlay\",null,{\"renderedWidth\":renderedWidth,\"renderedHeight\":renderedHeight})]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./image_diff_viewer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./image_diff_viewer.vue?vue&type=script&lang=js\"","<script>\nimport ImageViewer from '../../content_viewer/viewers/image_viewer.vue';\nimport { diffModes, imageViewMode } from '../constants';\nimport OnionSkinViewer from './image_diff/onion_skin_viewer.vue';\nimport SwipeViewer from './image_diff/swipe_viewer.vue';\nimport TwoUpViewer from './image_diff/two_up_viewer.vue';\n\nexport default {\n components: {\n ImageViewer,\n },\n props: {\n diffMode: {\n type: String,\n required: true,\n },\n newPath: {\n type: String,\n required: true,\n },\n oldPath: {\n type: String,\n required: true,\n },\n newSize: {\n type: Number,\n required: false,\n default: 0,\n },\n oldSize: {\n type: Number,\n required: false,\n default: 0,\n },\n },\n data() {\n return {\n mode: imageViewMode.twoup,\n };\n },\n computed: {\n imageViewComponent() {\n switch (this.mode) {\n case imageViewMode.twoup:\n return TwoUpViewer;\n case imageViewMode.swipe:\n return SwipeViewer;\n case imageViewMode.onion:\n return OnionSkinViewer;\n default:\n return undefined;\n }\n },\n isNew() {\n return this.diffMode === diffModes.new;\n },\n isRenamed() {\n return this.diffMode === diffModes.renamed;\n },\n imagePath() {\n return this.isNew || this.isRenamed ? this.newPath : this.oldPath;\n },\n },\n methods: {\n changeMode(newMode) {\n this.mode = newMode;\n },\n },\n diffModes,\n imageViewMode,\n};\n</script>\n\n<template>\n <div class=\"diff-file-container\">\n <div v-if=\"diffMode === $options.diffModes.replaced\" class=\"diff-viewer\">\n <div class=\"image js-replaced-image\">\n <component :is=\"imageViewComponent\" v-bind=\"$props\">\n <template #image-overlay=\"{ renderedWidth, renderedHeight }\">\n <slot\n :rendered-width=\"renderedWidth\"\n :rendered-height=\"renderedHeight\"\n name=\"image-overlay\"\n ></slot>\n </template>\n </component>\n </div>\n <div class=\"view-modes\">\n <ul class=\"view-modes-menu\">\n <li\n :class=\"{\n active: mode === $options.imageViewMode.twoup,\n }\"\n @click=\"changeMode($options.imageViewMode.twoup)\"\n >\n {{ s__('ImageDiffViewer|2-up') }}\n </li>\n <li\n :class=\"{\n active: mode === $options.imageViewMode.swipe,\n }\"\n @click=\"changeMode($options.imageViewMode.swipe)\"\n >\n {{ s__('ImageDiffViewer|Swipe') }}\n </li>\n <li\n :class=\"{\n active: mode === $options.imageViewMode.onion,\n }\"\n @click=\"changeMode($options.imageViewMode.onion)\"\n >\n {{ s__('ImageDiffViewer|Onion skin') }}\n </li>\n </ul>\n </div>\n </div>\n <div v-else class=\"diff-viewer\">\n <div class=\"image\">\n <image-viewer\n :path=\"imagePath\"\n :file-size=\"isNew ? newSize : oldSize\"\n :inner-css-classes=\"[\n 'frame',\n {\n added: isNew,\n deleted: diffMode === $options.diffModes.deleted,\n },\n ]\"\n >\n <template v-if=\"isNew || isRenamed\" #image-overlay=\"{ renderedWidth, renderedHeight }\">\n <slot\n :rendered-width=\"renderedWidth\"\n :rendered-height=\"renderedHeight\"\n name=\"image-overlay\"\n ></slot>\n </template>\n </image-viewer>\n </div>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./image_diff_viewer.vue?vue&type=template&id=5fe380ca\"\nimport script from \"./image_diff_viewer.vue?vue&type=script&lang=js\"\nexport * from \"./image_diff_viewer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"diff-file-container\"},[(_vm.diffMode === _vm.$options.diffModes.replaced)?_c('div',{staticClass:\"diff-viewer\"},[_c('div',{staticClass:\"image js-replaced-image\"},[_c(_vm.imageViewComponent,_vm._b({tag:\"component\",scopedSlots:_vm._u([{key:\"image-overlay\",fn:function({ renderedWidth, renderedHeight }){return [_vm._t(\"image-overlay\",null,{\"renderedWidth\":renderedWidth,\"renderedHeight\":renderedHeight})]}}],null,true)},'component',_vm.$props,false))],1),_vm._v(\" \"),_c('div',{staticClass:\"view-modes\"},[_c('ul',{staticClass:\"view-modes-menu\"},[_c('li',{class:{\n active: _vm.mode === _vm.$options.imageViewMode.twoup,\n },on:{\"click\":function($event){return _vm.changeMode(_vm.$options.imageViewMode.twoup)}}},[_vm._v(\"\\n \"+_vm._s(_vm.s__('ImageDiffViewer|2-up'))+\"\\n \")]),_vm._v(\" \"),_c('li',{class:{\n active: _vm.mode === _vm.$options.imageViewMode.swipe,\n },on:{\"click\":function($event){return _vm.changeMode(_vm.$options.imageViewMode.swipe)}}},[_vm._v(\"\\n \"+_vm._s(_vm.s__('ImageDiffViewer|Swipe'))+\"\\n \")]),_vm._v(\" \"),_c('li',{class:{\n active: _vm.mode === _vm.$options.imageViewMode.onion,\n },on:{\"click\":function($event){return _vm.changeMode(_vm.$options.imageViewMode.onion)}}},[_vm._v(\"\\n \"+_vm._s(_vm.s__('ImageDiffViewer|Onion skin'))+\"\\n \")])])])]):_c('div',{staticClass:\"diff-viewer\"},[_c('div',{staticClass:\"image\"},[_c('image-viewer',{attrs:{\"path\":_vm.imagePath,\"file-size\":_vm.isNew ? _vm.newSize : _vm.oldSize,\"inner-css-classes\":[\n 'frame',\n {\n added: _vm.isNew,\n deleted: _vm.diffMode === _vm.$options.diffModes.deleted,\n },\n ]},scopedSlots:_vm._u([(_vm.isNew || _vm.isRenamed)?{key:\"image-overlay\",fn:function({ renderedWidth, renderedHeight }){return [_vm._t(\"image-overlay\",null,{\"renderedWidth\":renderedWidth,\"renderedHeight\":renderedHeight})]}}:null],null,true)})],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mode_changed.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mode_changed.vue?vue&type=script&lang=js\"","<script>\nimport { sprintf, __ } from '~/locale';\n\nexport default {\n props: {\n aMode: {\n type: String,\n required: false,\n default: null,\n },\n bMode: {\n type: String,\n required: false,\n default: null,\n },\n },\n computed: {\n outputText() {\n return sprintf(__('File mode changed from %{a_mode} to %{b_mode}'), {\n a_mode: this.aMode,\n b_mode: this.bMode,\n });\n },\n },\n};\n</script>\n\n<template>\n <div class=\"nothing-here-block\">{{ outputText }}</div>\n</template>\n","import { render, staticRenderFns } from \"./mode_changed.vue?vue&type=template&id=7910acf7\"\nimport script from \"./mode_changed.vue?vue&type=script&lang=js\"\nexport * from \"./mode_changed.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"nothing-here-block\"},[_vm._v(_vm._s(_vm.outputText))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlAlert, GlLink, GlLoadingIcon, GlSprintf } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions } from 'vuex';\n\nimport {\n TRANSITION_LOAD_START,\n TRANSITION_LOAD_ERROR,\n TRANSITION_LOAD_SUCCEED,\n TRANSITION_ACKNOWLEDGE_ERROR,\n STATE_IDLING,\n STATE_LOADING,\n STATE_ERRORED,\n} from '~/diffs/constants';\nimport { truncateSha } from '~/lib/utils/text_utility';\nimport { __ } from '~/locale';\nimport { transition } from '../utils';\n\nexport default {\n STATE_LOADING,\n STATE_ERRORED,\n uiText: {\n showLink: __('Show file contents'),\n commitLink: __('View file @ %{commitSha}'),\n description: __('File renamed with no changes.'),\n loadError: __('Unable to load file contents. Try again later.'),\n },\n components: {\n GlAlert,\n GlLink,\n GlLoadingIcon,\n GlSprintf,\n },\n props: {\n diffFile: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n state: STATE_IDLING,\n };\n },\n computed: {\n shortSha() {\n return truncateSha(this.diffFile.content_sha);\n },\n canLoadFullDiff() {\n return this.diffFile.alternate_viewer.name === 'text';\n },\n },\n methods: {\n ...mapActions('diffs', ['switchToFullDiffFromRenamedFile']),\n is(state) {\n return this.state === state;\n },\n switchToFull() {\n this.transitionState(TRANSITION_LOAD_START);\n\n this.switchToFullDiffFromRenamedFile({ diffFile: this.diffFile })\n .then(() => {\n this.transitionState(TRANSITION_LOAD_SUCCEED);\n })\n .catch(() => {\n this.transitionState(TRANSITION_LOAD_ERROR);\n });\n },\n transitionState(transitionEvent) {\n this.state = transition(this.state, transitionEvent);\n },\n clickLink(event) {\n if (this.canLoadFullDiff) {\n event.preventDefault();\n\n this.switchToFull();\n }\n },\n dismissError() {\n this.transitionState(TRANSITION_ACKNOWLEDGE_ERROR);\n },\n },\n};\n</script>\n\n<template>\n <div class=\"nothing-here-block\">\n <gl-loading-icon v-if=\"is($options.STATE_LOADING)\" size=\"sm\" />\n <template v-else>\n <gl-alert\n v-show=\"is($options.STATE_ERRORED)\"\n class=\"gl-mb-5 gl-text-left\"\n variant=\"danger\"\n @dismiss=\"dismissError\"\n >{{ $options.uiText.loadError }}</gl-alert\n >\n <span test-id=\"plaintext\">{{ $options.uiText.description }}</span>\n <gl-link :href=\"diffFile.view_path\" @click=\"clickLink\">\n <span v-if=\"canLoadFullDiff\">{{ $options.uiText.showLink }}</span>\n <gl-sprintf v-else :message=\"$options.uiText.commitLink\">\n <template #commitSha>{{ shortSha }}</template>\n </gl-sprintf>\n </gl-link>\n </template>\n </div>\n</template>\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./renamed.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./renamed.vue?vue&type=script&lang=js\"","import { RENAMED_DIFF_TRANSITIONS } from '~/diffs/constants';\n\nexport const transition = (currentState, transitionEvent) => {\n const key = `${currentState}:${transitionEvent}`;\n\n if (RENAMED_DIFF_TRANSITIONS[key]) {\n return RENAMED_DIFF_TRANSITIONS[key];\n }\n\n return currentState;\n};\n","import { render, staticRenderFns } from \"./renamed.vue?vue&type=template&id=180c56d2\"\nimport script from \"./renamed.vue?vue&type=script&lang=js\"\nexport * from \"./renamed.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"nothing-here-block\"},[(_vm.is(_vm.$options.STATE_LOADING))?_c('gl-loading-icon',{attrs:{\"size\":\"sm\"}}):[_c('gl-alert',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.is(_vm.$options.STATE_ERRORED)),expression:\"is($options.STATE_ERRORED)\"}],staticClass:\"gl-mb-5 gl-text-left\",attrs:{\"variant\":\"danger\"},on:{\"dismiss\":_vm.dismissError}},[_vm._v(_vm._s(_vm.$options.uiText.loadError))]),_vm._v(\" \"),_c('span',{attrs:{\"test-id\":\"plaintext\"}},[_vm._v(_vm._s(_vm.$options.uiText.description))]),_vm._v(\" \"),_c('gl-link',{attrs:{\"href\":_vm.diffFile.view_path},on:{\"click\":_vm.clickLink}},[(_vm.canLoadFullDiff)?_c('span',[_vm._v(_vm._s(_vm.$options.uiText.showLink))]):_c('gl-sprintf',{attrs:{\"message\":_vm.$options.uiText.commitLink},scopedSlots:_vm._u([{key:\"commitSha\",fn:function(){return [_vm._v(_vm._s(_vm.shortSha))]},proxy:true}])})],1)]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./diff_viewer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./diff_viewer.vue?vue&type=script&lang=js\"","<script>\nimport { diffViewerModes, diffModes } from '~/ide/constants';\nimport DownloadDiffViewer from './viewers/download_diff_viewer.vue';\nimport ImageDiffViewer from './viewers/image_diff_viewer.vue';\nimport ModeChanged from './viewers/mode_changed.vue';\nimport RenamedFile from './viewers/renamed.vue';\n\nexport default {\n props: {\n diffFile: {\n type: Object,\n required: true,\n },\n diffMode: {\n type: String,\n required: true,\n },\n diffViewerMode: {\n type: String,\n required: true,\n },\n newPath: {\n type: String,\n required: true,\n },\n newSha: {\n type: String,\n required: true,\n },\n newSize: {\n type: Number,\n required: false,\n default: 0,\n },\n oldPath: {\n type: String,\n required: true,\n },\n oldSha: {\n type: String,\n required: true,\n },\n oldSize: {\n type: Number,\n required: false,\n default: 0,\n },\n projectPath: {\n type: String,\n required: false,\n default: '',\n },\n aMode: {\n type: String,\n required: false,\n default: null,\n },\n bMode: {\n type: String,\n required: false,\n default: null,\n },\n },\n computed: {\n viewer() {\n if (this.diffViewerMode === diffViewerModes.renamed) {\n return RenamedFile;\n }\n if (this.diffMode === diffModes.mode_changed) {\n return ModeChanged;\n }\n\n if (!this.newPath) return null;\n\n switch (this.diffViewerMode) {\n case diffViewerModes.image:\n return ImageDiffViewer;\n default:\n return DownloadDiffViewer;\n }\n },\n basePath() {\n // We might get the project path from rails with the relative url already set up\n return this.projectPath.indexOf('/') === 0 ? '' : `${gon.relative_url_root}/`;\n },\n fullOldPath() {\n return `${this.basePath}${this.projectPath}/-/raw/${this.oldSha}/${this.oldPath}`;\n },\n fullNewPath() {\n return `${this.basePath}${this.projectPath}/-/raw/${this.newSha}/${this.newPath}`;\n },\n },\n};\n</script>\n\n<template>\n <div v-if=\"viewer\" class=\"diff-file preview-container\">\n <component\n :is=\"viewer\"\n :diff-file=\"diffFile\"\n :diff-mode=\"diffMode\"\n :new-path=\"fullNewPath\"\n :old-path=\"fullOldPath\"\n :old-size=\"oldSize\"\n :new-size=\"newSize\"\n :project-path=\"projectPath\"\n :a-mode=\"aMode\"\n :b-mode=\"bMode\"\n >\n <template #image-overlay=\"{ renderedWidth, renderedHeight }\">\n <slot\n :rendered-width=\"renderedWidth\"\n :rendered-height=\"renderedHeight\"\n name=\"image-overlay\"\n ></slot>\n </template>\n </component>\n <slot></slot>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./diff_viewer.vue?vue&type=template&id=64fc1cb9\"\nimport script from \"./diff_viewer.vue?vue&type=script&lang=js\"\nexport * from \"./diff_viewer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { TYPE_EPIC, TYPE_ISSUE } from '~/issues/constants';\nimport { issuableAttributesQueries as issuableAttributesQueriesFoss } from '~/sidebar/queries/constants';\nimport updateStatusMutation from '~/sidebar/queries/update_status.mutation.graphql';\nimport issuableWeightSubscription from 'ee/graphql_shared/subscriptions/issuable_weight.subscription.graphql';\nimport { IssuableAttributeType } from '../constants';\nimport epicAncestorsQuery from './epic_ancestors.query.graphql';\nimport groupEpicsQuery from './group_epics.query.graphql';\nimport groupIterationsQuery from './group_iterations.query.graphql';\nimport issueHealthStatusQuery from './issue_health_status.query.graphql';\nimport issueWeightQuery from './issue_weight.query.graphql';\nimport projectIssueEpicMutation from './project_issue_epic.mutation.graphql';\nimport projectIssueEpicQuery from './project_issue_epic.query.graphql';\nimport projectIssueIterationMutation from './project_issue_iteration.mutation.graphql';\nimport projectIssueIterationQuery from './project_issue_iteration.query.graphql';\nimport updateIssueWeightMutation from './update_issue_weight.mutation.graphql';\nimport issueEscalationPolicyQuery from './issue_escalation_policy.query.graphql';\nimport issueEscalationPolicyMutation from './issue_escalation_policy.mutation.graphql';\nimport projectEscalationPoliciesQuery from './project_escalation_policies.query.graphql';\nimport issuableEpicSubscription from './issuable_epic.subscription.graphql';\nimport workItemParent from './project_issue_parent.query.graphql';\nimport workItemParentsQuery from './work_item_parents.query.graphql';\nimport updateWorkItemParent from './project_issue_update_parent.mutation.graphql';\nimport workItemParentSubscription from './work_item_parent.subscription.graphql';\n\nexport const issuableIterationQueries = {\n [TYPE_ISSUE]: {\n query: projectIssueIterationQuery,\n mutation: projectIssueIterationMutation,\n },\n};\n\nexport const iterationsQueries = {\n [TYPE_ISSUE]: {\n query: groupIterationsQuery,\n },\n};\n\nconst issuableEpicQueries = {\n [TYPE_ISSUE]: {\n query: projectIssueEpicQuery,\n mutation: projectIssueEpicMutation,\n },\n};\n\nconst epicsQueries = {\n [TYPE_ISSUE]: {\n query: groupEpicsQuery,\n },\n};\n\nconst parentsQueries = {\n [TYPE_ISSUE]: {\n query: workItemParentsQuery,\n },\n};\n\nconst issuableEscalationPolicyQueries = {\n [TYPE_ISSUE]: {\n query: issueEscalationPolicyQuery,\n mutation: issueEscalationPolicyMutation,\n },\n};\n\nconst escalationPoliciesQueries = {\n [TYPE_ISSUE]: {\n query: projectEscalationPoliciesQuery,\n },\n};\n\nexport const parentQueries = {\n [TYPE_ISSUE]: {\n query: workItemParent,\n mutation: updateWorkItemParent,\n },\n};\n\nexport const issuableAttributesQueries = {\n ...issuableAttributesQueriesFoss,\n [IssuableAttributeType.Iteration]: {\n current: issuableIterationQueries,\n list: iterationsQueries,\n },\n [IssuableAttributeType.Epic]: {\n current: issuableEpicQueries,\n list: epicsQueries,\n subscription: issuableEpicSubscription,\n },\n [IssuableAttributeType.EscalationPolicy]: {\n current: issuableEscalationPolicyQueries,\n list: escalationPoliciesQueries,\n },\n [IssuableAttributeType.Parent]: {\n current: parentQueries,\n list: parentsQueries,\n subscription: workItemParentSubscription,\n },\n};\n\nexport const ancestorsQueries = {\n [TYPE_EPIC]: {\n query: epicAncestorsQuery,\n },\n};\n\nexport const weightQueries = {\n [TYPE_ISSUE]: {\n query: issueWeightQuery,\n mutation: updateIssueWeightMutation,\n subscription: issuableWeightSubscription,\n },\n};\n\nexport const healthStatusQueries = {\n [TYPE_ISSUE]: {\n mutation: updateStatusMutation,\n query: issueHealthStatusQuery,\n },\n [TYPE_EPIC]: {\n mutation: updateStatusMutation,\n query: issueHealthStatusQuery,\n },\n};\n","import { extend } from '../../vue';\nimport { NAME_TABLE_LITE } from '../../constants/components';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { hasListenerMixin } from '../../mixins/has-listener';\nimport { props as props$1, idMixin } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { props as props$2, captionMixin } from './helpers/mixin-caption';\nimport { props as props$3, colgroupMixin } from './helpers/mixin-colgroup';\nimport { props as props$4, itemsMixin } from './helpers/mixin-items';\nimport { props as props$5, stackedMixin } from './helpers/mixin-stacked';\nimport { props as props$6, tableRendererMixin } from './helpers/mixin-table-renderer';\nimport { props as props$7, tbodyMixin } from './helpers/mixin-tbody';\nimport { props as props$8, tfootMixin } from './helpers/mixin-tfoot';\nimport { props as props$9, theadMixin } from './helpers/mixin-thead';\n\n// --- Props ---\n\nconst props = makePropsConfigurable(sortKeys({\n ...props$1,\n ...props$2,\n ...props$3,\n ...props$4,\n ...props$5,\n ...props$6,\n ...props$7,\n ...props$8,\n ...props$9\n}), NAME_TABLE_LITE);\n\n// --- Main component ---\n\n// @vue/component\nconst BTableLite = /*#__PURE__*/extend({\n name: NAME_TABLE_LITE,\n // Order of mixins is important!\n // They are merged from first to last, followed by this component\n mixins: [\n // General mixins\n attrsMixin, hasListenerMixin, idMixin, normalizeSlotMixin,\n // Required table mixins\n itemsMixin, tableRendererMixin, stackedMixin, theadMixin, tfootMixin, tbodyMixin,\n // Table features mixins\n // These are pretty lightweight, and are useful for lightweight tables\n captionMixin, colgroupMixin],\n props\n\n // Render function is provided by `tableRendererMixin`\n});\n\nexport { BTableLite, props };\n","import { BTableLite } from '../../../vendor/bootstrap-vue/src/components/table/table-lite';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst {\n tableClass\n} = BTableLite.options.props;\nvar script = {\n name: 'GlTableLite',\n components: {\n BTableLite\n },\n inheritAttrs: false,\n props: {\n tableClass,\n fields: {\n type: Array,\n required: false,\n default: null\n },\n stickyHeader: {\n type: Boolean,\n default: false,\n required: false\n }\n },\n computed: {\n stickyHeaderClass() {\n return this.stickyHeader ? 'gl-table--sticky-header' : null;\n },\n localTableClass() {\n return ['gl-table', this.tableClass, this.stickyHeaderClass];\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-table-lite',_vm._g(_vm._b({attrs:{\"table-class\":_vm.localTableClass,\"fields\":_vm.fields},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$scopedSlots)),function(slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}})],null,true)},'b-table-lite',_vm.$attrs,false),_vm.$listeners))};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showRolledUpCount)?_c('div',{attrs:{\"data-testid\":\"work-item-rolled-up-count-wrapper\"}},[(_vm.showDetailedCount)?_c('span',{ref:\"info\",staticClass:\"gl-flex gl-gap-3 gl-text-nowrap gl-text-sm\",attrs:{\"tabindex\":\"0\",\"data-testid\":\"work-item-rolled-up-detailed-count\"}},_vm._l((_vm.filteredRollUpCountsByType),function(rolledUpCount){return _c('span',{key:rolledUpCount.workItemType.name},[_c('work-item-type-icon',{attrs:{\"work-item-icon-name\":rolledUpCount.workItemType.iconName}}),_vm._v(\"\\n \"+_vm._s(rolledUpCount.countsByState.all)+\"\\n \")],1)}),0):_c('span',{ref:\"countBadge\",staticClass:\"gl-inline-block\",attrs:{\"tabindex\":\"0\",\"data-testid\":\"work-item-rolled-up-badge-count\"}},[_c('gl-badge',{attrs:{\"variant\":\"muted\"}},[_vm._v(_vm._s(_vm.totalCountAllByType))])],1),_vm._v(\" \"),(_vm.showDetailedCount)?_c('gl-popover',{attrs:{\"triggers\":\"hover focus\",\"target\":() => _vm.$refs.info,\"data-testid\":\"detailed-popover\"}},[_c('work-item-rolled-up-count-info',{attrs:{\"filtered-roll-up-counts-by-type\":_vm.filteredRollUpCountsByType}})],1):_c('gl-popover',{attrs:{\"triggers\":\"hover focus\",\"target\":() => _vm.$refs.countBadge,\"data-testid\":\"badge-popover\"}},[_c('work-item-rolled-up-count-info',{attrs:{\"filtered-roll-up-counts-by-type\":_vm.filteredRollUpCountsByType}}),_vm._v(\" \"),_c('div',{staticClass:\"gl-text-subtle\",class:{ 'gl-mt-3': _vm.totalCountAllByType > 0 },attrs:{\"data-testid\":\"badge-warning\"}},[(_vm.totalCountAllByType > 0)?_c('gl-icon',{staticClass:\"gl-mr-2\",attrs:{\"name\":\"information-o\",\"size\":16,\"variant\":\"subtle\"}}):_vm._e(),_vm._v(_vm._s(_vm.totalCountAllByType > 0\n ? _vm.$options.i18n.countPermissionText\n : _vm.$options.i18n.noChildItemsText)+\"\\n \")],1)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_rolled_up_count_info.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_rolled_up_count_info.vue?vue&type=script&lang=js\"","<script>\nimport { s__ } from '~/locale';\nimport { sprintfWorkItem } from '~/work_items/constants';\nimport WorkItemTypeIcon from '~/work_items/components/work_item_type_icon.vue';\n\nexport default {\n components: {\n WorkItemTypeIcon,\n },\n props: {\n filteredRollUpCountsByType: {\n type: Array,\n required: true,\n },\n },\n methods: {\n getItemsClosedLabel(workItemTypeName) {\n return sprintfWorkItem(s__('WorkItem| %{workItemType}s closed'), workItemTypeName);\n },\n },\n};\n</script>\n\n<template>\n <div\n v-if=\"filteredRollUpCountsByType.length > 0\"\n class=\"gl-flex gl-flex-col gl-gap-y-2\"\n data-testid=\"rolled-up-count-info\"\n >\n <div\n v-for=\"rolledUpCount in filteredRollUpCountsByType\"\n :key=\"rolledUpCount.workItemType.name\"\n data-testid=\"rolled-up-type-info\"\n >\n <work-item-type-icon :work-item-icon-name=\"rolledUpCount.workItemType.iconName\" />\n <span class=\"gl-font-bold\"\n >{{ rolledUpCount.countsByState.closed }}/{{ rolledUpCount.countsByState.all }}</span\n >\n {{ getItemsClosedLabel(rolledUpCount.workItemType.name) }}\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_rolled_up_count_info.vue?vue&type=template&id=737e2cb6\"\nimport script from \"./work_item_rolled_up_count_info.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_rolled_up_count_info.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.filteredRollUpCountsByType.length > 0)?_c('div',{staticClass:\"gl-flex gl-flex-col gl-gap-y-2\",attrs:{\"data-testid\":\"rolled-up-count-info\"}},_vm._l((_vm.filteredRollUpCountsByType),function(rolledUpCount){return _c('div',{key:rolledUpCount.workItemType.name,attrs:{\"data-testid\":\"rolled-up-type-info\"}},[_c('work-item-type-icon',{attrs:{\"work-item-icon-name\":rolledUpCount.workItemType.iconName}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(rolledUpCount.countsByState.closed)+\"/\"+_vm._s(rolledUpCount.countsByState.all))]),_vm._v(\"\\n \"+_vm._s(_vm.getItemsClosedLabel(rolledUpCount.workItemType.name))+\"\\n \")],1)}),0):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_rolled_up_count.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./work_item_rolled_up_count.vue?vue&type=script&lang=js\"","<script>\nimport { GlPopover, GlBadge, GlIcon } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport WorkItemTypeIcon from '~/work_items/components/work_item_type_icon.vue';\nimport WorkItemRolledUpCountInfo from './work_item_rolled_up_count_info.vue';\n\nexport default {\n i18n: {\n countPermissionText: __('Roll up totals may reflect child items you don’t have access to.'),\n noChildItemsText: __('No child items are currently assigned.'),\n },\n components: {\n GlPopover,\n GlBadge,\n GlIcon,\n WorkItemTypeIcon,\n WorkItemRolledUpCountInfo,\n },\n props: {\n infoType: {\n type: String,\n required: false,\n default: 'badge',\n },\n rolledUpCountsByType: {\n type: Array,\n required: true,\n default: () => [],\n },\n hideCountWhenZero: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n totalCountAllByType() {\n return [...this.rolledUpCountsByType].reduce(\n (total, rollUpCounts) => total + rollUpCounts.countsByState.all,\n 0,\n );\n },\n showDetailedCount() {\n return this.infoType === 'detailed';\n },\n filteredRollUpCountsByType() {\n return this.rolledUpCountsByType.filter((rollUpCount) =>\n this.rolledUpCountExists(rollUpCount),\n );\n },\n showRolledUpCount() {\n return this.hideCountWhenZero ? this.totalCountAllByType > 0 : true;\n },\n },\n methods: {\n workItemTypeCount(workItemTypeName) {\n return this.rolledUpCountsByType.find(\n (rollUpCount) => rollUpCount?.workItemType?.name === workItemTypeName,\n );\n },\n rolledUpCountExists(rolledUpCount) {\n return rolledUpCount?.countsByState?.all > 0;\n },\n },\n};\n</script>\n<template>\n <div v-if=\"showRolledUpCount\" data-testid=\"work-item-rolled-up-count-wrapper\">\n <span\n v-if=\"showDetailedCount\"\n ref=\"info\"\n tabindex=\"0\"\n class=\"gl-flex gl-gap-3 gl-text-nowrap gl-text-sm\"\n data-testid=\"work-item-rolled-up-detailed-count\"\n >\n <span\n v-for=\"rolledUpCount in filteredRollUpCountsByType\"\n :key=\"rolledUpCount.workItemType.name\"\n >\n <work-item-type-icon :work-item-icon-name=\"rolledUpCount.workItemType.iconName\" />\n {{ rolledUpCount.countsByState.all }}\n </span>\n </span>\n\n <span\n v-else\n ref=\"countBadge\"\n tabindex=\"0\"\n class=\"gl-inline-block\"\n data-testid=\"work-item-rolled-up-badge-count\"\n >\n <gl-badge variant=\"muted\">{{ totalCountAllByType }}</gl-badge>\n </span>\n\n <gl-popover\n v-if=\"showDetailedCount\"\n triggers=\"hover focus\"\n :target=\"() => $refs.info\"\n data-testid=\"detailed-popover\"\n >\n <work-item-rolled-up-count-info\n :filtered-roll-up-counts-by-type=\"filteredRollUpCountsByType\"\n />\n </gl-popover>\n\n <gl-popover\n v-else\n triggers=\"hover focus\"\n :target=\"() => $refs.countBadge\"\n data-testid=\"badge-popover\"\n >\n <work-item-rolled-up-count-info\n :filtered-roll-up-counts-by-type=\"filteredRollUpCountsByType\"\n />\n <div\n class=\"gl-text-subtle\"\n :class=\"{ 'gl-mt-3': totalCountAllByType > 0 }\"\n data-testid=\"badge-warning\"\n >\n <gl-icon\n v-if=\"totalCountAllByType > 0\"\n name=\"information-o\"\n class=\"gl-mr-2\"\n :size=\"16\"\n variant=\"subtle\"\n />{{\n totalCountAllByType > 0\n ? $options.i18n.countPermissionText\n : $options.i18n.noChildItemsText\n }}\n </div>\n </gl-popover>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_rolled_up_count.vue?vue&type=template&id=d7aea4ce\"\nimport script from \"./work_item_rolled_up_count.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_rolled_up_count.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemTodoMarkDone\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"TodoMarkDoneInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"todoMutation\"},\"name\":{\"kind\":\"Name\",\"value\":\"todoMarkDone\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"todo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":161}};\n doc.loc.source = {\"body\":\"mutation workItemTodoMarkDone($input: TodoMarkDoneInput!) {\\n todoMutation: todoMarkDone(input: $input) {\\n todo {\\n id\\n state\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"workItemTodoMarkDone\"] = oneQuery(doc, \"workItemTodoMarkDone\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"deleteTimelog\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"TimelogDeleteInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelogDelete\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelog\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueTimeTrackingFragment\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestTimeTrackingFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":422}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/issue_time_tracking.fragment.graphql\\\"\\n#import \\\"~/graphql_shared/fragments/merge_request_time_tracking.fragment.graphql\\\"\\n\\nmutation deleteTimelog($input: TimelogDeleteInput!) {\\n timelogDelete(input: $input) {\\n errors\\n timelog {\\n id\\n issue {\\n ...IssueTimeTrackingFragment\\n }\\n mergeRequest {\\n ...MergeRequestTimeTrackingFragment\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/issue_time_tracking.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/merge_request_time_tracking.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"deleteTimelog\"] = oneQuery(doc, \"deleteTimelog\");\n \n","import { Wormhole, PortalTarget } from 'portal-vue';\nimport { extend } from '../../vue';\nimport { NAME_TOASTER } from '../../constants/components';\nimport { EVENT_NAME_DESTROYED } from '../../constants/events';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { requestAF, removeClass } from '../../utils/dom';\nimport { getRootEventName } from '../../utils/events';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { warn } from '../../utils/warn';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\n\n// --- Helper components ---\n\n// @vue/component\nconst DefaultTransition = /*#__PURE__*/extend({\n mixins: [normalizeSlotMixin],\n data() {\n return {\n // Transition classes base name\n name: 'b-toaster'\n };\n },\n methods: {\n onAfterEnter(el) {\n // Work around a Vue.js bug where `*-enter-to` class is not removed\n // See: https://github.com/vuejs/vue/pull/7901\n // The `*-move` class is also stuck on elements that moved,\n // but there are no JavaScript hooks to handle after move\n // See: https://github.com/vuejs/vue/pull/7906\n requestAF(() => {\n removeClass(el, `${this.name}-enter-to`);\n });\n }\n },\n render(h) {\n return h('transition-group', {\n props: {\n tag: 'div',\n name: this.name\n },\n on: {\n afterEnter: this.onAfterEnter\n }\n }, this.normalizeSlot());\n }\n});\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n // Allowed: 'true' or 'false' or `null`\n ariaAtomic: makeProp(PROP_TYPE_STRING),\n ariaLive: makeProp(PROP_TYPE_STRING),\n name: makeProp(PROP_TYPE_STRING, undefined, true),\n // Required\n // Aria role\n role: makeProp(PROP_TYPE_STRING)\n}, NAME_TOASTER);\n\n// --- Main component ---\n\n// @vue/component\nconst BToaster = /*#__PURE__*/extend({\n name: NAME_TOASTER,\n mixins: [listenOnRootMixin],\n props,\n data() {\n return {\n // We don't render on SSR or if a an existing target found\n doRender: false,\n dead: false,\n // Toaster names cannot change once created\n staticName: this.name\n };\n },\n beforeMount() {\n const {\n name\n } = this;\n this.staticName = name;\n\n /* istanbul ignore if */\n if (Wormhole.hasTarget(name)) {\n warn(`A \"<portal-target>\" with name \"${name}\" already exists in the document.`, NAME_TOASTER);\n this.dead = true;\n } else {\n this.doRender = true;\n }\n },\n beforeDestroy() {\n // Let toasts made with `this.$bvToast.toast()` know that this toaster\n // is being destroyed and should should also destroy/hide themselves\n if (this.doRender) {\n this.emitOnRoot(getRootEventName(NAME_TOASTER, EVENT_NAME_DESTROYED), this.name);\n }\n },\n destroyed() {\n // Remove from DOM if needed\n const {\n $el\n } = this;\n /* istanbul ignore next: difficult to test */\n if ($el && $el.parentNode) {\n $el.parentNode.removeChild($el);\n }\n },\n render(h) {\n let $toaster = h('div', {\n class: ['gl-hidden', {\n 'b-dead-toaster': this.dead\n }]\n });\n if (this.doRender) {\n const $target = h(PortalTarget, {\n staticClass: 'b-toaster-slot',\n props: {\n name: this.staticName,\n multiple: true,\n tag: 'div',\n slim: false,\n // transition: this.transition || DefaultTransition\n transition: DefaultTransition\n }\n });\n $toaster = h('div', {\n staticClass: 'b-toaster',\n class: [this.staticName],\n attrs: {\n id: this.staticName,\n // Fallback to null to make sure attribute doesn't exist\n role: this.role || null,\n 'aria-live': this.ariaLive,\n 'aria-atomic': this.ariaAtomic\n }\n }, [$target]);\n }\n return $toaster;\n }\n});\n\nexport { BToaster, DefaultTransition, props };\n","import { Wormhole, Portal } from 'portal-vue';\nimport { extend, COMPONENT_UID_KEY } from '../../vue';\nimport { NAME_TOAST, NAME_TOASTER } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_SHOW, EVENT_NAME_HIDE, EVENT_NAME_DESTROYED, EVENT_OPTIONS_NO_CAPTURE, EVENT_NAME_SHOWN, EVENT_NAME_HIDDEN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_TOAST_TITLE, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { requestAF } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOnOff } from '../../utils/events';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makePropsConfigurable, makeProp, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { createNewChildComponent } from '../../utils/create-new-child-component';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { props as props$2, idMixin } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { scopedStyleMixin } from '../../mixins/scoped-style';\nimport { props as props$1, BLink } from '../link/link';\nimport { BVTransition } from '../transition/bv-transition';\nimport { BToaster } from './toaster';\n\n// --- Constants ---\n\nconst {\n mixin: modelMixin,\n props: modelProps,\n prop: MODEL_PROP_NAME,\n event: MODEL_EVENT_NAME\n} = makeModelMixin('visible', {\n type: PROP_TYPE_BOOLEAN,\n defaultValue: false,\n event: EVENT_NAME_CHANGE\n});\nconst MIN_DURATION = 1000;\n\n// --- Props ---\n\nconst linkProps = pick(props$1, ['href', 'to']);\nconst props = makePropsConfigurable(sortKeys({\n ...props$2,\n ...modelProps,\n ...linkProps,\n appendToast: makeProp(PROP_TYPE_BOOLEAN, false),\n autoHideDelay: makeProp(PROP_TYPE_NUMBER_STRING, 5000),\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n // Switches role to 'status' and aria-live to 'polite'\n isStatus: makeProp(PROP_TYPE_BOOLEAN, false),\n noAutoHide: makeProp(PROP_TYPE_BOOLEAN, false),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noHoverPause: makeProp(PROP_TYPE_BOOLEAN, false),\n solid: makeProp(PROP_TYPE_BOOLEAN, false),\n // Render the toast in place, rather than in a portal-target\n static: makeProp(PROP_TYPE_BOOLEAN, false),\n title: makeProp(PROP_TYPE_STRING),\n toastClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n toaster: makeProp(PROP_TYPE_STRING, 'b-toaster-top-right'),\n variant: makeProp(PROP_TYPE_STRING)\n}), NAME_TOAST);\n\n// --- Main component ---\n\n// @vue/component\nconst BToast = /*#__PURE__*/extend({\n name: NAME_TOAST,\n mixins: [attrsMixin, idMixin, modelMixin, listenOnRootMixin, normalizeSlotMixin, scopedStyleMixin],\n inheritAttrs: false,\n props,\n data() {\n return {\n isMounted: false,\n doRender: false,\n localShow: false,\n isTransitioning: false,\n isHiding: false,\n order: 0,\n dismissStarted: 0,\n resumeDismiss: 0\n };\n },\n computed: {\n toastClasses() {\n const {\n appendToast,\n variant\n } = this;\n return {\n 'b-toast-solid': this.solid,\n 'b-toast-append': appendToast,\n 'b-toast-prepend': !appendToast,\n [`b-toast-${variant}`]: variant\n };\n },\n slotScope() {\n const {\n hide\n } = this;\n return {\n hide\n };\n },\n computedDuration() {\n // Minimum supported duration is 1 second\n return mathMax(toInteger(this.autoHideDelay, 0), MIN_DURATION);\n },\n computedToaster() {\n return String(this.toaster);\n },\n transitionHandlers() {\n return {\n beforeEnter: this.onBeforeEnter,\n afterEnter: this.onAfterEnter,\n beforeLeave: this.onBeforeLeave,\n afterLeave: this.onAfterLeave\n };\n },\n computedAttrs() {\n return {\n ...this.bvAttrs,\n id: this.safeId(),\n tabindex: '0'\n };\n }\n },\n watch: {\n [MODEL_PROP_NAME](newValue) {\n this[newValue ? 'show' : 'hide']();\n },\n localShow(newValue) {\n if (newValue !== this[MODEL_PROP_NAME]) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n },\n /* istanbul ignore next */\n toaster() {\n // If toaster target changed, make sure toaster exists\n this.$nextTick(this.ensureToaster);\n },\n /* istanbul ignore next */\n static(newValue) {\n // If static changes to true, and the toast is showing,\n // ensure the toaster target exists\n if (newValue && this.localShow) {\n this.ensureToaster();\n }\n }\n },\n created() {\n // Create private non-reactive props\n this.$_dismissTimer = null;\n },\n mounted() {\n this.isMounted = true;\n this.$nextTick(() => {\n if (this[MODEL_PROP_NAME]) {\n requestAF(() => {\n this.show();\n });\n }\n });\n // Listen for global $root show events\n this.listenOnRoot(getRootActionEventName(NAME_TOAST, EVENT_NAME_SHOW), id => {\n if (id === this.safeId()) {\n this.show();\n }\n });\n // Listen for global $root hide events\n this.listenOnRoot(getRootActionEventName(NAME_TOAST, EVENT_NAME_HIDE), id => {\n if (!id || id === this.safeId()) {\n this.hide();\n }\n });\n // Make sure we hide when toaster is destroyed\n /* istanbul ignore next: difficult to test */\n this.listenOnRoot(getRootEventName(NAME_TOASTER, EVENT_NAME_DESTROYED), toaster => {\n /* istanbul ignore next */\n if (toaster === this.computedToaster) {\n this.hide();\n }\n });\n },\n beforeDestroy() {\n this.clearDismissTimer();\n },\n methods: {\n show() {\n if (!this.localShow) {\n this.ensureToaster();\n const showEvent = this.buildEvent(EVENT_NAME_SHOW);\n this.emitEvent(showEvent);\n this.dismissStarted = this.resumeDismiss = 0;\n this.order = Date.now() * (this.appendToast ? 1 : -1);\n this.isHiding = false;\n this.doRender = true;\n this.$nextTick(() => {\n // We show the toast after we have rendered the portal and b-toast wrapper\n // so that screen readers will properly announce the toast\n requestAF(() => {\n this.localShow = true;\n });\n });\n }\n },\n hide() {\n if (this.localShow) {\n const hideEvent = this.buildEvent(EVENT_NAME_HIDE);\n this.emitEvent(hideEvent);\n this.setHoverHandler(false);\n this.dismissStarted = this.resumeDismiss = 0;\n this.clearDismissTimer();\n this.isHiding = true;\n requestAF(() => {\n this.localShow = false;\n });\n }\n },\n buildEvent(type) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new BvEvent(type, {\n cancelable: false,\n target: this.$el || null,\n relatedTarget: null,\n ...options,\n vueTarget: this,\n componentId: this.safeId()\n });\n },\n emitEvent(bvEvent) {\n const {\n type\n } = bvEvent;\n this.emitOnRoot(getRootEventName(NAME_TOAST, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n ensureToaster() {\n if (this.static) {\n return;\n }\n const {\n computedToaster\n } = this;\n if (!Wormhole.hasTarget(computedToaster)) {\n const div = document.createElement('div');\n document.body.appendChild(div);\n const toaster = createNewChildComponent(this.bvEventRoot, BToaster, {\n propsData: {\n name: computedToaster\n }\n });\n toaster.$mount(div);\n }\n },\n startDismissTimer() {\n this.clearDismissTimer();\n if (!this.noAutoHide) {\n this.$_dismissTimer = setTimeout(this.hide, this.resumeDismiss || this.computedDuration);\n this.dismissStarted = Date.now();\n this.resumeDismiss = 0;\n }\n },\n clearDismissTimer() {\n clearTimeout(this.$_dismissTimer);\n this.$_dismissTimer = null;\n },\n setHoverHandler(on) {\n const el = this.$refs['b-toast'];\n eventOnOff(on, el, 'mouseenter', this.onPause, EVENT_OPTIONS_NO_CAPTURE);\n eventOnOff(on, el, 'mouseleave', this.onUnPause, EVENT_OPTIONS_NO_CAPTURE);\n },\n onPause() {\n // Determine time remaining, and then pause timer\n if (this.noAutoHide || this.noHoverPause || !this.$_dismissTimer || this.resumeDismiss) {\n return;\n }\n const passed = Date.now() - this.dismissStarted;\n if (passed > 0) {\n this.clearDismissTimer();\n this.resumeDismiss = mathMax(this.computedDuration - passed, MIN_DURATION);\n }\n },\n onUnPause() {\n // Restart timer with max of time remaining or 1 second\n if (this.noAutoHide || this.noHoverPause || !this.resumeDismiss) {\n this.resumeDismiss = this.dismissStarted = 0;\n return;\n }\n this.startDismissTimer();\n },\n onLinkClick() {\n // We delay the close to allow time for the\n // browser to process the link click\n this.$nextTick(() => {\n requestAF(() => {\n this.hide();\n });\n });\n },\n onBeforeEnter() {\n this.isTransitioning = true;\n },\n onAfterEnter() {\n this.isTransitioning = false;\n const hiddenEvent = this.buildEvent(EVENT_NAME_SHOWN);\n this.emitEvent(hiddenEvent);\n this.startDismissTimer();\n this.setHoverHandler(true);\n },\n onBeforeLeave() {\n this.isTransitioning = true;\n },\n onAfterLeave() {\n this.isTransitioning = false;\n this.order = 0;\n this.resumeDismiss = this.dismissStarted = 0;\n const hiddenEvent = this.buildEvent(EVENT_NAME_HIDDEN);\n this.emitEvent(hiddenEvent);\n this.doRender = false;\n },\n // Render helper for generating the toast\n makeToast(h) {\n const {\n slotScope\n } = this;\n const link = isLink(this);\n const $headerContent = [];\n const $title = this.normalizeSlot(SLOT_NAME_TOAST_TITLE, slotScope);\n if ($title) {\n $headerContent.push($title);\n }\n let $header = h();\n if ($headerContent.length > 0) {\n $header = h(this.headerTag, {\n staticClass: 'toast-header',\n class: this.headerClass\n }, $headerContent);\n }\n const $body = h(link ? BLink : 'div', {\n staticClass: 'toast-body',\n class: this.bodyClass,\n props: link ? pluckProps(linkProps, this) : {},\n on: link ? {\n click: this.onLinkClick\n } : {}\n }, this.normalizeSlot(SLOT_NAME_DEFAULT, slotScope));\n return h('div', {\n staticClass: 'toast',\n class: this.toastClass,\n attrs: this.computedAttrs,\n key: `toast-${this[COMPONENT_UID_KEY]}`,\n ref: 'toast'\n }, [$header, $body]);\n }\n },\n render(h) {\n if (!this.doRender || !this.isMounted) {\n return h();\n }\n const {\n order,\n static: isStatic,\n isHiding,\n isStatus\n } = this;\n const name = `b-toast-${this[COMPONENT_UID_KEY]}`;\n const $toast = h('div', {\n staticClass: 'b-toast',\n class: this.toastClasses,\n attrs: {\n // If scoped styles are applied and the toast is not static,\n // make sure the scoped style data attribute is applied\n ...(isStatic ? {} : this.scopedStyleAttrs),\n id: this.safeId('_toast_outer'),\n role: isHiding ? null : isStatus ? 'status' : 'alert',\n 'aria-live': isHiding ? null : isStatus ? 'polite' : 'assertive',\n 'aria-atomic': isHiding ? null : 'true'\n },\n key: name,\n ref: 'b-toast'\n }, [h(BVTransition, {\n props: {\n noFade: this.noFade\n },\n on: this.transitionHandlers\n }, [this.localShow ? this.makeToast(h) : h()])]);\n return h(Portal, {\n props: {\n name,\n to: this.computedToaster,\n order,\n slim: true,\n disabled: isStatic\n }\n }, [$toast]);\n }\n});\n\nexport { BToast, props };\n","import { NAME_TOAST_POP, NAME_TOASTER, NAME_TOAST } from '../../../constants/components';\nimport { HOOK_EVENT_NAME_DESTROYED, EVENT_NAME_HIDDEN, EVENT_NAME_DESTROYED, EVENT_NAME_SHOW, EVENT_NAME_HIDE } from '../../../constants/events';\nimport { useParentMixin } from '../../../mixins/use-parent';\nimport { concat } from '../../../utils/array';\nimport { getComponentConfig } from '../../../utils/config';\nimport { requestAF } from '../../../utils/dom';\nimport { getRootEventName, getRootActionEventName } from '../../../utils/events';\nimport { isUndefined } from '../../../utils/inspect';\nimport { keys, omit, hasOwnProperty, defineProperty, assign, defineProperties, readonlyDescriptor } from '../../../utils/object';\nimport { pluginFactory } from '../../../utils/plugins';\nimport { warn, warnNotClient } from '../../../utils/warn';\nimport { createNewChildComponent } from '../../../utils/create-new-child-component';\nimport { getEventRoot } from '../../../utils/get-event-root';\nimport { props, BToast } from '../toast';\n\n/**\n * Plugin for adding `$bvToast` property to all Vue instances\n */\n\n// --- Constants ---\n\nconst PROP_NAME = '$bvToast';\nconst PROP_NAME_PRIV = '_bv__toast';\n\n// Base toast props that are allowed\n// Some may be ignored or overridden on some message boxes\n// Prop ID is allowed, but really only should be used for testing\n// We need to add it in explicitly as it comes from the `idMixin`\nconst BASE_PROPS = ['id', ...keys(omit(props, ['static', 'visible']))];\n\n// Map prop names to toast slot names\nconst propsToSlots = {\n toastContent: 'default',\n title: 'toast-title'\n};\n\n// --- Helper methods ---\n\n// Method to filter only recognized props that are not undefined\nconst filterOptions = options => {\n return BASE_PROPS.reduce((memo, key) => {\n if (!isUndefined(options[key])) {\n memo[key] = options[key];\n }\n return memo;\n }, {});\n};\n\n// Method to install `$bvToast` VM injection\nconst plugin = Vue => {\n // Create a private sub-component constructor that\n // extends BToast and self-destructs after hidden\n // @vue/component\n const BVToastPop = Vue.extend({\n name: NAME_TOAST_POP,\n extends: BToast,\n mixins: [useParentMixin],\n destroyed() {\n // Make sure we not in document any more\n const {\n $el\n } = this;\n if ($el && $el.parentNode) {\n $el.parentNode.removeChild($el);\n }\n },\n mounted() {\n // Self destruct handler\n const handleDestroy = () => {\n // Ensure the toast has been force hidden\n this.localShow = false;\n this.doRender = false;\n this.$nextTick(() => {\n this.$nextTick(() => {\n // In a `requestAF()` to release control back to application\n // and to allow the portal-target time to remove the content\n requestAF(() => {\n this.$destroy();\n });\n });\n });\n };\n // Self destruct if parent destroyed\n this.bvParent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy);\n // Self destruct after hidden\n this.$once(EVENT_NAME_HIDDEN, handleDestroy);\n // Self destruct when toaster is destroyed\n this.listenOnRoot(getRootEventName(NAME_TOASTER, EVENT_NAME_DESTROYED), toaster => {\n /* istanbul ignore next: hard to test */\n if (toaster === this.toaster) {\n handleDestroy();\n }\n });\n }\n });\n\n // Private method to generate the on-demand toast\n const makeToast = (props, parent) => {\n if (warnNotClient(PROP_NAME)) {\n /* istanbul ignore next */\n return;\n }\n // Create an instance of `BVToastPop` component\n const toast = createNewChildComponent(parent, BVToastPop, {\n // We set parent as the local VM so these toasts can emit events on the\n // app `$root`, and it ensures `BToast` is destroyed when parent is destroyed\n propsData: {\n ...filterOptions(getComponentConfig(NAME_TOAST)),\n // Add in (filtered) user supplied props\n ...omit(props, keys(propsToSlots)),\n // Props that can't be overridden\n static: false,\n visible: true\n }\n });\n // Convert certain props to slots\n keys(propsToSlots).forEach(prop => {\n const value = props[prop];\n if (!isUndefined(value)) {\n toast.$slots[propsToSlots[prop]] = concat(value);\n }\n });\n // Create a mount point (a DIV) and mount it (which triggers the show)\n const div = document.createElement('div');\n document.body.appendChild(div);\n toast.$mount(div);\n };\n\n // Declare BvToast instance property class\n class BvToast {\n constructor(vm) {\n // Assign the new properties to this instance\n assign(this, {\n _vm: vm,\n _root: getEventRoot(vm)\n });\n // Set these properties as read-only and non-enumerable\n defineProperties(this, {\n _vm: readonlyDescriptor(),\n _root: readonlyDescriptor()\n });\n }\n\n // --- Public Instance methods ---\n\n // Opens a user defined toast and returns immediately\n toast(content) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!content || warnNotClient(PROP_NAME)) {\n /* istanbul ignore next */\n return;\n }\n makeToast({\n ...filterOptions(options),\n toastContent: content\n }, this._vm);\n }\n\n // shows a `<b-toast>` component with the specified ID\n show(id) {\n if (id) {\n this._root.$emit(getRootActionEventName(NAME_TOAST, EVENT_NAME_SHOW), id);\n }\n }\n\n // Hide a toast with specified ID, or if not ID all toasts\n hide() {\n let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n this._root.$emit(getRootActionEventName(NAME_TOAST, EVENT_NAME_HIDE), id);\n }\n }\n\n // Add our instance mixin\n Vue.mixin({\n beforeCreate() {\n // Because we need access to `$root` for `$emits`, and VM for parenting,\n // we have to create a fresh instance of `BvToast` for each VM\n this[PROP_NAME_PRIV] = new BvToast(this);\n }\n });\n\n // Define our read-only `$bvToast` instance property\n // Placed in an if just in case in HMR mode\n if (!hasOwnProperty(Vue.prototype, PROP_NAME)) {\n defineProperty(Vue.prototype, PROP_NAME, {\n get() {\n /* istanbul ignore next */\n if (!this || !this[PROP_NAME_PRIV]) {\n warn(`\"${PROP_NAME}\" must be accessed from a Vue instance \"this\" context.`, NAME_TOAST);\n }\n return this[PROP_NAME_PRIV];\n }\n });\n }\n};\nconst BVToastPlugin = /*#__PURE__*/pluginFactory({\n plugins: {\n plugin\n }\n});\n\nexport { BVToastPlugin };\n","import { BVToastPlugin } from './helpers/bv-toast';\nimport { BToast } from './toast';\nexport { BToast } from './toast';\nimport { BToaster } from './toaster';\nexport { BToaster } from './toaster';\nimport { pluginFactory } from '../../utils/plugins';\n\nconst ToastPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BToast,\n BToaster\n },\n // $bvToast injection\n plugins: {\n BVToastPlugin\n }\n});\n\nexport { ToastPlugin };\n","import isFunction from 'lodash/isFunction';\nimport { ToastPlugin } from '../../../vendor/bootstrap-vue/src/components/toast/index';\nimport CloseButton from '../../shared_components/close_button/close_button';\n\n/* eslint-disable import/no-default-export */\nconst DEFAULT_OPTIONS = {\n autoHideDelay: 5000,\n toastClass: 'gl-toast',\n isStatus: true,\n toaster: 'b-toaster-bottom-left'\n};\nlet toastsCount = 0;\nfunction renderTitle(h, toast, options) {\n const nodes = [h(CloseButton, {\n class: ['gl-toast-close-button'],\n on: {\n click: toast.hide\n }\n })];\n if (options.action) {\n nodes.splice(0, 0, h('a', {\n role: 'button',\n class: ['gl-toast-action'],\n on: {\n click: e => options.action.onClick(e, toast)\n }\n }, options.action.text));\n }\n return nodes;\n}\nfunction showToast(message) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility\n const id = `gl-toast-${toastsCount}`;\n toastsCount += 1;\n const hide = () => {\n this.$bvToast.hide(id);\n };\n const toast = {\n id,\n hide\n };\n if (isFunction(options.onComplete)) {\n const toastHiddenCallback = e => {\n if (e.componentId === id) {\n this.$root.$off('bv::toast:hidden', toastHiddenCallback);\n options.onComplete(e);\n }\n };\n this.$root.$on('bv::toast:hidden', toastHiddenCallback);\n }\n const updatedAutoHideDelay = !Number.isNaN(options === null || options === void 0 ? void 0 : options.autoHideDelay) ? {\n autoHideDelay: options.autoHideDelay\n } : null;\n this.$bvToast.toast(message, {\n ...DEFAULT_OPTIONS,\n ...updatedAutoHideDelay,\n id,\n title: renderTitle(this.$createElement, toast, options)\n });\n return toast;\n}\n\n/**\n * Note: This is not a typical Vue component and needs to be registered before instantiating a Vue app.\n * Once registered, the toast will be globally available throughout your app.\n *\n * See https://gitlab-org.gitlab.io/gitlab-ui/ for detailed documentation.\n */\nvar toast = {\n install(Vue) {\n Vue.use(ToastPlugin);\n Vue.mixin({\n beforeCreate() {\n if (this.$toast) {\n return;\n }\n this.$toast = {\n show: showToast.bind(this)\n };\n }\n });\n }\n};\n\nexport default toast;\n","/**\n * Get query parameters used for users request from passed `options` parameter\n * @param {Object} options e.g. { currentUserId: 1, fooBar: 'baz' }\n * @param {Object} paramsMap e.g. { user_id: 'currentUserId', foo_bar: 'fooBar' }\n */\nexport const getAjaxUsersSelectParams = (options, paramsMap) => {\n return Object.keys(paramsMap).reduce((accumulator, paramKey) => {\n const optionKey = paramsMap[paramKey];\n accumulator[paramKey] = options[optionKey] || null;\n\n return accumulator;\n }, {});\n};\n","/* eslint-disable func-names, consistent-return, no-shadow, no-self-compare, no-unused-expressions, camelcase, no-param-reassign */\n/* global Issuable */\n/* global emitSidebarEvent */\n\nimport $ from 'jquery';\nimport { escape, template, uniqBy } from 'lodash';\nimport { AJAX_USERS_SELECT_PARAMS_MAP } from '~/users_select/constants';\nimport initDeprecatedJQueryDropdown from '~/deprecated_jquery_dropdown';\nimport { TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { isUserBusy } from '~/set_status_modal/utils';\nimport { fixTitle, dispose } from '~/tooltips';\nimport axios from '~/lib/utils/axios_utils';\nimport { parseBoolean, spriteIcon } from '~/lib/utils/common_utils';\nimport { s__, __, sprintf } from '~/locale';\nimport { getAjaxUsersSelectParams } from './utils';\n\n// TODO: remove eventHub hack after code splitting refactor\nwindow.emitSidebarEvent = window.emitSidebarEvent || $.noop;\n\nfunction UsersSelect(currentUser, els, options = {}) {\n const elsClassName = els?.toString().match('.(.+$)')[1];\n const $els = $(els || '.js-user-search');\n this.users = this.users.bind(this);\n this.usersPath = '/-/autocomplete/users.json';\n if (currentUser != null) {\n if (typeof currentUser === 'object') {\n this.currentUser = currentUser;\n } else {\n this.currentUser = JSON.parse(currentUser);\n }\n }\n\n const { handleClick, states } = options;\n\n this.dropdowns = $els\n .map((i, dropdown) => {\n const userSelect = this;\n const $dropdown = $(dropdown);\n const options = {\n states,\n projectId: $dropdown.data('projectId'),\n groupId: $dropdown.data('groupId'),\n showCurrentUser: $dropdown.data('currentUser'),\n todoFilter: $dropdown.data('todoFilter'),\n todoStateFilter: $dropdown.data('todoStateFilter'),\n iid: $dropdown.data('iid'),\n issuableType: $dropdown.data('issuableType'),\n targetBranch: $dropdown.data('targetBranch'),\n authorId: $dropdown.data('authorId'),\n showSuggested: $dropdown.data('showSuggested'),\n };\n const showNullUser = $dropdown.data('nullUser');\n const defaultNullUser = $dropdown.data('nullUserDefault');\n const showMenuAbove = $dropdown.data('showMenuAbove');\n const showAnyUser = $dropdown.data('anyUser');\n const firstUser = $dropdown.data('firstUser');\n const defaultLabel = $dropdown.data('defaultLabel');\n const issueURL = $dropdown.data('issueUpdate');\n const $selectbox = $dropdown.closest('.selectbox');\n const $assignToMeLink = $selectbox.next('.assign-to-me-link');\n let $block = $selectbox.closest('.block');\n const abilityName = $dropdown.data('abilityName');\n let $value = $block.find('.value');\n const $collapsedSidebar = $block.find('.sidebar-collapsed-user');\n const $loading = $block.find('.block-loading').addClass('gl-hidden');\n const selectedIdDefault = defaultNullUser && showNullUser ? 0 : null;\n let selectedId = $dropdown.data('selected');\n let assignTo;\n let assigneeTemplate;\n let collapsedAssigneeTemplate;\n\n const suggestedReviewersHelpPath = $dropdown.data('suggestedReviewersHelpPath');\n const suggestedReviewersHeaderTemplate = template(\n `<div class=\"gl-flex gl-items-center\">\n <%- header %>\n <a\n title=\"${s__('SuggestedReviewers|Learn about suggested reviewers')}\"\n href=\"${suggestedReviewersHelpPath}\"\n rel=\"noopener\"\n target=\"_blank\"\n aria-label=\"${s__('SuggestedReviewers|Suggested reviewers help link')}\"\n class=\"hover:!gl-bg-transparent !gl-p-0 has-tooltip\">\n ${spriteIcon('question-o', 'gl-ml-3 gl-icon s16')}\n </a>\n </div>`,\n );\n\n if (selectedId === undefined) {\n selectedId = selectedIdDefault;\n }\n\n const assignYourself = function () {\n const unassignedSelected = $dropdown\n .closest('.selectbox')\n .find(`input[name='${$dropdown.data('fieldName')}'][value=0]`);\n\n if (unassignedSelected) {\n unassignedSelected.remove();\n }\n\n // Save current selected user to the DOM\n const currentUserInfo = $dropdown.data('currentUserInfo') || {};\n const currentUser = userSelect.currentUser || {};\n const fieldName = $dropdown.data('fieldName');\n const userName = currentUserInfo.name;\n const userId = currentUserInfo.id || currentUser.id;\n\n const inputHtmlString = template(`\n <input type=\"hidden\" name=\"<%- fieldName %>\"\n data-meta=\"<%- userName %>\"\n value=\"<%- userId %>\" />\n `)({ fieldName, userName, userId });\n\n if ($selectbox) {\n $dropdown.parent().before(inputHtmlString);\n } else {\n $dropdown.after(inputHtmlString);\n }\n };\n\n if ($block[0]) {\n $block[0].addEventListener('assignYourself', assignYourself);\n }\n\n const getSelectedUserInputs = function () {\n return $selectbox.find(`input[name=\"${$dropdown.data('fieldName')}\"]`);\n };\n\n const getSelected = function () {\n return getSelectedUserInputs()\n .map((index, input) => parseInt(input.value, 10))\n .get();\n };\n\n const checkMaxSelect = function () {\n const maxSelect = $dropdown.data('maxSelect');\n if (maxSelect) {\n const selected = getSelected();\n\n if (selected.length > maxSelect) {\n const firstSelectedId = selected[0];\n const firstSelected = $dropdown\n .closest('.selectbox')\n .find(`input[name='${$dropdown.data('fieldName')}'][value=${firstSelectedId}]`);\n\n firstSelected.remove();\n\n if ($dropdown.hasClass(elsClassName)) {\n emitSidebarEvent('sidebar.removeReviewer', {\n id: firstSelectedId,\n });\n } else {\n emitSidebarEvent('sidebar.removeAssignee', {\n id: firstSelectedId,\n });\n }\n }\n }\n };\n\n const getMultiSelectDropdownTitle = function (selectedUser, isSelected) {\n const selectedUsers = getSelected().filter((u) => u !== 0);\n\n const firstUser = getSelectedUserInputs()\n .map((index, input) => ({\n name: input.dataset.meta,\n value: parseInt(input.value, 10),\n }))\n .filter((u) => u.id !== 0)\n .get(0);\n\n if (selectedUsers.length === 0) {\n return s__('UsersSelect|Unassigned');\n }\n if (selectedUsers.length === 1) {\n return firstUser.name;\n }\n if (isSelected) {\n const otherSelected = selectedUsers.filter((s) => s !== selectedUser.id);\n return sprintf(s__('UsersSelect|%{name} + %{length} more'), {\n name: selectedUser.name,\n length: otherSelected.length,\n });\n }\n return sprintf(s__('UsersSelect|%{name} + %{length} more'), {\n name: firstUser.name,\n length: selectedUsers.length - 1,\n });\n };\n\n $assignToMeLink.on('click', (e) => {\n e.preventDefault();\n $(e.currentTarget).hide();\n\n if ($dropdown.data('multiSelect')) {\n assignYourself();\n checkMaxSelect();\n\n const currentUserInfo = $dropdown.data('currentUserInfo');\n $dropdown\n .find('.dropdown-toggle-text')\n .text(getMultiSelectDropdownTitle(currentUserInfo))\n .removeClass('is-default');\n } else {\n const $input = $(`input[name=\"${$dropdown.data('fieldName')}\"]`);\n $input.val(gon.current_user_id);\n selectedId = $input.val();\n $dropdown\n .find('.dropdown-toggle-text')\n .text(gon.current_user_fullname)\n .removeClass('is-default');\n }\n });\n\n $block.on('click', '.js-assign-yourself', (e) => {\n e.preventDefault();\n return assignTo(userSelect.currentUser.id);\n });\n\n assignTo = function (selected) {\n const data = {};\n data[abilityName] = {};\n data[abilityName].assignee_id = selected != null ? selected : null;\n $loading.removeClass('gl-hidden');\n $dropdown.trigger('loading.gl.dropdown');\n\n return axios.put(issueURL, data).then(({ data }) => {\n let user = {};\n let tooltipTitle;\n $dropdown.trigger('loaded.gl.dropdown');\n $loading.addClass('gl-hidden');\n if (data.assignee) {\n user = {\n name: data.assignee.name,\n username: data.assignee.username,\n avatar: data.assignee.avatar_url,\n };\n tooltipTitle = escape(user.name);\n } else {\n user = {\n name: s__('UsersSelect|Unassigned'),\n username: '',\n avatar: '',\n };\n tooltipTitle = s__('UsersSelect|Assignee');\n }\n $value.html(assigneeTemplate(user));\n $collapsedSidebar.attr('title', tooltipTitle);\n fixTitle($collapsedSidebar);\n\n return $collapsedSidebar.html(collapsedAssigneeTemplate(user));\n });\n };\n collapsedAssigneeTemplate = template(\n `<% if( avatar ) { %> <a class=\"author-link\" href=\"/<%- username %>\"> <img width=\"24\" class=\"avatar avatar-inline s24\" alt=\"\" src=\"<%- avatar %>\"> </a> <% } else { %> ${spriteIcon(\n 'user',\n )} <% } %>`,\n );\n assigneeTemplate = template(\n `<% if (username) { %> <a class=\"author-link gl-font-bold\" href=\"/<%- username %>\"> <% if( avatar ) { %> <img width=\"32\" class=\"avatar avatar-inline s32\" alt=\"\" src=\"<%- avatar %>\"> <% } %> <span class=\"author\"><%- name %></span> <span class=\"username\"> @<%- username %> </span> </a> <% } else { %> <span class=\"no-value assign-yourself\">\n ${sprintf(s__('UsersSelect|No assignee - %{openingTag} assign yourself %{closingTag}'), {\n openingTag: '<a href=\"#\" class=\"js-assign-yourself\">',\n closingTag: '</a>',\n })}</span> <% } %>`,\n );\n\n return initDeprecatedJQueryDropdown($dropdown, {\n showMenuAbove,\n data(term, callback) {\n return userSelect.users(term, options, (users) => {\n // GitLabDropdownFilter returns this.instance\n // GitLabDropdownRemote returns this.options.instance\n const deprecatedJQueryDropdown = this.instance || this.options.instance;\n deprecatedJQueryDropdown.options.processData(term, users, callback);\n });\n },\n processData(term, dataArg, callback) {\n // Sometimes the `dataArg` can contain special dropdown items like\n // dividers which we don't want to consider here.\n const data = dataArg.filter((x) => !x.type);\n\n let users = data;\n\n // Only show assigned user list when there is no search term\n if ($dropdown.hasClass('js-multiselect') && term.length === 0) {\n const selectedInputs = getSelectedUserInputs();\n\n // Potential duplicate entries when dealing with issue board\n // because issue board is also managed by vue\n const selectedUsers = uniqBy(selectedInputs, (a) => a.value)\n .filter((input) => {\n const userId = parseInt(input.value, 10);\n const inUsersArray = users.find((u) => u.id === userId);\n\n return !inUsersArray && userId !== 0;\n })\n .map((input) => {\n const userId = parseInt(input.value, 10);\n const {\n avatarUrl,\n avatar_url,\n name,\n username,\n can_merge: canMerge,\n } = input.dataset;\n return {\n avatar_url: avatarUrl || avatar_url || gon.default_avatar_url,\n id: userId,\n name,\n username,\n can_merge: parseBoolean(canMerge),\n };\n });\n\n users = data.concat(selectedUsers);\n }\n\n let anyUser;\n let index;\n let len;\n let name;\n let obj;\n let showDivider;\n if (term.length === 0) {\n showDivider = 0;\n if (firstUser) {\n // Move current user to the front of the list\n for (index = 0, len = users.length; index < len; index += 1) {\n obj = users[index];\n if (obj.username === firstUser) {\n users.splice(index, 1);\n users.unshift(obj);\n break;\n }\n }\n }\n if (showNullUser) {\n showDivider += 1;\n users.unshift({\n beforeDivider: true,\n name: s__('UsersSelect|Unassigned'),\n id: 0,\n });\n }\n if (showAnyUser) {\n showDivider += 1;\n name = showAnyUser;\n if (name === true) {\n name = s__('UsersSelect|Any User');\n }\n anyUser = {\n beforeDivider: true,\n name,\n id: null,\n };\n users.unshift(anyUser);\n }\n\n if (showDivider) {\n users.splice(showDivider, 0, { type: 'divider' });\n }\n\n if ($dropdown.hasClass('js-multiselect')) {\n const selected = getSelected().filter((i) => i !== 0);\n\n if ($dropdown.data('showSuggested')) {\n const suggested = this.suggestedUsers(users);\n if (suggested.length) {\n users = users.filter(\n (u) => !u.suggested || (u.suggested && selected.indexOf(u.id) !== -1),\n );\n users.splice(showDivider + 1, 0, ...suggested);\n }\n }\n\n if (selected.length > 0) {\n if ($dropdown.data('dropdownHeader')) {\n showDivider += 1;\n users.splice(showDivider, 0, {\n type: 'header',\n content: $dropdown.data('dropdownHeader'),\n });\n }\n\n const selectedUsers = users\n .filter((u) => selected.indexOf(u.id) !== -1)\n .sort((a, b) => a.name > b.name);\n\n users = users.filter((u) => selected.indexOf(u.id) === -1);\n\n selectedUsers.forEach((selectedUser) => {\n showDivider += 1;\n users.splice(showDivider, 0, selectedUser);\n });\n\n users.splice(showDivider + 1, 0, { type: 'divider' });\n }\n }\n }\n\n callback(users);\n if (showMenuAbove) {\n $dropdown.data('deprecatedJQueryDropdown').positionMenuAbove();\n }\n },\n suggestedUsers(users) {\n const selected = getSelected().filter((i) => i !== 0);\n const suggestedUsers = users.filter((u) => u.suggested && selected.indexOf(u.id) === -1);\n\n if (!suggestedUsers.length) return [];\n\n const items = [\n {\n type: 'header',\n content: suggestedReviewersHeaderTemplate({\n header: $dropdown.data('suggestedReviewersHeader'),\n }),\n },\n ...suggestedUsers,\n { type: 'header', content: $dropdown.data('allMembersHeader') },\n ];\n return items;\n },\n filterable: true,\n filterRemote: true,\n search: {\n fields: ['name', 'username'],\n },\n selectable: true,\n fieldName: $dropdown.data('fieldName'),\n toggleLabel(selected, el, deprecatedJQueryDropdown) {\n const inputValue = deprecatedJQueryDropdown.filterInput.val();\n\n if (this.multiSelect && inputValue === '') {\n // Remove non-users from the fullData array\n const users = deprecatedJQueryDropdown.filteredFullData();\n const callback = deprecatedJQueryDropdown.parseData.bind(deprecatedJQueryDropdown);\n\n // Update the data model\n this.processData(inputValue, users, callback);\n }\n\n deprecatedJQueryDropdown.filter.clear();\n\n if (this.multiSelect) {\n return getMultiSelectDropdownTitle(selected, $(el).hasClass('is-active'));\n }\n\n if (selected && 'id' in selected && $(el).hasClass('is-active')) {\n $dropdown.find('.dropdown-toggle-text').removeClass('is-default');\n if (selected.text) {\n return selected.text;\n }\n return selected.name;\n }\n $dropdown.find('.dropdown-toggle-text').addClass('is-default');\n\n return defaultLabel;\n },\n defaultLabel,\n hidden() {\n if ($dropdown.hasClass('js-multiselect')) {\n if ($dropdown.hasClass(elsClassName)) {\n if (!$dropdown.closest('.merge-request-form').length) {\n $dropdown.data('deprecatedJQueryDropdown').clearMenu();\n $dropdown.closest('.selectbox').children('input[type=\"hidden\"]').remove();\n }\n emitSidebarEvent('sidebar.saveReviewers');\n } else {\n emitSidebarEvent('sidebar.saveAssignees');\n }\n }\n\n if (!$dropdown.data('alwaysShowSelectbox')) {\n $selectbox.hide();\n\n // Recalculate where .value is because vue might have changed it\n $block = $selectbox.closest('.block');\n $value = $block.find('.value');\n // display:block overrides the hide-collapse rule\n $value.css('display', '');\n }\n\n $('.dropdown-input-field', $block).val('');\n },\n multiSelect: $dropdown.hasClass('js-multiselect'),\n inputMeta: $dropdown.data('inputMeta'),\n clicked(options) {\n const { $el, e, isMarking } = options;\n const user = options.selectedObj;\n\n dispose($el);\n\n if ($dropdown.hasClass('js-multiselect')) {\n const isActive = $el.hasClass('is-active');\n const previouslySelected = $dropdown\n .closest('.selectbox')\n .find(`input[name='${$dropdown.data('fieldName')}'][value!=0]`);\n\n // Enables support for limiting the number of users selected\n // Automatically removes the first on the list if more users are selected\n checkMaxSelect();\n\n if (user.beforeDivider && user.name.toLowerCase() === 'unassigned') {\n // Unassigned selected\n previouslySelected.each((index, element) => {\n element.remove();\n });\n if ($dropdown.hasClass(elsClassName)) {\n emitSidebarEvent('sidebar.removeAllReviewers');\n } else {\n emitSidebarEvent('sidebar.removeAllAssignees');\n }\n } else if (isActive) {\n // user selected\n if ($dropdown.hasClass(elsClassName)) {\n emitSidebarEvent('sidebar.addReviewer', user);\n } else {\n emitSidebarEvent('sidebar.addAssignee', user);\n }\n\n // Remove unassigned selection (if it was previously selected)\n const unassignedSelected = $dropdown\n .closest('.selectbox')\n .find(`input[name='${$dropdown.data('fieldName')}'][value=0]`);\n\n if (unassignedSelected) {\n unassignedSelected.remove();\n }\n } else {\n if (previouslySelected.length === 0) {\n // Select unassigned because there is no more selected users\n this.addInput($dropdown.data('fieldName'), 0, {});\n }\n\n // User unselected\n if ($dropdown.hasClass(elsClassName)) {\n emitSidebarEvent('sidebar.removeReviewer', user);\n } else {\n emitSidebarEvent('sidebar.removeAssignee', user);\n }\n }\n\n if (getSelected().find((u) => u === gon.current_user_id)) {\n $assignToMeLink.hide();\n } else {\n $assignToMeLink.show();\n }\n }\n\n const page = $('body').attr('data-page');\n const isIssueIndex = page === 'projects:issues:index';\n const isMRIndex = page === page && page === 'projects:merge_requests:index';\n if (\n $dropdown.hasClass('js-filter-bulk-update') ||\n $dropdown.hasClass('js-issuable-form-dropdown')\n ) {\n e.preventDefault();\n\n const isSelecting = user.id !== selectedId;\n selectedId = isSelecting ? user.id : selectedIdDefault;\n\n if (selectedId === gon.current_user_id) {\n $('.assign-to-me-link').hide();\n } else {\n $('.assign-to-me-link').show();\n }\n return;\n }\n if (handleClick) {\n e.preventDefault();\n handleClick(user, isMarking);\n } else if ($dropdown.hasClass('js-filter-submit') && (isIssueIndex || isMRIndex)) {\n return Issuable.filterResults($dropdown.closest('form'));\n } else if ($dropdown.hasClass('js-filter-submit')) {\n return $dropdown.closest('form').submit();\n } else if (!$dropdown.hasClass('js-multiselect')) {\n const selected = $dropdown\n .closest('.selectbox')\n .find(`input[name='${$dropdown.data('fieldName')}']`)\n .val();\n return assignTo(selected);\n }\n\n // Automatically close dropdown after assignee is selected\n // since CE has no multiple assignees\n // EE does not have a max-select\n if ($dropdown.data('maxSelect') && getSelected().length === $dropdown.data('maxSelect')) {\n // Close the dropdown\n $dropdown.dropdown('toggle');\n }\n },\n id(user) {\n return user.id;\n },\n opened(e) {\n const $el = $(e.currentTarget);\n const selected = getSelected();\n $el.find('.is-active').removeClass('is-active');\n\n function highlightSelected(id) {\n $el.find(`li[data-user-id=\"${id}\"] .dropdown-menu-user-link`).addClass('is-active');\n }\n\n if (selected.length > 0) {\n getSelected().forEach((selectedId) => highlightSelected(selectedId));\n } else {\n highlightSelected(selectedId);\n }\n },\n updateLabel: $dropdown.data('dropdownTitle'),\n renderRow(user) {\n const username = user.username ? `@${user.username}` : '';\n const avatar = user.avatar_url ? user.avatar_url : gon.default_avatar_url;\n\n let selected = false;\n\n if (this.multiSelect) {\n selected = getSelected().find((u) => user.id === u);\n\n const { fieldName } = this;\n const field = $dropdown\n .closest('.selectbox')\n .find(`input[name='${fieldName}'][value='${user.id}']`);\n\n if (field.length) {\n selected = true;\n }\n } else {\n selected = user.id === selectedId;\n }\n\n let img = '';\n if (user.beforeDivider != null) {\n `<li><a href='#' class='${selected === true ? 'is-active' : ''}'>${escape(\n user.name,\n )}</a></li>`;\n } else {\n // 0 margin, because it's now handled by a wrapper\n img = `<img src='${avatar}' alt='' class='avatar avatar-inline !gl-m-0' width='32' />`;\n }\n\n return userSelect.renderRow(\n options.issuableType,\n user,\n selected,\n username,\n img,\n elsClassName,\n );\n },\n })\n .get()\n .map((dropdown) => dropdown.GitLabDropdownInstance);\n })\n .get();\n}\n\n// Return users list. Filtered by query\n// Only active users retrieved\nUsersSelect.prototype.users = function (query, options, callback) {\n const url = this.buildUrl(this.usersPath);\n const params = {\n search: query,\n active: true,\n ...getAjaxUsersSelectParams(options, AJAX_USERS_SELECT_PARAMS_MAP),\n };\n\n const isMergeRequest = options.issuableType === TYPE_MERGE_REQUEST;\n const isEditMergeRequest = !options.issuableType && options.iid && options.targetBranch;\n const isNewMergeRequest = !options.issuableType && !options.iid && options.targetBranch;\n\n if (isMergeRequest || isEditMergeRequest || isNewMergeRequest) {\n params.merge_request_iid = options.iid || null;\n params.approval_rules = true;\n }\n\n if (isMergeRequest && options.showSuggested) {\n params.show_suggested = true;\n }\n\n if (isNewMergeRequest) {\n params.target_branch = options.targetBranch || null;\n }\n\n return axios.get(url, { params }).then(({ data }) => {\n callback(data);\n });\n};\n\nUsersSelect.prototype.buildUrl = function (url) {\n if (gon.relative_url_root != null) {\n url = gon.relative_url_root.replace(/\\/$/, '') + url;\n }\n return url;\n};\n\n// eslint-disable-next-line max-params\nUsersSelect.prototype.renderRow = function (\n issuableType,\n user,\n selected,\n username,\n img,\n elsClassName,\n) {\n const tooltip = issuableType === TYPE_MERGE_REQUEST && !user.can_merge ? __('Cannot merge') : '';\n const tooltipClass = tooltip ? `has-tooltip` : '';\n const selectedClass = selected === true ? 'is-active' : '';\n const linkClasses = `${selectedClass} ${tooltipClass}`;\n const tooltipAttributes = tooltip\n ? `data-container=\"body\" data-placement=\"left\" data-title=\"${tooltip}\"`\n : '';\n const dataUserSuggested = user.suggested ? `data-user-suggested=${user.suggested}` : '';\n\n const busyBadge =\n user?.availability && isUserBusy(user.availability)\n ? `<span class=\"badge badge-warning badge-pill gl-badge sm\">${__('Busy')}</span>`\n : '';\n return `\n <li data-user-id=${user.id} ${dataUserSuggested}>\n <a href=\"#\" class=\"dropdown-menu-user-link !gl-flex gl-items-center ${linkClasses}\" ${tooltipAttributes}>\n ${this.renderRowAvatar(issuableType, user, img)}\n <span class=\"gl-flex gl-flex-col gl-overflow-hidden\">\n <strong class=\"dropdown-menu-user-full-name gl-font-bold\">\n ${escape(user.name)}\n ${busyBadge}\n </strong>\n ${\n username\n ? `<span class=\"dropdown-menu-user-username gl-text-subtle\">${escape(\n username,\n )}</span>`\n : ''\n }\n ${this.renderApprovalRules(elsClassName, user.applicable_approval_rules)}\n </span>\n </a>\n </li>\n `;\n};\n\nUsersSelect.prototype.renderRowAvatar = function (issuableType, user, img) {\n if (user.beforeDivider) {\n return img;\n }\n\n const mergeIcon =\n issuableType === TYPE_MERGE_REQUEST && !user.can_merge\n ? spriteIcon('warning-solid', 's12 merge-icon')\n : '';\n\n return `<span class=\"gl-relative gl-mr-3\">\n ${img}\n ${mergeIcon}\n </span>`;\n};\n\nUsersSelect.prototype.renderApprovalRules = function (elsClassName, approvalRules = []) {\n const count = approvalRules.length;\n\n if (!elsClassName?.includes('reviewer') || !count) {\n return '';\n }\n\n const [rule] = approvalRules;\n const countText = sprintf(__('(+%{count} rules)'), { count });\n const renderApprovalRulesCount = count > 1 ? `<span class=\"gl-ml-2\">${countText}</span>` : '';\n const ruleName = rule.rule_type === 'code_owner' ? __('Code Owner') : escape(rule.name);\n\n return `<div class=\"gl-flex gl-text-sm\">\n <span class=\"gl-truncate\" title=\"${ruleName}\">${ruleName}</span>\n ${renderApprovalRulesCount}\n </div>`;\n};\n\nexport default UsersSelect;\n","export const CREATE_TIMELOG_MODAL_ID = 'create-timelog-modal';\nexport const SET_TIME_ESTIMATE_MODAL_ID = 'set-time-estimate-modal';\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"CrmContacts\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customerRelationsContacts\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"email\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"phone\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"organization\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":226}};\n doc.loc.source = {\"body\":\"fragment CrmContacts on Issue {\\n id\\n customerRelationsContacts {\\n nodes {\\n id\\n firstName\\n lastName\\n email\\n phone\\n description\\n organization {\\n id\\n name\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"CrmContacts\"] = oneQuery(doc, \"CrmContacts\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"groupMilestones\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MilestoneStateEnum\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attributes\"},\"name\":{\"kind\":\"Name\",\"value\":\"milestones\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTitle\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"sort\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"EXPIRED_LAST_DUE_DATE_ASC\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"},\"value\":{\"kind\":\"IntValue\",\"value\":\"20\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestors\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MilestoneFragment\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":415}};\n doc.loc.source = {\"body\":\"#import \\\"./milestone.fragment.graphql\\\"\\n\\nquery groupMilestones($fullPath: ID!, $title: String, $state: MilestoneStateEnum) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n attributes: milestones(\\n searchTitle: $title\\n state: $state\\n sort: EXPIRED_LAST_DUE_DATE_ASC\\n first: 20\\n includeAncestors: true\\n ) {\\n nodes {\\n ...MilestoneFragment\\n state\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./milestone.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"groupMilestones\"] = oneQuery(doc, \"groupMilestones\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"createLabel\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"groupPath\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labelCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"groupPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"groupPath\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"label\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":316}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/label.fragment.graphql\\\"\\n\\nmutation createLabel($title: String!, $color: String, $projectPath: ID, $groupPath: ID) {\\n labelCreate(\\n input: { title: $title, color: $color, projectPath: $projectPath, groupPath: $groupPath }\\n ) {\\n label {\\n ...Label\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/label.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"createLabel\"] = oneQuery(doc, \"createLabel\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('sidebar-editable-item',{ref:\"editable\",staticClass:\"block weight\",attrs:{\"title\":_vm.$options.i18n.weight,\"tracking\":_vm.$options.tracking,\"loading\":_vm.isLoading,\"data-testid\":\"sidebar-weight\"},on:{\"open\":function($event){_vm.oldIid = null},\"close\":function($event){return _vm.setWeight()}},scopedSlots:_vm._u([{key:\"collapsed\",fn:function(){return [_c('div',{staticClass:\"hide-collapsed gl-flex gl-items-center\"},[_c('span',{class:_vm.hasWeight ? 'gl-font-bold gl-text-default' : 'gl-text-subtle',attrs:{\"data-testid\":\"sidebar-weight-value\"}},[_vm._v(\"\\n \"+_vm._s(_vm.weightLabel)+\"\\n \")]),_vm._v(\" \"),(_vm.hasWeight && _vm.canUpdate)?_c('div',{staticClass:\"gl-flex\"},[_c('span',{staticClass:\"gl-mx-2\"},[_vm._v(\"-\")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"!gl-text-subtle\",attrs:{\"variant\":\"link\",\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.setWeight(true)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.removeWeight)+\"\\n \")])],1):_vm._e()]),_vm._v(\" \"),_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon js-weight-collapsed-block\",attrs:{\"title\":_vm.tooltipTitle},on:{\"click\":_vm.expandSidebar}},[_c('gl-icon',{attrs:{\"size\":16,\"name\":\"weight\"}}),_vm._v(\" \"),(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"js-weight-collapsed-loading-icon\"}):_c('span',{staticClass:\"js-weight-collapsed-weight-label collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\"},[_vm._v(\"\\n \"+_vm._s(_vm.collapsedWeightLabel)+\"\\n \"),(_vm.weight > _vm.$options.maxDisplayWeight)?[_vm._v(\"…\")]:_vm._e()],2)],1)]},proxy:true},{key:\"default\",fn:function(){return [_c('gl-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.handleFormSubmit()}}},[_c('gl-form-group',{attrs:{\"label\":_vm.__('Weight'),\"label-for\":\"weight-input\",\"label-sr-only\":\"\"}},[_c('gl-form-input',{directives:[{name:\"autofocusonshow\",rawName:\"v-autofocusonshow\"}],attrs:{\"id\":\"weight-input\",\"type\":\"number\",\"min\":\"0\",\"placeholder\":_vm.$options.i18n.inputPlaceholder},model:{value:(_vm.localWeight),callback:function ($$v) {_vm.localWeight=_vm._n($$v)},expression:\"localWeight\"}})],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_weight_widget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_weight_widget.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlButton,\n GlForm,\n GlFormGroup,\n GlFormInput,\n GlLoadingIcon,\n GlIcon,\n GlTooltipDirective,\n} from '@gitlab/ui';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { createAlert } from '~/alert';\nimport { __, sprintf } from '~/locale';\nimport SidebarEditableItem from '~/sidebar/components/sidebar_editable_item.vue';\nimport { Tracking } from '~/sidebar/constants';\nimport autofocusonshow from '~/vue_shared/directives/autofocusonshow';\nimport { MAX_DISPLAY_WEIGHT } from '../../constants';\nimport { weightQueries } from '../../queries/constants';\n\nexport default {\n tracking: {\n event: Tracking.editEvent,\n label: Tracking.rightSidebarLabel,\n property: 'weight',\n },\n components: {\n GlButton,\n GlForm,\n GlFormGroup,\n GlFormInput,\n GlIcon,\n GlLoadingIcon,\n SidebarEditableItem,\n },\n directives: {\n autofocusonshow,\n GlTooltip: GlTooltipDirective,\n },\n inject: ['canUpdate'],\n props: {\n iid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n issuableType: {\n required: true,\n type: String,\n },\n },\n data() {\n return {\n issuable: {},\n loading: false,\n oldIid: null,\n localWeight: '',\n previousWeight: null,\n };\n },\n apollo: {\n issuable: {\n query() {\n return weightQueries[this.issuableType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n iid: String(this.iid),\n };\n },\n skip() {\n return !this.iid;\n },\n update(data) {\n return data.workspace?.issuable || {};\n },\n error() {\n createAlert({\n message: sprintf(__('Something went wrong while setting %{issuableType} weight.'), {\n issuableType: this.issuableType,\n }),\n });\n },\n result({ data }) {\n this.localWeight = data?.workspace.issuable.weight ?? '';\n },\n subscribeToMore: {\n document() {\n return weightQueries[this.issuableType].subscription;\n },\n variables() {\n return {\n issuableId: this.issuableId,\n };\n },\n skip() {\n return this.skipIssueWeightSubscription;\n },\n },\n },\n },\n computed: {\n weight() {\n return this.issuable.weight ?? null;\n },\n isLoading() {\n return this.$apollo.queries?.issuable?.loading || this.loading;\n },\n hasWeight() {\n return this.weight !== null;\n },\n weightLabel() {\n return this.hasWeight ? this.weight : this.$options.i18n.noWeightLabel;\n },\n tooltipTitle() {\n let tooltipTitle = this.$options.i18n.weight;\n\n if (this.hasWeight) {\n tooltipTitle += ` ${this.weight}`;\n }\n\n return tooltipTitle;\n },\n collapsedWeightLabel() {\n return this.hasWeight\n ? this.weight.toString().substr(0, 5)\n : this.$options.i18n.noWeightLabel;\n },\n issuableId() {\n return this.issuable.id;\n },\n skipIssueWeightSubscription() {\n return this.issuableType !== TYPE_ISSUE || !this.issuableId || this.isLoading;\n },\n },\n watch: {\n iid(_, oldVal) {\n this.oldIid = oldVal;\n },\n },\n methods: {\n setWeight(remove) {\n const shouldRemoveWeight = remove || this.localWeight === '';\n const weight = shouldRemoveWeight ? null : this.localWeight;\n const currentIid = shouldRemoveWeight ? this.iid : this.oldIid || this.iid;\n const previousWeight = this.hasWeight ? this.weight : 0;\n this.loading = true;\n this.$apollo\n .mutate({\n mutation: weightQueries[this.issuableType].mutation,\n variables: {\n input: {\n projectPath: this.fullPath,\n iid: currentIid,\n weight,\n },\n },\n })\n .then(({ data: { issuableSetWeight } }) => {\n if (issuableSetWeight.errors?.length) {\n createAlert({\n message: issuableSetWeight.errors[0],\n });\n } else {\n this.$emit('weightUpdated', {\n weight: shouldRemoveWeight\n ? null\n : (issuableSetWeight?.issuable?.weight || 0) - previousWeight,\n id: issuableSetWeight?.issuable?.id,\n });\n }\n })\n .catch(() => {\n createAlert({\n message: sprintf(__('Something went wrong while setting %{issuableType} weight.'), {\n issuableType: this.issuableType,\n }),\n });\n })\n .finally(() => {\n this.loading = false;\n });\n },\n expandSidebar() {\n this.$refs.editable.expand();\n this.$emit('expandSidebar');\n },\n handleFormSubmit() {\n this.$refs.editable.collapse({ emitEvent: false });\n this.setWeight();\n },\n },\n i18n: {\n weight: __('Weight'),\n noWeightLabel: __('None'),\n removeWeight: __('remove weight'),\n inputPlaceholder: __('Enter a number'),\n },\n maxDisplayWeight: MAX_DISPLAY_WEIGHT,\n};\n</script>\n\n<template>\n <sidebar-editable-item\n ref=\"editable\"\n :title=\"$options.i18n.weight\"\n :tracking=\"$options.tracking\"\n :loading=\"isLoading\"\n class=\"block weight\"\n data-testid=\"sidebar-weight\"\n @open=\"oldIid = null\"\n @close=\"setWeight()\"\n >\n <template #collapsed>\n <div class=\"hide-collapsed gl-flex gl-items-center\">\n <span\n :class=\"hasWeight ? 'gl-font-bold gl-text-default' : 'gl-text-subtle'\"\n data-testid=\"sidebar-weight-value\"\n >\n {{ weightLabel }}\n </span>\n <div v-if=\"hasWeight && canUpdate\" class=\"gl-flex\">\n <span class=\"gl-mx-2\">-</span>\n <gl-button\n variant=\"link\"\n class=\"!gl-text-subtle\"\n :disabled=\"loading\"\n @click=\"setWeight(true)\"\n >\n {{ $options.i18n.removeWeight }}\n </gl-button>\n </div>\n </div>\n <div\n v-gl-tooltip.left.viewport\n :title=\"tooltipTitle\"\n class=\"sidebar-collapsed-icon js-weight-collapsed-block\"\n @click=\"expandSidebar\"\n >\n <gl-icon :size=\"16\" name=\"weight\" />\n <gl-loading-icon v-if=\"isLoading\" class=\"js-weight-collapsed-loading-icon\" />\n <span\n v-else\n class=\"js-weight-collapsed-weight-label collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\"\n >\n {{ collapsedWeightLabel }}\n <template v-if=\"weight > $options.maxDisplayWeight\">…</template>\n </span>\n </div>\n </template>\n <template #default>\n <gl-form @submit.prevent=\"handleFormSubmit()\">\n <gl-form-group :label=\"__('Weight')\" label-for=\"weight-input\" label-sr-only>\n <gl-form-input\n id=\"weight-input\"\n v-model.number=\"localWeight\"\n v-autofocusonshow\n type=\"number\"\n min=\"0\"\n :placeholder=\"$options.i18n.inputPlaceholder\"\n />\n </gl-form-group>\n </gl-form>\n </template>\n </sidebar-editable-item>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_weight_widget.vue?vue&type=template&id=7659b7b4\"\nimport script from \"./sidebar_weight_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_weight_widget.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { takeRightWhile } from 'lodash';\n\nexport function getSymbol(type) {\n if (type === 'new') return '+';\n if (type === 'old') return '-';\n return '';\n}\n\nfunction getLineNumber(lineRange, key) {\n if (!lineRange || !key || !lineRange[key]) return '';\n const { new_line: newLine, old_line: oldLine, type } = lineRange[key];\n const otherKey = key === 'start' ? 'end' : 'start';\n\n // By default we want to see the \"old\" or \"left side\" line number\n // The exception is if the \"end\" line is on the \"right\" side\n // `otherLineType` is only used if `type` is null to make sure the line\n // number relfects the \"right\" side number, if that is the side\n // the comment form is located on\n const otherLineType = !type ? lineRange[otherKey]?.type : null;\n const lineType = type || '';\n let lineNumber = oldLine;\n if (lineType === 'new' || otherLineType === 'new') lineNumber = newLine;\n return (lineNumber && getSymbol(lineType) + lineNumber) || '';\n}\n\nexport function getStartLineNumber(lineRange) {\n return getLineNumber(lineRange, 'start');\n}\n\nexport function getEndLineNumber(lineRange) {\n return getLineNumber(lineRange, 'end');\n}\n\nexport function getLineClasses(line) {\n const symbol = typeof line === 'string' ? line.charAt(0) : getSymbol(line?.type);\n\n if (symbol !== '+' && symbol !== '-') return '';\n\n return [\n 'gl-px-1 gl-rounded-small gl-border-solid gl-border-1 gl-border-white',\n {\n 'gl-bg-green-100 gl-text-green-800': symbol === '+',\n 'gl-bg-red-100 gl-text-red-800': symbol === '-',\n },\n ];\n}\n\n// eslint-disable-next-line max-params\nexport function commentLineOptions(diffLines, startingLine, lineCode, side = 'left') {\n const preferredSide = side === 'left' ? 'old_line' : 'new_line';\n const fallbackSide = preferredSide === 'new_line' ? 'old_line' : 'new_line';\n const notMatchType = (l) => l.type !== 'match';\n const linesCopy = [...diffLines]; // don't mutate the argument\n const startingLineCode = startingLine.line_code;\n\n const currentIndex = linesCopy.findIndex((line) => line.line_code === lineCode);\n\n // We're limiting adding comments to only lines above the current line\n // to make rendering simpler. Future interations will use a more\n // intuitive dragging interface that will make this unnecessary\n const upToSelected = linesCopy.slice(0, currentIndex + 1);\n\n // Only include the lines up to the first \"Show unchanged lines\" block\n // i.e. not a \"match\" type\n const lines = takeRightWhile(upToSelected, notMatchType);\n\n // If the selected line is \"hidden\" in an unchanged line block\n // or \"above\" the current group of lines add it to the array so\n // that the drop down is not defaulted to empty\n const selectedIndex = lines.findIndex((line) => line.line_code === startingLineCode);\n if (selectedIndex < 0) lines.unshift(startingLine);\n\n return lines.map((l) => {\n const { line_code, type, old_line, new_line } = l;\n return {\n value: { line_code, type, old_line, new_line },\n text: `${getSymbol(type)}${l[preferredSide] || l[fallbackSide]}`,\n };\n });\n}\n\nexport function formatLineRange(start, end) {\n const extractProps = ({ line_code, type, old_line, new_line }) => ({\n line_code,\n type,\n old_line,\n new_line,\n });\n return {\n start: extractProps(start),\n end: extractProps(end),\n };\n}\n\nexport function getCommentedLines(selectedCommentPosition, diffLines) {\n if (!selectedCommentPosition) {\n // This structure simplifies the logic that consumes this result\n // by keeping the returned shape the same and adjusting the bounds\n // to something unreachable. This way our component logic stays:\n // \"if index between start and end\"\n return {\n startLine: diffLines.length + 1,\n endLine: diffLines.length + 1,\n };\n }\n\n const findLineCodeIndex = (line) => (position) => {\n return [position.line_code, position.left?.line_code, position.right?.line_code].includes(\n line.line_code,\n );\n };\n\n const { start, end } = selectedCommentPosition;\n const startLine = diffLines.findIndex(findLineCodeIndex(start));\n const endLine = diffLines.findIndex(findLineCodeIndex(end));\n\n return { startLine, endLine };\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-shrink-0\",attrs:{\"icon\":\"spam\",\"title\":_vm.title,\"aria-label\":_vm.__('Hidden'),\"variant\":\"warning\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hidden_badge.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hidden_badge.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlTooltipDirective } from '@gitlab/ui';\nimport { issuableTypeText } from '~/issues/constants';\nimport { __, sprintf } from '~/locale';\n\nexport default {\n components: {\n GlBadge,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n issuableType: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n title() {\n return sprintf(__('This %{issuable} is hidden because its author has been banned.'), {\n issuable: issuableTypeText[this.issuableType],\n });\n },\n },\n};\n</script>\n\n<template>\n <gl-badge\n v-gl-tooltip\n icon=\"spam\"\n :title=\"title\"\n :aria-label=\"__('Hidden')\"\n variant=\"warning\"\n class=\"gl-shrink-0\"\n />\n</template>\n","import { render, staticRenderFns } from \"./hidden_badge.vue?vue&type=template&id=1689f2ee\"\nimport script from \"./hidden_badge.vue?vue&type=script&lang=js\"\nexport * from \"./hidden_badge.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueDueDate\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":170}};\n doc.loc.source = {\"body\":\"query issueDueDate($fullPath: ID!, $iid: String) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n dueDate\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issueDueDate\"] = oneQuery(doc, \"issueDueDate\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateWorkItemDesignNote\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UpdateNoteInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateNote\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"note\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignNote\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":198}};\n doc.loc.source = {\"body\":\"#import \\\"./fragments/design_note.fragment.graphql\\\"\\n\\nmutation updateWorkItemDesignNote($input: UpdateNoteInput!) {\\n updateNote(input: $input) {\\n note {\\n ...DesignNote\\n }\\n errors\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"./fragments/design_note.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"updateWorkItemDesignNote\"] = oneQuery(doc, \"updateWorkItemDesignNote\");\n \n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetTimelineEvents\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"incidentId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"incidentManagementTimelineEvents\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"incidentId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"incidentId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"note\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"noteHtml\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"action\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"occurredAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelineEventTags\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":396}};\n doc.loc.source = {\"body\":\"query GetTimelineEvents($fullPath: ID!, $incidentId: IssueID!) {\\n project(fullPath: $fullPath) {\\n id\\n incidentManagementTimelineEvents(incidentId: $incidentId) {\\n nodes {\\n id\\n note\\n noteHtml\\n action\\n occurredAt\\n createdAt\\n timelineEventTags {\\n nodes {\\n id\\n name\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"GetTimelineEvents\"] = oneQuery(doc, \"GetTimelineEvents\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableWeightUpdated\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableWeightUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItem\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetWeight\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":308}};\n doc.loc.source = {\"body\":\"subscription issuableWeightUpdated($issuableId: IssuableID!) {\\n issuableWeightUpdated(issuableId: $issuableId) {\\n ... on WorkItem {\\n id\\n widgets {\\n ... on WorkItemWidgetWeight {\\n type\\n weight\\n }\\n }\\n }\\n ... on Issue {\\n id\\n weight\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issuableWeightUpdated\"] = oneQuery(doc, \"issuableWeightUpdated\");\n \n","(function() {\n var Query, pathScorer, pluckCandidates, scorer, sortCandidates;\n\n scorer = require('./scorer');\n\n pathScorer = require('./pathScorer');\n\n Query = require('./query');\n\n pluckCandidates = function(a) {\n return a.candidate;\n };\n\n sortCandidates = function(a, b) {\n return b.score - a.score;\n };\n\n module.exports = function(candidates, query, options) {\n var bKey, candidate, key, maxInners, maxResults, score, scoreProvider, scoredCandidates, spotLeft, string, usePathScoring, _i, _len;\n scoredCandidates = [];\n key = options.key, maxResults = options.maxResults, maxInners = options.maxInners, usePathScoring = options.usePathScoring;\n spotLeft = (maxInners != null) && maxInners > 0 ? maxInners : candidates.length + 1;\n bKey = key != null;\n scoreProvider = usePathScoring ? pathScorer : scorer;\n for (_i = 0, _len = candidates.length; _i < _len; _i++) {\n candidate = candidates[_i];\n string = bKey ? candidate[key] : candidate;\n if (!string) {\n continue;\n }\n score = scoreProvider.score(string, query, options);\n if (score > 0) {\n scoredCandidates.push({\n candidate: candidate,\n score: score\n });\n if (!--spotLeft) {\n break;\n }\n }\n }\n scoredCandidates.sort(sortCandidates);\n candidates = scoredCandidates.map(pluckCandidates);\n if (maxResults != null) {\n candidates = candidates.slice(0, maxResults);\n }\n return candidates;\n };\n\n}).call(this);\n","import GlIcon from '../../icon/icon';\nimport { ENTER, SPACE } from '../constants';\nimport { stopEvent } from '../../../../utils/utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlListboxItem',\n components: {\n GlIcon\n },\n props: {\n isSelected: {\n type: Boolean,\n default: false,\n required: false\n },\n isFocused: {\n type: Boolean,\n default: false,\n required: false\n },\n isCheckCentered: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n computed: {\n checkedClasses() {\n if (this.isCheckCentered) {\n return '';\n }\n return 'gl-mt-3 gl-self-start';\n }\n },\n methods: {\n toggleSelection() {\n this.$emit('select', !this.isSelected);\n },\n onKeydown(event) {\n const {\n code\n } = event;\n if (code === ENTER || code === SPACE) {\n stopEvent(event);\n this.toggleSelection();\n }\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"gl-new-dropdown-item\",attrs:{\"role\":\"option\",\"tabindex\":_vm.isFocused ? 0 : -1,\"aria-selected\":_vm.isSelected},on:{\"click\":_vm.toggleSelection,\"keydown\":_vm.onKeydown}},[_c('span',{staticClass:\"gl-new-dropdown-item-content\"},[_c('gl-icon',{class:[\n 'gl-new-dropdown-item-check-icon',\n { 'gl-invisible': !_vm.isSelected },\n _vm.checkedClasses ],attrs:{\"name\":\"mobile-issue-close\",\"data-testid\":\"dropdown-item-checkbox\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-new-dropdown-item-text-wrapper\"},[_vm._t(\"default\")],2)],1)])};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('timeline-entry-item',{staticClass:\"note system-note being-posted fade-in-half\"},[_c('div',{staticClass:\"timeline-content\"},[_c('em',[_vm._v(_vm._s(_vm.note.body))])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./placeholder_system_note.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./placeholder_system_note.vue?vue&type=script&lang=js\"","<script>\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\n\n/**\n * Common component to render a placeholder system note.\n *\n * @example\n * <placeholder-system-note\n * :note=\"{ body: 'Commands are being applied'}\"\n * />\n */\nexport default {\n name: 'PlaceholderSystemNote',\n components: {\n TimelineEntryItem,\n },\n props: {\n note: {\n type: Object,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <timeline-entry-item class=\"note system-note being-posted fade-in-half\">\n <div class=\"timeline-content\">\n <em>{{ note.body }}</em>\n </div>\n </timeline-entry-item>\n</template>\n","import { render, staticRenderFns } from \"./placeholder_system_note.vue?vue&type=template&id=8ff41686\"\nimport script from \"./placeholder_system_note.vue?vue&type=script&lang=js\"\nexport * from \"./placeholder_system_note.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { extend } from '../../../vue';\nimport { SLOT_NAME_BOTTOM_ROW } from '../../../constants/slots';\nimport { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr';\n\n// --- Props ---\n\nconst props = {};\n\n// --- Mixin ---\n\n// @vue/component\nconst bottomRowMixin = extend({\n props,\n methods: {\n renderBottomRow() {\n const {\n computedFields: fields,\n stacked,\n tbodyTrClass,\n tbodyTrAttr\n } = this;\n const h = this.$createElement;\n\n // Static bottom row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in *always* stacked mode, we don't bother rendering the row\n if (!this.hasNormalizedSlot(SLOT_NAME_BOTTOM_ROW) || stacked === true || stacked === '') {\n return h();\n }\n return h(BTr, {\n staticClass: 'b-table-bottom-row',\n class: [isFunction(tbodyTrClass) ? /* istanbul ignore next */tbodyTrClass(null, 'row-bottom') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ? /* istanbul ignore next */tbodyTrAttr(null, 'row-bottom') : tbodyTrAttr,\n key: 'b-bottom-row'\n }, this.normalizeSlot(SLOT_NAME_BOTTOM_ROW, {\n columns: fields.length,\n fields\n }));\n }\n }\n});\n\nexport { bottomRowMixin, props };\n","import { extend } from '../../../vue';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN } from '../../../constants/props';\nimport { SLOT_NAME_TABLE_BUSY } from '../../../constants/slots';\nimport { stopEvent } from '../../../utils/events';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { BTr } from '../tr';\nimport { BTd } from '../td';\n\n// --- Constants ---\n\nconst MODEL_PROP_NAME_BUSY = 'busy';\nconst MODEL_EVENT_NAME_BUSY = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_BUSY;\n\n// --- Props ---\n\nconst props = {\n [MODEL_PROP_NAME_BUSY]: makeProp(PROP_TYPE_BOOLEAN, false)\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst busyMixin = extend({\n props,\n data() {\n return {\n localBusy: false\n };\n },\n computed: {\n computedBusy() {\n return this[MODEL_PROP_NAME_BUSY] || this.localBusy;\n }\n },\n watch: {\n localBusy(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_BUSY, newValue);\n }\n }\n },\n methods: {\n // Event handler helper\n stopIfBusy(event) {\n // If table is busy (via provider) then don't propagate\n if (this.computedBusy) {\n stopEvent(event);\n return true;\n }\n return false;\n },\n // Render the busy indicator or return `null` if not busy\n renderBusy() {\n const {\n tbodyTrClass,\n tbodyTrAttr\n } = this;\n const h = this.$createElement;\n\n // Return a busy indicator row, or `null` if not busy\n if (this.computedBusy && this.hasNormalizedSlot(SLOT_NAME_TABLE_BUSY)) {\n return h(BTr, {\n staticClass: 'b-table-busy-slot',\n class: [isFunction(tbodyTrClass) ? /* istanbul ignore next */tbodyTrClass(null, SLOT_NAME_TABLE_BUSY) : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ? /* istanbul ignore next */tbodyTrAttr(null, SLOT_NAME_TABLE_BUSY) : tbodyTrAttr,\n key: 'table-busy-slot'\n }, [h(BTd, {\n props: {\n colspan: this.computedFields.length || null\n }\n }, [this.normalizeSlot(SLOT_NAME_TABLE_BUSY)])]);\n }\n\n // We return `null` here so that we can determine if we need to\n // render the table items rows or not\n return null;\n }\n }\n});\n\nexport { busyMixin, props };\n","import { extend } from '../../../vue';\nimport { PROP_TYPE_STRING, PROP_TYPE_BOOLEAN } from '../../../constants/props';\nimport { SLOT_NAME_TABLE_BUSY, SLOT_NAME_EMPTYFILTERED, SLOT_NAME_EMPTY } from '../../../constants/slots';\nimport { htmlOrText } from '../../../utils/html';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { safeVueInstance } from '../../../utils/safe-vue-instance';\nimport { BTr } from '../tr';\nimport { BTd } from '../td';\n\n// --- Props ---\n\nconst props = {\n emptyFilteredHtml: makeProp(PROP_TYPE_STRING),\n emptyFilteredText: makeProp(PROP_TYPE_STRING, 'There are no records matching your request'),\n emptyHtml: makeProp(PROP_TYPE_STRING),\n emptyText: makeProp(PROP_TYPE_STRING, 'There are no records to show'),\n showEmpty: makeProp(PROP_TYPE_BOOLEAN, false)\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst emptyMixin = extend({\n props,\n methods: {\n renderEmpty() {\n const {\n computedItems: items,\n computedBusy\n } = safeVueInstance(this);\n const h = this.$createElement;\n let $empty = h();\n if (this.showEmpty && (!items || items.length === 0) && !(computedBusy && this.hasNormalizedSlot(SLOT_NAME_TABLE_BUSY))) {\n const {\n computedFields: fields,\n isFiltered,\n emptyText,\n emptyHtml,\n emptyFilteredText,\n emptyFilteredHtml,\n tbodyTrClass,\n tbodyTrAttr\n } = this;\n $empty = this.normalizeSlot(isFiltered ? SLOT_NAME_EMPTYFILTERED : SLOT_NAME_EMPTY, {\n emptyFilteredHtml,\n emptyFilteredText,\n emptyHtml,\n emptyText,\n fields,\n // Not sure why this is included, as it will always be an empty array\n items\n });\n if (!$empty) {\n $empty = h('div', {\n class: ['gl-text-center', 'gl-my-3'],\n domProps: isFiltered ? htmlOrText(emptyFilteredHtml, emptyFilteredText) : htmlOrText(emptyHtml, emptyText)\n });\n }\n $empty = h(BTd, {\n props: {\n colspan: fields.length || null\n }\n }, [h('div', {\n attrs: {\n role: 'alert',\n 'aria-live': 'polite'\n }\n }, [$empty])]);\n $empty = h(BTr, {\n staticClass: 'b-table-empty-row',\n class: [isFunction(tbodyTrClass) ? /* istanbul ignore next */tbodyTrClass(null, 'row-empty') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ? /* istanbul ignore next */tbodyTrAttr(null, 'row-empty') : tbodyTrAttr,\n key: isFiltered ? 'b-empty-filtered-row' : 'b-empty-row'\n }, [$empty]);\n }\n return $empty;\n }\n }\n});\n\nexport { emptyMixin, props };\n","import { isUndefinedOrNull, isObject, isDate } from './inspect';\nimport { keys } from './object';\nimport { toString } from './string';\n\n// Recursively stringifies the values of an object, space separated, in an\n// SSR safe deterministic way (keys are sorted before stringification)\n//\n// ex:\n// { b: 3, c: { z: 'zzz', d: null, e: 2 }, d: [10, 12, 11], a: 'one' }\n// becomes\n// 'one 3 2 zzz 10 12 11'\n//\n// Strings are returned as-is\n// Numbers get converted to string\n// `null` and `undefined` values are filtered out\n// Dates are converted to their native string format\nconst stringifyObjectValues = value => {\n if (isUndefinedOrNull(value)) {\n return '';\n }\n // Arrays are also object, and keys just returns the array indexes\n // Date objects we convert to strings\n if (isObject(value) && !isDate(value)) {\n return keys(value).sort() // Sort to prevent SSR issues on pre-rendered sorted tables\n .map(k => stringifyObjectValues(value[k])).filter(v => !!v) // Ignore empty strings\n .join(' ');\n }\n return toString(value);\n};\n\nexport { stringifyObjectValues };\n","import { arrayIncludes } from '../../../utils/array';\nimport { isFunction, isArray } from '../../../utils/inspect';\nimport { keys, clone, pick } from '../../../utils/object';\nimport { IGNORED_FIELD_KEYS } from './constants';\n\n// Return a copy of a row after all reserved fields have been filtered out\nconst sanitizeRow = function (row, ignoreFields, includeFields) {\n let fieldsObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n // We first need to format the row based on the field configurations\n // This ensures that we add formatted values for keys that may not\n // exist in the row itself\n const formattedRow = keys(fieldsObj).reduce((result, key) => {\n const field = fieldsObj[key];\n const {\n filterByFormatted\n } = field;\n const formatter = isFunction(filterByFormatted) ? /* istanbul ignore next */filterByFormatted : filterByFormatted ? /* istanbul ignore next */field.formatter : null;\n if (isFunction(formatter)) {\n result[key] = formatter(row[key], key, row);\n }\n return result;\n }, clone(row));\n\n // Determine the allowed keys:\n // - Ignore special fields that start with `_`\n // - Ignore fields in the `ignoreFields` array\n // - Include only fields in the `includeFields` array\n const allowedKeys = keys(formattedRow).filter(key => !IGNORED_FIELD_KEYS[key] && !(isArray(ignoreFields) && ignoreFields.length > 0 && arrayIncludes(ignoreFields, key)) && !(isArray(includeFields) && includeFields.length > 0 && !arrayIncludes(includeFields, key)));\n return pick(formattedRow, allowedKeys);\n};\n\nexport { sanitizeRow };\n","import { extend } from '../../../vue';\nimport { NAME_TABLE } from '../../../constants/components';\nimport { EVENT_NAME_FILTERED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_REG_EXP, PROP_TYPE_NUMBER_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_ARRAY } from '../../../constants/props';\nimport { RX_DIGITS, RX_SPACES } from '../../../constants/regex';\nimport { concat } from '../../../utils/array';\nimport { cloneDeep } from '../../../utils/clone-deep';\nimport { identity } from '../../../utils/identity';\nimport { isString, isRegExp, isFunction } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { toInteger } from '../../../utils/number';\nimport { makeProp, hasPropFunction } from '../../../utils/props';\nimport { escapeRegExp } from '../../../utils/string';\nimport { warn } from '../../../utils/warn';\nimport { stringifyRecordValues } from './stringify-record-values';\n\n// --- Constants ---\n\nconst DEBOUNCE_DEPRECATED_MSG = 'Prop \"filter-debounce\" is deprecated. Use the debounce feature of \"<b-form-input>\" instead.';\n\n// --- Props ---\n\nconst props = {\n filter: makeProp([...PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_REG_EXP]),\n filterDebounce: makeProp(PROP_TYPE_NUMBER_STRING, 0, value => {\n return RX_DIGITS.test(String(value));\n }),\n filterFunction: makeProp(PROP_TYPE_FUNCTION),\n filterIgnoredFields: makeProp(PROP_TYPE_ARRAY, []),\n filterIncludedFields: makeProp(PROP_TYPE_ARRAY, [])\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst filteringMixin = extend({\n props,\n data() {\n return {\n // Flag for displaying which empty slot to show and some event triggering\n isFiltered: false,\n // Where we store the copy of the filter criteria after debouncing\n // We pre-set it with the sanitized filter value\n localFilter: this.filterSanitize(this.filter)\n };\n },\n computed: {\n computedFilterIgnored() {\n return concat(this.filterIgnoredFields || []).filter(identity);\n },\n computedFilterIncluded() {\n return concat(this.filterIncludedFields || []).filter(identity);\n },\n computedFilterDebounce() {\n const ms = toInteger(this.filterDebounce, 0);\n /* istanbul ignore next */\n if (ms > 0) {\n warn(DEBOUNCE_DEPRECATED_MSG, NAME_TABLE);\n }\n return ms;\n },\n localFiltering() {\n return this.hasProvider ? !!this.noProviderFiltering : true;\n },\n // For watching changes to `filteredItems` vs `localItems`\n filteredCheck() {\n const {\n filteredItems,\n localItems,\n localFilter\n } = this;\n return {\n filteredItems,\n localItems,\n localFilter\n };\n },\n // Sanitized/normalize filter-function prop\n localFilterFn() {\n // Return `null` to signal to use internal filter function\n const {\n filterFunction\n } = this;\n return hasPropFunction(filterFunction) ? filterFunction : null;\n },\n // Returns the records in `localItems` that match the filter criteria\n // Returns the original `localItems` array if not sorting\n filteredItems() {\n // Note the criteria is debounced and sanitized\n const {\n localItems: items,\n localFilter: criteria\n } = this;\n\n // Resolve the filtering function, when requested\n // We prefer the provided filtering function and fallback to the internal one\n // When no filtering criteria is specified the filtering factories will return `null`\n const filterFn = this.localFiltering ? this.filterFnFactory(this.localFilterFn, criteria) || this.defaultFilterFnFactory(criteria) : null;\n\n // We only do local filtering when requested and there are records to filter\n return filterFn && items.length > 0 ? items.filter(filterFn) : items;\n }\n },\n watch: {\n // Watch for debounce being set to 0\n computedFilterDebounce(newValue) {\n if (!newValue && this.$_filterTimer) {\n this.clearFilterTimer();\n this.localFilter = this.filterSanitize(this.filter);\n }\n },\n // Watch for changes to the filter criteria, and debounce if necessary\n filter: {\n // We need a deep watcher in case the user passes\n // an object when using `filter-function`\n deep: true,\n handler(newCriteria) {\n const timeout = this.computedFilterDebounce;\n this.clearFilterTimer();\n if (timeout && timeout > 0) {\n // If we have a debounce time, delay the update of `localFilter`\n this.$_filterTimer = setTimeout(() => {\n this.localFilter = this.filterSanitize(newCriteria);\n }, timeout);\n } else {\n // Otherwise, immediately update `localFilter` with `newFilter` value\n this.localFilter = this.filterSanitize(newCriteria);\n }\n }\n },\n // Watch for changes to the filter criteria and filtered items vs `localItems`\n // Set visual state and emit events as required\n filteredCheck(_ref) {\n let {\n filteredItems,\n localFilter\n } = _ref;\n // Determine if the dataset is filtered or not\n let isFiltered = false;\n if (!localFilter) {\n // If filter criteria is falsey\n isFiltered = false;\n } else if (looseEqual(localFilter, []) || looseEqual(localFilter, {})) {\n // If filter criteria is an empty array or object\n isFiltered = false;\n } else if (localFilter) {\n // If filter criteria is truthy\n isFiltered = true;\n }\n if (isFiltered) {\n this.$emit(EVENT_NAME_FILTERED, filteredItems, filteredItems.length);\n }\n this.isFiltered = isFiltered;\n },\n isFiltered(newValue, oldValue) {\n if (newValue === false && oldValue === true) {\n // We need to emit a filtered event if `isFiltered` transitions from `true` to\n // `false` so that users can update their pagination controls\n const {\n localItems\n } = this;\n this.$emit(EVENT_NAME_FILTERED, localItems, localItems.length);\n }\n }\n },\n created() {\n // Create private non-reactive props\n this.$_filterTimer = null;\n // If filter is \"pre-set\", set the criteria\n // This will trigger any watchers/dependents\n // this.localFilter = this.filterSanitize(this.filter)\n // Set the initial filtered state in a `$nextTick()` so that\n // we trigger a filtered event if needed\n this.$nextTick(() => {\n this.isFiltered = Boolean(this.localFilter);\n });\n },\n beforeDestroy() {\n this.clearFilterTimer();\n },\n methods: {\n clearFilterTimer() {\n clearTimeout(this.$_filterTimer);\n this.$_filterTimer = null;\n },\n filterSanitize(criteria) {\n // Sanitizes filter criteria based on internal or external filtering\n if (this.localFiltering && !this.localFilterFn && !(isString(criteria) || isRegExp(criteria))) {\n // If using internal filter function, which only accepts string or RegExp,\n // return '' to signify no filter\n return '';\n }\n\n // Could be a string, object or array, as needed by external filter function\n // We use `cloneDeep` to ensure we have a new copy of an object or array\n // without Vue's reactive observers\n return cloneDeep(criteria);\n },\n // Filter Function factories\n filterFnFactory(filterFn, criteria) {\n // Wrapper factory for external filter functions\n // Wrap the provided filter-function and return a new function\n // Returns `null` if no filter-function defined or if criteria is falsey\n // Rather than directly grabbing `this.computedLocalFilterFn` or `this.filterFunction`\n // we have it passed, so that the caller computed prop will be reactive to changes\n // in the original filter-function (as this routine is a method)\n if (!filterFn || !isFunction(filterFn) || !criteria || looseEqual(criteria, []) || looseEqual(criteria, {})) {\n return null;\n }\n\n // Build the wrapped filter test function, passing the criteria to the provided function\n const fn = item => {\n // Generated function returns true if the criteria matches part\n // of the serialized data, otherwise false\n return filterFn(item, criteria);\n };\n\n // Return the wrapped function\n return fn;\n },\n defaultFilterFnFactory(criteria) {\n // Generates the default filter function, using the given filter criteria\n // Returns `null` if no criteria or criteria format not supported\n if (!criteria || !(isString(criteria) || isRegExp(criteria))) {\n // Built in filter can only support strings or RegExp criteria (at the moment)\n return null;\n }\n\n // Build the RegExp needed for filtering\n let regExp = criteria;\n if (isString(regExp)) {\n // Escape special RegExp characters in the string and convert contiguous\n // whitespace to \\s+ matches\n const pattern = escapeRegExp(criteria).replace(RX_SPACES, '\\\\s+');\n // Build the RegExp (no need for global flag, as we only need\n // to find the value once in the string)\n regExp = new RegExp(`.*${pattern}.*`, 'i');\n }\n\n // Generate the wrapped filter test function to use\n const fn = item => {\n // This searches all row values (and sub property values) in the entire (excluding\n // special `_` prefixed keys), because we convert the record to a space-separated\n // string containing all the value properties (recursively), even ones that are\n // not visible (not specified in this.fields)\n // Users can ignore filtering on specific fields, or on only certain fields,\n // and can optionall specify searching results of fields with formatter\n //\n // TODO: Enable searching on scoped slots (optional, as it will be SLOW)\n //\n // Generated function returns true if the criteria matches part of\n // the serialized data, otherwise false\n //\n // We set `lastIndex = 0` on the `RegExp` in case someone specifies the `/g` global flag\n regExp.lastIndex = 0;\n return regExp.test(stringifyRecordValues(item, this.computedFilterIgnored, this.computedFilterIncluded, this.computedFieldsObj));\n };\n\n // Return the generated function\n return fn;\n }\n }\n});\n\nexport { filteringMixin, props };\n","import { isObject } from '../../../utils/inspect';\nimport { stringifyObjectValues } from '../../../utils/stringify-object-values';\nimport { sanitizeRow } from './sanitize-row';\n\n// Stringifies the values of a record, ignoring any special top level field keys\n// TODO: Add option to stringify `scopedSlot` items\nconst stringifyRecordValues = (row, ignoreFields, includeFields, fieldsObj) => {\n return isObject(row) ? stringifyObjectValues(sanitizeRow(row, ignoreFields, includeFields, fieldsObj)) : /* istanbul ignore next */'';\n};\n\nexport { stringifyRecordValues };\n","import { extend } from '../../../vue';\nimport { PROP_TYPE_NUMBER_STRING } from '../../../constants/props';\nimport { mathMax } from '../../../utils/math';\nimport { toInteger } from '../../../utils/number';\nimport { makeProp } from '../../../utils/props';\nimport { safeVueInstance } from '../../../utils/safe-vue-instance';\n\n// --- Props ---\n\nconst props = {\n currentPage: makeProp(PROP_TYPE_NUMBER_STRING, 1),\n perPage: makeProp(PROP_TYPE_NUMBER_STRING, 0)\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst paginationMixin = extend({\n props,\n computed: {\n localPaging() {\n return this.hasProvider ? !!this.noProviderPaging : true;\n },\n paginatedItems() {\n const {\n sortedItems,\n filteredItems,\n localItems\n } = safeVueInstance(this);\n let items = sortedItems || filteredItems || localItems || [];\n const currentPage = mathMax(toInteger(this.currentPage, 1), 1);\n const perPage = mathMax(toInteger(this.perPage, 0), 0);\n // Apply local pagination\n if (this.localPaging && perPage) {\n // Grab the current page of data (which may be past filtered items limit)\n items = items.slice((currentPage - 1) * perPage, currentPage * perPage);\n }\n // Return the items to display in the table\n return items;\n }\n }\n});\n\nexport { paginationMixin, props };\n","import { extend } from '../../../vue';\nimport { NAME_TABLE } from '../../../constants/components';\nimport { EVENT_NAME_REFRESHED, EVENT_NAME_REFRESH } from '../../../constants/events';\nimport { PROP_TYPE_STRING, PROP_TYPE_ARRAY_FUNCTION, PROP_TYPE_BOOLEAN } from '../../../constants/props';\nimport { getRootEventName, getRootActionEventName } from '../../../utils/events';\nimport { isFunction, isArray, isPromise } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { clone } from '../../../utils/object';\nimport { makeProp } from '../../../utils/props';\nimport { safeVueInstance } from '../../../utils/safe-vue-instance';\nimport { warn } from '../../../utils/warn';\nimport { listenOnRootMixin } from '../../../mixins/listen-on-root';\n\n// --- Constants ---\n\nconst ROOT_EVENT_NAME_REFRESHED = getRootEventName(NAME_TABLE, EVENT_NAME_REFRESHED);\nconst ROOT_ACTION_EVENT_NAME_REFRESH = getRootActionEventName(NAME_TABLE, EVENT_NAME_REFRESH);\n\n// --- Props ---\n\nconst props = {\n // Passed to the context object\n // Not used by `<b-table>` directly\n apiUrl: makeProp(PROP_TYPE_STRING),\n // Adds in 'Function' support\n items: makeProp(PROP_TYPE_ARRAY_FUNCTION, []),\n noProviderFiltering: makeProp(PROP_TYPE_BOOLEAN, false),\n noProviderPaging: makeProp(PROP_TYPE_BOOLEAN, false),\n noProviderSorting: makeProp(PROP_TYPE_BOOLEAN, false)\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst providerMixin = extend({\n mixins: [listenOnRootMixin],\n props,\n computed: {\n hasProvider() {\n return isFunction(this.items);\n },\n providerTriggerContext() {\n // Used to trigger the provider function via a watcher. Only the fields that\n // are needed for triggering a provider update are included. Note that the\n // regular this.context is sent to the provider during fetches though, as they\n // may need all the prop info.\n const ctx = {\n apiUrl: this.apiUrl,\n filter: null,\n sortBy: null,\n sortDesc: null,\n perPage: null,\n currentPage: null\n };\n if (!this.noProviderFiltering) {\n // Either a string, or could be an object or array.\n ctx.filter = this.localFilter;\n }\n if (!this.noProviderSorting) {\n ctx.sortBy = this.localSortBy;\n ctx.sortDesc = this.localSortDesc;\n }\n if (!this.noProviderPaging) {\n ctx.perPage = this.perPage;\n ctx.currentPage = this.currentPage;\n }\n return clone(ctx);\n }\n },\n watch: {\n // Provider update triggering\n items(newValue) {\n // If a new provider has been specified, trigger an update\n if (this.hasProvider || isFunction(newValue)) {\n this.$nextTick(this._providerUpdate);\n }\n },\n providerTriggerContext(newValue, oldValue) {\n // Trigger the provider to update as the relevant context values have changed.\n if (!looseEqual(newValue, oldValue)) {\n this.$nextTick(this._providerUpdate);\n }\n }\n },\n mounted() {\n // Call the items provider if necessary\n if (this.hasProvider && (!this.localItems || this.localItems.length === 0)) {\n // Fetch on mount if localItems is empty\n this._providerUpdate();\n }\n // Listen for global messages to tell us to force refresh the table\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REFRESH, id => {\n if (id === this.id || id === this) {\n this.refresh();\n }\n });\n },\n methods: {\n refresh() {\n const {\n items,\n refresh,\n computedBusy\n } = safeVueInstance(this);\n\n // Public Method: Force a refresh of the provider function\n this.$off(EVENT_NAME_REFRESHED, refresh);\n if (computedBusy) {\n // Can't force an update when forced busy by user (busy prop === true)\n if (this.localBusy && this.hasProvider) {\n // But if provider running (localBusy), re-schedule refresh once `refreshed` emitted\n this.$on(EVENT_NAME_REFRESHED, refresh);\n }\n } else {\n this.clearSelected();\n if (this.hasProvider) {\n this.$nextTick(this._providerUpdate);\n } else {\n /* istanbul ignore next */\n this.localItems = isArray(items) ? items.slice() : [];\n }\n }\n },\n // Provider related methods\n _providerSetLocal(items) {\n this.localItems = isArray(items) ? items.slice() : [];\n this.localBusy = false;\n this.$emit(EVENT_NAME_REFRESHED);\n // New root emit\n if (this.id) {\n this.emitOnRoot(ROOT_EVENT_NAME_REFRESHED, this.id);\n }\n },\n _providerUpdate() {\n // Refresh the provider function items.\n if (!this.hasProvider) {\n // Do nothing if no provider\n return;\n }\n // If table is busy, wait until refreshed before calling again\n if (safeVueInstance(this).computedBusy) {\n // Schedule a new refresh once `refreshed` is emitted\n this.$nextTick(this.refresh);\n return;\n }\n\n // Set internal busy state\n this.localBusy = true;\n\n // Call provider function with context and optional callback after DOM is fully updated\n this.$nextTick(() => {\n try {\n // Call provider function passing it the context and optional callback\n const data = this.items(this.context, this._providerSetLocal);\n if (isPromise(data)) {\n // Provider returned Promise\n data.then(items => {\n // Provider resolved with items\n this._providerSetLocal(items);\n });\n } else if (isArray(data)) {\n // Provider returned Array data\n this._providerSetLocal(data);\n } else {\n /* istanbul ignore if */\n if (this.items.length !== 2) {\n // Check number of arguments provider function requested\n // Provider not using callback (didn't request second argument), so we clear\n // busy state as most likely there was an error in the provider function\n /* istanbul ignore next */\n warn(\"Provider function didn't request callback and did not return a promise or data.\", NAME_TABLE);\n this.localBusy = false;\n }\n }\n } catch (e) /* istanbul ignore next */{\n // Provider function borked on us, so we spew out a warning\n // and clear the busy state\n warn(`Provider function error [${e.name}] ${e.message}.`, NAME_TABLE);\n this.localBusy = false;\n this.$off(EVENT_NAME_REFRESHED, this.refresh);\n }\n });\n }\n }\n});\n\nexport { props, providerMixin };\n","import { extend } from '../../../vue';\nimport { EVENT_NAME_ROW_SELECTED, EVENT_NAME_ROW_CLICKED, EVENT_NAME_FILTERED, EVENT_NAME_CONTEXT_CHANGED } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { arrayIncludes, createArray } from '../../../utils/array';\nimport { identity } from '../../../utils/identity';\nimport { isArray, isNumber } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMin, mathMax } from '../../../utils/math';\nimport { makeProp } from '../../../utils/props';\nimport { toString } from '../../../utils/string';\nimport { sanitizeRow } from './sanitize-row';\n\n// --- Constants ---\n\nconst SELECT_MODES = ['range', 'multi', 'single'];\nconst ROLE_GRID = 'grid';\n\n// --- Props ---\n\nconst props = {\n // Disable use of click handlers for row selection\n noSelectOnClick: makeProp(PROP_TYPE_BOOLEAN, false),\n selectMode: makeProp(PROP_TYPE_STRING, 'multi', value => {\n return arrayIncludes(SELECT_MODES, value);\n }),\n selectable: makeProp(PROP_TYPE_BOOLEAN, false),\n selectedVariant: makeProp(PROP_TYPE_STRING, 'active')\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst selectableMixin = extend({\n props,\n data() {\n return {\n selectedRows: [],\n selectedLastRow: -1\n };\n },\n computed: {\n isSelectable() {\n return this.selectable && this.selectMode;\n },\n hasSelectableRowClick() {\n return this.isSelectable && !this.noSelectOnClick;\n },\n supportsSelectableRows() {\n return true;\n },\n selectableHasSelection() {\n const {\n selectedRows\n } = this;\n return this.isSelectable && selectedRows && selectedRows.length > 0 && selectedRows.some(identity);\n },\n selectableIsMultiSelect() {\n return this.isSelectable && arrayIncludes(['range', 'multi'], this.selectMode);\n },\n selectableTableClasses() {\n const {\n isSelectable\n } = this;\n return {\n 'b-table-selectable': isSelectable,\n [`b-table-select-${this.selectMode}`]: isSelectable,\n 'b-table-selecting': this.selectableHasSelection,\n 'b-table-selectable-no-click': isSelectable && !this.hasSelectableRowClick\n };\n },\n selectableTableAttrs() {\n if (!this.isSelectable) {\n return {};\n }\n const role = this.bvAttrs.role || ROLE_GRID;\n return {\n role,\n // TODO:\n // Should this attribute not be included when `no-select-on-click` is set\n // since this attribute implies keyboard navigation?\n 'aria-multiselectable': role === ROLE_GRID ? toString(this.selectableIsMultiSelect) : null\n };\n }\n },\n watch: {\n computedItems(newValue, oldValue) {\n // Reset for selectable\n let equal = false;\n if (this.isSelectable && this.selectedRows.length > 0) {\n // Quick check against array length\n equal = isArray(newValue) && isArray(oldValue) && newValue.length === oldValue.length;\n for (let i = 0; equal && i < newValue.length; i++) {\n // Look for the first non-loosely equal row, after ignoring reserved fields\n equal = looseEqual(sanitizeRow(newValue[i]), sanitizeRow(oldValue[i]));\n }\n }\n if (!equal) {\n this.clearSelected();\n }\n },\n selectable(newValue) {\n this.clearSelected();\n this.setSelectionHandlers(newValue);\n },\n selectMode() {\n this.clearSelected();\n },\n hasSelectableRowClick(newValue) {\n this.clearSelected();\n this.setSelectionHandlers(!newValue);\n },\n selectedRows(selectedRows, oldValue) {\n if (this.isSelectable && !looseEqual(selectedRows, oldValue)) {\n const items = [];\n // `.forEach()` skips over non-existent indices (on sparse arrays)\n selectedRows.forEach((v, idx) => {\n if (v) {\n items.push(this.computedItems[idx]);\n }\n });\n this.$emit(EVENT_NAME_ROW_SELECTED, items);\n }\n }\n },\n beforeMount() {\n // Set up handlers if needed\n if (this.isSelectable) {\n this.setSelectionHandlers(true);\n }\n },\n methods: {\n // Public methods\n selectRow(index) {\n // Select a particular row (indexed based on computedItems)\n if (this.isSelectable && isNumber(index) && index >= 0 && index < this.computedItems.length && !this.isRowSelected(index)) {\n const selectedRows = this.selectableIsMultiSelect ? this.selectedRows.slice() : [];\n selectedRows[index] = true;\n this.selectedLastClicked = -1;\n this.selectedRows = selectedRows;\n }\n },\n unselectRow(index) {\n // Un-select a particular row (indexed based on `computedItems`)\n if (this.isSelectable && isNumber(index) && this.isRowSelected(index)) {\n const selectedRows = this.selectedRows.slice();\n selectedRows[index] = false;\n this.selectedLastClicked = -1;\n this.selectedRows = selectedRows;\n }\n },\n selectAllRows() {\n const length = this.computedItems.length;\n if (this.isSelectable && length > 0) {\n this.selectedLastClicked = -1;\n this.selectedRows = this.selectableIsMultiSelect ? createArray(length, true) : [true];\n }\n },\n isRowSelected(index) {\n // Determine if a row is selected (indexed based on `computedItems`)\n return !!(isNumber(index) && this.selectedRows[index]);\n },\n clearSelected() {\n // Clear any active selected row(s)\n this.selectedLastClicked = -1;\n this.selectedRows = [];\n },\n // Internal private methods\n selectableRowClasses(index) {\n if (this.isSelectable && this.isRowSelected(index)) {\n const variant = this.selectedVariant;\n return {\n 'b-table-row-selected': true,\n [`${this.dark ? 'bg' : 'table'}-${variant}`]: variant\n };\n }\n return {};\n },\n selectableRowAttrs(index) {\n return {\n 'aria-selected': !this.isSelectable ? null : this.isRowSelected(index) ? 'true' : 'false'\n };\n },\n setSelectionHandlers(on) {\n const method = on && !this.noSelectOnClick ? '$on' : '$off';\n // Handle row-clicked event\n this[method](EVENT_NAME_ROW_CLICKED, this.selectionHandler);\n // Clear selection on filter, pagination, and sort changes\n this[method](EVENT_NAME_FILTERED, this.clearSelected);\n this[method](EVENT_NAME_CONTEXT_CHANGED, this.clearSelected);\n },\n selectionHandler(item, index, event) {\n /* istanbul ignore if: should never happen */\n if (!this.isSelectable || this.noSelectOnClick) {\n // Don't do anything if table is not in selectable mode\n this.clearSelected();\n return;\n }\n const {\n selectMode,\n selectedLastRow\n } = this;\n let selectedRows = this.selectedRows.slice();\n let selected = !selectedRows[index];\n // Note 'multi' mode needs no special event handling\n if (selectMode === 'single') {\n selectedRows = [];\n } else if (selectMode === 'range') {\n if (selectedLastRow > -1 && event.shiftKey) {\n // range\n for (let idx = mathMin(selectedLastRow, index); idx <= mathMax(selectedLastRow, index); idx++) {\n selectedRows[idx] = true;\n }\n selected = true;\n } else {\n if (!(event.ctrlKey || event.metaKey)) {\n // Clear range selection if any\n selectedRows = [];\n selected = true;\n }\n if (selected) this.selectedLastRow = index;\n }\n }\n selectedRows[index] = selected;\n this.selectedRows = selectedRows;\n }\n }\n});\n\nexport { props, selectableMixin };\n","import { get } from '../../../utils/get';\nimport { isFunction, isDate, isNumber, isUndefinedOrNull, isNumeric } from '../../../utils/inspect';\nimport { toFloat } from '../../../utils/number';\nimport { stringifyObjectValues } from '../../../utils/stringify-object-values';\n\nconst normalizeValue = value => {\n if (isUndefinedOrNull(value)) {\n return '';\n }\n if (isNumeric(value)) {\n return toFloat(value, value);\n }\n return value;\n};\n\n// Default sort compare routine\n//\n// TODO:\n// Add option to sort by multiple columns (tri-state per column,\n// plus order of columns in sort) where `sortBy` could be an array\n// of objects `[ {key: 'foo', sortDir: 'asc'}, {key:'bar', sortDir: 'desc'} ...]`\n// or an array of arrays `[ ['foo','asc'], ['bar','desc'] ]`\n// Multisort will most likely be handled in `mixin-sort.js` by\n// calling this method for each sortBy\nconst defaultSortCompare = function (a, b) {\n let {\n sortBy = null,\n formatter = null,\n locale = undefined,\n localeOptions = {},\n nullLast = false\n } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n // Get the value by `sortBy`\n let aa = get(a, sortBy, null);\n let bb = get(b, sortBy, null);\n\n // Apply user-provided formatter\n if (isFunction(formatter)) {\n aa = formatter(aa, sortBy, a);\n bb = formatter(bb, sortBy, b);\n }\n\n // Internally normalize value\n // `null` / `undefined` => ''\n // `'0'` => `0`\n aa = normalizeValue(aa);\n bb = normalizeValue(bb);\n if (isDate(aa) && isDate(bb) || isNumber(aa) && isNumber(bb)) {\n // Special case for comparing dates and numbers\n // Internally dates are compared via their epoch number values\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n } else if (nullLast && aa === '' && bb !== '') {\n // Special case when sorting `null` / `undefined` / '' last\n return 1;\n } else if (nullLast && aa !== '' && bb === '') {\n // Special case when sorting `null` / `undefined` / '' last\n return -1;\n }\n\n // Do localized string comparison\n return stringifyObjectValues(aa).localeCompare(stringifyObjectValues(bb), locale, localeOptions);\n};\n\nexport { defaultSortCompare };\n","import { extend } from '../../../vue';\nimport { EVENT_NAME_HEAD_CLICKED, EVENT_NAME_SORT_CHANGED, MODEL_EVENT_NAME_PREFIX } from '../../../constants/events';\nimport { PROP_TYPE_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_ARRAY_STRING, PROP_TYPE_OBJECT } from '../../../constants/props';\nimport { arrayIncludes } from '../../../utils/array';\nimport { isFunction, isUndefinedOrNull } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { safeVueInstance } from '../../../utils/safe-vue-instance';\nimport { stableSort } from '../../../utils/stable-sort';\nimport { trim } from '../../../utils/string';\nimport { defaultSortCompare } from './default-sort-compare';\n\n// --- Constants ---\n\nconst MODEL_PROP_NAME_SORT_BY = 'sortBy';\nconst MODEL_EVENT_NAME_SORT_BY = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SORT_BY;\nconst MODEL_PROP_NAME_SORT_DESC = 'sortDesc';\nconst MODEL_EVENT_NAME_SORT_DESC = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SORT_DESC;\nconst SORT_DIRECTION_ASC = 'asc';\nconst SORT_DIRECTION_DESC = 'desc';\nconst SORT_DIRECTION_LAST = 'last';\nconst SORT_DIRECTIONS = [SORT_DIRECTION_ASC, SORT_DIRECTION_DESC, SORT_DIRECTION_LAST];\n\n// --- Props ---\n\nconst props = {\n labelSortAsc: makeProp(PROP_TYPE_STRING, 'Click to sort ascending'),\n labelSortClear: makeProp(PROP_TYPE_STRING, 'Click to clear sorting'),\n labelSortDesc: makeProp(PROP_TYPE_STRING, 'Click to sort descending'),\n noFooterSorting: makeProp(PROP_TYPE_BOOLEAN, false),\n noLocalSorting: makeProp(PROP_TYPE_BOOLEAN, false),\n // Another prop that should have had a better name\n // It should be `noSortClear` (on non-sortable headers)\n // We will need to make sure the documentation is clear on what\n // this prop does (as well as in the code for future reference)\n noSortReset: makeProp(PROP_TYPE_BOOLEAN, false),\n [MODEL_PROP_NAME_SORT_BY]: makeProp(PROP_TYPE_STRING),\n sortCompare: makeProp(PROP_TYPE_FUNCTION),\n // String: locale code\n // Array: array of Locale strings\n sortCompareLocale: makeProp(PROP_TYPE_ARRAY_STRING),\n // Supported localCompare options, see `options` section of:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare\n sortCompareOptions: makeProp(PROP_TYPE_OBJECT, {\n numeric: true\n }),\n // TODO: Make this tri-state: `true`, `false`, `null`\n [MODEL_PROP_NAME_SORT_DESC]: makeProp(PROP_TYPE_BOOLEAN, false),\n // This prop is named incorrectly\n // It should be `initialSortDirection` as it is a bit misleading\n // (not to mention it screws up the ARIA label on the headers)\n sortDirection: makeProp(PROP_TYPE_STRING, SORT_DIRECTION_ASC, value => {\n return arrayIncludes(SORT_DIRECTIONS, value);\n }),\n // Place the sorting icon on the left of the header cells\n sortIconLeft: makeProp(PROP_TYPE_BOOLEAN, false),\n // Sort null and undefined to appear last\n sortNullLast: makeProp(PROP_TYPE_BOOLEAN, false)\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst sortingMixin = extend({\n props,\n data() {\n return {\n localSortBy: this[MODEL_PROP_NAME_SORT_BY] || '',\n localSortDesc: this[MODEL_PROP_NAME_SORT_DESC] || false\n };\n },\n computed: {\n localSorting() {\n return this.hasProvider ? !!this.noProviderSorting : !this.noLocalSorting;\n },\n isSortable() {\n return this.computedFields.some(f => f.sortable);\n },\n // Sorts the filtered items and returns a new array of the sorted items\n // When not sorted, the original items array will be returned\n sortedItems() {\n const {\n localSortBy: sortBy,\n localSortDesc: sortDesc,\n sortCompareLocale: locale,\n sortNullLast: nullLast,\n sortCompare,\n localSorting,\n filteredItems,\n localItems\n } = safeVueInstance(this);\n const items = (filteredItems || localItems || []).slice();\n const localeOptions = {\n ...this.sortCompareOptions,\n usage: 'sort'\n };\n if (sortBy && localSorting) {\n const field = this.computedFieldsObj[sortBy] || {};\n const sortByFormatted = field.sortByFormatted;\n const formatter = isFunction(sortByFormatted) ? /* istanbul ignore next */sortByFormatted : sortByFormatted ? this.getFieldFormatter(sortBy) : undefined;\n\n // `stableSort` returns a new array, and leaves the original array intact\n return stableSort(items, (a, b) => {\n let result = null;\n // Call user provided `sortCompare` routine first\n if (isFunction(sortCompare)) {\n // TODO:\n // Change the `sortCompare` signature to the one of `defaultSortCompare`\n // with the next major version bump\n result = sortCompare(a, b, sortBy, sortDesc, formatter, localeOptions, locale);\n }\n // Fallback to built-in `defaultSortCompare` if `sortCompare`\n // is not defined or returns `null`/`false`\n if (isUndefinedOrNull(result) || result === false) {\n result = defaultSortCompare(a, b, {\n sortBy,\n formatter,\n locale,\n localeOptions,\n nullLast\n });\n }\n // Negate result if sorting in descending order\n return (result || 0) * (sortDesc ? -1 : 1);\n });\n }\n return items;\n }\n },\n watch: {\n /* istanbul ignore next: pain in the butt to test */\n isSortable(newValue) {\n if (newValue) {\n if (this.isSortable) {\n this.$on(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n } else {\n this.$off(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n },\n [MODEL_PROP_NAME_SORT_DESC](newValue) {\n /* istanbul ignore next */\n if (newValue === this.localSortDesc) {\n return;\n }\n this.localSortDesc = newValue || false;\n },\n [MODEL_PROP_NAME_SORT_BY](newValue) {\n /* istanbul ignore next */\n if (newValue === this.localSortBy) {\n return;\n }\n this.localSortBy = newValue || '';\n },\n // Update .sync props\n localSortDesc(newValue, oldValue) {\n // Emit update to sort-desc.sync\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_SORT_DESC, newValue);\n }\n },\n localSortBy(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_SORT_BY, newValue);\n }\n }\n },\n created() {\n if (this.isSortable) {\n this.$on(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n },\n methods: {\n // Handlers\n // Need to move from thead-mixin\n handleSort(key, field, event, isFoot) {\n if (!this.isSortable) {\n /* istanbul ignore next */\n return;\n }\n if (isFoot && this.noFooterSorting) {\n return;\n }\n // TODO: make this tri-state sorting\n // cycle desc => asc => none => desc => ...\n let sortChanged = false;\n const toggleLocalSortDesc = () => {\n const sortDirection = field.sortDirection || this.sortDirection;\n if (sortDirection === SORT_DIRECTION_ASC) {\n this.localSortDesc = false;\n } else if (sortDirection === SORT_DIRECTION_DESC) {\n this.localSortDesc = true;\n } else ;\n };\n if (field.sortable) {\n const sortKey = !this.localSorting && field.sortKey ? field.sortKey : key;\n if (this.localSortBy === sortKey) {\n // Change sorting direction on current column\n this.localSortDesc = !this.localSortDesc;\n } else {\n // Start sorting this column ascending\n this.localSortBy = sortKey;\n // this.localSortDesc = false\n toggleLocalSortDesc();\n }\n sortChanged = true;\n } else if (this.localSortBy && !this.noSortReset) {\n this.localSortBy = '';\n toggleLocalSortDesc();\n sortChanged = true;\n }\n if (sortChanged) {\n // Sorting parameters changed\n this.$emit(EVENT_NAME_SORT_CHANGED, this.context);\n }\n },\n // methods to compute classes and attrs for thead>th cells\n sortTheadThClasses(key, field, isFoot) {\n return {\n // If sortable and sortIconLeft are true, then place sort icon on the left\n 'b-table-sort-icon-left': field.sortable && this.sortIconLeft && !(isFoot && this.noFooterSorting)\n };\n },\n sortTheadThAttrs(key, field, isFoot) {\n var _field$sortKey;\n const {\n isSortable,\n noFooterSorting,\n localSortDesc,\n localSortBy,\n localSorting\n } = this;\n if (!isSortable || isFoot && noFooterSorting) {\n // No attributes if not a sortable table\n return {};\n }\n const sortable = field.sortable;\n const sortKey = !localSorting ? (_field$sortKey = field.sortKey) !== null && _field$sortKey !== void 0 ? _field$sortKey : key : key;\n\n // Assemble the aria-sort attribute value\n const ariaSort = sortable && localSortBy === sortKey ? localSortDesc ? 'descending' : 'ascending' : sortable ? 'none' : null;\n // Return the attribute\n return {\n 'aria-sort': ariaSort\n };\n },\n // A label to be placed in an `.gl-sr-only` element in the header cell\n sortTheadThLabel(key, field, isFoot) {\n // No label if not a sortable table\n if (!this.isSortable || isFoot && this.noFooterSorting) {\n return null;\n }\n const {\n localSortBy,\n localSortDesc,\n labelSortAsc,\n labelSortDesc\n } = this;\n const {\n sortable\n } = field;\n // The correctness of these labels is very important for screen reader users\n let labelSorting = '';\n if (sortable) {\n if (localSortBy === key) {\n // Currently sorted sortable column\n labelSorting = localSortDesc ? labelSortAsc : labelSortDesc;\n } else {\n // Not currently sorted sortable column\n // Not using nested ternary's here for clarity/readability\n // Default for `aria-label`\n labelSorting = localSortDesc ? labelSortDesc : labelSortAsc;\n // Handle `sortDirection` setting\n const sortDirection = this.sortDirection || field.sortDirection;\n if (sortDirection === SORT_DIRECTION_ASC) {\n labelSorting = labelSortAsc;\n } else if (sortDirection === SORT_DIRECTION_DESC) {\n labelSorting = labelSortDesc;\n }\n }\n } else if (!this.noSortReset) {\n // Non sortable column\n labelSorting = localSortBy ? this.labelSortClear : '';\n }\n // Return the `.gl-sr-only` sort label or `null` if no label\n return trim(labelSorting) || null;\n }\n }\n});\n\nexport { props, sortingMixin };\n","import { extend } from '../../../vue';\nimport { SLOT_NAME_TOP_ROW } from '../../../constants/slots';\nimport { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr';\n\n// --- Props ---\n\nconst props = {};\n\n// --- Mixin ---\n\n// @vue/component\nconst topRowMixin = extend({\n methods: {\n renderTopRow() {\n const {\n computedFields: fields,\n stacked,\n tbodyTrClass,\n tbodyTrAttr\n } = this;\n const h = this.$createElement;\n\n // Add static Top Row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in *always* stacked mode, we don't bother rendering the row\n if (!this.hasNormalizedSlot(SLOT_NAME_TOP_ROW) || stacked === true || stacked === '') {\n return h();\n }\n return h(BTr, {\n staticClass: 'b-table-top-row',\n class: [isFunction(tbodyTrClass) ? tbodyTrClass(null, 'row-top') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ? tbodyTrAttr(null, 'row-top') : tbodyTrAttr,\n key: 'b-top-row'\n }, [this.normalizeSlot(SLOT_NAME_TOP_ROW, {\n columns: fields.length,\n fields\n })]);\n }\n }\n});\n\nexport { props, topRowMixin };\n","import { extend } from '../../vue';\nimport { NAME_TABLE } from '../../constants/components';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { hasListenerMixin } from '../../mixins/has-listener';\nimport { props as props$1, idMixin } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { props as props$2, bottomRowMixin } from './helpers/mixin-bottom-row';\nimport { props as props$3, busyMixin } from './helpers/mixin-busy';\nimport { props as props$4, captionMixin } from './helpers/mixin-caption';\nimport { props as props$5, colgroupMixin } from './helpers/mixin-colgroup';\nimport { props as props$6, emptyMixin } from './helpers/mixin-empty';\nimport { props as props$7, filteringMixin } from './helpers/mixin-filtering';\nimport { props as props$8, itemsMixin } from './helpers/mixin-items';\nimport { props as props$9, paginationMixin } from './helpers/mixin-pagination';\nimport { props as props$a, providerMixin } from './helpers/mixin-provider';\nimport { props as props$b, selectableMixin } from './helpers/mixin-selectable';\nimport { props as props$c, sortingMixin } from './helpers/mixin-sorting';\nimport { props as props$d, stackedMixin } from './helpers/mixin-stacked';\nimport { props as props$e, tableRendererMixin } from './helpers/mixin-table-renderer';\nimport { props as props$f, tbodyMixin } from './helpers/mixin-tbody';\nimport { props as props$g, tfootMixin } from './helpers/mixin-tfoot';\nimport { props as props$h, theadMixin } from './helpers/mixin-thead';\nimport { props as props$i, topRowMixin } from './helpers/mixin-top-row';\n\n// --- Props ---\n\nconst props = makePropsConfigurable(sortKeys({\n ...props$1,\n ...props$2,\n ...props$3,\n ...props$4,\n ...props$5,\n ...props$6,\n ...props$7,\n ...props$8,\n ...props$9,\n ...props$a,\n ...props$b,\n ...props$c,\n ...props$d,\n ...props$e,\n ...props$f,\n ...props$g,\n ...props$h,\n ...props$i\n}), NAME_TABLE);\n\n// --- Main component ---\n\n// @vue/component\nconst BTable = /*#__PURE__*/extend({\n name: NAME_TABLE,\n // Order of mixins is important!\n // They are merged from first to last, followed by this component\n mixins: [\n // General mixins\n attrsMixin, hasListenerMixin, idMixin, normalizeSlotMixin,\n // Required table mixins\n itemsMixin, tableRendererMixin, stackedMixin, theadMixin, tfootMixin, tbodyMixin,\n // Table features mixins\n stackedMixin, filteringMixin, sortingMixin, paginationMixin, captionMixin, colgroupMixin, selectableMixin, emptyMixin, topRowMixin, bottomRowMixin, busyMixin, providerMixin],\n props\n // Render function is provided by `tableRendererMixin`\n});\n\nexport { BTable, props };\n","const tableFullSlots = ['bottom-row', 'empty', 'emptyfiltered', 'table-busy', 'thead-top', 'top-row'];\nconst tableFullProps = ['api-url', 'busy', 'current-page', 'empty-filtered-html', 'empty-filtered-text', 'empty-html', 'empty-text', 'filter', 'filter-debounce', 'filter-function', 'filter-ignored-fields', 'filter-included-fields', 'label-sort-asc', 'label-sort-clear', 'label-sort-desc', 'no-footer-sorting', 'no-local-sorting', 'no-provider-filtering', 'no-provider-paging', 'no-provider-sorting', 'no-select-on-click', 'per-page', 'select-mode', 'selectable', 'selected-variant', 'show-empty', 'sort-by', 'sort-compare', 'sort-compare-locale', 'sort-compare-options', 'sort-desc', 'sort-direction', 'sort-icon-left', 'sort-null-last'];\nconst glTableLiteWarning = 'This GlTable could be a GlTableLite component, please consider using GlTableLite instead of GlTable to reduce the page bundlesize more about this here: https://gitlab-org.gitlab.io/gitlab-ui/?path=/docs/base-table-table-lite--default';\n\nexport { glTableLiteWarning, tableFullProps, tableFullSlots };\n","import { BTable } from '../../../vendor/bootstrap-vue/src/components/table/table';\nimport { isDev, logWarning } from '../../../utils/utils';\nimport { tableFullProps, tableFullSlots, glTableLiteWarning } from './constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst shouldUseFullTable = _ref => {\n let {\n $attrs,\n $scopedSlots\n } = _ref;\n return tableFullProps.some(prop => $attrs[prop] !== undefined) || tableFullSlots.some(slot => $scopedSlots[slot] !== undefined);\n};\nconst {\n tableClass\n} = BTable.options.props;\nvar script = {\n name: 'GlTable',\n components: {\n BTable\n },\n inheritAttrs: false,\n props: {\n tableClass,\n fields: {\n type: Array,\n required: false,\n default: null\n },\n stickyHeader: {\n type: Boolean,\n default: false,\n required: false\n },\n sortBy: {\n type: String,\n required: false,\n default: undefined\n },\n sortDesc: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n data() {\n return {\n localSortBy: this.sortBy,\n localSortDesc: this.sortDesc\n };\n },\n computed: {\n stickyHeaderClass() {\n return this.stickyHeader ? 'gl-table--sticky-header' : null;\n },\n localTableClass() {\n return ['gl-table', this.tableClass, this.stickyHeaderClass];\n },\n headSlots() {\n return ['head()', ...Object.keys(this.$scopedSlots).filter(slotName => slotName.startsWith('head('))];\n },\n computedFields() {\n var _this$fields;\n return (_this$fields = this.fields) === null || _this$fields === void 0 ? void 0 : _this$fields.map(field => {\n if (typeof field === 'string') {\n return field;\n }\n const {\n thAlignRight,\n thClass = '',\n ...rest\n } = field;\n const computedThClass = Array.isArray(thClass) ? thClass : thClass.split(' ');\n if (thAlignRight) {\n computedThClass.push('gl-table-th-align-right');\n }\n return {\n ...rest,\n thClass: computedThClass\n };\n });\n }\n },\n mounted() {\n // logWarning will call isDev before logging any message\n // this additional call to isDev is being made to exit the condition early when run in production\n if (isDev() && !shouldUseFullTable(this)) {\n logWarning(glTableLiteWarning, this.$el);\n }\n },\n methods: {\n isSortable(_ref2) {\n let {\n field\n } = _ref2;\n return field === null || field === void 0 ? void 0 : field.sortable;\n },\n activeSortingColumn(_ref3) {\n let {\n field\n } = _ref3;\n return this.localSortBy === (field === null || field === void 0 ? void 0 : field.key);\n },\n getSortingIcon(_ref4) {\n let {\n field\n } = _ref4;\n if (this.activeSortingColumn({\n field\n })) {\n if (this.localSortDesc) {\n return '↓';\n }\n return '↑';\n }\n if (this.$attrs['sort-direction'] === 'desc') {\n return '↓';\n }\n return '↑';\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-table',_vm._g(_vm._b({attrs:{\"table-class\":_vm.localTableClass,\"fields\":_vm.computedFields,\"sort-by\":_vm.localSortBy,\"sort-desc\":_vm.localSortDesc,\"no-sort-reset\":\"\"},on:{\"update:sortBy\":function($event){_vm.localSortBy=$event;},\"update:sort-by\":function($event){_vm.localSortBy=$event;},\"update:sortDesc\":function($event){_vm.localSortDesc=$event;},\"update:sort-desc\":function($event){_vm.localSortDesc=$event;}},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$scopedSlots)),function(slotName){return {key:slotName,fn:function(scope){return [_vm._t(slotName,null,null,scope)]}}}),_vm._l((_vm.headSlots),function(headSlotName){return {key:headSlotName,fn:function(scope){return [_c('div',{key:headSlotName,staticClass:\"gl-flex\"},[_vm._t(headSlotName,function(){return [_c('span',[_vm._v(_vm._s(scope.label))])]},null,scope),(_vm.isSortable(scope))?[_c('div',{staticClass:\"gl-table-th-sort-icon-wrapper gl-flex gl-w-5 gl-justify-center\"},[_c('span',{class:{ 'gl-hidden': !_vm.activeSortingColumn(scope) },attrs:{\"name\":\"sort-icon\",\"data-testid\":\"sort-icon\"}},[_vm._v(\"\\n \"+_vm._s(_vm.getSortingIcon(scope))+\"\\n \")])])]:_vm._e()],2)]}}})],null,true)},'b-table',_vm.$attrs,false),_vm.$listeners))};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var apply = require('./_apply'),\n baseRest = require('./_baseRest'),\n isError = require('./isError');\n\n/**\n * Attempts to invoke `func`, returning either the result or the caught error\n * object. Any additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Function} func The function to attempt.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {*} Returns the `func` result or error object.\n * @example\n *\n * // Avoid throwing errors for invalid selectors.\n * var elements = _.attempt(function(selector) {\n * return document.querySelectorAll(selector);\n * }, '>_>');\n *\n * if (_.isError(elements)) {\n * elements = [];\n * }\n */\nvar attempt = baseRest(function(func, args) {\n try {\n return apply(func, undefined, args);\n } catch (e) {\n return isError(e) ? e : new Error(e);\n }\n});\n\nmodule.exports = attempt;\n"],"sourceRoot":""}