{"version":3,"sources":["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:////build/source/node_modules/lodash/_baseIntersection.js","webpack:////build/source/node_modules/pikaday/pikaday.js","webpack:///./lib/utils/resize_observer.js","webpack:////build/source/node_modules/lodash/head.js","webpack:///./sortable/utils.js","webpack:///./work_items/graphql/namespace_projects_for_links_widget.query.graphql","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:///./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:///./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:////build/source/node_modules/lodash/_stringSize.js","webpack:///./performance/constants.js","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/move_work_item.mutation.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:////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:////build/source/node_modules/sortablejs/modular/sortable.esm.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/filtered_search/filtered_search_term.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/filtered_search/filtered_search.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/text-selection-active.js","webpack:///./work_items/graphql/work_item_development.query.graphql","webpack:////build/source/node_modules/lodash/isSet.js","webpack:///./work_items/graphql/notes/work_item_notes_by_iid.query.graphql","webpack:///./work_items/components/design_management/graphql/reposition_image_diff_note.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:////build/source/node_modules/lodash/clamp.js","webpack:///./work_items/graphql/work_item_description_template.query.graphql","webpack:///./work_items/graphql/work_item_linked_items.fragment.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:////build/source/ee/app/assets/javascripts/epics_list/components/epics_list_bulk_edit_sidebar.vue","webpack:////build/source/ee/app/assets/javascripts/epics_list/components/epics_list_bulk_edit_sidebar.vue?43b8","webpack:///../../../ee/app/assets/javascripts/epics_list/components/epics_list_bulk_edit_sidebar.vue","webpack:////build/source/ee/app/assets/javascripts/epics_list/components/epics_list_bulk_edit_sidebar.vue?cb0f","webpack:///./sidebar/components/labels/labels_select_vue/labels_select_root.vue","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_button.vue?372c","webpack:///sidebar/components/labels/labels_select_vue/dropdown_button.vue","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_button.vue?7c52","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_button.vue","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_contents_create_view.vue?8c63","webpack:///sidebar/components/labels/labels_select_vue/dropdown_contents_create_view.vue","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_contents_create_view.vue?420f","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_contents_create_view.vue","webpack:///./sidebar/components/labels/labels_select_vue/label_item.vue?ad4b","webpack:///sidebar/components/labels/labels_select_vue/label_item.vue","webpack:///./sidebar/components/labels/labels_select_vue/label_item.vue","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_contents_labels_view.vue?327a","webpack:///sidebar/components/labels/labels_select_vue/dropdown_contents_labels_view.vue","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_contents.vue?e487","webpack:///sidebar/components/labels/labels_select_vue/dropdown_contents.vue","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_contents_labels_view.vue?592b","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_contents_labels_view.vue","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_contents.vue?e141","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_contents.vue","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_title.vue?908f","webpack:///sidebar/components/labels/labels_select_vue/dropdown_title.vue","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_title.vue?4c25","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_title.vue","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_value.vue?bfb0","webpack:///sidebar/components/labels/labels_select_vue/dropdown_value.vue","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_value.vue?654a","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_value.vue","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_value_collapsed.vue?aa87","webpack:///sidebar/components/labels/labels_select_vue/dropdown_value_collapsed.vue","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_value_collapsed.vue?9da3","webpack:///./sidebar/components/labels/labels_select_vue/dropdown_value_collapsed.vue","webpack:///sidebar/components/labels/labels_select_vue/labels_select_root.vue","webpack:///./sidebar/components/labels/labels_select_vue/labels_select_root.vue?89f9","webpack:///./sidebar/components/labels/labels_select_vue/labels_select_root.vue?c1b5","webpack:///./pages/projects/work_items/index.js","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:///./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:///./work_items/graphql/work_item_convert.mutation.graphql","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/lodash/isNil.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/filtered_search/filtered_search_suggestion_list.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/filtered_search/filtered_search_token_segment.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/tfoot.js","webpack:///./vue_shared/mixins/timeago.js","webpack:////build/source/node_modules/lodash/xorBy.js","webpack:///./graphql_shared/fragments/page_info.fragment.graphql","webpack:////build/source/node_modules/lodash/_unicodeSize.js","webpack:////build/source/node_modules/lodash/_baseClamp.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/directives/toggle/toggle.js","webpack:////build/source/node_modules/jquery.caret/dist/jquery.caret.js","webpack:////build/source/node_modules/lodash/_compareMultiple.js","webpack:///./abuse_reports/components/constants.js","webpack:///./work_items/graphql/work_items_by_references.query.graphql","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:///./work_items/graphql/merge_request.fragment.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js","webpack:///./work_items/components/create_work_item_modal.vue","webpack:///./work_items/components/create_work_item_modal.vue?3c97","webpack:///work_items/components/create_work_item_modal.vue","webpack:///./work_items/components/create_work_item_modal.vue?d538","webpack:////build/source/ee/app/assets/javascripts/work_items/graphql/notes/work_item_note.fragment.graphql","webpack:////build/source/node_modules/lodash/_initCloneByTag.js","webpack:///./crm/contacts/components/graphql/get_group_contacts.query.graphql","webpack:////build/source/node_modules/lodash/_baseOrderBy.js","webpack:////build/source/node_modules/visibilityjs/index.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/normalize-fields.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js","webpack:////build/source/node_modules/scrollparent/scrollparent.js","webpack:///./work_items/components/create_work_item.vue","webpack:///./work_items/components/create_work_item.vue?8a52","webpack:///work_items/components/create_work_item.vue","webpack:///./work_items/components/create_work_item.vue?84fe","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:////build/source/node_modules/lodash/chunk.js","webpack:///./issues/list/components/empty_state_without_any_issues.vue","webpack:////build/source/node_modules/@gitlab/svgs/dist/illustrations/empty-state/empty-issues-add-md.svg","webpack:///./issues/list/components/empty_state_without_any_issues.vue?94c3","webpack:///issues/list/components/empty_state_without_any_issues.vue","webpack:///./issues/list/components/empty_state_without_any_issues.vue?8b27","webpack:///./vue_shared/directives/tooltip_on_truncate.js","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:////build/source/ee/app/assets/javascripts/issues/list/components/issue_card_statistics.vue","webpack:///./issues/list/components/issue_card_statistics.vue?b89e","webpack:///issues/list/components/issue_card_statistics.vue","webpack:///./issues/list/components/issue_card_statistics.vue?177c","webpack:///./issues/list/components/issue_card_statistics.vue","webpack:////build/source/ee/app/assets/javascripts/issues/components/blocking_issues_count.vue?e3b6","webpack:///../../../ee/app/assets/javascripts/issues/components/blocking_issues_count.vue","webpack:////build/source/ee/app/assets/javascripts/issues/list/components/issue_card_statistics.vue?a1a2","webpack:///../../../ee/app/assets/javascripts/issues/list/components/issue_card_statistics.vue","webpack:////build/source/ee/app/assets/javascripts/issues/components/blocking_issues_count.vue?3de6","webpack:////build/source/ee/app/assets/javascripts/issues/components/blocking_issues_count.vue","webpack:////build/source/ee/app/assets/javascripts/issues/list/components/issue_card_statistics.vue?d029","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js","webpack:///./work_items/graphql/work_item_hierarchy.fragment.graphql","webpack:////build/source/ee/app/assets/javascripts/issues/list/utils.js","webpack:///./work_items/graphql/get_project_root_ref.query.graphql","webpack:////build/source/node_modules/lodash/_compareAscending.js","webpack:////build/source/node_modules/lodash/groupBy.js","webpack:///./issues/dashboard/utils.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/ee/app/assets/javascripts/sidebar/constants.js","webpack:///./work_items/graphql/notes/toggle_work_item_note_resolve_discussion.mutation.graphql","webpack:////build/source/node_modules/dropzone/dist/dropzone.js","webpack:///./work_items/components/app.vue?7c1b","webpack:///./work_items/components/app.vue","webpack:///work_items/components/work_item_breadcrumb.vue","webpack:///./work_items/components/work_item_breadcrumb.vue?e393","webpack:///./work_items/components/work_item_breadcrumb.vue?f0ce","webpack:///./work_items/components/work_item_breadcrumb.vue","webpack:///./work_items/components/work_item_health_status.vue?5877","webpack:///work_items/components/work_item_health_status.vue","webpack:///./work_items/components/work_item_health_status.vue?2391","webpack:///./work_items/components/work_item_health_status.vue","webpack:///./work_items/pages/list/constants.js","webpack:///work_items/pages/work_items_list_app.vue","webpack:///./work_items/pages/work_items_list_app.vue?f0d8","webpack:///./work_items/pages/work_items_list_app.vue?e57e","webpack:///./work_items/pages/work_items_list_app.vue","webpack:////build/source/ee/app/assets/javascripts/work_items/pages/work_items_list_app.vue?54d4","webpack:///../../../ee/app/assets/javascripts/work_items/pages/work_items_list_app.vue","webpack:////build/source/ee/app/assets/javascripts/work_items/pages/work_items_list_app.vue?057d","webpack:////build/source/ee/app/assets/javascripts/work_items/pages/work_items_list_app.vue","webpack:///./work_items/pages/create_work_item.vue?69e1","webpack:///work_items/pages/create_work_item.vue","webpack:///./work_items/pages/create_work_item.vue?8484","webpack:///./work_items/pages/create_work_item.vue","webpack:///./work_items/pages/work_item_root.vue?ada1","webpack:///work_items/pages/work_item_root.vue","webpack:///./work_items/pages/work_item_root.vue?a27e","webpack:///./work_items/pages/work_item_root.vue","webpack:///./work_items/router/routes.js","webpack:///./work_items/router/index.js","webpack:///./work_items/index.js","webpack:///./work_items/graphql/notes/update_work_item_note.mutation.graphql","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:///./work_items/graphql/work_item_allowed_parent_types.query.graphql","webpack:///./work_items/graphql/update_new_work_item.mutation.graphql","webpack:///./work_items/graphql/group_work_items.query.graphql","webpack:////build/source/node_modules/@gitlab/svgs/dist/illustrations/empty-state/empty-activity-md.svg","webpack:///./work_items/graphql/work_item_allowed_children.query.graphql","webpack:///./issues/list/queries/set_sort_preference.mutation.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:///./work_items/components/design_management/constants.js","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:////build/source/node_modules/@gitlab/ui/dist/components/base/filtered_search/filtered_search_utils.js","webpack:///./work_items/components/work_item_loading.vue","webpack:///./work_items/components/work_item_loading.vue?3046","webpack:///work_items/components/work_item_loading.vue","webpack:///./work_items/components/work_item_loading.vue?5c2b","webpack:////build/source/node_modules/lodash/_arrayIncludesWith.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/mixins/model.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/form-select/form-select.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/form/form_select/form_select.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:///./work_items/components/design_management/graphql/fragments/version.fragment.graphql","webpack:////build/source/node_modules/lodash/difference.js","webpack:///./work_items/graphql/work_item_tree.query.graphql","webpack:///./import/constants.js","webpack:////build/source/node_modules/@gitlab/ui/dist/utils/datetime_utility.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/animated_icon/animated_todo_icon.js","webpack:///./work_items/components/work_item_milestone.vue","webpack:///./work_items/components/work_item_milestone.vue?fb28","webpack:///work_items/components/work_item_milestone.vue","webpack:///./work_items/components/work_item_milestone.vue?626e","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:///./work_items/graphql/award_emoji.query.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/avatars_inline/avatars_inline.js","webpack:///./work_items/components/design_management/graphql/client/update_active_design_discussion.mutation.graphql","webpack:///./lib/utils/keycodes.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/progress_bar/progress_bar.js","webpack:///./work_items/components/design_management/graphql/fragments/discussion_resolved_status.fragment.graphql","webpack:///./work_items/graphql/notes/create_work_item_note.mutation.graphql","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:///./work_items/graphql/work_item_related_item.query.graphql","webpack:////build/source/node_modules/core-js/modules/esnext.string.at.js","webpack:////build/source/node_modules/@gitlab/ui/dist/directives/outside/outside.js","webpack:///./vue_shared/components/new_resource_dropdown/new_resource_dropdown.vue","webpack:///./vue_shared/components/new_resource_dropdown/new_resource_dropdown.vue?301a","webpack:///vue_shared/components/new_resource_dropdown/new_resource_dropdown.vue","webpack:///./vue_shared/components/new_resource_dropdown/new_resource_dropdown.vue?e350","webpack:////build/source/node_modules/lodash/_baseAssign.js","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:///./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:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/filter-event.js","webpack:///./work_items/components/design_management/graphql/fragments/design_todo_item.fragment.graphql","webpack:///./work_items/components/work_item_parent.vue","webpack:///./work_items/components/work_item_parent.vue?1ce8","webpack:///work_items/components/work_item_parent.vue","webpack:///./work_items/components/work_item_parent.vue?33df","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/filtered_search/filtered_search_suggestion.js","webpack:////build/source/node_modules/@gitlab/svgs/dist/illustrations/empty-state/empty-epic-md.svg","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/directives/modal/modal.js","webpack:///./work_items/graphql/notes/work_item_note_deleted.subscription.graphql","webpack:////build/source/node_modules/modern-screenshot/dist/index.js","webpack:///./sidebar/components/labels/labels_select_vue/store/mutation_types.js","webpack:///./sidebar/components/labels/labels_select_vue/store/actions.js","webpack:///./sidebar/components/labels/labels_select_vue/store/getters.js","webpack:///./sidebar/components/labels/labels_select_vue/store/mutations.js","webpack:///./sidebar/components/labels/labels_select_vue/store/index.js","webpack:///./sidebar/components/labels/labels_select_vue/store/state.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:///./behaviors/markdown/utils.js","webpack:///./work_items/graphql/notes/work_item_note_add_award_emoji.mutation.graphql","webpack:///./work_items/graphql/list/base_work_item_widgets.fragment.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:///./vue_shared/components/upload_dropzone/upload_dropzone.vue","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/animated_icon/animated_upload_icon.js","webpack:///./vue_shared/components/upload_dropzone/constants.js","webpack:///vue_shared/components/upload_dropzone/upload_dropzone.vue","webpack:///./vue_shared/components/upload_dropzone/upload_dropzone.vue?e2a2","webpack:///./vue_shared/components/upload_dropzone/utils.js","webpack:///./vue_shared/components/upload_dropzone/upload_dropzone.vue?94cf","webpack:///./vue_shared/components/notes/timeline_entry_item.vue","webpack:///./vue_shared/components/notes/timeline_entry_item.vue?95e9","webpack:///./work_items/components/work_item_drawer.vue","webpack:///./work_items/components/work_item_drawer.vue?52f7","webpack:///work_items/components/work_item_drawer.vue","webpack:///./work_items/components/work_item_drawer.vue?b93e","webpack:////build/source/node_modules/@gitlab/at.js/dist/js/jquery.atwho.js","webpack:///./confidential_merge_request/state.js","webpack:///./lib/utils/grammar.js","webpack:////build/source/node_modules/lodash/_baseInverter.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/fuzzaldrin.js","webpack:////build/source/node_modules/lodash/_createSet.js","webpack:///./work_items/components/design_management/graphql/fragments/design_file.fragment.graphql","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/graphql/list/get_work_item_state_counts.query.graphql","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:///./work_items/graphql/notes/work_item_note_updated.subscription.graphql","webpack:///./notes/i18n.js","webpack:///./work_items/graphql/work_item_ancestors.subscription.graphql","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:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/constants.js","webpack:////build/source/node_modules/lodash/_castArrayLikeObject.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-colgroup.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/filtered_search/filtered_search_token.js","webpack:///./lib/utils/number_utils.js","webpack:////build/source/node_modules/lodash/truncate.js","webpack:///./notes/utils.js","webpack:////build/source/ee/app/assets/javascripts/work_items/graphql/list/work_item_parent.query.graphql","webpack:///./work_items/graphql/namespace_work_item_types.query.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/thead.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js","webpack:///./work_items/components/design_management/graphql/fragments/diff_refs.fragment.graphql","webpack:////build/source/node_modules/lodash/unionBy.js","webpack:////build/source/node_modules/vue-virtual-scroll-list/dist/index.js","webpack:////build/source/node_modules/lodash/differenceBy.js","webpack:////build/source/node_modules/lodash/sortBy.js","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:////build/source/node_modules/lodash/intersectionBy.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:////build/source/ee/app/assets/javascripts/issues/list/components/issue_card_time_info.vue","webpack:///./issues/list/components/issue_card_time_info.vue?247e","webpack:///issues/list/components/issue_card_time_info.vue","webpack:////build/source/ee/app/assets/javascripts/issues/list/components/issue_card_time_info.vue?ae50","webpack:///../../../ee/app/assets/javascripts/issues/list/components/issue_card_time_info.vue","webpack:///./issues/list/components/issue_card_time_info.vue?3fc4","webpack:///./issues/list/components/issue_card_time_info.vue","webpack:////build/source/ee/app/assets/javascripts/issues/list/components/issue_card_time_info.vue?752c","webpack:///./work_items/components/design_management/cache_updates.js","webpack:///./work_items/graphql/delete_work_item.mutation.graphql","webpack:///./issues/list/queries/search_labels.query.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/constants.js","webpack:////build/source/node_modules/lodash/_cloneSymbol.js","webpack:///./work_items/components/design_management/graphql/design_details.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:////build/source/node_modules/lodash/findLastIndex.js","webpack:///./work_items/graphql/update_award_emoji.mutation.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/animated_icon/animated_smile_icon.js","webpack:////build/source/node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/td.js","webpack:////build/source/node_modules/lodash/escapeRegExp.js","webpack:///./work_items/graphql/open_child_count.query.graphql","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/node_modules/@floating-ui/utils/dist/floating-ui.utils.esm.js","webpack:////build/source/node_modules/lodash/xor.js","webpack:///./work_items/graphql/notes/work_item_email_participants_by_iid.query.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/th.js","webpack:///./zen_mode.js","webpack:///./work_items/graphql/work_item_development.subscription.graphql","webpack:////build/source/node_modules/lodash/uniqBy.js","webpack:////build/source/node_modules/lodash/isNull.js","webpack:///./work_items/graphql/work_item_description_templates_list.query.graphql","webpack:///./work_items/components/work_item_detail.vue","webpack:///./work_items/components/work_item_links/work_item_actions_split_button.vue?a99d","webpack:///work_items/components/work_item_links/work_item_actions_split_button.vue","webpack:///./work_items/components/work_item_links/work_item_actions_split_button.vue?cd03","webpack:///./work_items/components/work_item_links/work_item_actions_split_button.vue","webpack:///./work_items/components/work_item_links/work_item_rolled_up_data.vue?48ef","webpack:///work_items/components/work_item_links/work_item_rolled_up_data.vue","webpack:///./work_items/components/work_item_links/work_item_rolled_up_data.vue?9c41","webpack:///./work_items/components/work_item_links/work_item_rolled_up_data.vue","webpack:///./work_items/components/work_item_links/work_item_tree.vue?044f","webpack:///work_items/components/work_item_links/work_item_tree.vue","webpack:///./work_items/components/work_item_links/work_item_tree.vue?c57c","webpack:///./work_items/components/work_item_links/work_item_tree.vue","webpack:///./work_items/components/work_item_change_type_modal.vue?9a1c","webpack:///work_items/components/work_item_change_type_modal.vue","webpack:///./work_items/components/work_item_change_type_modal.vue?8568","webpack:///./work_items/components/work_item_change_type_modal.vue","webpack:///./work_items/components/work_item_state_toggle.vue?e3e7","webpack:///work_items/components/work_item_state_toggle.vue","webpack:///./work_items/components/work_item_state_toggle.vue?2c69","webpack:///./work_items/components/work_item_state_toggle.vue","webpack:///./work_items/components/work_item_actions.vue?56dc","webpack:///work_items/components/work_item_actions.vue","webpack:///./work_items/components/work_item_actions.vue?68af","webpack:///./work_items/components/work_item_actions.vue","webpack:///work_items/components/work_item_notifications_widget.vue","webpack:///./work_items/components/work_item_notifications_widget.vue?9242","webpack:///./work_items/components/work_item_notifications_widget.vue?b710","webpack:///./work_items/components/work_item_notifications_widget.vue","webpack:///work_items/components/work_item_due_date.vue","webpack:///./work_items/components/work_item_due_date.vue?d0e7","webpack:///./work_items/components/work_item_due_date.vue?2fd1","webpack:///./work_items/components/work_item_due_date.vue","webpack:///work_items/components/work_item_time_tracking.vue","webpack:///./work_items/components/work_item_time_tracking.vue?9739","webpack:///./work_items/components/work_item_time_tracking.vue?bef8","webpack:///./work_items/components/work_item_time_tracking.vue","webpack:///./work_items/components/work_item_attributes_wrapper.vue?3ee9","webpack:///work_items/components/work_item_attributes_wrapper.vue","webpack:///./work_items/components/work_item_attributes_wrapper.vue?ffad","webpack:///./work_items/components/work_item_attributes_wrapper.vue","webpack:///./work_items/components/work_item_created_updated.vue?c7b0","webpack:///work_items/components/work_item_created_updated.vue","webpack:///./work_items/components/work_item_created_updated.vue?11fa","webpack:///./work_items/components/work_item_created_updated.vue","webpack:////build/source/ee/app/assets/javascripts/work_items/mixins/description_version_history.js","webpack:///work_items/components/notes/system_note.vue","webpack:///./work_items/components/notes/system_note.vue?54fa","webpack:///./work_items/components/notes/system_note.vue?c5f9","webpack:///./work_items/components/notes/system_note.vue","webpack:///./work_items/components/notes/work_item_activity_sort_filter.vue?8d5f","webpack:///work_items/components/notes/work_item_activity_sort_filter.vue","webpack:///./work_items/components/notes/work_item_activity_sort_filter.vue?1e1a","webpack:///./work_items/components/notes/work_item_activity_sort_filter.vue","webpack:///./work_items/components/notes/work_item_notes_activity_header.vue?dda5","webpack:///work_items/components/notes/work_item_notes_activity_header.vue","webpack:///./work_items/components/notes/work_item_notes_activity_header.vue?c3f7","webpack:///./work_items/components/notes/work_item_notes_activity_header.vue","webpack:///./work_items/notes/collapse_utils.js","webpack:///./work_items/components/notes/work_item_discussion.vue","webpack:///work_items/components/notes/work_item_comment_form.vue","webpack:///./work_items/components/notes/work_item_comment_form.vue?622c","webpack:///./work_items/components/notes/work_item_comment_form.vue?1cd1","webpack:///./work_items/components/notes/work_item_comment_form.vue","webpack:///./work_items/notes/award_utils.js","webpack:///work_items/components/notes/work_item_note_actions.vue","webpack:///./work_items/components/notes/work_item_note_actions.vue?fce1","webpack:///./work_items/components/notes/work_item_note_actions.vue?45ba","webpack:///./work_items/components/notes/work_item_note_actions.vue","webpack:///./work_items/components/notes/work_item_note_awards_list.vue?474c","webpack:///work_items/components/notes/work_item_note_awards_list.vue","webpack:///./work_items/components/notes/work_item_note_awards_list.vue?2ef2","webpack:///./work_items/components/notes/work_item_note_awards_list.vue","webpack:///./work_items/components/notes/work_item_note_body.vue?6676","webpack:///work_items/components/notes/work_item_note_body.vue","webpack:///./work_items/components/notes/work_item_note_body.vue?7c55","webpack:///./work_items/components/notes/work_item_note_body.vue","webpack:///./work_items/components/notes/work_item_note.vue?0e69","webpack:///work_items/components/notes/work_item_note.vue","webpack:///./work_items/components/notes/work_item_note.vue?c382","webpack:///./work_items/components/notes/work_item_note.vue","webpack:///./work_items/components/notes/work_item_note_replying.vue?6ff1","webpack:///work_items/components/notes/work_item_note_replying.vue","webpack:///./work_items/components/notes/work_item_note_replying.vue?9d28","webpack:///./work_items/components/notes/work_item_note_replying.vue","webpack:///./work_items/components/notes/work_item_note_signed_out.vue?f760","webpack:///work_items/components/notes/work_item_note_signed_out.vue","webpack:///./work_items/components/notes/work_item_note_signed_out.vue?e505","webpack:///./work_items/components/notes/work_item_note_signed_out.vue","webpack:///./work_items/components/notes/work_item_comment_locked.vue?2d70","webpack:///work_items/components/notes/work_item_comment_locked.vue","webpack:///./work_items/components/notes/work_item_comment_locked.vue?856c","webpack:///./work_items/components/notes/work_item_comment_locked.vue","webpack:///./work_items/components/notes/work_item_add_note.vue?6ae6","webpack:///work_items/components/notes/work_item_add_note.vue","webpack:///./work_items/components/notes/work_item_add_note.vue?d7ae","webpack:///./work_items/components/notes/work_item_add_note.vue","webpack:///./work_items/components/notes/work_item_discussion.vue?c24f","webpack:///work_items/components/notes/work_item_discussion.vue","webpack:///./work_items/components/notes/work_item_discussion.vue?67c0","webpack:///./work_items/components/notes/work_item_history_only_filter_note.vue?79f4","webpack:///work_items/components/notes/work_item_history_only_filter_note.vue","webpack:///./work_items/components/notes/work_item_history_only_filter_note.vue?5c2d","webpack:///./work_items/components/notes/work_item_history_only_filter_note.vue","webpack:///./work_items/components/work_item_notes.vue?0d4d","webpack:///work_items/components/work_item_notes.vue","webpack:///./work_items/components/work_item_notes.vue?f155","webpack:///./work_items/components/work_item_notes.vue","webpack:///./work_items/components/work_item_award_emoji.vue?937e","webpack:///work_items/components/work_item_award_emoji.vue","webpack:///./work_items/components/work_item_award_emoji.vue?5ab7","webpack:///./work_items/components/work_item_award_emoji.vue","webpack:///./work_items/components/work_item_relationships/work_item_relationship_list.vue?64a2","webpack:///work_items/components/work_item_relationships/work_item_relationship_list.vue","webpack:///./work_items/components/work_item_relationships/work_item_relationship_list.vue?0e63","webpack:///./work_items/components/work_item_relationships/work_item_relationship_list.vue","webpack:///./work_items/components/work_item_relationships/work_item_add_relationship_form.vue?5dc5","webpack:///work_items/components/work_item_relationships/work_item_add_relationship_form.vue","webpack:///./work_items/components/work_item_relationships/work_item_add_relationship_form.vue?58b0","webpack:///./work_items/components/work_item_relationships/work_item_add_relationship_form.vue","webpack:///./work_items/components/work_item_relationships/work_item_relationships.vue?d155","webpack:///work_items/components/work_item_relationships/work_item_relationships.vue","webpack:///./work_items/components/work_item_relationships/work_item_relationships.vue?1939","webpack:///./work_items/components/work_item_relationships/work_item_relationships.vue","webpack:///./work_items/components/work_item_sticky_header.vue?626d","webpack:///work_items/components/work_item_sticky_header.vue","webpack:///./work_items/components/work_item_sticky_header.vue?80b7","webpack:///./work_items/components/work_item_sticky_header.vue","webpack:///./work_items/components/work_item_ancestors/disclosure_hierarchy_item.vue?4ad8","webpack:///work_items/components/work_item_ancestors/disclosure_hierarchy_item.vue","webpack:///./work_items/components/work_item_ancestors/disclosure_hierarchy_item.vue?91e3","webpack:///./work_items/components/work_item_ancestors/disclosure_hierarchy_item.vue","webpack:///./work_items/components/work_item_ancestors/disclosure_hierarchy.vue?7c4b","webpack:///work_items/components/work_item_ancestors/disclosure_hierarchy.vue","webpack:///./work_items/components/work_item_ancestors/disclosure_hierarchy.vue?5f51","webpack:///./work_items/components/work_item_ancestors/disclosure_hierarchy.vue","webpack:///work_items/components/work_item_ancestors/work_item_ancestors.vue","webpack:///./work_items/components/work_item_ancestors/work_item_ancestors.vue?a446","webpack:///./work_items/components/work_item_ancestors/work_item_ancestors.vue?bf1c","webpack:///./work_items/components/work_item_ancestors/work_item_ancestors.vue","webpack:///./work_items/components/design_management/design_item.vue?0efa","webpack:///work_items/components/design_management/design_item.vue","webpack:///./work_items/components/design_management/design_item.vue?ccde","webpack:///./work_items/components/design_management/design_item.vue","webpack:///./work_items/components/design_management/design_version_dropdown.vue?dcc2","webpack:///work_items/components/design_management/design_version_dropdown.vue","webpack:///./work_items/components/design_management/design_version_dropdown.vue?3b53","webpack:///./work_items/components/design_management/design_version_dropdown.vue","webpack:///./work_items/components/design_management/design_management_widget.vue?35d6","webpack:///work_items/components/design_management/design_management_widget.vue","webpack:///./work_items/components/design_management/design_management_widget.vue?84d8","webpack:///./work_items/components/design_management/design_management_widget.vue","webpack:///./work_items/components/design_management/upload_button.vue?4192","webpack:///work_items/components/design_management/upload_button.vue","webpack:///./work_items/components/design_management/upload_button.vue?a256","webpack:///./work_items/components/design_management/upload_button.vue","webpack:///./work_items/components/work_item_development/work_item_development_mr_item.vue?a7f5","webpack:///work_items/components/work_item_development/work_item_development_mr_item.vue","webpack:///./work_items/components/work_item_development/work_item_development_mr_item.vue?beaf","webpack:///./work_items/components/work_item_development/work_item_development_mr_item.vue","webpack:///./work_items/components/work_item_development/work_item_development_branch_item.vue?8b5f","webpack:///work_items/components/work_item_development/work_item_development_branch_item.vue","webpack:///./work_items/components/work_item_development/work_item_development_branch_item.vue?086e","webpack:///./work_items/components/work_item_development/work_item_development_branch_item.vue","webpack:///./work_items/components/work_item_development/work_item_development_relationship_list.vue?b52a","webpack:///work_items/components/work_item_development/work_item_development_relationship_list.vue","webpack:///./work_items/components/work_item_development/work_item_development_relationship_list.vue?6bfb","webpack:///./work_items/components/work_item_development/work_item_development_relationship_list.vue","webpack:///./work_items/components/work_item_development/work_item_create_branch_merge_request_modal.vue?387d","webpack:///work_items/components/work_item_development/work_item_create_branch_merge_request_modal.vue","webpack:///./work_items/components/work_item_development/work_item_create_branch_merge_request_modal.vue?7e42","webpack:///./work_items/components/work_item_development/work_item_create_branch_merge_request_modal.vue","webpack:///./work_items/components/work_item_development/work_item_development.vue?b235","webpack:///work_items/components/work_item_development/work_item_development.vue","webpack:///./work_items/components/work_item_development/work_item_development.vue?abd7","webpack:///./work_items/components/work_item_development/work_item_development.vue","webpack:///./work_items/components/work_item_development/work_item_create_branch_merge_request_split_button.vue?19f3","webpack:///work_items/components/work_item_development/work_item_create_branch_merge_request_split_button.vue","webpack:///./work_items/components/work_item_development/work_item_create_branch_merge_request_split_button.vue?2642","webpack:///./work_items/components/work_item_development/work_item_create_branch_merge_request_split_button.vue","webpack:///work_items/components/work_item_detail.vue","webpack:///./work_items/components/work_item_detail.vue?1bff","webpack:///./work_items/components/work_item_detail.vue?324a","webpack:////build/source/node_modules/lodash/_initCloneArray.js","webpack:///./work_items/graphql/work_item_ancestors.fragment.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/tbody.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js","webpack:///./work_items/graphql/namespace_groups_for_links_widget.query.graphql","webpack:////build/source/node_modules/immer/dist/immer.esm.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:///./vue_shared/components/new_resource_dropdown/graphql/search_user_projects_with_issues_enabled.query.graphql","webpack:////build/source/ee/app/assets/javascripts/work_items/graphql/work_item_type.fragment.graphql","webpack:////build/source/node_modules/lodash/first.js","webpack:///./work_items/graphql/update_work_item_hierarchy.mutation.graphql","webpack:///./work_items/graphql/remove_linked_items.mutation.graphql","webpack:///./work_items/components/design_management/graphql/create_image_diff_note.mutation.graphql","webpack:///./work_items/components/shared/work_item_sidebar_dropdown_widget.vue","webpack:///./work_items/components/shared/work_item_sidebar_dropdown_widget.vue?b4bb","webpack:///work_items/components/shared/work_item_sidebar_dropdown_widget.vue","webpack:///./work_items/components/shared/work_item_sidebar_dropdown_widget.vue?e609","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:////build/source/node_modules/lodash/uniq.js","webpack:///./issues/list/components/empty_state_with_any_issues.vue","webpack:////build/source/node_modules/@gitlab/svgs/dist/illustrations/empty-state/empty-issues-md.svg","webpack:///./issues/list/components/empty_state_with_any_issues.vue?26f3","webpack:///issues/list/components/empty_state_with_any_issues.vue","webpack:///./issues/list/components/empty_state_with_any_issues.vue?a4d9","webpack:////build/source/node_modules/lodash/_baseUniq.js","webpack:///./issues/list/queries/label.fragment.graphql","webpack:////build/source/node_modules/lodash/isMap.js","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:///./work_items/graphql/cache_utils.js","webpack:///./issues/list/queries/search_projects.query.graphql","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:///./work_items/graphql/notes/work_item_note_remove_award_emoji.mutation.graphql","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/lodash/_createInverter.js","webpack:///./work_items/components/work_item_assignees.vue","webpack:///./work_items/components/work_item_assignees.vue?ce77","webpack:///work_items/components/work_item_assignees.vue","webpack:///./work_items/components/work_item_assignees.vue?51dd","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_title.vue","webpack:///./work_items/components/work_item_title.vue?724e","webpack:///work_items/components/work_item_title.vue","webpack:///./work_items/components/work_item_title.vue?2723","webpack:///./issues/new/queries/issues.query.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/utilities/intersection_observer/intersection_observer.js","webpack:///./issues/show/utils/issuable_data.js","webpack:///./work_items/components/design_management/utils.js","webpack:///./jira_import/utils/constants.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:///./work_items/components/notes/work_item_notes_loading.vue","webpack:///./work_items/components/notes/work_item_notes_loading.vue?f027","webpack:///work_items/components/notes/work_item_notes_loading.vue","webpack:///./work_items/components/notes/work_item_notes_loading.vue?83ca","webpack:////build/source/node_modules/@gitlab/ui/dist/components/utilities/truncate_text/constants.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/utilities/truncate_text/truncate_text.js","webpack:///./work_items/components/work_item_crm_contacts.vue","webpack:///./work_items/components/work_item_crm_contacts.vue?edf4","webpack:///work_items/components/work_item_crm_contacts.vue","webpack:///./work_items/components/work_item_crm_contacts.vue?bb6c","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/work_item_description.vue","webpack:///work_items/components/work_item_description_rendered.vue","webpack:///./work_items/components/work_item_description_rendered.vue?96fb","webpack:///./work_items/components/work_item_description_rendered.vue?08bb","webpack:///./work_items/components/work_item_description_rendered.vue","webpack:///./work_items/components/work_item_description_template_listbox.vue?43cb","webpack:///work_items/components/work_item_description_template_listbox.vue","webpack:///./work_items/components/work_item_description_template_listbox.vue?273f","webpack:///./work_items/components/work_item_description_template_listbox.vue","webpack:///./work_items/components/work_item_description.vue?8bb8","webpack:///work_items/components/work_item_description.vue","webpack:///./work_items/components/work_item_description.vue?9fd5","webpack:////build/source/node_modules/lodash/_copySymbols.js","webpack:///./issues/list/queries/get_issues_list_details.query.graphql","webpack:///./work_items/graphql/notes/work_item_note.query.graphql","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:///./work_items/components/design_management/graphql/move_design.mutation.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/sorting/sorting.js","webpack:///./work_items/graphql/workspace_permissions.query.graphql","webpack:///./work_items/graphql/notes/delete_work_item_notes.mutation.graphql","webpack:///./work_items/components/create_work_item_cancel_confirmation_modal.vue","webpack:///./work_items/components/create_work_item_cancel_confirmation_modal.vue?0374","webpack:///work_items/components/create_work_item_cancel_confirmation_modal.vue","webpack:///./work_items/components/create_work_item_cancel_confirmation_modal.vue?3231","webpack:///./invite_members/constants.js","webpack:///./work_items/components/work_item_labels.vue","webpack:///work_items/components/work_item_labels.vue","webpack:///./work_items/components/work_item_labels.vue?9891","webpack:///./work_items/components/work_item_labels.vue?4e5d","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:///./work_items/graphql/project_work_items.query.graphql","webpack:///./behaviors/shortcuts/shortcuts_work_items.js","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:////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:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/mixins/has-listener.js","webpack:///./work_items/components/design_management/graphql/fragments/design.fragment.graphql","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:///./work_items/graphql/add_linked_items.mutation.graphql","webpack:////build/source/node_modules/lodash/cloneDeep.js","webpack:///./work_items/graphql/work_item_ancestors.query.graphql","webpack:///./lib/utils/breadcrumbs.js","webpack:////build/source/node_modules/visibilityjs/lib/visibility.core.js","webpack:////build/source/node_modules/vue-router/dist/vue-router.esm.js","webpack:///./vue_shared/issuable/list/components/issuable_milestone.vue","webpack:///./vue_shared/issuable/list/components/issuable_milestone.vue?4c9a","webpack:///vue_shared/issuable/list/components/issuable_milestone.vue","webpack:///./vue_shared/issuable/list/components/issuable_milestone.vue?5c04","webpack:///./performance/utils.js","webpack:////build/source/node_modules/lodash/isRegExp.js","webpack:///./work_items/components/design_management/graphql/update_design_description.mutation.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/avatar_link/avatar_link.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/tr.js","webpack:////build/source/node_modules/lodash/_asciiSize.js","webpack:////build/source/node_modules/lodash/_copySymbolsIn.js","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:///./work_items/graphql/work_item_participants.query.graphql","webpack:////build/source/node_modules/portal-vue/dist/portal-vue.common.js","webpack:////build/source/ee/app/assets/javascripts/work_items/graphql/work_item_development.fragment.graphql","webpack:////build/source/node_modules/lodash/_cloneDataView.js","webpack:///./work_items/graphql/notes/work_item_discussion_note.fragment.graphql","webpack:///./issues/list/has_new_issue_dropdown_mixin.js","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:///./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:////build/source/node_modules/lodash/_baseIsRegExp.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/base_dropdown/base_dropdown.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/base_dropdown/constants.js","webpack:////build/source/node_modules/lodash/_baseAssignIn.js","webpack:///./lib/utils/scroll_utils.js","webpack:///./vue_shared/components/new_resource_dropdown/constants.js","webpack:////build/source/node_modules/core-js/internals/string-multibyte.js","webpack:////build/source/node_modules/lodash/uniqWith.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/matcher.js","webpack:///./work_items/graphql/list/get_work_items.query.graphql","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:///./work_items/graphql/update_work_item_notifications.mutation.graphql","webpack:///./crm/contacts/components/graphql/crm_contact_fields.fragment.graphql","webpack:///./work_items/components/design_management/graphql/upload_design.mutation.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/search_box_by_click/search_box_by_click.js","webpack:///./work_items/graphql/update_parent.mutation.graphql","webpack:///./vue_shared/mixins/modal_keyboard_navigation_mixin.js","webpack:////build/source/node_modules/@floating-ui/core/dist/floating-ui.core.esm.js","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/node_modules/lodash/_baseSortBy.js","webpack:///./work_items/graphql/create_work_item.mutation.graphql","webpack:///./work_items/components/design_management/graphql/design_collection.query.graphql","webpack:///./vue_shared/plugins/global_toast.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js","webpack:////build/source/ee/app/assets/javascripts/work_items/graphql/work_item_metadata_widgets.fragment.graphql","webpack:////build/source/ee/app/assets/javascripts/work_items/graphql/list/work_item_widgets.fragment.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/datepicker/datepicker.js","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:///./work_items/graphql/work_item_updated.subscription.graphql","webpack:////build/source/node_modules/lodash/_castSlice.js","webpack:////build/source/node_modules/lodash/_baseIsMap.js","webpack:////build/source/node_modules/vuedraggable/dist/vuedraggable.common.js","webpack:////build/source/node_modules/core-js/modules/esnext.array.last-item.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:///./chronic_duration.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:///./work_items/graphql/award_emoji.fragment.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:////build/source/node_modules/lodash/_baseXor.js","webpack:///./graphql_shared/queries/current_user.query.graphql","webpack:///./work_items/graphql/work_item_bulk_update.mutation.graphql","webpack:///./work_items/components/design_management/graphql/update_note.mutation.graphql","webpack:////build/source/node_modules/lodash/_cloneRegExp.js","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:///./work_items/graphql/notes/work_item_note_created.subscription.graphql","webpack:////build/source/node_modules/lodash/_baseSlice.js"],"names":["constant","createInverter","identity","nativeObjectToString","Object","prototype","toString","invert","result","value","key","call","module","exports","components","ItemMilestone","WorkItemRolledUpCount","directives","GlTooltip","GlTooltipDirective","props","iid","type","String","required","reference","metadataWidgets","default","computed","milestone","_this$metadataWidgets","WIDGET_TYPE_MILESTONE","hierarchyWidget","WIDGET_TYPE_HIERARCHY","showRolledUpCounts","rolledUpCountsByType","length","_this$hierarchyWidget","_vm","this","_c","_self","staticClass","_v","_s","attrs","_e","_t","name","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","Number","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","methods","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","s__","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","assignees","WIDGET_TYPE_ASSIGNEES","assigneesCollapsedTooltip","sprintf","count","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","id","showScopedLabel","label","isScopedLabel","handleTitleClick","e","workItem","metaKey","ctrlKey","canRouterNav","$emit","preventDefault","$router","push","params","stateIcon","rawName","modifiers","class","on","$event","shiftKey","altKey","stopPropagation","apply","arguments","avatar","avatarUrl","_l","color","description","SetCache","arrayIncludes","arrayIncludesWith","arrayMap","baseUnary","cacheHas","nativeMin","Math","min","arrays","iteratee","comparator","includes","othLength","othIndex","caches","Array","maxLength","Infinity","array","undefined","index","seen","outer","cache","root","factory","moment","hasMoment","hasEventListeners","window","addEventListener","document","sto","setTimeout","addEvent","el","callback","capture","attachEvent","removeEvent","removeEventListener","detachEvent","hasClass","cn","className","indexOf","addClass","removeClass","str","replace","trim","isArray","obj","test","isDate","isNaN","getTime","isWeekend","date","day","getDay","isLeapYear","year","getDaysInMonth","month","setToStartOfDay","setHours","compareDates","a","b","extend","to","overwrite","prop","hasProp","nodeName","Date","slice","fireEvent","eventName","data","ev","createEvent","initEvent","dispatchEvent","createEventObject","adjustCalendar","calendar","ceil","abs","floor","defaults","field","bound","ariaLabel","position","reposition","parse","defaultDate","setDefaultDate","firstDay","formatStrict","minDate","maxDate","yearRange","showWeekNumber","pickWholeWeek","minYear","maxYear","minMonth","maxMonth","startRange","endRange","isRTL","yearSuffix","showMonthAfterYear","showDaysInNextAndPreviousMonths","enableSelectionDaysInNextAndPreviousMonths","numberOfMonths","mainCalendar","container","blurFieldOnSelect","previousMonth","nextMonth","months","weekdays","weekdaysShort","theme","events","onSelect","onOpen","onClose","onDraw","keyboardInput","renderDayName","opts","abbr","renderDay","arr","ariaSelected","isEmpty","isDisabled","isToday","isSelected","hasEvent","isInRange","isStartRange","isEndRange","join","renderRow","days","isRowSelected","reverse","renderTitle","instance","c","refYear","randId","i","j","monthHtml","yearHtml","_o","isMinYear","isMaxYear","html","prev","next","Pikaday","options","self","config","_onMouseDown","event","srcElement","parentNode","prevMonth","setDate","getAttribute","hide","blur","returnValue","_onChange","gotoMonth","gotoYear","_onKeyChange","isVisible","keyCode","adjustDate","_onInputChange","firedBy","isValid","toDate","show","_onInputFocus","_onInputClick","_onInputBlur","pEl","activeElement","_b","_onClick","onchange","setAttribute","trigger","createElement","appendChild","body","insertBefore","nextSibling","defDate","gotoDate","disableWeekends","disableDayFn","nom","parseInt","setMinDate","setMaxDate","fallback","getFullYear","_d","toDateString","getMoment","setMoment","preventOnSelect","isMoment","getDate","draw","max","newCalendar","calendars","firstVisibleDate","lastVisibleDate","visibleDate","setMonth","getMonth","adjustCalendars","sign","newDay","difference","valueOf","gotoToday","setStartRange","setEndRange","force","_y","_m","random","substr","render","innerHTML","focus","adjustPosition","width","height","viewportWidth","viewportHeight","scrollTop","left","top","clientRect","leftAligned","bottomAligned","style","offsetWidth","offsetHeight","innerWidth","documentElement","clientWidth","innerHeight","clientHeight","pageYOffset","getBoundingClientRect","pageXOffset","bottom","offsetLeft","offsetTop","offsetParent","now","before","row","yearOfPreviousMonth","yearOfNextMonth","daysInPreviousMonth","cells","after","d","m","y","onejan","isWeekSelected","r","dayNumber","monthNumber","yearNumber","dayConfig","unshift","weekNum","renderHead","rows","renderTable","v","destroy","removeChild","interactionEvents","scrollToTargetOnResize","targetId","location","hash","scrollContainer","ScrollParent","getElementById","scrollContainerIsDocument","ro","ResizeObserver","entries","forEach","entry","CustomEvent","detail","containerEl","querySelector","interactionListenersAdded","keepTargetAtTop","anchorEl","scrollY","contentTop","scrollTo","removeListeners","unobserve","observe","sortableStart","classList","add","DRAG_CLASS","sortableEnd","isDragging","contains","getSortableDefaultOptions","touchEnabled","DocumentTouch","defaultSortableOptions","delay","scrollSensitivity","scrollSpeed","onStart","onEnd","doc","loc","source","definitionRefs","findOperation","definitions","element","def","refs","Set","collectFragmentReferences","node","kind","selectionSet","selections","selection","variableDefinitions","operationName","newDoc","hasOwnProperty","opRefs","allRefs","newRefs","refName","size","prevRefs","has","childRef","op","oneQuery","addition","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","split","map","scaledPower","scaledMantissa","toFixed","_","fractionalDigits","formatNumberToLocale","locales","Intl","NumberFormat","toFloat","defaultValue","float","parseFloat","milestoneDue","due_date","milestoneStart","start_date","isMilestoneStarted","isMilestonePastDue","milestoneDatesAbsolute","asDate","milestoneDatesHuman","timeFor","expiredOn","startsIn","component","GlCollapsibleListbox","ProjectAvatar","model","currentProjectName","selectedProjectFullPath","projects","frequentProjects","searchKey","selectedProject","apollo","query","namespaceProjectsForLinksWidgetQuery","variables","projectSearch","update","_data$namespace","findSelectedProject","projectsLoading","$apollo","queries","loading","dropdownToggleText","nameWithNamespace","listItems","items","frequent","project","text","startsWith","substring","avatar_url","frequentFullPaths","freq","allProjects","_project$namespace","textSrOnly","debouncedSearch","_debounce","handleSearch","SEARCH_DEBOUNCE","beforeDestroy","_this$debouncedSearch","cancel","keyword","setFrequentProjects","handleSelect","projectFullPath","find","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","_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","isBuffer","isMap","isObject","isSet","keys","keysIn","cloneableTags","baseClone","bitmask","customizer","object","stack","isDeep","isFlat","isFull","isArr","tag","isFunc","stacked","get","set","subValue","collapseReplies","expandReplies","lastReplyBy","GlSprintf","TimeAgoTooltip","collapsed","replies","lastReply","uniqueAuthors","authors","reply","author","_uniqBy","buttonIcon","buttonLabel","ariaState","toggle","$el","path","username","n__","created_at","asciiSize","hasUnicode","unicodeSize","string","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","anchorId","wrapperComponent","wrapperComponentClass","titleComponentClass","iconName","iconClass","tooltipText","tooltipPlacement","isLink","href","wrapperRef","names","concat","__vue_script__","vertical","__vue_component__","_h","$createElement","_g","$listeners","staticRenderFns","WORK_ITEM_TYPE_ENUM_OBJECTIVE","newIssueLabel","toggleSrText","newObjectiveLabel","sprintfWorkItem","GlDisclosureDropdown","GlDisclosureDropdownItem","GlButtonGroup","CreateWorkItemModal","newIssueItem","newIssuePath","EpicToken","IterationToken","WeightToken","HealthToken","IssuesListApp","NewIssueDropdown","ChildEpicIssueIndicator","isProject","WORKSPACE_PROJECT","WORKSPACE_GROUP","isOkrsEnabled","hasOkrsFeature","okrsMvc","searchTokens","tokens","hasIterationsFeature","TOKEN_TYPE_ITERATION","TOKEN_TITLE_ITERATION","icon","token","fetchIterations","recentSuggestionsStorageKey","TOKEN_TYPE_EPIC","TOKEN_TITLE_EPIC","unique","symbol","idProperty","useIdValue","hasIssueWeightsFeature","TOKEN_TYPE_WEIGHT","TOKEN_TITLE_WEIGHT","hasIssuableHealthStatusFeature","TOKEN_TYPE_HEALTH","TOKEN_TITLE_HEALTH","refetchIssuables","issuesListApp","issues","refetch","issuesCounts","search","searchIterationsQuery","then","_data$_this$namespace","iterations","hasFilteredEpicId","apiFilterParams","epicId","getFilteredEpicId","convertToGraphQLId","TYPENAME_EPIC","issuable","GlAlert","canEdit","isJiraConfigured","issuesPath","projectPath","jiraImport","getIssuesListDetailsQuery","_last2","calculateJiraImportLabel","jiraImports","flatMap","importedIssuesCount","_last","shouldShowFinishedAlert","jiraImportStatus","shouldShowInProgressAlert","isInProgress","finishedMessage","labelTarget","encodeURIComponent","shouldRender","hideFinishedAlert","setFinishedAlertHideMap","hideInProgressAlert","issuesClient","async","issuesListClient","_gon$features","features","frontendCaching","createApolloClientWithCaching","resolvers","localCacheKey","createDefaultClient","mountJiraIssuesListApp","dataset","parseBoolean","Vue","use","VueApollo","apolloProvider","defaultClient","gqlClient","createComponent","JiraIssuesImportStatusApp","mountIssuesListApp","addShortcutsExtension","ShortcutsWorkItems","VueRouter","autocompleteAwardEmojisPath","calendarPath","canBulkUpdate","canCreateIssue","canCreateProjects","canImportIssues","canReadCrmContact","canReadCrmOrganization","email","emailsHelpPagePath","exportCsvPath","groupId","hasAnyIssues","hasAnyProjects","hasBlockedIssuesFeature","hasIssueDateFilterFeature","hasQualityManagementFeature","hasScopedLabelsFeature","importCsvIssuesPath","initialEmail","initialSort","isIssueRepositioningDisabled","isPublicVisibilityRestricted","isSignedIn","markdownHelpPath","maxAttachmentSize","newProjectPath","projectImportJiraPath","quickActionsHelpPath","releasesPath","resetPath","rssPath","showNewIssueLink","signInPath","wiCanAdminLabel","wiIssuesListPath","wiLabelsManagePath","wiReportAbusePath","hasLinkedItemsEpicsFeature","router","base","pathname","mode","routes","ROUTES","design","DesignDetail","beforeEnter","provide","showExportButton","showImportButton","showLabel","canAdminLabel","issuesListPath","labelsManagePath","reportAbusePath","hasSubepicsFeature","GlPopover","healthStatusLabel","atRiskLabel","onTrackLabel","attentionLabel","healthStatusVisible","rolledUpOnTrackWorkItems","_this$rolledUpHealthS","status","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","_typeof","Symbol","iterator","constructor","_defineProperty","defineProperty","enumerable","configurable","writable","_extends","assign","_objectSpread","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_toConsumableArray","arr2","_arrayWithoutHoles","iter","_iterableToArray","TypeError","_nonIterableSpread","userAgent","pattern","navigator","match","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","passive","off","matches","selector","msMatchesSelector","webkitMatchesSelector","getParentOrHost","host","nodeType","closest","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","css","val","defaultView","getComputedStyle","currentStyle","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","tagName","list","getElementsByTagName","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","right","containerRect","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","parent","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","children","display","Sortable","ghost","dragged","draggable","lastChild","last","lastElementChild","previousElementSibling","toUpperCase","clone","getRelativeScrollOffset","winScroller","scrollLeft","includeSelf","elem","gotSelf","scrollWidth","scrollHeight","elemCSS","overflowX","overflowY","isRectEqual","rect1","rect2","round","throttle","ms","args","scrollBy","x","Polymer","$","jQuery","Zepto","dom","cloneNode","setRect","rect","unsetRect","expando","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","animation","child","fromRect","thisAnimationDuration","childMatrix","f","addAnimationState","removeAnimationState","splice","indexOfObject","animateAll","clearTimeout","animating","animationTime","time","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","pow","calculateRealTime","animate","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","repaint","easing","animated","plugins","initializeByDefault","PluginManager","mount","plugin","option","pluginEvent","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","charAt","bubbles","cancelable","pullMode","lastPutMode","allEventProperties","bind","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","active","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","clear","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","some","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","sort","disabled","store","handle","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","setData","dataTransfer","textContent","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","src","charCodeAt","_nextTick","_cancelNextTick","_getDirection","touch","pointerType","originalTarget","shadowRoot","composedPath","inputs","idx","checked","_saveInputCheckedState","button","isContentEditable","criteria","_prepareDragStart","dragStartFn","ownerDocument","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","empty","getSelection","removeAllRanges","err","_dragStarted","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_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","save","handleEvent","dropEffect","_globalDragOver","toArray","order","querySelectorAll","removeAttribute","utils","is","dst","nextTick","cancelNextTick","detectDirection","create","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","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","_this2","removeMultiDragElements","dragOver","_ref8","_ref9","clonesInserted","insertMultiDragElements","dragOverCompleted","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","lastIndex","currentIndex","multiDragIndex","nullingGlobal","destroyGlobal","shift","select","deselect","_this3","oldIndicies","newIndicies","clones","toLowerCase","elementsInserted","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverBubble","ogElemScroller","newElem","GlFilteredSearchTokenSegment","GlToken","inheritAttrs","availableTokens","placeholder","searchInputAttributes","isLastToken","currentValue","cursorPosition","validator","searchTextOptionLabel","viewOnly","termsAsTokens","internalValue","mousedown","stopMousedownOnCloseButton","close","destroyByClose","intent","suggestedTokens","onComplete","onBackspace","eventListeners","$$v","expression","portalUuid","initialState","GlSearchBoxByClick","PortalTarget","portalName","alignSuggestions","suggestionsListClass","__v_raw","isOk","every","__v_skip","console","warn","clearButtonTitle","historyItems","showFriendlyText","searchButtonAttributes","showSearchButton","activeTokenIdx","suggestionsStyle","intendedCursorPosition","lastTokenIdx","hasValue","t","watch","isLastTokenEmpty","deep","immediate","newValue","oldValue","applyNewValue","_this$getTokenEntry","getTokenEntry","offsetRef","offsetMenu","tokenIdx","isLastTokenActive","activeToken","$set","newStrings","newTokens","submit","slotScope","getTokenComponent","refInFor","getTokenClassList","currentAvailableTokens","termPlaceholder","appliedTokens","activate","deactivate","destroyToken","replaceToken","completeToken","createTokens","activatePreviousToken","activateNextToken","$attrs","textSelectionActive","sel","containsNode","baseIsSet","nodeUtil","nodeIsSet","defs","tooltipContainer","UserAvatarImage","TimeagoTooltip","timeago","suggestion","counts","_uniqueId","tooltipTitle","upvotes","userNotesCount","isClosed","STATUS_CLOSED","stateIconClass","stateIconName","stateTitle","closedOrCreatedDate","hasUpdated","HelpIcon","TitleSuggestionsItem","helpText","debounce","skip","isSearchEmpty","_data$project$issues$","_data$project","edges","showSuggestions","helpIconTitle","suggestionsTitle","baseClamp","toNumber","number","lower","upper","isOption","hasNoDuplicates","flattenedOptions","itemsValidator","isAllOptionsOrAllGroups","hasUniqueValues","hasUniqueGroups","formatRange","sortCadences","cadences","sortBy","titleA","titleB","localeCompare","groupByIterationCadences","cadenceIteration","period","cadence","groupOptionsByIterationCadences","projectId","isGid","projectName","projectAvatarUrl","alt","avatarAlt","_this$alt","entityId","AVATAR_SHAPE_OPTION_RECT","csrf","VARIANT_EMBEDDED","GlForm","GlFormGroup","LabelsSelectWidget","checkedEpics","selectedLabelIds","removedLabelIds","existingSelectedLabels","transformLabelFn","extras","labelsPerEpic","epic","allLabels","_unionBy","hasEpicWithNoLabels","commonLabels","_intersectionBy","uncommonLabels","_xorBy","indeterminate","handleSelectedLabels","touchedLabels","handleFormSubmitted","bulkUpdateData","issuable_ids","issuable_gids","add_label_ids","remove_label_ids","labelsFetchPath","mapGetters","mapActions","handleButtonClick","isDropdownVariantStandalone","isDropdownVariantEmbedded","toggleDropdownContents","dropdownButtonText","GlFormInput","GlLoadingIcon","labelTitle","selectedColor","mapState","disableCreate","labelCreateInProgress","suggestedColors","colorsMap","suggested_label_colors","getColorCode","pop","getColorName","values","handleColorClick","handleCreateClick","createLabel","toggleDropdownContentsCreateView","labelsCreateTitle","arg","backgroundColor","functional","isLabelSet","isLabelIndeterminate","highlight","h","listeners","labelColorBox","checkedIcon","hidden","indeterminateIcon","noIcon","labelLink","click","clickLabel","GlIntersectionObserver","GlSearchBoxByType","LabelItem","currentHighlightItem","visibleLabels","showDropdownFooter","isDropdownVariantSidebar","allowLabelCreate","showNoMatchingResultsMessage","scrollIntoViewIfNeeded","highlightedLabel","labelsListContainer","handleComponentAppear","fetchLabels","searchInput","handleComponentDisappear","receiveLabelsSuccess","handleCreateLabelClick","handleKeyDown","UP_KEY_CODE","DOWN_KEY_CODE","ENTER_KEY_CODE","updateSelectedLabels","ESC_KEY_CODE","handleLabelClick","allowMultiselect","DropdownContentsLabelsView","labelsListTitle","labelsFetchInProgress","footerCreateLabelTitle","footerManageLabelTitle","DropdownContentsCreateView","renderOnTop","dropdownContentsView","showDropdownContentsCreateView","directionStyle","labelsSelectInProgress","allowLabelEdit","disableLabels","sortedSelectedLabels","_sortBy","selectedLabels","labelFilterUrl","labelsFilterBasePath","labelsFilterParam","scopedLabel","allowScopedLabels","allowLabelRemove","labelsList","labelsString","remainingLabelCount","handleClick","Vuex","Store","labelsSelectModule","DropdownTitle","DropdownValue","DropdownButton","DropdownContents","DropdownValueCollapsed","allowMultipleScopedLabels","variant","VARIANT_SIDEBAR","hideCollapsedView","isEditing","contentIsOnViewport","dropdownButtonVisible","showDropdownButton","setInitialState","updateLabelsSetState","showDropdownContents","setContentIsOnViewport","newVal","mounted","$store","subscribeAction","handleVuexActionDispatch","handleDocumentMousedown","handleDocumentClick","action","filterTouchedLabelsFn","touched","filterSetLabelsFn","handleDropdownClose","mousedownTarget","preventDropdownToggleOnClick","_this$$refs$dropdownB","_this$$refs$dropdownC","hasExceptionClass","_target$parentElement","parentElement","hasExceptionParent","isInDropdownButtonCollapsed","dropdownButtonCollapsed","isInDropdownContents","dropdownContents","handleCollapsedValueClick","isInViewport","initWorkItemsRoot","BFormRadioGroup","getBvRadioGroup","isRadioGroup","GlFormRadio","SafeHtml","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_ISSUE","TYPENAME_ITERATION","TYPENAME_ITERATIONS_CADENCE","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","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","childrenIds","parentWorkItemId","areWorkItemsToAddValid","workspaceWorkItems","groupWorkItemsQuery","projectWorkItemsQuery","queryVariables","searchStarted","isSearchingByReference","_data$workspace$workI","_data$workspace$workI2","filterItems","workspace","workItemsByIid","workItems","error","I18N_WORK_ITEM_SEARCH_ERROR","childrenTypeName","workItemsByReference","workItemsByReferencesQuery","contextNamespacePath","ancestorIds","workItemAncestorsQuery","formatAncestors","ancestor","textInputAttrs","I18N_WORK_ITEM_SEARCH_INPUT_PLACEHOLDER","availableWorkItems","isReference","isValidURL","workItemsToAdd","isLoading","_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","input","escapedInput","_escape","highlighter","unsetError","wi","noMatchesFoundMessage","I18N_WORK_ITEM_NO_MATCHES_FOUND","addInputPlaceholder","safeHtmlConfig","ADD_TAGS","nativeOn","dropdownItem","GlBadge","workItemState","showIcon","isWorkItemOpen","stateText","workItemStateIcon","workItemStateVariant","filteredSearchSuggestionListInstance","initialValue","activeIdx","registeredItems","findIndex","valuesMatch","initialActiveIdx","initialActiveItem","firstValue","secondValue","stepItem","endIdx","activeItem","listClasses","isVNodeEmpty","vnode","_vnode$type2","_vnode$type2$toString","isVue3Fragment","_vnode$type","_vnode$type$toString","isVue3Comment","Portal","GlFilteredSearchSuggestionList","GlFilteredSearchSuggestion","isTerm","multiSelect","optionTextField","customInputKeydownHandler","fallbackValue","_this$options","o","inputValue","nonMultipleValue","matchingOption","_this$options2","slot","vnodes","isSlotNotEmpty","$slots","suggestions","_this$options$","getMatchingOptionForInputValue","loose","hasTermSuggestion","defaultOption","hasUnclosedQuote","firstWord","otherWords","w","_this$options3","scrollIntoView","block","inline","setSelectionRange","_this$matchingOption","suggestedValue","formattedSuggestedValue","getValue","handlers","ArrowLeft","selectionStart","ArrowRight","selectionEnd","Backspace","Enter","applySuggestion","Escape","suggestionsHandlers","ArrowDown","nextItem","Down","ArrowUp","prevItem","Up","hasOptionsOrSuggestions","containerAttributes","emitIfInactive","submitValue","domProps","_i","handleInputKeydown","$$a","$$el","$$c","$$i","_q","composing","_uid","defaultSuggestedValue","footVariant","BTfoot","getBvTableRowGroup","getBvTable","isTfoot","bvTable","dark","isStacked","isResponsive","isStickyHeader","stickyHeader","tableVariant","bvAttrs","role","tfootClasses","tfootAttrs","bvListeners","normalizeSlot","getTimeago","timeagoLanguageCode","arrayFilter","baseIteratee","baseRest","baseXor","isArrayLikeObject","xorBy","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsSeq","rsSymbol","reUnicode","RegExp","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","$off","setToggleState","resetProp","handleUpdate","binding","targets","getTargets","addClickListener","VBToggle","$on","addRootListeners","componentUpdated","updated","returnExportsGlobal","EditableCaret","InputCaret","Mirror","Utils","oDocument","oWindow","setContextBy","$inputor","domInputor","setPos","pos","found","offset","range","_results","childNodes","createRange","setStart","addRange","getIEPosition","getPosition","inputor_offset","getOffset","getOldIEPos","preCaretTextRange","textRange","createTextRange","moveToElementText","setEndPoint","getPos","clonedRange","cloneRange","selectNodeContents","setEnd","endContainer","endOffset","detach","getOldIEOffset","duplicate","moveStart","shadowCaret","createTextNode","insertNode","selectNode","rangeCount","getRangeAt","getIEPos","inputor","len","textInputRange","moveToBookmark","getBookmark","collapse","compareEndPoints","move","getIEOffset","boundingLeft","boundingTop","boundingHeight","end_range","start_range","inputorOffset","css_attr","mirrorCss","zIndex","each","p","$mirror","$flag","contentEditable","settings","iframe","contentWindow","contentDocument","caret","method","isPlainObject","apis","compareAscending","other","orders","objCriteria","othCriteria","ordersLength","CATEGORY_OPTIONS","participants","numberOfLessParticipants","showParticipantLabel","lazy","isShowingMoreParticipants","lessParticipants","visibleParticipants","hasMoreParticipants","toggleLabel","moreCount","participantLabel","participantCount","toggleMoreParticipants","getParticipantId","participantId","participant","EventHub","$_all","Map","dispose","newHandlers","delete","$once","wrapHandler","stackedMixin","isStackedAlways","CreateWorkItem","CreateWorkItemCancelConfirmationModal","GlModal","hideButton","parentId","showProjectSelector","visible","workItemTypeName","asDropdownItem","relatedItem","isCreateModalVisible","isConfirmationModalVisible","shouldDiscardDraft","workItemTypes","namespaceWorkItemTypesQuery","_data$workspace","_this$workItemTypes$","_this$workItemTypes$2","_this$workItemTypes$3","isWorkItemItemValidEnum","setNewWorkItemCache","widgetDefinitions","I18N_WORK_ITEM_ERROR_FETCHING_TYPES","useVueRouter","route","newWorkItemPath","RELATED_ITEM_ID_URL_QUERY_PARAM","newWorkItemText","I18N_NEW_WORK_ITEM_BUTTON_LABEL","workItemCreatedText","I18N_WORK_ITEM_CREATED","cancelConfirmationText","toLocaleLowerCase","hideCreateModal","showCreateModal","isMetaClick","hideConfirmationModal","showConfirmationModal","handleConfirmCancellation","handleContinueEditing","handleDiscardDraft","modal","handleCreated","_this$workItemTypes$4","_this$workItemTypes$5","_this$workItemTypes$6","$toast","autoHideDelay","onClick","visitUrl","redirectToNewPage","_this$relatedItem","new","cloneArrayBuffer","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","Ctor","baseGet","baseMap","baseSortBy","compareMultiple","collection","iteratees","normalizeFields","origFields","fields","formatter","processField","sample","k","memo","mixin","modelMixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","primaryKey","itemsMixin","localItems","bvParent","computedFields","paginatedItems","sortedItems","filteredItems","perPage","currentPage","localFilter","localSortBy","sortDesc","localSortDesc","math","apiUrl","computedItems","computedFieldsObj","regex","parents","ps","getPropertyValue","overflow","GlFormCheckbox","GlFormSelect","WorkItemDescription","WorkItemTitle","WorkItemAssignees","WorkItemLabels","WorkItemMilestone","WorkItemLoading","WorkItemCrmContacts","WorkItemProjectsListbox","TitleSuggestions","WorkItemParent","WorkItemWeight","WorkItemHealthStatus","WorkItemColor","WorkItemRolledupDates","WorkItemIteration","suggestionTitle","similarWorkItemHelpText","hideFormTitle","stickyFormSubmit","isTitleValid","workItemTitle","isConfidential","isRelatedToItem","selectedWorkItemTypeId","initialLoadingWorkItem","initialLoadingWorkItemTypes","showWorkItemTypeSelect","workItemByIidQuery","NEW_WORK_ITEM_IID","skipWorkItemQuery","_data$workspace2","isTitleFilled","updateTitle","fetchError","fetchPolicy","fetchPolicies","CACHE_ONLY","CACHE_FIRST","_data$workspace3","_this$workItemTypes","_this$workItemTypes2","newWorkItemFullPath","selectedWorkItemTypeName","hasWidgets","_this$workItem","workItemAssignees","findWidget","workItemMilestone","workItemLabels","workItemIteration","workItemHealthStatus","workItemColor","WIDGET_TYPE_COLOR","workItemHierarchy","workItemCrmContacts","WIDGET_TYPE_CRM_CONTACTS","workItemTypesForSelect","capitalizeFirstCharacter","getPreferredLocales","selectedWorkItemType","_this$workItemTypes3","_this$selectedWorkIte","selectedWorkItemTypeIconName","_this$selectedWorkIte2","formOptions","createErrorText","I18N_WORK_ITEM_ERROR_CREATING","createWorkItemText","I18N_WORK_ITEM_CREATE_BUTTON_LABEL","makeConfidentialText","titleText","_this$workItem2","userPermissions","updateWorkItem","_this$workItem3","workItemParticipantNodes","_this$workItemPartici","_this$workItemPartici2","workItemParticipants","WIDGET_TYPE_PARTICIPANTS","workItemAssigneeIds","_assigneesWidget$assi","assigneesWidget","assignee","workItemLabelIds","_labelsWidget$labels","labelsWidget","workItemWeightValue","_weightWidget$weight","weightWidget","workItemMilestoneId","_this$workItemMilesto","workItemCrmContactIds","_this$workItemCrmCont","contacts","workItemParent","_this$workItemHierarc","workItemColorValue","colorWidget","workItemHealthStatusValue","healthStatusWidget","workItemAuthor","_this$workItem4","workItemDescription","descriptionWidget","WIDGET_TYPE_DESCRIPTION","workItemStartAndDueDate","workItemIterationId","_this$workItemIterati","workItemId","_this$workItem5","workItemIid","_this$workItem6","relatedItemText","workItemReference","shouldIncludeRelatedItem","isWidgetSupported","WIDGET_TYPE_LINKED_ITEMS","isFormFilled","isDescriptionFilled","defaultColorValue","DEFAULT_EPIC_COLORS","workItemDueDateFixed","workItemStartDateFixed","workItemDueDateIsFixed","workItemStartDateIsFixed","handleKeydown","isMetaEnterKeyPair","createWorkItem","widgetType","_this$selectedWorkIte3","validate","mutate","mutation","updateNewWorkItemMutation","Sentry","_this$workItemParent","workItemCreateInput","workItemTypeId","namespacePath","_this$workItemParent$","_this$workItemParent2","assigneeIds","labelIds","iterationWidget","iterationId","milestoneWidget","milestoneId","startAndDueDateWidget","isFixed","crmContactsWidget","contactIds","linkedItemsWidget","workItemsIds","response","createWorkItemMutation","workItemCreate","_this3$workItemParent","_this3$workItemParent2","_this3$workItemParent3","addHierarchyChild","autosaveKey","getNewWorkItemAutoSaveKey","clearDraft","handleCancelClick","_this$selectedWorkIte4","selectedWorkItemWidgets","NEW_WORK_ITEM_GID","updateDraftData","updateError","allowsMultipleAssignees","canInviteMembers","isObjectLike","createEventHub","AcronymResult","computeScore","emptyAcronymResult","isAcronymFullWord","isMatch","isSeparator","isWordEnd","isWordStart","scoreAcronyms","scoreCharacter","scoreConsecutives","scoreExact","scoreExactMatch","scorePattern","scorePosition","scoreSize","score","preparedQuery","string_lw","allowErrors","core_lw","core_up","subject","query_lw","query_up","qj_lw","qj_up","si","subject_lw","acro","acro_score","align","csc_diag","csc_row","csc_score","csc_should_rebuild","miss_budget","miss_left","record_miss","score_diag","score_row","score_up","si_lw","start","sz","charCodes","curr_s","prev_s","next_s","sc","quality","sameCase","end","bonus","posBonus","startOfWord","mi","nj","pos2","fullWord","sepCount","sumPos","nbAcronymInQuery","baseSlice","isIterateeCall","toInteger","nativeCeil","nativeMax","guard","resIndex","jiraIntegrationMessage","emptyStateSvg","issuesHelpPagePath","helpPagePath","jiraIntegrationPath","anchor","CsvImportExportButtons","GlEmptyState","NewResourceDropdown","hasNewIssueDropdown","currentTabCount","exportCsvPathWithQuery","showCsvButtons","showNewIssueDropdown","showIssuableByEmail","createProjectMessage","searchProjectsQuery","newIssueDropdownQueryVariables","extractProjects","content","applyTooltip","_el$innerText","hasHorizontalOverflow","innerText","unbind","GlResizeObserverDirective","initTooltip","importableTypeText","TYPE_ACTIVITY","TYPE_COMMENT","TYPE_DESIGN","TYPE_EPIC","TYPE_ISSUE","TYPE_MERGE_REQUEST","TYPE_SNIPPET","importableType","textOnly","importable","issue","downvotes","_findAwardEmojiWidget","findAwardEmojiWidget","_findAwardEmojiWidget2","mergeRequestsCount","blockingIssuesCount","isListItem","showBlockingIssuesCount","BlockingIssuesCount","IssueCardStatistics","blockingCount","footClone","footRowVariant","tfootClass","tfootTrClass","tfootMixin","hasNormalizedSlot","headVariant","columns","renderThead","renderTFootCustom","getDefaultWorkItemTypes","hasEpicsFeature","getDefaultWorkItemTypesCE","WORK_ITEM_TYPE_ENUM_EPIC","WORK_ITEM_TYPE_ENUM_KEY_RESULT","WORK_ITEM_TYPE_ENUM_TEST_CASE","getTypeTokenOptions","getTypeTokenOptionsCE","isSymbol","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","baseAssignValue","createAggregator","groupBy","AutocompleteCache","fetch","url","cacheName","searchProperty","MAX_LIST_SIZE","Promise","resolve","axios","addATodo","markAsDone","GlAnimatedTodoIcon","itemId","currentUserTodos","todosButtonType","todoId","_this$currentUserTodo","pendingTodo","TODO_DONE_ICON","TODO_ADD_ICON","onToggle","createWorkItemTodosMutation","inputVariables","markDoneWorkItemTodosMutation","optimisticResponse","todoMutation","todo","TODO_DONE_STATE","TODO_PENDING_STATE","errors","todos","__typename","Error","updateGlobalTodoCount","catch","message","finally","none","HEALTH_STATUS_I18N_ASSIGN_HEALTH_STATUS","HEALTH_STATUS_I18N_FETCH_ERROR","HEALTH_STATUS_I18N_HEALTH_STATUS","HEALTH_STATUS_I18N_NO_STATUS","HEALTH_STATUS_I18N_NONE","HEALTH_STATUS_I18N_SELECT_HEALTH_STATUS","HEALTH_STATUS_I18N_UPDATE_ERROR","HEALTH_STATUS_OPEN_DROPDOWN_DELAY","healthStatusTextMap","healthStatusVariantMap","healthStatusForRestApi","NO_STATUS","healthStatusDropdownOptions","healthStatusTracking","Tracking","editEvent","rightSidebarLabel","property","iterationSelectTextMap","noIteration","assignIteration","iterationSelectFail","currentIterationFetchError","iterationsFetchError","noIterationsFound","noAttributeId","noEpic","placeholderEpic","SIDEBAR_ESCALATION_POLICY_TITLE","MAX_DISPLAY_WEIGHT","CVE_ID_REQUEST_SIDEBAR_I18N","createRequest","whyRequest","whyText1","whyText2","learnMore","IssuableAttributeType","IssuableAttributeTypeFoss","Iteration","Epic","EscalationPolicy","Parent","LocalizedIssuableAttributeType","LocalizedIssuableAttributeTypeFoss","IssuableAttributeTypeKeyMap","_invert","IssuableAttributeState","IssuableAttributeStateFoss","dropdowni18nText","issuableAttribute","issuableType","noAttributesFound","dropdowni18nTextFoss","i18nHelpText","linkText","i18nPolicyText","paged","i18nStatusHeaderText","STOPS_PAGING","STATUS_SUBTEXTS","STATUS_TRIGGERED","STATUS_ACKNOWLEDGED","STATUS_RESOLVED","Dropzone","Emitter","camelize","contentLoaded","detectVerticalSquash","drawImageIOSFix","noop","without","__slice","__hasProp","_callbacks","emit","callbacks","removeListener","removeAllListeners","_super","resolveOption","elementOptions","defaultOptions","previewTemplate","clickableElements","files","dropzone","instances","optionsForElement","isBrowserSupported","acceptedFiles","acceptedMimeTypes","getExistingFallback","previewsContainer","getElement","clickable","getElements","init","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","file","done","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","_k","_len1","_len2","_ref1","previewElement","filesize","_removeLink","UPLOADING","confirm","removeFile","removedfile","_updateMaxFilesReachedClass","thumbnail","dataUrl","thumbnailElement","errormultiple","processing","processingmultiple","uploadprogress","bytesSent","totaluploadprogress","sending","sendingmultiple","success","successmultiple","canceled","canceledmultiple","complete","completemultiple","maxfilesexceeded","maxfilesreached","queuecomplete","addedfiles","objects","getAcceptedFiles","accepted","getRejectedFiles","getFilesWithStatus","getQueuedFiles","QUEUED","getUploadingFiles","getAddedFiles","ADDED","getActiveFiles","noPropagation","setupHiddenFileInput","hiddenFileInput","visibility","addFile","URL","webkitURL","updateTotalUploadProgress","efct","_error","clickableElement","elementInside","enable","disable","removeAllFiles","totalBytes","totalBytesSent","totalUploadProgress","upload","total","_getParamName","existingFallback","fieldsString","form","getFallback","elements","setupEventListeners","elementListeners","listener","_results1","removeEventListeners","cancelUpload","selectedSize","selectedUnit","unit","units","webkitGetAsEntry","_addFilesFromItems","handleFiles","clipboardData","isFile","getAsFile","isDirectory","_addFilesFromDirectory","directory","dirReader","entriesReader","createReader","readEntries","log","isValidFile","_enqueueThumbnail","_errorProcessing","enqueueFile","enqueueFiles","processQueue","_thumbnailQueue","_processingThumbnail","_processThumbnailQueue","createThumbnail","cancelIfNecessary","fileReader","FileReader","onload","createThumbnailFromUrl","readAsDataURL","imageUrl","crossOrigin","img","canvas","resizeInfo","getContext","trgX","trgY","toDataURL","onerror","processingLength","queuedFiles","processFiles","processFile","uploadFiles","_getFilesWithXhr","xhr","groupedFile","groupedFiles","CANCELED","abort","uploadFile","formData","handleError","headerName","headerValue","headers","inputName","inputType","updateProgress","_len3","XMLHttpRequest","open","allFilesFinished","loaded","readyState","responseText","getResponseHeader","_finished","onprogress","setRequestHeader","FormData","append","hasAttribute","selected","submitRequest","send","SUCCESS","ERROR","forElement","autoDiscover","discover","checkElements","dropzones","blacklistedBrowsers","capableBrowser","File","FileList","Blob","rejectedItem","div","els","question","rejected","baseMimeType","mimeType","validType","ACCEPTED","PROCESSING","ey","ih","py","ratio","sy","naturalWidth","naturalHeight","drawImage","getImageData","sx","sw","sh","dw","dh","vertSquashRatio","win","poll","pre","rem","doScroll","frameElement","_autoDiscoverFunction","BREADCRUMB_LABELS","workItemList","GlBreadcrumb","listPath","isEpicsList","listName","crumbs","indexCrumb","workItemEpicsList","$route","_this$issue$widgets","isHealthStatusWidget","hasUpdateTimeStamp","showHealthStatus","sortOptions","sortDirection","ascending","CREATED_ASC","descending","CREATED_DESC","UPDATED_ASC","UPDATED_DESC","TITLE_ASC","TITLE_DESC","urlSortParams","EmojiToken","GroupToken","LabelToken","MilestoneToken","UserToken","statusMap","STATUS_OPEN","STATE_CLOSED","issuableListTabs","IssuableList","IssueCardTimeInfo","WorkItemDrawer","eeWorkItemUpdateCount","showBulkEditSidebar","filterTokens","isInitialLoadComplete","pageInfo","pageParams","pageSize","DEFAULT_PAGE_SIZE","sortKey","workItemStateCounts","isRefetching","getWorkItemsQuery","_data$this$namespace$","_isEmpty","_data$this$namespace$2","rootBreadcrumbName","checkDrawerParams","getWorkItemStateCountsQuery","_data$this$namespace$3","_data$this$namespace$4","all","isItemSelected","convertToApiParams","defaultWorkItemTypes","workItemDrawerEnabled","epicsListDrawer","issuesListDrawer","hasSearch","searchQuery","isOpenTab","excludeProjects","convertToSearchQuery","preloadedUsers","current_user_id","current_user_fullname","current_user_avatar_url","TOKEN_TYPE_ASSIGNEE","TOKEN_TITLE_ASSIGNEE","dataType","operators","OPERATORS_IS_NOT_OR","TOKEN_TYPE_AUTHOR","TOKEN_TITLE_AUTHOR","defaultUsers","TOKEN_TYPE_LABEL","TOKEN_TITLE_LABEL","fetchLatestLabels","TOKEN_TYPE_MILESTONE","TOKEN_TITLE_MILESTONE","shouldSkipSort","TOKEN_TYPE_SEARCH_WITHIN","TOKEN_TITLE_SEARCH_WITHIN","GlFilteredSearchToken","OPERATORS_IS","TOKEN_TYPE_GROUP","TOKEN_TITLE_GROUP","TOKEN_TYPE_TYPE","TOKEN_TITLE_TYPE","typeTokenOptions","TOKEN_TYPE_CONFIDENTIAL","TOKEN_TITLE_CONFIDENTIAL","TOKEN_TYPE_MY_REACTION","TOKEN_TITLE_MY_REACTION","fetchEmojis","showPaginationControls","hasNextPage","hasPreviousPage","showPageSizeSelector","tabCounts","opened","STATUS_ALL","urlFilterParams","convertToUrlParams","urlParams","_this$pageParams$afte","_this$pageParams$befo","first_page_size","firstPageSize","last_page_size","lastPageSize","page_after","afterCursor","page_before","beforeCursor","activeWorkItemType","_this$activeItem","_this$activeItem2","_this$activeItem3","activeWorkItemTypeName","updateData","getParameterByName","PARAM_SORT","DETAIL_VIEW_QUERY_PARAM_NAME","autocompleteCache","fetchLabelsWithFetchPolicy","searchLabelsQuery","NETWORK_ONLY","getStatus","handleClickTab","getInitialPageParams","handleFilter","handleNextPage","endCursor","scrollUp","handlePageSizeChange","handlePreviousPage","startCursor","handleSort","saveSortPreference","setSortPreferenceMutation","issuesSort","userPreferencesUpdate","deleteItem","refetchItems","handleStatusChange","_getParameterByName","_getParameterByName2","PARAM_FIRST_PAGE_SIZE","PARAM_LAST_PAGE_SIZE","PARAM_STATE","getFilterTokens","isPositiveInteger","PARAM_PAGE_AFTER","PARAM_PAGE_BEFORE","deriveSortKey","sortMap","queryParam","atob","full_path","updateHistory","removeParams","checkedIssuables","EmptyStateWithAnyIssues","EmptyStateWithoutAnyIssues","WorkItemsListApp","EpicsListBulkEditSidebar","glFeatureFlagsMixin","workItemUpdateCount","bulkEditInProgress","allowEpicBulkEditing","canBulkEditEpics","bulkUpdateWorkItemsMutation","WORK_ITEM_TYPE_ENUM_ISSUE","isEpic","incrementUpdateCount","convertWorkItemsToIssuables","isLabelsWidget","buildInputFromBulkUpdateEvent","updateEvent","ids","addLabelIds","removeLabelIds","workItemBulkUpdateMutation","createAlert","captureError","handleWorkItemBulkEdit","relatedItemId","isCancelConfirmationModalVisible","workItemRelatedItemQuery","updateWorkItemType","workItemCreated","_this$$route$params","history","current","isWorkItemRoute","isGroupWorkItemRoute","go","WorkItemDetail","ZenMode","deleteWorkItem","deleteWorkItemMutation","workItemDelete","msg","I18N_WORK_ITEM_DELETED","I18N_WORK_ITEM_ERROR_DELETING","generateTypeRegex","routeMap","WORK_ITEM_BASE_ROUTE_MAP","WorkItemList","GlToast","workspaceType","ShortcutsNavigation","epicsListPath","registerPath","newCommentTemplatePaths","defaultBranch","listWorkItemType","canCreateEpic","groupIssuesPath","_gon","workspacePath","gl","webIDEPath","webIDEUrl","joinPaths","relative_url_root","createRouter","breadcrumbParams","injectVueAppBreadcrumbs","WorkItemBreadcrumb","clients","writeQuery","activeDiscussionQuery","activeDesignDiscussion","initWorkItemsFeedback","performanceMarkAndMeasure","mark","measures","App","asString","persist","saveValue","serialize","removeItem","exists","getStorageValue","_isEqual","deserialize","setItem","_isString","stringify","_this$$scopedSlots$de","_this$$scopedSlots","$scopedSlots","taskCompletionStatus","updatedByName","updatedByPath","completedCount","_this$taskCompletionS","completed_count","hasUpdatedBy","showCheck","taskStatus","DESIGN_DETAIL_LAYOUT_CLASSLIST","ACTIVE_DISCUSSION_SOURCE_TYPES","pin","discussion","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","filename","uploadSkippedReason","reason","skippedFilesList","someDesignsSkippedMessage","designArchiveError","designsCount","GlTruncate","cssClass","dateTimeFormat","DEFAULT_DATE_TIME_FORMAT","timeFormat","DATE_TIME_FORMATS","enableTruncation","timeAgo","placement","parseGid","gid","rawId","getTypeFromGraphQLId","mutationOperationMode","convertToGraphQLIds","convertNodeIdsFromGraphQLIds","_isArray","getNodesOrDefault","queryData","nodesField","_queryData$nodesField","toggleQueryPollingByVisibility","queryRef","interval","stopStartQuery","Visibility","stopPolling","startPolling","change","etagQueryHeaders","featureCorrelation","etagResource","fetchOptions","calculateGraphQLPaginationQueryParams","routeQuery","start_cursor","end_cursor","TERM_TOKEN_TYPE","INTENT_ACTIVATE_PREVIOUS","TOKEN_CLOSE_SELECTOR","isEmptyTerm","normalizeTokens","assertValidTokens","needDenormalization","stepIndexAndWrap","step","tokenToOption","optionComponent","tokenIdCounter","getTokenId","tokenId","ensureTokenId","createTerm","denormalizeTokens","inputTokens","trimmedText","strToken","termTokenDefinition","splitOnQuotes","queue","waitingForMatchingQuote","quoteContent","part","firstPart","secondPart","wrapTokenInQuotes","quote","loader","descriptionRepeat","attributesRepeat","GlSkeletonLoader","WorkItemNotesLoading","labelField","optionsField","optionsMixin","valueField","textField","htmlField","disabledField","normalizeOptions","BFormSelectOption","BFormSelectOptionGroup","ariaInvalid","multiple","selectSize","BFormSelect","localValue","plain","stateClass","selectedValue","_value","computedSelectSize","inputClass","safeId","computedAriaInvalid","selectClass","defaultWidth","nonDefaultWidths","breakpoint","cssClasses","primaryBtn","cancelBtnCreate","cancelBtnUpdate","cancelCreate","cancelUpdate","newCommentButton","updateCommentButton","markdownDocsPath","MarkdownEditor","designNoteMutation","mutationVariables","markdownPreviewPath","isNewComment","isDiscussion","noteableId","discussionId","noteText","saving","noteUpdateDirty","isLoggedIn","errorMessage","formFieldProps","buttonText","shortDiscussionId","hasDirtyFreshComment","markdownEditorEventHub","CLEAR_AUTOSAVE_ENTRY_EVENT","handleInput","afterNoteMutation","getErrorMessage","cancelComment","confirmCancelCommentModal","cancelBtn","confirmAction","primaryBtnText","cancelBtnText","primaryBtnVariant","submitForm","image","scale","baseImageSize","imageStyle","imageError","zoom","resizeThrottled","onImgLoad","_throttle","setBaseImageSize","requestIdleCallback","setImageNaturalScale","onImgError","contentImg","onResize","$parent","amount","DesignNotePin","dimensions","notes","currentCommentForm","disableCommenting","resolvedDiscussionsExpanded","disableNotes","movingNoteNewPosition","movingNoteStartPosition","overlayStyle","cursor","isMovingCurrentComment","noteId","currentCommentPositionStyle","getNotePositionStyle","visibleNotes","note","resolved","setNewNoteCoordinates","getNoteRelativePosition","widthRatio","heightRatio","getMovingNotePositionDelta","deltaX","deltaY","isMovingNote","_this$movingNoteStart","movingNoteId","canMoveNote","repositionNote","isPositionInOverlay","onNewNoteMove","onNewNoteMouseup","onExistingNoteMove","onExistingNoteMouseup","updateActiveDesignDiscussion","coordinates","onNoteMousedown","onOverlayMousemove","onNoteMouseup","onAddCommentMouseup","offsetX","offsetY","updateActiveDiscussionMutation","isNoteInactive","discussionNotes","newCommentButtonLabel","DesignImage","DesignOverlay","imageName","discussions","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","keysFor","ISSUE_PREVIOUS_DESIGN","navigateToDesign","ISSUE_NEXT_DESIGN","downloadButtonLabel","hideCommentsButtonLabel","showCommentsButtonLabel","archiveButtonLabel","ImportedBadge","CloseButton","DesignNavigation","TodosToggle","ArchiveDesignButton","designFilename","isLatestVersion","currentUserDesignTodos","toggleCommentsButtonLabel","imported","isAddDiscussion","signedOutText","placeholderText","labelText","editCommentLabel","moreActionsLabel","deleteCommentText","copyCommentLink","AwardsList","TimelineEntryItem","DesignReplyForm","EmojiPicker","designVariables","hasAuthor","authorId","noteAnchorId","findNoteId","isImported","currentUserId","_window$gon","currentUserFullName","_window$gon2","canAwardEmoji","awardEmoji","adminPermissions","adminNote","hasPermissions","awards","award","user","dropdownItems","extraAttrs","setUrlFragment","hideForm","onDone","hasErrors","updateNote","isEmojiPresentForCurrentUser","emoji","getAwardEmojiNodes","toggledOn","newEmoji","_this4","designNoteAwardEmojiToggleMutation","awardableId","awardEmojiToggle","getDesignQuery","sourceData","readQuery","newData","produce","draftState","designManagement","designAtVersion","updateNoteMutation","handleAwardEmoji","bodyHtml","status_tooltip_html","toggleText","toggleTextColor","authorCollapsedTooltip","expanded","deleteNote","confirmationText","primaryModalBtnText","DesignNote","DiscussionReplyPlaceholder","DesignNoteSignedOut","ToggleRepliesWidget","discussionWithOpenForm","shouldScrollToDiscussion","behavior","isFormRendered","noteToDelete","isResolving","shouldChangeResolvedStatus","areRepliesCollapsed","resolveCheckboxText","firstNote","discussionReplies","areRepliesShown","resolveIconName","isRepliesWidgetVisible","isDiscussionActive","_getLocationHash","getLocationHash","isReplyPlaceholderVisible","isFormVisible","designsVersion","highlightCurrentUser","onSubmitComplete","createNote","toggleResolvedStatus","ALLOWED_ACTIVE_DISCUSSION_SOURCES","showForm","_currentDesign$curren","_this5","client","provider","prevTodoCount","toggleResolveDiscussionMutation","_data$errors","_data$discussionToggl","newTodoCount","discussionToggleResolve","noteable","_note$discussion","isLast","_this6","destroyNoteMutation","destroyNote","objectToIdentify","modify","identify","DELETE","gc","createNoteMutation","showDeleteNoteConfirmationModal","resolvable","resolvedBy","resolvedAt","editDescription","descriptionLabel","addDescriptionLabel","cancelEdit","primaryModalButton","cancelModalButton","quickActionsDocsPath","descriptionText","showEditor","isSubmitting","_this$design$issue","updateDesign","showAddDescriptionButton","_this$design$issue2","descriptionHtml","newDescriptionHtml","oldDescriptionHtml","renderGFM","startEditing","closeForm","enableCheckboxes","checkbox","setDescriptionText","newText","markdownEditor","trackSavedUsingEditor","isContentEditorActive","descriptionInput","updateDesignDescriptionMutation","toggleCheckboxes","isCheckbox","sourcepos","toggleMarkCheckboxes","rawMarkdown","checkboxChecked","updateDesignDescription","cancelDescription","DesignDescription","DesignDisclosure","DesignDiscussion","GlAccordion","GlAccordionItem","isOpen","isCommentFormPresent","showDescriptionForm","_this$design","extractDiscussions","unresolvedDiscussions","unresolvedDiscussionsCount","resolvedDiscussions","hasResolvedDiscussions","resolvedDiscussionsTitle","resolveCommentsToggleText","isResolvedDiscussionsExpanded","isExpanded","handleSidebarClick","updateDiscussionWithOpenForm","newDiscussionText","EMPTY_DISCUSSION_URL","currentTarget","maxScale","disableDecrease","disableIncrease","stepSize","scaleLabel","scaleValue","setScale","incrementScale","decrementScale","DesignPresentation","DesignSidebar","DesignToolbar","DesignScaler","beforeRouteUpdate","beforeRouteEnter","pageEl","getPageLayoutElement","beforeRouteLeave","allVersions","annotationCoordinates","prevCurrentUserTodos","imageV432x230","_data$designManagemen","hasValidVersion","onQueryError","designId","versionId","latestVersionId","headSha","diffRefs","baseSha","startSha","paths","newPath","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","baseDifference","baseFlatten","BULK_IMPORT_STATIC_ITEMS","badges","boards","epics","iterations_cadences","members","merge_requests","milestones","namespace_settings","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","convertObjectPropsToCamelCase","getDayDifference","date1","UTC","date2","getDateInPast","daysInPast","getDateInFuture","daysInFuture","areDatesEqual","extends","iconStateClass","noMilestone","milestoneFetchError","expiredText","WorkItemSidebarDropdownWidget","shouldFetch","updateInProgress","localMilestone","tracking","category","TRACKING_CATEGORY_SHOW","emptyPlaceholder","expired","_this$localMilestone","dropdownText","_this$localMilestone2","_this$localMilestone3","isLoadingMilestones","milestonesList","localMilestoneId","_this$localMilestone4","selectedMilestoneId","groupMilestonesQuery","projectMilestonesQuery","MILESTONE_STATE","ACTIVE","first","attributes","onDropdownShown","itemExpiredText","updateMilestone","_this$localMilestone5","track","newWorkItemId","updateWorkItemMutation","workItemUpdate","I18N_WORK_ITEM_ERROR_UPDATING","webPath","displayAsText","textSize","disableTooltip","statusText","textSizeClass","avatars","maxVisible","avatarSize","badgeSrOnlyText","badgeTooltipProp","badgeTooltipMaxChars","hiddenAvatars","16","32","badgeSize","collapsable","badge","badgeTooltipTitle","badgeLabel","BACKSPACE_KEY_CODE","TAB_KEY_CODE","DELETE_KEY_CODE","backgroundClasses","primary","warning","computedValue","computedMax","classes","waitFor","getEl","sleep","MarkdownField","LocalStorageSync","ContentEditor","setFacade","renderMarkdownPath","uploadsPath","uploads_path","enableContentEditor","autofocus","enableAutocomplete","autocompleteDataSources","supportsQuickActions","drawioEnabled","disableAttachments","codeSuggestionsConfig","noteableType","restrictedToolBarItems","restoreFromAutosave","editingMode","text_editor","EDITING_MODE_CONTENT_EDITOR","EDITING_MODE_MARKDOWN_FIELD","EDITING_MODE_KEY","autosaveValue","getDraft","alert","markdown","autofocused","contentEditorAutofocused","markdownFieldRestrictedToolBarItems","restrictAttachments","isDefaultEditorEnabled","_this$setFacade","autofocusTextarea","saveDraft","setValue","eventHub","updateValue","autosizeTextarea","setTemplate","template","dismiss","applyTemplateAlert","primaryButtonText","secondaryButtonText","primaryAction","secondaryAction","updateMarkdownFromContentEditor","updateMarkdownFromMarkdownField","renderMarkdown","setUrlParams","render_quick_actions","origin","post","otherData","onEditingModeChange","notifyEditingModeChange","onEditingModeRestored","componentToFocus","contentEditor","textarea","setEditorAsAutofocused","updateDraft","togglePreview","markdownField","previewMarkdown","Autosize","onKeydown","canSuggest","line","lines","showPopover","requireObjectCoercible","toIntegerOrInfinity","proto","forced","at","S","relativeIndex","activeEventTypes","lastMousedown","globalListener","eventTypes","onMousedown","OutsideDirective","bindings","modifiersList","parseBinding","eventType","startListening","eventTypesToUnbind","noMatchesFound","toggleButtonLabel","GlDropdown","GlDropdownItem","GlDropdownText","resourceType","RESOURCE_TYPE_ISSUE","RESOURCE_TYPES","searchUserProjectsWithIssuesEnabled","_data$projects","withLocalStorage","shouldSkipQuery","DEBOUNCE_DELAY","localStorageKey","resourceOptions","RESOURCE_OPTIONS","defaultDropdownText","dropdownHref","hasSelectedProject","DASH_SCOPE","showNoSearchResultsText","selectedProjectForLocalStorage","handleDropdownClick","dropdown","handleDropdownShown","selectProject","initFromLocalStorage","storedProject","endsWith","dashSuffix","copyObject","displayText","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","fetchNextPageInProgress","textClass","BDropdownText","titleTooltip","mergeRequestListTabs","STATUS_MERGED","availableSortOptions","DEFAULT_SKELETON_COUNT","PAGE_SIZE_STORAGE_KEY","baseGetTag","TABLE_TAG_NAMES","filterEvent","labelFor","inputId","noWorkItemId","assignParentLabel","parentLabel","unAssign","workItemsFetchError","hasParent","_this$parent","localSelectedItem","oldParent","allowedParentTypes","isIssue","WORK_ITEM_TYPE_VALUE_ISSUE","listboxText","_this$workItems$find","_this$parent2","_this$availableWorkIt","parentWebUrl","_this$parent3","showCustomNoneValue","allowedParentTypesForNewWorkItem","isNumber","_this$allowedChildTyp","allowedChildTypes","_data$workItemsByRefe","workItemAllowedParentTypesQuery","_findHierarchyWidgetD","findHierarchyWidgetDefinition","WORK_ITEM_TYPE_VALUE_MAP","searchWorkItems","_this$parent4","_this$availableWorkIt2","_this$parentWebUrl","updateParentMutation","_this3$oldParent","updateParent","_this$parent5","handleItemClick","unassignParent","onListboxShown","onListboxHide","requestAnimationFrame","_this$$refs$item","_this$$refs$item$$el","register","unregister","isActive","emitValue","ROOT_ACTION_EVENT_NAME_SHOW","PROPERTY","getTarget","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","s","ee","F","ze","se","Xe","te","ie","X","re","q","ce","V","Qe","G","le","A","lt","ne","ue","protocol","Y","implementation","createHTMLDocument","head","J","fe","createElementNS","setAttributeNS","de","XMLSerializer","serializeToString","ut","toBlob","l","u","ft","me","onabort","readAsArrayBuffer","dt","U","decoding","currentSrc","poster","once","baseVal","decode","originalSrc","ge","he","we","gt","it","timeEnd","ct","ht","Ge","pe","autoDestruct","g","workerUrl","workerNumber","debug","maximumCanvasSize","requestInit","bypassingCache","placeholderImage","fetchFn","font","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","pt","context2d","fillStyle","fillRect","yt","bt","St","be","sandbox","write","namespaceURI","Se","getPropertyPriority","Et","Ct","Ee","putImageData","xt","et","st","oe","Nt","srcset","kt","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","responseType","We","AbortController","signal","ok","cause","blob","H","requestType","imageDom","postMessage","rawUrl","Ne","Ie","ke","Ut","$t","De","styleSheets","cssRules","Je","Bt","xe","exec","Lt","insertRule","rule","Ye","parentStyleSheet","Mt","Ot","preferredFormat","jt","Re","Wt","Ke","insertAdjacentHTML","Vt","qt","Pe","Ht","K","B","He","btoa","fromCharCode","Fe","createContext","destroyContext","domToBlob","mt","domToCanvas","domToDataUrl","domToForeignObjectSvg","domToImage","domToJpeg","domToPixel","domToPng","domToSvg","domToWebp","loadMedia","waitUntilLoad","toStringTag","commit","toggleDropdownButton","requestLabels","receiveLabelsFailure","dispatch","labelsFetched","requestCreateLabel","receiveCreateLabelSuccess","receiveCreateLabelFailure","getters","firstLabelName","selectedLabelsList","VARIANT_STANDALONE","transformLabels","selectedLabel","_props$selectedLabels","_labels$pop","labelId","candidateLabel","currentActiveScopedLabel","scopedLabelKey","namespaced","selectedLabelsUpdated","actions","mutations","headerHeight","headerSticky","styles","positionFromTop","maxHeight","footer","handleEscape","emitOpened","variantClass","shouldRenderFooter","lastTimer","install","hiddenInterval","_time","_timers","_run","isSupported","_listen","stop","_stop","_timed","_wasHidden","_stopRun","runNow","timer","runner","isHidden","wasHidden","allowedTypes","TYPE_INCIDENT","showConvertToTaskItem","convertToTask","eventPayload","deleteTaskListItem","startRow","BFormRadio","VALID_IMAGE_FILE_MIMETYPE","GlAnimatedUploadIcon","displayAsCard","enableDragBehavior","uploadSingleMessage","uploadMultipleMessage","dropToStartMessage","isFileValid","validFileMimetypes","singleFileSelection","inputFieldName","shouldUpdateInputOnFileDrop","showUploadDesignOverlay","uploadDesignOverlayText","validateDesignUploadOnDragover","acceptDesignFormats","hideUploadTextOnDragging","dragCounter","isDragDataValid","animateUploadIcon","dragging","iconStyles","validMimeTypeString","showDropzoneOverlay","isValidUpload","isValidDragDataType","ondrop","fileUpload","ondragenter","ondragover","ondragleave","openFileUpload","onFileInputChange","onMouseEnter","onMouseLeave","GlOutside","GlOutsideDirective","GlDrawer","clickOutsideExcludeSelector","copyTooltipText","activeItemFullPath","makeDrawerItemFullPath","modalIsGroup","headerReference","setDrawerParams","focusOnHeaderLink","_data$workItemDelete$","redirectToWorkItem","handleCopyToClipboard","copiedTooltipText","makeDrawerUrlParam","handleClose","isClickedOutside","_document$getElementB","handleClickOutside","defaultExcludedSelectors","excludedElements","_this$$refs","workItemUrl","openTooltipText","a0","DEFAULT_CALLBACKS","KEY_CODE","ESC","TAB","ENTER","CTRL","LEFT","UP","RIGHT","DOWN","BACKSPACE","SPACE","beforeSave","Controller","arrayToDefaultHash","matcher","flag","subtext","should_startWithSpace","acceptSpaceBar","_a","decodeURI","remoteFilter","sorter","atwho_order","tplEval","tpl","error1","li","regexp","$1","$2","$3","beforeInsert","$li","beforeReposition","afterMatchFailed","currentFlag","controllers","aliasMaps","setupRootElement","listen","createContainer","asRoot","parentWindow","atwho","iframeAsRoot","controller","setContextFor","reg","setting","EditableController","TextareaController","alias","view","isComposing","onKeyup","expectedQueryCBId","getOpt","lastScrollTop","currentScrollTop","shutdown","results","lookUp","highlighted","choose","app","at1","uid","Model","View","reload","callDefault","funcName","default_value","insertContentFor","renderView","wait","catchQuery","_delayLookUp","_lookUp","remaining","previousCallTime","_stopDelayedCall","delayedCallTimeout","_generateQueryCBId","_callback","queryCBId","Api","superClass","caretPos","isString","iframeOffset","scaleBottom","insert","startStr","suffix","headPos","_getRange","_setRange","setEndAfter","setStartAfter","setEndBefore","setStartBefore","_clearRange","ctrl_a_pressed","_movingEvent","which","_unwrap","unwrap","nodeValue","$inserted","$query","_range","lastNode","matched","query_content","startContainer","contents","ELEMENT_NODE","startOffset","cloneContents","TEXT_NODE","previousSibling","siblings","attr","surroundContents","getClientRects","overrides","suffixNode","context","storage","saved","_remoteFilter","load","_load","$elUl","timeoutID","bindEvent","header_tpl","prepend","$menu","lastCoordX","lastCoordY","$cur","expr","filters","stopShowing","_window","overflowOffset","prevEl","$ul","isSelecting","setIframe","run","_args","$this","displayTpl","insertTpl","headerTpl","functionOverrides","hideWithoutSuffix","startWithSpace","highlightFirst","limit","maxLen","minLen","displayTimeout","spaceSelectsMatch","tabSelectsMatch","editableAtwhoQueryAttrs","scrollDuration","suspendOnComposing","lookUpOnClick","observable","toNounSeriesText","onlyCommas","lastItem","firstItem","baseForOwn","setter","accumulator","Query","defaultPathSeparator","parseOptions","pathScorer","preparedQueryCache","scorer","process","platform","candidates","usePathScoring","wrap","prepareQuery","useExtensionBonus","pathSeparator","optCharRegEx","setToArray","createSet","getSourceposRows","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","moreActions","showClosed","GlToggle","InternalEvents","showViewRoadmapAction","isDropdownVisible","workItemRoadmapPathHref","workItemRoadmapPath","viewOnARoadmap","shouldShowViewRoadmapAction","showDropdown","hideDropdown","trackEvent","COMMENT_FORM","GENERIC_UNSUBMITTABLE_NETWORK","comment","wiki","internalComment","startThread","startInternalThread","mergeRequest","bodyPlaceholder","bodyPlaceholderInternal","internal","internalVisibility","discussionThatNeedsResolution","internalDiscussionThatNeedsResolution","internalDiscussion","actionButtonWithNote","actionButton","withNote","reopen","withoutNote","submitButton","commentHelp","internalCommentHelp","addToReviewButton","saveThread","saveComment","addToReview","startReview","addCommentNow","addThreadNow","EDITED_TEXT","actionWithAuthor","actionWithoutAuthor","UPDATE_COMMENT_FORM","defaultError","actionPrimary","actionSecondary","GlFormRadioGroup","reportedUserId","reportedFromUrl","showModal","selectedOption","closeModal","FIELD_KEY_CELL_VARIANT","FIELD_KEY_ROW_VARIANT","FIELD_KEY_SHOW_DETAILS","IGNORED_FIELD_KEYS","EVENT_FILTER","colgroupMixin","$colgroup","DEFAULT_OPERATORS","multiSelectValues","operator","dataSegmentInputAttributes","activeSegment","tokenValue","_this$tokenValue$data","tokenEmpty","isSegmentActive","segments","SEGMENT_TITLE","SEGMENT_DATA","SEGMENT_OPERATOR","tokenIsActive","activateSegment","segment","newType","newTokenConfig","isCompatible","potentialValue","activateDataSegment","availableTokensWithSelf","activateNextOperatorSegment","getAdditionalSegmentClasses","handleOperatorKeydown","replaceWithTermIfEmpty","activatePreviousTitleSegment","activateNextDataSegment","operatorDescription","handleComplete","activatePreviousOperatorSegment","scope","bytesToMiB","BYTES_IN_KIB","bytesToGiB","numberToHumanSizeSplit","digits","locale","digitsOptions","minimumFractionDigits","maximumFractionDigits","formatNumberWithLocaleAndDigits","formatNumber","numberToHumanSize","humanSize","uppercase","THOUSAND","MILLION","median","middle","sorted","changeInPercent","firstY","lastY","formattedChangeInPercent","nonFiniteResult","isFinite","numberRegex","countFloatingPointDigits","decimal","parts","integer","splitDecimalNumber","baseToString","castSlice","isRegExp","stringSize","stringToArray","reFlags","omission","separator","strLength","strSymbols","global","newEnd","trackToggleTimelineView","enabled","marked","markedBidi","sanitize","markdownConfig","createNoteErrorMessages","_data$quick_actions_s","quick_actions_status","error_messages","updateNoteErrorMessage","_e$response","isSlashCommand","trimmedMessage","BThead","isThead","theadClasses","theadAttrs","getHeadSlotName","getFootSlotName","headRowVariant","theadClass","theadTrClass","theadMixin","fieldClasses","thClass","isFoot","stopIfBusy","isSortable","isSelectable","hasHeadClickListener","hasListener","selectAllRows","clearSelected","$cells","colIndex","labelHtml","stickyColumn","headerTitle","headClicked","keydown","sortAttrs","sortTheadThAttrs","sortClass","sortTheadThClasses","sortLabel","sortTheadThLabel","thStyle","tabindex","headerAbbr","getThValues","thAttr","slotNames","column","$content","$srLabel","$trs","baseUniq","unionBy","func","later","callNow","remain","rtag","wtag","wclass","wstyle","pagemode","scrollelement","variable","bench","totop","tobottom","onscroll","istable","itemcount","itemprops","changeProp","itemModeForceRender","newScrollelement","oldScrollelement","removeScrollListener","addScrollListener","keeps","delta","offsetAll","paddingTop","paddingBottom","varCache","varAverSize","varLastCalcIndex","getZone","setScrollTop","getVarOffset","beforeUpdate","calcstart","zone","forceRender","scrollHandler","onScroll","vsl","scrollelementRect","_elemRect","updateZone","param","overs","getVarOvers","shouldRenderNextZone","lastStart","$forceUpdate","low","middleOffset","high","nocache","getVarSize","$children","$vnode","shm","getVarPaddingTop","getVarPaddingBottom","getVarAllHeight","updateVariable","allHeight","slots","hasPadding","renders","dbc","_this$delta","renderList","differenceBy","baseOrderBy","actionText","showSpinner","isInternalNote","isSystemNote","noteUrl","emailParticipant","isUsernameLinkHovered","authorHref","noteTimestampLink","isServiceDeskEmailParticipant","authorLinkClasses","hover","authorName","internalNoteTooltip","updateTargetNoteHash","setTargetNoteHash","handleUsernameMouseEnter","authorNameLink","Event","handleUsernameMouseLeave","isCommon","valuesLength","valuesIndex","stableSort","compareFn","_originalStopCallback","stopCallback","combo","paused","pause","unpause","baseIntersection","castArrayLikeObject","intersectionBy","mapped","noteableTypeText","Issue","MergeRequest","Task","KeyResult","Objective","isLocked","lockedNoteableDocsPath","confidentialNoteableDocsPath","warningIcon","isLockedAndConfidential","confidentialContextText","lockedContextText","emails","moreParticipantsAvailable","moreLabel","showMoreParticipants","ATTACHMENT_REGEXP","attachmentWarning","confidentialAttachmentWarning","EmailParticipantsWarning","NoteableWarning","noteableData","withAlertContainer","containsLink","discussion_locked","hasWarningAbove","hasWarningBelow","showConfidentialAttachmentWarning","showAttachmentWarning","showEmailParticipantsWarning","emailParticipants","_this$noteableData$is","issue_email_participants","locked_discussion_docs_path","confidential_issues_docs_path","accordionId","defaultHeaderLevel","headerLevel","accordionSetId","autoCollapse","hideTextInSmallScreens","confidentialTooltip","confidentialityInfoText","confidentialTextClass","IssuableMilestone","isWorkItemList","isMilestoneWidget","_this$issue$widgets2","isStartAndDueDateWidget","dueDateText","dueDateTitle","dateIcon","_this$issue$widgets3","timeEstimate","_this$issue$timeStats","humanTimeEstimate","timeStats","isWeightWidget","updateStoreAfterUploadDesign","designManagementUpload","draftData","designWidget","findDesignWidget","currentDesigns","designCollection","designs","_differenceBy","newDesigns","newVersionNode","findNewVersions","versions","findNewVersionsNodes","updatedDesigns","copyState","addNewDesignToStore","selectedDesigns","changedDesigns","designWidgetOf","deleteDesignsFromStore","addNewVersionToStore","newDiscussion","replyId","currentDesign","notesCount","extractCurrentDiscussion","updateImageDiffNoteInStore","updateDesignsOnStoreAfterReorder","designManagementMove","moveDesignInStore","GL_DROPDOWN_SHOWN","GL_DROPDOWN_HIDDEN","GL_DROPDOWN_BEFORE_CLOSE","GL_DROPDOWN_FOCUS_CONTENT","ARROW_DOWN","ARROW_UP","END","HOME","POSITION_ABSOLUTE","POSITION_FIXED","GL_DROPDOWN_CONTENTS_CLASS","symbolProto","symbolValueOf","isResolved","isInactive","isOnImage","isDraft","isNewNote","pinLabel","inactive","draft","small","baseFindIndex","predicate","fromIndex","getWindow","_node$ownerDocument","getComputedStyle$1","isNode","Node","getNodeName","isHTMLElement","isElement","Element","isShadowRoot","ShadowRoot","isOverflowElement","isTableElement","isContainingBlock","safari","isSafari","perspective","containerType","backdropFilter","willChange","contain","CSS","supports","isLastTraversableNode","createEmptyCoords","getCssDimensions","hasOffset","shouldFallback","unwrapElement","contextElement","getScale","domElement","noOffsets","getVisualOffsets","floatingOffsetParent","_win$visualViewport","_win$visualViewport2","visualViewport","includeScale","isFixedStrategy","visualOffsets","offsetWin","currentIFrame","iframeScale","iframeRect","clientLeft","clientTop","getDocumentElement","getNodeScroll","getWindowScrollBarX","getParentNode","assignedSlot","getOverflowAncestors","scrollableAncestor","getNearestOverflowAncestor","isBody","getClientRectFromClippingAncestor","clippingAncestor","strategy","visualViewportBased","getViewportRect","getDocumentRect","getInnerBoundingClientRect","hasFixedPositionAncestor","stopNode","getTrueOffsetParent","polyfill","getOffsetParent","currentNode","getContainingBlock","getRectRelativeToOffsetParent","isOffsetParentAnElement","offsets","offsetRect","getClippingRect","boundary","rootBoundary","clippingAncestors","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","getClippingElementAncestors","firstClippingAncestor","clippingRect","accRect","convertOffsetParentRelativeRectToViewportRelativeRect","getDimensions","floating","getOffsetParentFn","getDimensionsFn","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","IntersectionObserver","animationFrame","referenceEl","ancestors","cleanupIo","timeoutId","io","cleanup","disconnect","refresh","rootMargin","isFirstUpdate","handleObserve","intersectionRatio","observeMove","frameId","reobserveFrame","resizeObserver","firstEntry","cancelAnimationFrame","prevRefRect","frameLoop","nextRefRect","computePosition","mergedOptions","platformWithCache","parseSpan","spanValidator","colspan","rowspan","stackedHeading","BTd","getBvTableTr","bvTableTr","inTbody","inThead","inTfoot","isDark","hasStickyHeader","isStickyColumn","rowVariant","headOrFoot","computedColspan","computedRowspan","isStackedCell","cellClasses","cellAttrs","reRegExpChar","reHasRegExpChar","actionCancel","exportText","issuableCount","modalId","dataTrackLabel","issuableCountText","maximumFileSizeText","importIssuesText","uploadCsvFileText","mainText","maxFileSizeText","CsvExportModal","CsvImportModal","GlModalDirective","trackImportClick","exportAsCSV","importCSV","importFromJIRA","exportModalId","importModalId","sides","alignments","placements","acc","side","oppositeSideMap","oppositeAlignmentMap","clamp","evaluate","getSide","getAlignment","getOppositeAxis","getAxisLength","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","getOppositeAxisPlacements","flipAlignment","isStart","lr","rl","tb","getSideList","getPaddingObject","padding","expandPaddingObject","rectToClientRect","xor","BTh","active_backdrop","active_textarea","storedStyle","enter","exit","backdrop","removeAttr","scrollToElement","autosize","$dropzone","buttonTooltipText","getPopoverText","getPopoverLink","WORK_ITEM_TYPE_VALUE_OBJECTIVE","onBeforeClose","atDepthLimit","progressLabel","weightCompletedLabel","shouldRolledUpWeightBeVisible","showRolledUpWeight","showRolledUpProgress","rolledUpCompletedWeight","_this$workItemWeight","_this$workItemWeight2","_this$workItemWeight3","completedWeightPercentage","_this$workItemHealthS","weightData","progressBadge","FORM_TYPES","WORK_ITEMS_TREE_TEXT","WorkItemActionsSplitButton","CrudComponent","WorkItemLinksForm","WorkItemChildrenWrapper","WorkItemChildrenLoadMore","WorkItemMoreActions","WorkItemRolledUpData","isDrawer","parentWorkItemType","canUpdateChildren","activeChildItemId","formType","childType","widgetName","CHILD_ITEMS_ANCHOR","disableContent","draggedItemType","showLabelsLocalStorageKey","WORKITEM_TREE_SHOWLABELS_LOCALSTORAGEKEY","showClosedLocalStorageKey","WORKITEM_TREE_SHOWCLOSED_LOCALSTORAGEKEY","getWorkItemTreeQuery","getDefaultHierarchyChildrenCount","findHierarchyWidgets","fetchNextPage","depthLimitReachedByType","_this$workItemHierarc2","addItemsActions","childTypes","_this$depthLimitReach","enumType","depthLimitByType","_item$workItemType","depthLimitReached","genericActionItems","hasIndirectChildren","hierarchy","hasChildren","isLoadingChildren","showEmptyMessage","_this$hierarchyWidget2","_this$pageInfo","_this$pageInfo2","workItemNamespaceName","fullName","showTaskWeight","allowedChildrenByType","_type$widgetDefinitio","_definition$allowedCh","definition","hasAllChildItemsHidden","getItems","filterClosed","getToggleFromLocalStorage","workItemName","showAddForm","workItemTree","_this3$$refs$wiLinksF","wiLinksForm","wiTitleInput","hideAddForm","modalWorkItem","toggleShowLabels","saveToggleToLocalStorage","toggleShowClosed","fetchMore","noChildItemsOpen","warningMessage","changeTypeDisabled","hasDesigns","showErrorMessage","_findDesignWidget","allowedConversionWorkItemTypes","WORK_ITEM_ALLOWED_CHANGE_TYPE_MAP","selectedWorkItemTypeWidgetDefinitions","getWidgetDefinitions","currentWorkItemTypeWidgetDefinitions","widgetDifference","widgetsWithExistingData","widgetsWithExistingDataList","_this2$widgets","_widgetObject$fieldNa","_widgetObject$fieldNa2","widgetObject","fieldName","WORK_ITEM_WIDGETS_NAME_MAP","WIDGET_TYPE_DESIGNS","hasWidgetDifference","parentWorkItem","_this$widgets","_this$parentWorkItem","selectedWorkItemTypeValue","workItemConvert","convertWorkItemMutation","_this$workItemTypes$f","validateWorkItemType","showWarningMessage","I18N_WORK_ITEM_CHANGE_TYPE_PARENT_ERROR","I18N_WORK_ITEM_CHANGE_TYPE_CHILD_ERROR","I18N_WORK_ITEM_CHANGE_TYPE_MISSING_FIELDS_ERROR","resetModal","showDifferenceMessage","changeType","showAsDropdownItem","hasComment","blockerItems","openChildItemsCount","workItemLinkedItemsQuery","IS_BLOCKED_BY","workItemOpenChildCountQuery","_findHierarchyWidgets","countsByType","curr","countsByState","toggleWorkItemStateText","baseText","toggleInProgressText","isBlocked","hasOpenChildren","blockedByIssuesModal","openChildrenWarningModal","blockedByModalTitle","blockedByModalBody","openChildrenModalTitle","openChildrenModalBody","modalActionCancel","modalActionPrimary","_data$workItemUpdate","stateEvent","STATE_EVENT_CLOSE","STATE_EVENT_REOPEN","updateCountsForParent","isClosing","enableConfidentiality","disableConfidentiality","confidentialityEnabled","confidentialityDisabled","confidentialParentTooltip","notifications","notificationOn","notificationOff","copyReference","referenceCopied","emailAddressCopied","reportAbuse","changeWorkItemType","GlDropdownDivider","WorkItemStateToggle","WorkItemChangeTypeModal","notificationsToggleFormTestId","TEST_ID_NOTIFICATIONS_TOGGLE_FORM","confidentialityTestId","TEST_ID_CONFIDENTIALITY_TOGGLE_ACTION","copyReferenceTestId","TEST_ID_COPY_REFERENCE_ACTION","copyCreateNoteEmailTestId","TEST_ID_COPY_CREATE_NOTE_EMAIL_ACTION","deleteActionTestId","TEST_ID_DELETE_ACTION","promoteActionTestId","TEST_ID_PROMOTE_ACTION","changeTypeTestId","TEST_ID_CHANGE_TYPE_ACTION","lockDiscussionTestId","TEST_ID_LOCK_ACTION","stateToggleTestId","TEST_ID_TOGGLE_ACTION","reportAbuseActionTestId","TEST_ID_REPORT_ABUSE","newRelatedItemTestId","TEST_ID_NEW_RELATED_WORK_ITEM","canDelete","isDiscussionLocked","isParentConfidential","subscribedToNotifications","workItemCreateNoteEmail","isModal","hideSubscribe","workItemAuthorId","canCreateRelatedItem","isLockDiscussionUpdating","isCreateWorkItemModalVisible","WORK_ITEM_TYPE_VALUE_KEY_RESULT","I18N_WORK_ITEM_DELETE","convertError","I18N_WORK_ITEM_ERROR_CONVERTING","copyCreateNoteEmail","I18N_WORK_ITEM_COPY_CREATE_NOTE_EMAIL","copyReferenceError","I18N_WORK_ITEM_ERROR_COPY_REFERENCE","copyCreateNoteEmailError","I18N_WORK_ITEM_ERROR_COPY_EMAIL","newRelatedItemLabel","I18N_WORK_ITEM_NEW_RELATED_ITEM","areYouSureDeleteMessage","I18N_WORK_ITEM_ARE_YOU_SURE_DELETE_HIERARCHY","I18N_WORK_ITEM_ARE_YOU_SURE_DELETE","canLockWorkItem","canPromoteToObjective","confidentialItem","lockDiscussionText","objectiveWorkItemTypeId","showDropdownTooltip","isAuthor","relatedItemData","confidentialityToggledText","showChangeType","workItemsBeta","copyToClipboard","clipboard","writeText","toast","closeDropdown","handleToggleWorkItemConfidentiality","handleDelete","handleDeleteWorkItem","handleCancelDeleteWorkItem","toggleNotifications","subscribed","updateWorkItemNotificationsMutation","workItemSubscribe","throwConvertError","workItemsMoreActions","toggleDiscussionLock","notesWidget","discussionLocked","emitStateToggleError","handleToggleReportAbuseModal","showChangeTypeModal","workItemsChangeTypeModal","promoteToObjective","labelOn","labelOff","emailsDisabled","notificationTooltip","notificationIcon","nullObjectDate","dates","dueDateInputId","startDateInputId","GlDatepicker","Outside","dirtyDueDate","dirtyStartDate","isUpdating","datesUnchanged","isDatepickerDisabled","isWithOnlyDueDate","isWithOnlyStartDate","isWithNoDates","startDateValue","formatDate","dueDateValue","workItemDatesWidget","toISODateFormat","newDueDate","newStartDate","SIDEBAR_CLOSE_WIDGET","collapseWidget","clearDueDatePicker","clearStartDatePicker","handleStartDateInput","updateDates","expandWidget","_event$target","hoursPerDay","daysPerMonth","addTimeTrackingMessage","TimeTrackingReport","CreateTimelogForm","GlProgressBar","SetTimeEstimateForm","timelogs","totalTimeSpent","outputChronicDuration","humanTotalTimeSpent","_outputChronicDuratio","progressBarTooltipText","_outputChronicDuratio2","timeDifference","progressBarVariant","timeRemainingPercent","timeEstimateDetails","createTimelogModalId","CREATE_TIMELOG_MODAL_ID","setTimeEstimateModalId","SET_TIME_ESTIMATE_MODAL_ID","timeTrackingModalId","ListType","Participants","WorkItemDueDate","WorkItemTimeTracking","WorkItemProgress","workItemParticipantsQuery","_this$isWidgetPresent","isWidgetPresent","_this$workItem$workIt","canWorkItemRollUp","_this$workItemStartAn","workItemProgress","showRolledupDates","showParent","_this$isWidgetPresent2","workItemTimeTracking","WIDGET_TYPE_TIME_TRACKING","workItemsAlpha","_workItem$widgets","LockedBadge","ConfidentialityBadge","_this$workItem$author","workItemIconName","isNotesWidget","isWorkItemConfidential","_this$workItem7","isDescriptionVersionExpanded","noteDeleted","systemNoteDescriptionVersion","_this$note$systemNote","systemNoteMetadata","descriptionVersion","descriptionVersionDiffPath","_this$systemNoteDescr","diffPath","descriptionVersionDeletePath","_this$systemNoteDescr2","deletePath","descriptionVersionStartId","_this$systemNoteDescr3","startVersionId","isDescriptionVersionDeleted","_this$systemNoteDescr4","deleted","canDeleteDescriptionVersion","_this$systemNoteDescr5","canSeeDescriptionVersion","descriptionVersionId","displayDeleteButton","shouldShowDescriptionVersion","descriptionVersionToggleIcon","endpoint","startingVersion","requestUrl","mergeUrlParams","start_version_id","isLoadingDescriptionVersion","res","descriptionVersions","startVersion","toggleDescriptionVersion","_this$descriptionVers","fetchDescriptionVersion","deleteDescriptionVersion","softDeleteDescriptionVersion","ALLOWED_ICONS","ICON_COLORS","deleteButtonLabel","NoteHeader","descriptionVersionHistoryMixin","showLines","loadingDiff","targetNoteHash","getIconColor","systemNoteIconName","isAllowedIcon","isTargetNote","toggleIcon","actionTextHtml","singleLineDescription","deleteButtonClasses","userColorSchemeClass","user_color_scheme","sortFilterProp","trackingLabel","trackingAction","defaultSortFilterProp","getDropdownSelectedText","selectedSortOption","setDiscussionFilterOption","filterValue","fetchFilteredDiscussions","isSortDropdownItemActive","activityLabel","WorkItemActivitySortFilter","disableActivityFilterSort","sortOrder","ASC","discussionFilter","WORK_ITEM_NOTES_FILTER_ALL_NOTES","useH2","headerClasses","changeNotesSortOrder","filterDiscussions","WORK_ITEM_ACTIVITY_FILTER_OPTIONS","WORK_ITEM_NOTES_FILTER_KEY","WORK_ITEM_ACTIVITY_SORT_OPTIONS","WORK_ITEM_NOTES_SORT_ORDER_KEY","collapseSystemNotes","lastDescriptionSystemNote","lastDescriptionSystemNoteIndex","currentNote","lastStartVersionId","system","DESCRIPTION_TYPE","isDescriptionSystemNote","_lastDescriptionSyste","_lastDescriptionSyste2","noteBeginning","noteEnd","descriptionNoteBegin","timeDifferenceMinutes","getTimeDifferenceInMinutes","TIME_DIFFERENCE_VALUE","DOCS_WORK_ITEM_LOCKED_TASKS_PATH","DOCS_WORK_ITEM_CONFIDENTIAL_TASKS_PATH","DOCS_WORK_ITEM_LOCKED_OKRS_PATH","DOCS_WORK_ITEM_CONFIDENTIAL_OKRS_PATH","addInternalNote","cancelButtonText","constantOptions","CommentFieldLayout","commentButtonText","isNewDiscussion","isDiscussionInternal","isDiscussionResolved","isDiscussionResolvable","hasReplies","hasEmailParticipantsWidget","commentText","isNoteInternal","toggleResolveChecked","commentButtonTextComputed","docsLinks","WORK_ITEM_TYPE_VALUE_TASK","getWorkItemData","workItemTypeKey","showResolveDiscussionToggle","resolveCheckboxLabel","canMarkNoteAsInternal","markNoteAsInternal","showInternalNoteCheckbox","workItemEmailParticipantsByIidQuery","_findWidget","WIDGET_TYPE_EMAIL_PARTICIPANTS","setCommentText","cancelEditing","getMutation","_note$awardEmoji$node","_note$awardEmoji","awardedByCurrentUser","removeAwardEmojiMutation","mutationName","addAwardEmojiMutation","optimisticAwardUpdate","updateQuery","workItemNotesByIidQuery","updatedNote","updateCacheAfterRemovingAwardEmojiFromNote","updateCacheAfterAddingAwardEmojiToNote","editButtonText","moreActionsText","deleteNoteText","copyLinkText","assignUserText","unassignUserText","reportAbuseText","resolveThreadTitle","GlDisclosureDropdownGroup","ReplyButton","UserAccessRoleBadge","showReply","showEdit","showAwardEmoji","isAuthorAnAssignee","showAssignUnassign","canReportAbuse","isWorkItemAuthor","isAuthorContributor","maxAccessLevelOfAuthor","canResolve","assignUserActionText","displayAuthorBadgeText","displayMemberBadgeText","access","displayContributorBadgeText","resolveIcon","emitEvent","setAwardEmoji","hasAwardEmojiPermission","handleAward","oldVal","_gl","lazyLoader","searchLazyImages","WorkItemNoteAwardsList","NoteBody","NoteActions","WorkItemCommentForm","EditedAt","isFirstNote","canSetWorkItemMetadata","externalAuthor","_this$note","entryClass","isTarget","resolveNote","noteHeaderClass","lastEditedBy","hasAdminPermission","_this$$route","routeParamType","isCurrentUserAuthorOfNote","_this$workItem$namesp","discussionResolvedBy","showReplyForm","updateWorkItemNoteMutation","getNewAssigneesAndWidget","newAssignees","assigneesWidgetIndex","isAssigneesWidget","editedWorkItemWidgets","notifyCopyDone","authorIsContributor","assignUserAction","lastEditedAt","startTagRegister","startTagSignIn","endRegisterTag","endSignInTag","isProjectArchived","archivedProjectDocsPath","lockedIssueDocsPath","projectArchivedWarning","issuableDisplayName","lockedIssueWarning","issuableTypeText","WorkItemNoteSignedOut","WorkItemCommentLocked","ResolveDiscussionButton","addPadding","isInternalThread","addNoteKey","generateUniqueId","errorMessages","messages","isSubmittingWithKeydown","signedIn","timelineEntryInnerClass","timelineContentClass","parentClass","archived","canCreateNote","_this$workItem$userPe","timelineEntryClass","resolveDiscussionTitle","onNoteUpdate","quickActionsStatus","createNoteData","_createNoteData$data","numErrors","_createNoteData$data2","WorkItemNote","WorkItemAddNote","DiscussionNotesRepliesWrapper","WorkItemNoteReplying","isExpandedOnLoad","isReplying","replyingText","_this$replies","_this$discussion","_this$firstComment","firstComment","shouldShowReplyForm","isOnlyCommentOfAThread","_this$discussion$","_this$firstComment2","_this$firstComment3","hideReplyForm","toggleDiscussion","threadKey","onReplied","onReplying","getToggledDiscussion","_gon2","toggledDiscussionNotes","toggleWorkItemNoteResolveDiscussion","resolveDiscussion","WORK_ITEM_NOTES_FILTER_ONLY_COMMENTS","information","selectFilter","SystemNote","WorkItemDiscussion","WorkItemNotesActivityHeader","WorkItemHistoryOnlyFilterNote","isLoadingMore","workItemNamespace","previewNote","initialLoading","workItemNotes","someNotesLoaded","_this$workItemNotes","formAtTop","DESC","isGroupWorkItem","_this$workItemNamespa","_this$workItemNamespa2","isNewWorkItemInGroup","workItemCommentFormProps","notesArray","_this$workItemNotes2","WORK_ITEM_NOTES_FILTER_ONLY_HISTORY","modalOpen","URLSearchParams","previewNoteLoadedInList","commentsDisabled","previewNoteId","isSha","isNoteId","_this$workItemNotes3","discussionNoteId","singleReply","workItemNoteQuery","_data$note","_result$errors","_result$data","_this$$apollo$queries","DEFAULT_PAGE_SIZE_NOTES","_widgets$find","fetchMoreNotes","subscribeToMore","workItemNoteCreatedSubscription","previousResult","subscriptionData","updateCacheAfterCreatingNote","workItemNoteDeletedSubscription","updateCacheAfterDeletingNote","workItemNoteUpdatedSubscription","getDiscussionKey","isHashTargeted","isDiscussionExpandedOnLoad","_discussion$notes$nod","showDeleteNoteModal","isLastNote","deleteNoteModal","cancelDeletingNote","deleteNoteMutation","deletedObject","defaultAwards","EMOJI_THUMBS_UP","EMOJI_THUMBS_DOWN","workItemFullpath","_this$awardEmoji","projectWorkItemAwardEmojiQuery","DEFAULT_PAGE_SIZE_EMOJIS","WIDGET_TYPE_AWARD_EMOJI","fetchAwardEmojis","I18N_WORK_ITEM_FETCH_AWARD_EMOJI_ERROR","awardEmojiNodes","updateWorkItemAwardEmojiWidgetCache","updateAwardEmojiMutation","RELATIONSHIP_TYPE_ENUM","WorkItemLinkChildContents","parentWorkItemIid","relationshipType","heading","dragCancelled","canReorder","listRootComponent","DraggableList","listOptions","DRAG_DELAY","handleKeyUp","handleDragStart","ignoreClickEvent","handleMove","fromRelationshipType","toRelationshipType","linkedItem","removeRes","removeLinkedItemsMutation","workItemRemoveLinkedItems","addRes","addLinkedItemsMutation","workItemAddLinkedItems","handleDragEnd","WorkItemTokenInput","linkedItemType","LINKED_ITEM_TYPE_VALUE","RELATED","linkedItemTypes","relatedToLabel","blockingLabel","BLOCKS","blockedByLabel","BLOCKED_BY","showWorkItemsToAddInvalidMessage","searchInProgress","maxWorkItems","MAX_WORK_ITEMS","linkItemFormHeaderLabel","LINK_ITEM_FORM_HEADER_LABEL","workItemsToAddInvalidMessage","addChildErrorMessage","isSubmitButtonDisabled","maxItemsErrorMessage","queryArgs","addLinkedItemErrorMessage","addButtonLabel","linkItemInputLabel","maxItemsNoteLabel","I18N_MAX_WORK_ITEMS_NOTE_LABEL","I18N_MAX_WORK_ITEMS_ERROR_MESSAGE","linkWorkItem","linkedCategories","WorkItemRelationshipList","WorkItemAddRelationshipForm","canAdminWorkItemLink","linkedWorkItems","linksRelatesTo","linksIsBlockedBy","linksBlocks","LINKED_ITEMS_ANCHOR","WORKITEM_RELATIONSHIPS_SHOWLABELS_LOCALSTORAGEKEY","WORKITEM_RELATIONSHIPS_SHOWCLOSED_LOCALSTORAGEKEY","linkedWorkItemsCount","isEmptyRelatedWorkItems","hasAllLinkedItemsHidden","displayableLinks","countBadgeAriaLabel","itemCount","openRelatesToLinks","openIsBlockedByLinks","openBlocksLinks","showLinkItemForm","hideLinkItemForm","updateLinkedItem","linkId","updatingLinkedItem","_cloneDeep","_findLinkedItemsWidge2","removeLinkedItemErrorMessage","isItemDisplayable","emptyStateMessage","noLinkedItemsOpen","addChildButtonLabel","relatedToTitle","blockingTitle","blockedByTitle","addLinkedWorkItemButtonLabel","removeLinkedItem","WorkItemActions","WorkItemNotificationsWidget","isStickyHeaderShowing","workItemNotificationsSubscribed","parentWorkItemConfidentiality","showWorkItemCurrentUserTodos","_this$workItem$userPe2","_this$workItem$widget","_this$workItem$workIt2","newTodoAndNotificationsEnabled","notificationsTodosButtons","createNoteEmail","shouldDisplayIcon","ISSUABLE_EPIC","iconSpriteInfo","icons","ancestorNotAvailable","DisclosureHierarchyItem","GlResizeObserver","withEllipsis","ellipsisTooltipLabel","itemUuid","uniqueId","isMobile","middleItems","lastItemIndex","handleResize","GlBreakpointInstance","getBreakpointSize","ANCESTOR_NOT_AVAILABLE","ancestorLabel","ancestorsTooltipLabel","DisclosureHierarchy","_data$workItem","formattedAncestors","ancestorHierarchyWidget","workItemAncestorsUpdatedSubscription","Timeago","isUploading","imageLoading","wasInView","normalizedEvent","creation","tooltip","modification","deletion","notesLabel","imageLink","showLoadingSpinner","showImageErrorIcon","showImage","routerLinkProps","onImageLoad","onImageError","onAppear","onTileClick","TimeAgo","allVersionsList","queryVersion","currentVersionIdx","currentVersionNumber","versionNumber","routeToVersion","versionText","getAvatarUrl","_version$author","defaultAvatarUrl","getAuthorName","Design","DesignVersionDropdown","DesignDropzone","VueDraggable","isSaving","uploadError","uploadErrorVariant","designLoadingError","isArchiving","reorderedDesigns","isReorderingInProgress","dragStartPosition","_this$designCollectio","_this$designCollectio2","hasDesignsAndVersions","hasSelectedDesigns","crudBodyClass","isDraggingDisabled","selectAllButtonText","dismissError","isDesignSelected","checkboxAriaLabel","openDesignUpload","onDesignUploadChange","changeSelectedDesigns","toggleDesignsSelection","designMoveVariables","previous","moveDesignMutation","afterReorderDesign","moveDesignOptimisticResponse","onDesignMove","onMouseDown","onPointerUp","designTiles","hoveredTile","tile","onDragEnd","dragOptions","archiveDesignText","allDesignsArchived","onDesignsReorder","onFileUploadChange","CiIcon","TooltipOnTruncate","itemContent","_this$itemContent","badgeVariant","stateBadgeLabel","stateBadgeVariant","detailedStatus","_this$itemContent2","headPipeline","_this$itemContent3","branchName","_this$itemContent4","sourceBranch","mrReference","_this$itemContent5","isMRClosed","isMRMerged","isMergedOrClosed","mrMoreActions","branchComparePath","comparePath","branchMoreActions","WorkItemDevelopmentMrItem","WorkItemDevelopmentFfItem","workItemDevWidget","sortedFeatureFlags","mergedMergeRequests","openMergeRequests","closedMergeRequests","relatedBranches","mergeRequests","_map","closingMergeRequests","relatedMergeRequests","_this$workItemDevWidg","_this$workItemDevWidg2","_this$workItemDevWidg3","featureFlags","_this$workItemDevWidg4","flagsSortedByRelationshipDate","itemComponent","isMergeRequest","isFeatureFlag","isBranch","WorkItemDevelopmentBranchItem","ProjectFormGroup","sourceLabel","branchLabel","createBranch","cancelLabel","createMergeRequest","branchNameExists","sourceNotAvailable","branchNameAvailable","sourceIsAvailable","branchNameIsRequired","sourceNameIsRequired","checkingSourceValidity","checkingBranchValidity","createMRModalId","mergeRequestHelpPagePath","showBranchFlow","showMergeRequestFlow","isConfidentialWorkItem","canCreateBranch","sourceName","invalidSource","invalidBranch","invalidForm","sourceDescription","branchDescription","creatingBranch","getProjectRootRef","rootRef","createButtonText","sourceFeedback","_this$sourceName","branchFeedback","branchErrors","findInvalidBranchNameCharacters","humanizeBranchValidationErrors","modalTitle","isSaveButtonDisabled","canCreateConfidentialMergeRequest","saveButtonAction","confidentialMergeRequestState","cancelButtonAction","newForkPath","createPath","createBranchMRApiPathHelper","can_create_branch","suggested_branch_name","pathWithNamespace","targetBranch","confidential_issue_project_id","_this$workItemType","createMR","createEntity","fetchRefs","refValue","WORK_ITEM_CREATE_ENTITY_MODAL_TARGET_SOURCE","WORK_ITEM_CREATE_ENTITY_MODAL_TARGET_BRANCH","refCancelToken","CancelToken","refsPath","getRefs","cancelToken","branches","Branches","tags","Tags","thrown","isCancel","checkValidity","hideModal","development","mergeRequestLabel","addTooltipLabel","openStateWithOneMergeRequestText","openStateText","closedStateText","WorkItemDevelopmentRelationshipList","WorkItemCreateBranchMergeRequestModal","workItemDevelopment","showCreateBranchAndMrModal","isLoadingPermissionsQuery","showCreateOptions","willAutoCloseByMergeRequest","_this$workItemDevelop","_this$workItemDevelop2","_this$workItemDevelop3","_this$workItemDevelop4","_this$workItemDevelop5","shouldShowDevWidget","isRelatedDevelopmentListEmpty","showAutoCloseInformation","workItemsAlphaEnabled","showAddButton","workItemDevelopmentQuery","WIDGET_TYPE_DEVELOPMENT","workItemDevelopmentUpdatedSubscription","toggleCreateModal","showOrhide","updatePermissions","DEVELOPMENT_ITEMS_ANCHOR","checkingBranchAvailibility","mergeRequestGroup","branchGroup","createMergeRequestButtonText","defaultWorkspacePermissions","createDesign","DesignWidget","DesignUploadButton","WorkItemCreatedUpdated","WorkItemAwardEmoji","WorkItemAttributesWrapper","WorkItemTree","WorkItemNotes","WorkItemRelationships","WorkItemStickyHeader","WorkItemAncestors","WorkItemAbuseModal","WorkItemDevelopment","WorkItemCreateBranchMergeRequestSplitButton","modalWorkItemFullPath","modalWorkItemIid","modalWorkItemNamespaceFullPath","isReportModalOpen","reportedUrl","editMode","filesToBeSaved","designUploadError","designUploadErrorVariant","workspacePermissions","activeChildItem","isEmptyStateVisible","isDesignUploadButtonInViewport","isAddingNotes","workItemByIdQuery","setEmptyState","WORK_ITEM_REFERENCE_CHAR","workItemUpdatedSubscription","getAllowedWorkItemChildTypes","workspacePermissionsQuery","workItemLoading","_data$workspace$userP","workItemProjectId","adminParentLink","_this$workItem$userPe3","_this$workItem$userPe4","setWorkItemMetadata","_this$workItem$userPe5","adminWorkItemLink","canAssignUnassignUser","shouldShowAncestors","namespaceLevelWorkItems","_this$parentWorkItem2","_this$parentWorkItem3","_this$workItem$workIt3","hasDescriptionWidget","hasDesignWidget","showUploadDesign","WIDGET_TYPE_NOTIFICATIONS","workItemCurrentUserTodos","WIDGET_TYPE_CURRENT_USER_TODOS","_this$workItemCurrent","workItemAwardEmoji","WIDGET_TYPE_NOTES","workItemBodyClass","showIntersectionObserver","workItemLinkedItems","showWorkItemTree","titleClassHeader","titleClassComponent","shouldShowEditButton","modalCloseButtonClass","workItemPresent","_this$modalIsGroup","activeChildItemType","_this$activeChildItem","_this$activeChildItem2","workItemIsOpen","showCreateBranchMergeRequestSplitButton","handleWorkItemCreated","enableEditMode","toggleConfidentiality","confidentialStatus","openContextualView","openReportAbuseModal","toggleReportAbuseModal","hideStickyHeader","showStickyHeader","isValidDesignUpload","onUploadDesign","mutationPayload","designUploadOptimisticResponse","hasUpload","uploadDesignMutation","afterUploadDesign","onUploadDesignDone","onUploadDesignError","resetFilesToBeSaved","_res$data","skippedDesigns","skippedWarningMessage","updateWorkItemCurrentTodosWidgetCache","updateWorkItemCurrentTodosWidget","evict","workItemTypeChanged","onDragEnter","onDragOver","onDragLeave","_this$$refs$emptyStat","emptyStateDesignDropzone","relatedTarget","onDragLeaveMain","workItemDetail","onDrop","noAccessSvg","fetchErrorTitle","addDesignEmptyState","deleteChildItem","tbodyTransitionHandlers","tbodyTransitionProps","BTbody","isTbody","tbodyProps","tbodyAttrs","isTransitionGroup","detailsTdClass","tbodyTrAttr","tbodyTrClass","tbodyRowMixin","tdValue","thValue","getFieldFormatter","hasDetailsSlot","tbodyRowEventStopped","emitTbodyRowEvent","rowIndex","isRowHeader","formatted","getFormattedValue","cellTag","cellVariant","getTdValues","tdClass","tdAttr","unformatted","toggleDetails","toggleDetailsFactory","detailsShowing","supportsSelectableRows","rowSelected","selectRow","unselectRow","slotName","$_bodyFieldSlotNameCache","$childNodes","striped","hasSelectableRowClick","rowShowDetails","hasRowClickHandler","$rows","detailsId","$tds","renderTbodyRowCell","ariaRowIndex","primaryKeyValue","rowKey","rowId","selectableClasses","selectableRowClasses","selectableAttrs","selectableRowAttrs","userTrClasses","userTrAttrs","mouseenter","rowHovered","mouseleave","rowUnhovered","detailsScope","$details","userDetailsTrClasses","userDetailsTrAttrs","getCellSlotName","tbodyClass","tbodyMixin","tbody","trs","tr","getTbodyTrs","getTbodyTrIndex","tabIndex","onTBodyRowClicked","renderBusy","renderTopRow","renderEmpty","renderBottomRow","$busy","defaultSlotName","lowercaseSlotName","renderTbodyRow","auxclick","onTbodyRowMiddleMouseRowClicked","contextmenu","onTbodyRowContextmenu","dblclick","onTbodyRowDblClicked","onTbodyRowKeydown","$props","getPrototypeOf","nn","rn","freeze","isFrozen","tn","en","Proxy","revocable","revoke","Reflect","for","getOwnPropertyNames","deleteProperty","setPrototypeOf","an","produceWithPatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","isDiffDiscussion","normalizeChildren","noMatchingResults","editButtonLabel","applyButtonLabel","resetButtonText","dropdownLabel","dropdownName","itemValue","resetButtonLabel","headerText","toggleDropdownText","showFooter","infiniteScroll","infiniteScrollLoading","clearSearchOnItemSelect","searchable","createdLabelId","isDirty","resetButton","clearSearch","listbox","searchBox","clearInput","unassignValue","GlClearIconButton","inputListeners","nameId","GROUP_TOP_BORDER_CLASSES","HEADER_ITEMS_BORDER_CLASSES","GlBaseDropdown","GlListboxItem","GlListboxGroup","GlListboxSearchInput","noCaret","isCheckCentered","toggleAriaLabelledBy","listAriaLabelledBy","searching","totalItems","noResultsText","searchPlaceholder","showSelectAllButtonLabel","dropdownOffset","fluidWidth","positioningStrategy","startOpened","srOnlyResultsLabel","selectedValues","toggleId","listboxId","nextFocusedItemIndex","searchStr","topBoundaryVisible","bottomBoundaryVisible","hasItems","listboxTag","_this$flattenedOption","showNoResultsText","showSelectAllButton","toggleClasses","hasSelection","newSelected","observeScroll","_this$scrollObserver","scrollObserver","baseDropdown","groupClasses","_this$selectedIndices","focusSearchInput","focusItem","selectedIndices","getFocusableListItemElements","code","isSearchInput","focusNextItem","_this$$refs$list","nextIndex","_elements$index","onMultiSelect","onSingleSelect","closeAndFocus","_this$scrollObserver2","observer","_entry$target","$__visibilityProp","isIntersecting","topBoundary","bottomBoundary","listboxToggleText","toggleButtonClasses","onShow","onHide","headerId","onResetButtonClicked","onSelectAllButtonClicked","listboxClasses","itemTag","hasHeader","isFocused","listboxItemMoreItemsAriaAttributes","onIntersectionObserverAppear","hasFooter","closedTabTitle","openTabTitle","svgPath","epicEmptyStateSvg","issuesEmptyStateSvg","seenIndex","baseIsMap","nodeIsMap","WEIGHT_TOKEN_SUGGESTIONS_SIZE","DEFAULT_ITERATIONS","OPTIONS_NONE_ANY","OPTION_CURRENT","DEFAULT_CADENCES","OPTION_ANY","DEFAULT_HEALTH_STATUSES","HEALTH_SUGGESTIONS","getNotesWidgetFromSourceData","_draftData$workspace","updateNotesWidgetDataInDraftData","noteWidgetIndex","currentNotes","_subscriptionData$dat","workItemNoteCreated","newNote","_subscriptionData$dat2","workItemNoteDeleted","deletedNote","lastDiscussionNote","discussionIndex","deletedThreadDiscussion","deletedThreadIndex","updateNoteAwardEmojiCache","atIndex","findHierarchyWidgetChildren","addHierarchyChildren","newChildren","existingChildren","childrenToAdd","removeHierarchyChild","_draftState$workspace","workItemTypeIconName","_draftData$workspace2","_draftData$workspace3","_draftData$workspace4","_gon3","_gon4","_gon5","_gon6","workItemAttributesWrapperOrder","workItemTitleCase","convertEachWordToTitleCase","availableWidgets","baseURL","getBaseURL","assigneesWidgetData","labelsWidgetData","weightWidgetData","editable","textColor","issuesListApolloProvider","cacheProvider","getStorageDraftString","draftDataWidgetTypes","freshWidgetTypes","draftWidgetsAreSameAsCacheDigits","isValidDraftData","optimisticUserPermissions","updatedParent","currentGroupName","selectedGroupFullPath","namespaceGroupsForLinksWidgetQuery","groupSearch","filteredGroups","searchMatchesGroup","descendantGroups","groupsLoading","selectedGroup","groupFullPath","WorkItemGroupsListbox","issuableGid","parentConfidential","parentIteration","parentMilestone","WORK_ITEM_TYPE_ENUM_TASK","isInputValid","childToCreateTitle","submitInProgress","workItemChildIsEpic","childrenTypeValue","workItemInput","_this$search","childWorkItemType","parentMilestoneId","associateIteration","parentIterationId","isCreateForm","_WORK_ITEMS_TYPE_MAP$2","addOrCreateButtonLabel","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","canSubmitForm","invalidWorkItemsToAdd","areWorkItemsToAddWithinLimit","invalidWorkItemsList","getConfidentialityTooltipTarget","_this$$refs$confident","confidentialityCheckbox","markFormSubmitInProgress","updateWorkItemHierarchyMutation","NO_CACHE","_data$workItemCreate","createChildErrorMessage","titleInputLabel","projectInputLabel","groupInputLabel","titleInputPlaceholder","projectInputPlaceholder","groupInputPlaceholder","titleInputValidationMessage","groupValidationMessage","projectValidationMessage","svgHeight","primaryButtonLink","secondaryButtonLink","compact","invertInDarkMode","contentClass","shouldPreventImageReflow","contentClasses","coreChars","countDir","getCharCodes","getExtension","opt_char_re","truncatedUpperCase","_arg","core","depth","ext","baseInverter","toIteratee","InviteMembersTrigger","SidebarParticipant","UncollapsedAssigneeList","localAssigneeIds","assigneeIdsToShowAtTopOfTheListbox","users","currentUser","localUsers","usersSearchQuery","_data$groupWorkspace","groupWorkspace","_data$groupWorkspace2","currentUserQuery","searchUsers","alphabetizedUsers","sortNameAlphabetically","_this$currentUser","allUsers","selectedUsers","unselectedUsers","isLoadingUsers","selectedAssigneeIds","localAssignees","usersLength","filteredAssignees","handleAssigneesInput","setLocalAssigneeIdsOnEvent","setAssignees","handleAssigneeClick","throwUpdateError","singleSelectAssignee","assignToCurrentUser","onDropdownHide","buttonCategory","buttonClass","buttonSize","titleLabel","requiredFieldFeedback","getObserver","$_gl_intersectionHandler","$_gl_intersectionObserver","SUPPORT_BOT_USERNAME","issuableInitialDataById","_el$dataset","initial","isLegacyIssueType","issuableData","issueType","authorUsername","isIssuableServiceDeskIssue","sha","JIRA_IMPORT_SUCCESS_ALERT_HIDE_MAP_KEY","debounceWait","previousImportsMessage","tableConfig","userMappingMessage","userMappingsPageSize","buttonTitle","repeat","STATES","showMoreText","showLessText","mobileLines","toggleButtonProps","isTruncated","isExtended","truncationClasses","ariaExpanded","toggleTruncation","truncationToggleText","GlTruncateText","selectedCount","createFlow","selectedItems","searchItems","selectedItemIds","groupByOrganization","contact","firstName","lastName","selectedOrganizations","dropdownLabelText","getGroupContactsQuery","_data$group","I18N_WORK_ITEM_ERROR_FETCHING_CRM_CONTACTS","unsortedContacts","separateSelectedContacts","remainingContacts","groups","orphanContacts","organization","organizationGroups","_groupBy","newSelectedItemIds","newSelectedItems","_xor","removeIds","_difference","addIds","crmContacts","rateText","rate","updateCount","truncateTextToggleButtonProps","updateItems","organizationName","phone","defaultRate","toggleAriaLabel","isCollapsible","headerClass","titleClass","bodyClass","persistCollapsedState","isCollapsed","getLocalStorageKeyName","isContentVisible","pagination","ariaExpandedAttr","displayedCount","isFormUsedAndVisible","toggleCollapse","toggleForm","trackingMixin","disableTruncation","withoutHeadingAnchors","childDescription","childTitle","hasTaskListItemActions","truncated","checkboxes","_this$workItemDescrip","_this$workItemDescrip3","_this$workItemDescrip2","stripHeadingAnchors","isDescriptionEmpty","_this$descriptionHtml","_this$sortable","disableCheckboxes","convertTaskListItem","truncateOrScrollToAnchor","removeAllPointerEventListeners","initCheckboxes","renderSortableLists","renderTaskListItemActions","_this$descriptionHtml2","hashSelector","handleLocationHash","truncateLongDescription","_this$$el$querySelect","_this$$el","lists","createDragIconElement","addPointerEventListeners","onUpdate","sprite_icons","_this$$el$querySelect2","_this$$el2","taskListItems","createTaskListItemActions","TaskListItemActions","elementSelector","pointeroverListener","pointeroutListener","pointerEventListeners","concatenatedEvents","_this$pointerEventLis","newDescriptionText","_this$$refs$gfmConte","showAll","htmlString","descriptionTemplates","workItemDescriptionTemplatesListQuery","workItemDescriptionTemplates","hasTemplates","listboxItems","handleClear","_this$$refs$listbox","handleReset","_this$$refs$listbox2","templateDocsPath","GlFormTextarea","WorkItemDescriptionRendered","WorkItemDescriptionTemplateListbox","showButtonsBelowField","initialDescriptionText","conflictedDescription","selectedTemplate","descriptionTemplate","appliedTemplate","showTemplateApplyWarning","checkForConflicts","workItemDescriptionTemplateQuery","isUnchangedTemplate","hasContent","applyTemplate","hasConflicts","lastEditedByName","_this$workItemDescrip4","lastEditedByPath","_this$workItemDescrip5","workItemNamespaceId","saveButtonText","formGroupClass","showEditedAt","canShowDescriptionTemplateSelector","descriptionTemplateContent","_this$descriptionTemp","canResetTemplate","hasAppliedTemplate","hasEditedTemplate","_this$workItemDescrip6","_this$workItemDescrip7","_this$workItemDescrip8","_this$workItemDescrip9","_this$$refs$textarea","_this$workItemDescrip10","handleDescriptionTextUpdated","handleSelectTemplate","templateName","cancelApplyTemplate","handleClearTemplate","handleResetTemplate","getSymbols","isAscending","sortDirectionToolTip","dropdownClass","dropdownToggleClass","sortDirectionToggleClass","newDirection","onSortByChanged","sortDirectionText","localSortDirection","toggleSortDirection","_this$workItemTypeNam","handleCancelConfirmationAction","decision","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","ALL","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","formatLabelForListbox","showLabelForm","labelsCache","labelsToShowAtTopOfTheListbox","areLabelsSelected","itemValues","selectedLabelCount","dropDownLabelText","isLoadingLabels","searchLabels","_this$visibleLabels","unselectedLabels","localLabels","_this$labelsWidget","_this$labelsWidget2","createLabelText","manageLabelText","selectedIds","groupLabelsQuery","projectLabelsQuery","_data$workspace4","I18N_WORK_ITEM_ERROR_FETCHING_LABELS","removeLabel","updateLabels","updateLabel","handleLabelCreated","background","showStatusText","showTooltip","useLink","componentType","_this$status","_this$status2","detailsPath","details_path","borderless","focusin","onFocusin","focusout","onFocusout","_this$$refs$input","_this$$refs$clearButt","clearButton","isInputOrClearButton","inputAttributes","showClearButton","ShortcutsWorkItem","shortcuts","refInMemoryButton","refClipboardInstance","ClipboardJS","addAll","ISSUE_MR_CHANGE_ASSIGNEE","openSidebarDropdown","ISSUE_MR_CHANGE_MILESTONE","ISSUABLE_CHANGE_LABEL","ISSUABLE_EDIT_DESCRIPTION","ISSUABLE_COPY_REF","ISSUABLE_COMMENT_OR_REPLY","replyWithSelectedText","handleMarkdownFieldFocus","lastFocusedReplyField","shortcutSelector","editBtn","DEBOUNCE_DROPDOWN_DELAY","editButton","refSelector","refButton","copiedRef","clipboardText","gfmSelector","replyField","isElementVisible","documentFragment","getSelectedFragment","foundMessage","originalNodes","CopyAsGFM","transformGFMSelection","blockquoteEl","nodeToGFM","uuid","help","labelPosition","isVerticalLayout","shouldRenderDescription","shouldRenderHelp","isChecked","helpId","toggleFeature","selectedProjectValue","_this$selectedProject","_this$selectedProject2","Dropdown","fetchProjects","createBtn","warningText","namespaceFullPath","showWarning","normalizeProjectData","name_with_namespace","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","IMPORT_STATE","FAILED","FINISHED","NONE","SCHEDULED","STARTED","extractJiraProjectsOptions","calculateJiraImportLabelColor","_labels$find","mostRecentJiraProjectKey","jiraProjectKey","jiraProjectImportCount","calculateJiraImportLabelTitle","importStatus","finishedAlertHideMap","scoped","showCloseButton","splitScopedLabelIndex","textColorVariant","light","labelComponent","scopedKey","scopedValue","tooltipTarget","hasListenerMixin","$events","_events","TRANSITION_PROPS","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","TRANSITION_HANDLERS","afterEnter","leave","afterLeave","appear","BVCollapse","ROOT_EVENT_NAME_ACCORDION","accordion","BCollapse","transitioning","emitState","listenOnRoot","handleToggleEvent","handleAccordionEvent","emitSync","emitOnRoot","openedId","openAccordion","isThis","classObject","onEnter","onAfterEnter","onLeave","onAfterLeave","CLONE_DEEP_FLAG","staticBreadcrumbs","BreadcrumbsComponent","injectBreadcrumbEl","lastId","onVisible","support","afterPrerendering","_doc","webkitHidden","visibilityState","webkitVisibilityState","_change","_init","encodeReserveRE","encodeReserveReplacer","commaRE","encode","decodeURIComponent","castQueryParamValue","parseQuery","stringifyQuery","val2","trailingSlashRE","createRoute","record","redirectedFrom","meta","getFullPath","formatMatch","START","_stringifyQuery","isSameRoute","onlyPath","isObjectEqual","aKeys","bKeys","aVal","bVal","handleRouteEntered","cbs","enteredCbs","i$1","_isBeingDestroyed","routerView","_routerViewCache","_routerRoot","vnodeData","keepAlive","_directInactive","_inactive","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","registerRouteInstance","vm","hook","prepatch","componentInstance","propsToPass","resolveProps","resolvePath","relative","firstChar","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","tokensToFunction","tokensToFunction_1","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","escaped","prefix","modifier","asterisk","partial","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","flags","pretty","attachKeys","sensitive","strict","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","compile","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","params$1","rawPath","parsedPath","hashIndex","queryIndex","parsePath","basePath","extraQuery","_parseQuery","parsedQuery","resolveQuery","_Vue","Link","custom","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","defaultPrevented","inBrowser","createRouteMap","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","compileRouteRegex","redirect","childMatchAs","aliases","aliasRoute","createMatcher","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","aliasedMatch","aliasedRecord","addRoute","parentOrRoute","getRoutes","addRoutes","Time","performance","genStateKey","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","absolutePath","stateCopy","replaceState","handlePopState","handleScroll","isPop","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","saveScrollPosition","isValidPosition","normalizePosition","hashStartsWithNumberRE","docRect","getElementPosition","ua","supportsPushState","pushState","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","propertiesToLog","createNavigationCancelledError","_isRouter","isError","isNavigationFailure","errorType","runQueue","cb","resolveAsyncComponents","hasAsync","pending","flatMapComponents","cid","resolvedDef","__esModule","hasSymbol","comp","flatten","called","History","baseEl","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","extractGuards","records","guards","extractGuard","bindGuard","onReady","errorCb","transitionTo","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","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","destroyed","strats","optionMergeStrategies","START_LOCATION","milestoneDate","milestoneRemainingTime","milestoneLink","due","isInFuture","getTimeRemainingInWords","getEntriesByName","measure","baseIsRegExp","nodeIsRegExp","BTr","bvTableRowGroup","isRowDark","trClasses","trAttrs","baseProperty","getSymbolsIn","GlAnimatedChevronRightDownIcon","GlCollapseToggle","titleVisible","accordionItemId","headerComponent","ex","pick","transports","sources","wormhole","trackInstances","transport","passengers","_transport$order","newTransport","$_getTransportIndex","newTransports","registerTarget","unregisterTarget","$delete","registerSource","unregisterSource","hasTarget","hasSource","hasContentFor","_id","slim","slotProps","sendUpdate","closer","normalizeSlots","normalizeOwnChildren","slotContent","Tag","transition","firstRender","ownTransports","temp","newPassengers","combinePassengers","noWrapper","_id$1","portalProps","targetProps","MountingPortal","bail","mountTo","targetSlim","targetSlotProps","targetTag","portalTarget","mountEl","_props","propsData","$destroy","manual","Vue$$1","portalTargetName","MountingPortalName","Wormhole","dataView","buffer","byteOffset","byteLength","cardHeader","fill","justified","pills","tabs","BNav","notDisabled","tab","BVTabButton","getBvTabs","controls","noKeyNav","posInSet","setSize","link","localActive","titleItemClass","titleLinkClass","titleLinkAttributes","$link","bvTabs","activeNavItemClass","navProps","activeTabClass","navClass","navWrapperClass","noFade","noNavStyle","BTabs","currentTab","registeredTabs","$tab","activateTab","previousTab","nextTab","updateTabs","$_observer","setObserver","childList","subtree","attributeFilter","$tabs","getTabs","buttons","$btn","$button","getButtonForTab","tabEvent","vueTarget","componentId","emitTabClick","focusButton","firstTab","lastTab","$activeTab","$fallbackTab","$buttons","controlledBy","clickTab","$nav","$empty","validatorHelper","actionTertiary","syncActiveTabWithQueryParams","queryParamName","activeTabIndex","syncActiveTabFromQueryParams","buttonBinding","queryParamValue","getQueryParamValue","tabIndexToActivate","getTabQueryParamValue","bTabs","currentQueryParamValue","newQueryParamValue","searchParams","setQueryParamValueIfNecessary","secondary","tertiary","getStatusLabel","_STATUS_LABELS$status","STATUS_LABELS","todoLabel","hasTodo","BASE_DROPDOWN_CLASS","ariaHaspopup","ariaLabelledby","mainAxis","openedYet","baseDropdownId","_this$toggleText","hasNoVisibleToggleText","isIconOnly","toggleLabelledBy","isEllipsisButton","isCaretOnly","isDefaultToggle","buttonTextClasses","toggleButtonTextClasses","ariaAttributes","toggleOptions","_this$$refs$toggle","firstElementChild","middleware","allowedPlacements","_this$nonScrollableCo","availableHeight","contentsEl","contentsAvailableHeight","nonScrollableContentHeight","toggleElement","checkToggleFocusable","stopFloating","calculateNonScrollableAreaHeight","MutationObserver","stopAutoUpdate","floatingUIConfig","_this$observer","_this$stopAutoUpdate","prevented","startFloating","hadFocusWithin","hasToggled","focusToggle","toggleOnEnter","toggleOnSpace","_this$$refs$content","scrollableArea","floatingElementBoundingBox","scrollableAreaBoundingBox","toggleComponent","toggleAttributes","toggleListeners","panelClasses","canScroll","isScrolledToBottom","isScrolledToTop","scrollDown","$document","RESOURCE_TYPE_MERGE_REQUEST","RESOURCE_TYPE_MILESTONE","uncurryThis","stringSlice","createMethod","CONVERT_TO_STRING","second","codeAt","basenameMatch","computeMatch","mergeMatches","baseMatches","matchIndex","matchPos","matchPositions","output","strPos","tagClass","tagClose","tagOpen","ai","bj","out","backtrack","trace","MODEL_EVENT_NAME_ACTIVE","buttonId","noBody","BTab","_isTab","card","fade","registerTab","updateButton","unregisterTab","deactivateTab","tabClasses","computedLazy","computedNoFade","linkClass","caption","captionHtml","captionMixin","$caption","hasCaptionSlot","captionId","GlFormInputGroup","clearable","recentSearchesHeader","closeButtonTitle","clearRecentSearchesText","noRecentSearchesText","emitClearHistory","selectHistoryItem","getFocusableOptions","_this$$refs$resultsLi","resultsList","HOME_KEY","END_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","ESC_KEY","NUMPAD_ENTER_KEY","_clamp","computeCoordsFromPlacement","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","validMiddleware","getElementRects","statefulPlacement","middlewareData","resetCount","nextX","nextY","initialPlacement","detectOverflow","_await$platform$isEle","elementContext","altBoundary","paddingObject","clippingClientRect","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","shouldAddOffset","alignmentOffset","centerOffset","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","crossAxis","autoAlignment","detectOverflowOptions","placements$1","getPlacementList","currentPlacement","alignmentSides","currentOverflows","allOverflows","overflows","nextPlacement","placementsSortedByMostSpace","resetPlacement","flip","_middlewareData$arrow","_middlewareData$flip","checkMainAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","initialSideAxis","isBasePlacement","hasFallbackAxisSideDirection","overflowsData","_middlewareData$flip2","_overflowsData$filter","_overflowsData$filter2","currentSideAxis","getSideOffsets","isAnySideFullyClipped","referenceHiddenOffsets","referenceHidden","escapedOffsets","getBoundingRect","minX","minY","nativeClientRects","clientRects","sortedRects","prevRect","getRectsByLine","resetRects","firstRect","lastRect","isTop","isLeftSide","maxRight","minLeft","measureRects","_middlewareData$offse","diffCoords","mainAxisMulti","crossAxisMulti","rawValue","convertValueToCoords","limiter","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","limitShift","rawOffset","computedOffset","limitMin","limitMax","_middlewareData$offse2","isOriginSide","_state$middlewareData","_state$middlewareData2","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","comparer","showGlobalToast","bordered","captionTop","fixed","noBorderCollapse","outlined","responsive","tableClass","tableRendererMixin","isTableSimple","selectableTableClasses","stackedTableClasses","computedBusy","selectableTableAttrs","ariaAttrs","wrapperClasses","renderCaption","renderColgroup","renderTbody","renderTfoot","$table","tableClasses","tableAttrs","wrapperStyles","pad","autocomplete","displayField","inputLabel","textInput","customTrigger","triggerOnFocus","computedWidth","$parentEl","openedEvent","drawEvent","pikadayConfig","dateString","parsedDate","defaultDateFormatter","titleEl","monthEl","yearEl","addAccessibleLabels","pikaday","pikaButtons","today","pikaButton","pikaYear","pikaMonth","pikaDay","pikaButtonDate","compareTo","highlightPastDates","calendarTriggerBtn","resetDate","datepickerClasses","renderClearButton","formattedDate","inputAutocomplete","cleared","isTopLevel","childItemId","isExpandedHierarchyTreeChildQuery","_data$isExpandedHiera","_data$isExpandedHiera2","isExpandedHierarchyTreeChild","shouldExpandChildren","nrOpenChildren","isItemOpen","chevronType","chevronTooltip","childItemClass","_this$allowedChildren","draggedItemTypeIsAllowed","showChildrenDropzone","displayableChildren","toggleItem","toggleHierarchyTreeChildMutation","WorkItemLinkChild","prefetchedWorkItem","currentClientX","currentClientY","childrenWorkItems","toParent","treeRootWrapper","Draggable","treeRootOptions","disableList","apolloClient","handleDocumentKeyup","undoChildRemoval","addWorkItemQuery","addSmartQuery","prefetchWorkItem","prefetch","clearPrefetching","getReorderParams","relativePosition","adjacentWorkItemId","toParentId","_this$childrenWorkIte","fetchChildren","handleDragOnStart","toggleTimer","fromParentId","toParentTitle","parentTitle","targetItem","hierarchyWidgetParams","updatedChildren","toParentHasChildren","getMoveItemParams","currentPageSize","moveWorkItem","openChild","workItemsHierarchyReorder","relatedContext","handleDragOnEnd","modules","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","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","searchValue","replaceValue","rx","functionalReplace","fullUnicode","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","symbols","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","componentData","transitionMode","noneFunctionalComponentMode","componentOptions","vuedraggable_isTransition","_computeChildrenAndOf","headerOffset","footerOffset","header","computeChildrenAndOffsets","propName","buildAttribute","componentDataAttrs","getComponentAttributes","getIsFunctional","optionsAdded","elt","onDragMove","_sortable","rootContainer","computeIndexes","newOptionValue","updateOptions","fnOptions","_vnode","getChildrenNodes","rawNodes","visibleIndexes","isTransition","elmFromNodes","elm","footerIndex","rawIndexes","ind","_computeIndexes","getUnderlyingVm","htmlElt","computeVmIndex","getUnderlyingPotencialDraggableComponent","vue","__vue__","_componentTag","emitChanges","alterList","onList","newList","spliceList","_arguments","updatePosition","getRelatedContextFromMoveEvent","destination","getVmIndex","domIndex","indexes","numberIndexes","getComponent","resetTransitionData","transitionContainer","kept","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","removed","onDragUpdate","updateProperty","propertyName","computeFutureIndex","domChildren","currentDOMIndex","draggedContext","futureIndex","vuedraggable","DESCRIPTORS","lengthOfArrayLike","defineBuiltInAccessor","assigneesDisplayLimit","_findWidget2","fullReference","directNamespaceReference","WorkItemRelationshipPopoverMetadata","workItemStartDate","_findWidget3","workItemDueDate","_findWidget4","_this$workItemIterati2","iterationInfo","workItemWebUrl","defaultDisplayLimit","atLinkedItemsDisplayLimit","displayedIssuablesCount","moreItemsText","linkedItemsToDisplay","moreItemsLink","WorkItemRelationshipPopover","childItemLinkedItems","skipQuery","itemsBlockedBy","itemsBlocks","itemsBlockedByIconId","itemsBlocksIconId","blocksLabel","childBlockedByItems","childBlocksItems","handleMouseEnter","DurationParseError","FLOAT_MATCHER","DURATION_UNITS_LIST","MAPPINGS","seconds","secs","sec","minutes","minute","mins","hours","hour","hrs","hr","weeks","week","wk","mo","mos","years","yrs","yr","JOIN_WORDS","calculateFromWords","words","convertToNumber","daysPerWeek","trunc","durationUnitsSecondsMultiplier","defaultUnit","chronoUnitsList","filterByType","word","strippedWord","raiseExceptions","filterThroughWhiteList","parseChronicDuration","keepZero","decimalPlaces","limitToHours","dividers","joiner","pluralize","processed","padStart","humanized","humanizeTimeUnit","BTableLite","stickyHeaderClass","localTableClass","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","$target","linkProps","appendToast","headerTag","isStatus","noAutoHide","noHoverPause","solid","static","toastClass","toaster","BToast","isMounted","localShow","isTransitioning","isHiding","dismissStarted","resumeDismiss","onBeforeEnter","beforeLeave","onBeforeLeave","ensureToaster","$_dismissTimer","computedToaster","clearDismissTimer","showEvent","buildEvent","hideEvent","setHoverHandler","bvEvent","bvEventRoot","$mount","computedDuration","onPause","onUnPause","passed","startDismissTimer","hiddenEvent","$headerContent","$title","$header","$body","onLinkClick","computedAttrs","toastClasses","scopedStyleAttrs","transitionHandlers","makeToast","BASE_PROPS","propsToSlots","toastContent","filterOptions","BVToastPlugin","BVToastPop","handleDestroy","BvToast","_root","ToastPlugin","DEFAULT_OPTIONS","toastsCount","showToast","$bvToast","toastHiddenCallback","$root","updatedAutoHideDelay","pluckCandidates","sortCandidates","bKey","maxInners","maxResults","scoreProvider","scoredCandidates","spotLeft","toggleSelection","checkedClasses"],"mappings":"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","file":"pages.projects.work_items.c5c6df6e.chunk.js","sourcesContent":["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 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 * Pikaday\n *\n * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/Pikaday/Pikaday\n */\n\n(function (root, factory)\n{\n    'use strict';\n\n    var moment;\n    if (typeof exports === 'object') {\n        // CommonJS module\n        // Load moment.js as an optional dependency\n        try { moment = require('moment'); } catch (e) {}\n        module.exports = factory(moment);\n    } else if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(function (req)\n        {\n            // Load moment.js as an optional dependency\n            var id = 'moment';\n            try { moment = req(id); } catch (e) {}\n            return factory(moment);\n        });\n    } else {\n        root.Pikaday = factory(root.moment);\n    }\n}(this, function (moment)\n{\n    'use strict';\n\n    /**\n     * feature detection and helper functions\n     */\n    var hasMoment = typeof moment === 'function',\n\n    hasEventListeners = !!window.addEventListener,\n\n    document = window.document,\n\n    sto = window.setTimeout,\n\n    addEvent = function(el, e, callback, capture)\n    {\n        if (hasEventListeners) {\n            el.addEventListener(e, callback, !!capture);\n        } else {\n            el.attachEvent('on' + e, callback);\n        }\n    },\n\n    removeEvent = function(el, e, callback, capture)\n    {\n        if (hasEventListeners) {\n            el.removeEventListener(e, callback, !!capture);\n        } else {\n            el.detachEvent('on' + e, callback);\n        }\n    },\n\n    trim = function(str)\n    {\n        return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g,'');\n    },\n\n    hasClass = function(el, cn)\n    {\n        return (' ' + el.className + ' ').indexOf(' ' + cn + ' ') !== -1;\n    },\n\n    addClass = function(el, cn)\n    {\n        if (!hasClass(el, cn)) {\n            el.className = (el.className === '') ? cn : el.className + ' ' + cn;\n        }\n    },\n\n    removeClass = function(el, cn)\n    {\n        el.className = trim((' ' + el.className + ' ').replace(' ' + cn + ' ', ' '));\n    },\n\n    isArray = function(obj)\n    {\n        return (/Array/).test(Object.prototype.toString.call(obj));\n    },\n\n    isDate = function(obj)\n    {\n        return (/Date/).test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime());\n    },\n\n    isWeekend = function(date)\n    {\n        var day = date.getDay();\n        return day === 0 || day === 6;\n    },\n\n    isLeapYear = function(year)\n    {\n        // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951\n        return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n    },\n\n    getDaysInMonth = function(year, month)\n    {\n        return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n    },\n\n    setToStartOfDay = function(date)\n    {\n        if (isDate(date)) date.setHours(0,0,0,0);\n    },\n\n    compareDates = function(a,b)\n    {\n        // weak date comparison (use setToStartOfDay(date) to ensure correct result)\n        return a.getTime() === b.getTime();\n    },\n\n    extend = function(to, from, overwrite)\n    {\n        var prop, hasProp;\n        for (prop in from) {\n            hasProp = to[prop] !== undefined;\n            if (hasProp && typeof from[prop] === 'object' && from[prop] !== null && from[prop].nodeName === undefined) {\n                if (isDate(from[prop])) {\n                    if (overwrite) {\n                        to[prop] = new Date(from[prop].getTime());\n                    }\n                }\n                else if (isArray(from[prop])) {\n                    if (overwrite) {\n                        to[prop] = from[prop].slice(0);\n                    }\n                } else {\n                    to[prop] = extend({}, from[prop], overwrite);\n                }\n            } else if (overwrite || !hasProp) {\n                to[prop] = from[prop];\n            }\n        }\n        return to;\n    },\n\n    fireEvent = function(el, eventName, data)\n    {\n        var ev;\n\n        if (document.createEvent) {\n            ev = document.createEvent('HTMLEvents');\n            ev.initEvent(eventName, true, false);\n            ev = extend(ev, data);\n            el.dispatchEvent(ev);\n        } else if (document.createEventObject) {\n            ev = document.createEventObject();\n            ev = extend(ev, data);\n            el.fireEvent('on' + eventName, ev);\n        }\n    },\n\n    adjustCalendar = function(calendar) {\n        if (calendar.month < 0) {\n            calendar.year -= Math.ceil(Math.abs(calendar.month)/12);\n            calendar.month += 12;\n        }\n        if (calendar.month > 11) {\n            calendar.year += Math.floor(Math.abs(calendar.month)/12);\n            calendar.month -= 12;\n        }\n        return calendar;\n    },\n\n    /**\n     * defaults and localisation\n     */\n    defaults = {\n\n        // bind the picker to a form field\n        field: null,\n\n        // automatically show/hide the picker on `field` focus (default `true` if `field` is set)\n        bound: undefined,\n\n        // data-attribute on the input field with an aria assistance tekst (only applied when `bound` is set)\n        ariaLabel: 'Use the arrow keys to pick a date',\n\n        // position of the datepicker, relative to the field (default to bottom & left)\n        // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position)\n        position: 'bottom left',\n\n        // automatically fit in the viewport even if it means repositioning from the position option\n        reposition: true,\n\n        // the default output format for `.toString()` and `field` value\n        format: 'YYYY-MM-DD',\n\n        // the toString function which gets passed a current date object and format\n        // and returns a string\n        toString: null,\n\n        // used to create date object from current input string\n        parse: null,\n\n        // the initial date to view when first opened\n        defaultDate: null,\n\n        // make the `defaultDate` the initial selected value\n        setDefaultDate: false,\n\n        // first day of week (0: Sunday, 1: Monday etc)\n        firstDay: 0,\n\n        // the default flag for moment's strict date parsing\n        formatStrict: false,\n\n        // the minimum/earliest date that can be selected\n        minDate: null,\n        // the maximum/latest date that can be selected\n        maxDate: null,\n\n        // number of years either side, or array of upper/lower range\n        yearRange: 10,\n\n        // show week numbers at head of row\n        showWeekNumber: false,\n\n        // Week picker mode\n        pickWholeWeek: false,\n\n        // used internally (don't config outside)\n        minYear: 0,\n        maxYear: 9999,\n        minMonth: undefined,\n        maxMonth: undefined,\n\n        startRange: null,\n        endRange: null,\n\n        isRTL: false,\n\n        // Additional text to append to the year in the calendar title\n        yearSuffix: '',\n\n        // Render the month after year in the calendar title\n        showMonthAfterYear: false,\n\n        // Render days of the calendar grid that fall in the next or previous month\n        showDaysInNextAndPreviousMonths: false,\n\n        // Allows user to select days that fall in the next or previous month\n        enableSelectionDaysInNextAndPreviousMonths: false,\n\n        // how many months are visible\n        numberOfMonths: 1,\n\n        // when numberOfMonths is used, this will help you to choose where the main calendar will be (default `left`, can be set to `right`)\n        // only used for the first display or when a selected date is not visible\n        mainCalendar: 'left',\n\n        // Specify a DOM element to render the calendar in\n        container: undefined,\n\n        // Blur field when date is selected\n        blurFieldOnSelect : true,\n\n        // internationalization\n        i18n: {\n            previousMonth : 'Previous Month',\n            nextMonth     : 'Next Month',\n            months        : ['January','February','March','April','May','June','July','August','September','October','November','December'],\n            weekdays      : ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],\n            weekdaysShort : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']\n        },\n\n        // Theme Classname\n        theme: null,\n\n        // events array\n        events: [],\n\n        // callback function\n        onSelect: null,\n        onOpen: null,\n        onClose: null,\n        onDraw: null,\n\n        // Enable keyboard input\n        keyboardInput: true\n    },\n\n\n    /**\n     * templating functions to abstract HTML rendering\n     */\n    renderDayName = function(opts, day, abbr)\n    {\n        day += opts.firstDay;\n        while (day >= 7) {\n            day -= 7;\n        }\n        return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day];\n    },\n\n    renderDay = function(opts)\n    {\n        var arr = [];\n        var ariaSelected = 'false';\n        if (opts.isEmpty) {\n            if (opts.showDaysInNextAndPreviousMonths) {\n                arr.push('is-outside-current-month');\n\n                if(!opts.enableSelectionDaysInNextAndPreviousMonths) {\n                    arr.push('is-selection-disabled');\n                }\n\n            } else {\n                return '<td class=\"is-empty\"></td>';\n            }\n        }\n        if (opts.isDisabled) {\n            arr.push('is-disabled');\n        }\n        if (opts.isToday) {\n            arr.push('is-today');\n        }\n        if (opts.isSelected) {\n            arr.push('is-selected');\n            ariaSelected = 'true';\n        }\n        if (opts.hasEvent) {\n            arr.push('has-event');\n        }\n        if (opts.isInRange) {\n            arr.push('is-inrange');\n        }\n        if (opts.isStartRange) {\n            arr.push('is-startrange');\n        }\n        if (opts.isEndRange) {\n            arr.push('is-endrange');\n        }\n        return '<td data-day=\"' + opts.day + '\" class=\"' + arr.join(' ') + '\" aria-selected=\"' + ariaSelected + '\">' +\n                 '<button class=\"pika-button pika-day\" type=\"button\" ' +\n                    'data-pika-year=\"' + opts.year + '\" data-pika-month=\"' + opts.month + '\" data-pika-day=\"' + opts.day + '\">' +\n                        opts.day +\n                 '</button>' +\n               '</td>';\n    },\n\n    renderWeek = function (d, m, y) {\n        // Lifted from http://javascript.about.com/library/blweekyear.htm, lightly modified.\n        var onejan = new Date(y, 0, 1),\n            weekNum = Math.ceil((((new Date(y, m, d) - onejan) / 86400000) + onejan.getDay()+1)/7);\n        return '<td class=\"pika-week\">' + weekNum + '</td>';\n    },\n\n    renderRow = function(days, isRTL, pickWholeWeek, isRowSelected)\n    {\n        return '<tr class=\"pika-row' + (pickWholeWeek ? ' pick-whole-week' : '') + (isRowSelected ? ' is-selected' : '') + '\">' + (isRTL ? days.reverse() : days).join('') + '</tr>';\n    },\n\n    renderBody = function(rows)\n    {\n        return '<tbody>' + rows.join('') + '</tbody>';\n    },\n\n    renderHead = function(opts)\n    {\n        var i, arr = [];\n        if (opts.showWeekNumber) {\n            arr.push('<th></th>');\n        }\n        for (i = 0; i < 7; i++) {\n            arr.push('<th scope=\"col\"><abbr title=\"' + renderDayName(opts, i) + '\">' + renderDayName(opts, i, true) + '</abbr></th>');\n        }\n        return '<thead><tr>' + (opts.isRTL ? arr.reverse() : arr).join('') + '</tr></thead>';\n    },\n\n    renderTitle = function(instance, c, year, month, refYear, randId)\n    {\n        var i, j, arr,\n            opts = instance._o,\n            isMinYear = year === opts.minYear,\n            isMaxYear = year === opts.maxYear,\n            html = '<div id=\"' + randId + '\" class=\"pika-title\" role=\"heading\" aria-live=\"assertive\">',\n            monthHtml,\n            yearHtml,\n            prev = true,\n            next = true;\n\n        for (arr = [], i = 0; i < 12; i++) {\n            arr.push('<option value=\"' + (year === refYear ? i - c : 12 + i - c) + '\"' +\n                (i === month ? ' selected=\"selected\"': '') +\n                ((isMinYear && i < opts.minMonth) || (isMaxYear && i > opts.maxMonth) ? 'disabled=\"disabled\"' : '') + '>' +\n                opts.i18n.months[i] + '</option>');\n        }\n\n        monthHtml = '<div class=\"pika-label\">' + opts.i18n.months[month] + '<select class=\"pika-select pika-select-month\" tabindex=\"-1\">' + arr.join('') + '</select></div>';\n\n        if (isArray(opts.yearRange)) {\n            i = opts.yearRange[0];\n            j = opts.yearRange[1] + 1;\n        } else {\n            i = year - opts.yearRange;\n            j = 1 + year + opts.yearRange;\n        }\n\n        for (arr = []; i < j && i <= opts.maxYear; i++) {\n            if (i >= opts.minYear) {\n                arr.push('<option value=\"' + i + '\"' + (i === year ? ' selected=\"selected\"': '') + '>' + (i) + '</option>');\n            }\n        }\n        yearHtml = '<div class=\"pika-label\">' + year + opts.yearSuffix + '<select class=\"pika-select pika-select-year\" tabindex=\"-1\">' + arr.join('') + '</select></div>';\n\n        if (opts.showMonthAfterYear) {\n            html += yearHtml + monthHtml;\n        } else {\n            html += monthHtml + yearHtml;\n        }\n\n        if (isMinYear && (month === 0 || opts.minMonth >= month)) {\n            prev = false;\n        }\n\n        if (isMaxYear && (month === 11 || opts.maxMonth <= month)) {\n            next = false;\n        }\n\n        if (c === 0) {\n            html += '<button class=\"pika-prev' + (prev ? '' : ' is-disabled') + '\" type=\"button\">' + opts.i18n.previousMonth + '</button>';\n        }\n        if (c === (instance._o.numberOfMonths - 1) ) {\n            html += '<button class=\"pika-next' + (next ? '' : ' is-disabled') + '\" type=\"button\">' + opts.i18n.nextMonth + '</button>';\n        }\n\n        return html += '</div>';\n    },\n\n    renderTable = function(opts, data, randId)\n    {\n        return '<table cellpadding=\"0\" cellspacing=\"0\" class=\"pika-table\" role=\"grid\" aria-labelledby=\"' + randId + '\">' + renderHead(opts) + renderBody(data) + '</table>';\n    },\n\n\n    /**\n     * Pikaday constructor\n     */\n    Pikaday = function(options)\n    {\n        var self = this,\n            opts = self.config(options);\n\n        self._onMouseDown = function(e)\n        {\n            if (!self._v) {\n                return;\n            }\n            e = e || window.event;\n            var target = e.target || e.srcElement;\n            if (!target) {\n                return;\n            }\n\n            if (!hasClass(target, 'is-disabled')) {\n                if (hasClass(target, 'pika-button') && !hasClass(target, 'is-empty') && !hasClass(target.parentNode, 'is-disabled')) {\n                    self.setDate(new Date(target.getAttribute('data-pika-year'), target.getAttribute('data-pika-month'), target.getAttribute('data-pika-day')));\n                    if (opts.bound) {\n                        sto(function() {\n                            self.hide();\n                            if (opts.blurFieldOnSelect && opts.field) {\n                                opts.field.blur();\n                            }\n                        }, 100);\n                    }\n                }\n                else if (hasClass(target, 'pika-prev')) {\n                    self.prevMonth();\n                }\n                else if (hasClass(target, 'pika-next')) {\n                    self.nextMonth();\n                }\n            }\n            if (!hasClass(target, 'pika-select')) {\n                // if this is touch event prevent mouse events emulation\n                if (e.preventDefault) {\n                    e.preventDefault();\n                } else {\n                    e.returnValue = false;\n                    return false;\n                }\n            } else {\n                self._c = true;\n            }\n        };\n\n        self._onChange = function(e)\n        {\n            e = e || window.event;\n            var target = e.target || e.srcElement;\n            if (!target) {\n                return;\n            }\n            if (hasClass(target, 'pika-select-month')) {\n                self.gotoMonth(target.value);\n            }\n            else if (hasClass(target, 'pika-select-year')) {\n                self.gotoYear(target.value);\n            }\n        };\n\n        self._onKeyChange = function(e)\n        {\n            e = e || window.event;\n\n            if (self.isVisible()) {\n\n                switch(e.keyCode){\n                    case 13:\n                    case 27:\n                        if (opts.field) {\n                            opts.field.blur();\n                        }\n                        break;\n                    case 37:\n                        e.preventDefault();\n                        self.adjustDate('subtract', 1);\n                        break;\n                    case 38:\n                        self.adjustDate('subtract', 7);\n                        break;\n                    case 39:\n                        self.adjustDate('add', 1);\n                        break;\n                    case 40:\n                        self.adjustDate('add', 7);\n                        break;\n                }\n            }\n        };\n\n        self._onInputChange = function(e)\n        {\n            var date;\n\n            if (e.firedBy === self) {\n                return;\n            }\n            if (opts.parse) {\n                date = opts.parse(opts.field.value, opts.format);\n            } else if (hasMoment) {\n                date = moment(opts.field.value, opts.format, opts.formatStrict);\n                date = (date && date.isValid()) ? date.toDate() : null;\n            }\n            else {\n                date = new Date(Date.parse(opts.field.value));\n            }\n            if (isDate(date)) {\n              self.setDate(date);\n            }\n            if (!self._v) {\n                self.show();\n            }\n        };\n\n        self._onInputFocus = function()\n        {\n            self.show();\n        };\n\n        self._onInputClick = function()\n        {\n            self.show();\n        };\n\n        self._onInputBlur = function()\n        {\n            // IE allows pika div to gain focus; catch blur the input field\n            var pEl = document.activeElement;\n            do {\n                if (hasClass(pEl, 'pika-single')) {\n                    return;\n                }\n            }\n            while ((pEl = pEl.parentNode));\n\n            if (!self._c) {\n                self._b = sto(function() {\n                    self.hide();\n                }, 50);\n            }\n            self._c = false;\n        };\n\n        self._onClick = function(e)\n        {\n            e = e || window.event;\n            var target = e.target || e.srcElement,\n                pEl = target;\n            if (!target) {\n                return;\n            }\n            if (!hasEventListeners && hasClass(target, 'pika-select')) {\n                if (!target.onchange) {\n                    target.setAttribute('onchange', 'return;');\n                    addEvent(target, 'change', self._onChange);\n                }\n            }\n            do {\n                if (hasClass(pEl, 'pika-single') || pEl === opts.trigger) {\n                    return;\n                }\n            }\n            while ((pEl = pEl.parentNode));\n            if (self._v && target !== opts.trigger && pEl !== opts.trigger) {\n                self.hide();\n            }\n        };\n\n        self.el = document.createElement('div');\n        self.el.className = 'pika-single' + (opts.isRTL ? ' is-rtl' : '') + (opts.theme ? ' ' + opts.theme : '');\n\n        addEvent(self.el, 'mousedown', self._onMouseDown, true);\n        addEvent(self.el, 'touchend', self._onMouseDown, true);\n        addEvent(self.el, 'change', self._onChange);\n\n        if (opts.keyboardInput) {\n            addEvent(document, 'keydown', self._onKeyChange);\n        }\n\n        if (opts.field) {\n            if (opts.container) {\n                opts.container.appendChild(self.el);\n            } else if (opts.bound) {\n                document.body.appendChild(self.el);\n            } else {\n                opts.field.parentNode.insertBefore(self.el, opts.field.nextSibling);\n            }\n            addEvent(opts.field, 'change', self._onInputChange);\n\n            if (!opts.defaultDate) {\n                if (hasMoment && opts.field.value) {\n                    opts.defaultDate = moment(opts.field.value, opts.format).toDate();\n                } else {\n                    opts.defaultDate = new Date(Date.parse(opts.field.value));\n                }\n                opts.setDefaultDate = true;\n            }\n        }\n\n        var defDate = opts.defaultDate;\n\n        if (isDate(defDate)) {\n            if (opts.setDefaultDate) {\n                self.setDate(defDate, true);\n            } else {\n                self.gotoDate(defDate);\n            }\n        } else {\n            self.gotoDate(new Date());\n        }\n\n        if (opts.bound) {\n            this.hide();\n            self.el.className += ' is-bound';\n            addEvent(opts.trigger, 'click', self._onInputClick);\n            addEvent(opts.trigger, 'focus', self._onInputFocus);\n            addEvent(opts.trigger, 'blur', self._onInputBlur);\n        } else {\n            this.show();\n        }\n    };\n\n\n    /**\n     * public Pikaday API\n     */\n    Pikaday.prototype = {\n\n\n        /**\n         * configure functionality\n         */\n        config: function(options)\n        {\n            if (!this._o) {\n                this._o = extend({}, defaults, true);\n            }\n\n            var opts = extend(this._o, options, true);\n\n            opts.isRTL = !!opts.isRTL;\n\n            opts.field = (opts.field && opts.field.nodeName) ? opts.field : null;\n\n            opts.theme = (typeof opts.theme) === 'string' && opts.theme ? opts.theme : null;\n\n            opts.bound = !!(opts.bound !== undefined ? opts.field && opts.bound : opts.field);\n\n            opts.trigger = (opts.trigger && opts.trigger.nodeName) ? opts.trigger : opts.field;\n\n            opts.disableWeekends = !!opts.disableWeekends;\n\n            opts.disableDayFn = (typeof opts.disableDayFn) === 'function' ? opts.disableDayFn : null;\n\n            var nom = parseInt(opts.numberOfMonths, 10) || 1;\n            opts.numberOfMonths = nom > 4 ? 4 : nom;\n\n            if (!isDate(opts.minDate)) {\n                opts.minDate = false;\n            }\n            if (!isDate(opts.maxDate)) {\n                opts.maxDate = false;\n            }\n            if ((opts.minDate && opts.maxDate) && opts.maxDate < opts.minDate) {\n                opts.maxDate = opts.minDate = false;\n            }\n            if (opts.minDate) {\n                this.setMinDate(opts.minDate);\n            }\n            if (opts.maxDate) {\n                this.setMaxDate(opts.maxDate);\n            }\n\n            if (isArray(opts.yearRange)) {\n                var fallback = new Date().getFullYear() - 10;\n                opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback;\n                opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback;\n            } else {\n                opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange;\n                if (opts.yearRange > 100) {\n                    opts.yearRange = 100;\n                }\n            }\n\n            return opts;\n        },\n\n        /**\n         * return a formatted string of the current selection (using Moment.js if available)\n         */\n        toString: function(format)\n        {\n            format = format || this._o.format;\n            if (!isDate(this._d)) {\n                return '';\n            }\n            if (this._o.toString) {\n              return this._o.toString(this._d, format);\n            }\n            if (hasMoment) {\n              return moment(this._d).format(format);\n            }\n            return this._d.toDateString();\n        },\n\n        /**\n         * return a Moment.js object of the current selection (if available)\n         */\n        getMoment: function()\n        {\n            return hasMoment ? moment(this._d) : null;\n        },\n\n        /**\n         * set the current selection from a Moment.js object (if available)\n         */\n        setMoment: function(date, preventOnSelect)\n        {\n            if (hasMoment && moment.isMoment(date)) {\n                this.setDate(date.toDate(), preventOnSelect);\n            }\n        },\n\n        /**\n         * return a Date object of the current selection\n         */\n        getDate: function()\n        {\n            return isDate(this._d) ? new Date(this._d.getTime()) : null;\n        },\n\n        /**\n         * set the current selection\n         */\n        setDate: function(date, preventOnSelect)\n        {\n            if (!date) {\n                this._d = null;\n\n                if (this._o.field) {\n                    this._o.field.value = '';\n                    fireEvent(this._o.field, 'change', { firedBy: this });\n                }\n\n                return this.draw();\n            }\n            if (typeof date === 'string') {\n                date = new Date(Date.parse(date));\n            }\n            if (!isDate(date)) {\n                return;\n            }\n\n            var min = this._o.minDate,\n                max = this._o.maxDate;\n\n            if (isDate(min) && date < min) {\n                date = min;\n            } else if (isDate(max) && date > max) {\n                date = max;\n            }\n\n            this._d = new Date(date.getTime());\n            setToStartOfDay(this._d);\n            this.gotoDate(this._d);\n\n            if (this._o.field) {\n                this._o.field.value = this.toString();\n                fireEvent(this._o.field, 'change', { firedBy: this });\n            }\n            if (!preventOnSelect && typeof this._o.onSelect === 'function') {\n                this._o.onSelect.call(this, this.getDate());\n            }\n        },\n\n        /**\n         * change view to a specific date\n         */\n        gotoDate: function(date)\n        {\n            var newCalendar = true;\n\n            if (!isDate(date)) {\n                return;\n            }\n\n            if (this.calendars) {\n                var firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1),\n                    lastVisibleDate = new Date(this.calendars[this.calendars.length-1].year, this.calendars[this.calendars.length-1].month, 1),\n                    visibleDate = date.getTime();\n                // get the end of the month\n                lastVisibleDate.setMonth(lastVisibleDate.getMonth()+1);\n                lastVisibleDate.setDate(lastVisibleDate.getDate()-1);\n                newCalendar = (visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate);\n            }\n\n            if (newCalendar) {\n                this.calendars = [{\n                    month: date.getMonth(),\n                    year: date.getFullYear()\n                }];\n                if (this._o.mainCalendar === 'right') {\n                    this.calendars[0].month += 1 - this._o.numberOfMonths;\n                }\n            }\n\n            this.adjustCalendars();\n        },\n\n        adjustDate: function(sign, days) {\n\n            var day = this.getDate() || new Date();\n            var difference = parseInt(days)*24*60*60*1000;\n\n            var newDay;\n\n            if (sign === 'add') {\n                newDay = new Date(day.valueOf() + difference);\n            } else if (sign === 'subtract') {\n                newDay = new Date(day.valueOf() - difference);\n            }\n\n            this.setDate(newDay);\n        },\n\n        adjustCalendars: function() {\n            this.calendars[0] = adjustCalendar(this.calendars[0]);\n            for (var c = 1; c < this._o.numberOfMonths; c++) {\n                this.calendars[c] = adjustCalendar({\n                    month: this.calendars[0].month + c,\n                    year: this.calendars[0].year\n                });\n            }\n            this.draw();\n        },\n\n        gotoToday: function()\n        {\n            this.gotoDate(new Date());\n        },\n\n        /**\n         * change view to a specific month (zero-index, e.g. 0: January)\n         */\n        gotoMonth: function(month)\n        {\n            if (!isNaN(month)) {\n                this.calendars[0].month = parseInt(month, 10);\n                this.adjustCalendars();\n            }\n        },\n\n        nextMonth: function()\n        {\n            this.calendars[0].month++;\n            this.adjustCalendars();\n        },\n\n        prevMonth: function()\n        {\n            this.calendars[0].month--;\n            this.adjustCalendars();\n        },\n\n        /**\n         * change view to a specific full year (e.g. \"2012\")\n         */\n        gotoYear: function(year)\n        {\n            if (!isNaN(year)) {\n                this.calendars[0].year = parseInt(year, 10);\n                this.adjustCalendars();\n            }\n        },\n\n        /**\n         * change the minDate\n         */\n        setMinDate: function(value)\n        {\n            if(value instanceof Date) {\n                setToStartOfDay(value);\n                this._o.minDate = value;\n                this._o.minYear  = value.getFullYear();\n                this._o.minMonth = value.getMonth();\n            } else {\n                this._o.minDate = defaults.minDate;\n                this._o.minYear  = defaults.minYear;\n                this._o.minMonth = defaults.minMonth;\n                this._o.startRange = defaults.startRange;\n            }\n\n            this.draw();\n        },\n\n        /**\n         * change the maxDate\n         */\n        setMaxDate: function(value)\n        {\n            if(value instanceof Date) {\n                setToStartOfDay(value);\n                this._o.maxDate = value;\n                this._o.maxYear = value.getFullYear();\n                this._o.maxMonth = value.getMonth();\n            } else {\n                this._o.maxDate = defaults.maxDate;\n                this._o.maxYear = defaults.maxYear;\n                this._o.maxMonth = defaults.maxMonth;\n                this._o.endRange = defaults.endRange;\n            }\n\n            this.draw();\n        },\n\n        setStartRange: function(value)\n        {\n            this._o.startRange = value;\n        },\n\n        setEndRange: function(value)\n        {\n            this._o.endRange = value;\n        },\n\n        /**\n         * refresh the HTML\n         */\n        draw: function(force)\n        {\n            if (!this._v && !force) {\n                return;\n            }\n            var opts = this._o,\n                minYear = opts.minYear,\n                maxYear = opts.maxYear,\n                minMonth = opts.minMonth,\n                maxMonth = opts.maxMonth,\n                html = '',\n                randId;\n\n            if (this._y <= minYear) {\n                this._y = minYear;\n                if (!isNaN(minMonth) && this._m < minMonth) {\n                    this._m = minMonth;\n                }\n            }\n            if (this._y >= maxYear) {\n                this._y = maxYear;\n                if (!isNaN(maxMonth) && this._m > maxMonth) {\n                    this._m = maxMonth;\n                }\n            }\n\n            randId = 'pika-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2);\n\n            for (var c = 0; c < opts.numberOfMonths; c++) {\n                html += '<div class=\"pika-lendar\">' + renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId) + '</div>';\n            }\n\n            this.el.innerHTML = html;\n\n            if (opts.bound) {\n                if(opts.field.type !== 'hidden') {\n                    sto(function() {\n                        opts.trigger.focus();\n                    }, 1);\n                }\n            }\n\n            if (typeof this._o.onDraw === 'function') {\n                this._o.onDraw(this);\n            }\n\n            if (opts.bound) {\n                // let the screen reader user know to use arrow keys\n                opts.field.setAttribute('aria-label', opts.ariaLabel);\n            }\n        },\n\n        adjustPosition: function()\n        {\n            var field, pEl, width, height, viewportWidth, viewportHeight, scrollTop, left, top, clientRect, leftAligned, bottomAligned;\n\n            if (this._o.container) return;\n\n            this.el.style.position = 'absolute';\n\n            field = this._o.trigger;\n            pEl = field;\n            width = this.el.offsetWidth;\n            height = this.el.offsetHeight;\n            viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n            viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n            scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;\n            leftAligned = true;\n            bottomAligned = true;\n\n            if (typeof field.getBoundingClientRect === 'function') {\n                clientRect = field.getBoundingClientRect();\n                left = clientRect.left + window.pageXOffset;\n                top = clientRect.bottom + window.pageYOffset;\n            } else {\n                left = pEl.offsetLeft;\n                top  = pEl.offsetTop + pEl.offsetHeight;\n                while((pEl = pEl.offsetParent)) {\n                    left += pEl.offsetLeft;\n                    top  += pEl.offsetTop;\n                }\n            }\n\n            // default position is bottom & left\n            if ((this._o.reposition && left + width > viewportWidth) ||\n                (\n                    this._o.position.indexOf('right') > -1 &&\n                    left - width + field.offsetWidth > 0\n                )\n            ) {\n                left = left - width + field.offsetWidth;\n                leftAligned = false;\n            }\n            if ((this._o.reposition && top + height > viewportHeight + scrollTop) ||\n                (\n                    this._o.position.indexOf('top') > -1 &&\n                    top - height - field.offsetHeight > 0\n                )\n            ) {\n                top = top - height - field.offsetHeight;\n                bottomAligned = false;\n            }\n\n            this.el.style.left = left + 'px';\n            this.el.style.top = top + 'px';\n\n            addClass(this.el, leftAligned ? 'left-aligned' : 'right-aligned');\n            addClass(this.el, bottomAligned ? 'bottom-aligned' : 'top-aligned');\n            removeClass(this.el, !leftAligned ? 'left-aligned' : 'right-aligned');\n            removeClass(this.el, !bottomAligned ? 'bottom-aligned' : 'top-aligned');\n        },\n\n        /**\n         * render HTML for a particular month\n         */\n        render: function(year, month, randId)\n        {\n            var opts   = this._o,\n                now    = new Date(),\n                days   = getDaysInMonth(year, month),\n                before = new Date(year, month, 1).getDay(),\n                data   = [],\n                row    = [];\n            setToStartOfDay(now);\n            if (opts.firstDay > 0) {\n                before -= opts.firstDay;\n                if (before < 0) {\n                    before += 7;\n                }\n            }\n            var previousMonth = month === 0 ? 11 : month - 1,\n                nextMonth = month === 11 ? 0 : month + 1,\n                yearOfPreviousMonth = month === 0 ? year - 1 : year,\n                yearOfNextMonth = month === 11 ? year + 1 : year,\n                daysInPreviousMonth = getDaysInMonth(yearOfPreviousMonth, previousMonth);\n            var cells = days + before,\n                after = cells;\n            while(after > 7) {\n                after -= 7;\n            }\n            cells += 7 - after;\n            var isWeekSelected = false;\n            for (var i = 0, r = 0; i < cells; i++)\n            {\n                var day = new Date(year, month, 1 + (i - before)),\n                    isSelected = isDate(this._d) ? compareDates(day, this._d) : false,\n                    isToday = compareDates(day, now),\n                    hasEvent = opts.events.indexOf(day.toDateString()) !== -1 ? true : false,\n                    isEmpty = i < before || i >= (days + before),\n                    dayNumber = 1 + (i - before),\n                    monthNumber = month,\n                    yearNumber = year,\n                    isStartRange = opts.startRange && compareDates(opts.startRange, day),\n                    isEndRange = opts.endRange && compareDates(opts.endRange, day),\n                    isInRange = opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange,\n                    isDisabled = (opts.minDate && day < opts.minDate) ||\n                                 (opts.maxDate && day > opts.maxDate) ||\n                                 (opts.disableWeekends && isWeekend(day)) ||\n                                 (opts.disableDayFn && opts.disableDayFn(day));\n\n                if (isEmpty) {\n                    if (i < before) {\n                        dayNumber = daysInPreviousMonth + dayNumber;\n                        monthNumber = previousMonth;\n                        yearNumber = yearOfPreviousMonth;\n                    } else {\n                        dayNumber = dayNumber - days;\n                        monthNumber = nextMonth;\n                        yearNumber = yearOfNextMonth;\n                    }\n                }\n\n                var dayConfig = {\n                        day: dayNumber,\n                        month: monthNumber,\n                        year: yearNumber,\n                        hasEvent: hasEvent,\n                        isSelected: isSelected,\n                        isToday: isToday,\n                        isDisabled: isDisabled,\n                        isEmpty: isEmpty,\n                        isStartRange: isStartRange,\n                        isEndRange: isEndRange,\n                        isInRange: isInRange,\n                        showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths,\n                        enableSelectionDaysInNextAndPreviousMonths: opts.enableSelectionDaysInNextAndPreviousMonths\n                    };\n\n                if (opts.pickWholeWeek && isSelected) {\n                    isWeekSelected = true;\n                }\n\n                row.push(renderDay(dayConfig));\n\n                if (++r === 7) {\n                    if (opts.showWeekNumber) {\n                        row.unshift(renderWeek(i - before, month, year));\n                    }\n                    data.push(renderRow(row, opts.isRTL, opts.pickWholeWeek, isWeekSelected));\n                    row = [];\n                    r = 0;\n                    isWeekSelected = false;\n                }\n            }\n            return renderTable(opts, data, randId);\n        },\n\n        isVisible: function()\n        {\n            return this._v;\n        },\n\n        show: function()\n        {\n            if (!this.isVisible()) {\n                this._v = true;\n                this.draw();\n                removeClass(this.el, 'is-hidden');\n                if (this._o.bound) {\n                    addEvent(document, 'click', this._onClick);\n                    this.adjustPosition();\n                }\n                if (typeof this._o.onOpen === 'function') {\n                    this._o.onOpen.call(this);\n                }\n            }\n        },\n\n        hide: function()\n        {\n            var v = this._v;\n            if (v !== false) {\n                if (this._o.bound) {\n                    removeEvent(document, 'click', this._onClick);\n                }\n                this.el.style.position = 'static'; // reset\n                this.el.style.left = 'auto';\n                this.el.style.top = 'auto';\n                addClass(this.el, 'is-hidden');\n                this._v = false;\n                if (v !== undefined && typeof this._o.onClose === 'function') {\n                    this._o.onClose.call(this);\n                }\n            }\n        },\n\n        /**\n         * GAME OVER\n         */\n        destroy: function()\n        {\n            var opts = this._o;\n\n            this.hide();\n            removeEvent(this.el, 'mousedown', this._onMouseDown, true);\n            removeEvent(this.el, 'touchend', this._onMouseDown, true);\n            removeEvent(this.el, 'change', this._onChange);\n            if (opts.keyboardInput) {\n                removeEvent(document, 'keydown', this._onKeyChange);\n            }\n            if (opts.field) {\n                removeEvent(opts.field, 'change', this._onInputChange);\n                if (opts.bound) {\n                    removeEvent(opts.trigger, 'click', this._onInputClick);\n                    removeEvent(opts.trigger, 'focus', this._onInputFocus);\n                    removeEvent(opts.trigger, 'blur', this._onInputBlur);\n                }\n            }\n            if (this.el.parentNode) {\n                this.el.parentNode.removeChild(this.el);\n            }\n        }\n\n    };\n\n    return Pikaday;\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","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n  return (array && array.length) ? array[0] : undefined;\n}\n\nmodule.exports = head;\n","/* 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 * 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","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","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","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(_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\":\"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","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","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","/**!\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","import GlToken from '../token/token';\nimport { stopEvent } from '../../../utils/utils';\nimport GlFilteredSearchTokenSegment from './filtered_search_token_segment';\nimport { termTokenDefinition, match, tokenToOption, INTENT_ACTIVATE_PREVIOUS, TOKEN_CLOSE_SELECTOR, TERM_TOKEN_TYPE } from './filtered_search_utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n  name: 'GlFilteredSearchTerm',\n  components: {\n    GlFilteredSearchTokenSegment,\n    GlToken\n  },\n  inject: ['termsAsTokens'],\n  inheritAttrs: false,\n  props: {\n    /**\n     * Tokens available for this filtered search instance.\n     */\n    availableTokens: {\n      type: Array,\n      required: true\n    },\n    /**\n     * Determines if the term is being edited or not.\n     */\n    active: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Current term value.\n     */\n    value: {\n      type: Object,\n      required: false,\n      default: () => ({\n        data: ''\n      })\n    },\n    placeholder: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    /**\n     * HTML attributes to add to the search input.\n     */\n    searchInputAttributes: {\n      type: Object,\n      required: false,\n      default: () => ({})\n    },\n    /**\n     * If this is the last token.\n     */\n    isLastToken: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * The current `value` (tokens) of the ancestor GlFilteredSearch component.\n     */\n    currentValue: {\n      type: Array,\n      required: false,\n      default: () => []\n    },\n    cursorPosition: {\n      type: String,\n      required: false,\n      default: 'end',\n      validator: value => ['start', 'end'].includes(value)\n    },\n    /**\n     * The title of the text search option. Ignored unless termsAsTokens is enabled.\n     */\n    searchTextOptionLabel: {\n      type: String,\n      required: false,\n      default: termTokenDefinition.title\n    },\n    viewOnly: {\n      type: Boolean,\n      required: false,\n      default: false\n    }\n  },\n  computed: {\n    showInput() {\n      return this.termsAsTokens() || Boolean(this.placeholder);\n    },\n    showToken() {\n      return this.termsAsTokens() && Boolean(this.value.data);\n    },\n    suggestedTokens() {\n      const tokens = this.availableTokens.filter(token => match(token.title, this.value.data));\n      if (this.termsAsTokens() && this.value.data) {\n        tokens.push({\n          ...termTokenDefinition,\n          title: this.searchTextOptionLabel\n        });\n      }\n\n      // eslint-disable-next-line unicorn/no-array-callback-reference\n      return tokens.map(tokenToOption);\n    },\n    internalValue: {\n      get() {\n        return this.value.data;\n      },\n      set(data) {\n        /**\n         * Emitted when the token changes its value.\n         *\n         * @event input\n         * @type {object} dataObj Object containing the update value.\n         */\n        this.$emit('input', {\n          data\n        });\n      }\n    },\n    eventListeners() {\n      return this.viewOnly ? {} : {\n        mousedown: this.stopMousedownOnCloseButton,\n        close: this.destroyByClose\n      };\n    }\n  },\n  methods: {\n    onBackspace() {\n      /**\n       * Emitted when token value is empty and backspace is pressed.\n       * Includes user intent to activate previous token.\n       *\n       * @event destroy\n       * @type {object} details The user intent\n       */\n      this.$emit('destroy', {\n        intent: INTENT_ACTIVATE_PREVIOUS\n      });\n    },\n    stopMousedownOnCloseButton(event) {\n      if (event.target.closest(TOKEN_CLOSE_SELECTOR)) {\n        stopEvent(event);\n      }\n    },\n    destroyByClose() {\n      this.$emit('destroy');\n    },\n    onComplete(type) {\n      if (type === TERM_TOKEN_TYPE) {\n        // We've completed this term token\n        this.$emit('complete');\n      } else {\n        // We're changing the current token type\n        this.$emit('replace', {\n          type\n        });\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-filtered-search-term gl-h-auto\",attrs:{\"data-testid\":\"filtered-search-term\"}},[_c('gl-filtered-search-token-segment',{ref:\"segment\",staticClass:\"gl-filtered-search-term-token\",attrs:{\"is-term\":\"\",\"active\":_vm.active,\"cursor-position\":_vm.cursorPosition,\"search-input-attributes\":_vm.searchInputAttributes,\"is-last-token\":_vm.isLastToken,\"current-value\":_vm.currentValue,\"view-only\":_vm.viewOnly,\"options\":_vm.suggestedTokens},on:{\"activate\":function($event){return _vm.$emit('activate')},\"deactivate\":function($event){return _vm.$emit('deactivate')},\"complete\":_vm.onComplete,\"backspace\":_vm.onBackspace,\"submit\":function($event){return _vm.$emit('submit')},\"split\":function($event){return _vm.$emit('split', $event)},\"previous\":function($event){return _vm.$emit('previous')},\"next\":function($event){return _vm.$emit('next')}},scopedSlots:_vm._u([{key:\"view\",fn:function(ref){\nvar label = ref.label;\nreturn [(_vm.showToken)?_c('gl-token',_vm._g({class:{ 'gl-cursor-pointer': !_vm.viewOnly },attrs:{\"view-only\":_vm.viewOnly}},_vm.eventListeners),[_vm._v(_vm._s(_vm.value.data))]):(_vm.showInput)?_c('input',_vm._b({staticClass:\"gl-filtered-search-term-input\",class:{ 'gl-bg-gray-10': _vm.viewOnly },attrs:{\"placeholder\":_vm.placeholder,\"aria-label\":label,\"readonly\":_vm.viewOnly,\"data-testid\":\"filtered-search-term-input\"},on:{\"focusin\":function($event){return _vm.$emit('activate')},\"focusout\":function($event){return _vm.$emit('deactivate')}}},'input',_vm.searchInputAttributes,false)):[_vm._v(_vm._s(_vm.value.data))]]}}]),model:{value:(_vm.internalValue),callback:function ($$v) {_vm.internalValue=$$v;},expression:\"internalValue\"}})],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 isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { PortalTarget } from 'portal-vue';\nimport { GlTooltipDirective } from '../../../directives/tooltip';\nimport GlIcon from '../icon/icon';\nimport GlSearchBoxByClick from '../search_box_by_click/search_box_by_click';\nimport GlFilteredSearchTerm from './filtered_search_term';\nimport { termTokenDefinition, createTerm, isEmptyTerm, needDenormalization, denormalizeTokens, INTENT_ACTIVATE_PREVIOUS, ensureTokenId, normalizeTokens } from './filtered_search_utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nlet portalUuid = 0;\nfunction initialState() {\n  return [createTerm()];\n}\nvar script = {\n  name: 'GlFilteredSearch',\n  components: {\n    GlSearchBoxByClick,\n    GlIcon,\n    PortalTarget\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective\n  },\n  provide() {\n    portalUuid += 1;\n    this.portalName = `filters_portal_${portalUuid}`;\n    return {\n      portalName: this.portalName,\n      alignSuggestions: ref => this.alignSuggestions(ref),\n      // Return a function reference instead of a prop to work around vue-apollo@3 bug.\n      // TODO: This can be reverted once https://github.com/vuejs/vue-apollo/pull/1153\n      // has been merged and we consume it, or we upgrade to vue-apollo@4.\n      suggestionsListClass: () => this.suggestionsListClass,\n      termsAsTokens: () => this.termsAsTokens\n    };\n  },\n  inheritAttrs: false,\n  props: {\n    /**\n     * If provided, used as value of filtered search\n     */\n    value: {\n      required: false,\n      type: Array,\n      default: () => []\n    },\n    /**\n     * Available tokens\n     */\n    availableTokens: {\n      type: Array,\n      required: false,\n      default: () => [],\n      validator(value) {\n        // eslint-disable-next-line no-underscore-dangle\n        if (!value.__v_raw) {\n          // This is Vue 2\n          return true;\n        }\n\n        // eslint-disable-next-line no-underscore-dangle\n        const isOk = Array.isArray(value) && value.every(_ref => {\n          let {\n            token\n          } = _ref;\n          return token.__v_skip;\n        });\n        if (!isOk) {\n          // eslint-disable-next-line no-console\n          console.warn('You are using Vue3. In Vue3 each token component passed to filtered search must be wrapped into markRaw');\n        }\n        return isOk;\n      }\n    },\n    /**\n     * If provided, used as history items for this component\n     */\n    placeholder: {\n      type: String,\n      required: false,\n      default: 'Search'\n    },\n    clearButtonTitle: {\n      type: String,\n      required: false,\n      default: 'Clear'\n    },\n    historyItems: {\n      type: Array,\n      required: false,\n      default: null\n    },\n    /**\n     * Additional classes to add to the suggestion list menu. NOTE: this not reactive, and the value\n     * must be available and fixed when the component is instantiated\n     */\n    suggestionsListClass: {\n      type: [String, Array, Object],\n      required: false,\n      default: null\n    },\n    /**\n     * Display operators' descriptions instead of their values (e.g., \"is\" instead of \"=\").\n     */\n    showFriendlyText: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * HTML attributes to add to the search button\n     */\n    searchButtonAttributes: {\n      type: Object,\n      required: false,\n      default: () => ({})\n    },\n    /**\n     * HTML attributes to add to the search input\n     */\n    searchInputAttributes: {\n      type: Object,\n      required: false,\n      default: () => ({})\n    },\n    viewOnly: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Render search terms as GlTokens. Ideally, this prop will be as\n     * short-lived as possible, and this behavior will become the default and\n     * only behavior.\n     *\n     * This prop is *not* reactive.\n     *\n     * See https://gitlab.com/gitlab-org/gitlab-ui/-/issues/2159.\n     */\n    termsAsTokens: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * The title of the text search option. Ignored unless termsAsTokens is enabled.\n     */\n    searchTextOptionLabel: {\n      type: String,\n      required: false,\n      default: termTokenDefinition.title\n    },\n    /**\n     * Display search button to perform a search.\n     *\n     * Note: it is required to ensure accessibility for WCAG 2.1 3.2.2: On Input.\n     * If the search button is hidden, a separate button should be provided for the same context.\n     */\n    showSearchButton: {\n      type: Boolean,\n      required: false,\n      default: true\n    }\n  },\n  data() {\n    return {\n      tokens: initialState(),\n      activeTokenIdx: null,\n      suggestionsStyle: {},\n      intendedCursorPosition: 'end'\n    };\n  },\n  computed: {\n    activeToken() {\n      return this.tokens[this.activeTokenIdx];\n    },\n    appliedTokens() {\n      return this.tokens.filter(token => !isEmptyTerm(token));\n    },\n    lastTokenIdx() {\n      return this.tokens.length - 1;\n    },\n    isLastTokenActive() {\n      return this.activeTokenIdx === this.lastTokenIdx;\n    },\n    hasValue() {\n      return this.tokens.length > 1 || this.tokens[0].value.data !== '';\n    },\n    termPlaceholder() {\n      return this.hasValue ? null : this.placeholder;\n    },\n    currentAvailableTokens() {\n      return this.availableTokens.filter(token => {\n        if (token.disabled) {\n          return false;\n        }\n        if (token.unique) {\n          return !this.tokens.find(t => t.type === token.type);\n        }\n        return true;\n      });\n    }\n  },\n  watch: {\n    tokens: {\n      handler() {\n        if (process.env.NODE_ENV !== 'production') {\n          const invalidToken = this.tokens.find(token => !token.id);\n          if (invalidToken) {\n            throw new Error(`Token does not have an id:\\n${JSON.stringify(invalidToken)}`);\n          }\n        }\n        if ((this.tokens.length === 0 || !this.isLastTokenEmpty()) && !this.viewOnly) {\n          this.tokens.push(createTerm());\n        }\n\n        /**\n         * Emitted when the tokens (value) changes\n         * @property {array} tokens\n         */\n        this.$emit('input', this.tokens);\n      },\n      deep: true,\n      immediate: true\n    },\n    value: {\n      handler(newValue, oldValue) {\n        if (!isEqual(newValue, oldValue)) {\n          const value = newValue.length ? newValue : initialState();\n          this.applyNewValue(cloneDeep(value));\n        }\n      },\n      deep: true,\n      immediate: true\n    }\n  },\n  methods: {\n    applyNewValue(newValue) {\n      this.tokens = needDenormalization(newValue) ? denormalizeTokens(newValue, this.termsAsTokens) : newValue;\n    },\n    isActiveToken(idx) {\n      return this.activeTokenIdx === idx;\n    },\n    isLastToken(idx) {\n      return this.activeTokenIdx === null && idx === this.lastTokenIdx;\n    },\n    isLastTokenEmpty() {\n      return isEmptyTerm(this.tokens[this.lastTokenIdx]);\n    },\n    getTokenEntry(type) {\n      return this.availableTokens.find(t => t.type === type);\n    },\n    getTokenComponent(type) {\n      var _this$getTokenEntry;\n      return ((_this$getTokenEntry = this.getTokenEntry(type)) === null || _this$getTokenEntry === void 0 ? void 0 : _this$getTokenEntry.token) || GlFilteredSearchTerm;\n    },\n    getTokenClassList(idx) {\n      return {\n        'gl-filtered-search-item': true,\n        'gl-filtered-search-last-item': this.isLastToken(idx) && !this.viewOnly\n      };\n    },\n    activate(idx) {\n      if (!this.viewOnly) {\n        this.activeTokenIdx = idx;\n      }\n    },\n    activatePreviousToken() {\n      if (this.activeTokenIdx > 0) {\n        this.activeTokenIdx -= 1;\n        this.intendedCursorPosition = 'end';\n      }\n    },\n    activateNextToken() {\n      if (this.activeTokenIdx < this.value.length) {\n        this.activeTokenIdx += 1;\n        this.intendedCursorPosition = 'start';\n      }\n    },\n    alignSuggestions(ref) {\n      const offsetRef = ref.getBoundingClientRect().left;\n      const offsetMenu = this.$el.getBoundingClientRect().left;\n      const transform = `translateX(${Math.floor(offsetRef - offsetMenu)}px)`;\n      this.suggestionsStyle = {\n        transform\n      };\n    },\n    deactivate(token) {\n      this.intendedCursorPosition = 'end';\n      const tokenIdx = this.tokens.indexOf(token);\n      if (tokenIdx === -1 || this.activeTokenIdx !== tokenIdx) {\n        return;\n      }\n      if (!this.isLastTokenEmpty()) {\n        this.tokens.push(createTerm());\n      }\n      if (!this.isLastTokenActive && isEmptyTerm(this.activeToken)) {\n        this.tokens.splice(tokenIdx, 1);\n      }\n      this.activeTokenIdx = null;\n    },\n    destroyToken(idx) {\n      let {\n        intent\n      } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      if (this.tokens.length === 1) {\n        return;\n      }\n      this.tokens.splice(idx, 1);\n\n      // First, attempt to honor the user's activation intent behind the\n      // destruction of the token, if any. Otherwise, try to maintain the\n      // active state for the token that was active at the time. If that's not\n      // possible, make sure no token is active.\n      if (intent === INTENT_ACTIVATE_PREVIOUS) {\n        // If there is a previous token, activate it; else, activate the first token\n        this.activeTokenIdx = Math.max(idx - 1, 0);\n      } else if (idx < this.activeTokenIdx) {\n        // Preserve the active token's active status (it shifted down one index)\n        this.activeTokenIdx -= 1;\n      } else if (idx === this.activeTokenIdx) {\n        // User destroyed the active token; don't activate another one.\n        this.activeTokenIdx = null;\n      }\n      // Do nothing if there was no active token, or if idx > this.activeTokenIdx,\n      // to preserve the active state of the remaining tokens.\n    },\n    replaceToken(idx, token) {\n      this.$set(this.tokens, idx, ensureTokenId({\n        ...token,\n        value: {\n          data: '',\n          ...token.value\n        }\n      }));\n      this.activeTokenIdx = idx;\n    },\n    // This method can be deleted once termsAsTokens behavior is the default.\n    createTokens(idx) {\n      let newStrings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [''];\n      if (!this.isLastTokenActive && newStrings.length === 1 && newStrings[0] === '') {\n        this.activeTokenIdx = this.lastTokenIdx;\n        return;\n      }\n      const newTokens = newStrings.map(data => createTerm(data));\n      this.tokens.splice(idx + 1, 0, ...newTokens);\n      this.activeTokenIdx = idx + newStrings.length;\n    },\n    completeToken() {\n      if (this.activeTokenIdx === this.lastTokenIdx - 1) {\n        this.activeTokenIdx = this.lastTokenIdx;\n      } else {\n        this.activeTokenIdx = null;\n      }\n    },\n    submit() {\n      /**\n       * Emitted when search is submitted\n       * @property {array} tokens\n       */\n      this.$emit('submit', normalizeTokens(cloneDeep(this.tokens)));\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-search-box-by-click',_vm._b({attrs:{\"value\":_vm.tokens,\"history-items\":_vm.historyItems,\"clearable\":_vm.hasValue,\"search-button-attributes\":_vm.searchButtonAttributes,\"show-search-button\":_vm.showSearchButton,\"disabled\":_vm.viewOnly,\"data-testid\":\"filtered-search-input\"},on:{\"submit\":_vm.submit,\"input\":_vm.applyNewValue,\"history-item-selected\":function($event){return _vm.$emit('history-item-selected', $event)},\"clear\":function($event){return _vm.$emit('clear')},\"clear-history\":function($event){return _vm.$emit('clear-history')}},scopedSlots:_vm._u([{key:\"history-item\",fn:function(slotScope){return [_vm._t(\"history-item\",null,null,slotScope)]}},{key:\"input\",fn:function(){return [_c('div',{staticClass:\"gl-filtered-search-scrollable-container\",class:{\n        'gl-filtered-search-scrollable-container-with-search-button': _vm.showSearchButton,\n        '!gl-bg-gray-10 !gl-shadow-inner-1-gray-100': _vm.viewOnly,\n      }},[_c('div',{staticClass:\"gl-filtered-search-scrollable\"},_vm._l((_vm.tokens),function(token,idx){return _c(_vm.getTokenComponent(token.type),{key:token.id,ref:\"tokens\",refInFor:true,tag:\"component\",class:_vm.getTokenClassList(idx),attrs:{\"config\":_vm.getTokenEntry(token.type),\"active\":_vm.activeTokenIdx === idx,\"cursor-position\":_vm.intendedCursorPosition,\"available-tokens\":_vm.currentAvailableTokens,\"current-value\":_vm.tokens,\"index\":idx,\"placeholder\":_vm.termPlaceholder,\"show-friendly-text\":_vm.showFriendlyText,\"search-input-attributes\":_vm.searchInputAttributes,\"view-only\":_vm.viewOnly,\"is-last-token\":_vm.isLastToken(idx),\"search-text-option-label\":_vm.searchTextOptionLabel,\"applied-tokens\":_vm.appliedTokens},on:{\"activate\":function($event){return _vm.activate(idx)},\"deactivate\":function($event){return _vm.deactivate(token)},\"destroy\":function($event){return _vm.destroyToken(idx, $event)},\"replace\":function($event){return _vm.replaceToken(idx, $event)},\"complete\":_vm.completeToken,\"submit\":_vm.submit,\"split\":function($event){return _vm.createTokens(idx, $event)},\"previous\":_vm.activatePreviousToken,\"next\":_vm.activateNextToken},model:{value:(token.value),callback:function ($$v) {_vm.$set(token, \"value\", $$v);},expression:\"token.value\"}})}),1)]),_vm._v(\" \"),_c('portal-target',{key:_vm.activeTokenIdx,ref:\"menu\",style:(_vm.suggestionsStyle),attrs:{\"name\":_vm.portalName,\"slim\":\"\"}})]},proxy:true}],null,true)},'gl-search-box-by-click',_vm.$attrs,false))};\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 { getSel, isElement } from '../../../utils/dom';\n\n// Helper to determine if a there is an active text selection on the document page\n// Used to filter out click events caused by the mouse up at end of selection\n//\n// Accepts an element as only argument to test to see if selection overlaps or is\n// contained within the element\nconst textSelectionActive = function () {\n  let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n  const sel = getSel();\n  return sel && sel.toString().trim() !== '' && sel.containsNode && isElement(el) ? /* istanbul ignore next */sel.containsNode(el, true) : false;\n};\n\nexport { textSelectionActive };\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemDevelopment\"},\"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\":\"iid\"},\"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\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetDevelopment\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemDevelopmentFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":308}};\n    doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/work_items/graphql/work_item_development.fragment.graphql\\\"\\n\\nquery workItemDevelopment($id: WorkItemID!) {\\n  workItem(id: $id) {\\n    id\\n    iid\\n    namespace {\\n      id\\n    }\\n    widgets {\\n      ... on WorkItemWidgetDevelopment {\\n        ...WorkItemDevelopmentFragment\\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_development.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[\"workItemDevelopment\"] = oneQuery(doc, \"workItemDevelopment\");\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\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemNotesByIid\"},\"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\":\"after\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"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\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"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\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetNotes\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"discussionLocked\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"discussions\"},\"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\":\"after\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"ALL_NOTES\"}}],\"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\":\"nodes\"},\"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\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemNote\"},\"directives\":[]}]}}]}}]}}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":809}};\n    doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/page_info.fragment.graphql\\\"\\n#import \\\"ee_else_ce/work_items/graphql/notes/work_item_note.fragment.graphql\\\"\\n\\nquery workItemNotesByIid($fullPath: ID!, $iid: String!, $after: String, $pageSize: Int) {\\n  workspace: namespace(fullPath: $fullPath) {\\n    id\\n    workItem(iid: $iid) {\\n      id\\n      iid\\n      namespace {\\n        id\\n      }\\n      widgets {\\n        ... on WorkItemWidgetNotes {\\n          type\\n          discussionLocked\\n          discussions(first: $pageSize, after: $after, filter: ALL_NOTES) {\\n            pageInfo {\\n              ...PageInfo\\n            }\\n            nodes {\\n              id\\n              notes {\\n                nodes {\\n                  ...WorkItemNote\\n                }\\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  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/notes/work_item_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[\"workItemNotesByIid\"] = oneQuery(doc, \"workItemNotesByIid\");\n        \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","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 }} &bull;\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        &bull; {{ __('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","var baseClamp = require('./_baseClamp'),\n    toNumber = require('./toNumber');\n\n/**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\nfunction clamp(number, lower, upper) {\n  if (upper === undefined) {\n    upper = lower;\n    lower = undefined;\n  }\n  if (upper !== undefined) {\n    upper = toNumber(upper);\n    upper = upper === upper ? upper : 0;\n  }\n  if (lower !== undefined) {\n    lower = toNumber(lower);\n    lower = lower === lower ? lower : 0;\n  }\n  return baseClamp(toNumber(number), lower, upper);\n}\n\nmodule.exports = clamp;\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemDescriptionTemplate\"},\"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\":\"NonNullType\",\"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\":\"workItemDescriptionTemplates\"},\"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\":\"__typename\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"content\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":246}};\n    doc.loc.source = {\"body\":\"query workItemDescriptionTemplate($fullPath: ID!, $name: String!) {\\n  namespace(fullPath: $fullPath) {\\n    id\\n    workItemDescriptionTemplates(name: $name) {\\n      __typename\\n      nodes @client {\\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[\"workItemDescriptionTemplate\"] = oneQuery(doc, \"workItemDescriptionTemplate\");\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","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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-form',{attrs:{\"id\":\"epics-list-bulk-edit\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.handleFormSubmitted.apply(null, arguments)}}},[_c('gl-form-group',{staticClass:\"block gl-m-auto gl-mt-6 !gl-p-0\",attrs:{\"label\":_vm.__('Labels')}},[_c('labels-select-widget',{attrs:{\"allow-label-edit\":true,\"allow-multiselect\":true,\"allow-scoped-labels\":true,\"selected-labels\":_vm.existingSelectedLabels,\"labels-fetch-path\":_vm.labelsFetchPath,\"labels-manage-path\":_vm.labelsManagePath,\"variant\":_vm.$options.VARIANT_EMBEDDED},on:{\"onDropdownClose\":_vm.handleSelectedLabels}})],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!./epics_list_bulk_edit_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!./epics_list_bulk_edit_sidebar.vue?vue&type=script&lang=js\"","<script>\nimport { GlForm, GlFormGroup } from '@gitlab/ui';\nimport { intersectionBy, xorBy, unionBy } from 'lodash';\nimport LabelsSelectWidget from '~/sidebar/components/labels/labels_select_vue/labels_select_root.vue';\nimport { VARIANT_EMBEDDED } from '~/sidebar/components/labels/labels_select_widget/constants';\nimport csrf from '~/lib/utils/csrf';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\n\nexport default {\n  csrf,\n  VARIANT_EMBEDDED,\n  getIdFromGraphQLId,\n  components: {\n    GlForm,\n    GlFormGroup,\n    LabelsSelectWidget,\n  },\n  inject: ['labelsManagePath', 'labelsFetchPath'],\n  props: {\n    checkedEpics: {\n      type: Array,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      selectedLabelIds: [],\n      removedLabelIds: [],\n    };\n  },\n  computed: {\n    /**\n     * This prop returns a list of labels which\n     * are applied on all the selected epics while\n     * also making sure that `id` is numeric\n     * instead of GraphQL ID string.\n     *\n     * If any epic selected has no labels, or\n     * has labels which are not present in rest\n     * of the selection, list returned will be empty.\n     */\n    existingSelectedLabels() {\n      if (!this.checkedEpics.length) {\n        return [];\n      }\n\n      const transformLabelFn = (label, extras) => ({\n        ...label,\n        ...extras,\n        id: getIdFromGraphQLId(label.id),\n      });\n\n      const labelsPerEpic = [...this.checkedEpics.map((epic) => epic.labels.nodes)];\n      const allLabels = unionBy(...labelsPerEpic, 'id');\n      const hasEpicWithNoLabels = labelsPerEpic.some((labels) => !labels.length);\n\n      // Collect all the labels which are present in all the selected epics\n      // and make them `set` (show '✓' on UI)\n      const commonLabels = intersectionBy(...labelsPerEpic, 'id').map((label) =>\n        transformLabelFn(label, { set: true }),\n      );\n\n      // Collect all the labels which are not present in more than one selected epic\n      // and make them `indeterminate` (show '-' on UI)\n      const uncommonLabels = xorBy(...labelsPerEpic, 'id').map((label) =>\n        transformLabelFn(label, { indeterminate: true }),\n      );\n\n      if (commonLabels.length === allLabels.length) {\n        // Selected epics have same set of labels\n        return commonLabels;\n      }\n      if (uncommonLabels.length === allLabels.length) {\n        // Selected epics have distinct set of labels\n        return uncommonLabels;\n      }\n      if (commonLabels.length || uncommonLabels.length) {\n        // Selected epics have only some labels in common\n        return commonLabels.concat(\n          xorBy(commonLabels, allLabels, 'id').map((label) =>\n            transformLabelFn(label, { indeterminate: true }),\n          ),\n        );\n      }\n      if (hasEpicWithNoLabels || !commonLabels.length || !uncommonLabels.length) {\n        // Selected epics have no label in common\n        return allLabels.map((label) => transformLabelFn(label, { indeterminate: true }));\n      }\n\n      // Selected epics have labels that can be categorised\n      // in two groups; common and uncommon.\n      return unionBy(uncommonLabels, commonLabels, 'id');\n    },\n  },\n  methods: {\n    handleSelectedLabels(touchedLabels) {\n      if (touchedLabels.length) {\n        this.selectedLabelIds = touchedLabels.filter((label) => label.set).map((label) => label.id);\n        this.removedLabelIds = touchedLabels.filter((label) => !label.set).map((label) => label.id);\n      } else {\n        this.selectedLabelIds = [];\n        this.removedLabelIds = this.existingSelectedLabels.map((label) => label.id);\n      }\n    },\n    handleFormSubmitted() {\n      const bulkUpdateData = {\n        issuable_ids: this.checkedEpics.map((epic) => getIdFromGraphQLId(epic.id)).join(','),\n        issuable_gids: this.checkedEpics.map((epic) => epic.id),\n        add_label_ids: this.selectedLabelIds,\n        remove_label_ids: this.removedLabelIds,\n      };\n\n      this.$emit('bulk-update', bulkUpdateData);\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-form id=\"epics-list-bulk-edit\" @submit.prevent=\"handleFormSubmitted\">\n    <gl-form-group :label=\"__('Labels')\" class=\"block gl-m-auto gl-mt-6 !gl-p-0\">\n      <labels-select-widget\n        :allow-label-edit=\"true\"\n        :allow-multiselect=\"true\"\n        :allow-scoped-labels=\"true\"\n        :selected-labels=\"existingSelectedLabels\"\n        :labels-fetch-path=\"labelsFetchPath\"\n        :labels-manage-path=\"labelsManagePath\"\n        :variant=\"$options.VARIANT_EMBEDDED\"\n        @onDropdownClose=\"handleSelectedLabels\"\n      />\n    </gl-form-group>\n  </gl-form>\n</template>\n","import { render, staticRenderFns } from \"./epics_list_bulk_edit_sidebar.vue?vue&type=template&id=e39c26be\"\nimport script from \"./epics_list_bulk_edit_sidebar.vue?vue&type=script&lang=js\"\nexport * from \"./epics_list_bulk_edit_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('div',{staticClass:\"labels-select-wrapper position-relative\",class:{\n    'is-standalone': _vm.isDropdownVariantStandalone,\n    'is-embedded': _vm.isDropdownVariantEmbedded,\n  }},[(_vm.isDropdownVariantSidebar)?[(!_vm.hideCollapsedView)?_c('dropdown-value-collapsed',{ref:\"dropdownButtonCollapsed\",attrs:{\"labels\":_vm.selectedLabels},on:{\"onValueClick\":_vm.handleCollapsedValueClick}}):_vm._e(),_vm._v(\" \"),_c('dropdown-title',{attrs:{\"allow-label-edit\":_vm.allowLabelEdit,\"labels-select-in-progress\":_vm.labelsSelectInProgress}}),_vm._v(\" \"),_c('dropdown-value',{attrs:{\"disable-labels\":_vm.labelsSelectInProgress},on:{\"onLabelRemove\":function($event){return _vm.$emit('onLabelRemove', $event)}}},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('dropdown-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.dropdownButtonVisible),expression:\"dropdownButtonVisible\"}],staticClass:\"gl-mt-2\"}),_vm._v(\" \"),(_vm.dropdownButtonVisible && _vm.showDropdownContents)?_c('dropdown-contents',{ref:\"dropdownContents\",attrs:{\"render-on-top\":!_vm.contentIsOnViewport}}):_vm._e()]:_vm._e(),_vm._v(\" \"),(_vm.isDropdownVariantStandalone || _vm.isDropdownVariantEmbedded)?[_c('dropdown-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.dropdownButtonVisible),expression:\"dropdownButtonVisible\"}]}),_vm._v(\" \"),(_vm.dropdownButtonVisible && _vm.showDropdownContents)?_c('dropdown-contents',{ref:\"dropdownContents\",attrs:{\"render-on-top\":!_vm.contentIsOnViewport}}):_vm._e()]:_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_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!./dropdown_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlIcon } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters } from 'vuex';\n\n// @deprecated This component should only be used when there is no GraphQL API.\n// In most cases you should use\n// `app/assets/javascripts/sidebar/components/labels/labels_select_widget` instead.\nexport default {\n  components: {\n    GlButton,\n    GlIcon,\n  },\n  computed: {\n    ...mapGetters([\n      'dropdownButtonText',\n      'isDropdownVariantStandalone',\n      'isDropdownVariantEmbedded',\n    ]),\n  },\n  methods: {\n    ...mapActions(['toggleDropdownContents']),\n    handleButtonClick(e) {\n      if (this.isDropdownVariantStandalone || this.isDropdownVariantEmbedded) {\n        this.toggleDropdownContents();\n      }\n\n      if (this.isDropdownVariantStandalone) {\n        e.stopPropagation();\n      }\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-button\n    class=\"labels-select-dropdown-button js-dropdown-button text-left gl-w-full\"\n    @click=\"handleButtonClick\"\n  >\n    <span class=\"dropdown-toggle-text flex-fill gl-pointer-events-none\">\n      {{ dropdownButtonText }}\n    </span>\n    <gl-icon name=\"chevron-down\" class=\"gl-pointer-events-none gl-float-right\" />\n  </gl-button>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_button.vue?vue&type=template&id=367b9f08\"\nimport script from \"./dropdown_button.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_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',{staticClass:\"labels-select-dropdown-button js-dropdown-button text-left gl-w-full\",on:{\"click\":_vm.handleButtonClick}},[_c('span',{staticClass:\"dropdown-toggle-text flex-fill gl-pointer-events-none\"},[_vm._v(\"\\n    \"+_vm._s(_vm.dropdownButtonText)+\"\\n  \")]),_vm._v(\" \"),_c('gl-icon',{staticClass:\"gl-pointer-events-none gl-float-right\",attrs:{\"name\":\"chevron-down\"}})],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_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\"","<script>\nimport { GlTooltipDirective, GlButton, GlFormInput, GlLink, GlLoadingIcon } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapState, mapActions } from 'vuex';\n\n// @deprecated This component should only be used when there is no GraphQL API.\n// In most cases you should use\n// `app/assets/javascripts/sidebar/components/labels/labels_select_widget/dropdown_contents_create_view.vue` instead.\nexport default {\n  components: {\n    GlButton,\n    GlFormInput,\n    GlLink,\n    GlLoadingIcon,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  data() {\n    return {\n      labelTitle: '',\n      selectedColor: '',\n    };\n  },\n  computed: {\n    ...mapState(['labelsCreateTitle', 'labelCreateInProgress']),\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  },\n  methods: {\n    ...mapActions(['toggleDropdownContents', 'toggleDropdownContentsCreateView', 'createLabel']),\n    getColorCode(color) {\n      return Object.keys(color).pop();\n    },\n    getColorName(color) {\n      return Object.values(color).pop();\n    },\n    handleColorClick(color) {\n      this.selectedColor = this.getColorCode(color);\n    },\n    handleCreateClick() {\n      this.createLabel({\n        title: this.labelTitle,\n        color: this.selectedColor,\n      });\n    },\n  },\n};\n</script>\n\n<template>\n  <div class=\"labels-select-contents-create\">\n    <div class=\"dropdown-title pt-0 pb-2 gl-mb-0 gl-flex gl-items-center\">\n      <gl-button\n        :aria-label=\"__('Go back')\"\n        category=\"tertiary\"\n        size=\"small\"\n        class=\"js-btn-back dropdown-header-button p-0\"\n        icon=\"arrow-left\"\n        @click=\"toggleDropdownContentsCreateView\"\n      />\n      <span class=\"flex-grow-1\">{{ labelsCreateTitle }}</span>\n      <gl-button\n        :aria-label=\"__('Close')\"\n        category=\"tertiary\"\n        size=\"small\"\n        class=\"dropdown-header-button p-0\"\n        icon=\"close\"\n        @click=\"toggleDropdownContents\"\n      />\n    </div>\n    <div class=\"dropdown-input\">\n      <gl-form-input\n        v-model.trim=\"labelTitle\"\n        :placeholder=\"__('Label name')\"\n        :autofocus=\"true\"\n        data-testid=\"label-title\"\n      />\n    </div>\n    <div class=\"dropdown-content px-2\">\n      <div class=\"suggest-colors suggest-colors-dropdown mt-0 mb-2\">\n        <gl-link\n          v-for=\"(color, index) in suggestedColors\"\n          :key=\"index\"\n          v-gl-tooltip:tooltipcontainer\n          :style=\"{ backgroundColor: getColorCode(color) }\"\n          :title=\"getColorName(color)\"\n          @click.prevent=\"handleColorClick(color)\"\n        />\n      </div>\n      <div class=\"color-input-container gl-flex\">\n        <gl-form-input\n          v-model.trim=\"selectedColor\"\n          class=\"-gl-mr-1 gl-mb-2 gl-w-8 gl-rounded-br-none gl-rounded-tr-none\"\n          type=\"color\"\n          :value=\"selectedColor\"\n          :placeholder=\"__('Open color picker')\"\n          data-testid=\"selected-color\"\n        />\n        <gl-form-input\n          v-model.trim=\"selectedColor\"\n          class=\"gl-mb-2 gl-rounded-bl-none gl-rounded-tl-none\"\n          :placeholder=\"__('Use custom color #FF0000')\"\n        />\n      </div>\n    </div>\n    <div class=\"dropdown-actions clearfix pt-2 px-2\">\n      <gl-button\n        :disabled=\"disableCreate\"\n        category=\"primary\"\n        variant=\"confirm\"\n        class=\"float-left gl-flex gl-items-center\"\n        data-testid=\"create-click\"\n        @click=\"handleCreateClick\"\n      >\n        <gl-loading-icon v-show=\"labelCreateInProgress\" size=\"sm\" :inline=\"true\" class=\"mr-1\" />\n        {{ __('Create') }}\n      </gl-button>\n      <gl-button\n        class=\"js-btn-cancel-create gl-float-right\"\n        @click=\"toggleDropdownContentsCreateView\"\n      >\n        {{ __('Cancel') }}\n      </gl-button>\n    </div>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_contents_create_view.vue?vue&type=template&id=2174706d\"\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"labels-select-contents-create\"},[_c('div',{staticClass:\"dropdown-title pt-0 pb-2 gl-mb-0 gl-flex gl-items-center\"},[_c('gl-button',{staticClass:\"js-btn-back dropdown-header-button p-0\",attrs:{\"aria-label\":_vm.__('Go back'),\"category\":\"tertiary\",\"size\":\"small\",\"icon\":\"arrow-left\"},on:{\"click\":_vm.toggleDropdownContentsCreateView}}),_vm._v(\" \"),_c('span',{staticClass:\"flex-grow-1\"},[_vm._v(_vm._s(_vm.labelsCreateTitle))]),_vm._v(\" \"),_c('gl-button',{staticClass:\"dropdown-header-button p-0\",attrs:{\"aria-label\":_vm.__('Close'),\"category\":\"tertiary\",\"size\":\"small\",\"icon\":\"close\"},on:{\"click\":_vm.toggleDropdownContents}})],1),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-input\"},[_c('gl-form-input',{attrs:{\"placeholder\":_vm.__('Label name'),\"autofocus\":true,\"data-testid\":\"label-title\"},model:{value:(_vm.labelTitle),callback:function ($$v) {_vm.labelTitle=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"labelTitle\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-content px-2\"},[_c('div',{staticClass:\"suggest-colors suggest-colors-dropdown mt-0 mb-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,style:({ backgroundColor: _vm.getColorCode(color) }),attrs:{\"title\":_vm.getColorName(color)},on:{\"click\":function($event){$event.preventDefault();return _vm.handleColorClick(color)}}})}),1),_vm._v(\" \"),_c('div',{staticClass:\"color-input-container gl-flex\"},[_c('gl-form-input',{staticClass:\"-gl-mr-1 gl-mb-2 gl-w-8 gl-rounded-br-none gl-rounded-tr-none\",attrs:{\"type\":\"color\",\"value\":_vm.selectedColor,\"placeholder\":_vm.__('Open color picker'),\"data-testid\":\"selected-color\"},model:{value:(_vm.selectedColor),callback:function ($$v) {_vm.selectedColor=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"selectedColor\"}}),_vm._v(\" \"),_c('gl-form-input',{staticClass:\"gl-mb-2 gl-rounded-bl-none gl-rounded-tl-none\",attrs:{\"placeholder\":_vm.__('Use custom color #FF0000')},model:{value:(_vm.selectedColor),callback:function ($$v) {_vm.selectedColor=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"selectedColor\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-actions clearfix pt-2 px-2\"},[_c('gl-button',{staticClass:\"float-left gl-flex gl-items-center\",attrs:{\"disabled\":_vm.disableCreate,\"category\":\"primary\",\"variant\":\"confirm\",\"data-testid\":\"create-click\"},on:{\"click\":_vm.handleCreateClick}},[_c('gl-loading-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.labelCreateInProgress),expression:\"labelCreateInProgress\"}],staticClass:\"mr-1\",attrs:{\"size\":\"sm\",\"inline\":true}}),_vm._v(\"\\n      \"+_vm._s(_vm.__('Create'))+\"\\n    \")],1),_vm._v(\" \"),_c('gl-button',{staticClass:\"js-btn-cancel-create gl-float-right\",on:{\"click\":_vm.toggleDropdownContentsCreateView}},[_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!./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>\nimport { GlLink, GlIcon } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\n// @deprecated This component should only be used when there is no GraphQL API.\n// In most cases you should use\n// `app/assets/javascripts/sidebar/components/labels/labels_select_widget/label_item.vue` instead.\nexport default {\n  functional: true,\n  props: {\n    label: {\n      type: Object,\n      required: true,\n    },\n    isLabelSet: {\n      type: Boolean,\n      required: true,\n    },\n    isLabelIndeterminate: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    highlight: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  render(h, { props, listeners }) {\n    const { label, highlight, isLabelSet, isLabelIndeterminate } = props;\n\n    const labelColorBox = h('span', {\n      class: 'dropdown-label-box gl-mr-2',\n      style: {\n        backgroundColor: label.color,\n      },\n      attrs: {\n        'data-testid': 'label-color-box',\n      },\n    });\n\n    const checkedIcon = h(GlIcon, {\n      class: {\n        'gl-mr-3 gl-shrink-0 has-tooltip': true,\n        hidden: !isLabelSet,\n      },\n      attrs: {\n        title: __('Selected for all items.'),\n        'data-testid': 'checked-icon',\n      },\n      props: {\n        name: 'mobile-issue-close',\n      },\n    });\n\n    const indeterminateIcon = h(GlIcon, {\n      class: {\n        'gl-mr-3 gl-shrink-0 has-tooltip': true,\n        hidden: !isLabelIndeterminate,\n      },\n      attrs: {\n        title: __('Selected for some items.'),\n        'data-testid': 'indeterminate-icon',\n      },\n      props: {\n        name: 'dash',\n      },\n    });\n\n    const noIcon = h('span', {\n      class: {\n        'gl-mr-5 gl-pr-3': true,\n        hidden: isLabelSet || isLabelIndeterminate,\n      },\n      attrs: {\n        'data-testid': 'no-icon',\n      },\n    });\n\n    const labelTitle = h('span', label.title);\n\n    const labelLink = h(\n      GlLink,\n      {\n        class: 'gl-flex gl-items-center label-item gl-text-default',\n        on: {\n          click: () => {\n            listeners.clickLabel(label);\n          },\n        },\n      },\n      [noIcon, checkedIcon, indeterminateIcon, labelColorBox, labelTitle],\n    );\n\n    return h(\n      'li',\n      {\n        class: {\n          'gl-block': true,\n          'gl-text-left': true,\n          'is-focused': highlight,\n        },\n      },\n      [labelLink],\n    );\n  },\n};\n</script>\n","var render, staticRenderFns\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 mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.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 {\n  GlIntersectionObserver,\n  GlLoadingIcon,\n  GlButton,\n  GlSearchBoxByType,\n  GlLink,\n} from '@gitlab/ui';\nimport fuzzaldrinPlus from 'fuzzaldrin-plus';\n// eslint-disable-next-line no-restricted-imports\nimport { mapState, mapGetters, mapActions } from 'vuex';\n\nimport { UP_KEY_CODE, DOWN_KEY_CODE, ENTER_KEY_CODE, ESC_KEY_CODE } from '~/lib/utils/keycodes';\n\nimport LabelItem from './label_item.vue';\n\n// @deprecated This component should only be used when there is no GraphQL API.\n// In most cases you should use\n// `app/assets/javascripts/sidebar/components/labels/labels_select_widget/dropdown_contents_labels_view.vue` instead.\nexport default {\n  components: {\n    GlIntersectionObserver,\n    GlLoadingIcon,\n    GlButton,\n    GlSearchBoxByType,\n    GlLink,\n    LabelItem,\n  },\n  data() {\n    return {\n      searchKey: '',\n      currentHighlightItem: -1,\n    };\n  },\n  computed: {\n    ...mapState([\n      'allowLabelCreate',\n      'allowMultiselect',\n      'labelsManagePath',\n      'labels',\n      'labelsFetchInProgress',\n      'labelsListTitle',\n      'footerCreateLabelTitle',\n      'footerManageLabelTitle',\n    ]),\n    ...mapGetters(['selectedLabelsList', 'isDropdownVariantSidebar', 'isDropdownVariantEmbedded']),\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    showDropdownFooter() {\n      return (\n        (this.isDropdownVariantSidebar || this.isDropdownVariantEmbedded) &&\n        (this.allowLabelCreate || this.labelsManagePath)\n      );\n    },\n    showNoMatchingResultsMessage() {\n      return Boolean(this.searchKey) && this.visibleLabels.length === 0;\n    },\n  },\n  watch: {\n    searchKey(value) {\n      // When there is search string present\n      // and there are matching results,\n      // highlight first item by default.\n      if (value && this.visibleLabels.length) {\n        this.currentHighlightItem = 0;\n      }\n    },\n  },\n  methods: {\n    ...mapActions([\n      'toggleDropdownContents',\n      'toggleDropdownContentsCreateView',\n      'fetchLabels',\n      'receiveLabelsSuccess',\n      'updateSelectedLabels',\n      'toggleDropdownContents',\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    handleComponentAppear() {\n      // We can avoid putting `catch` block here\n      // as failure is handled within actions.js already.\n      return this.fetchLabels().then(() => {\n        this.$refs.searchInput.focusInput();\n      });\n    },\n    /**\n     * We want to remove loaded labels to ensure component\n     * fetches fresh set of labels every time when shown.\n     */\n    handleComponentDisappear() {\n      this.receiveLabelsSuccess([]);\n    },\n    handleCreateLabelClick() {\n      this.receiveLabelsSuccess([]);\n      this.toggleDropdownContentsCreateView();\n    },\n    /**\n     * This method enables keyboard navigation support for\n     * the dropdown.\n     */\n    handleKeyDown(e) {\n      if (e.keyCode === UP_KEY_CODE && this.currentHighlightItem > 0) {\n        this.currentHighlightItem -= 1;\n      } else if (\n        e.keyCode === DOWN_KEY_CODE &&\n        this.currentHighlightItem < this.visibleLabels.length - 1\n      ) {\n        this.currentHighlightItem += 1;\n      } else if (e.keyCode === ENTER_KEY_CODE && this.currentHighlightItem > -1) {\n        this.updateSelectedLabels([this.visibleLabels[this.currentHighlightItem]]);\n        this.searchKey = '';\n\n        // Prevent parent form submission upon hitting enter.\n        e.preventDefault();\n      } else if (e.keyCode === ESC_KEY_CODE) {\n        this.toggleDropdownContents();\n      }\n\n      if (e.keyCode !== ESC_KEY_CODE) {\n        // Scroll the list only after highlighting\n        // styles are rendered completely.\n        this.$nextTick(() => {\n          this.scrollIntoViewIfNeeded();\n        });\n      }\n    },\n    handleLabelClick(label) {\n      this.updateSelectedLabels([label]);\n      if (!this.allowMultiselect) this.toggleDropdownContents();\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-intersection-observer @appear=\"handleComponentAppear\" @disappear=\"handleComponentDisappear\">\n    <div\n      class=\"labels-select-contents-list js-labels-list\"\n      data-testid=\"labels-list\"\n      @keydown=\"handleKeyDown\"\n    >\n      <div\n        v-if=\"isDropdownVariantSidebar || isDropdownVariantEmbedded\"\n        class=\"dropdown-title gl-flex gl-items-center !gl-pb-3 gl-pt-0\"\n        data-testid=\"dropdown-title\"\n      >\n        <span class=\"flex-grow-1\">{{ labelsListTitle }}</span>\n        <gl-button\n          :aria-label=\"__('Close')\"\n          category=\"tertiary\"\n          size=\"small\"\n          class=\"dropdown-header-button !gl-p-0\"\n          icon=\"close\"\n          @click=\"toggleDropdownContents\"\n        />\n      </div>\n      <div class=\"dropdown-input\" @click.stop=\"() => {}\">\n        <gl-search-box-by-type\n          ref=\"searchInput\"\n          v-model=\"searchKey\"\n          :disabled=\"labelsFetchInProgress\"\n          data-testid=\"dropdown-input-field\"\n        />\n      </div>\n      <div ref=\"labelsListContainer\" class=\"dropdown-content\" data-testid=\"dropdown-content\">\n        <gl-loading-icon\n          v-if=\"labelsFetchInProgress\"\n          class=\"labels-fetch-loading gl-h-full gl-w-full gl-items-center\"\n          size=\"lg\"\n        />\n        <ul v-else class=\"list-unstyled gl-mb-0 gl-break-anywhere\">\n          <label-item\n            v-for=\"(label, index) in visibleLabels\"\n            :key=\"label.id\"\n            :label=\"label\"\n            :is-label-set=\"label.set\"\n            :is-label-indeterminate=\"label.indeterminate\"\n            :highlight=\"index === currentHighlightItem\"\n            @clickLabel=\"handleLabelClick(label)\"\n          />\n          <li\n            v-show=\"showNoMatchingResultsMessage\"\n            class=\"gl-p-3 gl-text-center\"\n            data-testid=\"no-matching-results\"\n          >\n            {{ __('No matching results') }}\n          </li>\n        </ul>\n      </div>\n      <div v-if=\"showDropdownFooter\" class=\"dropdown-footer\" data-testid=\"dropdown-footer\">\n        <ul class=\"list-unstyled\">\n          <li v-if=\"allowLabelCreate\">\n            <gl-link\n              class=\"flex-row label-item gl-flex gl-w-full gl-break-all\"\n              data-testid=\"create-label-link\"\n              @click=\"handleCreateLabelClick\"\n            >\n              {{ footerCreateLabelTitle }}\n            </gl-link>\n          </li>\n          <li v-if=\"labelsManagePath\">\n            <gl-link :href=\"labelsManagePath\" class=\"flex-row label-item gl-flex gl-break-all\">\n              {{ footerManageLabelTitle }}\n            </gl-link>\n          </li>\n        </ul>\n      </div>\n    </div>\n  </gl-intersection-observer>\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\"","<script>\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapState } from 'vuex';\n\nimport DropdownContentsCreateView from './dropdown_contents_create_view.vue';\nimport DropdownContentsLabelsView from './dropdown_contents_labels_view.vue';\n\n// @deprecated This component should only be used when there is no GraphQL API.\n// In most cases you should use\n// `app/assets/javascripts/sidebar/components/labels/labels_select_widget/dropdown_contents.vue` instead.\nexport default {\n  components: {\n    DropdownContentsLabelsView,\n    DropdownContentsCreateView,\n  },\n  props: {\n    renderOnTop: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  computed: {\n    ...mapState(['showDropdownContentsCreateView']),\n    ...mapGetters(['isDropdownVariantSidebar']),\n    dropdownContentsView() {\n      if (this.showDropdownContentsCreateView) {\n        return 'dropdown-contents-create-view';\n      }\n      return 'dropdown-contents-labels-view';\n    },\n    directionStyle() {\n      const bottom = this.isDropdownVariantSidebar ? '3rem' : '2rem';\n      return this.renderOnTop ? { bottom } : {};\n    },\n  },\n};\n</script>\n\n<template>\n  <div\n    class=\"labels-select-dropdown-contents gl-absolute gl-my-2 gl-w-full gl-rounded-base gl-py-3\"\n    data-testid=\"labels-select-dropdown-contents\"\n    :style=\"directionStyle\"\n  >\n    <component :is=\"dropdownContentsView\" />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_contents_labels_view.vue?vue&type=template&id=35dcbbc8\"\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.handleComponentAppear,\"disappear\":_vm.handleComponentDisappear}},[_c('div',{staticClass:\"labels-select-contents-list js-labels-list\",attrs:{\"data-testid\":\"labels-list\"},on:{\"keydown\":_vm.handleKeyDown}},[(_vm.isDropdownVariantSidebar || _vm.isDropdownVariantEmbedded)?_c('div',{staticClass:\"dropdown-title gl-flex gl-items-center !gl-pb-3 gl-pt-0\",attrs:{\"data-testid\":\"dropdown-title\"}},[_c('span',{staticClass:\"flex-grow-1\"},[_vm._v(_vm._s(_vm.labelsListTitle))]),_vm._v(\" \"),_c('gl-button',{staticClass:\"dropdown-header-button !gl-p-0\",attrs:{\"aria-label\":_vm.__('Close'),\"category\":\"tertiary\",\"size\":\"small\",\"icon\":\"close\"},on:{\"click\":_vm.toggleDropdownContents}})],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-input\",on:{\"click\":function($event){$event.stopPropagation();return (() => {}).apply(null, arguments)}}},[_c('gl-search-box-by-type',{ref:\"searchInput\",attrs:{\"disabled\":_vm.labelsFetchInProgress,\"data-testid\":\"dropdown-input-field\"},model:{value:(_vm.searchKey),callback:function ($$v) {_vm.searchKey=$$v},expression:\"searchKey\"}})],1),_vm._v(\" \"),_c('div',{ref:\"labelsListContainer\",staticClass:\"dropdown-content\",attrs:{\"data-testid\":\"dropdown-content\"}},[(_vm.labelsFetchInProgress)?_c('gl-loading-icon',{staticClass:\"labels-fetch-loading gl-h-full gl-w-full gl-items-center\",attrs:{\"size\":\"lg\"}}):_c('ul',{staticClass:\"list-unstyled gl-mb-0 gl-break-anywhere\"},[_vm._l((_vm.visibleLabels),function(label,index){return _c('label-item',{key:label.id,attrs:{\"label\":label,\"is-label-set\":label.set,\"is-label-indeterminate\":label.indeterminate,\"highlight\":index === _vm.currentHighlightItem},on:{\"clickLabel\":function($event){return _vm.handleLabelClick(label)}}})}),_vm._v(\" \"),_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNoMatchingResultsMessage),expression:\"showNoMatchingResultsMessage\"}],staticClass:\"gl-p-3 gl-text-center\",attrs:{\"data-testid\":\"no-matching-results\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.__('No matching results'))+\"\\n        \")])],2)],1),_vm._v(\" \"),(_vm.showDropdownFooter)?_c('div',{staticClass:\"dropdown-footer\",attrs:{\"data-testid\":\"dropdown-footer\"}},[_c('ul',{staticClass:\"list-unstyled\"},[(_vm.allowLabelCreate)?_c('li',[_c('gl-link',{staticClass:\"flex-row label-item gl-flex gl-w-full gl-break-all\",attrs:{\"data-testid\":\"create-label-link\"},on:{\"click\":_vm.handleCreateLabelClick}},[_vm._v(\"\\n            \"+_vm._s(_vm.footerCreateLabelTitle)+\"\\n          \")])],1):_vm._e(),_vm._v(\" \"),(_vm.labelsManagePath)?_c('li',[_c('gl-link',{staticClass:\"flex-row label-item gl-flex gl-break-all\",attrs:{\"href\":_vm.labelsManagePath}},[_vm._v(\"\\n            \"+_vm._s(_vm.footerManageLabelTitle)+\"\\n          \")])],1):_vm._e()])]):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./dropdown_contents.vue?vue&type=template&id=7fa9fab8\"\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('div',{staticClass:\"labels-select-dropdown-contents gl-absolute gl-my-2 gl-w-full gl-rounded-base gl-py-3\",style:(_vm.directionStyle),attrs:{\"data-testid\":\"labels-select-dropdown-contents\"}},[_c(_vm.dropdownContentsView,{tag:\"component\"})],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_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!./dropdown_title.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlLoadingIcon } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapState, mapActions } from 'vuex';\n\n// @deprecated This component should only be used when there is no GraphQL API.\n// In most cases you should use\n// `app/assets/javascripts/sidebar/components/labels/labels_select_widget/dropdown_header.vue` instead.\nexport default {\n  components: {\n    GlButton,\n    GlLoadingIcon,\n  },\n  props: {\n    labelsSelectInProgress: {\n      type: Boolean,\n      required: true,\n    },\n  },\n  computed: {\n    ...mapState(['allowLabelEdit', 'labelsFetchInProgress']),\n  },\n  methods: {\n    ...mapActions(['toggleDropdownContents']),\n  },\n};\n</script>\n\n<template>\n  <div class=\"hide-collapsed gl-mb-0 gl-mb-2 gl-font-bold gl-leading-20 gl-text-default\">\n    {{ __('Labels') }}\n    <template v-if=\"allowLabelEdit\">\n      <gl-loading-icon v-show=\"labelsSelectInProgress\" size=\"sm\" inline />\n      <gl-button\n        category=\"tertiary\"\n        size=\"small\"\n        class=\"js-sidebar-dropdown-toggle gl-float-right -gl-mr-2\"\n        @click=\"toggleDropdownContents\"\n      >\n        {{ __('Edit') }}\n      </gl-button>\n    </template>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_title.vue?vue&type=template&id=73148436\"\nimport script from \"./dropdown_title.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_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-mb-0 gl-mb-2 gl-font-bold gl-leading-20 gl-text-default\"},[_vm._v(\"\\n  \"+_vm._s(_vm.__('Labels'))+\"\\n  \"),(_vm.allowLabelEdit)?[_c('gl-loading-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.labelsSelectInProgress),expression:\"labelsSelectInProgress\"}],attrs:{\"size\":\"sm\",\"inline\":\"\"}}),_vm._v(\" \"),_c('gl-button',{staticClass:\"js-sidebar-dropdown-toggle gl-float-right -gl-mr-2\",attrs:{\"category\":\"tertiary\",\"size\":\"small\"},on:{\"click\":_vm.toggleDropdownContents}},[_vm._v(\"\\n      \"+_vm._s(_vm.__('Edit'))+\"\\n    \")])]:_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_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 { GlLabel } from '@gitlab/ui';\nimport { sortBy } from 'lodash';\n// eslint-disable-next-line no-restricted-imports\nimport { mapState } from 'vuex';\n\nimport { isScopedLabel } from '~/lib/utils/common_utils';\n\n// @deprecated This component should only be used when there is no GraphQL API.\n// In most cases you should use\n// `app/assets/javascripts/sidebar/components/labels/labels_select_widget/dropdown_value.vue` instead.\nexport default {\n  components: {\n    GlLabel,\n  },\n  props: {\n    disableLabels: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  computed: {\n    ...mapState([\n      'selectedLabels',\n      'allowLabelRemove',\n      'allowScopedLabels',\n      'labelsFilterBasePath',\n      'labelsFilterParam',\n    ]),\n    sortedSelectedLabels() {\n      return sortBy(this.selectedLabels, (label) => (isScopedLabel(label) ? 0 : 1));\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  },\n};\n</script>\n\n<template>\n  <div\n    :class=\"{\n      'has-labels': selectedLabels.length,\n    }\"\n    class=\"hide-collapsed value issuable-show-labels js-value\"\n  >\n    <span v-if=\"!selectedLabels.length\" class=\"gl-text-subtle\">\n      <slot></slot>\n    </span>\n    <template v-for=\"label in sortedSelectedLabels\" v-else>\n      <gl-label\n        :key=\"label.id\"\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=\"allowLabelRemove\"\n        :disabled=\"disableLabels\"\n        tooltip-placement=\"top\"\n        @close=\"$emit('onLabelRemove', label.id)\"\n      />\n    </template>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_value.vue?vue&type=template&id=1831fb6d\"\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"hide-collapsed value issuable-show-labels js-value\",class:{\n    'has-labels': _vm.selectedLabels.length,\n  }},[(!_vm.selectedLabels.length)?_c('span',{staticClass:\"gl-text-subtle\"},[_vm._t(\"default\")],2):_vm._l((_vm.sortedSelectedLabels),function(label){return [_c('gl-label',{key:label.id,attrs:{\"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.allowLabelRemove,\"disabled\":_vm.disableLabels,\"tooltip-placement\":\"top\"},on:{\"close\":function($event){return _vm.$emit('onLabelRemove', 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_collapsed.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.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_collapsed.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { s__, sprintf } from '~/locale';\n\n// @deprecated This component should only be used when there is no GraphQL API.\n// In most cases you should use\n// `app/assets/javascripts/sidebar/components/labels/labels_select_widget` instead.\nexport default {\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  components: {\n    GlIcon,\n  },\n  props: {\n    labels: {\n      type: Array,\n      required: true,\n    },\n  },\n  computed: {\n    labelsList() {\n      const labelsString = this.labels.length\n        ? this.labels\n            .slice(0, 5)\n            .map((label) => label.title)\n            .join(', ')\n        : s__('LabelSelect|Labels');\n\n      if (this.labels.length > 5) {\n        return sprintf(s__('LabelSelect|%{labelsString}, and %{remainingLabelCount} more'), {\n          labelsString,\n          remainingLabelCount: this.labels.length - 5,\n        });\n      }\n\n      return labelsString;\n    },\n  },\n  methods: {\n    handleClick() {\n      this.$emit('onValueClick');\n    },\n  },\n};\n</script>\n\n<template>\n  <div v-gl-tooltip.left.viewport=\"labelsList\" class=\"sidebar-collapsed-icon\" @click=\"handleClick\">\n    <gl-icon name=\"labels\" />\n    <span>{{ labels.length }}</span>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_value_collapsed.vue?vue&type=template&id=b1c5db08\"\nimport script from \"./dropdown_value_collapsed.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_value_collapsed.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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\",value:(_vm.labelsList),expression:\"labelsList\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon\",on:{\"click\":_vm.handleClick}},[_c('gl-icon',{attrs:{\"name\":\"labels\"}}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.labels.length))])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport Vue from 'vue';\n// eslint-disable-next-line no-restricted-imports\nimport Vuex, { mapState, mapActions, mapGetters } from 'vuex';\nimport { isInViewport } from '~/lib/utils/common_utils';\nimport { __ } from '~/locale';\nimport { VARIANT_SIDEBAR } from '~/sidebar/components/labels/labels_select_widget/constants';\n\nimport DropdownButton from './dropdown_button.vue';\nimport DropdownContents from './dropdown_contents.vue';\nimport DropdownTitle from './dropdown_title.vue';\nimport DropdownValue from './dropdown_value.vue';\nimport DropdownValueCollapsed from './dropdown_value_collapsed.vue';\nimport labelsSelectModule from './store';\n\nVue.use(Vuex);\n\n// @deprecated This component should only be used when there is no GraphQL API.\n// In most cases you should use\n// `app/assets/javascripts/sidebar/components/labels/labels_select_widget/labels_select_root.vue` instead.\nexport default {\n  store: new Vuex.Store(labelsSelectModule()),\n  components: {\n    DropdownTitle,\n    DropdownValue,\n    DropdownButton,\n    DropdownContents,\n    DropdownValueCollapsed,\n  },\n  props: {\n    allowLabelRemove: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    allowLabelEdit: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    allowLabelCreate: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    allowMultiselect: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    allowScopedLabels: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    allowMultipleScopedLabels: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    variant: {\n      type: String,\n      required: false,\n      default: VARIANT_SIDEBAR,\n    },\n    selectedLabels: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n    hideCollapsedView: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    labelsSelectInProgress: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    labelsFetchPath: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    labelsManagePath: {\n      type: String,\n      required: false,\n      default: '',\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    isEditing: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      contentIsOnViewport: true,\n    };\n  },\n  computed: {\n    ...mapState(['showDropdownButton', 'showDropdownContents']),\n    ...mapGetters([\n      'isDropdownVariantSidebar',\n      'isDropdownVariantStandalone',\n      'isDropdownVariantEmbedded',\n    ]),\n    dropdownButtonVisible() {\n      return this.isDropdownVariantSidebar ? this.showDropdownButton : true;\n    },\n  },\n  watch: {\n    selectedLabels(selectedLabels) {\n      this.setInitialState({\n        selectedLabels,\n      });\n      setTimeout(() => this.updateLabelsSetState(), 100);\n    },\n    showDropdownContents(showDropdownContents) {\n      this.setContentIsOnViewport(showDropdownContents);\n    },\n    isEditing(newVal) {\n      if (newVal) {\n        this.toggleDropdownContents();\n      }\n    },\n  },\n  mounted() {\n    this.setInitialState({\n      variant: this.variant,\n      allowLabelRemove: this.allowLabelRemove,\n      allowLabelEdit: this.allowLabelEdit,\n      allowLabelCreate: this.allowLabelCreate,\n      allowMultiselect: this.allowMultiselect,\n      allowScopedLabels: this.allowScopedLabels,\n      allowMultipleScopedLabels: this.allowMultipleScopedLabels,\n      dropdownButtonText: this.dropdownButtonText,\n      selectedLabels: this.selectedLabels,\n      labelsFetchPath: this.labelsFetchPath,\n      labelsManagePath: this.labelsManagePath,\n      labelsFilterBasePath: this.labelsFilterBasePath,\n      labelsFilterParam: this.labelsFilterParam,\n      labelsListTitle: this.labelsListTitle,\n      labelsCreateTitle: this.labelsCreateTitle,\n      footerCreateLabelTitle: this.footerCreateLabelTitle,\n      footerManageLabelTitle: this.footerManageLabelTitle,\n    });\n\n    this.$store.subscribeAction({\n      after: this.handleVuexActionDispatch,\n    });\n\n    document.addEventListener('mousedown', this.handleDocumentMousedown);\n    document.addEventListener('click', this.handleDocumentClick);\n\n    this.updateLabelsSetState();\n  },\n  beforeDestroy() {\n    document.removeEventListener('mousedown', this.handleDocumentMousedown);\n    document.removeEventListener('click', this.handleDocumentClick);\n  },\n  methods: {\n    ...mapActions(['setInitialState', 'toggleDropdownContents', 'updateLabelsSetState']),\n    /**\n     * This method differentiates between\n     * dispatched actions and calls necessary method.\n     */\n    handleVuexActionDispatch(action, state) {\n      if (\n        action.type === 'toggleDropdownContents' &&\n        !state.showDropdownButton &&\n        !state.showDropdownContents\n      ) {\n        const filterTouchedLabelsFn = (label) => label.touched;\n        const filterSetLabelsFn = (label) => label.set;\n        const labels = this.isDropdownVariantEmbedded\n          ? state.labels.filter(filterSetLabelsFn)\n          : state.labels.filter(filterTouchedLabelsFn);\n        this.handleDropdownClose(labels, state.labels.filter(filterTouchedLabelsFn));\n      }\n    },\n    /**\n     * This method stores a mousedown event's target.\n     * Required by the click listener because the click\n     * event itself has no reference to this element.\n     */\n    handleDocumentMousedown({ target }) {\n      this.mousedownTarget = target;\n    },\n    /**\n     * This method listens for document-wide click event\n     * and toggle dropdown if user clicks anywhere outside\n     * the dropdown while dropdown is visible.\n     */\n    handleDocumentClick({ target }) {\n      // We also perform the toggle exception check for the\n      // last mousedown event's target to avoid hiding the\n      // box when the mousedown happened inside the box and\n      // only the mouseup did not.\n      if (\n        this.showDropdownContents &&\n        !this.preventDropdownToggleOnClick(target) &&\n        !this.preventDropdownToggleOnClick(this.mousedownTarget)\n      ) {\n        this.toggleDropdownContents();\n      }\n    },\n    /**\n     * This method checks whether a given click target\n     * should prevent the dropdown from being toggled.\n     */\n    preventDropdownToggleOnClick(target) {\n      // This approach of element detection is needed\n      // as the dropdown wrapper is not using `GlDropdown` as\n      // it will also require us to use `BDropdownForm`\n      // which is yet to be implemented in GitLab UI.\n      const hasExceptionClass = [\n        'js-dropdown-button',\n        'js-btn-cancel-create',\n        'js-sidebar-dropdown-toggle',\n      ].some(\n        (className) =>\n          target?.classList.contains(className) ||\n          target?.parentElement?.classList.contains(className),\n      );\n\n      const hasExceptionParent = ['.js-btn-back', '.js-labels-list'].some((className) =>\n        target?.closest(className),\n      );\n\n      const isInDropdownButtonCollapsed = this.$refs.dropdownButtonCollapsed?.$el.contains(target);\n\n      const isInDropdownContents = this.$refs.dropdownContents?.$el.contains(target);\n\n      return (\n        hasExceptionClass ||\n        hasExceptionParent ||\n        isInDropdownButtonCollapsed ||\n        isInDropdownContents\n      );\n    },\n    handleDropdownClose(labels, touchedLabels) {\n      // Only emit label updates if there are any\n      // labels to update on UI.\n      if (labels.length) this.$emit('updateSelectedLabels', labels);\n      this.$emit('onDropdownClose', touchedLabels);\n    },\n    handleCollapsedValueClick() {\n      this.$emit('toggleCollapse');\n    },\n    setContentIsOnViewport(showDropdownContents) {\n      if (!showDropdownContents) {\n        this.contentIsOnViewport = true;\n\n        return;\n      }\n\n      this.$nextTick(() => {\n        if (this.$refs.dropdownContents) {\n          this.contentIsOnViewport = isInViewport(this.$refs.dropdownContents.$el);\n        }\n      });\n    },\n  },\n};\n</script>\n\n<template>\n  <div\n    class=\"labels-select-wrapper position-relative\"\n    :class=\"{\n      'is-standalone': isDropdownVariantStandalone,\n      'is-embedded': isDropdownVariantEmbedded,\n    }\"\n  >\n    <template v-if=\"isDropdownVariantSidebar\">\n      <dropdown-value-collapsed\n        v-if=\"!hideCollapsedView\"\n        ref=\"dropdownButtonCollapsed\"\n        :labels=\"selectedLabels\"\n        @onValueClick=\"handleCollapsedValueClick\"\n      />\n      <dropdown-title\n        :allow-label-edit=\"allowLabelEdit\"\n        :labels-select-in-progress=\"labelsSelectInProgress\"\n      />\n      <dropdown-value\n        :disable-labels=\"labelsSelectInProgress\"\n        @onLabelRemove=\"$emit('onLabelRemove', $event)\"\n      >\n        <slot></slot>\n      </dropdown-value>\n      <dropdown-button v-show=\"dropdownButtonVisible\" class=\"gl-mt-2\" />\n      <dropdown-contents\n        v-if=\"dropdownButtonVisible && showDropdownContents\"\n        ref=\"dropdownContents\"\n        :render-on-top=\"!contentIsOnViewport\"\n      />\n    </template>\n    <template v-if=\"isDropdownVariantStandalone || isDropdownVariantEmbedded\">\n      <dropdown-button v-show=\"dropdownButtonVisible\" />\n      <dropdown-contents\n        v-if=\"dropdownButtonVisible && showDropdownContents\"\n        ref=\"dropdownContents\"\n        :render-on-top=\"!contentIsOnViewport\"\n      />\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!./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\"","import { render, staticRenderFns } from \"./labels_select_root.vue?vue&type=template&id=6fee69f9\"\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 { initWorkItemsRoot } from '~/work_items';\n\ninitWorkItemsRoot();\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","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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemConvert\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemConvertInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemConvert\"},\"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\":189}};\n    doc.loc.source = {\"body\":\"#import \\\"./work_item.fragment.graphql\\\"\\n\\nmutation workItemConvert($input: WorkItemConvertInput!) {\\n  workItemConvert(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[\"workItemConvert\"] = oneQuery(doc, \"workItemConvert\");\n        \n","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","/**\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","import { stepIndexAndWrap } from './filtered_search_utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst DEFER_TO_INITIAL_VALUE = -1;\nconst NO_ACTIVE_ITEM = -2;\nvar script = {\n  name: 'GlFilteredSearchSuggestionList',\n  inject: ['suggestionsListClass', 'termsAsTokens'],\n  provide() {\n    return {\n      filteredSearchSuggestionListInstance: this\n    };\n  },\n  props: {\n    /**\n     * Value to be initially selected in list.\n     */\n    initialValue: {\n      required: false,\n      validator: () => true,\n      default: null\n    }\n  },\n  data() {\n    return {\n      activeIdx: DEFER_TO_INITIAL_VALUE,\n      registeredItems: []\n    };\n  },\n  computed: {\n    initialActiveIdx() {\n      return this.registeredItems.findIndex(item => this.valuesMatch(item.value, this.initialValue));\n    },\n    initialActiveItem() {\n      return this.registeredItems[this.initialActiveIdx];\n    },\n    activeItem() {\n      if (!this.termsAsTokens() && this.activeIdx === NO_ACTIVE_ITEM) return null;\n      if (this.activeIdx === DEFER_TO_INITIAL_VALUE) return this.initialActiveItem;\n      return this.registeredItems[this.activeIdx];\n    },\n    listClasses() {\n      return [this.suggestionsListClass(), 'dropdown-menu gl-filtered-search-suggestion-list'];\n    }\n  },\n  watch: {\n    initialValue() {\n      this.activeIdx = DEFER_TO_INITIAL_VALUE;\n    }\n  },\n  methods: {\n    valuesMatch(firstValue, secondValue) {\n      if (firstValue == null || secondValue == null) return false;\n      return typeof firstValue === 'string' && typeof secondValue === 'string' ? firstValue.toLowerCase() === secondValue.toLowerCase() : firstValue === secondValue;\n    },\n    register(item) {\n      this.registeredItems.push(item);\n    },\n    unregister(item) {\n      const idx = this.registeredItems.indexOf(item);\n      if (idx !== -1) {\n        this.registeredItems.splice(idx, 1);\n        if (idx === this.activeIdx) {\n          this.activeIdx = DEFER_TO_INITIAL_VALUE;\n        }\n      }\n    },\n    nextItem() {\n      if (this.termsAsTokens()) {\n        this.stepItem(1);\n      } else {\n        this.stepItem(1, this.registeredItems.length - 1);\n      }\n    },\n    prevItem() {\n      if (this.termsAsTokens()) {\n        this.stepItem(-1);\n      } else {\n        this.stepItem(-1, 0);\n      }\n    },\n    stepItem(direction, endIdx) {\n      if (!this.termsAsTokens() && (this.activeIdx === endIdx || this.activeIdx === DEFER_TO_INITIAL_VALUE && this.initialActiveIdx === endIdx)) {\n        // The user wants to move past the end of the list, so ensure nothing is selected.\n        this.activeIdx = NO_ACTIVE_ITEM;\n      } else {\n        const index = this.activeIdx === DEFER_TO_INITIAL_VALUE ?\n        // Currently active item is set by initialValue (i.e., text input matching),\n        // so step relative to that.\n        this.initialActiveIdx :\n        // Otherwise, step relative to the explicitly (via up/down arrows) activated item.\n        this.activeIdx;\n        this.activeIdx = stepIndexAndWrap(index, direction, this.registeredItems.length);\n      }\n    },\n    getValue() {\n      return this.activeItem ? this.activeItem.value : 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('ul',{class:_vm.listClasses},[_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 last from 'lodash/last';\nimport { Portal } from 'portal-vue';\nimport { LEFT_MOUSE_BUTTON } from '../../../utils/constants';\nimport GlFilteredSearchSuggestion from './filtered_search_suggestion';\nimport GlFilteredSearchSuggestionList from './filtered_search_suggestion_list';\nimport { TERM_TOKEN_TYPE, splitOnQuotes, match, wrapTokenInQuotes } from './filtered_search_utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n// We need some helpers to ensure @vue/compat compatibility\n// @vue/compat will render comment nodes for v-if and comments in HTML\n// Also it makes use of fragments - both comments and nodes are Symbols.\n// In Vue3 all of them (Comment, Fragment) are exposed as named exports on vue module\n// However we want to maintain compatibility with Vue2, so taking this hacky approach\n// relying on Symbol.toString()\n\n// I'm keeping this directly here instead of helper to increase probability of\n// fixing ASAP and because I don't want this helper to be reused\n// FIXME: replace with Symbols when we will switch to Vue3\n\nconst isVue3Comment = vnode => {\n  var _vnode$type, _vnode$type$toString;\n  return (vnode === null || vnode === void 0 ? void 0 : (_vnode$type = vnode.type) === null || _vnode$type === void 0 ? void 0 : (_vnode$type$toString = _vnode$type.toString) === null || _vnode$type$toString === void 0 ? void 0 : _vnode$type$toString.call(_vnode$type)) === 'Symbol(Comment)';\n};\nconst isVue3Fragment = vnode => {\n  var _vnode$type2, _vnode$type2$toString;\n  return (vnode === null || vnode === void 0 ? void 0 : (_vnode$type2 = vnode.type) === null || _vnode$type2 === void 0 ? void 0 : (_vnode$type2$toString = _vnode$type2.toString) === null || _vnode$type2$toString === void 0 ? void 0 : _vnode$type2$toString.call(_vnode$type2)) === 'Symbol(Fragment)';\n};\nconst isVNodeEmpty = vnode => {\n  if (isVue3Fragment(vnode)) {\n    // vnode.children might be an array or single node in edge cases\n    return Array.isArray(vnode.children) ?\n    // eslint-disable-next-line unicorn/no-array-callback-reference\n    vnode.children.every(isVNodeEmpty) : isVNodeEmpty(vnode.children);\n  }\n  if (isVue3Comment(vnode)) {\n    return true;\n  }\n  return false;\n};\nconst isSlotNotEmpty = slot => {\n  if (!slot) {\n    return false;\n  }\n  const vnodes = typeof slot === 'function' ? slot() : slot;\n  // eslint-disable-next-line unicorn/no-array-callback-reference\n  return !(Array.isArray(vnodes) ? vnodes.every(isVNodeEmpty) : isVNodeEmpty(vnodes));\n};\nvar script = {\n  name: 'GlFilteredSearchTokenSegment',\n  components: {\n    Portal,\n    GlFilteredSearchSuggestionList,\n    GlFilteredSearchSuggestion\n  },\n  inject: ['portalName', 'alignSuggestions', 'termsAsTokens'],\n  inheritAttrs: false,\n  props: {\n    /**\n     * If this token segment is currently being edited.\n     */\n    active: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    isTerm: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    label: {\n      type: String,\n      required: false,\n      default: 'Search'\n    },\n    multiSelect: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    options: {\n      type: Array,\n      required: false,\n      default: () => null\n    },\n    optionTextField: {\n      type: String,\n      required: false,\n      default: 'title'\n    },\n    customInputKeydownHandler: {\n      type: Function,\n      required: false,\n      default: () => () => false\n    },\n    /**\n     * Current term value\n     */\n    value: {\n      required: true,\n      validator: () => true\n    },\n    /**\n     * HTML attributes to add to the search input\n     */\n    searchInputAttributes: {\n      type: Object,\n      required: false,\n      default: () => ({})\n    },\n    /**\n     * If this is the last token\n     */\n    isLastToken: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    currentValue: {\n      type: Array,\n      required: false,\n      default: () => []\n    },\n    cursorPosition: {\n      type: String,\n      required: false,\n      default: 'end',\n      validator: value => ['start', 'end'].includes(value)\n    },\n    viewOnly: {\n      type: Boolean,\n      required: false,\n      default: false\n    }\n  },\n  data() {\n    return {\n      fallbackValue: this.value\n    };\n  },\n  computed: {\n    hasTermSuggestion() {\n      if (!this.termsAsTokens()) return false;\n      if (!this.options) return false;\n      return this.options.some(_ref => {\n        let {\n          value\n        } = _ref;\n        return value === TERM_TOKEN_TYPE;\n      });\n    },\n    matchingOption() {\n      var _this$options;\n      return (_this$options = this.options) === null || _this$options === void 0 ? void 0 : _this$options.find(o => o.value === this.value);\n    },\n    nonMultipleValue() {\n      return Array.isArray(this.value) ? last(this.value) : this.value;\n    },\n    inputValue: {\n      get() {\n        if (this.isTerm) {\n          return this.nonMultipleValue;\n        }\n        return this.matchingOption ? this.matchingOption[this.optionTextField] : this.nonMultipleValue;\n      },\n      set(inputValue) {\n        /**\n         * Emitted when this token segment's value changes.\n         *\n         * @type {object} option The current option.\n         */\n        this.$emit('input', inputValue);\n      }\n    },\n    hasOptionsOrSuggestions() {\n      var _this$options2;\n      // eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots\n      return ((_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.length) || isSlotNotEmpty(this.$slots.suggestions);\n    },\n    defaultSuggestedValue() {\n      var _this$options$;\n      if (!this.options) {\n        return this.nonMultipleValue;\n      }\n      if (this.value) {\n        const option = this.getMatchingOptionForInputValue(this.inputValue) || this.getMatchingOptionForInputValue(this.inputValue, {\n          loose: true\n        });\n        if (option) return option.value;\n        if (this.hasTermSuggestion) return TERM_TOKEN_TYPE;\n        return null;\n      }\n      const defaultOption = this.options.find(op => op.default);\n      if (defaultOption) {\n        return defaultOption.value;\n      }\n      return this.isTerm ? undefined : (_this$options$ = this.options[0]) === null || _this$options$ === void 0 ? void 0 : _this$options$.value;\n    },\n    containerAttributes() {\n      return this.isLastToken && !this.active && this.currentValue.length > 1 && this.searchInputAttributes;\n    }\n  },\n  watch: {\n    active: {\n      immediate: true,\n      handler(newValue) {\n        if (newValue) {\n          this.activate();\n        } else {\n          this.deactivate();\n        }\n      }\n    },\n    inputValue(newValue) {\n      if (this.termsAsTokens()) return;\n      if (this.multiSelect) return;\n\n      /**\n       * This is a temporary workaround to implement the same behaviour\n       * implemented in https://gitlab.com/gitlab-org/gitlab-ui/-/issues/2381\n       * for tokens with `terms-as-tokens=false` and `multi-select=false`.\n       *\n       * We're aiming to remove this temporary fix when\n       * https://gitlab.com/groups/gitlab-org/-/epics/15948 gets completed, as\n       * that refactoring will use the `@input` handler on the GlFilteredSearch\n       * component to handle tokens instead of doing workarounds.\n       */\n      if (typeof newValue !== 'string') return;\n      const hasUnclosedQuote = newValue.split('\"').length % 2 === 0;\n      if (newValue.indexOf(' ') === -1 || hasUnclosedQuote) {\n        return;\n      }\n      const [firstWord, ...otherWords] = splitOnQuotes(newValue).filter((w, idx, arr) => Boolean(w) || idx === arr.length - 1);\n      this.$emit('input', firstWord);\n      if (otherWords.length) {\n        /**\n         * Emitted when Space appears in token segment value\n         * @property {array|string} newStrings New strings to be converted into term tokens\n         */\n        this.$emit('split', otherWords);\n      }\n    }\n  },\n  methods: {\n    emitIfInactive(e) {\n      if (e.button === LEFT_MOUSE_BUTTON && !this.active) {\n        /**\n         * Emitted on mousedown event on the main component.\n         */\n        this.$emit('activate');\n        e.preventDefault();\n      }\n    },\n    getMatchingOptionForInputValue(inputValue) {\n      var _this$options3;\n      let {\n        loose\n      } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        loose: false\n      };\n      return (_this$options3 = this.options) === null || _this$options3 === void 0 ? void 0 : _this$options3.find(option => loose ? match(option[this.optionTextField], inputValue) : option[this.optionTextField] === inputValue);\n    },\n    activate() {\n      this.fallbackValue = this.value;\n      this.$nextTick(() => {\n        const {\n          input\n        } = this.$refs;\n        if (input) {\n          input.focus();\n          input.scrollIntoView({\n            block: 'nearest',\n            inline: 'end'\n          });\n          this.alignSuggestions(input);\n          if (this.cursorPosition === 'start') {\n            input === null || input === void 0 ? void 0 : input.setSelectionRange(0, 0);\n          }\n        }\n      });\n    },\n    deactivate() {\n      var _this$matchingOption;\n      if (!this.options || this.isTerm) {\n        return;\n      }\n      if (((_this$matchingOption = this.matchingOption) === null || _this$matchingOption === void 0 ? void 0 : _this$matchingOption.value) !== this.value) {\n        this.$emit('input', this.fallbackValue);\n      }\n    },\n    applySuggestion(suggestedValue) {\n      const formattedSuggestedValue = this.termsAsTokens() ? suggestedValue : wrapTokenInQuotes(suggestedValue);\n\n      /**\n       * Emitted when autocomplete entry is selected.\n       *\n       * @type {string} value The selected value.\n       */\n      this.$emit('select', formattedSuggestedValue);\n      if (!this.multiSelect) {\n        this.$emit('input', formattedSuggestedValue === TERM_TOKEN_TYPE ? this.inputValue : formattedSuggestedValue);\n        this.$emit('complete', formattedSuggestedValue);\n      }\n    },\n    handleInputKeydown(e) {\n      const {\n        key\n      } = e;\n      const {\n        suggestions,\n        input\n      } = this.$refs;\n      const suggestedValue = suggestions === null || suggestions === void 0 ? void 0 : suggestions.getValue();\n      const handlers = {\n        ArrowLeft: () => {\n          if (input.selectionStart === 0) {\n            e.preventDefault();\n            this.$emit('previous');\n          }\n        },\n        ArrowRight: () => {\n          if (input.selectionEnd === this.inputValue.length) {\n            e.preventDefault();\n            this.$emit('next');\n          }\n        },\n        Backspace: () => {\n          if (this.inputValue === '') {\n            e.preventDefault();\n            /**\n             * Emitted when Backspace is pressed and the value is empty\n             */\n            this.$emit('backspace');\n          }\n        },\n        Enter: () => {\n          e.preventDefault();\n          if (suggestedValue != null) {\n            this.applySuggestion(suggestedValue);\n          } else {\n            /**\n             * Emitted when Enter is pressed and no suggestion is selected\n             */\n            this.$emit('submit');\n          }\n        },\n        ':': () => {\n          if (suggestedValue != null) {\n            e.preventDefault();\n            this.applySuggestion(suggestedValue);\n          }\n        },\n        Escape: () => {\n          e.preventDefault();\n          /**\n           * Emitted when suggestion is selected from the suggestion list\n           */\n          this.$emit('complete');\n        }\n      };\n      const suggestionsHandlers = {\n        ArrowDown: () => suggestions.nextItem(),\n        Down: () => suggestions.nextItem(),\n        ArrowUp: () => suggestions.prevItem(),\n        Up: () => suggestions.prevItem()\n      };\n      if (this.hasOptionsOrSuggestions) {\n        Object.assign(handlers, suggestionsHandlers);\n      }\n      if (Object.keys(handlers).includes(key)) {\n        handlers[key]();\n        return;\n      }\n      this.customInputKeydownHandler(e, {\n        suggestedValue,\n        inputValue: this.inputValue,\n        applySuggestion: v => this.applySuggestion(v)\n      });\n    },\n    handleBlur() {\n      if (this.multiSelect) {\n        this.$emit('complete');\n      } else if (this.active) {\n        /**\n         * Emitted when this term token will lose its focus.\n         */\n        this.$emit('deactivate');\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._g(_vm._b({staticClass:\"gl-filtered-search-token-segment\",class:{\n    'gl-filtered-search-token-segment-active': _vm.active,\n    '!gl-cursor-text': _vm.viewOnly,\n  },attrs:{\"data-testid\":\"filtered-search-token-segment\"}},'div',_vm.containerAttributes,false),_vm.viewOnly ? {} : { mousedown: _vm.emitIfInactive }),[(_vm.active)?[_vm._t(\"before-input\",null,null,{ submitValue: _vm.applySuggestion }),_vm._v(\" \"),(((_vm.searchInputAttributes).type)==='checkbox')?_c('input',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputValue),expression:\"inputValue\"}],ref:\"input\",staticClass:\"gl-filtered-search-token-segment-input\",attrs:{\"data-testid\":\"filtered-search-token-segment-input\",\"aria-label\":_vm.label,\"readonly\":_vm.viewOnly,\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.inputValue)?_vm._i(_vm.inputValue,null)>-1:(_vm.inputValue)},on:{\"keydown\":_vm.handleInputKeydown,\"blur\":_vm.handleBlur,\"change\":function($event){var $$a=_vm.inputValue,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.inputValue=$$a.concat([$$v]));}else {$$i>-1&&(_vm.inputValue=$$a.slice(0,$$i).concat($$a.slice($$i+1)));}}else {_vm.inputValue=$$c;}}}},'input',_vm.searchInputAttributes,false)):(((_vm.searchInputAttributes).type)==='radio')?_c('input',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputValue),expression:\"inputValue\"}],ref:\"input\",staticClass:\"gl-filtered-search-token-segment-input\",attrs:{\"data-testid\":\"filtered-search-token-segment-input\",\"aria-label\":_vm.label,\"readonly\":_vm.viewOnly,\"type\":\"radio\"},domProps:{\"checked\":_vm._q(_vm.inputValue,null)},on:{\"keydown\":_vm.handleInputKeydown,\"blur\":_vm.handleBlur,\"change\":function($event){_vm.inputValue=null;}}},'input',_vm.searchInputAttributes,false)):_c('input',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputValue),expression:\"inputValue\"}],ref:\"input\",staticClass:\"gl-filtered-search-token-segment-input\",attrs:{\"data-testid\":\"filtered-search-token-segment-input\",\"aria-label\":_vm.label,\"readonly\":_vm.viewOnly,\"type\":(_vm.searchInputAttributes).type},domProps:{\"value\":(_vm.inputValue)},on:{\"keydown\":_vm.handleInputKeydown,\"blur\":_vm.handleBlur,\"input\":function($event){if($event.target.composing){ return; }_vm.inputValue=$event.target.value;}}},'input',_vm.searchInputAttributes,false)),_vm._v(\" \"),_c('portal',{key:(\"operator-\" + _vm._uid),attrs:{\"to\":_vm.portalName}},[(_vm.hasOptionsOrSuggestions)?_c('gl-filtered-search-suggestion-list',{key:(\"operator-\" + _vm._uid),ref:\"suggestions\",attrs:{\"initial-value\":_vm.defaultSuggestedValue},on:{\"suggestion\":_vm.applySuggestion}},[(_vm.options)?_vm._l((_vm.options),function(option,idx){return _c('gl-filtered-search-suggestion',{key:((option.value) + \"-\" + idx),attrs:{\"value\":option.value,\"icon-name\":option.icon}},[_vm._t(\"option\",function(){return [(option.component)?[_c(option.component,{tag:\"component\",attrs:{\"option\":option}})]:[_vm._v(\"\\n                \"+_vm._s(option[_vm.optionTextField])+\"\\n              \")]]},null,{ option: option })],2)}):_vm._t(\"suggestions\")],2):_vm._e()],1)]:_vm._t(\"view\",function(){return [_vm._v(_vm._s(_vm.inputValue))]},null,{ label: _vm.label, inputValue: _vm.inputValue })],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 { extend } from '../../vue';\nimport { NAME_TFOOT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n  // Supported values: 'lite', 'dark', or null\n  footVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_TFOOT);\n\n// --- Main component ---\n\n// TODO:\n//   In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n//   to the child elements, so this can be converted to a functional component\n// @vue/component\nconst BTfoot = /*#__PURE__*/extend({\n  name: NAME_TFOOT,\n  mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n  provide() {\n    return {\n      getBvTableRowGroup: () => this\n    };\n  },\n  inject: {\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    getBvTable: {\n      default: /* istanbul ignore next */() => () => ({})\n    }\n  },\n  inheritAttrs: false,\n  props,\n  computed: {\n    bvTable() {\n      return this.getBvTable();\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    isTfoot() {\n      return true;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    isDark() {\n      return this.bvTable.dark;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    isStacked() {\n      return this.bvTable.isStacked;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    isResponsive() {\n      return this.bvTable.isResponsive;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    // Sticky headers are only supported in thead\n    isStickyHeader() {\n      return false;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    // Needed to handle header background classes, due to lack of\n    // background color inheritance with Bootstrap v4 table CSS\n    hasStickyHeader() {\n      return !this.isStacked && this.bvTable.stickyHeader;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    tableVariant() {\n      return this.bvTable.tableVariant;\n    },\n    tfootClasses() {\n      return [this.footVariant ? `thead-${this.footVariant}` : null];\n    },\n    tfootAttrs() {\n      return {\n        ...this.bvAttrs,\n        role: 'rowgroup'\n      };\n    }\n  },\n  render(h) {\n    return h('tfoot', {\n      class: this.tfootClasses,\n      attrs: this.tfootAttrs,\n      // Pass down any native listeners\n      on: this.bvListeners\n    }, this.normalizeSlot());\n  }\n});\n\nexport { BTfoot, props };\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","var arrayFilter = require('./_arrayFilter'),\n    baseIteratee = require('./_baseIteratee'),\n    baseRest = require('./_baseRest'),\n    baseXor = require('./_baseXor'),\n    isArrayLikeObject = require('./isArrayLikeObject'),\n    last = require('./last');\n\n/**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\nvar xorBy = baseRest(function(arrays) {\n  var iteratee = last(arrays);\n  if (isArrayLikeObject(iteratee)) {\n    iteratee = undefined;\n  }\n  return baseXor(arrayFilter(arrays, isArrayLikeObject), baseIteratee(iteratee, 2));\n});\n\nmodule.exports = xorBy;\n","\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 * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n  if (number === number) {\n    if (upper !== undefined) {\n      number = number <= upper ? number : upper;\n    }\n    if (lower !== undefined) {\n      number = number >= lower ? number : lower;\n    }\n  }\n  return number;\n}\n\nmodule.exports = baseClamp;\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","(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define([\"jquery\"], function ($) {\n      return (root.returnExportsGlobal = factory($));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like enviroments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function ($) {\n\n/*\n  Implement Github like autocomplete mentions\n  http://ichord.github.com/At.js\n\n  Copyright (c) 2013 chord.luo@gmail.com\n  Licensed under the MIT license.\n*/\n\n/*\n本插件操作 textarea 或者 input 内的插入符\n只实现了获得插入符在文本框中的位置,我设置\n插入符的位置.\n*/\n\n\"use strict\";\nvar EditableCaret, InputCaret, Mirror, Utils, discoveryIframeOf, methods, oDocument, oFrame, oWindow, pluginName, setContextBy;\n\npluginName = 'caret';\n\nEditableCaret = (function() {\n  function EditableCaret($inputor) {\n    this.$inputor = $inputor;\n    this.domInputor = this.$inputor[0];\n  }\n\n  EditableCaret.prototype.setPos = function(pos) {\n    var fn, found, offset, sel;\n    if (sel = oWindow.getSelection()) {\n      offset = 0;\n      found = false;\n      (fn = function(pos, parent) {\n        var node, range, _i, _len, _ref, _results;\n        _ref = parent.childNodes;\n        _results = [];\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          node = _ref[_i];\n          if (found) {\n            break;\n          }\n          if (node.nodeType === 3) {\n            if (offset + node.length >= pos) {\n              found = true;\n              range = oDocument.createRange();\n              range.setStart(node, pos - offset);\n              sel.removeAllRanges();\n              sel.addRange(range);\n              break;\n            } else {\n              _results.push(offset += node.length);\n            }\n          } else {\n            _results.push(fn(pos, node));\n          }\n        }\n        return _results;\n      })(pos, this.domInputor);\n    }\n    return this.domInputor;\n  };\n\n  EditableCaret.prototype.getIEPosition = function() {\n    return this.getPosition();\n  };\n\n  EditableCaret.prototype.getPosition = function() {\n    var inputor_offset, offset;\n    offset = this.getOffset();\n    inputor_offset = this.$inputor.offset();\n    offset.left -= inputor_offset.left;\n    offset.top -= inputor_offset.top;\n    return offset;\n  };\n\n  EditableCaret.prototype.getOldIEPos = function() {\n    var preCaretTextRange, textRange;\n    textRange = oDocument.selection.createRange();\n    preCaretTextRange = oDocument.body.createTextRange();\n    preCaretTextRange.moveToElementText(this.domInputor);\n    preCaretTextRange.setEndPoint(\"EndToEnd\", textRange);\n    return preCaretTextRange.text.length;\n  };\n\n  EditableCaret.prototype.getPos = function() {\n    var clonedRange, pos, range;\n    if (range = this.range()) {\n      clonedRange = range.cloneRange();\n      clonedRange.selectNodeContents(this.domInputor);\n      clonedRange.setEnd(range.endContainer, range.endOffset);\n      pos = clonedRange.toString().length;\n      clonedRange.detach();\n      return pos;\n    } else if (oDocument.selection) {\n      return this.getOldIEPos();\n    }\n  };\n\n  EditableCaret.prototype.getOldIEOffset = function() {\n    var range, rect;\n    range = oDocument.selection.createRange().duplicate();\n    range.moveStart(\"character\", -1);\n    rect = range.getBoundingClientRect();\n    return {\n      height: rect.bottom - rect.top,\n      left: rect.left,\n      top: rect.top\n    };\n  };\n\n  EditableCaret.prototype.getOffset = function(pos) {\n    var clonedRange, offset, range, rect, shadowCaret;\n    if (oWindow.getSelection && (range = this.range())) {\n      if (range.endOffset - 1 > 0 && range.endContainer !== this.domInputor) {\n        clonedRange = range.cloneRange();\n        clonedRange.setStart(range.endContainer, range.endOffset - 1);\n        clonedRange.setEnd(range.endContainer, range.endOffset);\n        rect = clonedRange.getBoundingClientRect();\n        offset = {\n          height: rect.height,\n          left: rect.left + rect.width,\n          top: rect.top\n        };\n        clonedRange.detach();\n      }\n      if (!offset || (offset != null ? offset.height : void 0) === 0) {\n        clonedRange = range.cloneRange();\n        shadowCaret = $(oDocument.createTextNode(\"|\"));\n        clonedRange.insertNode(shadowCaret[0]);\n        clonedRange.selectNode(shadowCaret[0]);\n        rect = clonedRange.getBoundingClientRect();\n        offset = {\n          height: rect.height,\n          left: rect.left,\n          top: rect.top\n        };\n        shadowCaret.remove();\n        clonedRange.detach();\n      }\n    } else if (oDocument.selection) {\n      offset = this.getOldIEOffset();\n    }\n    if (offset) {\n      offset.top += $(oWindow).scrollTop();\n      offset.left += $(oWindow).scrollLeft();\n    }\n    return offset;\n  };\n\n  EditableCaret.prototype.range = function() {\n    var sel;\n    if (!oWindow.getSelection) {\n      return;\n    }\n    sel = oWindow.getSelection();\n    if (sel.rangeCount > 0) {\n      return sel.getRangeAt(0);\n    } else {\n      return null;\n    }\n  };\n\n  return EditableCaret;\n\n})();\n\nInputCaret = (function() {\n  function InputCaret($inputor) {\n    this.$inputor = $inputor;\n    this.domInputor = this.$inputor[0];\n  }\n\n  InputCaret.prototype.getIEPos = function() {\n    var endRange, inputor, len, normalizedValue, pos, range, textInputRange;\n    inputor = this.domInputor;\n    range = oDocument.selection.createRange();\n    pos = 0;\n    if (range && range.parentElement() === inputor) {\n      normalizedValue = inputor.value.replace(/\\r\\n/g, \"\\n\");\n      len = normalizedValue.length;\n      textInputRange = inputor.createTextRange();\n      textInputRange.moveToBookmark(range.getBookmark());\n      endRange = inputor.createTextRange();\n      endRange.collapse(false);\n      if (textInputRange.compareEndPoints(\"StartToEnd\", endRange) > -1) {\n        pos = len;\n      } else {\n        pos = -textInputRange.moveStart(\"character\", -len);\n      }\n    }\n    return pos;\n  };\n\n  InputCaret.prototype.getPos = function() {\n    if (oDocument.selection) {\n      return this.getIEPos();\n    } else {\n      return this.domInputor.selectionStart;\n    }\n  };\n\n  InputCaret.prototype.setPos = function(pos) {\n    var inputor, range;\n    inputor = this.domInputor;\n    if (oDocument.selection) {\n      range = inputor.createTextRange();\n      range.move(\"character\", pos);\n      range.select();\n    } else if (inputor.setSelectionRange) {\n      inputor.setSelectionRange(pos, pos);\n    }\n    return inputor;\n  };\n\n  InputCaret.prototype.getIEOffset = function(pos) {\n    var h, textRange, x, y;\n    textRange = this.domInputor.createTextRange();\n    pos || (pos = this.getPos());\n    textRange.move('character', pos);\n    x = textRange.boundingLeft;\n    y = textRange.boundingTop;\n    h = textRange.boundingHeight;\n    return {\n      left: x,\n      top: y,\n      height: h\n    };\n  };\n\n  InputCaret.prototype.getOffset = function(pos) {\n    var $inputor, offset, position;\n    $inputor = this.$inputor;\n    if (oDocument.selection) {\n      offset = this.getIEOffset(pos);\n      offset.top += $(oWindow).scrollTop() + $inputor.scrollTop();\n      offset.left += $(oWindow).scrollLeft() + $inputor.scrollLeft();\n      return offset;\n    } else {\n      offset = $inputor.offset();\n      position = this.getPosition(pos);\n      return offset = {\n        left: offset.left + position.left - $inputor.scrollLeft(),\n        top: offset.top + position.top - $inputor.scrollTop(),\n        height: position.height\n      };\n    }\n  };\n\n  InputCaret.prototype.getPosition = function(pos) {\n    var $inputor, at_rect, end_range, format, html, mirror, start_range;\n    $inputor = this.$inputor;\n    format = function(value) {\n      value = value.replace(/<|>|`|\"|&/g, '?').replace(/\\r\\n|\\r|\\n/g, \"<br/>\");\n      if (/firefox/i.test(navigator.userAgent)) {\n        value = value.replace(/\\s/g, '&nbsp;');\n      }\n      return value;\n    };\n    if (pos === void 0) {\n      pos = this.getPos();\n    }\n    start_range = $inputor.val().slice(0, pos);\n    end_range = $inputor.val().slice(pos);\n    html = \"<span style='position: relative; display: inline;'>\" + format(start_range) + \"</span>\";\n    html += \"<span id='caret' style='position: relative; display: inline;'>|</span>\";\n    html += \"<span style='position: relative; display: inline;'>\" + format(end_range) + \"</span>\";\n    mirror = new Mirror($inputor);\n    return at_rect = mirror.create(html).rect();\n  };\n\n  InputCaret.prototype.getIEPosition = function(pos) {\n    var h, inputorOffset, offset, x, y;\n    offset = this.getIEOffset(pos);\n    inputorOffset = this.$inputor.offset();\n    x = offset.left - inputorOffset.left;\n    y = offset.top - inputorOffset.top;\n    h = offset.height;\n    return {\n      left: x,\n      top: y,\n      height: h\n    };\n  };\n\n  return InputCaret;\n\n})();\n\nMirror = (function() {\n  Mirror.prototype.css_attr = [\"borderBottomWidth\", \"borderLeftWidth\", \"borderRightWidth\", \"borderTopStyle\", \"borderRightStyle\", \"borderBottomStyle\", \"borderLeftStyle\", \"borderTopWidth\", \"boxSizing\", \"fontFamily\", \"fontSize\", \"fontWeight\", \"height\", \"letterSpacing\", \"lineHeight\", \"marginBottom\", \"marginLeft\", \"marginRight\", \"marginTop\", \"outlineWidth\", \"overflow\", \"overflowX\", \"overflowY\", \"paddingBottom\", \"paddingLeft\", \"paddingRight\", \"paddingTop\", \"textAlign\", \"textOverflow\", \"textTransform\", \"whiteSpace\", \"wordBreak\", \"wordWrap\"];\n\n  function Mirror($inputor) {\n    this.$inputor = $inputor;\n  }\n\n  Mirror.prototype.mirrorCss = function() {\n    var css,\n      _this = this;\n    css = {\n      position: 'absolute',\n      left: -9999,\n      top: 0,\n      zIndex: -20000\n    };\n    if (this.$inputor.prop('tagName') === 'TEXTAREA') {\n      this.css_attr.push('width');\n    }\n    $.each(this.css_attr, function(i, p) {\n      return css[p] = _this.$inputor.css(p);\n    });\n    return css;\n  };\n\n  Mirror.prototype.create = function(html) {\n    this.$mirror = $('<div></div>');\n    this.$mirror.css(this.mirrorCss());\n    this.$mirror.html(html);\n    this.$inputor.after(this.$mirror);\n    return this;\n  };\n\n  Mirror.prototype.rect = function() {\n    var $flag, pos, rect;\n    $flag = this.$mirror.find(\"#caret\");\n    pos = $flag.position();\n    rect = {\n      left: pos.left,\n      top: pos.top,\n      height: $flag.height()\n    };\n    this.$mirror.remove();\n    return rect;\n  };\n\n  return Mirror;\n\n})();\n\nUtils = {\n  contentEditable: function($inputor) {\n    return !!($inputor[0].contentEditable && $inputor[0].contentEditable === 'true');\n  }\n};\n\nmethods = {\n  pos: function(pos) {\n    if (pos || pos === 0) {\n      return this.setPos(pos);\n    } else {\n      return this.getPos();\n    }\n  },\n  position: function(pos) {\n    if (oDocument.selection) {\n      return this.getIEPosition(pos);\n    } else {\n      return this.getPosition(pos);\n    }\n  },\n  offset: function(pos) {\n    var offset;\n    offset = this.getOffset(pos);\n    return offset;\n  }\n};\n\noDocument = null;\n\noWindow = null;\n\noFrame = null;\n\nsetContextBy = function(settings) {\n  var iframe;\n  if (iframe = settings != null ? settings.iframe : void 0) {\n    oFrame = iframe;\n    oWindow = iframe.contentWindow;\n    return oDocument = iframe.contentDocument || oWindow.document;\n  } else {\n    oFrame = void 0;\n    oWindow = window;\n    return oDocument = document;\n  }\n};\n\ndiscoveryIframeOf = function($dom) {\n  var error;\n  oDocument = $dom[0].ownerDocument;\n  oWindow = oDocument.defaultView || oDocument.parentWindow;\n  try {\n    return oFrame = oWindow.frameElement;\n  } catch (_error) {\n    error = _error;\n  }\n};\n\n$.fn.caret = function(method, value, settings) {\n  var caret;\n  if (methods[method]) {\n    if ($.isPlainObject(value)) {\n      setContextBy(value);\n      value = void 0;\n    } else {\n      setContextBy(settings);\n    }\n    caret = Utils.contentEditable(this) ? new EditableCaret(this) : new InputCaret(this);\n    return methods[method].apply(caret, [value]);\n  } else {\n    return $.error(\"Method \" + method + \" does not exist on jQuery.caret\");\n  }\n};\n\n$.fn.caret.EditableCaret = EditableCaret;\n\n$.fn.caret.InputCaret = InputCaret;\n\n$.fn.caret.Utils = Utils;\n\n$.fn.caret.apis = methods;\n\n\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","\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","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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestFragment\"},\"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\":\"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\":\"sourceBranch\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"arguments\":[],\"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\":\"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\":[]}]}}]}},{\"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\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"namespace\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"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\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":483}};\n    doc.loc.source = {\"body\":\"#import \\\"~/work_items/graphql/milestone.fragment.graphql\\\"\\n\\nfragment MergeRequestFragment on MergeRequest {\\n  id\\n  iid\\n  title\\n  webUrl\\n  state\\n  sourceBranch\\n  reference\\n  headPipeline {\\n    id\\n    detailedStatus {\\n      id\\n      icon\\n      text\\n      detailsPath\\n    }\\n  }\\n  milestone {\\n    ...MilestoneFragment\\n  }\\n  project {\\n    id\\n    name\\n    namespace {\\n      path\\n    }\\n  }\\n  assignees {\\n    nodes {\\n      webUrl\\n      id\\n      name\\n      webPath\\n      avatarUrl\\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_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[\"MergeRequestFragment\"] = oneQuery(doc, \"MergeRequestFragment\");\n        \n","import { extend } from '../../../vue';\nimport { PROP_TYPE_BOOLEAN_STRING } from '../../../constants/props';\nimport { makeProp } from '../../../utils/props';\n\n// --- Props ---\n\nconst props = {\n  stacked: makeProp(PROP_TYPE_BOOLEAN_STRING, false)\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst stackedMixin = extend({\n  props,\n  computed: {\n    isStacked() {\n      const {\n        stacked\n      } = this;\n      // `true` when always stacked, or returns breakpoint specified\n      return stacked === '' ? true : stacked;\n    },\n    isStackedAlways() {\n      return this.isStacked === true;\n    },\n    stackedTableClasses() {\n      const {\n        isStackedAlways\n      } = this;\n      return {\n        'b-table-stacked': isStackedAlways,\n        [`b-table-stacked-${this.stacked}`]: !isStackedAlways && this.isStacked\n      };\n    }\n  }\n});\n\nexport { props, stackedMixin };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(!_vm.hideButton)?[(_vm.asDropdownItem)?_c('gl-disclosure-dropdown-item',{scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('a',{staticClass:\"gl-new-dropdown-item-content\",attrs:{\"href\":_vm.newWorkItemPath},on:{\"click\":_vm.showCreateModal}},[_c('span',{staticClass:\"gl-new-dropdown-item-text-wrapper\"},[_vm._v(_vm._s(_vm.newWorkItemText))])])]},proxy:true}],null,false,581125942)}):_c('gl-button',{attrs:{\"category\":\"primary\",\"variant\":\"confirm\",\"data-testid\":\"new-epic-button\",\"href\":_vm.newWorkItemPath},on:{\"click\":_vm.showCreateModal}},[_vm._v(_vm._s(_vm.newWorkItemText)+\"\\n    \")])]:_vm._e(),_vm._v(\" \"),_c('gl-modal',{attrs:{\"modal-id\":\"create-work-item-modal\",\"modal-class\":\"create-work-item-modal\",\"body-class\":\"!gl-pb-0\",\"visible\":_vm.isCreateModalVisible,\"scrollable\":\"\",\"size\":\"lg\",\"hide-footer\":\"\"},on:{\"hide\":_vm.hideCreateModal},scopedSlots:_vm._u([{key:\"modal-header\",fn:function(){return [_c('div',{staticClass:\"gl-text gl-flex gl-w-full gl-items-center gl-gap-x-2\"},[_c('h2',{staticClass:\"modal-title\"},[_vm._v(_vm._s(_vm.newWorkItemText))]),_vm._v(\" \"),_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"data-testid\":\"new-work-item-modal-link\",\"href\":_vm.newWorkItemPath,\"title\":_vm.__('Open in full page'),\"category\":\"tertiary\",\"icon\":\"maximize\",\"size\":\"small\",\"aria-label\":_vm.__('Open in full page')},on:{\"click\":_vm.redirectToNewPage}})],1)]},proxy:true}])},[_vm._v(\" \"),_c('create-work-item',{attrs:{\"description\":_vm.description,\"hide-form-title\":\"\",\"sticky-form-submit\":\"\",\"is-group\":_vm.isGroup,\"parent-id\":_vm.parentId,\"show-project-selector\":_vm.showProjectSelector,\"title\":_vm.title,\"work-item-type-name\":_vm.workItemTypeName,\"related-item\":_vm.relatedItem,\"should-discard-draft\":_vm.shouldDiscardDraft},on:{\"confirmCancel\":_vm.handleConfirmCancellation,\"discardDraft\":function($event){return _vm.handleDiscardDraft('createModal')},\"workItemCreated\":_vm.handleCreated}})],1),_vm._v(\" \"),_c('create-work-item-cancel-confirmation-modal',{attrs:{\"is-visible\":_vm.isConfirmationModalVisible,\"work-item-type-name\":_vm.workItemTypeName},on:{\"continueEditing\":_vm.handleContinueEditing,\"discardDraft\":function($event){return _vm.handleDiscardDraft('confirmModal')}}})],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!./create_work_item_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!./create_work_item_modal.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlModal, GlDisclosureDropdownItem, GlTooltipDirective } from '@gitlab/ui';\nimport { visitUrl } from '~/lib/utils/url_utility';\nimport { __, s__, sprintf } from '~/locale';\nimport { setNewWorkItemCache } from '~/work_items/graphql/cache_utils';\nimport { isMetaClick } from '~/lib/utils/common_utils';\nimport { isWorkItemItemValidEnum, newWorkItemPath } from '~/work_items/utils';\nimport {\n  I18N_NEW_WORK_ITEM_BUTTON_LABEL,\n  I18N_WORK_ITEM_CREATED,\n  sprintfWorkItem,\n  I18N_WORK_ITEM_ERROR_FETCHING_TYPES,\n  ROUTES,\n  RELATED_ITEM_ID_URL_QUERY_PARAM,\n} from '../constants';\nimport namespaceWorkItemTypesQuery from '../graphql/namespace_work_item_types.query.graphql';\nimport CreateWorkItem from './create_work_item.vue';\nimport CreateWorkItemCancelConfirmationModal from './create_work_item_cancel_confirmation_modal.vue';\n\nexport default {\n  components: {\n    CreateWorkItem,\n    CreateWorkItemCancelConfirmationModal,\n    GlButton,\n    GlModal,\n    GlDisclosureDropdownItem,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  inject: ['fullPath'],\n  props: {\n    description: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    hideButton: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isGroup: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    parentId: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    showProjectSelector: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    title: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    visible: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    workItemTypeName: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    asDropdownItem: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    relatedItem: {\n      type: Object,\n      required: false,\n      validator: (i) => i.id && i.type && i.reference,\n      default: null,\n    },\n  },\n  data() {\n    return {\n      isCreateModalVisible: false,\n      isConfirmationModalVisible: false,\n      shouldDiscardDraft: false,\n      workItemTypes: [],\n    };\n  },\n  apollo: {\n    workItemTypes: {\n      query() {\n        return namespaceWorkItemTypesQuery;\n      },\n      variables() {\n        return {\n          fullPath: this.fullPath,\n          name: this.workItemTypeName,\n        };\n      },\n      update(data) {\n        return data.workspace?.workItemTypes?.nodes ?? [];\n      },\n      async result() {\n        if (!this.workItemTypes || this.workItemTypes.length === 0) {\n          return;\n        }\n\n        // We need a valid enum of fetching workItemTypes which otherwise causes issues in cache\n        if (!isWorkItemItemValidEnum(this.workItemTypeName)) {\n          return;\n        }\n        await setNewWorkItemCache(\n          this.fullPath,\n          this.workItemTypes[0]?.widgetDefinitions,\n          this.workItemTypeName,\n          this.workItemTypes[0]?.id,\n          this.workItemTypes[0]?.iconName,\n        );\n      },\n      error() {\n        this.error = I18N_WORK_ITEM_ERROR_FETCHING_TYPES;\n      },\n    },\n  },\n  computed: {\n    useVueRouter() {\n      return (\n        !this.asDropdownItem &&\n        this.$router &&\n        this.$router.options.routes.some((route) => route.name === 'workItem')\n      );\n    },\n    newWorkItemPath() {\n      return newWorkItemPath({\n        fullPath: this.fullPath,\n        isGroup: this.isGroup,\n        workItemTypeName: this.workItemTypeName,\n        query: this.relatedItem ? `?${RELATED_ITEM_ID_URL_QUERY_PARAM}=${this.relatedItem.id}` : '',\n      });\n    },\n    newWorkItemText() {\n      return sprintfWorkItem(I18N_NEW_WORK_ITEM_BUTTON_LABEL, this.workItemTypeName);\n    },\n    workItemCreatedText() {\n      return sprintfWorkItem(I18N_WORK_ITEM_CREATED, this.workItemTypeName);\n    },\n    cancelConfirmationText() {\n      return sprintf(\n        s__('WorkItem|Are you sure you want to cancel creating this %{workItemType}?'),\n        {\n          workItemType: this.workItemTypeName.toLocaleLowerCase(),\n        },\n      );\n    },\n  },\n  watch: {\n    visible: {\n      immediate: true,\n      handler(visible) {\n        this.isCreateModalVisible = visible;\n      },\n    },\n  },\n  methods: {\n    hideCreateModal() {\n      this.$emit('hideModal');\n      this.isCreateModalVisible = false;\n    },\n    showCreateModal(event) {\n      if (Boolean(event) && isMetaClick(event)) {\n        // opening in a new tab\n        return;\n      }\n\n      // don't follow the link for normal clicks - open in modal\n      event?.preventDefault();\n\n      this.isCreateModalVisible = true;\n    },\n    hideConfirmationModal() {\n      this.isConfirmationModalVisible = false;\n    },\n    showConfirmationModal() {\n      this.isConfirmationModalVisible = true;\n    },\n    /*\n     Beginning of the methods for the confirmation modal when enabled\n\n     The confirmation modal is enabled when any form field is\n     filled or different from the default value.\n    */\n    handleConfirmCancellation() {\n      this.showConfirmationModal();\n    },\n    handleContinueEditing() {\n      this.shouldDiscardDraft = false;\n      this.hideConfirmationModal();\n    },\n    handleDiscardDraft(modal) {\n      if (modal === 'createModal') {\n        // This is triggered on the create modal when the user didn't update the form,\n        // so we just hide the create modal as there's no draft to discard\n        this.hideCreateModal();\n      } else {\n        // This is triggered on the confirmation modal, so the user updated the form and\n        // we want to trigger discard draftfunction on create work item component because\n        // the user confirmed it\n        this.shouldDiscardDraft = true;\n        this.hideConfirmationModal();\n        this.hideCreateModal();\n      }\n    },\n    /*\n     End of the methods for the confirmation modal when enabled\n    */\n    handleCreated(workItem) {\n      this.$toast.show(this.workItemCreatedText, {\n        autoHideDelay: 10000,\n        action: {\n          text: __('View details'),\n          onClick: () => {\n            if (this.useVueRouter) {\n              this.$router.push({ name: 'workItem', params: { iid: workItem.iid } });\n            } else {\n              visitUrl(workItem.webUrl);\n            }\n          },\n        },\n      });\n      this.$emit('workItemCreated', workItem);\n      if (this.workItemTypes && this.workItemTypes[0] && this.workItemTypeName) {\n        setNewWorkItemCache(\n          this.fullPath,\n          this.workItemTypes[0]?.widgetDefinitions,\n          this.workItemTypeName,\n          this.workItemTypes[0]?.id,\n          this.workItemTypes[0]?.iconName,\n        );\n      }\n      this.hideCreateModal();\n    },\n    redirectToNewPage(event) {\n      if (isMetaClick(event)) {\n        // opening in a new tab\n        return;\n      }\n\n      event.preventDefault();\n\n      if (this.useVueRouter) {\n        this.$router.push({\n          name: ROUTES.new,\n          query: { [RELATED_ITEM_ID_URL_QUERY_PARAM]: this.relatedItem?.id },\n        });\n      } else {\n        visitUrl(this.newWorkItemPath);\n      }\n    },\n  },\n};\n</script>\n\n<template>\n  <div>\n    <template v-if=\"!hideButton\">\n      <!-- overriding default slow because using item.action doesn't pass the click event, so can't prevent href nav -->\n      <gl-disclosure-dropdown-item v-if=\"asDropdownItem\">\n        <!-- using an a instead of gl-link to prevent unwanted underline style when active -->\n        <template #default\n          ><a class=\"gl-new-dropdown-item-content\" :href=\"newWorkItemPath\" @click=\"showCreateModal\"\n            ><span class=\"gl-new-dropdown-item-text-wrapper\">{{ newWorkItemText }}</span></a\n          ></template\n        >\n      </gl-disclosure-dropdown-item>\n      <gl-button\n        v-else\n        category=\"primary\"\n        variant=\"confirm\"\n        data-testid=\"new-epic-button\"\n        :href=\"newWorkItemPath\"\n        @click=\"showCreateModal\"\n        >{{ newWorkItemText }}\n      </gl-button>\n    </template>\n    <gl-modal\n      modal-id=\"create-work-item-modal\"\n      modal-class=\"create-work-item-modal\"\n      body-class=\"!gl-pb-0\"\n      :visible=\"isCreateModalVisible\"\n      scrollable\n      size=\"lg\"\n      hide-footer\n      @hide=\"hideCreateModal\"\n    >\n      <template #modal-header>\n        <div class=\"gl-text gl-flex gl-w-full gl-items-center gl-gap-x-2\">\n          <h2 class=\"modal-title\">{{ newWorkItemText }}</h2>\n          <gl-button\n            v-gl-tooltip\n            data-testid=\"new-work-item-modal-link\"\n            :href=\"newWorkItemPath\"\n            :title=\"__('Open in full page')\"\n            category=\"tertiary\"\n            icon=\"maximize\"\n            size=\"small\"\n            :aria-label=\"__('Open in full page')\"\n            @click=\"redirectToNewPage\"\n          />\n        </div>\n      </template>\n      <create-work-item\n        :description=\"description\"\n        hide-form-title\n        sticky-form-submit\n        :is-group=\"isGroup\"\n        :parent-id=\"parentId\"\n        :show-project-selector=\"showProjectSelector\"\n        :title=\"title\"\n        :work-item-type-name=\"workItemTypeName\"\n        :related-item=\"relatedItem\"\n        :should-discard-draft=\"shouldDiscardDraft\"\n        @confirmCancel=\"handleConfirmCancellation\"\n        @discardDraft=\"handleDiscardDraft('createModal')\"\n        @workItemCreated=\"handleCreated\"\n      />\n    </gl-modal>\n    <create-work-item-cancel-confirmation-modal\n      :is-visible=\"isConfirmationModalVisible\"\n      :work-item-type-name=\"workItemTypeName\"\n      @continueEditing=\"handleContinueEditing\"\n      @discardDraft=\"handleDiscardDraft('confirmModal')\"\n    />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./create_work_item_modal.vue?vue&type=template&id=8dbcdbe2\"\nimport script from \"./create_work_item_modal.vue?vue&type=script&lang=js\"\nexport * from \"./create_work_item_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\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemNote\"},\"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\":\"body\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bodyHtml\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"system\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"internal\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"systemNoteIconName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastEditedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"authorIsContributor\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"maxAccessLevelOfAuthor\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"externalAuthor\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastEditedBy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"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\":\"resolved\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resolvable\"},\"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\":\"author\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"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\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"AwardEmojiFragment\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"adminNote\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"awardEmoji\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readNote\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createNote\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resolveNote\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"repositionNote\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"systemNoteMetadata\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"descriptionVersion\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"diffPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"deletePath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canDelete\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"deleted\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startVersionId\"},\"arguments\":[],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":830}};\n    doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n#import \\\"~/work_items/graphql/award_emoji.fragment.graphql\\\"\\n\\nfragment WorkItemNote on Note {\\n  id\\n  body\\n  bodyHtml\\n  system\\n  internal\\n  systemNoteIconName\\n  createdAt\\n  lastEditedAt\\n  url\\n  authorIsContributor\\n  maxAccessLevelOfAuthor\\n  externalAuthor\\n  lastEditedBy {\\n    ...User\\n    webPath\\n  }\\n  discussion {\\n    id\\n    resolved\\n    resolvable\\n    resolvedBy {\\n      id\\n      name\\n    }\\n  }\\n  author {\\n    ...User\\n  }\\n  awardEmoji {\\n    nodes {\\n      ...AwardEmojiFragment\\n    }\\n  }\\n  userPermissions {\\n    adminNote\\n    awardEmoji\\n    readNote\\n    createNote\\n    resolveNote\\n    repositionNote\\n  }\\n  systemNoteMetadata {\\n    id\\n    descriptionVersion {\\n      id\\n      diffPath\\n      deletePath\\n      canDelete\\n      deleted\\n      startVersionId @client\\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(\"~/work_items/graphql/award_emoji.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[\"WorkItemNote\"] = oneQuery(doc, \"WorkItemNote\");\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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"contacts\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"groupFullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CustomerRelationsContactState\"}},\"directives\":[]},{\"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\":\"sort\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ContactSort\"}},\"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\":\"prevPageCursor\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"defaultValue\":{\"kind\":\"StringValue\",\"value\":\"\",\"block\":false},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"nextPageCursor\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"defaultValue\":{\"kind\":\"StringValue\",\"value\":\"\",\"block\":false},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CustomerRelationsContactID\"}}}},\"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\":\"groupFullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"contacts\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTerm\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"sort\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"sort\"}}},{\"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\":\"after\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"nextPageCursor\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"before\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"prevPageCursor\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ids\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ContactFragment\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pageInfo\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasNextPage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endCursor\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasPreviousPage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startCursor\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":743}};\n    doc.loc.source = {\"body\":\"#import \\\"./crm_contact_fields.fragment.graphql\\\"\\n\\nquery contacts(\\n  $groupFullPath: ID!\\n  $state: CustomerRelationsContactState\\n  $searchTerm: String\\n  $sort: ContactSort\\n  $firstPageSize: Int\\n  $lastPageSize: Int\\n  $prevPageCursor: String = \\\"\\\"\\n  $nextPageCursor: String = \\\"\\\"\\n  $ids: [CustomerRelationsContactID!]\\n) {\\n  group(fullPath: $groupFullPath) {\\n    id\\n    contacts(\\n      state: $state\\n      search: $searchTerm\\n      sort: $sort\\n      first: $firstPageSize\\n      last: $lastPageSize\\n      after: $nextPageCursor\\n      before: $prevPageCursor\\n      ids: $ids\\n    ) {\\n      nodes {\\n        ...ContactFragment\\n      }\\n      pageInfo {\\n        hasNextPage\\n        endCursor\\n        hasPreviousPage\\n        startCursor\\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(\"./crm_contact_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[\"contacts\"] = oneQuery(doc, \"contacts\");\n        \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","import { identity } from '../../../utils/identity';\nimport { isArray, isString, isObject, isFunction } from '../../../utils/inspect';\nimport { clone, keys } from '../../../utils/object';\nimport { startCase } from '../../../utils/string';\nimport { IGNORED_FIELD_KEYS } from './constants';\n\n// Private function to massage field entry into common object format\nconst processField = (key, value) => {\n  let field = null;\n  if (isString(value)) {\n    // Label shortcut\n    field = {\n      key,\n      label: value\n    };\n  } else if (isFunction(value)) {\n    // Formatter shortcut\n    field = {\n      key,\n      formatter: value\n    };\n  } else if (isObject(value)) {\n    field = clone(value);\n    field.key = field.key || key;\n  } else if (value !== false) {\n    // Fallback to just key\n    /* istanbul ignore next */\n    field = {\n      key\n    };\n  }\n  return field;\n};\n\n// We normalize fields into an array of objects\n// [ { key:..., label:..., ...}, {...}, ..., {..}]\nconst normalizeFields = (origFields, items) => {\n  const fields = [];\n  if (isArray(origFields)) {\n    // Normalize array Form\n    origFields.filter(identity).forEach(f => {\n      if (isString(f)) {\n        fields.push({\n          key: f,\n          label: startCase(f)\n        });\n      } else if (isObject(f) && f.key && isString(f.key)) {\n        // Full object definition. We use assign so that we don't mutate the original\n        fields.push(clone(f));\n      } else if (isObject(f) && keys(f).length === 1) {\n        // Shortcut object (i.e. { 'foo_bar': 'This is Foo Bar' }\n        const key = keys(f)[0];\n        const field = processField(key, f[key]);\n        if (field) {\n          fields.push(field);\n        }\n      }\n    });\n  }\n\n  // If no field provided, take a sample from first record (if exits)\n  if (fields.length === 0 && isArray(items) && items.length > 0) {\n    const sample = items[0];\n    keys(sample).forEach(k => {\n      if (!IGNORED_FIELD_KEYS[k]) {\n        fields.push({\n          key: k,\n          label: startCase(k)\n        });\n      }\n    });\n  }\n\n  // Ensure we have a unique array of fields and that they have String labels\n  const memo = {};\n  return fields.filter(f => {\n    if (!memo[f.key]) {\n      memo[f.key] = true;\n      f.label = isString(f.label) ? f.label : startCase(f.key);\n      return true;\n    }\n    return false;\n  });\n};\n\nexport { normalizeFields };\n","import { extend } from '../../../vue';\nimport { EVENT_NAME_CONTEXT_CHANGED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_STRING } from '../../../constants/props';\nimport { useParentMixin } from '../../../mixins/use-parent';\nimport { isArray, isString, isFunction } 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 { sortKeys, clone } from '../../../utils/object';\nimport { makeProp } from '../../../utils/props';\nimport { safeVueInstance } from '../../../utils/safe-vue-instance';\nimport { normalizeFields } from './normalize-fields';\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_ARRAY,\n  defaultValue: []\n});\n\n// --- Props ---\n\nconst props = sortKeys({\n  ...modelProps,\n  fields: makeProp(PROP_TYPE_ARRAY, null),\n  // Provider mixin adds in `Function` type\n  items: makeProp(PROP_TYPE_ARRAY, []),\n  // Primary key for record\n  // If provided the value in each row must be unique!\n  primaryKey: makeProp(PROP_TYPE_STRING),\n  // `v-model` for retrieving the current displayed rows\n  [MODEL_PROP_NAME]: makeProp(PROP_TYPE_ARRAY, [])\n});\n\n// --- Mixin ---\n\n// @vue/component\nconst itemsMixin = extend({\n  mixins: [modelMixin, useParentMixin],\n  props,\n  data() {\n    const {\n      items\n    } = this;\n    return {\n      // Our local copy of the items\n      // Must be an array\n      localItems: isArray(items) ? items.slice() : []\n    };\n  },\n  computed: {\n    computedFields() {\n      // We normalize fields into an array of objects\n      // `[ { key:..., label:..., ...}, {...}, ..., {..}]`\n      return normalizeFields(this.fields, this.localItems);\n    },\n    computedFieldsObj() {\n      // Fields as a simple lookup hash object\n      // Mainly for formatter lookup and use in `scopedSlots` for convenience\n      // If the field has a formatter, it normalizes formatter to a\n      // function ref or `undefined` if no formatter\n      const {\n        bvParent\n      } = this;\n      return this.computedFields.reduce((obj, f) => {\n        // We use object spread here so we don't mutate the original field object\n        obj[f.key] = clone(f);\n        if (f.formatter) {\n          // Normalize formatter to a function ref or `undefined`\n          let formatter = f.formatter;\n          if (isString(formatter) && isFunction(bvParent[formatter])) {\n            formatter = bvParent[formatter];\n          } else if (!isFunction(formatter)) {\n            /* istanbul ignore next */\n            formatter = undefined;\n          }\n          // Return formatter function or `undefined` if none\n          obj[f.key].formatter = formatter;\n        }\n        return obj;\n      }, {});\n    },\n    computedItems() {\n      const {\n        paginatedItems,\n        sortedItems,\n        filteredItems,\n        localItems\n      } = safeVueInstance(this);\n      // Fallback if various mixins not provided\n      return (paginatedItems || sortedItems || filteredItems || localItems || /* istanbul ignore next */\n      []).slice();\n    },\n    context() {\n      const {\n        perPage,\n        currentPage\n      } = safeVueInstance(this);\n      // Current state of sorting, filtering and pagination props/values\n      return {\n        filter: this.localFilter,\n        sortBy: this.localSortBy,\n        sortDesc: this.localSortDesc,\n        perPage: mathMax(toInteger(perPage, 0), 0),\n        currentPage: mathMax(toInteger(currentPage, 0), 1),\n        apiUrl: this.apiUrl\n      };\n    }\n  },\n  watch: {\n    items(newValue) {\n      // Set `localItems`/`filteredItems` to a copy of the provided array\n      this.localItems = isArray(newValue) ? newValue.slice() : [];\n    },\n    // Watch for changes on `computedItems` and update the `v-model`\n    computedItems(newValue, oldValue) {\n      if (!looseEqual(newValue, oldValue)) {\n        this.$emit(MODEL_EVENT_NAME, newValue);\n      }\n    },\n    // Watch for context changes\n    context(newValue, oldValue) {\n      // Emit context information for external paging/filtering/sorting handling\n      if (!looseEqual(newValue, oldValue)) {\n        this.$emit(EVENT_NAME_CONTEXT_CHANGED, newValue);\n      }\n    }\n  },\n  mounted() {\n    // Initially update the `v-model` of displayed items\n    this.$emit(MODEL_EVENT_NAME, this.computedItems);\n  },\n  methods: {\n    // Method to get the formatter method for a given field key\n    getFieldFormatter(key) {\n      const field = this.computedFieldsObj[key];\n      // `this.computedFieldsObj` has pre-normalized the formatter to a\n      // function ref if present, otherwise `undefined`\n      return field ? field.formatter : undefined;\n    }\n  }\n});\n\nexport { MODEL_EVENT_NAME, MODEL_PROP_NAME, itemsMixin, props };\n","(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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.createWorkItem.apply(null, arguments)}}},[(_vm.isLoading)?_c('work-item-loading'):[(_vm.error)?_c('gl-alert',{staticClass:\"gl-mb-3\",attrs:{\"variant\":\"danger\"},on:{\"dismiss\":function($event){_vm.error = null}}},[_vm._v(\"\\n      \"+_vm._s(_vm.error)+\"\\n    \")]):_vm._e(),_vm._v(\" \"),(!_vm.hideFormTitle)?_c('h1',{staticClass:\"page-title gl-text-xl gl-pb-5\"},[_vm._v(_vm._s(_vm.titleText))]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-items-center gl-gap-4\"},[(_vm.showProjectSelector)?_c('gl-form-group',{staticClass:\"gl-max-w-26 gl-flex-grow\",attrs:{\"label\":_vm.__('Project')}},[_c('work-item-projects-listbox',{attrs:{\"full-path\":_vm.fullPath,\"is-group\":_vm.isGroup},model:{value:(_vm.selectedProjectFullPath),callback:function ($$v) {_vm.selectedProjectFullPath=$$v},expression:\"selectedProjectFullPath\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.$apollo.queries.workItemTypes.loading)?_c('gl-loading-icon',{attrs:{\"size\":\"lg\"}}):(_vm.showWorkItemTypeSelect)?_c('gl-form-group',{staticClass:\"gl-max-w-26 gl-flex-grow\",attrs:{\"label\":_vm.__('Type'),\"label-for\":\"work-item-type\"}},[_c('gl-form-select',{attrs:{\"id\":\"work-item-type\",\"data-testid\":\"work-item-types-select\",\"options\":_vm.formOptions},model:{value:(_vm.selectedWorkItemTypeId),callback:function ($$v) {_vm.selectedWorkItemTypeId=$$v},expression:\"selectedWorkItemTypeId\"}})],1):_vm._e()],1),_vm._v(\" \"),(_vm.selectedWorkItemTypeId)?_c('div',{attrs:{\"data-testid\":\"create-work-item\"}},[_c('work-item-title',{ref:\"title\",attrs:{\"data-testid\":\"title-input\",\"is-editing\":\"\",\"is-valid\":_vm.isTitleValid,\"title\":_vm.workItemTitle},on:{\"updateDraft\":function($event){return _vm.updateDraftData('title', $event)}}}),_vm._v(\" \"),_c('title-suggestions',{attrs:{\"project-path\":_vm.fullPath,\"search\":_vm.workItemTitle,\"help-text\":_vm.$options.i18n.similarWorkItemHelpText,\"title\":_vm.$options.i18n.suggestionTitle}}),_vm._v(\" \"),_c('div',{staticClass:\"work-item-overview\",attrs:{\"data-testid\":\"work-item-overview\"}},[_c('section',[_c('work-item-description',{attrs:{\"edit-mode\":\"\",\"autofocus\":false,\"description\":_vm.description,\"full-path\":_vm.fullPath,\"show-buttons-below-field\":false,\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"work-item-type-name\":_vm.selectedWorkItemTypeName},on:{\"error\":function($event){_vm.updateError = $event},\"updateDraft\":function($event){return _vm.updateDraftData('description', $event)}}}),_vm._v(\" \"),_c('gl-form-checkbox',{attrs:{\"id\":\"work-item-confidential\",\"data-testid\":\"confidential-checkbox\"},on:{\"change\":function($event){return _vm.updateDraftData('confidential', $event)}},model:{value:(_vm.isConfidential),callback:function ($$v) {_vm.isConfidential=$$v},expression:\"isConfidential\"}},[_vm._v(\"\\n            \"+_vm._s(_vm.makeConfidentialText)+\"\\n          \")]),_vm._v(\" \"),(_vm.relatedItem)?_c('gl-form-checkbox',{staticClass:\"gl-mt-3\",attrs:{\"id\":\"work-item-relates-to\",\"data-testid\":\"relates-to-checkbox\"},model:{value:(_vm.isRelatedToItem),callback:function ($$v) {_vm.isRelatedToItem=$$v},expression:\"isRelatedToItem\"}},[_vm._v(\"\\n            \"+_vm._s(_vm.relatedItemText)+\"\\n          \")]):_vm._e()],1),_vm._v(\" \"),(_vm.hasWidgets)?_c('aside',{staticClass:\"work-item-overview-right-sidebar gl-px-3\",class:{ 'is-modal': true },attrs:{\"data-testid\":\"work-item-overview-right-sidebar\"}},[(_vm.workItemAssignees)?_c('work-item-assignees',{staticClass:\"js-assignee work-item-attributes-item\",attrs:{\"can-update\":_vm.canUpdate,\"full-path\":_vm.fullPath,\"is-group\":_vm.isGroup,\"work-item-id\":_vm.workItemId,\"assignees\":_vm.workItemAssignees.assignees.nodes,\"participants\":_vm.workItemParticipantNodes,\"work-item-author\":_vm.workItemAuthor,\"allows-multiple-assignees\":_vm.workItemAssignees.allowsMultipleAssignees,\"work-item-type\":_vm.selectedWorkItemTypeName,\"can-invite-members\":_vm.workItemAssignees.canInviteMembers},on:{\"error\":function($event){return _vm.$emit('error', $event)}}}):_vm._e(),_vm._v(\" \"),(_vm.workItemLabels)?_c('work-item-labels',{staticClass:\"js-labels work-item-attributes-item\",attrs:{\"can-update\":_vm.canUpdate,\"full-path\":_vm.fullPath,\"is-group\":_vm.isGroup,\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"work-item-type\":_vm.selectedWorkItemTypeName},on:{\"error\":function($event){return _vm.$emit('error', $event)}}}):_vm._e(),_vm._v(\" \"),(_vm.workItemIteration)?_c('work-item-iteration',{staticClass:\"work-item-attributes-item\",attrs:{\"full-path\":_vm.fullPath,\"is-group\":_vm.isGroup,\"iteration\":_vm.workItemIteration.iteration,\"can-update\":_vm.canUpdate,\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"work-item-type\":_vm.selectedWorkItemTypeName},on:{\"error\":function($event){return _vm.$emit('error', $event)}}}):_vm._e(),_vm._v(\" \"),(_vm.workItemMilestone)?_c('work-item-milestone',{staticClass:\"work-item-attributes-item\",attrs:{\"is-group\":_vm.isGroup,\"full-path\":_vm.fullPath,\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"work-item-milestone\":_vm.workItemMilestone.milestone,\"work-item-type\":_vm.selectedWorkItemTypeName,\"can-update\":_vm.canUpdate},on:{\"error\":function($event){return _vm.$emit('error', $event)}}}):_vm._e(),_vm._v(\" \"),(_vm.workItemWeight)?_c('work-item-weight',{staticClass:\"work-item-attributes-item\",attrs:{\"can-update\":_vm.canUpdate,\"full-path\":_vm.fullPath,\"widget\":_vm.workItemWeight,\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"work-item-type\":_vm.selectedWorkItemTypeName},on:{\"error\":function($event){return _vm.$emit('error', $event)}}}):_vm._e(),_vm._v(\" \"),(_vm.workItemStartAndDueDate)?_c('work-item-rolledup-dates',{staticClass:\"work-item-attributes-item\",attrs:{\"can-update\":_vm.canUpdate,\"full-path\":_vm.fullPath,\"start-date\":_vm.workItemStartAndDueDate.startDate,\"due-date\":_vm.workItemStartAndDueDate.dueDate,\"is-fixed\":_vm.workItemStartAndDueDate.isFixed,\"should-roll-up\":_vm.workItemStartAndDueDate.rollUp,\"work-item-type\":_vm.selectedWorkItemTypeName,\"work-item\":_vm.workItem},on:{\"error\":function($event){return _vm.$emit('error', $event)}}}):_vm._e(),_vm._v(\" \"),(_vm.workItemHealthStatus)?_c('work-item-health-status',{staticClass:\"work-item-attributes-item\",attrs:{\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"work-item-type\":_vm.selectedWorkItemTypeName,\"full-path\":_vm.fullPath},on:{\"error\":function($event){return _vm.$emit('error', $event)}}}):_vm._e(),_vm._v(\" \"),(_vm.workItemColor)?_c('work-item-color',{staticClass:\"work-item-attributes-item\",attrs:{\"work-item\":_vm.workItem,\"full-path\":_vm.fullPath,\"can-update\":_vm.canUpdate},on:{\"error\":function($event){return _vm.$emit('error', $event)}}}):_vm._e(),_vm._v(\" \"),(_vm.workItemHierarchy)?_c('work-item-parent',{staticClass:\"work-item-attributes-item\",attrs:{\"can-update\":_vm.canUpdate,\"work-item-id\":_vm.workItemId,\"work-item-type\":_vm.selectedWorkItemTypeName,\"group-path\":_vm.groupPath,\"full-path\":_vm.fullPath,\"parent\":_vm.workItemParent,\"is-group\":_vm.isGroup},on:{\"error\":function($event){return _vm.$emit('error', $event)}}}):_vm._e(),_vm._v(\" \"),(_vm.workItemCrmContacts)?_c('work-item-crm-contacts',{staticClass:\"work-item-attributes-item\",attrs:{\"full-path\":_vm.fullPath,\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"work-item-type\":_vm.selectedWorkItemTypeName},on:{\"error\":function($event){return _vm.$emit('error', $event)}}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(!_vm.stickyFormSubmit)?_c('div',{staticClass:\"gl-col-start-1 gl-flex gl-gap-3 gl-py-3\",attrs:{\"data-testid\":\"form-buttons\"}},[_c('gl-button',{attrs:{\"variant\":\"confirm\",\"loading\":_vm.loading,\"data-testid\":\"create-button\"},on:{\"click\":_vm.createWorkItem}},[_vm._v(\"\\n            \"+_vm._s(_vm.createWorkItemText)+\"\\n          \")]),_vm._v(\" \"),_c('gl-button',{attrs:{\"type\":\"button\",\"data-testid\":\"cancel-button\"},on:{\"click\":_vm.handleCancelClick}},[_vm._v(\"\\n            \"+_vm._s(_vm.__('Cancel'))+\"\\n          \")])],1):_vm._e()]),_vm._v(\" \"),(_vm.stickyFormSubmit)?_c('div',{staticClass:\"gl-border-t gl-sticky gl-bottom-0 gl-z-1 -gl-mx-5 gl-flex gl-justify-end gl-gap-3 gl-bg-overlap gl-px-5 gl-py-3\",attrs:{\"data-testid\":\"form-buttons\"}},[_c('gl-button',{attrs:{\"type\":\"button\",\"data-testid\":\"cancel-button\"},on:{\"click\":_vm.handleCancelClick}},[_vm._v(\"\\n          \"+_vm._s(_vm.__('Cancel'))+\"\\n        \")]),_vm._v(\" \"),_c('gl-button',{attrs:{\"variant\":\"confirm\",\"loading\":_vm.loading,\"data-testid\":\"create-button\"},on:{\"click\":_vm.createWorkItem}},[_vm._v(\"\\n          \"+_vm._s(_vm.createWorkItemText)+\"\\n        \")])],1):_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!./create_work_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!./create_work_item.vue?vue&type=script&lang=js\"","<script>\nimport {\n  GlButton,\n  GlAlert,\n  GlLoadingIcon,\n  GlFormCheckbox,\n  GlFormGroup,\n  GlFormSelect,\n} from '@gitlab/ui';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { getPreferredLocales, s__, sprintf } from '~/locale';\nimport { capitalizeFirstCharacter } from '~/lib/utils/text_utility';\nimport { fetchPolicies } from '~/lib/graphql';\nimport { addHierarchyChild, setNewWorkItemCache } from '~/work_items/graphql/cache_utils';\nimport { findWidget } from '~/issues/list/utils';\nimport { newWorkItemFullPath, getNewWorkItemAutoSaveKey } from '~/work_items/utils';\nimport TitleSuggestions from '~/issues/new/components/title_suggestions.vue';\nimport { clearDraft } from '~/lib/utils/autosave';\nimport {\n  I18N_WORK_ITEM_CREATE_BUTTON_LABEL,\n  I18N_WORK_ITEM_ERROR_CREATING,\n  I18N_WORK_ITEM_ERROR_FETCHING_TYPES,\n  sprintfWorkItem,\n  i18n,\n  WIDGET_TYPE_ASSIGNEES,\n  WIDGET_TYPE_COLOR,\n  NEW_WORK_ITEM_IID,\n  WIDGET_TYPE_HEALTH_STATUS,\n  WIDGET_TYPE_PARTICIPANTS,\n  WIDGET_TYPE_DESCRIPTION,\n  NEW_WORK_ITEM_GID,\n  WIDGET_TYPE_LABELS,\n  WIDGET_TYPE_WEIGHT,\n  WIDGET_TYPE_START_AND_DUE_DATE,\n  WIDGET_TYPE_CRM_CONTACTS,\n  WIDGET_TYPE_LINKED_ITEMS,\n  WIDGET_TYPE_ITERATION,\n  WIDGET_TYPE_MILESTONE,\n  DEFAULT_EPIC_COLORS,\n  WIDGET_TYPE_HIERARCHY,\n} from '../constants';\nimport createWorkItemMutation from '../graphql/create_work_item.mutation.graphql';\nimport namespaceWorkItemTypesQuery from '../graphql/namespace_work_item_types.query.graphql';\nimport workItemByIidQuery from '../graphql/work_item_by_iid.query.graphql';\nimport updateNewWorkItemMutation from '../graphql/update_new_work_item.mutation.graphql';\nimport { isMetaEnterKeyPair } from '../../lib/utils/common_utils';\nimport WorkItemProjectsListbox from './work_item_links/work_item_projects_listbox.vue';\nimport WorkItemTitle from './work_item_title.vue';\nimport WorkItemDescription from './work_item_description.vue';\nimport WorkItemAssignees from './work_item_assignees.vue';\nimport WorkItemLabels from './work_item_labels.vue';\nimport WorkItemMilestone from './work_item_milestone.vue';\nimport WorkItemParent from './work_item_parent.vue';\nimport WorkItemLoading from './work_item_loading.vue';\nimport WorkItemCrmContacts from './work_item_crm_contacts.vue';\n\nexport default {\n  components: {\n    GlButton,\n    GlAlert,\n    GlLoadingIcon,\n    GlFormGroup,\n    GlFormCheckbox,\n    GlFormSelect,\n    WorkItemDescription,\n    WorkItemTitle,\n    WorkItemAssignees,\n    WorkItemLabels,\n    WorkItemMilestone,\n    WorkItemLoading,\n    WorkItemCrmContacts,\n    WorkItemProjectsListbox,\n    TitleSuggestions,\n    WorkItemParent,\n    WorkItemWeight: () => import('ee_component/work_items/components/work_item_weight.vue'),\n    WorkItemHealthStatus: () =>\n      import('ee_component/work_items/components/work_item_health_status.vue'),\n    WorkItemColor: () => import('ee_component/work_items/components/work_item_color.vue'),\n    WorkItemRolledupDates: () =>\n      import('ee_component/work_items/components/work_item_rolledup_dates.vue'),\n    WorkItemIteration: () => import('ee_component/work_items/components/work_item_iteration.vue'),\n  },\n  inject: ['fullPath', 'groupPath'],\n  i18n: {\n    suggestionTitle: s__('WorkItem|Similar items'),\n    similarWorkItemHelpText: s__(\n      'WorkItem|These existing items have a similar title and may represent potential duplicates.',\n    ),\n  },\n  props: {\n    description: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    hideFormTitle: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isGroup: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    parentId: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    showProjectSelector: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    title: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    workItemTypeName: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    stickyFormSubmit: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    relatedItem: {\n      type: Object,\n      required: false,\n      validator: (i) => i.id && i.type && i.reference,\n      default: null,\n    },\n    shouldDiscardDraft: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      isTitleValid: true,\n      workItemTitle: this.title || '',\n      isConfidential: false,\n      isRelatedToItem: true,\n      error: null,\n      workItemTypes: [],\n      selectedProjectFullPath: this.fullPath || null,\n      selectedWorkItemTypeId: null,\n      loading: false,\n      initialLoadingWorkItem: true,\n      initialLoadingWorkItemTypes: true,\n      showWorkItemTypeSelect: false,\n    };\n  },\n  apollo: {\n    // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n    workItem: {\n      query: workItemByIidQuery,\n      variables() {\n        return {\n          fullPath: this.newWorkItemPath,\n          iid: NEW_WORK_ITEM_IID,\n        };\n      },\n      skip() {\n        return this.skipWorkItemQuery;\n      },\n      update(data) {\n        const title = data?.workspace?.workItem?.title;\n\n        if (this.isTitleFilled(title)) {\n          this.updateTitle(title);\n        }\n        return data?.workspace?.workItem ?? {};\n      },\n      result() {\n        this.initialLoadingWorkItem = false;\n      },\n      error() {\n        this.error = i18n.fetchError;\n      },\n    },\n    workItemTypes: {\n      query() {\n        return namespaceWorkItemTypesQuery;\n      },\n      fetchPolicy() {\n        return this.workItemTypeName ? fetchPolicies.CACHE_ONLY : fetchPolicies.CACHE_FIRST;\n      },\n      variables() {\n        return {\n          fullPath: this.fullPath,\n          name: this.workItemTypeName,\n        };\n      },\n      update(data) {\n        return data.workspace?.workItemTypes?.nodes;\n      },\n      async result() {\n        this.initialLoadingWorkItemTypes = false;\n        if (!this.workItemTypes?.length) {\n          return;\n        }\n        if (this.workItemTypes?.length === 1) {\n          const workItemType = this.workItemTypes[0];\n          await setNewWorkItemCache(\n            this.fullPath,\n            workItemType?.widgetDefinitions,\n            workItemType.name,\n            workItemType.id,\n            workItemType.iconName,\n          );\n          this.selectedWorkItemTypeId = workItemType?.id;\n        } else {\n          this.workItemTypes.forEach(async (workItemType) => {\n            await setNewWorkItemCache(\n              this.fullPath,\n              workItemType?.widgetDefinitions,\n              workItemType.name,\n              workItemType.id,\n              workItemType.iconName,\n            );\n          });\n          this.showWorkItemTypeSelect = true;\n        }\n      },\n      error() {\n        this.error = I18N_WORK_ITEM_ERROR_FETCHING_TYPES;\n      },\n    },\n  },\n  computed: {\n    newWorkItemPath() {\n      return newWorkItemFullPath(this.fullPath, this.selectedWorkItemTypeName);\n    },\n    isLoading() {\n      return (\n        this.initialLoadingWorkItemTypes || (this.initialLoadingWorkItem && !this.skipWorkItemQuery)\n      );\n    },\n    skipWorkItemQuery() {\n      return !this.fullPath || !this.selectedWorkItemTypeName;\n    },\n    hasWidgets() {\n      return this.workItem?.widgets?.length > 0;\n    },\n    workItemAssignees() {\n      return findWidget(WIDGET_TYPE_ASSIGNEES, this.workItem);\n    },\n    workItemMilestone() {\n      return findWidget(WIDGET_TYPE_MILESTONE, this.workItem);\n    },\n    workItemLabels() {\n      return findWidget(WIDGET_TYPE_LABELS, this.workItem);\n    },\n    workItemIteration() {\n      return findWidget(WIDGET_TYPE_ITERATION, this.workItem);\n    },\n    workItemWeight() {\n      return findWidget(WIDGET_TYPE_WEIGHT, this.workItem);\n    },\n    workItemHealthStatus() {\n      return findWidget(WIDGET_TYPE_HEALTH_STATUS, this.workItem);\n    },\n    workItemColor() {\n      return findWidget(WIDGET_TYPE_COLOR, this.workItem);\n    },\n    workItemHierarchy() {\n      return findWidget(WIDGET_TYPE_HIERARCHY, this.workItem);\n    },\n    workItemCrmContacts() {\n      return findWidget(WIDGET_TYPE_CRM_CONTACTS, this.workItem);\n    },\n    workItemTypesForSelect() {\n      return this.workItemTypes\n        ? this.workItemTypes.map((node) => ({\n            value: node.id,\n            text: capitalizeFirstCharacter(node.name.toLocaleLowerCase(getPreferredLocales()[0])),\n          }))\n        : [];\n    },\n    selectedWorkItemType() {\n      return this.workItemTypes?.find((item) => item.id === this.selectedWorkItemTypeId);\n    },\n    selectedWorkItemTypeName() {\n      return this.selectedWorkItemType?.name;\n    },\n    selectedWorkItemTypeIconName() {\n      return this.selectedWorkItemType?.iconName;\n    },\n    formOptions() {\n      return [{ value: null, text: s__('WorkItem|Select type') }, ...this.workItemTypesForSelect];\n    },\n    createErrorText() {\n      return sprintfWorkItem(I18N_WORK_ITEM_ERROR_CREATING, this.selectedWorkItemTypeName);\n    },\n    createWorkItemText() {\n      return sprintfWorkItem(I18N_WORK_ITEM_CREATE_BUTTON_LABEL, this.selectedWorkItemTypeName);\n    },\n    makeConfidentialText() {\n      return sprintfWorkItem(\n        s__(\n          'WorkItem|This %{workItemType} is confidential and should only be visible to users having at least the Planner role.',\n        ),\n        this.selectedWorkItemTypeName,\n      );\n    },\n    titleText() {\n      return sprintfWorkItem(s__('WorkItem|New %{workItemType}'), this.selectedWorkItemTypeName);\n    },\n    canUpdate() {\n      return this.workItem?.userPermissions?.updateWorkItem;\n    },\n    workItemType() {\n      return this.workItem?.workItemType?.name;\n    },\n    workItemParticipantNodes() {\n      return this.workItemParticipants?.participants?.nodes ?? [];\n    },\n    workItemParticipants() {\n      return findWidget(WIDGET_TYPE_PARTICIPANTS, this.workItem);\n    },\n    workItemAssigneeIds() {\n      const assigneesWidget = findWidget(WIDGET_TYPE_ASSIGNEES, this.workItem);\n      return assigneesWidget?.assignees?.nodes?.map((assignee) => assignee.id) || [];\n    },\n    workItemLabelIds() {\n      const labelsWidget = findWidget(WIDGET_TYPE_LABELS, this.workItem);\n      return labelsWidget?.labels?.nodes?.map((label) => label.id) || [];\n    },\n    workItemWeightValue() {\n      const weightWidget = findWidget(WIDGET_TYPE_WEIGHT, this.workItem);\n      return weightWidget?.weight ?? null;\n    },\n    workItemMilestoneId() {\n      return this.workItemMilestone?.milestone?.id || null;\n    },\n    workItemCrmContactIds() {\n      return this.workItemCrmContacts?.contacts?.nodes?.map((item) => item.id) || [];\n    },\n    workItemParent() {\n      return this.workItemHierarchy?.parent || null;\n    },\n    workItemColorValue() {\n      const colorWidget = findWidget(WIDGET_TYPE_COLOR, this.workItem);\n      return colorWidget?.color || '';\n    },\n    workItemHealthStatusValue() {\n      const healthStatusWidget = findWidget(WIDGET_TYPE_HEALTH_STATUS, this.workItem);\n      return healthStatusWidget?.healthStatus || null;\n    },\n    workItemAuthor() {\n      return this.workItem?.author;\n    },\n    workItemDescription() {\n      const descriptionWidget = findWidget(WIDGET_TYPE_DESCRIPTION, this.workItem);\n      return descriptionWidget?.description || this.description;\n    },\n    workItemStartAndDueDate() {\n      return findWidget(WIDGET_TYPE_START_AND_DUE_DATE, this.workItem);\n    },\n    workItemIterationId() {\n      return this.workItemIteration?.iteration?.id;\n    },\n    workItemId() {\n      return this.workItem?.id;\n    },\n    workItemIid() {\n      return this.workItem?.iid;\n    },\n    relatedItemText() {\n      return sprintf(s__('WorkItem|Relates to %{workItemType} %{workItemReference}'), {\n        workItemType: this.relatedItem.type,\n        workItemReference: this.relatedItem.reference,\n      });\n    },\n    shouldIncludeRelatedItem() {\n      return (\n        this.isWidgetSupported(WIDGET_TYPE_LINKED_ITEMS) &&\n        this.isRelatedToItem &&\n        this.relatedItem?.id\n      );\n    },\n    isFormFilled() {\n      const isTitleFilled = Boolean(this.workItemTitle.trim());\n      const isDescriptionFilled = Boolean(this.workItemDescription.trim());\n      const defaultColorValue = DEFAULT_EPIC_COLORS;\n\n      return (\n        isTitleFilled ||\n        isDescriptionFilled ||\n        this.workItemAssigneeIds.length > 0 ||\n        this.workItemLabelIds.length > 0 ||\n        this.workItemCrmContactIds.length > 0 ||\n        (Boolean(this.workItemColorValue) && this.workItemColorValue !== defaultColorValue) ||\n        Boolean(this.workItemHealthStatusValue) ||\n        Boolean(this.workItemDueDateFixed) ||\n        Boolean(this.workItemStartDateFixed) ||\n        Boolean(this.workItemDueDateIsFixed) ||\n        Boolean(this.workItemStartDateIsFixed) ||\n        Boolean(this.workItemIterationId)\n      );\n    },\n  },\n  watch: {\n    shouldDiscardDraft: {\n      immediate: true,\n      handler(shouldDiscardDraft) {\n        // If this component is rendered in the create modal and user added data,\n        // we need to track the button clicked on the confirmation modal (another modal)\n        if (shouldDiscardDraft) {\n          this.handleDiscardDraft();\n        }\n      },\n    },\n    /*\n      Only needed for the cancellation confirmation modal\n      when creating a work item in the project route,\n      as you can choose the work item type in the dropdown\n    */\n    selectedWorkItemTypeName(newValue) {\n      this.$emit('updateType', newValue);\n    },\n  },\n  mounted() {\n    // We need this event listener in the document because when\n    // updating widgets, the form may no be in focus and triggering\n    // a keyboard event in the form won't get caught\n    document.addEventListener('keydown', this.handleKeydown);\n  },\n  beforeDestroy() {\n    document.removeEventListener('keydown', this.handleKeydown);\n  },\n  methods: {\n    handleKeydown(e) {\n      if (isMetaEnterKeyPair(e)) {\n        this.createWorkItem();\n      }\n    },\n    isTitleFilled(newValue) {\n      const title = newValue ?? this.workItemTitle;\n      return Boolean(String(title).trim());\n    },\n    updateTitle(newValue) {\n      this.workItemTitle = newValue;\n    },\n    isWidgetSupported(widgetType) {\n      const widgetDefinitions =\n        this.selectedWorkItemType?.widgetDefinitions?.flatMap((i) => i.type) || [];\n      return widgetDefinitions.indexOf(widgetType) !== -1;\n    },\n    validate(newValue) {\n      this.isTitleValid = this.isTitleFilled(newValue);\n    },\n    async updateDraftData(type, value) {\n      if (type === 'title') {\n        this.workItemTitle = value;\n      }\n\n      try {\n        this.$apollo.mutate({\n          mutation: updateNewWorkItemMutation,\n          variables: {\n            input: {\n              fullPath: this.fullPath,\n              workItemType: this.selectedWorkItemTypeName || this.workItemTypeName,\n              [type]: value,\n            },\n          },\n        });\n      } catch {\n        this.error = this.createErrorText;\n        Sentry.captureException(this.error);\n      }\n    },\n    async createWorkItem() {\n      this.validate();\n\n      if (!this.isTitleValid) {\n        return;\n      }\n\n      this.loading = true;\n\n      const workItemCreateInput = {\n        title: this.workItemTitle,\n        workItemTypeId: this.selectedWorkItemTypeId,\n        namespacePath: this.selectedProjectFullPath || this.fullPath,\n        confidential: this.workItem.confidential,\n        descriptionWidget: {\n          description: this.workItemDescription || '',\n        },\n      };\n\n      // TODO , we can move this to util, currently objectives with other widgets not being supported is causing issues\n\n      if (this.isWidgetSupported(WIDGET_TYPE_COLOR)) {\n        workItemCreateInput.colorWidget = {\n          color: this.workItemColorValue,\n        };\n      }\n\n      if (this.isWidgetSupported(WIDGET_TYPE_ASSIGNEES)) {\n        workItemCreateInput.assigneesWidget = {\n          assigneeIds: this.workItemAssigneeIds,\n        };\n      }\n\n      if (this.isWidgetSupported(WIDGET_TYPE_HEALTH_STATUS)) {\n        workItemCreateInput.healthStatusWidget = {\n          healthStatus: this.workItemHealthStatusValue,\n        };\n      }\n\n      if (this.isWidgetSupported(WIDGET_TYPE_LABELS)) {\n        workItemCreateInput.labelsWidget = {\n          labelIds: this.workItemLabelIds,\n        };\n      }\n\n      if (this.isWidgetSupported(WIDGET_TYPE_ITERATION)) {\n        workItemCreateInput.iterationWidget = {\n          iterationId: this.workItemIterationId,\n        };\n      }\n\n      if (this.isWidgetSupported(WIDGET_TYPE_WEIGHT)) {\n        workItemCreateInput.weightWidget = {\n          weight: this.workItemWeightValue,\n        };\n      }\n\n      if (this.isWidgetSupported(WIDGET_TYPE_MILESTONE)) {\n        workItemCreateInput.milestoneWidget = {\n          milestoneId: this.workItemMilestoneId,\n        };\n      }\n\n      if (this.isWidgetSupported(WIDGET_TYPE_START_AND_DUE_DATE)) {\n        workItemCreateInput.startAndDueDateWidget = {\n          isFixed: this.workItemStartAndDueDate.isFixed,\n          startDate: this.workItemStartAndDueDate.startDate,\n          dueDate: this.workItemStartAndDueDate.dueDate,\n        };\n      }\n\n      if (this.isWidgetSupported(WIDGET_TYPE_CRM_CONTACTS)) {\n        workItemCreateInput.crmContactsWidget = {\n          contactIds: this.workItemCrmContactIds,\n        };\n      }\n\n      if (this.shouldIncludeRelatedItem) {\n        workItemCreateInput.linkedItemsWidget = {\n          workItemsIds: [this.relatedItem.id],\n        };\n      }\n\n      if (\n        this.parentId ||\n        (this.isWidgetSupported(WIDGET_TYPE_HIERARCHY) && this.workItemParent?.id)\n      ) {\n        workItemCreateInput.hierarchyWidget = {\n          parentId: this.workItemParent?.id ?? this.parentId,\n        };\n      }\n\n      try {\n        const response = await this.$apollo.mutate({\n          mutation: createWorkItemMutation,\n          variables: {\n            input: {\n              ...workItemCreateInput,\n            },\n          },\n          update: (store, { data: { workItemCreate } }) => {\n            const { workItem } = workItemCreate;\n\n            if (\n              this.parentId ||\n              (this.isWidgetSupported(WIDGET_TYPE_HIERARCHY) && this.workItemParent?.id)\n            ) {\n              addHierarchyChild({\n                cache: store,\n                id: this.workItemParent?.id ?? this.parentId,\n                workItem,\n              });\n            }\n          },\n        });\n\n        this.$emit('workItemCreated', response.data.workItemCreate.workItem);\n        const workItemTypeName = this.selectedWorkItemTypeName || this.workItemTypeName;\n        const autosaveKey = getNewWorkItemAutoSaveKey(this.fullPath, workItemTypeName);\n        clearDraft(autosaveKey);\n      } catch {\n        this.error = this.createErrorText;\n        this.loading = false;\n      }\n    },\n    handleCancelClick() {\n      /*\n      If any form field is filled or has a non-default value, ask user to confirm\n      if they want to discard the draft\n    */\n      if (this.isFormFilled) {\n        this.$emit('confirmCancel');\n      } else {\n        this.$emit('discardDraft');\n        this.handleDiscardDraft();\n      }\n    },\n    handleDiscardDraft() {\n      const workItemTypeName = this.selectedWorkItemTypeName || this.workItemTypeName;\n      const autosaveKey = getNewWorkItemAutoSaveKey(this.fullPath, workItemTypeName);\n      clearDraft(autosaveKey);\n\n      const selectedWorkItemWidgets = this.selectedWorkItemType?.widgetDefinitions || [];\n\n      setNewWorkItemCache(\n        this.fullPath,\n        selectedWorkItemWidgets,\n        this.selectedWorkItemTypeName,\n        this.selectedWorkItemTypeId,\n        this.selectedWorkItemTypeIconName,\n      );\n    },\n  },\n  NEW_WORK_ITEM_IID,\n  NEW_WORK_ITEM_GID,\n};\n</script>\n\n<template>\n  <form @submit.prevent=\"createWorkItem\">\n    <work-item-loading v-if=\"isLoading\" />\n    <template v-else>\n      <gl-alert v-if=\"error\" class=\"gl-mb-3\" variant=\"danger\" @dismiss=\"error = null\">\n        {{ error }}\n      </gl-alert>\n      <h1 v-if=\"!hideFormTitle\" class=\"page-title gl-text-xl gl-pb-5\">{{ titleText }}</h1>\n      <div class=\"gl-flex gl-items-center gl-gap-4\">\n        <gl-form-group\n          v-if=\"showProjectSelector\"\n          class=\"gl-max-w-26 gl-flex-grow\"\n          :label=\"__('Project')\"\n        >\n          <work-item-projects-listbox\n            v-model=\"selectedProjectFullPath\"\n            :full-path=\"fullPath\"\n            :is-group=\"isGroup\"\n          />\n        </gl-form-group>\n\n        <gl-loading-icon v-if=\"$apollo.queries.workItemTypes.loading\" size=\"lg\" />\n        <gl-form-group\n          v-else-if=\"showWorkItemTypeSelect\"\n          class=\"gl-max-w-26 gl-flex-grow\"\n          :label=\"__('Type')\"\n          label-for=\"work-item-type\"\n        >\n          <gl-form-select\n            id=\"work-item-type\"\n            v-model=\"selectedWorkItemTypeId\"\n            data-testid=\"work-item-types-select\"\n            :options=\"formOptions\"\n          />\n        </gl-form-group>\n      </div>\n      <div v-if=\"selectedWorkItemTypeId\" data-testid=\"create-work-item\">\n        <work-item-title\n          ref=\"title\"\n          data-testid=\"title-input\"\n          is-editing\n          :is-valid=\"isTitleValid\"\n          :title=\"workItemTitle\"\n          @updateDraft=\"updateDraftData('title', $event)\"\n        />\n        <title-suggestions\n          :project-path=\"fullPath\"\n          :search=\"workItemTitle\"\n          :help-text=\"$options.i18n.similarWorkItemHelpText\"\n          :title=\"$options.i18n.suggestionTitle\"\n        />\n        <div data-testid=\"work-item-overview\" class=\"work-item-overview\">\n          <section>\n            <work-item-description\n              edit-mode\n              :autofocus=\"false\"\n              :description=\"description\"\n              :full-path=\"fullPath\"\n              :show-buttons-below-field=\"false\"\n              :work-item-id=\"workItemId\"\n              :work-item-iid=\"workItemIid\"\n              :work-item-type-name=\"selectedWorkItemTypeName\"\n              @error=\"updateError = $event\"\n              @updateDraft=\"updateDraftData('description', $event)\"\n            />\n            <gl-form-checkbox\n              id=\"work-item-confidential\"\n              v-model=\"isConfidential\"\n              data-testid=\"confidential-checkbox\"\n              @change=\"updateDraftData('confidential', $event)\"\n            >\n              {{ makeConfidentialText }}\n            </gl-form-checkbox>\n            <gl-form-checkbox\n              v-if=\"relatedItem\"\n              id=\"work-item-relates-to\"\n              v-model=\"isRelatedToItem\"\n              class=\"gl-mt-3\"\n              data-testid=\"relates-to-checkbox\"\n            >\n              {{ relatedItemText }}\n            </gl-form-checkbox>\n          </section>\n          <aside\n            v-if=\"hasWidgets\"\n            data-testid=\"work-item-overview-right-sidebar\"\n            class=\"work-item-overview-right-sidebar gl-px-3\"\n            :class=\"{ 'is-modal': true }\"\n          >\n            <work-item-assignees\n              v-if=\"workItemAssignees\"\n              class=\"js-assignee work-item-attributes-item\"\n              :can-update=\"canUpdate\"\n              :full-path=\"fullPath\"\n              :is-group=\"isGroup\"\n              :work-item-id=\"workItemId\"\n              :assignees=\"workItemAssignees.assignees.nodes\"\n              :participants=\"workItemParticipantNodes\"\n              :work-item-author=\"workItemAuthor\"\n              :allows-multiple-assignees=\"workItemAssignees.allowsMultipleAssignees\"\n              :work-item-type=\"selectedWorkItemTypeName\"\n              :can-invite-members=\"workItemAssignees.canInviteMembers\"\n              @error=\"$emit('error', $event)\"\n            />\n            <work-item-labels\n              v-if=\"workItemLabels\"\n              class=\"js-labels work-item-attributes-item\"\n              :can-update=\"canUpdate\"\n              :full-path=\"fullPath\"\n              :is-group=\"isGroup\"\n              :work-item-id=\"workItemId\"\n              :work-item-iid=\"workItemIid\"\n              :work-item-type=\"selectedWorkItemTypeName\"\n              @error=\"$emit('error', $event)\"\n            />\n            <work-item-iteration\n              v-if=\"workItemIteration\"\n              class=\"work-item-attributes-item\"\n              :full-path=\"fullPath\"\n              :is-group=\"isGroup\"\n              :iteration=\"workItemIteration.iteration\"\n              :can-update=\"canUpdate\"\n              :work-item-id=\"workItemId\"\n              :work-item-iid=\"workItemIid\"\n              :work-item-type=\"selectedWorkItemTypeName\"\n              @error=\"$emit('error', $event)\"\n            />\n            <work-item-milestone\n              v-if=\"workItemMilestone\"\n              class=\"work-item-attributes-item\"\n              :is-group=\"isGroup\"\n              :full-path=\"fullPath\"\n              :work-item-id=\"workItemId\"\n              :work-item-iid=\"workItemIid\"\n              :work-item-milestone=\"workItemMilestone.milestone\"\n              :work-item-type=\"selectedWorkItemTypeName\"\n              :can-update=\"canUpdate\"\n              @error=\"$emit('error', $event)\"\n            />\n            <work-item-weight\n              v-if=\"workItemWeight\"\n              class=\"work-item-attributes-item\"\n              :can-update=\"canUpdate\"\n              :full-path=\"fullPath\"\n              :widget=\"workItemWeight\"\n              :work-item-id=\"workItemId\"\n              :work-item-iid=\"workItemIid\"\n              :work-item-type=\"selectedWorkItemTypeName\"\n              @error=\"$emit('error', $event)\"\n            />\n            <work-item-rolledup-dates\n              v-if=\"workItemStartAndDueDate\"\n              class=\"work-item-attributes-item\"\n              :can-update=\"canUpdate\"\n              :full-path=\"fullPath\"\n              :start-date=\"workItemStartAndDueDate.startDate\"\n              :due-date=\"workItemStartAndDueDate.dueDate\"\n              :is-fixed=\"workItemStartAndDueDate.isFixed\"\n              :should-roll-up=\"workItemStartAndDueDate.rollUp\"\n              :work-item-type=\"selectedWorkItemTypeName\"\n              :work-item=\"workItem\"\n              @error=\"$emit('error', $event)\"\n            />\n            <work-item-health-status\n              v-if=\"workItemHealthStatus\"\n              class=\"work-item-attributes-item\"\n              :work-item-id=\"workItemId\"\n              :work-item-iid=\"workItemIid\"\n              :work-item-type=\"selectedWorkItemTypeName\"\n              :full-path=\"fullPath\"\n              @error=\"$emit('error', $event)\"\n            />\n            <work-item-color\n              v-if=\"workItemColor\"\n              class=\"work-item-attributes-item\"\n              :work-item=\"workItem\"\n              :full-path=\"fullPath\"\n              :can-update=\"canUpdate\"\n              @error=\"$emit('error', $event)\"\n            />\n            <work-item-parent\n              v-if=\"workItemHierarchy\"\n              class=\"work-item-attributes-item\"\n              :can-update=\"canUpdate\"\n              :work-item-id=\"workItemId\"\n              :work-item-type=\"selectedWorkItemTypeName\"\n              :group-path=\"groupPath\"\n              :full-path=\"fullPath\"\n              :parent=\"workItemParent\"\n              :is-group=\"isGroup\"\n              @error=\"$emit('error', $event)\"\n            />\n            <work-item-crm-contacts\n              v-if=\"workItemCrmContacts\"\n              class=\"work-item-attributes-item\"\n              :full-path=\"fullPath\"\n              :work-item-id=\"workItemId\"\n              :work-item-iid=\"workItemIid\"\n              :work-item-type=\"selectedWorkItemTypeName\"\n              @error=\"$emit('error', $event)\"\n            />\n          </aside>\n          <div\n            v-if=\"!stickyFormSubmit\"\n            class=\"gl-col-start-1 gl-flex gl-gap-3 gl-py-3\"\n            data-testid=\"form-buttons\"\n          >\n            <gl-button\n              variant=\"confirm\"\n              :loading=\"loading\"\n              data-testid=\"create-button\"\n              @click=\"createWorkItem\"\n            >\n              {{ createWorkItemText }}\n            </gl-button>\n            <gl-button type=\"button\" data-testid=\"cancel-button\" @click=\"handleCancelClick\">\n              {{ __('Cancel') }}\n            </gl-button>\n          </div>\n        </div>\n        <!-- stick to bottom and put the Confim button on the right -->\n        <!-- bg-overlap to match modal bg -->\n        <div\n          v-if=\"stickyFormSubmit\"\n          class=\"gl-border-t gl-sticky gl-bottom-0 gl-z-1 -gl-mx-5 gl-flex gl-justify-end gl-gap-3 gl-bg-overlap gl-px-5 gl-py-3\"\n          data-testid=\"form-buttons\"\n        >\n          <gl-button type=\"button\" data-testid=\"cancel-button\" @click=\"handleCancelClick\">\n            {{ __('Cancel') }}\n          </gl-button>\n          <gl-button\n            variant=\"confirm\"\n            :loading=\"loading\"\n            data-testid=\"create-button\"\n            @click=\"createWorkItem\"\n          >\n            {{ createWorkItemText }}\n          </gl-button>\n        </div>\n      </div>\n    </template>\n  </form>\n</template>\n","import { render, staticRenderFns } from \"./create_work_item.vue?vue&type=template&id=238f4dda\"\nimport script from \"./create_work_item.vue?vue&type=script&lang=js\"\nexport * from \"./create_work_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 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","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","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isSignedIn)?_c('div',{attrs:{\"data-testid\":\"signed-in-empty-state-block\",\"data-track-action\":_vm.isProject && 'render',\"data-track-label\":_vm.isProject && 'project_issues_empty_list'}},[_c('div',[_c('gl-empty-state',{attrs:{\"title\":_vm.__('Use issues to collaborate on ideas, solve problems, and plan work'),\"svg-path\":_vm.$options.emptyStateSvg,\"data-testid\":\"issuable-empty-state\"},scopedSlots:_vm._u([{key:\"description\",fn:function(){return [(_vm.canCreateProjects)?_c('p',{staticClass:\"gl-my-2 gl-text-subtle\",attrs:{\"data-testid\":\"create-project-message\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.createProjectMessage)+\"\\n        \")]):_vm._e(),_vm._v(\" \"),_c('gl-link',{attrs:{\"href\":_vm.$options.issuesHelpPagePath,\"data-track-action\":_vm.isProject && 'click_learn_more_project_issues_empty_list_page',\"data-track-label\":_vm.isProject && 'learn_more_project_issues_empty_list'}},[_vm._v(\"\\n          \"+_vm._s(_vm.__('Learn more about issues.'))+\"\\n        \")])]},proxy:true},{key:\"actions\",fn:function(){return [_vm._t(\"actions\"),_vm._v(\" \"),(_vm.showNewIssueDropdown)?_c('new-resource-dropdown',{staticClass:\"gl-mx-2 gl-mb-3 gl-self-center\",attrs:{\"query\":_vm.$options.searchProjectsQuery,\"query-variables\":_vm.newIssueDropdownQueryVariables,\"extract-projects\":_vm.extractProjects,\"group-id\":_vm.groupId}}):_vm._e(),_vm._v(\" \"),_vm._t(\"new-issue-button\",function(){return [(_vm.showNewIssueLink)?_c('gl-button',{staticClass:\"gl-mx-2 gl-mb-3\",attrs:{\"href\":_vm.newIssuePath,\"variant\":\"confirm\",\"data-track-action\":\"click_new_issue_project_issues_empty_list_page\",\"data-track-label\":\"new_issue_project_issues_empty_list\"}},[_vm._v(\"\\n            \"+_vm._s(_vm.__('New issue'))+\"\\n          \")]):_vm._e()]}),_vm._v(\" \"),(_vm.canCreateProjects)?_c('gl-button',{staticClass:\"gl-mx-2 gl-mb-3\",attrs:{\"href\":_vm.newProjectPath,\"variant\":_vm.showNewIssueDropdown ? 'default' : 'confirm'}},[_vm._v(\"\\n          \"+_vm._s(_vm.__('New project'))+\"\\n        \")]):_vm._e(),_vm._v(\" \"),(_vm.showCsvButtons)?_c('gl-disclosure-dropdown',{staticClass:\"gl-mx-2 gl-mb-3\",attrs:{\"toggle-text\":_vm.__('Import issues'),\"data-testid\":\"import-issues-dropdown\"}},[_c('csv-import-export-buttons',{attrs:{\"export-csv-path\":_vm.exportCsvPathWithQuery,\"issuable-count\":_vm.currentTabCount,\"track-import-click\":\"\"}})],1):_vm._e()]},proxy:true}],null,true)}),_vm._v(\" \"),_c('hr'),_vm._v(\" \"),_c('p',{staticClass:\"gl-mb-0 gl-text-center gl-font-bold\"},[_vm._v(\"\\n      \"+_vm._s(_vm.s__('JiraService|Using Jira for issue tracking?'))+\"\\n    \")]),_vm._v(\" \"),_c('p',{staticClass:\"gl-mb-0 gl-text-center\"},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.jiraIntegrationMessage},scopedSlots:_vm._u([{key:\"jiraDocsLink\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.$options.jiraIntegrationPath,\"data-track-action\":_vm.isProject && 'click_jira_int_project_issues_empty_list_page',\"data-track-label\":_vm.isProject && 'jira_int_project_issues_empty_list'}},[_vm._v(\"\\n            \"+_vm._s(content)+\"\\n          \")])]}}],null,false,315739561)})],1),_vm._v(\" \"),_c('p',{staticClass:\"gl-text-center gl-text-subtle\"},[_vm._v(\"\\n      \"+_vm._s(_vm.s__('JiraService|This feature requires a Premium plan.'))+\"\\n    \")])],1)]):_c('gl-empty-state',{attrs:{\"title\":_vm.__('Use issues to collaborate on ideas, solve problems, and plan work'),\"svg-path\":_vm.$options.emptyStateSvg,\"svg-height\":null,\"primary-button-text\":_vm.__('Register / Sign In'),\"primary-button-link\":_vm.signInPath,\"data-testid\":\"issuable-empty-state\"},scopedSlots:_vm._u([{key:\"description\",fn:function(){return [_c('gl-link',{attrs:{\"href\":_vm.$options.issuesHelpPagePath}},[_vm._v(\"\\n      \"+_vm._s(_vm.__('Learn more about issues.'))+\"\\n    \")])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default __webpack_public_path__ + \"empty-issues-add-md.201d9f29.svg\";","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./empty_state_without_any_issues.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./empty_state_without_any_issues.vue?vue&type=script&lang=js\"","<script>\nimport emptyStateSvg from '@gitlab/svgs/dist/illustrations/empty-state/empty-issues-add-md.svg';\nimport { GlButton, GlDisclosureDropdown, GlEmptyState, GlLink, GlSprintf } from '@gitlab/ui';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport CsvImportExportButtons from '~/issuable/components/csv_import_export_buttons.vue';\nimport { s__, __ } from '~/locale';\nimport NewResourceDropdown from '~/vue_shared/components/new_resource_dropdown/new_resource_dropdown.vue';\nimport { hasNewIssueDropdown } from '../has_new_issue_dropdown_mixin';\n\nexport default {\n  i18n: {\n    jiraIntegrationMessage: s__(\n      'JiraService|%{jiraDocsLinkStart}Enable the Jira integration%{jiraDocsLinkEnd} to view your Jira issues in GitLab.',\n    ),\n  },\n  emptyStateSvg,\n  issuesHelpPagePath: helpPagePath('user/project/issues/index'),\n  jiraIntegrationPath: helpPagePath('integration/jira/configure', { anchor: 'view-jira-issues' }),\n  components: {\n    CsvImportExportButtons,\n    GlButton,\n    GlDisclosureDropdown,\n    GlEmptyState,\n    GlLink,\n    GlSprintf,\n    NewResourceDropdown,\n  },\n  mixins: [hasNewIssueDropdown()],\n  inject: [\n    'canCreateProjects',\n    'isSignedIn',\n    'newIssuePath',\n    'newProjectPath',\n    'showNewIssueLink',\n    'signInPath',\n    'groupId',\n    'isProject',\n  ],\n  props: {\n    currentTabCount: {\n      type: Number,\n      required: false,\n      default: undefined,\n    },\n    exportCsvPathWithQuery: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    showCsvButtons: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    showNewIssueDropdown: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    showIssuableByEmail: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  computed: {\n    createProjectMessage() {\n      return this.showNewIssueDropdown\n        ? __('Issues exist in projects. Select a project to create an issue, or create a project.')\n        : __('Issues exist in projects. To create an issue, first create a project.');\n    },\n  },\n};\n</script>\n\n<template>\n  <div\n    v-if=\"isSignedIn\"\n    data-testid=\"signed-in-empty-state-block\"\n    :data-track-action=\"isProject && 'render'\"\n    :data-track-label=\"isProject && 'project_issues_empty_list'\"\n  >\n    <div>\n      <gl-empty-state\n        :title=\"__('Use issues to collaborate on ideas, solve problems, and plan work')\"\n        :svg-path=\"$options.emptyStateSvg\"\n        data-testid=\"issuable-empty-state\"\n      >\n        <template #description>\n          <p\n            v-if=\"canCreateProjects\"\n            data-testid=\"create-project-message\"\n            class=\"gl-my-2 gl-text-subtle\"\n          >\n            {{ createProjectMessage }}\n          </p>\n          <gl-link\n            :href=\"$options.issuesHelpPagePath\"\n            :data-track-action=\"isProject && 'click_learn_more_project_issues_empty_list_page'\"\n            :data-track-label=\"isProject && 'learn_more_project_issues_empty_list'\"\n          >\n            {{ __('Learn more about issues.') }}\n          </gl-link>\n        </template>\n        <template #actions>\n          <slot name=\"actions\"></slot>\n          <new-resource-dropdown\n            v-if=\"showNewIssueDropdown\"\n            class=\"gl-mx-2 gl-mb-3 gl-self-center\"\n            :query=\"$options.searchProjectsQuery\"\n            :query-variables=\"newIssueDropdownQueryVariables\"\n            :extract-projects=\"extractProjects\"\n            :group-id=\"groupId\"\n          />\n          <slot name=\"new-issue-button\">\n            <gl-button\n              v-if=\"showNewIssueLink\"\n              :href=\"newIssuePath\"\n              variant=\"confirm\"\n              class=\"gl-mx-2 gl-mb-3\"\n              data-track-action=\"click_new_issue_project_issues_empty_list_page\"\n              data-track-label=\"new_issue_project_issues_empty_list\"\n            >\n              {{ __('New issue') }}\n            </gl-button>\n          </slot>\n          <gl-button\n            v-if=\"canCreateProjects\"\n            :href=\"newProjectPath\"\n            :variant=\"showNewIssueDropdown ? 'default' : 'confirm'\"\n            class=\"gl-mx-2 gl-mb-3\"\n          >\n            {{ __('New project') }}\n          </gl-button>\n\n          <gl-disclosure-dropdown\n            v-if=\"showCsvButtons\"\n            class=\"gl-mx-2 gl-mb-3\"\n            :toggle-text=\"__('Import issues')\"\n            data-testid=\"import-issues-dropdown\"\n          >\n            <csv-import-export-buttons\n              :export-csv-path=\"exportCsvPathWithQuery\"\n              :issuable-count=\"currentTabCount\"\n              track-import-click\n            />\n          </gl-disclosure-dropdown>\n        </template>\n      </gl-empty-state>\n      <hr />\n      <p class=\"gl-mb-0 gl-text-center gl-font-bold\">\n        {{ s__('JiraService|Using Jira for issue tracking?') }}\n      </p>\n      <p class=\"gl-mb-0 gl-text-center\">\n        <gl-sprintf :message=\"$options.i18n.jiraIntegrationMessage\">\n          <template #jiraDocsLink=\"{ content }\">\n            <gl-link\n              :href=\"$options.jiraIntegrationPath\"\n              :data-track-action=\"isProject && 'click_jira_int_project_issues_empty_list_page'\"\n              :data-track-label=\"isProject && 'jira_int_project_issues_empty_list'\"\n            >\n              {{ content }}\n            </gl-link>\n          </template>\n        </gl-sprintf>\n      </p>\n      <p class=\"gl-text-center gl-text-subtle\">\n        {{ s__('JiraService|This feature requires a Premium plan.') }}\n      </p>\n    </div>\n  </div>\n\n  <gl-empty-state\n    v-else\n    :title=\"__('Use issues to collaborate on ideas, solve problems, and plan work')\"\n    :svg-path=\"$options.emptyStateSvg\"\n    :svg-height=\"null\"\n    :primary-button-text=\"__('Register / Sign In')\"\n    :primary-button-link=\"signInPath\"\n    data-testid=\"issuable-empty-state\"\n  >\n    <template #description>\n      <gl-link :href=\"$options.issuesHelpPagePath\">\n        {{ __('Learn more about issues.') }}\n      </gl-link>\n    </template>\n  </gl-empty-state>\n</template>\n","import { render, staticRenderFns } from \"./empty_state_without_any_issues.vue?vue&type=template&id=316e8818\"\nimport script from \"./empty_state_without_any_issues.vue?vue&type=script&lang=js\"\nexport * from \"./empty_state_without_any_issues.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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 { nextTick } from 'vue';\nimport { debounce } from 'lodash';\nimport { GlTooltipDirective, GlResizeObserverDirective } from '@gitlab/ui';\nimport { hasHorizontalOverflow } from '~/lib/utils/dom_utils';\n\n/**\n * v-tooltip-on-truncate directive\n *\n * v-tooltip-on-truncate is an alternative to the <tooltip-on-truncate>\n * component.\n *\n * Add it to an element which truncates content, so a tooltip with its contents\n * is shown.\n *\n * ```\n * <div v-tooltip-on-truncate style=\"white-space: nowrap; text-overflow: ellipsis; overflow: hidden;\">\n *   A possibly long text...\n * </div>\n * ```\n * By default, it will show the `innerText` of the element, this can be overridden:\n *\n * ```\n * <div\n *   v-tooltip-on-truncate=\"'An alternative to the long text.'\"\n *   style=\"white-space: nowrap; text-overflow: ellipsis; overflow: hidden\"\n * >\n *   A possibly long text...\n * </div>\n * ```\n *\n * Accepts the same modifiers and values as v-tooltip:\n *\n * ```\n * <div\n *   v-tooltip-on-truncate.focus=\"{ container: 'body', title: 'My tooltip }\"\n *   style=\"white-space: nowrap; text-overflow: ellipsis; overflow: hidden\"\n * >\n *   A possibly long text...\n * </div>\n * ```\n */\n\nconst RESIZE_DEBOUNCE_WAIT_MS = 300;\nconst GL_TOOLTIP_ON_TRUNCATE = 'GL_TOOLTIP_ON_TRUNCATE';\n\nconst applyTooltip = (el, binding, vnode) => {\n  const showTooltip = hasHorizontalOverflow(el);\n\n  if (showTooltip) {\n    GlTooltipDirective.bind(\n      el,\n      { ...binding, value: binding?.value || el.innerText?.trim() },\n      vnode,\n    );\n  } else {\n    GlTooltipDirective.unbind(el);\n  }\n};\n\nconst initTooltip = (el, binding, vnode) => {\n  if (!el[GL_TOOLTIP_ON_TRUNCATE]) {\n    el[GL_TOOLTIP_ON_TRUNCATE] = true;\n\n    // Container may resize, set up observer\n    GlResizeObserverDirective.bind(el, {\n      value: debounce(() => {\n        applyTooltip(el, binding, vnode);\n      }, RESIZE_DEBOUNCE_WAIT_MS),\n    });\n  }\n};\n\nexport default {\n  bind(el, binding, vnode) {\n    initTooltip(el, binding, vnode);\n    applyTooltip(el, binding, vnode);\n  },\n\n  componentUpdated(el, binding, vnode) {\n    nextTick(() => {\n      applyTooltip(el, binding, vnode);\n    });\n  },\n\n  unbind(el) {\n    if (el[GL_TOOLTIP_ON_TRUNCATE]) {\n      GlTooltipDirective.unbind(el);\n      GlResizeObserverDirective.unbind(el);\n\n      el[GL_TOOLTIP_ON_TRUNCATE] = null;\n    }\n  },\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('issue-card-statistics',{attrs:{\"issue\":_vm.issue}},[_c('blocking-issues-count',{staticClass:\"gl-hidden sm:gl-inline-block\",attrs:{\"blocking-issues-count\":_vm.issue.blockingCount,\"is-list-item\":\"\",\"data-testid\":\"blocking-issues\"}})],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_card_statistics.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.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_card_statistics.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { findAwardEmojiWidget } from '~/work_items/utils';\nimport { i18n } from '../constants';\n\nexport default {\n  i18n,\n  components: {\n    GlIcon,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  props: {\n    issue: {\n      type: Object,\n      required: true,\n    },\n  },\n  computed: {\n    downvotes() {\n      return this.issue.downvotes || findAwardEmojiWidget(this.issue)?.downvotes;\n    },\n    upvotes() {\n      return this.issue.upvotes || findAwardEmojiWidget(this.issue)?.upvotes;\n    },\n  },\n};\n</script>\n\n<template>\n  <ul class=\"gl-contents\">\n    <li\n      v-if=\"upvotes\"\n      v-gl-tooltip\n      class=\"gl-hidden sm:gl-block\"\n      :title=\"$options.i18n.upvotes\"\n      data-testid=\"issuable-upvotes\"\n    >\n      <gl-icon name=\"thumb-up\" />\n      {{ upvotes }}\n    </li>\n    <li\n      v-if=\"downvotes\"\n      v-gl-tooltip\n      class=\"gl-hidden sm:gl-block\"\n      :title=\"$options.i18n.downvotes\"\n      data-testid=\"issuable-downvotes\"\n    >\n      <gl-icon name=\"thumb-down\" />\n      {{ downvotes }}\n    </li>\n    <li\n      v-if=\"issue.mergeRequestsCount\"\n      v-gl-tooltip\n      class=\"gl-hidden sm:gl-block\"\n      :title=\"__('Related merge requests')\"\n      data-testid=\"merge-requests\"\n    >\n      <gl-icon name=\"merge-request\" />\n      {{ issue.mergeRequestsCount }}\n    </li>\n    <slot></slot>\n  </ul>\n</template>\n","import { render, staticRenderFns } from \"./issue_card_statistics.vue?vue&type=template&id=cc1949f0\"\nimport script from \"./issue_card_statistics.vue?vue&type=script&lang=js\"\nexport * from \"./issue_card_statistics.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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('ul',{staticClass:\"gl-contents\"},[(_vm.upvotes)?_c('li',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-hidden sm:gl-block\",attrs:{\"title\":_vm.$options.i18n.upvotes,\"data-testid\":\"issuable-upvotes\"}},[_c('gl-icon',{attrs:{\"name\":\"thumb-up\"}}),_vm._v(\"\\n    \"+_vm._s(_vm.upvotes)+\"\\n  \")],1):_vm._e(),_vm._v(\" \"),(_vm.downvotes)?_c('li',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-hidden sm:gl-block\",attrs:{\"title\":_vm.$options.i18n.downvotes,\"data-testid\":\"issuable-downvotes\"}},[_c('gl-icon',{attrs:{\"name\":\"thumb-down\"}}),_vm._v(\"\\n    \"+_vm._s(_vm.downvotes)+\"\\n  \")],1):_vm._e(),_vm._v(\" \"),(_vm.issue.mergeRequestsCount)?_c('li',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-hidden sm:gl-block\",attrs:{\"title\":_vm.__('Related merge requests'),\"data-testid\":\"merge-requests\"}},[_c('gl-icon',{attrs:{\"name\":\"merge-request\"}}),_vm._v(\"\\n    \"+_vm._s(_vm.issue.mergeRequestsCount)+\"\\n  \")],1):_vm._e(),_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!./blocking_issues_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!./blocking_issues_count.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlTooltipDirective } from '@gitlab/ui';\n\nexport default {\n  components: {\n    GlIcon,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  inject: {\n    hasBlockedIssuesFeature: {\n      default: false,\n    },\n  },\n  props: {\n    blockingIssuesCount: {\n      type: Number,\n      required: false,\n      default: null,\n    },\n    isListItem: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  computed: {\n    showBlockingIssuesCount() {\n      return this.hasBlockedIssuesFeature && this.blockingIssuesCount > 0;\n    },\n    tag() {\n      return this.isListItem ? 'li' : 'span';\n    },\n  },\n};\n</script>\n\n<template>\n  <component :is=\"tag\" v-if=\"showBlockingIssuesCount\" v-gl-tooltip :title=\"__('Blocking issues')\">\n    <gl-icon name=\"entity-blocking\" variant=\"warning\" />\n    {{ blockingIssuesCount }}\n  </component>\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!./issue_card_statistics.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.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_card_statistics.vue?vue&type=script&lang=js\"","<script>\nimport IssueCardStatistics from '~/issues/list/components/issue_card_statistics.vue';\nimport BlockingIssuesCount from '../../components/blocking_issues_count.vue';\n\nexport default {\n  components: {\n    BlockingIssuesCount,\n    IssueCardStatistics,\n  },\n  props: {\n    issue: {\n      type: Object,\n      required: true,\n    },\n  },\n};\n</script>\n\n<template>\n  <issue-card-statistics :issue=\"issue\">\n    <blocking-issues-count\n      class=\"gl-hidden sm:gl-inline-block\"\n      :blocking-issues-count=\"issue.blockingCount\"\n      is-list-item\n      data-testid=\"blocking-issues\"\n    />\n  </issue-card-statistics>\n</template>\n","import { render, staticRenderFns } from \"./blocking_issues_count.vue?vue&type=template&id=68b02664\"\nimport script from \"./blocking_issues_count.vue?vue&type=script&lang=js\"\nexport * from \"./blocking_issues_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","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showBlockingIssuesCount)?_c(_vm.tag,{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],tag:\"component\",attrs:{\"title\":_vm.__('Blocking issues')}},[_c('gl-icon',{attrs:{\"name\":\"entity-blocking\",\"variant\":\"warning\"}}),_vm._v(\"\\n  \"+_vm._s(_vm.blockingIssuesCount)+\"\\n\")],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./issue_card_statistics.vue?vue&type=template&id=0052e47a\"\nimport script from \"./issue_card_statistics.vue?vue&type=script&lang=js\"\nexport * from \"./issue_card_statistics.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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 { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING, PROP_TYPE_ARRAY_OBJECT_STRING } from '../../../constants/props';\nimport { SLOT_NAME_CUSTOM_FOOT } from '../../../constants/slots';\nimport { makeProp } from '../../../utils/props';\nimport { BTfoot } from '../tfoot';\n\n// --- Props ---\n\nconst props = {\n  footClone: makeProp(PROP_TYPE_BOOLEAN, false),\n  // Any Bootstrap theme variant (or custom)\n  // Falls back to `headRowVariant`\n  footRowVariant: makeProp(PROP_TYPE_STRING),\n  // 'dark', 'light', or `null` (or custom)\n  footVariant: makeProp(PROP_TYPE_STRING),\n  tfootClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n  tfootTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst tfootMixin = extend({\n  props,\n  methods: {\n    renderTFootCustom() {\n      const h = this.$createElement;\n      if (this.hasNormalizedSlot(SLOT_NAME_CUSTOM_FOOT)) {\n        return h(BTfoot, {\n          class: this.tfootClass || null,\n          props: {\n            footVariant: this.footVariant || this.headVariant || null\n          },\n          key: 'bv-tfoot-custom'\n        }, this.normalizeSlot(SLOT_NAME_CUSTOM_FOOT, {\n          items: this.computedItems.slice(),\n          fields: this.computedFields.slice(),\n          columns: this.computedFields.length\n        }));\n      }\n      return h();\n    },\n    renderTfoot() {\n      // Passing true to renderThead will make it render a tfoot\n      return this.footClone ? this.renderThead(true) : this.renderTFootCustom();\n    }\n  }\n});\n\nexport { props, tfootMixin };\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","/* eslint-disable import/export */\nimport {\n  getDefaultWorkItemTypes as getDefaultWorkItemTypesCE,\n  getTypeTokenOptions as getTypeTokenOptionsCE,\n} from '~/issues/list/utils';\nimport { __, s__ } from '~/locale';\nimport {\n  WORK_ITEM_TYPE_ENUM_EPIC,\n  WORK_ITEM_TYPE_ENUM_KEY_RESULT,\n  WORK_ITEM_TYPE_ENUM_OBJECTIVE,\n  WORK_ITEM_TYPE_ENUM_TEST_CASE,\n} from '~/work_items/constants';\n\nexport * from '~/issues/list/utils';\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  hasEpicsFeature,\n  hasOkrsFeature,\n  hasQualityManagementFeature,\n}) => {\n  const types = getDefaultWorkItemTypesCE();\n  if (hasEpicsFeature) {\n    types.push(WORK_ITEM_TYPE_ENUM_EPIC);\n  }\n  if (hasOkrsFeature) {\n    types.push(WORK_ITEM_TYPE_ENUM_KEY_RESULT, WORK_ITEM_TYPE_ENUM_OBJECTIVE);\n  }\n  if (hasQualityManagementFeature) {\n    types.push(WORK_ITEM_TYPE_ENUM_TEST_CASE);\n  }\n  return types;\n};\n\nexport const getTypeTokenOptions = ({\n  hasEpicsFeature,\n  hasOkrsFeature,\n  hasQualityManagementFeature,\n}) => {\n  const options = getTypeTokenOptionsCE();\n  if (hasEpicsFeature) {\n    options.push({\n      icon: 'epic',\n      title: __('Epic'),\n      value: 'epic',\n    });\n  }\n  if (hasOkrsFeature) {\n    options.push(\n      { icon: 'issue-type-objective', title: s__('WorkItem|Objective'), value: 'objective' },\n      { icon: 'issue-type-keyresult', title: s__('WorkItem|Key Result'), value: 'key_result' },\n    );\n  }\n  if (hasQualityManagementFeature) {\n    options.push({\n      icon: 'issue-type-test-case',\n      title: s__('WorkItem|Test case'),\n      value: 'test_case',\n    });\n  }\n  return options;\n};\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getProjectRootRef\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectFullPath\"}},\"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\":\"projectFullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"repository\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rootRef\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":139}};\n    doc.loc.source = {\"body\":\"query getProjectRootRef($projectFullPath: ID!) {\\n  project(fullPath: $projectFullPath) {\\n    id\\n    repository {\\n      rootRef\\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[\"getProjectRootRef\"] = oneQuery(doc, \"getProjectRootRef\");\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","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","import fuzzaldrinPlus from 'fuzzaldrin-plus';\nimport { MAX_LIST_SIZE } from '~/issues/list/constants';\nimport axios from '~/lib/utils/axios_utils';\n\nexport class AutocompleteCache {\n  constructor() {\n    this.cache = {};\n  }\n\n  fetch({ url, cacheName, searchProperty, search }) {\n    if (this.cache[cacheName]) {\n      const data = search\n        ? fuzzaldrinPlus.filter(this.cache[cacheName], search, { key: searchProperty })\n        : this.cache[cacheName].slice(0, MAX_LIST_SIZE);\n      return Promise.resolve(data);\n    }\n\n    return axios.get(url).then(({ data }) => {\n      this.cache[cacheName] = data;\n      return data.slice(0, MAX_LIST_SIZE);\n    });\n  }\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.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 { 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\":\"toggleWorkItemNoteResolveDiscussion\"},\"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\":\"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\":\"WorkItemNote\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":356}};\n    doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/work_items/graphql/notes/work_item_note.fragment.graphql\\\"\\n\\nmutation toggleWorkItemNoteResolveDiscussion($id: DiscussionID!, $resolve: Boolean!) {\\n  discussionToggleResolve(input: { id: $id, resolve: $resolve }) {\\n    discussion {\\n      id\\n      notes {\\n        nodes {\\n          ...WorkItemNote\\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(\"ee_else_ce/work_items/graphql/notes/work_item_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[\"toggleWorkItemNoteResolveDiscussion\"] = oneQuery(doc, \"toggleWorkItemNoteResolveDiscussion\");\n        \n","\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 { render, staticRenderFns } from \"./app.vue?vue&type=template&id=35e7aefb\"\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 render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('router-view')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlBreadcrumb } from '@gitlab/ui';\nimport { s__, __ } from '~/locale';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { ROUTES, WORK_ITEM_TYPE_ENUM_EPIC } from '../constants';\n\nconst BREADCRUMB_LABELS = {\n  workItemList: s__('WorkItem|Work items'),\n  new: s__('WorkItem|New'),\n};\n\nexport default {\n  components: {\n    GlBreadcrumb,\n  },\n  mixins: [glFeatureFlagMixin()],\n  inject: {\n    workItemType: {\n      default: null,\n    },\n    listPath: {\n      default: null,\n    },\n    isGroup: {\n      default: false,\n    },\n  },\n  computed: {\n    isEpicsList() {\n      return this.workItemType === WORK_ITEM_TYPE_ENUM_EPIC;\n    },\n    listName() {\n      if (this.isEpicsList) {\n        return __('Epics');\n      }\n\n      return this.isGroup ? s__('WorkItem|Work items') : __('Issues');\n    },\n    issueAsWorkItem() {\n      return (\n        !this.isGroup &&\n        this.glFeatures.workItemsViewPreference &&\n        gon.current_user_use_work_items_view\n      );\n    },\n    crumbs() {\n      const indexCrumb = {\n        text: this.listName,\n      };\n\n      if (this.glFeatures.workItemEpicsList || this.issueAsWorkItem) {\n        indexCrumb.to = { name: ROUTES.index, query: this.$route.query };\n      } else {\n        indexCrumb.href = this.listPath;\n      }\n\n      const crumbs = [indexCrumb];\n\n      if (this.$route.name === ROUTES.new) {\n        crumbs.push({\n          text: BREADCRUMB_LABELS[ROUTES.new],\n          to: ROUTES.new,\n        });\n      }\n\n      if (this.$route.name === ROUTES.workItem) {\n        crumbs.push({\n          text: `#${this.$route.params.iid}`,\n          to: this.$route.path,\n        });\n      }\n\n      return crumbs;\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-breadcrumb :key=\"crumbs.length\" :items=\"crumbs\" :auto-resize=\"false\" />\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_breadcrumb.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.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_breadcrumb.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./work_item_breadcrumb.vue?vue&type=template&id=101d1746\"\nimport script from \"./work_item_breadcrumb.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_breadcrumb.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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-breadcrumb',{key:_vm.crumbs.length,attrs:{\"items\":_vm.crumbs,\"auto-resize\":false}})\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_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_health_status.vue?vue&type=script&lang=js\"","<script>\nimport { isHealthStatusWidget } from '~/work_items/utils';\n\nexport default {\n  components: {\n    IssueHealthStatus: () =>\n      import('ee_component/related_items_tree/components/issue_health_status.vue'),\n  },\n  inject: ['hasIssuableHealthStatusFeature'],\n  props: {\n    issue: {\n      type: Object,\n      required: true,\n    },\n  },\n  computed: {\n    healthStatus() {\n      return (\n        this.issue.healthStatus || this.issue.widgets?.find(isHealthStatusWidget)?.healthStatus\n      );\n    },\n    hasUpdateTimeStamp() {\n      return this.issue.updatedAt !== this.issue.createdAt;\n    },\n    showHealthStatus() {\n      return this.hasIssuableHealthStatusFeature && this.healthStatus;\n    },\n  },\n};\n</script>\n\n<template>\n  <issue-health-status\n    v-if=\"showHealthStatus\"\n    class=\"gl-text-nowrap\"\n    display-as-text\n    text-size=\"sm\"\n    :class=\"{\n      'md:gl-border-r md:gl-mr-3 md:gl-border-gray-100 md:gl-pr-3': hasUpdateTimeStamp,\n    }\"\n    :health-status=\"healthStatus\"\n  />\n</template>\n","import { render, staticRenderFns } from \"./work_item_health_status.vue?vue&type=template&id=775a6806\"\nimport script from \"./work_item_health_status.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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 render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showHealthStatus)?_c('issue-health-status',{staticClass:\"gl-text-nowrap\",class:{\n    'md:gl-border-r md:gl-mr-3 md:gl-border-gray-100 md:gl-pr-3': _vm.hasUpdateTimeStamp,\n  },attrs:{\"display-as-text\":\"\",\"text-size\":\"sm\",\"health-status\":_vm.healthStatus}}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { __ } from '~/locale';\nimport {\n  CREATED_ASC,\n  CREATED_DESC,\n  TITLE_ASC,\n  TITLE_DESC,\n  UPDATED_ASC,\n  UPDATED_DESC,\n} from '~/issues/list/constants';\n\nexport const sortOptions = [\n  {\n    id: 1,\n    title: __('Created date'),\n    sortDirection: {\n      ascending: CREATED_ASC,\n      descending: CREATED_DESC,\n    },\n  },\n  {\n    id: 2,\n    title: __('Updated date'),\n    sortDirection: {\n      ascending: UPDATED_ASC,\n      descending: UPDATED_DESC,\n    },\n  },\n  {\n    id: 3,\n    title: __('Title'),\n    sortDirection: {\n      ascending: TITLE_ASC,\n      descending: TITLE_DESC,\n    },\n  },\n];\n\nexport const urlSortParams = {\n  [CREATED_ASC]: 'created_asc',\n  [CREATED_DESC]: 'created_date',\n  [TITLE_ASC]: 'title_asc',\n  [TITLE_DESC]: 'title_desc',\n  [UPDATED_ASC]: 'updated_asc',\n  [UPDATED_DESC]: 'updated_desc',\n};\n","<script>\nimport { GlFilteredSearchToken, GlLoadingIcon } from '@gitlab/ui';\nimport { isEmpty } from 'lodash';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport IssueCardStatistics from 'ee_else_ce/issues/list/components/issue_card_statistics.vue';\nimport IssueCardTimeInfo from 'ee_else_ce/issues/list/components/issue_card_time_info.vue';\nimport WorkItemHealthStatus from '~/work_items/components/work_item_health_status.vue';\nimport {\n  convertToApiParams,\n  convertToSearchQuery,\n  deriveSortKey,\n  getDefaultWorkItemTypes,\n  getInitialPageParams,\n  getTypeTokenOptions,\n  getFilterTokens,\n  convertToUrlParams,\n} from 'ee_else_ce/issues/list/utils';\nimport { TYPENAME_USER } from '~/graphql_shared/constants';\nimport { convertToGraphQLId, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport {\n  STATUS_ALL,\n  STATUS_CLOSED,\n  STATUS_OPEN,\n  WORKSPACE_GROUP,\n  WORKSPACE_PROJECT,\n} from '~/issues/constants';\nimport { AutocompleteCache } from '~/issues/dashboard/utils';\nimport {\n  CREATED_DESC,\n  PARAM_FIRST_PAGE_SIZE,\n  PARAM_LAST_PAGE_SIZE,\n  PARAM_PAGE_AFTER,\n  PARAM_PAGE_BEFORE,\n  PARAM_STATE,\n  PARAM_SORT,\n} from '~/issues/list/constants';\nimport searchLabelsQuery from '~/issues/list/queries/search_labels.query.graphql';\nimport setSortPreferenceMutation from '~/issues/list/queries/set_sort_preference.mutation.graphql';\nimport { fetchPolicies } from '~/lib/graphql';\nimport { scrollUp } from '~/lib/utils/scroll_utils';\nimport { isPositiveInteger } from '~/lib/utils/number_utils';\nimport { __, s__ } from '~/locale';\nimport {\n  OPERATORS_IS,\n  OPERATORS_IS_NOT_OR,\n  TOKEN_TITLE_ASSIGNEE,\n  TOKEN_TITLE_AUTHOR,\n  TOKEN_TITLE_CONFIDENTIAL,\n  TOKEN_TITLE_GROUP,\n  TOKEN_TITLE_LABEL,\n  TOKEN_TITLE_MILESTONE,\n  TOKEN_TITLE_MY_REACTION,\n  TOKEN_TITLE_SEARCH_WITHIN,\n  TOKEN_TITLE_TYPE,\n  TOKEN_TYPE_ASSIGNEE,\n  TOKEN_TYPE_AUTHOR,\n  TOKEN_TYPE_CONFIDENTIAL,\n  TOKEN_TYPE_GROUP,\n  TOKEN_TYPE_LABEL,\n  TOKEN_TYPE_MILESTONE,\n  TOKEN_TYPE_MY_REACTION,\n  TOKEN_TYPE_SEARCH_WITHIN,\n  TOKEN_TYPE_TYPE,\n} from '~/vue_shared/components/filtered_search_bar/constants';\nimport IssuableList from '~/vue_shared/issuable/list/components/issuable_list_root.vue';\nimport WorkItemDrawer from '~/work_items/components/work_item_drawer.vue';\nimport { DEFAULT_PAGE_SIZE, issuableListTabs } from '~/vue_shared/issuable/list/constants';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { getParameterByName, removeParams, updateHistory } from '~/lib/utils/url_utility';\nimport {\n  STATE_CLOSED,\n  STATE_OPEN,\n  WORK_ITEM_TYPE_ENUM_EPIC,\n  DETAIL_VIEW_QUERY_PARAM_NAME,\n} from '../constants';\nimport getWorkItemsQuery from '../graphql/list/get_work_items.query.graphql';\nimport getWorkItemStateCountsQuery from '../graphql/list/get_work_item_state_counts.query.graphql';\nimport { sortOptions, urlSortParams } from './list/constants';\n\nconst EmojiToken = () =>\n  import('~/vue_shared/components/filtered_search_bar/tokens/emoji_token.vue');\nconst GroupToken = () =>\n  import('~/vue_shared/components/filtered_search_bar/tokens/group_token.vue');\nconst LabelToken = () =>\n  import('~/vue_shared/components/filtered_search_bar/tokens/label_token.vue');\nconst MilestoneToken = () =>\n  import('~/vue_shared/components/filtered_search_bar/tokens/milestone_token.vue');\nconst UserToken = () => import('~/vue_shared/components/filtered_search_bar/tokens/user_token.vue');\n\nconst statusMap = {\n  [STATUS_OPEN]: STATE_OPEN,\n  [STATUS_CLOSED]: STATE_CLOSED,\n};\n\nexport default {\n  issuableListTabs,\n  sortOptions,\n  components: {\n    GlLoadingIcon,\n    IssuableList,\n    IssueCardStatistics,\n    IssueCardTimeInfo,\n    WorkItemDrawer,\n    WorkItemHealthStatus,\n  },\n  mixins: [glFeatureFlagMixin()],\n  inject: [\n    'autocompleteAwardEmojisPath',\n    'fullPath',\n    'hasEpicsFeature',\n    'hasOkrsFeature',\n    'hasQualityManagementFeature',\n    'initialSort',\n    'isGroup',\n    'isSignedIn',\n    'workItemType',\n  ],\n  props: {\n    eeWorkItemUpdateCount: {\n      type: Number,\n      required: false,\n      default: 0,\n    },\n    showBulkEditSidebar: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      error: undefined,\n      filterTokens: [],\n      hasAnyIssues: false,\n      isInitialLoadComplete: false,\n      pageInfo: {},\n      pageParams: {},\n      pageSize: DEFAULT_PAGE_SIZE,\n      sortKey: CREATED_DESC,\n      state: STATUS_OPEN,\n      workItems: [],\n      workItemStateCounts: {},\n      activeItem: null,\n      isRefetching: false,\n    };\n  },\n  apollo: {\n    workItems: {\n      query: getWorkItemsQuery,\n      variables() {\n        return this.queryVariables;\n      },\n      update(data) {\n        return data?.[this.namespace].workItems.nodes ?? [];\n      },\n      skip() {\n        return isEmpty(this.pageParams);\n      },\n      result({ data }) {\n        this.pageInfo = data?.[this.namespace].workItems.pageInfo ?? {};\n\n        if (data?.[this.namespace]) {\n          if (this.isGroup) {\n            const rootBreadcrumbName = this.isEpicsList ? __('Epics') : s__('WorkItem|Work items');\n            document.title = `${rootBreadcrumbName} · ${data.group.name} · GitLab`;\n          } else {\n            document.title = `Issues · ${data.project.name} · GitLab`;\n          }\n        }\n        this.checkDrawerParams();\n      },\n      error(error) {\n        this.error = s__(\n          'WorkItem|Something went wrong when fetching work items. Please try again.',\n        );\n        Sentry.captureException(error);\n      },\n    },\n    workItemStateCounts: {\n      query: getWorkItemStateCountsQuery,\n      variables() {\n        return this.queryVariables;\n      },\n      update(data) {\n        return data?.[this.namespace].workItemStateCounts ?? {};\n      },\n      skip() {\n        return isEmpty(this.pageParams);\n      },\n      result({ data }) {\n        const { all } = data?.[this.namespace].workItemStateCounts ?? {};\n\n        if (!this.isInitialLoadComplete) {\n          this.hasAnyIssues = Boolean(all);\n          this.isInitialLoadComplete = true;\n        }\n      },\n      error(error) {\n        this.error = s__('WorkItem|An error occurred while getting work item counts.');\n        Sentry.captureException(error);\n      },\n    },\n  },\n  computed: {\n    isItemSelected() {\n      return !isEmpty(this.activeItem);\n    },\n    apiFilterParams() {\n      return convertToApiParams(this.filterTokens);\n    },\n    defaultWorkItemTypes() {\n      return getDefaultWorkItemTypes({\n        hasEpicsFeature: this.hasEpicsFeature,\n        hasOkrsFeature: this.hasOkrsFeature,\n        hasQualityManagementFeature: this.hasQualityManagementFeature,\n      });\n    },\n    workItemDrawerEnabled() {\n      return this.isEpicsList ? this.glFeatures.epicsListDrawer : this.glFeatures.issuesListDrawer;\n    },\n    isEpicsList() {\n      return this.workItemType === WORK_ITEM_TYPE_ENUM_EPIC;\n    },\n    hasSearch() {\n      return Boolean(this.searchQuery);\n    },\n    isLoading() {\n      return this.$apollo.queries.workItems.loading && !this.isRefetching;\n    },\n    isOpenTab() {\n      return this.state === STATUS_OPEN;\n    },\n    namespace() {\n      return this.isGroup ? WORKSPACE_GROUP : WORKSPACE_PROJECT;\n    },\n    queryVariables() {\n      return {\n        fullPath: this.fullPath,\n        sort: this.sortKey,\n        state: this.state,\n        search: this.searchQuery,\n        ...this.apiFilterParams,\n        ...this.pageParams,\n        excludeProjects: this.isEpicsList,\n        includeDescendants: !this.apiFilterParams.fullPath,\n        types: this.apiFilterParams.types || this.workItemType || this.defaultWorkItemTypes,\n        isGroup: this.isGroup,\n      };\n    },\n    searchQuery() {\n      return convertToSearchQuery(this.filterTokens);\n    },\n    searchTokens() {\n      const preloadedUsers = [];\n\n      if (gon.current_user_id) {\n        preloadedUsers.push({\n          id: convertToGraphQLId(TYPENAME_USER, gon.current_user_id),\n          name: gon.current_user_fullname,\n          username: gon.current_username,\n          avatar_url: gon.current_user_avatar_url,\n        });\n      }\n\n      const tokens = [\n        {\n          type: TOKEN_TYPE_ASSIGNEE,\n          title: TOKEN_TITLE_ASSIGNEE,\n          icon: 'user',\n          token: UserToken,\n          dataType: 'user',\n          operators: OPERATORS_IS_NOT_OR,\n          fullPath: this.fullPath,\n          isProject: !this.isGroup,\n          recentSuggestionsStorageKey: `${this.fullPath}-issues-recent-tokens-assignee`,\n          preloadedUsers,\n        },\n        {\n          type: TOKEN_TYPE_AUTHOR,\n          title: TOKEN_TITLE_AUTHOR,\n          icon: 'pencil',\n          token: UserToken,\n          dataType: 'user',\n          defaultUsers: [],\n          operators: OPERATORS_IS_NOT_OR,\n          fullPath: this.fullPath,\n          isProject: !this.isGroup,\n          recentSuggestionsStorageKey: `${this.fullPath}-issues-recent-tokens-author`,\n          preloadedUsers,\n        },\n        {\n          type: TOKEN_TYPE_LABEL,\n          title: TOKEN_TITLE_LABEL,\n          icon: 'labels',\n          token: LabelToken,\n          operators: OPERATORS_IS_NOT_OR,\n          fetchLabels: this.fetchLabels,\n          fetchLatestLabels: this.glFeatures.frontendCaching ? this.fetchLatestLabels : null,\n          recentSuggestionsStorageKey: `${this.fullPath}-issues-recent-tokens-label`,\n        },\n        {\n          type: TOKEN_TYPE_MILESTONE,\n          title: TOKEN_TITLE_MILESTONE,\n          icon: 'milestone',\n          token: MilestoneToken,\n          recentSuggestionsStorageKey: `${this.fullPath}-issues-recent-tokens-milestone`,\n          shouldSkipSort: true,\n          fullPath: this.fullPath,\n          isProject: !this.isGroup,\n        },\n        {\n          type: TOKEN_TYPE_SEARCH_WITHIN,\n          title: TOKEN_TITLE_SEARCH_WITHIN,\n          icon: 'search',\n          token: GlFilteredSearchToken,\n          unique: true,\n          operators: OPERATORS_IS,\n          options: [\n            { icon: 'title', value: 'TITLE', title: __('Titles') },\n            { icon: 'text-description', value: 'DESCRIPTION', title: __('Descriptions') },\n          ],\n        },\n      ];\n\n      if (this.isGroup) {\n        tokens.push({\n          type: TOKEN_TYPE_GROUP,\n          icon: 'group',\n          title: TOKEN_TITLE_GROUP,\n          unique: true,\n          token: GroupToken,\n          operators: OPERATORS_IS,\n          fullPath: this.fullPath,\n        });\n      }\n\n      if (!this.workItemType) {\n        tokens.push({\n          type: TOKEN_TYPE_TYPE,\n          title: TOKEN_TITLE_TYPE,\n          icon: 'issues',\n          token: GlFilteredSearchToken,\n          operators: OPERATORS_IS,\n          options: this.typeTokenOptions,\n        });\n      }\n\n      if (this.isSignedIn) {\n        tokens.push({\n          type: TOKEN_TYPE_CONFIDENTIAL,\n          title: TOKEN_TITLE_CONFIDENTIAL,\n          icon: 'eye-slash',\n          token: GlFilteredSearchToken,\n          unique: true,\n          operators: OPERATORS_IS,\n          options: [\n            { icon: 'eye-slash', value: 'yes', title: __('Yes') },\n            { icon: 'eye', value: 'no', title: __('No') },\n          ],\n        });\n\n        tokens.push({\n          type: TOKEN_TYPE_MY_REACTION,\n          title: TOKEN_TITLE_MY_REACTION,\n          icon: 'thumb-up',\n          token: EmojiToken,\n          unique: true,\n          fetchEmojis: this.fetchEmojis,\n          recentSuggestionsStorageKey: `${this.fullPath}-issues-recent-tokens-my_reaction`,\n        });\n      }\n\n      tokens.sort((a, b) => a.title.localeCompare(b.title));\n\n      return tokens;\n    },\n    showPaginationControls() {\n      return !this.isLoading && (this.pageInfo.hasNextPage || this.pageInfo.hasPreviousPage);\n    },\n    showPageSizeSelector() {\n      return this.workItems.length > 0;\n    },\n    tabCounts() {\n      const { all, closed, opened } = this.workItemStateCounts;\n      return {\n        [STATUS_OPEN]: opened,\n        [STATUS_CLOSED]: closed,\n        [STATUS_ALL]: all,\n      };\n    },\n    typeTokenOptions() {\n      return getTypeTokenOptions({\n        hasEpicsFeature: this.hasEpicsFeature,\n        hasOkrsFeature: this.hasOkrsFeature,\n        hasQualityManagementFeature: this.hasQualityManagementFeature,\n      });\n    },\n    urlFilterParams() {\n      return convertToUrlParams(this.filterTokens);\n    },\n    urlParams() {\n      return {\n        sort: urlSortParams[this.sortKey],\n        state: this.state,\n        ...this.urlFilterParams,\n        first_page_size: this.pageParams.firstPageSize,\n        last_page_size: this.pageParams.lastPageSize,\n        page_after: this.pageParams.afterCursor ?? undefined,\n        page_before: this.pageParams.beforeCursor ?? undefined,\n      };\n    },\n    activeWorkItemType() {\n      const activeWorkItemTypeName =\n        typeof this.activeItem?.workItemType === 'object'\n          ? this.activeItem?.workItemType?.name\n          : this.activeItem?.workItemType;\n      return this.workItemType || activeWorkItemTypeName;\n    },\n  },\n  watch: {\n    eeWorkItemUpdateCount() {\n      // Only reset isInitialLoadComplete when there's no issues to minimize unmounting IssuableList\n      if (!this.hasAnyIssues) {\n        this.isInitialLoadComplete = false;\n      }\n      this.$apollo.queries.workItems.refetch();\n    },\n    $route(newValue, oldValue) {\n      if (newValue.fullPath !== oldValue.fullPath) {\n        this.updateData(getParameterByName(PARAM_SORT));\n      }\n      if (newValue.query[DETAIL_VIEW_QUERY_PARAM_NAME] && !this.$apollo.queries.workItems.loading) {\n        this.checkDrawerParams();\n      } else {\n        this.activeItem = null;\n      }\n    },\n  },\n  created() {\n    this.updateData(this.initialSort);\n    this.autocompleteCache = new AutocompleteCache();\n  },\n  methods: {\n    handleSelect(item) {\n      this.activeItem = item;\n    },\n    fetchEmojis(search) {\n      return this.autocompleteCache.fetch({\n        url: this.autocompleteAwardEmojisPath,\n        cacheName: 'emojis',\n        searchProperty: 'name',\n        search,\n      });\n    },\n    fetchLabelsWithFetchPolicy(search, fetchPolicy = fetchPolicies.CACHE_FIRST) {\n      return this.$apollo\n        .query({\n          query: searchLabelsQuery,\n          variables: { fullPath: this.fullPath, search, isProject: !this.isGroup },\n          fetchPolicy,\n        })\n        .then(({ data }) => {\n          // TODO remove once we can search by title-only on the backend\n          // https://gitlab.com/gitlab-org/gitlab/-/issues/346353\n          const labels = data[this.namespace]?.labels.nodes;\n          return labels.filter((label) => label.title.toLowerCase().includes(search.toLowerCase()));\n        });\n    },\n    fetchLabels(search) {\n      return this.fetchLabelsWithFetchPolicy(search);\n    },\n    fetchLatestLabels(search) {\n      return this.fetchLabelsWithFetchPolicy(search, fetchPolicies.NETWORK_ONLY);\n    },\n    getStatus(issue) {\n      return issue.state === STATE_CLOSED ? __('Closed') : undefined;\n    },\n    handleClickTab(state) {\n      if (this.state === state) {\n        return;\n      }\n\n      this.state = state;\n      this.pageParams = getInitialPageParams(this.pageSize);\n\n      this.$router.push({ query: this.urlParams });\n    },\n    handleFilter(tokens) {\n      this.filterTokens = tokens;\n      this.pageParams = getInitialPageParams(this.pageSize);\n\n      this.$router.push({ query: this.urlParams });\n    },\n    handleNextPage() {\n      this.pageParams = {\n        afterCursor: this.pageInfo.endCursor,\n        firstPageSize: this.pageSize,\n      };\n      scrollUp();\n\n      this.$router.push({ query: this.urlParams });\n    },\n    handlePageSizeChange(pageSize) {\n      this.pageSize = pageSize;\n      this.pageParams = getInitialPageParams(pageSize);\n      scrollUp();\n\n      this.$router.push({ query: this.urlParams });\n    },\n    handlePreviousPage() {\n      this.pageParams = {\n        beforeCursor: this.pageInfo.startCursor,\n        lastPageSize: this.pageSize,\n      };\n      scrollUp();\n\n      this.$router.push({ query: this.urlParams });\n    },\n    handleSort(sortKey) {\n      if (this.sortKey === sortKey) {\n        return;\n      }\n\n      this.sortKey = sortKey;\n      this.pageParams = getInitialPageParams(this.pageSize);\n\n      if (this.isSignedIn) {\n        this.saveSortPreference(sortKey);\n      }\n\n      this.$router.push({ query: this.urlParams });\n    },\n    saveSortPreference(sortKey) {\n      this.$apollo\n        .mutate({\n          mutation: setSortPreferenceMutation,\n          variables: { input: { issuesSort: sortKey } },\n        })\n        .then(({ data }) => {\n          if (data.userPreferencesUpdate.errors.length) {\n            throw new Error(data.userPreferencesUpdate.errors);\n          }\n        })\n        .catch((error) => {\n          Sentry.captureException(error);\n        });\n    },\n    deleteItem() {\n      this.activeItem = null;\n      this.refetchItems();\n    },\n    handleStatusChange(workItem) {\n      if (this.state === STATUS_ALL) {\n        return;\n      }\n      if (statusMap[this.state] !== workItem.state) {\n        this.refetchItems();\n      }\n    },\n    async refetchItems() {\n      this.isRefetching = true;\n      await this.$apollo.queries.workItems.refetch();\n      this.isRefetching = false;\n    },\n    updateData(sort) {\n      const firstPageSize = getParameterByName(PARAM_FIRST_PAGE_SIZE);\n      const lastPageSize = getParameterByName(PARAM_LAST_PAGE_SIZE);\n      const state = getParameterByName(PARAM_STATE);\n\n      this.filterTokens = getFilterTokens(window.location.search);\n\n      this.pageParams = getInitialPageParams(\n        this.pageSize,\n        isPositiveInteger(firstPageSize) ? parseInt(firstPageSize, 10) : undefined,\n        isPositiveInteger(lastPageSize) ? parseInt(lastPageSize, 10) : undefined,\n        getParameterByName(PARAM_PAGE_AFTER) ?? undefined,\n        getParameterByName(PARAM_PAGE_BEFORE) ?? undefined,\n      );\n\n      // Trigger pageSize UI component update based on URL changes\n      this.pageSize = this.pageParams.firstPageSize;\n      this.sortKey = deriveSortKey({ sort, sortMap: urlSortParams });\n      this.state = state || STATUS_OPEN;\n    },\n    checkDrawerParams() {\n      const queryParam = getParameterByName(DETAIL_VIEW_QUERY_PARAM_NAME);\n\n      if (!queryParam) {\n        return;\n      }\n\n      const params = JSON.parse(atob(queryParam));\n      if (params.id) {\n        const issue = this.workItems.find((i) => getIdFromGraphQLId(i.id) === params.id);\n        if (issue) {\n          this.activeItem = {\n            ...issue,\n            // we need fullPath here to prevent cache invalidation\n            fullPath: params.full_path,\n          };\n        } else {\n          updateHistory({\n            url: removeParams([DETAIL_VIEW_QUERY_PARAM_NAME]),\n          });\n        }\n      }\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-loading-icon v-if=\"!isInitialLoadComplete && !error\" class=\"gl-mt-5\" size=\"lg\" />\n\n  <div v-else-if=\"hasAnyIssues || error\">\n    <work-item-drawer\n      v-if=\"workItemDrawerEnabled\"\n      :active-item=\"activeItem\"\n      :open=\"isItemSelected\"\n      :issuable-type=\"activeWorkItemType\"\n      click-outside-exclude-selector=\".issuable-list\"\n      @close=\"activeItem = null\"\n      @addChild=\"refetchItems\"\n      @workItemDeleted=\"deleteItem\"\n      @work-item-updated=\"handleStatusChange\"\n    />\n    <issuable-list\n      :active-issuable=\"activeItem\"\n      :current-tab=\"state\"\n      :default-page-size=\"pageSize\"\n      :error=\"error\"\n      :has-next-page=\"pageInfo.hasNextPage\"\n      :has-previous-page=\"pageInfo.hasPreviousPage\"\n      :initial-filter-value=\"filterTokens\"\n      :initial-sort-by=\"sortKey\"\n      :issuables=\"workItems\"\n      :issuables-loading=\"isLoading\"\n      :show-bulk-edit-sidebar=\"showBulkEditSidebar\"\n      namespace=\"work-items\"\n      :full-path=\"fullPath\"\n      recent-searches-storage-key=\"issues\"\n      :search-tokens=\"searchTokens\"\n      show-filtered-search-friendly-text\n      :show-page-size-selector=\"showPageSizeSelector\"\n      :show-pagination-controls=\"showPaginationControls\"\n      show-work-item-type-icon\n      :sort-options=\"$options.sortOptions\"\n      sync-filter-and-sort\n      :tab-counts=\"tabCounts\"\n      :tabs=\"$options.issuableListTabs\"\n      use-keyset-pagination\n      :prevent-redirect=\"workItemDrawerEnabled\"\n      @click-tab=\"handleClickTab\"\n      @dismiss-alert=\"error = undefined\"\n      @filter=\"handleFilter\"\n      @next-page=\"handleNextPage\"\n      @page-size-change=\"handlePageSizeChange\"\n      @previous-page=\"handlePreviousPage\"\n      @sort=\"handleSort\"\n      @select-issuable=\"handleSelect\"\n    >\n      <template #nav-actions>\n        <slot name=\"nav-actions\"></slot>\n      </template>\n\n      <template #timeframe=\"{ issuable = {} }\">\n        <issue-card-time-info :issue=\"issuable\" :is-work-item-list=\"true\" />\n      </template>\n\n      <template #status=\"{ issuable }\">\n        {{ getStatus(issuable) }}\n      </template>\n\n      <template #statistics=\"{ issuable = {} }\">\n        <issue-card-statistics :issue=\"issuable\" />\n      </template>\n\n      <template #empty-state>\n        <slot name=\"list-empty-state\" :has-search=\"hasSearch\" :is-open-tab=\"isOpenTab\"></slot>\n      </template>\n\n      <template #list-body>\n        <slot name=\"list-body\"></slot>\n      </template>\n\n      <template #bulk-edit-actions=\"{ checkedIssuables }\">\n        <slot name=\"bulk-edit-actions\" :checked-issuables=\"checkedIssuables\"></slot>\n      </template>\n\n      <template #sidebar-items=\"{ checkedIssuables }\">\n        <slot name=\"sidebar-items\" :checked-issuables=\"checkedIssuables\"></slot>\n      </template>\n\n      <template #health-status=\"{ issuable = {} }\">\n        <work-item-health-status :issue=\"issuable\" />\n      </template>\n    </issuable-list>\n  </div>\n\n  <div v-else>\n    <slot name=\"page-empty-state\"></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!./work_items_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!./work_items_list_app.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./work_items_list_app.vue?vue&type=template&id=3467e6ac\"\nimport script from \"./work_items_list_app.vue?vue&type=script&lang=js\"\nexport * from \"./work_items_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 (!_vm.isInitialLoadComplete && !_vm.error)?_c('gl-loading-icon',{staticClass:\"gl-mt-5\",attrs:{\"size\":\"lg\"}}):(_vm.hasAnyIssues || _vm.error)?_c('div',[(_vm.workItemDrawerEnabled)?_c('work-item-drawer',{attrs:{\"active-item\":_vm.activeItem,\"open\":_vm.isItemSelected,\"issuable-type\":_vm.activeWorkItemType,\"click-outside-exclude-selector\":\".issuable-list\"},on:{\"close\":function($event){_vm.activeItem = null},\"addChild\":_vm.refetchItems,\"workItemDeleted\":_vm.deleteItem,\"work-item-updated\":_vm.handleStatusChange}}):_vm._e(),_vm._v(\" \"),_c('issuable-list',{attrs:{\"active-issuable\":_vm.activeItem,\"current-tab\":_vm.state,\"default-page-size\":_vm.pageSize,\"error\":_vm.error,\"has-next-page\":_vm.pageInfo.hasNextPage,\"has-previous-page\":_vm.pageInfo.hasPreviousPage,\"initial-filter-value\":_vm.filterTokens,\"initial-sort-by\":_vm.sortKey,\"issuables\":_vm.workItems,\"issuables-loading\":_vm.isLoading,\"show-bulk-edit-sidebar\":_vm.showBulkEditSidebar,\"namespace\":\"work-items\",\"full-path\":_vm.fullPath,\"recent-searches-storage-key\":\"issues\",\"search-tokens\":_vm.searchTokens,\"show-filtered-search-friendly-text\":\"\",\"show-page-size-selector\":_vm.showPageSizeSelector,\"show-pagination-controls\":_vm.showPaginationControls,\"show-work-item-type-icon\":\"\",\"sort-options\":_vm.$options.sortOptions,\"sync-filter-and-sort\":\"\",\"tab-counts\":_vm.tabCounts,\"tabs\":_vm.$options.issuableListTabs,\"use-keyset-pagination\":\"\",\"prevent-redirect\":_vm.workItemDrawerEnabled},on:{\"click-tab\":_vm.handleClickTab,\"dismiss-alert\":function($event){_vm.error = undefined},\"filter\":_vm.handleFilter,\"next-page\":_vm.handleNextPage,\"page-size-change\":_vm.handlePageSizeChange,\"previous-page\":_vm.handlePreviousPage,\"sort\":_vm.handleSort,\"select-issuable\":_vm.handleSelect},scopedSlots:_vm._u([{key:\"nav-actions\",fn:function(){return [_vm._t(\"nav-actions\")]},proxy:true},{key:\"timeframe\",fn:function({ issuable = {} }){return [_c('issue-card-time-info',{attrs:{\"issue\":issuable,\"is-work-item-list\":true}})]}},{key:\"status\",fn:function({ issuable }){return [_vm._v(\"\\n      \"+_vm._s(_vm.getStatus(issuable))+\"\\n    \")]}},{key:\"statistics\",fn:function({ issuable = {} }){return [_c('issue-card-statistics',{attrs:{\"issue\":issuable}})]}},{key:\"empty-state\",fn:function(){return [_vm._t(\"list-empty-state\",null,{\"hasSearch\":_vm.hasSearch,\"isOpenTab\":_vm.isOpenTab})]},proxy:true},{key:\"list-body\",fn:function(){return [_vm._t(\"list-body\")]},proxy:true},{key:\"bulk-edit-actions\",fn:function({ checkedIssuables }){return [_vm._t(\"bulk-edit-actions\",null,{\"checkedIssuables\":checkedIssuables})]}},{key:\"sidebar-items\",fn:function({ checkedIssuables }){return [_vm._t(\"sidebar-items\",null,{\"checkedIssuables\":checkedIssuables})]}},{key:\"health-status\",fn:function({ issuable = {} }){return [_c('work-item-health-status',{attrs:{\"issue\":issuable}})]}}],null,true)})],1):_c('div',[_vm._t(\"page-empty-state\")],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_items_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!./work_items_list_app.vue?vue&type=script&lang=js\"","<script>\nimport emptyStateSvg from '@gitlab/svgs/dist/illustrations/empty-state/empty-epic-md.svg';\nimport { GlEmptyState, GlButton } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { s__ } from '~/locale';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_LABEL } from '~/graphql_shared/constants';\nimport EmptyStateWithAnyIssues from '~/issues/list/components/empty_state_with_any_issues.vue';\nimport EmptyStateWithoutAnyIssues from '~/issues/list/components/empty_state_without_any_issues.vue';\nimport { WORK_ITEM_TYPE_ENUM_EPIC, WORK_ITEM_TYPE_ENUM_ISSUE } from '~/work_items/constants';\nimport WorkItemsListApp from '~/work_items/pages/work_items_list_app.vue';\nimport CreateWorkItemModal from '~/work_items/components/create_work_item_modal.vue';\nimport EpicsListBulkEditSidebar from 'ee/epics_list/components/epics_list_bulk_edit_sidebar.vue';\nimport { isLabelsWidget } from '~/work_items/utils';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport workItemBulkUpdateMutation from '~/work_items/graphql/work_item_bulk_update.mutation.graphql';\nimport workItemParent from '../graphql/list/work_item_parent.query.graphql';\n\nexport default {\n  emptyStateSvg,\n  WORK_ITEM_TYPE_ENUM_EPIC,\n  components: {\n    CreateWorkItemModal,\n    EmptyStateWithAnyIssues,\n    EmptyStateWithoutAnyIssues,\n    GlEmptyState,\n    GlButton,\n    WorkItemsListApp,\n    EpicsListBulkEditSidebar,\n  },\n  mixins: [glFeatureFlagsMixin()],\n  inject: [\n    'hasEpicsFeature',\n    'showNewIssueLink',\n    'canBulkEditEpics',\n    'groupIssuesPath',\n    'workItemType',\n    'fullPath',\n    'isGroup',\n  ],\n  data() {\n    return {\n      workItemUpdateCount: 0,\n      bulkEditInProgress: false,\n      showBulkEditSidebar: false,\n    };\n  },\n  apollo: {\n    // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n    parentId: {\n      query: workItemParent,\n      variables() {\n        return {\n          fullPath: this.fullPath,\n        };\n      },\n      update(data) {\n        return data.namespace.id;\n      },\n    },\n  },\n  computed: {\n    allowEpicBulkEditing() {\n      return (\n        this.hasEpicsFeature &&\n        this.canBulkEditEpics &&\n        this.workItemType === WORK_ITEM_TYPE_ENUM_EPIC &&\n        this.glFeatures.bulkUpdateWorkItemsMutation\n      );\n    },\n    workItemTypeName() {\n      return this.workItemType === WORK_ITEM_TYPE_ENUM_EPIC\n        ? WORK_ITEM_TYPE_ENUM_EPIC\n        : WORK_ITEM_TYPE_ENUM_ISSUE;\n    },\n    isEpic() {\n      return this.workItemType === WORK_ITEM_TYPE_ENUM_EPIC;\n    },\n  },\n  methods: {\n    incrementUpdateCount() {\n      this.workItemUpdateCount += 1;\n    },\n    convertWorkItemsToIssuables(workItems) {\n      return workItems.map((workItem) => ({\n        labels: workItem.widgets.find(isLabelsWidget).labels,\n        ...workItem,\n      }));\n    },\n    buildInputFromBulkUpdateEvent(updateEvent) {\n      return {\n        parentId: this.parentId,\n        ids: updateEvent.issuable_gids,\n        labelsWidget: {\n          addLabelIds: updateEvent.add_label_ids.map((id) =>\n            convertToGraphQLId(TYPENAME_LABEL, id),\n          ),\n          removeLabelIds: updateEvent.remove_label_ids.map((id) =>\n            convertToGraphQLId(TYPENAME_LABEL, id),\n          ),\n        },\n      };\n    },\n    async handleWorkItemBulkEdit(updateEvent) {\n      this.bulkEditInProgress = true;\n\n      try {\n        const input = this.buildInputFromBulkUpdateEvent(updateEvent);\n        await this.$apollo.mutate({\n          mutation: workItemBulkUpdateMutation,\n          variables: {\n            input,\n          },\n        });\n\n        this.incrementUpdateCount();\n      } catch (error) {\n        createAlert({\n          message: s__('Epics|Something went wrong while updating epics.'),\n          captureError: true,\n          error,\n        });\n      } finally {\n        this.bulkEditInProgress = false;\n        this.showBulkEditSidebar = false;\n      }\n    },\n  },\n};\n</script>\n\n<template>\n  <work-items-list-app\n    :show-bulk-edit-sidebar=\"showBulkEditSidebar\"\n    :ee-work-item-update-count=\"workItemUpdateCount\"\n  >\n    <template v-if=\"hasEpicsFeature && showNewIssueLink\" #nav-actions>\n      <div class=\"gl-flex gl-gap-3\">\n        <gl-button\n          v-if=\"allowEpicBulkEditing\"\n          class=\"!gl-w-auto gl-grow\"\n          data-testid=\"bulk-edit-start-button\"\n          :disabled=\"showBulkEditSidebar\"\n          @click=\"showBulkEditSidebar = true\"\n          >{{ __('Bulk edit') }}</gl-button\n        >\n        <create-work-item-modal\n          :is-group=\"isGroup\"\n          class=\"gl-grow\"\n          :work-item-type-name=\"workItemTypeName\"\n          @workItemCreated=\"incrementUpdateCount\"\n        />\n      </div>\n    </template>\n    <template v-if=\"hasEpicsFeature\" #list-empty-state=\"{ hasSearch, isOpenTab }\">\n      <empty-state-with-any-issues\n        :has-search=\"hasSearch\"\n        :is-epic=\"isEpic\"\n        :is-open-tab=\"isOpenTab\"\n      >\n        <template v-if=\"showNewIssueLink\" #new-issue-button>\n          <create-work-item-modal\n            class=\"gl-grow\"\n            :is-group=\"isGroup\"\n            :work-item-type-name=\"workItemTypeName\"\n            @workItemCreated=\"incrementUpdateCount\"\n          />\n        </template>\n      </empty-state-with-any-issues>\n    </template>\n    <template v-if=\"hasEpicsFeature && isEpic\" #page-empty-state>\n      <gl-empty-state\n        :description=\"\n          __('Track groups of issues that share a theme, across projects and milestones')\n        \"\n        :svg-path=\"$options.emptyStateSvg\"\n        :title=\"\n          __(\n            'Epics let you manage your portfolio of projects more efficiently and with less effort',\n          )\n        \"\n      >\n        <template v-if=\"showNewIssueLink\" #actions>\n          <create-work-item-modal\n            class=\"gl-grow\"\n            :is-group=\"isGroup\"\n            :work-item-type-name=\"$options.WORK_ITEM_TYPE_ENUM_EPIC\"\n            @workItemCreated=\"incrementUpdateCount\"\n          />\n        </template>\n      </gl-empty-state>\n    </template>\n    <template v-else #page-empty-state>\n      <empty-state-without-any-issues>\n        <template #new-issue-button>\n          <create-work-item-modal\n            :is-group=\"isGroup\"\n            :work-item-type-name=\"workItemTypeName\"\n            @workItemCreated=\"incrementUpdateCount\"\n          />\n        </template>\n      </empty-state-without-any-issues>\n    </template>\n    <template v-if=\"allowEpicBulkEditing\" #bulk-edit-actions=\"{ checkedIssuables }\">\n      <gl-button\n        variant=\"confirm\"\n        type=\"submit\"\n        form=\"epics-list-bulk-edit\"\n        :disabled=\"checkedIssuables.length === 0 || bulkEditInProgress\"\n        :loading=\"bulkEditInProgress\"\n        >{{ __('Update selected') }}</gl-button\n      >\n      <gl-button class=\"gl-float-right\" @click=\"showBulkEditSidebar = false\">{{\n        __('Cancel')\n      }}</gl-button>\n    </template>\n    <template v-if=\"allowEpicBulkEditing\" #sidebar-items=\"{ checkedIssuables }\">\n      <epics-list-bulk-edit-sidebar\n        :checked-epics=\"convertWorkItemsToIssuables(checkedIssuables)\"\n        @bulk-update=\"handleWorkItemBulkEdit\"\n      />\n    </template>\n  </work-items-list-app>\n</template>\n","import { render, staticRenderFns } from \"./work_items_list_app.vue?vue&type=template&id=0bedfcba\"\nimport script from \"./work_items_list_app.vue?vue&type=script&lang=js\"\nexport * from \"./work_items_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('work-items-list-app',{attrs:{\"show-bulk-edit-sidebar\":_vm.showBulkEditSidebar,\"ee-work-item-update-count\":_vm.workItemUpdateCount},scopedSlots:_vm._u([(_vm.hasEpicsFeature && _vm.showNewIssueLink)?{key:\"nav-actions\",fn:function(){return [_c('div',{staticClass:\"gl-flex gl-gap-3\"},[(_vm.allowEpicBulkEditing)?_c('gl-button',{staticClass:\"!gl-w-auto gl-grow\",attrs:{\"data-testid\":\"bulk-edit-start-button\",\"disabled\":_vm.showBulkEditSidebar},on:{\"click\":function($event){_vm.showBulkEditSidebar = true}}},[_vm._v(_vm._s(_vm.__('Bulk edit')))]):_vm._e(),_vm._v(\" \"),_c('create-work-item-modal',{staticClass:\"gl-grow\",attrs:{\"is-group\":_vm.isGroup,\"work-item-type-name\":_vm.workItemTypeName},on:{\"workItemCreated\":_vm.incrementUpdateCount}})],1)]},proxy:true}:null,(_vm.hasEpicsFeature)?{key:\"list-empty-state\",fn:function({ hasSearch, isOpenTab }){return [_c('empty-state-with-any-issues',{attrs:{\"has-search\":hasSearch,\"is-epic\":_vm.isEpic,\"is-open-tab\":isOpenTab},scopedSlots:_vm._u([(_vm.showNewIssueLink)?{key:\"new-issue-button\",fn:function(){return [_c('create-work-item-modal',{staticClass:\"gl-grow\",attrs:{\"is-group\":_vm.isGroup,\"work-item-type-name\":_vm.workItemTypeName},on:{\"workItemCreated\":_vm.incrementUpdateCount}})]},proxy:true}:null],null,true)})]}}:null,(_vm.hasEpicsFeature && _vm.isEpic)?{key:\"page-empty-state\",fn:function(){return [_c('gl-empty-state',{attrs:{\"description\":_vm.__('Track groups of issues that share a theme, across projects and milestones'),\"svg-path\":_vm.$options.emptyStateSvg,\"title\":_vm.__(\n          'Epics let you manage your portfolio of projects more efficiently and with less effort',\n        )},scopedSlots:_vm._u([(_vm.showNewIssueLink)?{key:\"actions\",fn:function(){return [_c('create-work-item-modal',{staticClass:\"gl-grow\",attrs:{\"is-group\":_vm.isGroup,\"work-item-type-name\":_vm.$options.WORK_ITEM_TYPE_ENUM_EPIC},on:{\"workItemCreated\":_vm.incrementUpdateCount}})]},proxy:true}:null],null,true)})]},proxy:true}:{key:\"page-empty-state\",fn:function(){return [_c('empty-state-without-any-issues',{scopedSlots:_vm._u([{key:\"new-issue-button\",fn:function(){return [_c('create-work-item-modal',{attrs:{\"is-group\":_vm.isGroup,\"work-item-type-name\":_vm.workItemTypeName},on:{\"workItemCreated\":_vm.incrementUpdateCount}})]},proxy:true}])})]},proxy:true},(_vm.allowEpicBulkEditing)?{key:\"bulk-edit-actions\",fn:function({ checkedIssuables }){return [_c('gl-button',{attrs:{\"variant\":\"confirm\",\"type\":\"submit\",\"form\":\"epics-list-bulk-edit\",\"disabled\":checkedIssuables.length === 0 || _vm.bulkEditInProgress,\"loading\":_vm.bulkEditInProgress}},[_vm._v(_vm._s(_vm.__('Update selected')))]),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-float-right\",on:{\"click\":function($event){_vm.showBulkEditSidebar = false}}},[_vm._v(_vm._s(_vm.__('Cancel')))])]}}:null,(_vm.allowEpicBulkEditing)?{key:\"sidebar-items\",fn:function({ checkedIssuables }){return [_c('epics-list-bulk-edit-sidebar',{attrs:{\"checked-epics\":_vm.convertWorkItemsToIssuables(checkedIssuables)},on:{\"bulk-update\":_vm.handleWorkItemBulkEdit}})]}}: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!./create_work_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!./create_work_item.vue?vue&type=script&lang=js\"","<script>\nimport { visitUrl, getParameterByName, updateHistory, removeParams } from '~/lib/utils/url_utility';\nimport CreateWorkItem from '../components/create_work_item.vue';\nimport CreateWorkItemCancelConfirmationModal from '../components/create_work_item_cancel_confirmation_modal.vue';\nimport { ROUTES, RELATED_ITEM_ID_URL_QUERY_PARAM } from '../constants';\nimport workItemRelatedItemQuery from '../graphql/work_item_related_item.query.graphql';\n\nexport default {\n  name: 'CreateWorkItemPage',\n  components: {\n    CreateWorkItem,\n    CreateWorkItemCancelConfirmationModal,\n  },\n  inject: ['isGroup'],\n  props: {\n    workItemTypeName: {\n      type: String,\n      required: false,\n      default: null,\n    },\n  },\n  data() {\n    return {\n      relatedItem: null,\n      relatedItemId: getParameterByName(RELATED_ITEM_ID_URL_QUERY_PARAM),\n      isCancelConfirmationModalVisible: false,\n      shouldDiscardDraft: false,\n      workItemType: this.workItemTypeName,\n    };\n  },\n  apollo: {\n    relatedItem: {\n      query: workItemRelatedItemQuery,\n      variables() {\n        return {\n          id: this.relatedItemId,\n        };\n      },\n      skip() {\n        return !this.relatedItemId;\n      },\n      update(data) {\n        return {\n          id: this.relatedItemId,\n          reference: data.workItem.reference,\n          type: data.workItem.workItemType.name,\n        };\n      },\n      error() {\n        // if we cannot find an item with the given id, ignore it and remove it from the url.\n        updateHistory({ url: removeParams([RELATED_ITEM_ID_URL_QUERY_PARAM]), replace: true });\n      },\n    },\n  },\n  methods: {\n    updateWorkItemType(type) {\n      this.workItemType = type;\n    },\n    workItemCreated(workItem) {\n      if (this.$router) {\n        this.$router.push({ name: ROUTES.workItem, params: { iid: workItem.iid } });\n      } else {\n        visitUrl(workItem.webUrl);\n      }\n    },\n    handleCancelClick() {\n      const listPath =\n        this.$router.history.base + this.$router.history.current.fullPath.replace('/new', '');\n      const isWorkItemRoute = this.$route.params?.type === 'work_items';\n      const isGroupWorkItemRoute = isWorkItemRoute && this.$router.history.base.includes('groups');\n\n      /*\n        If the route is epics, issues or work items on the group level\n        (because work items on the project level is not yet available)\n        we redirect to the list page when the user clicks on cancel,\n        otherwise we go back to the previous page.\n      */\n\n      if (Boolean(listPath) && (!isWorkItemRoute || isGroupWorkItemRoute)) {\n        visitUrl(listPath);\n      } else {\n        this.$router.go(-1);\n      }\n    },\n    hideConfirmationModal() {\n      this.isCancelConfirmationModalVisible = false;\n    },\n    showConfirmationModal() {\n      this.isCancelConfirmationModalVisible = true;\n    },\n    handleConfirmCancellation() {\n      this.showConfirmationModal();\n    },\n    handleContinueEditing() {\n      this.shouldDiscardDraft = false;\n      this.hideConfirmationModal();\n    },\n    handleDiscardDraft() {\n      this.hideConfirmationModal();\n      this.handleCancelClick();\n      // trigger discard draft function on create work item component\n      this.shouldDiscardDraft = true;\n    },\n  },\n};\n</script>\n\n<template>\n  <div>\n    <create-work-item\n      :work-item-type-name=\"workItemTypeName\"\n      :is-group=\"isGroup\"\n      :related-item=\"relatedItem\"\n      :should-discard-draft=\"shouldDiscardDraft\"\n      @updateType=\"updateWorkItemType($event)\"\n      @confirmCancel=\"handleConfirmCancellation\"\n      @discardDraft=\"handleDiscardDraft('createPage')\"\n      @workItemCreated=\"workItemCreated\"\n    />\n    <create-work-item-cancel-confirmation-modal\n      :is-visible=\"isCancelConfirmationModalVisible\"\n      :work-item-type-name=\"workItemType\"\n      @continueEditing=\"handleContinueEditing\"\n      @discardDraft=\"handleDiscardDraft('confirmModal')\"\n    />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./create_work_item.vue?vue&type=template&id=78ae2885\"\nimport script from \"./create_work_item.vue?vue&type=script&lang=js\"\nexport * from \"./create_work_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',[_c('create-work-item',{attrs:{\"work-item-type-name\":_vm.workItemTypeName,\"is-group\":_vm.isGroup,\"related-item\":_vm.relatedItem,\"should-discard-draft\":_vm.shouldDiscardDraft},on:{\"updateType\":function($event){return _vm.updateWorkItemType($event)},\"confirmCancel\":_vm.handleConfirmCancellation,\"discardDraft\":function($event){return _vm.handleDiscardDraft('createPage')},\"workItemCreated\":_vm.workItemCreated}}),_vm._v(\" \"),_c('create-work-item-cancel-confirmation-modal',{attrs:{\"is-visible\":_vm.isCancelConfirmationModalVisible,\"work-item-type-name\":_vm.workItemType},on:{\"continueEditing\":_vm.handleContinueEditing,\"discardDraft\":function($event){return _vm.handleDiscardDraft('confirmModal')}}})],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_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!./work_item_root.vue?vue&type=script&lang=js\"","<script>\nimport { GlAlert } from '@gitlab/ui';\nimport { visitUrl } from '~/lib/utils/url_utility';\nimport ZenMode from '~/zen_mode';\nimport WorkItemDetail from '../components/work_item_detail.vue';\nimport {\n  sprintfWorkItem,\n  I18N_WORK_ITEM_ERROR_DELETING,\n  I18N_WORK_ITEM_DELETED,\n} from '../constants';\nimport deleteWorkItemMutation from '../graphql/delete_work_item.mutation.graphql';\n\nexport default {\n  components: {\n    GlAlert,\n    WorkItemDetail,\n  },\n  inject: ['issuesListPath'],\n  props: {\n    iid: {\n      type: String,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      error: '',\n    };\n  },\n  mounted() {\n    this.ZenMode = new ZenMode();\n  },\n  methods: {\n    deleteWorkItem({ workItemType, workItemId: id }) {\n      this.$apollo\n        .mutate({\n          mutation: deleteWorkItemMutation,\n          variables: {\n            input: { id },\n          },\n        })\n        .then(({ data: { workItemDelete, errors } }) => {\n          if (errors?.length) {\n            throw new Error(errors[0].message);\n          }\n\n          if (workItemDelete?.errors.length) {\n            throw new Error(workItemDelete.errors[0]);\n          }\n\n          const msg = sprintfWorkItem(I18N_WORK_ITEM_DELETED, workItemType);\n          this.$toast.show(msg);\n          visitUrl(this.issuesListPath);\n        })\n        .catch((e) => {\n          this.error = e.message || sprintfWorkItem(I18N_WORK_ITEM_ERROR_DELETING, workItemType);\n        });\n    },\n  },\n};\n</script>\n\n<template>\n  <div>\n    <gl-alert v-if=\"error\" variant=\"danger\" @dismiss=\"error = ''\">{{ error }}</gl-alert>\n    <work-item-detail :work-item-iid=\"iid\" @deleteWorkItem=\"deleteWorkItem($event)\" />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_root.vue?vue&type=template&id=2f23f885\"\nimport script from \"./work_item_root.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.error)?_c('gl-alert',{attrs:{\"variant\":\"danger\"},on:{\"dismiss\":function($event){_vm.error = ''}}},[_vm._v(_vm._s(_vm.error))]):_vm._e(),_vm._v(\" \"),_c('work-item-detail',{attrs:{\"work-item-iid\":_vm.iid},on:{\"deleteWorkItem\":function($event){return _vm.deleteWorkItem($event)}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import WorkItemList from 'ee_else_ce/work_items/pages/work_items_list_app.vue';\nimport CreateWorkItem from '../pages/create_work_item.vue';\nimport WorkItemDetail from '../pages/work_item_root.vue';\nimport DesignDetail from '../components/design_management/design_preview/design_details.vue';\nimport { ROUTES, WORK_ITEM_BASE_ROUTE_MAP } from '../constants';\n\nfunction generateTypeRegex(routeMap) {\n  const types = Object.keys(routeMap);\n  return types.join('|');\n}\n\nfunction getRoutes() {\n  const routes = [\n    {\n      path: `/:type(${generateTypeRegex(WORK_ITEM_BASE_ROUTE_MAP)})`,\n      name: ROUTES.index,\n      component: WorkItemList,\n    },\n    {\n      path: `/:type(${generateTypeRegex(WORK_ITEM_BASE_ROUTE_MAP)})/new`,\n      name: ROUTES.new,\n      component: CreateWorkItem,\n      props: ({ params: { type } }) => ({ workItemTypeName: WORK_ITEM_BASE_ROUTE_MAP[type] }),\n    },\n    {\n      path: `/:type(${generateTypeRegex(WORK_ITEM_BASE_ROUTE_MAP)})/:iid`,\n      name: ROUTES.workItem,\n      component: WorkItemDetail,\n      props: true,\n      children: [\n        {\n          name: ROUTES.design,\n          path: '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  ];\n\n  return routes;\n}\n\nexport const routes = getRoutes;\n","import { GlToast } from '@gitlab/ui';\nimport Vue from 'vue';\nimport VueRouter from 'vue-router';\nimport { WORKSPACE_GROUP, WORKSPACE_PROJECT } from '~/issues/constants';\nimport { joinPaths, webIDEUrl } from '~/lib/utils/url_utility';\nimport { routes } from './routes';\n\nVue.use(GlToast);\nVue.use(VueRouter);\n\nexport function createRouter({\n  fullPath,\n  workspaceType = WORKSPACE_PROJECT,\n  defaultBranch,\n  isGroup,\n}) {\n  const workspacePath = workspaceType === WORKSPACE_GROUP ? '/groups' : '';\n\n  if (workspaceType === WORKSPACE_PROJECT) {\n    window.gl.webIDEPath = webIDEUrl(joinPaths('/', fullPath, 'edit/', defaultBranch, '/-/'));\n  }\n\n  return new VueRouter({\n    routes: routes(isGroup),\n    mode: 'history',\n    base: joinPaths(gon?.relative_url_root, workspacePath, fullPath, '-'),\n  });\n}\n","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport { DESIGN_MARK_APP_START, DESIGN_MEASURE_BEFORE_APP } from '~/performance/constants';\nimport { performanceMarkAndMeasure } from '~/performance/utils';\nimport { WORKSPACE_GROUP } from '~/issues/constants';\nimport { addShortcutsExtension } from '~/behaviors/shortcuts';\nimport ShortcutsWorkItems from '~/behaviors/shortcuts/shortcuts_work_items';\nimport ShortcutsNavigation from '~/behaviors/shortcuts/shortcuts_navigation';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport { injectVueAppBreadcrumbs } from '~/lib/utils/breadcrumbs';\nimport { apolloProvider } from '~/graphql_shared/issuable_client';\nimport App from './components/app.vue';\nimport WorkItemBreadcrumb from './components/work_item_breadcrumb.vue';\nimport activeDiscussionQuery from './components/design_management/graphql/client/active_design_discussion.query.graphql';\nimport { createRouter } from './router';\n\nVue.use(VueApollo);\n\nexport const initWorkItemsRoot = ({ workItemType, workspaceType } = {}) => {\n  const el = document.querySelector('#js-work-items');\n\n  if (!el) {\n    return undefined;\n  }\n\n  addShortcutsExtension(ShortcutsNavigation);\n  addShortcutsExtension(ShortcutsWorkItems);\n\n  const {\n    canAdminLabel,\n    fullPath,\n    groupPath,\n    groupId,\n    hasIssueWeightsFeature,\n    iid,\n    issuesListPath,\n    epicsListPath,\n    labelsManagePath,\n    registerPath,\n    signInPath,\n    hasIterationsFeature,\n    hasOkrsFeature,\n    hasSubepicsFeature,\n    hasIssuableHealthStatusFeature,\n    newCommentTemplatePaths,\n    reportAbusePath,\n    defaultBranch,\n    initialSort,\n    isSignedIn,\n    workItemType: listWorkItemType,\n    hasEpicsFeature,\n    showNewIssueLink,\n    canCreateEpic,\n    autocompleteAwardEmojisPath,\n    hasScopedLabelsFeature,\n    hasQualityManagementFeature,\n    canBulkEditEpics,\n    groupIssuesPath,\n    labelsFetchPath,\n    hasLinkedItemsEpicsFeature,\n    canCreateProjects,\n    newProjectPath,\n  } = el.dataset;\n\n  const isGroup = workspaceType === WORKSPACE_GROUP;\n  const router = createRouter({ fullPath, workItemType, workspaceType, defaultBranch, isGroup });\n  let listPath = issuesListPath;\n\n  const breadcrumbParams = { workItemType: listWorkItemType, isGroup };\n\n  if (isGroup) {\n    listPath = epicsListPath;\n    breadcrumbParams.listPath = epicsListPath;\n  } else {\n    breadcrumbParams.listPath = issuesListPath;\n  }\n\n  injectVueAppBreadcrumbs(router, WorkItemBreadcrumb, apolloProvider, breadcrumbParams);\n\n  apolloProvider.clients.defaultClient.cache.writeQuery({\n    query: activeDiscussionQuery,\n    data: {\n      activeDesignDiscussion: {\n        __typename: 'ActiveDesignDiscussion',\n        id: null,\n        source: null,\n      },\n    },\n  });\n\n  if (workItemType === 'issue' && gon.features.workItemsViewPreference && !isGroup) {\n    import(/* webpackChunkName: 'work_items_feedback' */ '~/work_items_feedback')\n      .then(({ initWorkItemsFeedback }) => {\n        initWorkItemsFeedback();\n      })\n      .catch({});\n  }\n\n  return new Vue({\n    el,\n    name: 'WorkItemsRoot',\n    router,\n    apolloProvider,\n    provide: {\n      canAdminLabel,\n      fullPath,\n      isGroup,\n      isProject: !isGroup,\n      hasIssueWeightsFeature: parseBoolean(hasIssueWeightsFeature),\n      hasOkrsFeature: parseBoolean(hasOkrsFeature),\n      hasSubepicsFeature: parseBoolean(hasSubepicsFeature),\n      hasScopedLabelsFeature: parseBoolean(hasScopedLabelsFeature),\n      issuesListPath: listPath,\n      labelsManagePath,\n      registerPath,\n      signInPath,\n      hasIterationsFeature: parseBoolean(hasIterationsFeature),\n      hasIssuableHealthStatusFeature: parseBoolean(hasIssuableHealthStatusFeature),\n      newCommentTemplatePaths: JSON.parse(newCommentTemplatePaths),\n      reportAbusePath,\n      groupPath,\n      groupId,\n      initialSort,\n      isSignedIn: parseBoolean(isSignedIn),\n      workItemType: listWorkItemType,\n      hasEpicsFeature: parseBoolean(hasEpicsFeature),\n      showNewIssueLink: parseBoolean(showNewIssueLink),\n      canCreateEpic: parseBoolean(canCreateEpic),\n      autocompleteAwardEmojisPath,\n      hasQualityManagementFeature: parseBoolean(hasQualityManagementFeature),\n      canBulkEditEpics: parseBoolean(canBulkEditEpics),\n      groupIssuesPath,\n      labelsFetchPath,\n      hasLinkedItemsEpicsFeature: parseBoolean(hasLinkedItemsEpicsFeature),\n      canCreateProjects: parseBoolean(canCreateProjects),\n      newIssuePath: '',\n      newProjectPath,\n    },\n    mounted() {\n      performanceMarkAndMeasure({\n        mark: DESIGN_MARK_APP_START,\n        measures: [\n          {\n            name: DESIGN_MEASURE_BEFORE_APP,\n          },\n        ],\n      });\n    },\n    render(createElement) {\n      return createElement(App, {\n        props: {\n          iid: isGroup ? iid : undefined,\n        },\n      });\n    },\n  });\n};\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateWorkItemNote\"},\"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\":\"WorkItemNote\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":221}};\n    doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/work_items/graphql/notes/work_item_note.fragment.graphql\\\"\\n\\nmutation updateWorkItemNote($input: UpdateNoteInput!) {\\n  updateNote(input: $input) {\\n    note {\\n      ...WorkItemNote\\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/work_items/graphql/notes/work_item_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[\"updateWorkItemNote\"] = oneQuery(doc, \"updateWorkItemNote\");\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!./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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getAllowedWorkItemParentTypes\"},\"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\":\"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\":\"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\":\"WorkItemWidgetDefinitionHierarchy\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowedParentTypes\"},\"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\":357}};\n    doc.loc.source = {\"body\":\"query getAllowedWorkItemParentTypes($id: WorkItemID!) {\\n  workItem(id: $id) {\\n    id\\n    workItemType {\\n      id\\n      name\\n      widgetDefinitions {\\n        type\\n        ... on WorkItemWidgetDefinitionHierarchy {\\n          allowedParentTypes {\\n            nodes {\\n              id\\n              name\\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[\"getAllowedWorkItemParentTypes\"] = oneQuery(doc, \"getAllowedWorkItemParentTypes\");\n        \n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateNewWorkItem\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalUpdateNewWorkItemInput\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateNewWorkItem\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}]}]}}],\"loc\":{\"start\":0,\"end\":111}};\n    doc.loc.source = {\"body\":\"mutation updateNewWorkItem($input: LocalUpdateNewWorkItemInput) {\\n  updateNewWorkItem(input: $input) @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[\"updateNewWorkItem\"] = oneQuery(doc, \"updateNewWorkItem\");\n        \n","\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","export default __webpack_public_path__ + \"empty-activity-md.9368030d.svg\";","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getAllowedWorkItemChildTypes\"},\"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\":\"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\":\"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\":\"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\":355}};\n    doc.loc.source = {\"body\":\"query getAllowedWorkItemChildTypes($id: WorkItemID!) {\\n  workItem(id: $id) {\\n    id\\n    workItemType {\\n      id\\n      name\\n      widgetDefinitions {\\n        type\\n        ... on WorkItemWidgetDefinitionHierarchy {\\n          allowedChildTypes {\\n            nodes {\\n              id\\n              name\\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[\"getAllowedWorkItemChildTypes\"] = oneQuery(doc, \"getAllowedWorkItemChildTypes\");\n        \n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"setSortPreference\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UserPreferencesUpdateInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPreferencesUpdate\"},\"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\":124}};\n    doc.loc.source = {\"body\":\"mutation setSortPreference($input: UserPreferencesUpdateInput!) {\\n  userPreferencesUpdate(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[\"setSortPreference\"] = oneQuery(doc, \"setSortPreference\");\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\">&check;</template>\n      {{ taskStatus }}\n      <template v-if=\"updatedAt\">&middot;</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","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","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 first from 'lodash/first';\nimport last from 'lodash/last';\nimport isString from 'lodash/isString';\nimport { modulo } from '../../../utils/number_utils';\n\nconst TERM_TOKEN_TYPE = 'filtered-search-term';\nconst INTENT_ACTIVATE_PREVIOUS = 'intent-activate-previous';\nconst TOKEN_CLOSE_SELECTOR = '.gl-token-close';\nfunction isEmptyTerm(token) {\n  return token.type === TERM_TOKEN_TYPE && token.value.data.trim() === '';\n}\nfunction normalizeTokens(tokens) {\n  const result = [];\n  tokens.forEach(token => {\n    if (isEmptyTerm(token)) {\n      return;\n    }\n    if (token.type !== TERM_TOKEN_TYPE) {\n      result.push({\n        ...token\n      });\n    } else if (result.length > 0 && typeof result[result.length - 1] === 'string') {\n      result[result.length - 1] += ` ${token.value.data}`;\n    } else {\n      result.push(token.value.data);\n    }\n  });\n  return result;\n}\nfunction assertValidTokens(tokens) {\n  if (!Array.isArray(tokens) && !typeof tokens === 'string') {\n    throw new TypeError('Either string or array of tokens is expected');\n  }\n}\nfunction needDenormalization(tokens) {\n  if (typeof tokens === 'string') {\n    return true;\n  }\n  assertValidTokens(tokens);\n  return tokens.some(t => typeof t === 'string' || !t.id);\n}\n\n/**\n * Given an initial index, step size and array length, returns an index that is\n * within the array bounds (unless step is 0; see † below).\n *\n * The step can be any positive or negative integer, including zero.\n *\n * An out-of-bounds index is considered 'uninitialised', and is handled\n * specially. For instance, the 'next' index of 'uninitialised' is the first\n * index:\n *\n *     stepIndexAndWrap(-1, 1, 5) === 0\n *\n * The 'previous' index of 'uninitialised' is the last index:\n *\n *     stepIndexAndWrap(-1, -1, 5) === 4\n *\n * †: If step is 0, the index is returned as-is, which may be out-of-bounds.\n *\n * @param {number} index The initial index.\n * @param {number} step The amount to step by (positive or negative).\n * @param {number} length The length of the array.\n * @returns {number}\n */\nfunction stepIndexAndWrap(index, step, length) {\n  if (step === 0) return index;\n  let start;\n  const indexInRange = index >= 0 && index < length;\n  if (indexInRange) {\n    // Step from the valid index.\n    start = index;\n  } else if (step > 0) {\n    // Step forwards from the beginning of the array.\n    start = -1;\n  } else {\n    // Step backwards from the end of the array.\n    start = length;\n  }\n  return modulo(start + step, length);\n}\n\n/**\n * Transforms a given token definition to an option definition.\n *\n * @param {Object} token A token definition (see GlFilteredSearch's\n *     availableTokens prop).\n * @returns {Object} A option definition (see GlFilteredSearchTokenSegment's\n *     options prop).\n */\nfunction tokenToOption(_ref) {\n  let {\n    icon,\n    title,\n    type,\n    optionComponent\n  } = _ref;\n  return {\n    icon,\n    title,\n    value: type,\n    component: optionComponent\n  };\n}\nlet tokenIdCounter = 0;\nconst getTokenId = () => {\n  const tokenId = `token-${tokenIdCounter}`;\n  tokenIdCounter += 1;\n  return tokenId;\n};\n/**\n * Ensure the given token has an `id` property, which `GlFilteredSearch` relies\n * on as a unique key for the token.\n *\n * If the given token does not have an `id`, it returns a shallow copy of the\n * token with an `id`. Otherwise, it returns the given token.\n *\n * @param {object} token The token to check.\n * @returns {object} A token with an `id`.\n */\nfunction ensureTokenId(token) {\n  if (!token.id) {\n    return {\n      ...token,\n      id: getTokenId()\n    };\n  }\n  return token;\n}\nfunction createTerm() {\n  let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n  return {\n    id: getTokenId(),\n    type: TERM_TOKEN_TYPE,\n    value: {\n      data\n    }\n  };\n}\nfunction denormalizeTokens(inputTokens) {\n  let termsAsTokens = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  assertValidTokens(inputTokens);\n  const tokens = Array.isArray(inputTokens) ? inputTokens : [inputTokens];\n  return tokens.reduce((result, t) => {\n    if (typeof t === 'string') {\n      if (termsAsTokens) {\n        const trimmedText = t.trim();\n        if (trimmedText) result.push(createTerm(trimmedText));\n      } else {\n        const stringTokens = t.split(' ').filter(Boolean);\n        stringTokens.forEach(strToken => result.push(createTerm(strToken)));\n      }\n    } else {\n      result.push(ensureTokenId(t));\n    }\n    return result;\n  }, []);\n}\n\n/**\n * Returns `true` if `text` contains `query` (case insensitive).\n *\n * This is used in `filter` and `find` array methods for token segment options.\n *\n * @param {string} text The string to look within.\n * @param {string} query The string to find inside the text.\n * @returns {boolean}\n */\nfunction match(text, query) {\n  return text.toLowerCase().includes(query.toLowerCase());\n}\nconst termTokenDefinition = {\n  type: TERM_TOKEN_TYPE,\n  icon: 'title',\n  title: 'Search for this text'\n};\nfunction splitOnQuotes(str) {\n  if (first(str) === \"'\" && last(str) === \"'\") {\n    return [str];\n  }\n  if (first(str) === '\"' && last(str) === '\"') {\n    return [str];\n  }\n  const queue = str.split(' ');\n  const result = [];\n  let waitingForMatchingQuote = false;\n  let quoteContent = '';\n  while (queue.length) {\n    const part = queue.shift();\n    const quoteIndex = part.indexOf('\"');\n    if (quoteIndex === -1) {\n      if (waitingForMatchingQuote) {\n        quoteContent += ` ${part}`;\n      } else {\n        result.push(part);\n      }\n    } else {\n      const [firstPart, secondPart] = part.split('\"', 2);\n      if (waitingForMatchingQuote) {\n        waitingForMatchingQuote = false;\n        quoteContent += ` ${firstPart}\"`;\n        result.push(quoteContent);\n        quoteContent = '';\n        if (secondPart.length) {\n          queue.unshift(secondPart);\n        }\n      } else {\n        waitingForMatchingQuote = true;\n        if (firstPart.length) {\n          result.push(firstPart);\n        }\n        quoteContent = `\"${secondPart}`;\n      }\n    }\n  }\n  return result;\n}\n\n/**\n *  wraps the incoming token in double quotes.\n *  Eg. Foo Bar becomes \"Foo Bar\"\n *\n *  1. token must have space.\n *  2. token should not already have a quote around it.\n */\nfunction wrapTokenInQuotes(token) {\n  if (!isString(token)) {\n    return token;\n  }\n  if (!token.includes(' ')) {\n    return token;\n  }\n  const quotes = [\"'\", '\"'];\n\n  // If the token starts and ends with a quote, eg. \"Foo Bar\", then return the original token.\n  if (quotes.some(quote => first(token) === quote && last(token) === quote)) {\n    return token;\n  }\n  return `\"${token}\"`;\n}\n\nexport { INTENT_ACTIVATE_PREVIOUS, TERM_TOKEN_TYPE, TOKEN_CLOSE_SELECTOR, createTerm, denormalizeTokens, ensureTokenId, isEmptyTerm, match, needDenormalization, normalizeTokens, splitOnQuotes, stepIndexAndWrap, termTokenDefinition, tokenToOption, wrapTokenInQuotes };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"work-item-overview\",attrs:{\"data-testid\":\"work-item-two-column-loading\"}},[_c('section',[_c('gl-skeleton-loader',{attrs:{\"height\":60,\"width\":600,\"data-testid\":\"work-title-and-meta-loading\"}},[_c('rect',{attrs:{\"width\":\"500\",\"height\":\"20\",\"x\":\"5\",\"y\":\"0\",\"rx\":\"4\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"width\":\"50\",\"height\":\"15\",\"x\":\"5\",\"y\":\"30\",\"rx\":\"6\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"width\":\"150\",\"height\":\"5\",\"x\":\"60\",\"y\":\"35\",\"rx\":\"2\"}})]),_vm._v(\" \"),_c('div',{attrs:{\"data-testid\":\"work-item-description-loading\"}},[_vm._l((_vm.$options.loader.descriptionRepeat),function(i){return _c('gl-skeleton-loader',{key:i,attrs:{\"width\":600,\"height\":20}},[_c('rect',{attrs:{\"width\":\"500\",\"x\":\"5\",\"y\":\"0\",\"height\":\"5\",\"rx\":\"2\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"width\":\"595\",\"x\":\"5\",\"y\":\"10\",\"height\":\"5\",\"rx\":\"2\"}})])}),_vm._v(\" \"),_c('gl-skeleton-loader',{attrs:{\"width\":600,\"height\":20}},[_c('rect',{attrs:{\"width\":\"300\",\"x\":\"5\",\"y\":\"0\",\"height\":\"5\",\"rx\":\"2\"}})]),_vm._v(\" \"),_c('gl-skeleton-loader',{attrs:{\"width\":600,\"height\":20}},[_c('rect',{attrs:{\"width\":\"500\",\"x\":\"5\",\"y\":\"0\",\"height\":\"5\",\"rx\":\"2\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"width\":\"595\",\"x\":\"5\",\"y\":\"10\",\"height\":\"5\",\"rx\":\"2\"}})]),_vm._v(\" \"),_c('gl-skeleton-loader',{attrs:{\"width\":600,\"height\":20}},[_c('rect',{attrs:{\"width\":\"300\",\"x\":\"5\",\"y\":\"0\",\"height\":\"5\",\"rx\":\"2\"}})])],2),_vm._v(\" \"),_c('div',{staticClass:\"work-item-attributes-wrapper md:!gl-hidden\",attrs:{\"data-testid\":\"work-item-attributes-xssm-loading\"}},_vm._l((_vm.$options.loader.attributesRepeat),function(i){return _c('gl-skeleton-loader',{key:i,attrs:{\"width\":240,\"height\":20}},[_c('rect',{attrs:{\"width\":\"50\",\"x\":\"2\",\"y\":\"0\",\"height\":\"2\",\"rx\":\"1\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"width\":\"100\",\"x\":\"2\",\"y\":\"5\",\"height\":\"4\",\"rx\":\"1\"}})])}),1),_vm._v(\" \"),_c('gl-skeleton-loader',{attrs:{\"height\":30,\"width\":600,\"data-testid\":\"work-item-activity-placeholder-loading\"}},[_c('rect',{attrs:{\"width\":\"100\",\"height\":\"15\",\"x\":\"5\",\"y\":\"0\",\"rx\":\"4\"}})]),_vm._v(\" \"),_c('work-item-notes-loading')],1),_vm._v(\" \"),_c('aside',{staticClass:\"work-item-overview-right-sidebar gl-hidden md:!gl-block\",attrs:{\"data-testid\":\"work-item-attributes-mdup-loading\"}},[_c('div',{staticClass:\"work-item-attributes-wrapper\"},_vm._l((_vm.$options.loader.attributesRepeat),function(i){return _c('gl-skeleton-loader',{key:i,attrs:{\"width\":240,\"height\":50}},[_c('rect',{attrs:{\"width\":\"100\",\"x\":\"0\",\"y\":\"25\",\"height\":\"5\",\"rx\":\"4\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"width\":\"240\",\"x\":\"0\",\"y\":\"35\",\"height\":\"10\",\"rx\":\"4\"}})])}),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_loading.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.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_loading.vue?vue&type=script&lang=js\"","<script>\nimport { GlSkeletonLoader } from '@gitlab/ui';\nimport WorkItemNotesLoading from '~/work_items/components/notes/work_item_notes_loading.vue';\n\nexport default {\n  name: 'WorkItemLoading',\n  loader: {\n    descriptionRepeat: 2,\n    attributesRepeat: 6,\n  },\n  components: {\n    GlSkeletonLoader,\n    WorkItemNotesLoading,\n  },\n};\n</script>\n\n<template>\n  <div class=\"work-item-overview\" data-testid=\"work-item-two-column-loading\">\n    <section>\n      <gl-skeleton-loader :height=\"60\" :width=\"600\" data-testid=\"work-title-and-meta-loading\">\n        <!--- START work item title -->\n        <rect width=\"500\" height=\"20\" x=\"5\" y=\"0\" rx=\"4\" />\n        <!--- END work item title -->\n        <!--- START work item meta -->\n        <rect width=\"50\" height=\"15\" x=\"5\" y=\"30\" rx=\"6\" />\n        <rect width=\"150\" height=\"5\" x=\"60\" y=\"35\" rx=\"2\" />\n        <!--- END work item meta -->\n      </gl-skeleton-loader>\n\n      <!--- START work item description -->\n      <div data-testid=\"work-item-description-loading\">\n        <gl-skeleton-loader\n          v-for=\"i in $options.loader.descriptionRepeat\"\n          :key=\"i\"\n          :width=\"600\"\n          :height=\"20\"\n        >\n          <rect width=\"500\" x=\"5\" y=\"0\" height=\"5\" rx=\"2\" />\n          <rect width=\"595\" x=\"5\" y=\"10\" height=\"5\" rx=\"2\" />\n        </gl-skeleton-loader>\n\n        <gl-skeleton-loader :width=\"600\" :height=\"20\">\n          <rect width=\"300\" x=\"5\" y=\"0\" height=\"5\" rx=\"2\" />\n        </gl-skeleton-loader>\n\n        <gl-skeleton-loader :width=\"600\" :height=\"20\">\n          <rect width=\"500\" x=\"5\" y=\"0\" height=\"5\" rx=\"2\" />\n          <rect width=\"595\" x=\"5\" y=\"10\" height=\"5\" rx=\"2\" />\n        </gl-skeleton-loader>\n\n        <gl-skeleton-loader :width=\"600\" :height=\"20\">\n          <rect width=\"300\" x=\"5\" y=\"0\" height=\"5\" rx=\"2\" />\n        </gl-skeleton-loader>\n      </div>\n      <!--- END work item description -->\n\n      <!--- START work item attributes wrapper small/xs screen -->\n      <div\n        class=\"work-item-attributes-wrapper md:!gl-hidden\"\n        data-testid=\"work-item-attributes-xssm-loading\"\n      >\n        <gl-skeleton-loader\n          v-for=\"i in $options.loader.attributesRepeat\"\n          :key=\"i\"\n          :width=\"240\"\n          :height=\"20\"\n        >\n          <rect width=\"50\" x=\"2\" y=\"0\" height=\"2\" rx=\"1\" />\n          <rect width=\"100\" x=\"2\" y=\"5\" height=\"4\" rx=\"1\" />\n        </gl-skeleton-loader>\n      </div>\n      <!--- END work item attributes wrapper small/xs screen -->\n\n      <!--- START work item notes activity placeholder -->\n      <gl-skeleton-loader\n        :height=\"30\"\n        :width=\"600\"\n        data-testid=\"work-item-activity-placeholder-loading\"\n      >\n        <rect width=\"100\" height=\"15\" x=\"5\" y=\"0\" rx=\"4\" />\n      </gl-skeleton-loader>\n      <!--- END work item notes activity placeholder -->\n\n      <!--- START work item notes -->\n      <work-item-notes-loading />\n      <!--- END work item notes -->\n    </section>\n\n    <!--- START work item attributes wrapper md/lg screens -->\n    <aside\n      class=\"work-item-overview-right-sidebar gl-hidden md:!gl-block\"\n      data-testid=\"work-item-attributes-mdup-loading\"\n    >\n      <div class=\"work-item-attributes-wrapper\">\n        <gl-skeleton-loader\n          v-for=\"i in $options.loader.attributesRepeat\"\n          :key=\"i\"\n          :width=\"240\"\n          :height=\"50\"\n        >\n          <rect width=\"100\" x=\"0\" y=\"25\" height=\"5\" rx=\"4\" />\n          <rect width=\"240\" x=\"0\" y=\"35\" height=\"10\" rx=\"4\" />\n        </gl-skeleton-loader>\n      </div>\n    </aside>\n    <!--- END work item attributes wrapper md/lg screens -->\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_loading.vue?vue&type=template&id=0f41f161\"\nimport script from \"./work_item_loading.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_loading.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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 * 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","import { makeModelMixin } from '../utils/model';\n\nconst {\n  mixin,\n  props,\n  prop,\n  event\n} = makeModelMixin('value');\n\nexport { event as MODEL_EVENT_NAME, prop as MODEL_PROP_NAME, mixin as modelMixin, props };\n","import { extend } from '../../../vue';\nimport { PROP_TYPE_STRING } from '../../../constants/props';\nimport { get } from '../../../utils/get';\nimport { isPlainObject, isNull, isUndefined } from '../../../utils/inspect';\nimport { sortKeys } from '../../../utils/object';\nimport { makePropsConfigurable, makeProp } from '../../../utils/props';\nimport { props as props$1, formOptionsMixin } from '../../../mixins/form-options';\n\n// --- Props ---\n\nconst props = makePropsConfigurable(sortKeys({\n  ...props$1,\n  labelField: makeProp(PROP_TYPE_STRING, 'label'),\n  optionsField: makeProp(PROP_TYPE_STRING, 'options')\n}), 'formOptions');\n\n// --- Mixin ---\n\n// @vue/component\nconst optionsMixin = extend({\n  mixins: [formOptionsMixin],\n  props,\n  methods: {\n    normalizeOption(option) {\n      let key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n      // When the option is an object, normalize it\n      if (isPlainObject(option)) {\n        const value = get(option, this.valueField);\n        const text = get(option, this.textField);\n        const options = get(option, this.optionsField, null);\n        // When it has options, create an `<optgroup>` object\n        if (!isNull(options)) {\n          return {\n            label: String(get(option, this.labelField) || text),\n            options: this.normalizeOptions(options)\n          };\n        }\n        // Otherwise create an `<option>` object\n        return {\n          value: isUndefined(value) ? key || text : value,\n          text: String(isUndefined(text) ? key : text),\n          html: get(option, this.htmlField),\n          disabled: Boolean(get(option, this.disabledField))\n        };\n      }\n      // Otherwise create an `<option>` object from the given value\n      return {\n        value: key || option,\n        text: String(option),\n        disabled: false\n      };\n    }\n  }\n});\n\nexport { optionsMixin, props };\n","import { extend, mergeData } from '../../vue';\nimport { NAME_FORM_SELECT_OPTION } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_ANY } from '../../constants/props';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n  disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n  value: makeProp(PROP_TYPE_ANY, undefined, true) // Required\n}, NAME_FORM_SELECT_OPTION);\n\n// --- Main component ---\n\n// @vue/component\nconst BFormSelectOption = /*#__PURE__*/extend({\n  name: NAME_FORM_SELECT_OPTION,\n  functional: true,\n  props,\n  render(h, _ref) {\n    let {\n      props,\n      data,\n      children\n    } = _ref;\n    const {\n      value,\n      disabled\n    } = props;\n    return h('option', mergeData(data, {\n      attrs: {\n        disabled\n      },\n      domProps: {\n        value\n      }\n    }), children);\n  }\n});\n\nexport { BFormSelectOption, props };\n","import { extend } from '../../vue';\nimport { NAME_FORM_SELECT_OPTION_GROUP } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_FIRST } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { props as props$1, formOptionsMixin } from '../../mixins/form-options';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BFormSelectOption } from './form-select-option';\n\n// --- Props ---\n\nconst props = makePropsConfigurable(sortKeys({\n  ...props$1,\n  label: makeProp(PROP_TYPE_STRING, undefined, true) // Required\n}), NAME_FORM_SELECT_OPTION_GROUP);\n\n// --- Main component ---\n\n// @vue/component\nconst BFormSelectOptionGroup = /*#__PURE__*/extend({\n  name: NAME_FORM_SELECT_OPTION_GROUP,\n  mixins: [normalizeSlotMixin, formOptionsMixin],\n  props,\n  render(h) {\n    const {\n      label\n    } = this;\n    const $options = this.formOptions.map((option, index) => {\n      const {\n        value,\n        text,\n        html,\n        disabled\n      } = option;\n      return h(BFormSelectOption, {\n        attrs: {\n          value,\n          disabled\n        },\n        domProps: htmlOrText(html, text),\n        key: `option_${index}`\n      });\n    });\n    return h('optgroup', {\n      attrs: {\n        label\n      }\n    }, [this.normalizeSlot(SLOT_NAME_FIRST), $options, this.normalizeSlot()]);\n  }\n});\n\nexport { BFormSelectOptionGroup, props };\n","import { extend } from '../../vue';\nimport { NAME_FORM_SELECT } from '../../constants/components';\nimport { EVENT_NAME_CHANGE } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER } from '../../constants/props';\nimport { SLOT_NAME_FIRST } from '../../constants/slots';\nimport { from } from '../../utils/array';\nimport { attemptFocus, attemptBlur } from '../../utils/dom';\nimport { htmlOrText } from '../../utils/html';\nimport { isArray } from '../../utils/inspect';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { props as props$3, formControlMixin } from '../../mixins/form-control';\nimport { props as props$4, formCustomMixin } from '../../mixins/form-custom';\nimport { props as props$5, formSizeMixin } from '../../mixins/form-size';\nimport { props as props$6, formStateMixin } from '../../mixins/form-state';\nimport { props as props$1, idMixin } from '../../mixins/id';\nimport { props as props$2, modelMixin, MODEL_PROP_NAME, MODEL_EVENT_NAME } from '../../mixins/model';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { optionsMixin } from './helpers/mixin-options';\nimport { BFormSelectOption } from './form-select-option';\nimport { BFormSelectOptionGroup } from './form-select-option-group';\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  ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n  multiple: makeProp(PROP_TYPE_BOOLEAN, false),\n  // Browsers default size to `0`, which shows 4 rows in most browsers in multiple mode\n  // Size of `1` can bork out Firefox\n  selectSize: makeProp(PROP_TYPE_NUMBER, 0)\n}), NAME_FORM_SELECT);\n\n// --- Main component ---\n\n// @vue/component\nconst BFormSelect = /*#__PURE__*/extend({\n  name: NAME_FORM_SELECT,\n  mixins: [idMixin, modelMixin, formControlMixin, formSizeMixin, formStateMixin, formCustomMixin, optionsMixin, normalizeSlotMixin],\n  props,\n  data() {\n    return {\n      localValue: this[MODEL_PROP_NAME]\n    };\n  },\n  computed: {\n    computedSelectSize() {\n      // Custom selects with a size of zero causes the arrows to be hidden,\n      // so dont render the size attribute in this case\n      return !this.plain && this.selectSize === 0 ? null : this.selectSize;\n    },\n    inputClass() {\n      return [this.plain ? 'form-control' : 'custom-select', this.size && this.plain ? `form-control-${this.size}` : null, this.size && !this.plain ? `custom-select-${this.size}` : null, this.stateClass];\n    }\n  },\n  watch: {\n    value(newValue) {\n      this.localValue = newValue;\n    },\n    localValue() {\n      this.$emit(MODEL_EVENT_NAME, this.localValue);\n    }\n  },\n  methods: {\n    focus() {\n      attemptFocus(this.$refs.input);\n    },\n    blur() {\n      attemptBlur(this.$refs.input);\n    },\n    onChange(event) {\n      const {\n        target\n      } = event;\n      const selectedValue = from(target.options).filter(o => o.selected).map(o => '_value' in o ? o._value : o.value);\n      this.localValue = target.multiple ? selectedValue : selectedValue[0];\n      this.$nextTick(() => {\n        this.$emit(EVENT_NAME_CHANGE, this.localValue);\n      });\n    }\n  },\n  render(h) {\n    const {\n      name,\n      disabled,\n      required,\n      computedSelectSize: size,\n      localValue: value\n    } = this;\n    const $options = this.formOptions.map((option, index) => {\n      const {\n        value,\n        label,\n        options,\n        disabled\n      } = option;\n      const key = `option_${index}`;\n      return isArray(options) ? h(BFormSelectOptionGroup, {\n        props: {\n          label,\n          options\n        },\n        key\n      }) : h(BFormSelectOption, {\n        props: {\n          value,\n          disabled\n        },\n        domProps: htmlOrText(option.html, option.text),\n        key\n      });\n    });\n    return h('select', {\n      class: this.inputClass,\n      attrs: {\n        id: this.safeId(),\n        name,\n        form: this.form || null,\n        multiple: this.multiple || null,\n        size,\n        disabled,\n        required,\n        'aria-required': required ? 'true' : null,\n        'aria-invalid': this.computedAriaInvalid\n      },\n      on: {\n        change: this.onChange\n      },\n      directives: [{\n        name: 'model',\n        value\n      }],\n      ref: 'input'\n    }, [this.normalizeSlot(SLOT_NAME_FIRST), $options, this.normalizeSlot()]);\n  }\n});\n\nexport { BFormSelect, props };\n","import isObject from 'lodash/isObject';\nimport { BFormSelect } from '../../../../vendor/bootstrap-vue/src/components/form-select/form-select';\nimport { formInputWidths } from '../../../../utils/constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n  name: 'GlFormSelect',\n  components: {\n    BFormSelect\n  },\n  inheritAttrs: false,\n  props: {\n    /**\n     * Maximum width of the Select\n     */\n    width: {\n      type: [String, Object],\n      required: false,\n      default: null,\n      validator: value => {\n        const widths = isObject(value) ? Object.values(value) : [value];\n        return widths.every(width => Object.values(formInputWidths).includes(width));\n      }\n    },\n    selectClass: {\n      type: [String, Object, Array],\n      required: false,\n      default: ''\n    }\n  },\n  computed: {\n    cssClasses() {\n      if (this.width === null) {\n        return [];\n      }\n      if (isObject(this.width)) {\n        const {\n          default: defaultWidth,\n          ...nonDefaultWidths\n        } = this.width;\n        return [\n        // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility\n        ...(defaultWidth ? [`gl-form-select-${defaultWidth}`] : []), ...Object.entries(nonDefaultWidths).map(\n        // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility\n        _ref => {\n          let [breakpoint, width] = _ref;\n          return `gl-${breakpoint}-form-select-${width}`;\n        })];\n      }\n\n      // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility\n      return [`gl-form-select-${this.width}`];\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',{staticClass:\"gl-form-select-wrapper\",class:_vm.cssClasses},[_c('b-form-select',_vm._g(_vm._b({staticClass:\"gl-form-select\",class:_vm.selectClass,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-form-select',_vm.$attrs,false),_vm.$listeners))],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('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","\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","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","\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","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","// These utility methods come from the Gitlab repo; app/assets/javascripts/lib/utils/datetime_utility.js\n\n/**\n * This method allows you to create new Date instance from existing\n * date instance without keeping the reference.\n *\n * @param {Date} date\n */\nconst newDate = date => date instanceof Date ? new Date(date.getTime()) : new Date();\n\n/**\n * Computes the difference between 2 date objects.\n *\n * @param {Date} a the start date\n * @param {Date} b the end date\n * @example\n * // returns 5\n * getDayDifference(new Date('2020-08-10'), new Date('2020-08-15'));\n * @returns {Number} Number of days between the 2 dates\n */\nconst getDayDifference = (a, b) => {\n  const millisecondsPerDay = 1000 * 60 * 60 * 24;\n  const date1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());\n  const date2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate());\n  return Math.floor((date2 - date1) / millisecondsPerDay);\n};\n\n/**\n * Subtracts a given number of days from a given date and returns the new date.\n *\n * @param {Date} date the date that we will substract days from\n * @param {Number} daysInPast number of days that are subtracted from a given date\n * @example\n * // returns Mon Aug 10 2020 00:00:00\n * getDateInPast(new Date('2020-08-15'), 5);\n * @returns {Date} Date in past as Date object\n */\nconst getDateInPast = (date, daysInPast) => new Date(newDate(date).setDate(date.getDate() - daysInPast));\n\n/**\n * Adds a given number of days to a given date and returns the new date.\n *\n * @param {Date} date the date that we will add days to\n * @param {Number} daysInFuture number of days that are added to a given date\n * @example\n * // returns Mon Aug 15 2020 00:00:00\n * getDateInFuture(new Date('2020-08-10'), 5);\n * @returns {Date} Date in future as Date object\n */\nconst getDateInFuture = (date, daysInFuture) => new Date(newDate(date).setDate(date.getDate() + daysInFuture));\n\n/**\n * Are the given two dates equal\n *\n * @param {Date} date1\n * @param {Date} date2\n * @returns {Boolean}\n */\nconst areDatesEqual = (date1, date2) => Boolean(date1 && date2 && new Date(date1).getTime() === new Date(date2).getTime());\n\nexport { areDatesEqual, getDateInFuture, getDateInPast, getDayDifference, newDate };\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('work-item-sidebar-dropdown-widget',{attrs:{\"dropdown-label\":_vm.$options.i18n.milestone,\"can-update\":_vm.canUpdate,\"dropdown-name\":\"milestone\",\"loading\":_vm.isLoadingMilestones,\"list-items\":_vm.milestonesList,\"item-value\":_vm.localMilestoneId,\"update-in-progress\":_vm.updateInProgress,\"toggle-dropdown-text\":_vm.dropdownText,\"header-text\":_vm.__('Select milestone'),\"reset-button-label\":_vm.__('Clear'),\"data-testid\":\"work-item-milestone\"},on:{\"dropdownShown\":_vm.onDropdownShown,\"searchStarted\":_vm.search,\"updateValue\":_vm.updateMilestone},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('div',[_vm._v(_vm._s(item.text)+_vm._s(_vm.itemExpiredText(item)))]),_vm._v(\" \"),(item.title)?_c('div',[_vm._v(_vm._s(item.title))]):_vm._e()]}},{key:\"readonly\",fn:function(){return [_c('gl-link',{staticClass:\"!gl-text-default\",attrs:{\"href\":_vm.localMilestone.webPath}},[_vm._v(\"\\n      \"+_vm._s(_vm.localMilestone.title)+_vm._s(_vm.expired)+\"\\n    \")])]},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!./work_item_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!./work_item_milestone.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink } from '@gitlab/ui';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport Tracking from '~/tracking';\nimport { newWorkItemId } from '~/work_items/utils';\nimport { s__, __ } from '~/locale';\nimport { MILESTONE_STATE } from '~/sidebar/constants';\nimport WorkItemSidebarDropdownWidget from '~/work_items/components/shared/work_item_sidebar_dropdown_widget.vue';\nimport projectMilestonesQuery from '~/sidebar/queries/project_milestones.query.graphql';\nimport groupMilestonesQuery from '~/sidebar/queries/group_milestones.query.graphql';\nimport updateWorkItemMutation from '~/work_items/graphql/update_work_item.mutation.graphql';\nimport updateNewWorkItemMutation from '~/work_items/graphql/update_new_work_item.mutation.graphql';\nimport {\n  I18N_WORK_ITEM_ERROR_UPDATING,\n  sprintfWorkItem,\n  TRACKING_CATEGORY_SHOW,\n} from '../constants';\n\nexport default {\n  i18n: {\n    milestone: s__('WorkItem|Milestone'),\n    none: s__('WorkItem|None'),\n    noMilestone: s__('WorkItem|No milestone'),\n    milestoneFetchError: s__(\n      'WorkItem|Something went wrong while fetching milestones. Please try again.',\n    ),\n    expiredText: __('(expired)'),\n  },\n  components: {\n    WorkItemSidebarDropdownWidget,\n    GlLink,\n  },\n  mixins: [Tracking.mixin()],\n  props: {\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    isGroup: {\n      type: Boolean,\n      required: true,\n    },\n    workItemMilestone: {\n      type: Object,\n      required: false,\n      default: () => ({}),\n    },\n    workItemType: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    canUpdate: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      searchTerm: '',\n      shouldFetch: false,\n      updateInProgress: false,\n      milestones: [],\n      localMilestone: this.workItemMilestone,\n    };\n  },\n  computed: {\n    tracking() {\n      return {\n        category: TRACKING_CATEGORY_SHOW,\n        label: 'item_milestone',\n        property: `type_${this.workItemType}`,\n      };\n    },\n    emptyPlaceholder() {\n      return this.canUpdate ? this.$options.i18n.noMilestone : this.$options.i18n.none;\n    },\n    expired() {\n      return this.localMilestone?.expired ? ` ${this.$options.i18n.expiredText}` : '';\n    },\n    dropdownText() {\n      return this.localMilestone?.title\n        ? `${this.localMilestone?.title}${this.expired}`\n        : this.emptyPlaceholder;\n    },\n    isLoadingMilestones() {\n      return this.$apollo.queries.milestones.loading;\n    },\n    milestonesList() {\n      return this.milestones.map(({ id, title, expired }) => ({\n        value: id,\n        text: title,\n        expired,\n      }));\n    },\n    localMilestoneId() {\n      return this.localMilestone?.id;\n    },\n  },\n  watch: {\n    workItemMilestone(newVal) {\n      this.localMilestone = newVal;\n      this.selectedMilestoneId = newVal?.id;\n    },\n  },\n  apollo: {\n    milestones: {\n      query() {\n        return this.isGroup ? groupMilestonesQuery : projectMilestonesQuery;\n      },\n      variables() {\n        return {\n          fullPath: this.fullPath,\n          title: this.searchTerm,\n          state: MILESTONE_STATE.ACTIVE,\n          first: 20,\n        };\n      },\n      skip() {\n        return !this.shouldFetch;\n      },\n      update(data) {\n        return data?.workspace?.attributes?.nodes || [];\n      },\n      error() {\n        this.$emit('error', this.i18n.milestoneFetchError);\n      },\n    },\n  },\n  methods: {\n    onDropdownShown() {\n      this.searchTerm = '';\n      this.shouldFetch = true;\n    },\n    search(searchTerm) {\n      this.searchTerm = searchTerm;\n      this.shouldFetch = true;\n    },\n    itemExpiredText(item) {\n      return item.expired ? ` ${this.$options.i18n.expiredText}` : '';\n    },\n    updateMilestone(selectedMilestoneId) {\n      if (this.localMilestone?.id === selectedMilestoneId) {\n        return;\n      }\n\n      this.localMilestone = selectedMilestoneId\n        ? this.milestones.find(({ id }) => id === selectedMilestoneId)\n        : null;\n\n      this.track('updated_milestone');\n      this.updateInProgress = true;\n\n      if (this.workItemId === newWorkItemId(this.workItemType)) {\n        this.$apollo\n          .mutate({\n            mutation: updateNewWorkItemMutation,\n            variables: {\n              input: {\n                fullPath: this.fullPath,\n                milestone: this.localMilestone\n                  ? {\n                      ...this.localMilestone,\n                      webPath: this.localMilestone.webUrl,\n                      startDate: '',\n                    }\n                  : null,\n                workItemType: this.workItemType,\n              },\n            },\n          })\n          .catch((error) => {\n            Sentry.captureException(error);\n          })\n          .finally(() => {\n            this.updateInProgress = false;\n            this.searchTerm = '';\n            this.shouldFetch = false;\n          });\n        return;\n      }\n\n      this.$apollo\n        .mutate({\n          mutation: updateWorkItemMutation,\n          variables: {\n            input: {\n              id: this.workItemId,\n              milestoneWidget: {\n                milestoneId: selectedMilestoneId,\n              },\n            },\n          },\n        })\n        .then(({ data }) => {\n          if (data.workItemUpdate.errors.length) {\n            throw new Error(data.workItemUpdate.errors.join('\\n'));\n          }\n          this.$emit('milestoneUpdated', selectedMilestoneId);\n        })\n        .catch((error) => {\n          this.localMilestone = this.workItemMilestone;\n          const msg = sprintfWorkItem(I18N_WORK_ITEM_ERROR_UPDATING, this.workItemType);\n          this.$emit('error', msg);\n          Sentry.captureException(error);\n        })\n        .finally(() => {\n          this.updateInProgress = false;\n          this.searchTerm = '';\n          this.shouldFetch = false;\n        });\n    },\n  },\n};\n</script>\n\n<template>\n  <work-item-sidebar-dropdown-widget\n    :dropdown-label=\"$options.i18n.milestone\"\n    :can-update=\"canUpdate\"\n    dropdown-name=\"milestone\"\n    :loading=\"isLoadingMilestones\"\n    :list-items=\"milestonesList\"\n    :item-value=\"localMilestoneId\"\n    :update-in-progress=\"updateInProgress\"\n    :toggle-dropdown-text=\"dropdownText\"\n    :header-text=\"__('Select milestone')\"\n    :reset-button-label=\"__('Clear')\"\n    data-testid=\"work-item-milestone\"\n    @dropdownShown=\"onDropdownShown\"\n    @searchStarted=\"search\"\n    @updateValue=\"updateMilestone\"\n  >\n    <template #list-item=\"{ item }\">\n      <div>{{ item.text }}{{ itemExpiredText(item) }}</div>\n      <div v-if=\"item.title\">{{ item.title }}</div>\n    </template>\n    <template #readonly>\n      <gl-link class=\"!gl-text-default\" :href=\"localMilestone.webPath\">\n        {{ localMilestone.title }}{{ expired }}\n      </gl-link>\n    </template>\n  </work-item-sidebar-dropdown-widget>\n</template>\n","import { render, staticRenderFns } from \"./work_item_milestone.vue?vue&type=template&id=57864c37\"\nimport script from \"./work_item_milestone.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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","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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"projectWorkItemAwardEmojis\"},\"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\":\"after\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pageSize\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"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\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetAwardEmoji\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"awardEmoji\"},\"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\":\"after\"}}}],\"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\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"AwardEmojiFragment\"},\"directives\":[]}]}}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":625}};\n    doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/page_info.fragment.graphql\\\"\\n#import \\\"~/work_items/graphql/award_emoji.fragment.graphql\\\"\\n\\nquery projectWorkItemAwardEmojis($fullPath: ID!, $iid: String!, $after: String, $pageSize: Int) {\\n  workspace: namespace(fullPath: $fullPath) {\\n    id\\n    workItem(iid: $iid) {\\n      id\\n      iid\\n      widgets {\\n        ... on WorkItemWidgetAwardEmoji {\\n          type\\n          awardEmoji(first: $pageSize, after: $after) {\\n            pageInfo {\\n              ...PageInfo\\n            }\\n            nodes {\\n              ...AwardEmojiFragment\\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/page_info.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"~/work_items/graphql/award_emoji.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[\"projectWorkItemAwardEmojis\"] = oneQuery(doc, \"projectWorkItemAwardEmojis\");\n        \n","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\":\"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","// `e.keyCode` is deprecated, these values should be migrated\n// See: https://gitlab.com/gitlab-org/gitlab/-/issues/216102\n\nexport const BACKSPACE_KEY_CODE = 8;\nexport const TAB_KEY_CODE = 9;\nexport const ENTER_KEY_CODE = 13;\nexport const ESC_KEY_CODE = 27;\nexport const UP_KEY_CODE = 38;\nexport const DOWN_KEY_CODE = 40;\nexport const DELETE_KEY_CODE = 46;\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","\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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"createWorkItemNote\"},\"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\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"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\":\"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\":\"WorkItemNote\"},\"directives\":[]}]}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"quickActionsStatus\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errorMessages\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"messages\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":396}};\n    doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/work_items/graphql/notes/work_item_note.fragment.graphql\\\"\\n\\nmutation createWorkItemNote($input: CreateNoteInput!) {\\n  createNote(input: $input) {\\n    note {\\n      id\\n      discussion {\\n        id\\n        notes {\\n          nodes {\\n            ...WorkItemNote\\n          }\\n        }\\n      }\\n    }\\n    quickActionsStatus {\\n      errorMessages\\n      messages\\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/work_items/graphql/notes/work_item_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[\"createWorkItemNote\"] = oneQuery(doc, \"createWorkItemNote\");\n        \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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemRelatedItem\"},\"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\":\"reference\"},\"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\":140}};\n    doc.loc.source = {\"body\":\"query workItemRelatedItem($id: WorkItemID!) {\\n  workItem(id: $id) {\\n    id\\n    reference\\n    workItemType {\\n      id\\n      name\\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[\"workItemRelatedItem\"] = oneQuery(doc, \"workItemRelatedItem\");\n        \n","'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","/**\n * Map<HTMLElement, { callback: Function, eventTypes: Array<string> }>\n */\nconst callbacks = new Map();\nconst click = 'click';\nconst focusin = 'focusin';\nconst supportedEventTypes = [click, focusin];\nconst defaultEventType = click;\n\n/**\n * A Set to keep track of currently active event types.\n * This ensures that event listeners are only added for the event types that are in use.\n *\n * @type {Set<string>}\n */\nconst activeEventTypes = new Set();\nlet lastMousedown = null;\nconst globalListener = event => {\n  callbacks.forEach((_ref, element) => {\n    let {\n      callback,\n      eventTypes\n    } = _ref;\n    const originalEvent = event.type === click ? lastMousedown || event : event;\n    if (\n    // Ignore events that aren't targeted outside the element\n    element.contains(originalEvent.target) ||\n    // Ignore events that aren't the specified types for this element\n    !eventTypes.includes(event.type)) {\n      return;\n    }\n    try {\n      callback(event);\n    } catch (e) {\n      if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line no-console\n        console.error(e);\n      }\n    }\n  });\n  if (event.type === click) {\n    lastMousedown = null;\n  }\n};\n\n// We need to listen for mouse events because text selection fires click event only when selection ends.\n// This means that the click event target could differ from the element where it originally started.\n// As example: if we use mouse events we could guarantee that selecting text within a dropdown won't close it.\nconst onMousedown = event => {\n  lastMousedown = event;\n};\nconst startListening = eventTypes => {\n  eventTypes.forEach(eventType => {\n    if (!activeEventTypes.has(eventType)) {\n      // Listening to mousedown events, ensures that a text selection doesn't trigger the\n      // GlOutsideDirective 'click' callback if the selection started within the target element.\n      if (eventType === click) {\n        document.addEventListener('mousedown', onMousedown);\n      }\n\n      // Added { capture: true } to all event types to prevent the behavior discussed in https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/1686#note_412545027\n      // Ensures the event listener handles the event in the capturing phase, avoiding issues encountered previously.\n      // Cannot be tested with Jest or Cypress, but can be tested with Playwright in the future: https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/4272#note_1947425384\n      document.addEventListener(eventType, globalListener, {\n        capture: true\n      });\n      activeEventTypes.add(eventType);\n    }\n  });\n  lastMousedown = null;\n};\nconst stopListening = eventTypesToUnbind => {\n  eventTypesToUnbind.forEach(eventType => {\n    if (activeEventTypes.has(eventType)) {\n      if ([...callbacks.values()].every(_ref2 => {\n        let {\n          eventTypes\n        } = _ref2;\n        return !eventTypes.includes(eventType);\n      })) {\n        document.removeEventListener(eventType, globalListener);\n        activeEventTypes.delete(eventType);\n      }\n    }\n  });\n  if (eventTypesToUnbind.includes(click) && !activeEventTypes.has(click)) {\n    document.removeEventListener('mousedown', onMousedown);\n  }\n};\nfunction parseBinding(_ref3) {\n  let {\n    arg,\n    value,\n    modifiers\n  } = _ref3;\n  const modifiersList = Object.keys(modifiers);\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof value !== 'function') {\n      throw new Error(`[GlOutsideDirective] Value must be a function; got ${typeof value}!`);\n    }\n    if (typeof arg !== 'undefined') {\n      throw new Error(`[GlOutsideDirective] Arguments are not supported. Consider using modifiers instead.`);\n    }\n    const unsupportedModifiers = modifiersList.filter(modifier => !supportedEventTypes.includes(modifier));\n    if (unsupportedModifiers.length > 0) {\n      throw new Error(`[GlOutsideDirective] Cannot bind ${unsupportedModifiers.join(', ')} events; supported event types are: ${supportedEventTypes.join(', ')}`);\n    }\n  }\n  return {\n    callback: value,\n    eventTypes: modifiersList.length > 0 ? modifiersList : [defaultEventType]\n  };\n}\nconst bind = (el, bindings) => {\n  const {\n    callback,\n    eventTypes\n  } = parseBinding(bindings);\n  if (callbacks.has(el)) {\n    // This element is already bound. This is possible if two components, which\n    // share the same root node, (i.e., one is a higher-order component\n    // wrapping another) _both_ have this directive applied.\n    //\n    // Because Vue binds directives in the direction towards the root, only the\n    // deepest instance of this directive will be bound.\n    //\n    // A future iteration may add support for binding all instances on a given\n    // element.\n    return;\n  }\n  callbacks.set(el, {\n    callback,\n    eventTypes\n  });\n  startListening(eventTypes);\n};\nconst unbind = el => {\n  const entry = callbacks.get(el);\n  if (entry) {\n    callbacks.delete(el);\n    stopListening(entry.eventTypes);\n  }\n};\nconst OutsideDirective = {\n  bind,\n  unbind\n};\n\nexport { OutsideDirective };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('local-storage-sync',{attrs:{\"storage-key\":_vm.localStorageKey,\"value\":_vm.selectedProjectForLocalStorage},on:{\"input\":_vm.initFromLocalStorage}},[_c('gl-dropdown',{ref:\"dropdown\",staticClass:\"!gl-flex !gl-w-auto\",attrs:{\"right\":\"\",\"split\":\"\",\"split-href\":_vm.dropdownHref,\"text\":_vm.dropdownText,\"toggle-text\":_vm.$options.i18n.toggleButtonLabel,\"variant\":\"confirm\",\"data-testid\":\"new-resource-dropdown\",\"toggle-class\":\"!gl-m-0 !gl-w-auto !gl-grow-0\"},on:{\"click\":_vm.handleDropdownClick,\"shown\":_vm.handleDropdownShown}},[_c('gl-search-box-by-type',{ref:\"search\",model:{value:(_vm.search),callback:function ($$v) {_vm.search=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"search\"}}),_vm._v(\" \"),(_vm.$apollo.queries.projects.loading)?_c('gl-loading-icon'):[_vm._l((_vm.projects),function(project){return _c('gl-dropdown-item',{key:project.id,on:{\"click\":function($event){return _vm.selectProject(project)}}},[_vm._v(\"\\n        \"+_vm._s(project.nameWithNamespace || project.name)+\"\\n      \")])}),_vm._v(\" \"),(_vm.showNoSearchResultsText)?_c('gl-dropdown-text',[_vm._v(\"\\n        \"+_vm._s(_vm.$options.i18n.noMatchesFound)+\"\\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!./new_resource_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_resource_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport {\n  GlDropdown,\n  GlDropdownItem,\n  GlDropdownText,\n  GlLoadingIcon,\n  GlSearchBoxByType,\n} from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { DASH_SCOPE, joinPaths } from '~/lib/utils/url_utility';\nimport { __, sprintf } from '~/locale';\nimport { DEBOUNCE_DELAY } from '~/vue_shared/components/filtered_search_bar/constants';\nimport AccessorUtilities from '~/lib/utils/accessor';\nimport LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';\nimport searchUserProjectsWithIssuesEnabled from './graphql/search_user_projects_with_issues_enabled.query.graphql';\nimport { RESOURCE_TYPE_ISSUE, RESOURCE_TYPES, RESOURCE_OPTIONS } from './constants';\n\nexport default {\n  i18n: {\n    noMatchesFound: __('No matches found'),\n    toggleButtonLabel: __('Toggle project select'),\n  },\n  components: {\n    GlDropdown,\n    GlDropdownItem,\n    GlDropdownText,\n    GlLoadingIcon,\n    GlSearchBoxByType,\n    LocalStorageSync,\n  },\n  props: {\n    resourceType: {\n      type: String,\n      required: false,\n      default: RESOURCE_TYPE_ISSUE,\n      validator: (value) => RESOURCE_TYPES.includes(value),\n    },\n    query: {\n      type: Object,\n      required: false,\n      default: () => searchUserProjectsWithIssuesEnabled,\n    },\n    groupId: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    queryVariables: {\n      type: Object,\n      required: false,\n      default: () => ({}),\n    },\n    extractProjects: {\n      type: Function,\n      required: false,\n      default: (data) => data?.projects?.nodes,\n    },\n    withLocalStorage: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      projects: [],\n      search: '',\n      selectedProject: {},\n      shouldSkipQuery: true,\n    };\n  },\n  apollo: {\n    projects: {\n      query() {\n        return this.query;\n      },\n      variables() {\n        return {\n          search: this.search,\n          ...this.queryVariables,\n        };\n      },\n      update(data) {\n        return this.extractProjects(data) || [];\n      },\n      error(error) {\n        createAlert({\n          message: __('An error occurred while loading projects.'),\n          captureError: true,\n          error,\n        });\n      },\n      skip() {\n        return this.shouldSkipQuery;\n      },\n      debounce: DEBOUNCE_DELAY,\n    },\n  },\n  computed: {\n    localStorageKey() {\n      return `group-${this.groupId}-new-${this.resourceType}-recent-project`;\n    },\n    resourceOptions() {\n      return RESOURCE_OPTIONS[this.resourceType];\n    },\n    defaultDropdownText() {\n      return sprintf(__('Select project to create %{type}'), { type: this.resourceOptions.label });\n    },\n    dropdownHref() {\n      return this.hasSelectedProject\n        ? joinPaths(this.selectedProject.webUrl, DASH_SCOPE, this.resourceOptions.path)\n        : undefined;\n    },\n    dropdownText() {\n      return this.hasSelectedProject\n        ? sprintf(__('New %{type} in %{project}'), {\n            type: this.resourceOptions.label,\n            project: this.selectedProject.name,\n          })\n        : this.defaultDropdownText;\n    },\n    hasSelectedProject() {\n      return this.selectedProject.webUrl;\n    },\n    showNoSearchResultsText() {\n      return !this.projects.length && this.search;\n    },\n    canUseLocalStorage() {\n      return this.withLocalStorage && AccessorUtilities.canUseLocalStorage();\n    },\n    selectedProjectForLocalStorage() {\n      const { webUrl, name } = this.selectedProject;\n\n      return { webUrl, name };\n    },\n  },\n  methods: {\n    handleDropdownClick() {\n      if (!this.dropdownHref) {\n        this.$refs.dropdown.show();\n      }\n    },\n    handleDropdownShown() {\n      if (this.shouldSkipQuery) {\n        this.shouldSkipQuery = false;\n      }\n      this.$refs.search.focusInput();\n    },\n    selectProject(project) {\n      this.selectedProject = project;\n    },\n    initFromLocalStorage(storedProject) {\n      // Historically, the selected project was saved with the URL as the `url` property, so we are\n      // falling back to that legacy property if `webUrl` is empty. This ensures that we support\n      // localStorage data that was persisted prior to this change.\n      let webUrl = storedProject.webUrl || storedProject.url;\n\n      // The select2 implementation used to include the resource path in the local storage. We\n      // need to clean this up so that we can then re-build a fresh URL in the computed prop.\n      webUrl = webUrl.endsWith(this.resourceOptions.path)\n        ? webUrl.slice(0, webUrl.length - this.resourceOptions.path.length)\n        : webUrl;\n      const dashSuffix = `${DASH_SCOPE}/`;\n      webUrl = webUrl.endsWith(dashSuffix)\n        ? webUrl.slice(0, webUrl.length - dashSuffix.length)\n        : webUrl;\n\n      this.selectedProject = { webUrl, name: storedProject.name };\n    },\n  },\n};\n</script>\n\n<template>\n  <local-storage-sync\n    :storage-key=\"localStorageKey\"\n    :value=\"selectedProjectForLocalStorage\"\n    @input=\"initFromLocalStorage\"\n  >\n    <gl-dropdown\n      ref=\"dropdown\"\n      right\n      split\n      :split-href=\"dropdownHref\"\n      :text=\"dropdownText\"\n      :toggle-text=\"$options.i18n.toggleButtonLabel\"\n      variant=\"confirm\"\n      data-testid=\"new-resource-dropdown\"\n      class=\"!gl-flex !gl-w-auto\"\n      toggle-class=\"!gl-m-0 !gl-w-auto !gl-grow-0\"\n      @click=\"handleDropdownClick\"\n      @shown=\"handleDropdownShown\"\n    >\n      <gl-search-box-by-type ref=\"search\" v-model.trim=\"search\" />\n      <gl-loading-icon v-if=\"$apollo.queries.projects.loading\" />\n      <template v-else>\n        <gl-dropdown-item\n          v-for=\"project of projects\"\n          :key=\"project.id\"\n          @click=\"selectProject(project)\"\n        >\n          {{ project.nameWithNamespace || project.name }}\n        </gl-dropdown-item>\n        <gl-dropdown-text v-if=\"showNoSearchResultsText\">\n          {{ $options.i18n.noMatchesFound }}\n        </gl-dropdown-text>\n      </template>\n    </gl-dropdown>\n  </local-storage-sync>\n</template>\n","import { render, staticRenderFns } from \"./new_resource_dropdown.vue?vue&type=template&id=93205c94\"\nimport script from \"./new_resource_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./new_resource_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    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 (_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 { 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","import { closest, getAttr, getById, select, matches } from '../../../utils/dom';\nimport { EVENT_FILTER } from './constants';\n\nconst TABLE_TAG_NAMES = ['TD', 'TH', 'TR'];\n\n// Returns `true` if we should ignore the click/double-click/keypress event\n// Avoids having the user need to use `@click.stop` on the form control\nconst filterEvent = event => {\n  // Exit early when we don't have a target element\n  if (!event || !event.target) {\n    /* istanbul ignore next */\n    return false;\n  }\n  const el = event.target;\n  // Exit early when element is disabled or a table element\n  if (el.disabled || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n    return false;\n  }\n  // Ignore the click when it was inside a dropdown menu\n  if (closest('.dropdown-menu', el)) {\n    return true;\n  }\n  const label = el.tagName === 'LABEL' ? el : closest('label', el);\n  // If the label's form control is not disabled then we don't propagate event\n  // Modern browsers have `label.control` that references the associated input, but IE 11\n  // does not have this property on the label element, so we resort to DOM lookups\n  if (label) {\n    const labelFor = getAttr(label, 'for');\n    const input = labelFor ? getById(labelFor) : select('input, select, textarea', label);\n    if (input && !input.disabled) {\n      return true;\n    }\n  }\n  // Otherwise check if the event target matches one of the selectors in the\n  // event filter (i.e. anchors, non disabled inputs, etc.)\n  // Return `true` if we should ignore the event\n  return matches(el, EVENT_FILTER);\n};\n\nexport { filterEvent };\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('work-item-sidebar-dropdown-widget',{attrs:{\"dropdown-label\":_vm.__('Parent'),\"can-update\":_vm.canUpdate,\"dropdown-name\":\"parent\",\"list-items\":_vm.workItems,\"loading\":_vm.isLoading,\"item-value\":_vm.localSelectedItem,\"header-text\":_vm.$options.i18n.assignParentLabel,\"update-in-progress\":_vm.updateInProgress,\"reset-button-label\":_vm.$options.i18n.unAssign,\"toggle-dropdown-text\":_vm.listboxText,\"data-testid\":\"work-item-parent\"},on:{\"dropdownShown\":_vm.onListboxShown,\"dropdownHidden\":_vm.onListboxHide,\"searchStarted\":_vm.searchWorkItems,\"updateValue\":_vm.handleItemClick,\"reset\":_vm.unassignParent},scopedSlots:_vm._u([{key:\"readonly\",fn:function(){return [(_vm.localSelectedItem)?_c('gl-link',{staticClass:\"gl-inline-block gl-max-w-full gl-overflow-hidden gl-text-ellipsis gl-whitespace-nowrap gl-align-top gl-text-default\",attrs:{\"data-testid\":\"work-item-parent-link\",\"href\":_vm.parentWebUrl}},[_vm._v(_vm._s(_vm.listboxText))]):_vm._e()]},proxy:true},(_vm.showCustomNoneValue)?{key:\"none\",fn:function(){return [_c('span',{staticClass:\"gl-cursor-help\",attrs:{\"id\":\"parent-not-available\"}},[_c('gl-popover',{attrs:{\"triggers\":\"hover focus\",\"placement\":\"bottom\",\"target\":'parent-not-available'}},[_c('span',[_vm._v(_vm._s(_vm.s__(`WorkItem|You don't have the necessary permission to view the ancestor.`)))])]),_vm._v(\" \"),_c('gl-icon',{staticClass:\"gl-mr-2\",attrs:{\"name\":\"eye-slash\",\"variant\":\"subtle\"}}),_vm._v(\" \"),_c('span',{attrs:{\"data-testid\":\"ancestor-not-available\"}},[_vm._v(_vm._s(_vm.s__('WorkItem|Ancestor not available')))])],1)]},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!./work_item_parent.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.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_parent.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink, GlIcon, GlPopover } from '@gitlab/ui';\n\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { s__ } from '~/locale';\nimport WorkItemSidebarDropdownWidget from '~/work_items/components/shared/work_item_sidebar_dropdown_widget.vue';\nimport updateParentMutation from '~/work_items/graphql/update_parent.mutation.graphql';\nimport { isValidURL } from '~/lib/utils/url_utility';\n\nimport updateNewWorkItemMutation from '~/work_items/graphql/update_new_work_item.mutation.graphql';\nimport { updateParent } from '../graphql/cache_utils';\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 workItemAllowedParentTypesQuery from '../graphql/work_item_allowed_parent_types.query.graphql';\nimport {\n  I18N_WORK_ITEM_ERROR_UPDATING,\n  sprintfWorkItem,\n  WORK_ITEM_TYPE_ENUM_EPIC,\n  WORK_ITEM_TYPE_VALUE_ISSUE,\n  WORK_ITEM_TYPE_VALUE_MAP,\n} from '../constants';\nimport { isReference, findHierarchyWidgetDefinition, newWorkItemId } from '../utils';\n\nexport default {\n  name: 'WorkItemParent',\n  inputId: 'work-item-parent-listbox-value',\n  noWorkItemId: 'no-work-item-id',\n  i18n: {\n    assignParentLabel: s__('WorkItem|Select parent'),\n    parentLabel: s__('WorkItem|Parent'),\n    none: s__('WorkItem|None'),\n    unAssign: s__('WorkItem|Clear'),\n    workItemsFetchError: s__(\n      'WorkItem|Something went wrong while fetching items. Please try again.',\n    ),\n  },\n  components: {\n    GlLink,\n    GlIcon,\n    GlPopover,\n    WorkItemSidebarDropdownWidget,\n  },\n  inject: ['fullPath'],\n  props: {\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    parent: {\n      type: Object,\n      required: false,\n      default: null,\n    },\n    workItemType: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    canUpdate: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    groupPath: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    hasParent: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isGroup: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      searchTerm: '',\n      updateInProgress: false,\n      searchStarted: false,\n      localSelectedItem: this.parent?.id,\n      oldParent: this.parent,\n      workspaceWorkItems: [],\n      workItemsByReference: [],\n      allowedParentTypes: [],\n    };\n  },\n  computed: {\n    isIssue() {\n      return this.workItemType === WORK_ITEM_TYPE_VALUE_ISSUE;\n    },\n    isLoading() {\n      return (\n        this.$apollo.queries.workspaceWorkItems.loading ||\n        this.$apollo.queries.workItemsByReference.loading\n      );\n    },\n    availableWorkItems() {\n      return this.isSearchingByReference ? this.workItemsByReference : this.workspaceWorkItems;\n    },\n    listboxText() {\n      return (\n        this.workItems.find(({ value }) => this.localSelectedItem === value)?.text ||\n        this.parent?.title ||\n        this.$options.i18n.none\n      );\n    },\n    workItems() {\n      return this.availableWorkItems?.map(({ id, title }) => ({ text: title, value: id })) || [];\n    },\n    parentWebUrl() {\n      return this.parent?.webUrl;\n    },\n    showCustomNoneValue() {\n      return this.hasParent && this.parent === null;\n    },\n    isSearchingByReference() {\n      return isReference(this.searchTerm) || isValidURL(this.searchTerm);\n    },\n    allowedParentTypesForNewWorkItem() {\n      return this.workItemId === newWorkItemId(this.workItemType) ? [WORK_ITEM_TYPE_ENUM_EPIC] : [];\n    },\n  },\n  watch: {\n    parent: {\n      handler(newVal) {\n        this.localSelectedItem = newVal?.id;\n      },\n    },\n  },\n  apollo: {\n    workspaceWorkItems: {\n      query() {\n        // TODO: Remove the this.isIssue check once issues are migrated to work items\n        return this.isGroup || this.isIssue ? groupWorkItemsQuery : projectWorkItemsQuery;\n      },\n      variables() {\n        // TODO: Remove the this.isIssue check once issues are migrated to work items\n        return {\n          fullPath: this.isIssue ? this.groupPath : this.fullPath,\n          searchTerm: this.searchTerm,\n          types: [...this.allowedParentTypes, ...this.allowedParentTypesForNewWorkItem],\n          in: this.searchTerm ? 'TITLE' : undefined,\n          iid: null,\n          isNumber: false,\n          includeAncestors: true,\n        };\n      },\n      skip() {\n        return !this.searchStarted && !this.allowedChildTypes?.length;\n      },\n      update(data) {\n        return data.workspace.workItems.nodes.filter((wi) => this.workItemId !== wi.id) || [];\n      },\n      error() {\n        this.$emit('error', this.$options.i18n.workItemsFetchError);\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 data?.workItemsByReference?.nodes || [];\n      },\n      error() {\n        this.$emit('error', this.$options.i18n.workItemsFetchError);\n      },\n    },\n    allowedParentTypes: {\n      query: workItemAllowedParentTypesQuery,\n      variables() {\n        return {\n          id: this.workItemId,\n        };\n      },\n      skip() {\n        return this.workItemId === newWorkItemId(this.workItemType);\n      },\n      update(data) {\n        return (\n          findHierarchyWidgetDefinition(data.workItem)?.allowedParentTypes?.nodes.map(\n            (el) => WORK_ITEM_TYPE_VALUE_MAP[el.name],\n          ) || []\n        );\n      },\n    },\n  },\n  methods: {\n    searchWorkItems(value) {\n      this.searchTerm = value;\n      this.searchStarted = true;\n    },\n    async updateParent() {\n      if (this.parent?.id === this.localSelectedItem) return;\n\n      this.updateInProgress = true;\n\n      if (this.workItemId === newWorkItemId(this.workItemType)) {\n        this.$apollo\n          .mutate({\n            mutation: updateNewWorkItemMutation,\n            variables: {\n              input: {\n                fullPath: this.fullPath,\n                parent: {\n                  ...this.availableWorkItems?.find(({ id }) => id === this.localSelectedItem),\n                  webUrl: this.parentWebUrl ?? null,\n                },\n                workItemType: this.workItemType,\n              },\n            },\n          })\n          .catch((error) => {\n            Sentry.captureException(error);\n          })\n          .finally(() => {\n            this.searchStarted = false;\n            this.updateInProgress = false;\n          });\n        return;\n      }\n\n      try {\n        const {\n          data: {\n            workItemUpdate: { errors },\n          },\n        } = await this.$apollo.mutate({\n          mutation: updateParentMutation,\n          variables: {\n            input: {\n              id: this.workItemId,\n              hierarchyWidget: {\n                parentId:\n                  this.localSelectedItem === this.$options.noWorkItemId\n                    ? null\n                    : this.localSelectedItem,\n              },\n            },\n          },\n          update: (cache) =>\n            updateParent({\n              cache,\n              fullPath: this.fullPath,\n              iid: this.oldParent?.iid,\n              workItem: { id: this.workItemId },\n            }),\n        });\n\n        if (errors.length) {\n          this.$emit('error', errors.join('\\n'));\n          this.localSelectedItem = this.parent?.id || this.$options.noWorkItemId;\n        }\n      } catch (error) {\n        this.$emit('error', sprintfWorkItem(I18N_WORK_ITEM_ERROR_UPDATING, this.workItemType));\n        Sentry.captureException(error);\n      } finally {\n        this.searchStarted = false;\n        this.updateInProgress = false;\n      }\n    },\n    handleItemClick(item) {\n      this.localSelectedItem = item;\n      this.searchStarted = false;\n      this.searchTerm = '';\n      this.updateParent();\n    },\n    unassignParent() {\n      this.localSelectedItem = this.$options.noWorkItemId;\n      this.updateParent();\n    },\n    onListboxShown() {\n      this.searchStarted = true;\n    },\n    onListboxHide() {\n      this.searchStarted = false;\n      this.searchTerm = '';\n    },\n  },\n};\n</script>\n\n<template>\n  <work-item-sidebar-dropdown-widget\n    :dropdown-label=\"__('Parent')\"\n    :can-update=\"canUpdate\"\n    dropdown-name=\"parent\"\n    :list-items=\"workItems\"\n    :loading=\"isLoading\"\n    :item-value=\"localSelectedItem\"\n    :header-text=\"$options.i18n.assignParentLabel\"\n    :update-in-progress=\"updateInProgress\"\n    :reset-button-label=\"$options.i18n.unAssign\"\n    :toggle-dropdown-text=\"listboxText\"\n    data-testid=\"work-item-parent\"\n    @dropdownShown=\"onListboxShown\"\n    @dropdownHidden=\"onListboxHide\"\n    @searchStarted=\"searchWorkItems\"\n    @updateValue=\"handleItemClick\"\n    @reset=\"unassignParent\"\n  >\n    <template #readonly>\n      <gl-link\n        v-if=\"localSelectedItem\"\n        data-testid=\"work-item-parent-link\"\n        class=\"gl-inline-block gl-max-w-full gl-overflow-hidden gl-text-ellipsis gl-whitespace-nowrap gl-align-top gl-text-default\"\n        :href=\"parentWebUrl\"\n        >{{ listboxText }}</gl-link\n      >\n    </template>\n    <template v-if=\"showCustomNoneValue\" #none>\n      <span id=\"parent-not-available\" class=\"gl-cursor-help\">\n        <gl-popover triggers=\"hover focus\" placement=\"bottom\" :target=\"'parent-not-available'\">\n          <span>{{\n            s__(`WorkItem|You don't have the necessary permission to view the ancestor.`)\n          }}</span>\n        </gl-popover>\n        <gl-icon name=\"eye-slash\" class=\"gl-mr-2\" variant=\"subtle\" />\n        <span data-testid=\"ancestor-not-available\">{{\n          s__('WorkItem|Ancestor not available')\n        }}</span></span\n      >\n    </template>\n  </work-item-sidebar-dropdown-widget>\n</template>\n","import { render, staticRenderFns } from \"./work_item_parent.vue?vue&type=template&id=c0c1d30c\"\nimport script from \"./work_item_parent.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_parent.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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 GlDropdownItem from '../dropdown/dropdown_item';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n  name: 'GlFilteredSearchSuggestion',\n  components: {\n    GlDropdownItem\n  },\n  inject: ['filteredSearchSuggestionListInstance'],\n  inheritAttrs: false,\n  props: {\n    /**\n     * Value that will be emitted if this suggestion is selected.\n     */\n    value: {\n      required: true,\n      validator: () => true\n    }\n  },\n  computed: {\n    isActive() {\n      return this.filteredSearchSuggestionListInstance.activeItem === this;\n    }\n  },\n  watch: {\n    isActive(newValue) {\n      if (newValue) {\n        window.requestAnimationFrame(() => {\n          var _this$$refs$item, _this$$refs$item$$el;\n          (_this$$refs$item = this.$refs.item) === null || _this$$refs$item === void 0 ? void 0 : (_this$$refs$item$$el = _this$$refs$item.$el) === null || _this$$refs$item$$el === void 0 ? void 0 : _this$$refs$item$$el.scrollIntoView({\n            block: 'nearest',\n            inline: 'end'\n          });\n        });\n      }\n    }\n  },\n  created() {\n    this.filteredSearchSuggestionListInstance.register(this);\n  },\n  beforeDestroy() {\n    this.filteredSearchSuggestionListInstance.unregister(this);\n  },\n  methods: {\n    emitValue() {\n      // We use href argument for gl-dropdown-item to use <a> instead of <button>\n      // due to https://bugs.webkit.org/show_bug.cgi?id=22261\n      this.filteredSearchSuggestionListInstance.$emit('suggestion', this.value);\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-dropdown-item',_vm._b({ref:\"item\",staticClass:\"gl-filtered-search-suggestion\",class:{ 'gl-filtered-search-suggestion-active': _vm.isActive },attrs:{\"data-testid\":\"filtered-search-suggestion\",\"tabindex\":\"-1\",\"href\":\"#\"},nativeOn:{\"mousedown\":function($event){$event.preventDefault();return _vm.emitValue.apply(null, arguments)}}},'gl-dropdown-item',_vm.$attrs,false),[_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 default __webpack_public_path__ + \"empty-epic-md.7978cef8.svg\";","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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemNoteDeleted\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"noteableId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NoteableID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemNoteDeleted\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"noteableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"noteableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"discussionId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastDiscussionNote\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":162}};\n    doc.loc.source = {\"body\":\"subscription workItemNoteDeleted($noteableId: NoteableID) {\\n  workItemNoteDeleted(noteableId: $noteableId) {\\n    id\\n    discussionId\\n    lastDiscussionNote\\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[\"workItemNoteDeleted\"] = oneQuery(doc, \"workItemNoteDeleted\");\n        \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","export const SET_INITIAL_STATE = 'SET_INITIAL_STATE';\n\nexport const REQUEST_LABELS = 'REQUEST_LABELS';\nexport const RECEIVE_LABELS_SUCCESS = 'RECEIVE_LABELS_SUCCESS';\nexport const RECEIVE_LABELS_FAILURE = 'RECEIVE_LABELS_FAILURE';\n\nexport const REQUEST_SET_LABELS = 'REQUEST_SET_LABELS';\nexport const RECEIVE_SET_LABELS_SUCCESS = 'RECEIVE_SET_LABELS_SUCCESS';\nexport const RECEIVE_SET_LABELS_FAILURE = 'RECEIVE_SET_LABELS_FAILURE';\n\nexport const REQUEST_CREATE_LABEL = 'REQUEST_CREATE_LABEL';\nexport const RECEIVE_CREATE_LABEL_SUCCESS = 'RECEIVE_CREATE_LABEL_SUCCESS';\nexport const RECEIVE_CREATE_LABEL_FAILURE = 'RECEIVE_CREATE_LABEL_FAILURE';\n\nexport const TOGGLE_DROPDOWN_BUTTON = 'TOGGLE_DROPDOWN_VISIBILITY';\nexport const TOGGLE_DROPDOWN_CONTENTS = 'TOGGLE_DROPDOWN_CONTENTS';\n\nexport const UPDATE_SELECTED_LABELS = 'UPDATE_SELECTED_LABELS';\n\nexport const TOGGLE_DROPDOWN_CONTENTS_CREATE_VIEW = 'TOGGLE_DROPDOWN_CONTENTS_CREATE_VIEW';\n\nexport const UPDATE_LABELS_SET_STATE = 'UPDATE_LABELS_SET_STATE';\n","import { createAlert } from '~/alert';\nimport axios from '~/lib/utils/axios_utils';\nimport { __ } from '~/locale';\nimport * as types from './mutation_types';\n\nexport const setInitialState = ({ commit }, props) => commit(types.SET_INITIAL_STATE, props);\n\nexport const toggleDropdownButton = ({ commit }) => commit(types.TOGGLE_DROPDOWN_BUTTON);\nexport const toggleDropdownContents = ({ commit }) => commit(types.TOGGLE_DROPDOWN_CONTENTS);\n\nexport const toggleDropdownContentsCreateView = ({ commit }) =>\n  commit(types.TOGGLE_DROPDOWN_CONTENTS_CREATE_VIEW);\n\nexport const requestLabels = ({ commit }) => commit(types.REQUEST_LABELS);\nexport const receiveLabelsSuccess = ({ commit }, labels) =>\n  commit(types.RECEIVE_SET_LABELS_SUCCESS, labels);\nexport const receiveLabelsFailure = ({ commit }) => {\n  commit(types.RECEIVE_SET_LABELS_FAILURE);\n  createAlert({\n    message: __('Error fetching labels.'),\n  });\n};\nexport const fetchLabels = ({ state, dispatch }, options) => {\n  if (state.labelsFetched && (!options || !options.refetch)) {\n    return Promise.resolve();\n  }\n\n  dispatch('requestLabels');\n  return axios\n    .get(state.labelsFetchPath)\n    .then(({ data }) => {\n      dispatch('receiveLabelsSuccess', data);\n    })\n    .catch(() => dispatch('receiveLabelsFailure'));\n};\n\nexport const requestCreateLabel = ({ commit }) => commit(types.REQUEST_CREATE_LABEL);\nexport const receiveCreateLabelSuccess = ({ commit }) => commit(types.RECEIVE_CREATE_LABEL_SUCCESS);\nexport const receiveCreateLabelFailure = ({ commit }) => {\n  commit(types.RECEIVE_CREATE_LABEL_FAILURE);\n  createAlert({\n    message: __('Error creating label.'),\n  });\n};\nexport const createLabel = ({ state, dispatch }, label) => {\n  dispatch('requestCreateLabel');\n  axios\n    .post(state.labelsManagePath, {\n      label,\n    })\n    .then(({ data }) => {\n      if (data.id) {\n        dispatch('fetchLabels', { refetch: true });\n        dispatch('receiveCreateLabelSuccess');\n        dispatch('toggleDropdownContentsCreateView');\n      } else {\n        // eslint-disable-next-line @gitlab/require-i18n-strings\n        throw new Error('Error Creating Label');\n      }\n    })\n    .catch(() => {\n      dispatch('receiveCreateLabelFailure');\n    });\n};\n\nexport const updateSelectedLabels = ({ commit }, labels) =>\n  commit(types.UPDATE_SELECTED_LABELS, { labels });\n\nexport const updateLabelsSetState = ({ commit }) => commit(types.UPDATE_LABELS_SET_STATE);\n","import { __, s__, sprintf } from '~/locale';\nimport {\n  VARIANT_EMBEDDED,\n  VARIANT_SIDEBAR,\n  VARIANT_STANDALONE,\n} from '~/sidebar/components/labels/labels_select_widget/constants';\n\n/**\n * Returns string representing current labels\n * selection on dropdown button.\n *\n * @param {object} state\n */\nexport const dropdownButtonText = (state, getters) => {\n  const selectedLabels =\n    getters.isDropdownVariantSidebar || getters.isDropdownVariantEmbedded\n      ? state.labels.filter((label) => label.set || label.indeterminate)\n      : state.selectedLabels;\n\n  if (!selectedLabels.length) {\n    return state.dropdownButtonText || __('Label');\n  }\n  if (selectedLabels.length > 1) {\n    return sprintf(s__('LabelSelect|%{firstLabelName} +%{remainingLabelCount} more'), {\n      firstLabelName: selectedLabels[0].title,\n      remainingLabelCount: selectedLabels.length - 1,\n    });\n  }\n  return selectedLabels[0].title;\n};\n\n/**\n * Returns array containing only label IDs from\n * selectedLabels array.\n * @param {object} state\n */\nexport const selectedLabelsList = (state) => state.selectedLabels.map((label) => label.id);\n\n/**\n * Returns boolean representing whether dropdown variant\n * is `sidebar`\n * @param {object} state\n */\nexport const isDropdownVariantSidebar = (state) => state.variant === VARIANT_SIDEBAR;\n\n/**\n * Returns boolean representing whether dropdown variant\n * is `standalone`\n * @param {object} state\n */\nexport const isDropdownVariantStandalone = (state) => state.variant === VARIANT_STANDALONE;\n\n/**\n * Returns boolean representing whether dropdown variant\n * is `embedded`\n * @param {object} state\n */\nexport const isDropdownVariantEmbedded = (state) => state.variant === VARIANT_EMBEDDED;\n","import { isScopedLabel, scopedLabelKey } from '~/lib/utils/common_utils';\nimport { VARIANT_SIDEBAR } from '~/sidebar/components/labels/labels_select_widget/constants';\nimport * as types from './mutation_types';\n\nconst transformLabels = (labels, selectedLabels) =>\n  labels.map((label) => {\n    const selectedLabel = selectedLabels.find(({ id }) => id === label.id);\n\n    return {\n      ...label,\n      set: Boolean(selectedLabel?.set),\n      indeterminate: Boolean(selectedLabel?.indeterminate),\n    };\n  });\n\nexport default {\n  [types.SET_INITIAL_STATE](state, props) {\n    // We need to ensure that selectedLabels have\n    // `set` & `indeterminate` properties defined.\n    if (props.selectedLabels?.length) {\n      props.selectedLabels.forEach((label) => {\n        /* eslint-disable no-param-reassign */\n        if (label.set === undefined && label.indeterminate === undefined) {\n          label.set = true;\n          label.indeterminate = false;\n        } else if (label.set === undefined && label.indeterminate !== undefined) {\n          label.set = false;\n        } else if (label.set !== undefined && label.indeterminate === undefined) {\n          label.indeterminate = false;\n        } else {\n          label.set = false;\n          label.indeterminate = false;\n        }\n        /* eslint-enable no-param-reassign */\n      });\n    }\n\n    Object.assign(state, { ...props });\n  },\n\n  [types.TOGGLE_DROPDOWN_BUTTON](state) {\n    state.showDropdownButton = !state.showDropdownButton;\n  },\n\n  [types.TOGGLE_DROPDOWN_CONTENTS](state) {\n    if (state.variant === VARIANT_SIDEBAR) {\n      state.showDropdownButton = !state.showDropdownButton;\n    }\n    state.showDropdownContents = !state.showDropdownContents;\n    // Ensure that Create View is hidden by default\n    // when dropdown contents are revealed.\n    if (state.showDropdownContents) {\n      state.showDropdownContentsCreateView = false;\n    }\n  },\n\n  [types.TOGGLE_DROPDOWN_CONTENTS_CREATE_VIEW](state) {\n    state.showDropdownContentsCreateView = !state.showDropdownContentsCreateView;\n  },\n\n  [types.REQUEST_LABELS](state) {\n    state.labelsFetchInProgress = true;\n  },\n  [types.RECEIVE_SET_LABELS_SUCCESS](state, labels) {\n    // Iterate over every label and add a `set` prop\n    // to determine whether it is already a part of\n    // selectedLabels array.\n    state.labelsFetchInProgress = false;\n    state.labelsFetched = true;\n    state.labels = transformLabels(labels, state.selectedLabels);\n  },\n  [types.RECEIVE_SET_LABELS_FAILURE](state) {\n    state.labelsFetchInProgress = false;\n  },\n\n  [types.REQUEST_CREATE_LABEL](state) {\n    state.labelCreateInProgress = true;\n  },\n  [types.RECEIVE_CREATE_LABEL_SUCCESS](state) {\n    state.labelCreateInProgress = false;\n  },\n  [types.RECEIVE_CREATE_LABEL_FAILURE](state) {\n    state.labelCreateInProgress = false;\n  },\n\n  [types.UPDATE_SELECTED_LABELS](state, { labels }) {\n    // Find the label to update from all the labels\n    // and change `set` prop value to represent their current state.\n    const labelId = labels.pop()?.id;\n    const candidateLabel = state.labels.find((label) => labelId === label.id);\n    if (candidateLabel) {\n      candidateLabel.touched = true;\n      candidateLabel.set = candidateLabel.indeterminate ? true : !candidateLabel.set;\n      candidateLabel.indeterminate = false;\n    }\n\n    if (isScopedLabel(candidateLabel) && !state.allowMultipleScopedLabels) {\n      const currentActiveScopedLabel = state.labels.find(\n        ({ set, title }) =>\n          set &&\n          title !== candidateLabel.title &&\n          scopedLabelKey({ title }) === scopedLabelKey(candidateLabel),\n      );\n      if (currentActiveScopedLabel) {\n        currentActiveScopedLabel.set = false;\n      }\n    }\n  },\n\n  [types.UPDATE_LABELS_SET_STATE](state) {\n    state.labels = transformLabels(state.labels, state.selectedLabels);\n  },\n};\n","import * as actions from './actions';\nimport * as getters from './getters';\nimport mutations from './mutations';\nimport state from './state';\n\nexport default () => ({\n  namespaced: true,\n  state: state(),\n  actions,\n  getters,\n  mutations,\n});\n","export default () => ({\n  // Initial Data\n  labels: [],\n  labelsFetched: false,\n  selectedLabels: [],\n  labelsListTitle: '',\n  labelsCreateTitle: '',\n  footerCreateLabelTitle: '',\n  footerManageLabelTitle: '',\n  dropdownButtonText: '',\n\n  // Paths\n  namespace: '',\n  labelsFetchPath: '',\n  labelsFilterBasePath: '',\n\n  // UI Flags\n  variant: '',\n  allowLabelRemove: false,\n  allowLabelCreate: false,\n  allowLabelEdit: false,\n  allowScopedLabels: false,\n  allowMultiselect: false,\n  showDropdownButton: false,\n  showDropdownContents: false,\n  showDropdownContentsCreateView: false,\n  labelsFetchInProgress: false,\n  labelCreateInProgress: false,\n  selectedLabelsUpdated: false,\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 * 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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemNoteAddAwardEmoji\"},\"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\":\"awardEmojiAdd\"},\"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\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":167}};\n    doc.loc.source = {\"body\":\"mutation workItemNoteAddAwardEmoji($awardableId: AwardableID!, $name: String!) {\\n  awardEmojiAdd(input: { awardableId: $awardableId, name: $name }) {\\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[\"workItemNoteAddAwardEmoji\"] = oneQuery(doc, \"workItemNoteAddAwardEmoji\");\n        \n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"BaseWorkItemWidgets\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidget\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetAssignees\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"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\":\"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\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetLabels\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"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\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"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\":\"type\"},\"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\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"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\":\"WorkItemWidgetAwardEmoji\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"upvotes\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"downvotes\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":691}};\n    doc.loc.source = {\"body\":\"fragment BaseWorkItemWidgets on WorkItemWidget {\\n  ... on WorkItemWidgetAssignees {\\n    type\\n    assignees {\\n      nodes {\\n        id\\n        avatarUrl\\n        name\\n        username\\n        webUrl\\n        webPath\\n      }\\n    }\\n  }\\n  ... on WorkItemWidgetLabels {\\n    type\\n    allowsScopedLabels\\n    labels {\\n      nodes {\\n        id\\n        color\\n        description\\n        title\\n      }\\n    }\\n  }\\n  ... on WorkItemWidgetMilestone {\\n    type\\n    milestone {\\n      id\\n      dueDate\\n      startDate\\n      title\\n      webPath\\n    }\\n  }\\n  ... on WorkItemWidgetStartAndDueDate {\\n    type\\n    dueDate\\n    startDate\\n  }\\n  ... on WorkItemWidgetAwardEmoji {\\n    type\\n    upvotes\\n    downvotes\\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[\"BaseWorkItemWidgets\"] = oneQuery(doc, \"BaseWorkItemWidgets\");\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-w-full\",class:{ 'gl-relative': !_vm.showUploadDesignOverlay },on:{\"dragstart\":function($event){$event.preventDefault();$event.stopPropagation();},\"dragend\":function($event){$event.preventDefault();$event.stopPropagation();},\"dragover\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.ondragover.apply(null, arguments)},\"dragenter\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.ondragenter.apply(null, arguments)},\"dragleave\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.ondragleave.apply(null, arguments)},\"drop\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.ondrop.apply(null, arguments)}}},[_vm._t(\"default\",function(){return [_c('button',{staticClass:\"card upload-dropzone-card upload-dropzone-border gl-mb-0 gl-h-full gl-w-full gl-items-center gl-justify-center gl-px-5 gl-py-4\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.openFileUpload,\"mouseenter\":_vm.onMouseEnter,\"mouseleave\":_vm.onMouseLeave}},[_c('div',{staticClass:\"gl-flex gl-items-center gl-justify-center gl-text-center\",class:{ 'gl-flex-col': _vm.displayAsCard },attrs:{\"data-testid\":\"dropzone-area\"}},[_c('gl-animated-upload-icon',{class:_vm.iconStyles.class,attrs:{\"is-on\":_vm.animateUploadIcon || _vm.hideUploadTextOnDragging}}),_vm._v(\" \"),(!_vm.hideUploadTextOnDragging || !_vm.dragging)?_c('p',{staticClass:\"gl-mb-0\",attrs:{\"data-testid\":\"upload-text\"}},[_vm._t(\"upload-text\",function(){return [_c('gl-sprintf',{attrs:{\"message\":_vm.singleFileSelection ? _vm.uploadSingleMessage : _vm.uploadMultipleMessage},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('gl-link',{on:{\"click\":function($event){$event.stopPropagation();return _vm.openFileUpload.apply(null, arguments)}}},[_vm._v(_vm._s(content))])]}}],null,false,40519920)})]},{\"openFileUpload\":_vm.openFileUpload})],2):_vm._e(),_vm._v(\" \"),(_vm.hideUploadTextOnDragging && _vm.dragging)?_c('span',[_vm._v(\"\\n          \"+_vm._s(_vm.s__('DesignManagement|Drop your images to start the upload.'))+\"\\n        \")]):_vm._e()],1)]),_vm._v(\" \"),_c('input',{ref:\"fileUpload\",staticClass:\"hide\",attrs:{\"type\":\"file\",\"name\":_vm.inputFieldName,\"accept\":_vm.validFileMimetypes,\"multiple\":!_vm.singleFileSelection},on:{\"change\":_vm.onFileInputChange}})]}),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"upload-dropzone-fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showDropzoneOverlay),expression:\"showDropzoneOverlay\"}],staticClass:\"card gl-absolute gl-flex gl-h-full gl-w-full gl-items-center gl-justify-center gl-p-4\",class:{\n        'design-upload-dropzone-overlay gl-z-200 gl-border-1 gl-border-dashed gl-border-blue-500':\n          _vm.showUploadDesignOverlay && _vm.isDragDataValid,\n        'upload-dropzone-overlay upload-dropzone-border': !_vm.showUploadDesignOverlay,\n      }},[(_vm.showUploadDesignOverlay)?[(_vm.isDragDataValid && !_vm.hideUploadTextOnDragging)?_c('div',{staticClass:\"gl-absolute gl-bottom-6 gl-flex gl-items-center gl-rounded-base gl-bg-blue-950 gl-px-3 gl-py-2 gl-text-white\",attrs:{\"data-testid\":\"design-upload-overlay\"}},[_c('gl-animated-upload-icon',{attrs:{\"is-on\":true,\"name\":\"upload\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-ml-2\"},[_vm._v(_vm._s(_vm.uploadDesignOverlayText))])],1):_vm._e()]:[(_vm.isDragDataValid)?_c('div',{staticClass:\"gl-max-w-1/2 gl-text-center\"},[_vm._t(\"valid-drag-data-slot\",function(){return [_c('h3',{class:{ 'gl-inline gl-text-base': !_vm.displayAsCard }},[_vm._v(\"\\n              \"+_vm._s(_vm.__('Incoming!'))+\"\\n            \")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.dropToStartMessage))])]})],2):_c('div',{staticClass:\"gl-max-w-1/2 gl-text-center\"},[_vm._t(\"invalid-drag-data-slot\",function(){return [_c('h3',{class:{ 'gl-inline gl-text-base': !_vm.displayAsCard }},[_vm._v(\"\\n              \"+_vm._s(_vm.__('Oh no!'))+\"\\n            \")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.__(\n                'You are trying to upload something other than an image. Please upload a .png, .jpg, .jpeg, .gif, .bmp, .tiff or .ico.',\n              )))])]})],2)]],2)])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import GlBaseAnimatedIcon from './base_animated_icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n  name: 'GlAnimatedUploadIcon',\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-upload-base\",attrs:{\"d\":\"M14.25 9.75V13C14.25 13.6904 13.6904 14.25 13 14.25L3 14.25C2.30964 14.25 1.75 13.6904 1.75 13L1.75 9.75\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-upload-line\",attrs:{\"d\":\"M8 11.25V2.5\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-upload-arrow\",attrs:{\"d\":\"M11.25 5.31066L8 2.06066L4.75 5.31066\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"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","// We may wish to make this more restrictive, as per\n// https://gitlab.com/gitlab-org/gitlab/issues/118611\nexport const VALID_IMAGE_FILE_MIMETYPE = {\n  mimetype: 'image/*',\n  regex: /image\\/.+/,\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\nexport const VALID_DATA_TRANSFER_TYPE = 'Files';\n","<script>\nimport { GlLink, GlSprintf, GlAnimatedUploadIcon } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport { VALID_DATA_TRANSFER_TYPE, VALID_IMAGE_FILE_MIMETYPE } from './constants';\nimport { isValidImage } from './utils';\n\nexport default {\n  components: {\n    GlLink,\n    GlSprintf,\n    GlAnimatedUploadIcon,\n  },\n  props: {\n    displayAsCard: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    enableDragBehavior: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    uploadSingleMessage: {\n      type: String,\n      required: false,\n      default: __('Drop or %{linkStart}upload%{linkEnd} file to attach'),\n    },\n    uploadMultipleMessage: {\n      type: String,\n      required: false,\n      default: __('Drop or %{linkStart}upload%{linkEnd} files to attach'),\n    },\n    dropToStartMessage: {\n      type: String,\n      required: false,\n      default: __('Drop your files to start your upload.'),\n    },\n    isFileValid: {\n      type: Function,\n      required: false,\n      default: isValidImage,\n    },\n    validFileMimetypes: {\n      type: Array,\n      required: false,\n      default: () => [VALID_IMAGE_FILE_MIMETYPE.mimetype],\n    },\n    singleFileSelection: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    inputFieldName: {\n      type: String,\n      required: false,\n      default: 'upload_file',\n    },\n    shouldUpdateInputOnFileDrop: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    showUploadDesignOverlay: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    uploadDesignOverlayText: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    validateDesignUploadOnDragover: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    acceptDesignFormats: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    hideUploadTextOnDragging: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      dragCounter: 0,\n      isDragDataValid: true,\n      animateUploadIcon: false,\n    };\n  },\n  computed: {\n    dragging() {\n      return this.dragCounter !== 0;\n    },\n    iconStyles() {\n      return {\n        class: this.displayAsCard ? 'gl-mb-3' : 'gl-mr-3',\n      };\n    },\n    validMimeTypeString() {\n      return this.validFileMimetypes.join();\n    },\n    showDropzoneOverlay() {\n      if (this.validateDesignUploadOnDragover && this.acceptDesignFormats) {\n        return this.dragging && this.isDragDataValid && !this.enableDragBehavior;\n      }\n      return this.dragging && !this.enableDragBehavior;\n    },\n  },\n  methods: {\n    isValidUpload(files) {\n      return files.every(this.isFileValid);\n    },\n    isValidDragDataType({ dataTransfer }) {\n      return Boolean(\n        dataTransfer && dataTransfer.types.some((t) => t === VALID_DATA_TRANSFER_TYPE),\n      );\n    },\n    ondrop({ dataTransfer = {} }) {\n      this.dragCounter = 0;\n      // User already had feedback when dropzone was active, so bail here\n      if (!this.isDragDataValid) {\n        return;\n      }\n\n      const { files } = dataTransfer;\n      if (!this.isValidUpload(Array.from(files))) {\n        this.$emit('error');\n        return;\n      }\n\n      // NOTE: This is a temporary solution to integrate dropzone into a Rails\n      // form. On file drop if `shouldUpdateInputOnFileDrop` is true, the file\n      // input value is updated. So that when the form is submitted — the file\n      // value would be send together with the form data. This solution should\n      // be removed when License file upload page is fully migrated:\n      // https://gitlab.com/gitlab-org/gitlab/-/issues/352501\n      // NOTE: as per https://caniuse.com/mdn-api_htmlinputelement_files, IE11\n      // is not able to set input.files property, thought the user would still\n      // be able to use the file picker dialogue option, by clicking the\n      // \"openFileUpload\" button\n      if (this.shouldUpdateInputOnFileDrop) {\n        // Since FileList cannot be easily manipulated, to match requirement of\n        // singleFileSelection, we're throwing an error if multiple files were\n        // dropped on the dropzone\n        // NOTE: we can drop this logic together with\n        // `shouldUpdateInputOnFileDrop` flag\n        if (this.singleFileSelection && files.length > 1) {\n          this.$emit('error');\n          return;\n        }\n\n        this.$refs.fileUpload.files = files;\n      }\n\n      this.$emit('change', this.singleFileSelection ? files[0] : files);\n    },\n    ondragenter(e) {\n      this.$emit('dragenter', e);\n      this.dragCounter += 1;\n      this.isDragDataValid = this.isValidDragDataType(e);\n    },\n    ondragover({ dataTransfer }) {\n      if (this.validateDesignUploadOnDragover) {\n        this.isDragDataValid = Array.from(dataTransfer.items).some((item) =>\n          this.acceptDesignFormats.includes(item.type),\n        );\n      }\n    },\n    ondragleave(e) {\n      this.$emit('dragleave', e);\n      this.dragCounter -= 1;\n    },\n    openFileUpload() {\n      this.$refs.fileUpload.click();\n    },\n    onFileInputChange(e) {\n      this.$emit('change', this.singleFileSelection ? e.target.files[0] : e.target.files);\n    },\n    onMouseEnter() {\n      this.animateUploadIcon = true;\n    },\n    onMouseLeave() {\n      this.animateUploadIcon = false;\n    },\n  },\n};\n</script>\n\n<template>\n  <div\n    class=\"gl-w-full\"\n    :class=\"{ 'gl-relative': !showUploadDesignOverlay }\"\n    @dragstart.prevent.stop\n    @dragend.prevent.stop\n    @dragover.prevent.stop=\"ondragover\"\n    @dragenter.prevent.stop=\"ondragenter\"\n    @dragleave.prevent.stop=\"ondragleave\"\n    @drop.prevent.stop=\"ondrop\"\n  >\n    <slot>\n      <button\n        class=\"card upload-dropzone-card upload-dropzone-border gl-mb-0 gl-h-full gl-w-full gl-items-center gl-justify-center gl-px-5 gl-py-4\"\n        type=\"button\"\n        @click=\"openFileUpload\"\n        @mouseenter=\"onMouseEnter\"\n        @mouseleave=\"onMouseLeave\"\n      >\n        <div\n          :class=\"{ 'gl-flex-col': displayAsCard }\"\n          class=\"gl-flex gl-items-center gl-justify-center gl-text-center\"\n          data-testid=\"dropzone-area\"\n        >\n          <gl-animated-upload-icon\n            :is-on=\"animateUploadIcon || hideUploadTextOnDragging\"\n            :class=\"iconStyles.class\"\n          />\n          <p\n            v-if=\"!hideUploadTextOnDragging || !dragging\"\n            class=\"gl-mb-0\"\n            data-testid=\"upload-text\"\n          >\n            <slot name=\"upload-text\" :open-file-upload=\"openFileUpload\">\n              <gl-sprintf\n                :message=\"singleFileSelection ? uploadSingleMessage : uploadMultipleMessage\"\n              >\n                <template #link=\"{ content }\">\n                  <gl-link @click.stop=\"openFileUpload\">{{ content }}</gl-link>\n                </template>\n              </gl-sprintf>\n            </slot>\n          </p>\n          <span v-if=\"hideUploadTextOnDragging && dragging\">\n            {{ s__('DesignManagement|Drop your images to start the upload.') }}\n          </span>\n        </div>\n      </button>\n\n      <input\n        ref=\"fileUpload\"\n        type=\"file\"\n        :name=\"inputFieldName\"\n        :accept=\"validFileMimetypes\"\n        class=\"hide\"\n        :multiple=\"!singleFileSelection\"\n        @change=\"onFileInputChange\"\n      />\n    </slot>\n    <transition name=\"upload-dropzone-fade\">\n      <div\n        v-show=\"showDropzoneOverlay\"\n        class=\"card gl-absolute gl-flex gl-h-full gl-w-full gl-items-center gl-justify-center gl-p-4\"\n        :class=\"{\n          'design-upload-dropzone-overlay gl-z-200 gl-border-1 gl-border-dashed gl-border-blue-500':\n            showUploadDesignOverlay && isDragDataValid,\n          'upload-dropzone-overlay upload-dropzone-border': !showUploadDesignOverlay,\n        }\"\n      >\n        <!-- Design Upload Overlay Style for Work Items -->\n        <template v-if=\"showUploadDesignOverlay\">\n          <div\n            v-if=\"isDragDataValid && !hideUploadTextOnDragging\"\n            class=\"gl-absolute gl-bottom-6 gl-flex gl-items-center gl-rounded-base gl-bg-blue-950 gl-px-3 gl-py-2 gl-text-white\"\n            data-testid=\"design-upload-overlay\"\n          >\n            <gl-animated-upload-icon :is-on=\"true\" name=\"upload\" />\n            <span class=\"gl-ml-2\">{{ uploadDesignOverlayText }}</span>\n          </div>\n        </template>\n        <!-- Design Upload Overlay Style for Legacy Issues -->\n        <template v-else>\n          <div v-if=\"isDragDataValid\" class=\"gl-max-w-1/2 gl-text-center\">\n            <slot name=\"valid-drag-data-slot\">\n              <h3 :class=\"{ 'gl-inline gl-text-base': !displayAsCard }\">\n                {{ __('Incoming!') }}\n              </h3>\n              <span>{{ dropToStartMessage }}</span>\n            </slot>\n          </div>\n          <div v-else class=\"gl-max-w-1/2 gl-text-center\">\n            <slot name=\"invalid-drag-data-slot\">\n              <h3 :class=\"{ 'gl-inline gl-text-base': !displayAsCard }\">\n                {{ __('Oh no!') }}\n              </h3>\n              <span>{{\n                __(\n                  'You are trying to upload something other than an image. Please upload a .png, .jpg, .jpeg, .gif, .bmp, .tiff or .ico.',\n                )\n              }}</span>\n            </slot>\n          </div>\n        </template>\n      </div>\n    </transition>\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!./upload_dropzone.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./upload_dropzone.vue?vue&type=script&lang=js\"","import { VALID_IMAGE_FILE_MIMETYPE } from './constants';\n\nexport const isValidImage = ({ type }) =>\n  (type.match(VALID_IMAGE_FILE_MIMETYPE.regex) || []).length > 0;\n","import { render, staticRenderFns } from \"./upload_dropzone.vue?vue&type=template&id=0c271b78\"\nimport script from \"./upload_dropzone.vue?vue&type=script&lang=js\"\nexport * from \"./upload_dropzone.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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\"},[_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 render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-drawer',{directives:[{name:\"gl-outside\",rawName:\"v-gl-outside\",value:(_vm.handleClickOutside),expression:\"handleClickOutside\"}],staticClass:\"gl-w-full gl-leading-reset lg:gl-w-[480px] xl:gl-w-[768px] min-[1440px]:gl-w-[912px]\",attrs:{\"open\":_vm.open,\"z-index\":200,\"data-testid\":\"work-item-drawer\",\"header-sticky\":\"\",\"header-height\":\"calc(var(--top-bar-height) + var(--performance-bar-height))\"},on:{\"close\":_vm.handleClose},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('div',{staticClass:\"gl-text gl-flex gl-w-full gl-items-center gl-gap-x-2 xl:gl-px-4\"},[_c('gl-link',{ref:\"workItemUrl\",staticClass:\"gl-text-sm gl-font-bold gl-text-default\",attrs:{\"data-testid\":\"work-item-drawer-ref-link\",\"href\":_vm.activeItem.webUrl},on:{\"click\":_vm.redirectToWorkItem}},[_vm._v(\"\\n        \"+_vm._s(_vm.headerReference)+\"\\n      \")]),_vm._v(\" \"),_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-text-subtle\",attrs:{\"data-testid\":\"work-item-drawer-copy-button\",\"title\":_vm.copyTooltipText,\"category\":\"tertiary\",\"icon\":\"link\",\"size\":\"small\",\"aria-label\":_vm.$options.i18n.copyTooltipText,\"data-clipboard-text\":_vm.activeItem.webUrl},on:{\"click\":_vm.handleCopyToClipboard}}),_vm._v(\" \"),_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-text-subtle\",attrs:{\"data-testid\":\"work-item-drawer-link-button\",\"href\":_vm.activeItem.webUrl,\"title\":_vm.$options.i18n.openTooltipText,\"category\":\"tertiary\",\"icon\":\"maximize\",\"size\":\"small\",\"aria-label\":_vm.$options.i18n.openTooltipText},on:{\"click\":_vm.redirectToWorkItem}})],1)]},proxy:true},{key:\"default\",fn:function(){return [_c('work-item-detail',_vm._g({key:_vm.activeItem.iid,staticClass:\"work-item-drawer !gl-pt-0 xl:!gl-px-6\",attrs:{\"work-item-iid\":_vm.activeItem.iid,\"modal-work-item-full-path\":_vm.activeItemFullPath,\"modal-is-group\":_vm.modalIsGroup,\"is-drawer\":\"\"},on:{\"deleteWorkItem\":_vm.deleteWorkItem,\"workItemTypeChanged\":function($event){return _vm.$emit('workItemTypeChanged', $event)}}},_vm.$listeners))]},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!./work_item_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!./work_item_drawer.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink, GlDrawer, GlButton, GlTooltipDirective, GlOutsideDirective } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport deleteWorkItemMutation from '~/work_items/graphql/delete_work_item.mutation.graphql';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { TYPE_EPIC, TYPE_ISSUE } from '~/issues/constants';\nimport { DETAIL_VIEW_QUERY_PARAM_NAME } from '~/work_items/constants';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { visitUrl, setUrlParams, updateHistory, removeParams } from '~/lib/utils/url_utility';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { makeDrawerItemFullPath, makeDrawerUrlParam, canRouterNav } from '../utils';\n\nexport default {\n  name: 'WorkItemDrawer',\n  directives: {\n    GlTooltip: GlTooltipDirective,\n    GlOutside: GlOutsideDirective,\n  },\n  components: {\n    GlLink,\n    GlDrawer,\n    GlButton,\n    WorkItemDetail: () => import('~/work_items/components/work_item_detail.vue'),\n  },\n  mixins: [glFeatureFlagMixin()],\n  inject: ['fullPath', 'isGroup'],\n  inheritAttrs: false,\n  props: {\n    open: {\n      type: Boolean,\n      required: true,\n    },\n    activeItem: {\n      type: Object,\n      required: false,\n      default: () => ({}),\n    },\n    issuableType: {\n      type: String,\n      required: false,\n      default: TYPE_ISSUE,\n    },\n    clickOutsideExcludeSelector: {\n      type: String,\n      required: false,\n      default: null,\n    },\n  },\n  data() {\n    return {\n      copyTooltipText: this.$options.i18n.copyTooltipText,\n    };\n  },\n  computed: {\n    activeItemFullPath() {\n      return makeDrawerItemFullPath(this.activeItem, this.fullPath, this.issuableType);\n    },\n    modalIsGroup() {\n      return this.issuableType.toLowerCase() === TYPE_EPIC;\n    },\n    headerReference() {\n      const path = this.activeItemFullPath.substring(this.activeItemFullPath.lastIndexOf('/') + 1);\n      return `${path}#${this.activeItem.iid}`;\n    },\n    issueAsWorkItem() {\n      return (\n        !this.isGroup &&\n        this.glFeatures.workItemsViewPreference &&\n        gon.current_user_use_work_items_view\n      );\n    },\n  },\n  watch: {\n    activeItem: {\n      deep: true,\n      immediate: true,\n      handler(newValue) {\n        if (newValue?.iid) {\n          this.setDrawerParams();\n          // focus on header link when drawer is updated\n          this.$nextTick(() => {\n            this.focusOnHeaderLink();\n          });\n        }\n      },\n    },\n    open: {\n      immediate: true,\n      handler(newValue) {\n        if (newValue) {\n          // focus on header link when drawer is updated\n          this.$nextTick(() => {\n            this.focusOnHeaderLink();\n          });\n        }\n      },\n    },\n  },\n  methods: {\n    async deleteWorkItem({ workItemId }) {\n      try {\n        const { data } = await this.$apollo.mutate({\n          mutation: deleteWorkItemMutation,\n          variables: { input: { id: workItemId } },\n        });\n        if (data.workItemDelete.errors?.length) {\n          throw new Error(data.workItemDelete.errors[0]);\n        }\n        this.$emit('workItemDeleted', { id: workItemId });\n      } catch (error) {\n        this.$emit('deleteWorkItemError');\n        Sentry.captureException(error);\n      }\n    },\n    redirectToWorkItem(e) {\n      const workItem = this.activeItem;\n      if (e.metaKey || e.ctrlKey) {\n        return;\n      }\n      e.preventDefault();\n      const shouldRouterNav =\n        !this.preventRouterNav &&\n        this.$router &&\n        canRouterNav({\n          fullPath: this.fullPath,\n          webUrl: workItem.webUrl,\n          isGroup: this.isGroup,\n          issueAsWorkItem: this.issueAsWorkItem,\n        });\n\n      if (shouldRouterNav) {\n        this.$router.push({\n          name: 'workItem',\n          params: {\n            iid: workItem.iid,\n          },\n        });\n      } else {\n        visitUrl(workItem.webUrl);\n      }\n    },\n    handleCopyToClipboard() {\n      this.copyTooltipText = this.$options.i18n.copiedTooltipText;\n      setTimeout(() => {\n        this.copyTooltipText = this.$options.i18n.copyTooltipText;\n      }, 2000);\n    },\n    setDrawerParams() {\n      const params = makeDrawerUrlParam(this.activeItem, this.fullPath, this.issuableType);\n      updateHistory({\n        // we're using `show` to match the modal view parameter\n        url: setUrlParams({ [DETAIL_VIEW_QUERY_PARAM_NAME]: params }),\n      });\n    },\n    handleClose(isClickedOutside) {\n      updateHistory({ url: removeParams([DETAIL_VIEW_QUERY_PARAM_NAME]) });\n\n      if (!isClickedOutside) {\n        document\n          .getElementById(\n            `listItem-${this.activeItemFullPath}/${getIdFromGraphQLId(this.activeItem.id)}`,\n          )\n          ?.focus();\n      }\n\n      this.$emit('close');\n    },\n    handleClickOutside(event) {\n      for (const selector of this.$options.defaultExcludedSelectors) {\n        const excludedElements = document.querySelectorAll(selector);\n        for (const parent of excludedElements) {\n          if (parent.contains(event.target)) {\n            return;\n          }\n        }\n      }\n      if (this.clickOutsideExcludeSelector) {\n        const excludedElements = document.querySelectorAll(this.clickOutsideExcludeSelector);\n        for (const parent of excludedElements) {\n          if (parent.contains(event.target)) {\n            return;\n          }\n        }\n      }\n      this.handleClose(true);\n    },\n    focusOnHeaderLink() {\n      this.$refs?.workItemUrl?.$el?.focus();\n    },\n  },\n  i18n: {\n    copyTooltipText: __('Copy item URL'),\n    copiedTooltipText: __('Copied'),\n    openTooltipText: __('Open in full page'),\n  },\n  defaultExcludedSelectors: [\n    '#confirmationModal',\n    '#create-timelog-modal',\n    '#set-time-estimate-modal',\n    '[id^=\"insert-comment-template-modal\"]',\n    '.pika-single',\n    '.atwho-container',\n    '.item-title',\n    '.tippy-content .gl-new-dropdown-panel',\n    '#blocked-by-issues-modal',\n    '#open-children-warning-modal',\n    '#create-work-item-modal',\n    '#work-item-confirm-delete',\n    '.work-item-link-child',\n    '.modal-content',\n    '#create-merge-request-modal',\n  ],\n};\n</script>\n\n<template>\n  <gl-drawer\n    v-gl-outside=\"handleClickOutside\"\n    :open=\"open\"\n    :z-index=\"200\"\n    data-testid=\"work-item-drawer\"\n    header-sticky\n    header-height=\"calc(var(--top-bar-height) + var(--performance-bar-height))\"\n    class=\"gl-w-full gl-leading-reset lg:gl-w-[480px] xl:gl-w-[768px] min-[1440px]:gl-w-[912px]\"\n    @close=\"handleClose\"\n  >\n    <template #title>\n      <div class=\"gl-text gl-flex gl-w-full gl-items-center gl-gap-x-2 xl:gl-px-4\">\n        <gl-link\n          ref=\"workItemUrl\"\n          data-testid=\"work-item-drawer-ref-link\"\n          :href=\"activeItem.webUrl\"\n          class=\"gl-text-sm gl-font-bold gl-text-default\"\n          @click=\"redirectToWorkItem\"\n        >\n          {{ headerReference }}\n        </gl-link>\n        <gl-button\n          v-gl-tooltip\n          data-testid=\"work-item-drawer-copy-button\"\n          :title=\"copyTooltipText\"\n          category=\"tertiary\"\n          class=\"gl-text-subtle\"\n          icon=\"link\"\n          size=\"small\"\n          :aria-label=\"$options.i18n.copyTooltipText\"\n          :data-clipboard-text=\"activeItem.webUrl\"\n          @click=\"handleCopyToClipboard\"\n        />\n        <gl-button\n          v-gl-tooltip\n          data-testid=\"work-item-drawer-link-button\"\n          :href=\"activeItem.webUrl\"\n          :title=\"$options.i18n.openTooltipText\"\n          category=\"tertiary\"\n          class=\"gl-text-subtle\"\n          icon=\"maximize\"\n          size=\"small\"\n          :aria-label=\"$options.i18n.openTooltipText\"\n          @click=\"redirectToWorkItem\"\n        />\n      </div>\n    </template>\n    <template #default>\n      <work-item-detail\n        :key=\"activeItem.iid\"\n        :work-item-iid=\"activeItem.iid\"\n        :modal-work-item-full-path=\"activeItemFullPath\"\n        :modal-is-group=\"modalIsGroup\"\n        is-drawer\n        class=\"work-item-drawer !gl-pt-0 xl:!gl-px-6\"\n        @deleteWorkItem=\"deleteWorkItem\"\n        @workItemTypeChanged=\"$emit('workItemTypeChanged', $event)\"\n        v-on=\"$listeners\"\n      />\n    </template>\n  </gl-drawer>\n</template>\n","import { render, staticRenderFns } from \"./work_item_drawer.vue?vue&type=template&id=77fbf59f\"\nimport script from \"./work_item_drawer.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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","/**\n * @gitlab/at.js - 1.5.7\n * Copyright (c) 2021 chord.luo <chord.luo@gmail.com>;\n * Homepage: https://gitlab.com/gitlab-org/frontend/At.js\n * License: MIT\n */\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function ($) {\nvar DEFAULT_CALLBACKS, KEY_CODE;\n\nKEY_CODE = {\n  ESC: 27,\n  TAB: 9,\n  ENTER: 13,\n  CTRL: 17,\n  A: 65,\n  P: 80,\n  N: 78,\n  LEFT: 37,\n  UP: 38,\n  RIGHT: 39,\n  DOWN: 40,\n  BACKSPACE: 8,\n  SPACE: 32\n};\n\nDEFAULT_CALLBACKS = {\n  beforeSave: function(data) {\n    return Controller.arrayToDefaultHash(data);\n  },\n  matcher: function(flag, subtext, should_startWithSpace, acceptSpaceBar) {\n    var _a, _y, match, regexp, space;\n    flag = flag.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n    if (should_startWithSpace) {\n      flag = '(?:^|\\\\s)' + flag;\n    }\n    _a = decodeURI(\"%C3%80\");\n    _y = decodeURI(\"%C3%BF\");\n    space = acceptSpaceBar ? \"\\ \" : \"\";\n    regexp = new RegExp(flag + \"([A-Za-z\" + _a + \"-\" + _y + \"0-9_\" + space + \"\\'\\.\\+\\-]*)$|\" + flag + \"([^\\\\x00-\\\\xff]*)$\", 'gi');\n    match = regexp.exec(subtext);\n    if (match) {\n      return match[2] || match[1];\n    } else {\n      return null;\n    }\n  },\n  filter: function(query, data, searchKey) {\n    var _results, i, item, len;\n    _results = [];\n    for (i = 0, len = data.length; i < len; i++) {\n      item = data[i];\n      if (~new String(item[searchKey]).toLowerCase().indexOf(query.toLowerCase())) {\n        _results.push(item);\n      }\n    }\n    return _results;\n  },\n  remoteFilter: null,\n  sorter: function(query, items, searchKey) {\n    var _results, i, item, len;\n    if (!query) {\n      return items;\n    }\n    _results = [];\n    for (i = 0, len = items.length; i < len; i++) {\n      item = items[i];\n      item.atwho_order = new String(item[searchKey]).toLowerCase().indexOf(query.toLowerCase());\n      if (item.atwho_order > -1) {\n        _results.push(item);\n      }\n    }\n    return _results.sort(function(a, b) {\n      return a.atwho_order - b.atwho_order;\n    });\n  },\n  tplEval: function(tpl, map) {\n    var error, template;\n    template = tpl;\n    try {\n      if (typeof tpl !== 'string') {\n        template = tpl(map);\n      }\n      return template.replace(/\\$\\{([^\\}]*)\\}/g, function(tag, key, pos) {\n        return map[key];\n      });\n    } catch (error1) {\n      error = error1;\n      return \"\";\n    }\n  },\n  highlighter: function(li, query) {\n    var regexp;\n    if (!query) {\n      return li;\n    }\n    regexp = new RegExp(\">\\\\s*([^\\<]*?)(\" + query.replace(\"+\", \"\\\\+\") + \")([^\\<]*)\\\\s*<\", 'ig');\n    return li.replace(regexp, function(str, $1, $2, $3) {\n      return '> ' + $1 + '<strong>' + $2 + '</strong>' + $3 + ' <';\n    });\n  },\n  beforeInsert: function(value, $li, e) {\n    return value;\n  },\n  beforeReposition: function(offset) {\n    return offset;\n  },\n  afterMatchFailed: function(at, el) {}\n};\n\nvar App;\n\nApp = (function() {\n  function App(inputor) {\n    this.currentFlag = null;\n    this.controllers = {};\n    this.aliasMaps = {};\n    this.$inputor = $(inputor);\n    this.setupRootElement();\n    this.listen();\n  }\n\n  App.prototype.createContainer = function(doc) {\n    var ref;\n    if ((ref = this.$el) != null) {\n      ref.remove();\n    }\n    return $(doc.body).append(this.$el = $(\"<div class='atwho-container'></div>\"));\n  };\n\n  App.prototype.setupRootElement = function(iframe, asRoot) {\n    var error;\n    if (asRoot == null) {\n      asRoot = false;\n    }\n    if (iframe) {\n      this.window = iframe.contentWindow;\n      this.document = iframe.contentDocument || this.window.document;\n      this.iframe = iframe;\n    } else {\n      this.document = this.$inputor[0].ownerDocument;\n      this.window = this.document.defaultView || this.document.parentWindow;\n      try {\n        this.iframe = this.window.frameElement;\n      } catch (error1) {\n        error = error1;\n        this.iframe = null;\n        if ($.fn.atwho.debug) {\n          throw new Error(\"iframe auto-discovery is failed.\\nPlease use `setIframe` to set the target iframe manually.\\n\" + error);\n        }\n      }\n    }\n    return this.createContainer((this.iframeAsRoot = asRoot) ? this.document : document);\n  };\n\n  App.prototype.controller = function(at) {\n    var c, current, currentFlag, ref;\n    if (this.aliasMaps[at]) {\n      current = this.controllers[this.aliasMaps[at]];\n    } else {\n      ref = this.controllers;\n      for (currentFlag in ref) {\n        c = ref[currentFlag];\n        if (currentFlag === at) {\n          current = c;\n          break;\n        }\n      }\n    }\n    if (current) {\n      return current;\n    } else {\n      return this.controllers[this.currentFlag];\n    }\n  };\n\n  App.prototype.setContextFor = function(at) {\n    this.currentFlag = at;\n    return this;\n  };\n\n  App.prototype.reg = function(flag, setting) {\n    var base, controller;\n    controller = (base = this.controllers)[flag] || (base[flag] = this.$inputor.is('[contentEditable]') ? new EditableController(this, flag) : new TextareaController(this, flag));\n    if (setting.alias) {\n      this.aliasMaps[setting.alias] = flag;\n    }\n    controller.init(setting);\n    return this;\n  };\n\n  App.prototype.listen = function() {\n    return this.$inputor.on('compositionstart', (function(_this) {\n      return function(e) {\n        var ref;\n        if ((ref = _this.controller()) != null) {\n          ref.view.hide();\n        }\n        _this.isComposing = true;\n        return null;\n      };\n    })(this)).on('compositionend', (function(_this) {\n      return function(e) {\n        _this.isComposing = false;\n        setTimeout(function(e) {\n          return _this.dispatch(e);\n        });\n        return null;\n      };\n    })(this)).on('keyup.atwhoInner', (function(_this) {\n      return function(e) {\n        return _this.onKeyup(e);\n      };\n    })(this)).on('keydown.atwhoInner', (function(_this) {\n      return function(e) {\n        return _this.onKeydown(e);\n      };\n    })(this)).on('blur.atwhoInner', (function(_this) {\n      return function(e) {\n        var c;\n        if (c = _this.controller()) {\n          c.expectedQueryCBId = null;\n          return c.view.hide(e, c.getOpt(\"displayTimeout\"));\n        }\n      };\n    })(this)).on('click.atwhoInner', (function(_this) {\n      return function(e) {\n        return _this.dispatch(e);\n      };\n    })(this)).on('scroll.atwhoInner', (function(_this) {\n      return function() {\n        var lastScrollTop;\n        lastScrollTop = _this.$inputor.scrollTop();\n        return function(e) {\n          var currentScrollTop, ref;\n          currentScrollTop = e.target.scrollTop;\n          if (lastScrollTop !== currentScrollTop) {\n            if ((ref = _this.controller()) != null) {\n              ref.view.hide(e);\n            }\n          }\n          lastScrollTop = currentScrollTop;\n          return true;\n        };\n      };\n    })(this)());\n  };\n\n  App.prototype.shutdown = function() {\n    var _, c, ref;\n    ref = this.controllers;\n    for (_ in ref) {\n      c = ref[_];\n      c.destroy();\n      delete this.controllers[_];\n    }\n    this.$inputor.off('.atwhoInner');\n    return this.$el.remove();\n  };\n\n  App.prototype.dispatch = function(e) {\n    var _, c, ref, results;\n    if (void 0 === e) {\n      return;\n    }\n    ref = this.controllers;\n    results = [];\n    for (_ in ref) {\n      c = ref[_];\n      results.push(c.lookUp(e));\n    }\n    return results;\n  };\n\n  App.prototype.onKeyup = function(e) {\n    var ref;\n    switch (e.keyCode) {\n      case KEY_CODE.ESC:\n        e.preventDefault();\n        if ((ref = this.controller()) != null) {\n          ref.view.hide();\n        }\n        break;\n      case KEY_CODE.DOWN:\n      case KEY_CODE.UP:\n      case KEY_CODE.CTRL:\n      case KEY_CODE.ENTER:\n        $.noop();\n        break;\n      case KEY_CODE.P:\n      case KEY_CODE.N:\n        if (!e.ctrlKey) {\n          this.dispatch(e);\n        }\n        break;\n      default:\n        this.dispatch(e);\n    }\n  };\n\n  App.prototype.onKeydown = function(e) {\n    var ref, view;\n    view = (ref = this.controller()) != null ? ref.view : void 0;\n    if (!(view && view.visible())) {\n      return;\n    }\n    switch (e.keyCode) {\n      case KEY_CODE.ESC:\n        e.preventDefault();\n        view.hide(e);\n        break;\n      case KEY_CODE.UP:\n        e.preventDefault();\n        view.prev();\n        break;\n      case KEY_CODE.DOWN:\n        e.preventDefault();\n        view.next();\n        break;\n      case KEY_CODE.P:\n        if (!e.ctrlKey) {\n          return;\n        }\n        e.preventDefault();\n        view.prev();\n        break;\n      case KEY_CODE.N:\n        if (!e.ctrlKey) {\n          return;\n        }\n        e.preventDefault();\n        view.next();\n        break;\n      case KEY_CODE.TAB:\n      case KEY_CODE.ENTER:\n      case KEY_CODE.SPACE:\n        if (!view.visible()) {\n          return;\n        }\n        if (!this.controller().getOpt('spaceSelectsMatch') && e.keyCode === KEY_CODE.SPACE) {\n          return;\n        }\n        if (!this.controller().getOpt('tabSelectsMatch') && e.keyCode === KEY_CODE.TAB) {\n          return;\n        }\n        if (view.highlighted()) {\n          e.preventDefault();\n          view.choose(e);\n        } else {\n          view.hide(e);\n        }\n        break;\n      default:\n        $.noop();\n    }\n  };\n\n  return App;\n\n})();\n\nvar Controller,\n  slice = [].slice;\n\nController = (function() {\n  Controller.prototype.uid = function() {\n    return (Math.random().toString(16) + \"000000000\").substr(2, 8) + (new Date().getTime());\n  };\n\n  function Controller(app, at1) {\n    this.app = app;\n    this.at = at1;\n    this.$inputor = this.app.$inputor;\n    this.id = this.$inputor[0].id || this.uid();\n    this.expectedQueryCBId = null;\n    this.setting = null;\n    this.query = null;\n    this.pos = 0;\n    this.range = null;\n    if ((this.$el = $(\"#atwho-ground-\" + this.id, this.app.$el)).length === 0) {\n      this.app.$el.append(this.$el = $(\"<div id='atwho-ground-\" + this.id + \"'></div>\"));\n    }\n    this.model = new Model(this);\n    this.view = new View(this);\n  }\n\n  Controller.prototype.init = function(setting) {\n    this.setting = $.extend({}, this.setting || $.fn.atwho[\"default\"], setting);\n    this.view.init();\n    return this.model.reload(this.setting.data);\n  };\n\n  Controller.prototype.destroy = function() {\n    this.trigger('beforeDestroy');\n    this.model.destroy();\n    this.view.destroy();\n    return this.$el.remove();\n  };\n\n  Controller.prototype.callDefault = function() {\n    var args, error, funcName;\n    funcName = arguments[0], args = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n    try {\n      return DEFAULT_CALLBACKS[funcName].apply(this, args);\n    } catch (error1) {\n      error = error1;\n      return $.error(error + \" Or maybe At.js doesn't have function \" + funcName);\n    }\n  };\n\n  Controller.prototype.trigger = function(name, data) {\n    var alias, eventName;\n    if (data == null) {\n      data = [];\n    }\n    data.push(this);\n    alias = this.getOpt('alias');\n    eventName = alias ? name + \"-\" + alias + \".atwho\" : name + \".atwho\";\n    return this.$inputor.trigger(eventName, data);\n  };\n\n  Controller.prototype.callbacks = function(funcName) {\n    return this.getOpt(\"callbacks\")[funcName] || DEFAULT_CALLBACKS[funcName];\n  };\n\n  Controller.prototype.getOpt = function(at, default_value) {\n    var e;\n    try {\n      return this.setting[at];\n    } catch (error1) {\n      e = error1;\n      return null;\n    }\n  };\n\n  Controller.prototype.insertContentFor = function($li) {\n    var data, tpl;\n    tpl = this.getOpt('insertTpl');\n    data = $.extend({}, $li.data('item-data'), {\n      'atwho-at': this.at\n    });\n    return this.callbacks(\"tplEval\").call(this, tpl, data, \"onInsert\");\n  };\n\n  Controller.prototype.renderView = function(data) {\n    var searchKey;\n    searchKey = this.getOpt(\"searchKey\");\n    data = this.callbacks(\"sorter\").call(this, this.query.text, data, searchKey);\n    return this.view.render(data.slice(0, this.getOpt('limit')));\n  };\n\n  Controller.arrayToDefaultHash = function(data) {\n    var i, item, len, results;\n    if (!$.isArray(data)) {\n      return data;\n    }\n    results = [];\n    for (i = 0, len = data.length; i < len; i++) {\n      item = data[i];\n      if ($.isPlainObject(item)) {\n        results.push(item);\n      } else {\n        results.push({\n          name: item\n        });\n      }\n    }\n    return results;\n  };\n\n  Controller.prototype.lookUp = function(e) {\n    var query, wait;\n    if (e && e.type === 'click' && !this.getOpt('lookUpOnClick')) {\n      return;\n    }\n    if (this.getOpt('suspendOnComposing') && this.app.isComposing) {\n      return;\n    }\n    query = this.catchQuery(e);\n    if (!query) {\n      this.expectedQueryCBId = null;\n      return query;\n    }\n    this.app.setContextFor(this.at);\n    if (wait = this.getOpt('delay')) {\n      this._delayLookUp(query, wait);\n    } else {\n      this._lookUp(query);\n    }\n    return query;\n  };\n\n  Controller.prototype._delayLookUp = function(query, wait) {\n    var now, remaining;\n    now = Date.now ? Date.now() : new Date().getTime();\n    this.previousCallTime || (this.previousCallTime = now);\n    remaining = wait - (now - this.previousCallTime);\n    if ((0 < remaining && remaining < wait)) {\n      this.previousCallTime = now;\n      this._stopDelayedCall();\n      return this.delayedCallTimeout = setTimeout((function(_this) {\n        return function() {\n          _this.previousCallTime = 0;\n          _this.delayedCallTimeout = null;\n          return _this._lookUp(query);\n        };\n      })(this), wait);\n    } else {\n      this._stopDelayedCall();\n      if (this.previousCallTime !== now) {\n        this.previousCallTime = 0;\n      }\n      return this._lookUp(query);\n    }\n  };\n\n  Controller.prototype._stopDelayedCall = function() {\n    if (this.delayedCallTimeout) {\n      clearTimeout(this.delayedCallTimeout);\n      return this.delayedCallTimeout = null;\n    }\n  };\n\n  Controller.prototype._generateQueryCBId = function() {\n    return {};\n  };\n\n  Controller.prototype._lookUp = function(query) {\n    var _callback;\n    _callback = function(queryCBId, data) {\n      if (queryCBId !== this.expectedQueryCBId) {\n        return;\n      }\n      if (data && data.length > 0) {\n        return this.renderView(this.constructor.arrayToDefaultHash(data));\n      } else {\n        return this.view.hide();\n      }\n    };\n    this.expectedQueryCBId = this._generateQueryCBId();\n    return this.model.query(query.text, $.proxy(_callback, this, this.expectedQueryCBId));\n  };\n\n  return Controller;\n\n})();\n\nvar TextareaController,\n  extend = 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  hasProp = {}.hasOwnProperty;\n\nTextareaController = (function(superClass) {\n  extend(TextareaController, superClass);\n\n  function TextareaController() {\n    return TextareaController.__super__.constructor.apply(this, arguments);\n  }\n\n  TextareaController.prototype.catchQuery = function() {\n    var caretPos, content, end, isString, query, start, subtext;\n    content = this.$inputor.val();\n    caretPos = this.$inputor.caret('pos', {\n      iframe: this.app.iframe\n    });\n    subtext = content.slice(0, caretPos);\n    query = this.callbacks(\"matcher\").call(this, this.at, subtext, this.getOpt('startWithSpace'), this.getOpt(\"acceptSpaceBar\"));\n    isString = typeof query === 'string';\n    if (isString && query.length < this.getOpt('minLen', 0)) {\n      return;\n    }\n    if (isString && query.length <= this.getOpt('maxLen', 20)) {\n      start = caretPos - query.length;\n      end = start + query.length;\n      this.pos = start;\n      query = {\n        'text': query,\n        'headPos': start,\n        'endPos': end\n      };\n      this.trigger(\"matched\", [this.at, query.text]);\n    } else {\n      query = null;\n      this.view.hide();\n    }\n    return this.query = query;\n  };\n\n  TextareaController.prototype.rect = function() {\n    var c, iframeOffset, scaleBottom;\n    if (!(c = this.$inputor.caret('offset', this.pos - 1, {\n      iframe: this.app.iframe\n    }))) {\n      return;\n    }\n    if (this.app.iframe && !this.app.iframeAsRoot) {\n      iframeOffset = $(this.app.iframe).offset();\n      c.left += iframeOffset.left;\n      c.top += iframeOffset.top;\n    }\n    scaleBottom = this.app.document.selection ? 0 : 2;\n    return {\n      left: c.left,\n      top: c.top,\n      bottom: c.top + c.height + scaleBottom\n    };\n  };\n\n  TextareaController.prototype.insert = function(content, $li) {\n    var $inputor, source, startStr, suffix, text;\n    $inputor = this.$inputor;\n    source = $inputor.val();\n    startStr = source.slice(0, Math.max(this.query.headPos - this.at.length, 0));\n    suffix = (suffix = this.getOpt('suffix')) === \"\" ? suffix : suffix || \" \";\n    content += suffix;\n    text = \"\" + startStr + content + (source.slice(this.query['endPos'] || 0));\n    $inputor.val(text);\n    $inputor.caret('pos', startStr.length + content.length, {\n      iframe: this.app.iframe\n    });\n    if (!$inputor.is(':focus')) {\n      $inputor.focus();\n    }\n    return $inputor.change();\n  };\n\n  return TextareaController;\n\n})(Controller);\n\nvar EditableController,\n  extend = 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  hasProp = {}.hasOwnProperty;\n\nEditableController = (function(superClass) {\n  extend(EditableController, superClass);\n\n  function EditableController() {\n    return EditableController.__super__.constructor.apply(this, arguments);\n  }\n\n  EditableController.prototype._getRange = function() {\n    var sel;\n    sel = this.app.window.getSelection();\n    if (sel.rangeCount > 0) {\n      return sel.getRangeAt(0);\n    }\n  };\n\n  EditableController.prototype._setRange = function(position, node, range) {\n    if (range == null) {\n      range = this._getRange();\n    }\n    if (!(range && node)) {\n      return;\n    }\n    node = $(node)[0];\n    if (position === 'after') {\n      range.setEndAfter(node);\n      range.setStartAfter(node);\n    } else {\n      range.setEndBefore(node);\n      range.setStartBefore(node);\n    }\n    range.collapse(false);\n    return this._clearRange(range);\n  };\n\n  EditableController.prototype._clearRange = function(range) {\n    var sel;\n    if (range == null) {\n      range = this._getRange();\n    }\n    sel = this.app.window.getSelection();\n    if (this.ctrl_a_pressed == null) {\n      sel.removeAllRanges();\n      return sel.addRange(range);\n    }\n  };\n\n  EditableController.prototype._movingEvent = function(e) {\n    var ref;\n    return e.type === 'click' || ((ref = e.which) === KEY_CODE.RIGHT || ref === KEY_CODE.LEFT || ref === KEY_CODE.UP || ref === KEY_CODE.DOWN);\n  };\n\n  EditableController.prototype._unwrap = function(node) {\n    var next;\n    node = $(node).unwrap().get(0);\n    if ((next = node.nextSibling) && next.nodeValue) {\n      node.nodeValue += next.nodeValue;\n      $(next).remove();\n    }\n    return node;\n  };\n\n  EditableController.prototype.catchQuery = function(e) {\n    var $inserted, $query, _range, index, inserted, isString, lastNode, matched, offset, query, query_content, range;\n    if (!(range = this._getRange())) {\n      return;\n    }\n    if (!range.collapsed) {\n      return;\n    }\n    if (e.which === KEY_CODE.ENTER) {\n      ($query = $(range.startContainer).closest('.atwho-query')).contents().unwrap();\n      if ($query.is(':empty')) {\n        $query.remove();\n      }\n      ($query = $(\".atwho-query\", this.app.document)).text($query.text()).contents().last().unwrap();\n      this._clearRange();\n      return;\n    }\n    if (/firefox/i.test(navigator.userAgent)) {\n      if ($(range.startContainer).is(this.$inputor)) {\n        this._clearRange();\n        return;\n      }\n      if (e.which === KEY_CODE.BACKSPACE && range.startContainer.nodeType === document.ELEMENT_NODE && (offset = range.startOffset - 1) >= 0) {\n        _range = range.cloneRange();\n        _range.setStart(range.startContainer, offset);\n        if ($(_range.cloneContents()).contents().last().is('.atwho-inserted')) {\n          inserted = $(range.startContainer).contents().get(offset);\n          this._setRange('after', $(inserted).contents().last());\n        }\n      } else if (e.which === KEY_CODE.LEFT && range.startContainer.nodeType === document.TEXT_NODE) {\n        $inserted = $(range.startContainer.previousSibling);\n        if ($inserted.is('.atwho-inserted') && range.startOffset === 0) {\n          this._setRange('after', $inserted.contents().last());\n        }\n      }\n    }\n    $(range.startContainer).closest('.atwho-inserted').addClass('atwho-query').siblings().removeClass('atwho-query');\n    if (($query = $(\".atwho-query\", this.app.document)).length > 0 && $query.is(':empty') && $query.text().length === 0) {\n      $query.remove();\n    }\n    if (!this._movingEvent(e)) {\n      $query.removeClass('atwho-inserted');\n    }\n    if ($query.length > 0) {\n      switch (e.which) {\n        case KEY_CODE.LEFT:\n          this._setRange('before', $query.get(0), range);\n          $query.removeClass('atwho-query');\n          return;\n        case KEY_CODE.RIGHT:\n          this._setRange('after', $query.get(0).nextSibling, range);\n          $query.removeClass('atwho-query');\n          return;\n      }\n    }\n    if ($query.length > 0 && (query_content = $query.attr('data-atwho-at-query'))) {\n      $query.empty().html(query_content).attr('data-atwho-at-query', null);\n      this._setRange('after', $query.get(0), range);\n    }\n    _range = range.cloneRange();\n    _range.setStart(range.startContainer, 0);\n    matched = this.callbacks(\"matcher\").call(this, this.at, _range.toString(), this.getOpt('startWithSpace'), this.getOpt(\"acceptSpaceBar\"));\n    isString = typeof matched === 'string';\n    if ($query.length === 0 && isString && (index = range.startOffset - this.at.length - matched.length) >= 0) {\n      range.setStart(range.startContainer, index);\n      $query = $('<span/>', this.app.document).attr(this.getOpt(\"editableAtwhoQueryAttrs\")).addClass('atwho-query');\n      range.surroundContents($query.get(0));\n      lastNode = $query.contents().last().get(0);\n      if (lastNode) {\n        if (/firefox/i.test(navigator.userAgent)) {\n          range.setStart(lastNode, lastNode.length);\n          range.setEnd(lastNode, lastNode.length);\n          this._clearRange(range);\n        } else {\n          this._setRange('after', lastNode, range);\n        }\n      }\n    }\n    if (isString && matched.length < this.getOpt('minLen', 0)) {\n      return;\n    }\n    if (isString && matched.length <= this.getOpt('maxLen', 20)) {\n      query = {\n        text: matched,\n        el: $query\n      };\n      this.trigger(\"matched\", [this.at, query.text]);\n      return this.query = query;\n    } else {\n      this.view.hide();\n      this.query = {\n        el: $query\n      };\n      if ($query.text().indexOf(this.at) >= 0) {\n        if (this._movingEvent(e) && $query.hasClass('atwho-inserted')) {\n          $query.removeClass('atwho-query');\n        } else if (false !== this.callbacks('afterMatchFailed').call(this, this.at, $query)) {\n          this._setRange(\"after\", this._unwrap($query.text($query.text()).contents().first()));\n        }\n      }\n      return null;\n    }\n  };\n\n  EditableController.prototype.rect = function() {\n    var $iframe, iframeOffset, rect;\n    rect = this.query.el.offset();\n    if (!(rect && this.query.el[0].getClientRects().length)) {\n      return;\n    }\n    if (this.app.iframe && !this.app.iframeAsRoot) {\n      iframeOffset = ($iframe = $(this.app.iframe)).offset();\n      rect.left += iframeOffset.left - this.$inputor.scrollLeft();\n      rect.top += iframeOffset.top - this.$inputor.scrollTop();\n    }\n    rect.bottom = rect.top + this.query.el.height();\n    return rect;\n  };\n\n  EditableController.prototype.insert = function(content, $li) {\n    var data, overrides, range, suffix, suffixNode;\n    if (!this.$inputor.is(':focus')) {\n      this.$inputor.focus();\n    }\n    overrides = this.getOpt('functionOverrides');\n    if (overrides.insert) {\n      return overrides.insert.call(this, content, $li);\n    }\n    suffix = (suffix = this.getOpt('suffix')) === \"\" ? suffix : suffix || \"\\u00A0\";\n    data = $li.data('item-data');\n    this.query.el.removeClass('atwho-query').addClass('atwho-inserted').html(content).attr('data-atwho-at-query', \"\" + data['atwho-at'] + this.query.text).attr('contenteditable', \"false\");\n    if (range = this._getRange()) {\n      if (this.query.el.length) {\n        range.setEndAfter(this.query.el[0]);\n      }\n      range.collapse(false);\n      range.insertNode(suffixNode = this.app.document.createTextNode(\"\" + suffix));\n      this._setRange('after', suffixNode, range);\n    }\n    if (!this.$inputor.is(':focus')) {\n      this.$inputor.focus();\n    }\n    return this.$inputor.change();\n  };\n\n  return EditableController;\n\n})(Controller);\n\nvar Model;\n\nModel = (function() {\n  function Model(context) {\n    this.context = context;\n    this.at = this.context.at;\n    this.storage = this.context.$inputor;\n  }\n\n  Model.prototype.destroy = function() {\n    return this.storage.data(this.at, null);\n  };\n\n  Model.prototype.saved = function() {\n    return this.fetch() > 0;\n  };\n\n  Model.prototype.query = function(query, callback) {\n    var _remoteFilter, data, searchKey;\n    data = this.fetch();\n    searchKey = this.context.getOpt(\"searchKey\");\n    data = this.context.callbacks('filter').call(this.context, query, data, searchKey) || [];\n    _remoteFilter = this.context.callbacks('remoteFilter');\n    if (data.length > 0 || (!_remoteFilter && data.length === 0)) {\n      return callback(data);\n    } else {\n      return _remoteFilter.call(this.context, query, callback);\n    }\n  };\n\n  Model.prototype.fetch = function() {\n    return this.storage.data(this.at) || [];\n  };\n\n  Model.prototype.save = function(data) {\n    return this.storage.data(this.at, this.context.callbacks(\"beforeSave\").call(this.context, data || []));\n  };\n\n  Model.prototype.load = function(data) {\n    if (!(this.saved() || !data)) {\n      return this._load(data);\n    }\n  };\n\n  Model.prototype.reload = function(data) {\n    return this._load(data);\n  };\n\n  Model.prototype._load = function(data) {\n    if (typeof data === \"string\") {\n      throw new Error(\"@gitlab/at.js removed support for $.ajax\");\n    } else {\n      return this.save(data);\n    }\n  };\n\n  return Model;\n\n})();\n\nvar View;\n\nView = (function() {\n  function View(context) {\n    this.context = context;\n    this.$el = $(\"<div class='atwho-view'><ul class='atwho-view-ul'></ul></div>\");\n    this.$elUl = this.$el.children();\n    this.timeoutID = null;\n    this.context.$el.append(this.$el);\n    this.bindEvent();\n  }\n\n  View.prototype.init = function() {\n    var header_tpl, id;\n    id = this.context.getOpt(\"alias\") || this.context.at.charCodeAt(0);\n    header_tpl = this.context.getOpt(\"headerTpl\");\n    if (header_tpl && this.$el.children().length === 1) {\n      this.$el.prepend(header_tpl);\n    }\n    return this.$el.attr({\n      'id': \"at-view-\" + id\n    });\n  };\n\n  View.prototype.destroy = function() {\n    return this.$el.remove();\n  };\n\n  View.prototype.bindEvent = function() {\n    var $menu, lastCoordX, lastCoordY;\n    $menu = this.$el.find('ul');\n    lastCoordX = 0;\n    lastCoordY = 0;\n    return $menu.on('mousemove.atwho-view', 'li', (function(_this) {\n      return function(e) {\n        var $cur;\n        if (lastCoordX === e.clientX && lastCoordY === e.clientY) {\n          return;\n        }\n        lastCoordX = e.clientX;\n        lastCoordY = e.clientY;\n        $cur = $(e.currentTarget);\n        if ($cur.hasClass('cur')) {\n          return;\n        }\n        $menu.find('.cur').removeClass('cur');\n        return $cur.addClass('cur');\n      };\n    })(this)).on('click.atwho-view', 'li', (function(_this) {\n      return function(e) {\n        $menu.find('.cur').removeClass('cur');\n        $(e.currentTarget).addClass('cur');\n        _this.choose(e);\n        return e.preventDefault();\n      };\n    })(this));\n  };\n\n  View.prototype.visible = function() {\n    return $.expr.filters.visible(this.$el[0]);\n  };\n\n  View.prototype.highlighted = function() {\n    return this.$el.find(\".cur\").length > 0;\n  };\n\n  View.prototype.choose = function(e) {\n    var $li, content;\n    if (($li = this.$el.find(\".cur\")).length) {\n      content = this.context.insertContentFor($li);\n      this.context._stopDelayedCall();\n      this.context.insert(this.context.callbacks(\"beforeInsert\").call(this.context, content, $li, e), $li);\n      this.context.trigger(\"inserted\", [$li, e]);\n      this.hide(e);\n    }\n    if (this.context.getOpt(\"hideWithoutSuffix\")) {\n      return this.stopShowing = true;\n    }\n  };\n\n  View.prototype.reposition = function(rect) {\n    var _window, offset, overflowOffset, ref;\n    _window = this.context.app.iframeAsRoot ? this.context.app.window : window;\n    if (rect.bottom + this.$el.height() - $(_window).scrollTop() > $(_window).height()) {\n      rect.bottom = rect.top - this.$el.height();\n    }\n    if (rect.left > (overflowOffset = $(_window).width() - this.$el.width() - 5)) {\n      rect.left = overflowOffset;\n    }\n    offset = {\n      left: rect.left,\n      top: rect.bottom\n    };\n    if ((ref = this.context.callbacks(\"beforeReposition\")) != null) {\n      ref.call(this.context, offset);\n    }\n    this.$el.offset(offset);\n    return this.context.trigger(\"reposition\", [offset]);\n  };\n\n  View.prototype.next = function() {\n    var cur, next, nextEl, offset;\n    cur = this.$el.find('.cur').removeClass('cur');\n    next = cur.next();\n    if (!next.length) {\n      next = this.$el.find('li:first');\n    }\n    next.addClass('cur');\n    nextEl = next[0];\n    offset = nextEl.offsetTop + nextEl.offsetHeight + (nextEl.nextSibling ? nextEl.nextSibling.offsetHeight : 0);\n    return this.scrollTop(Math.max(0, offset - this.$el.height()));\n  };\n\n  View.prototype.prev = function() {\n    var cur, offset, prev, prevEl;\n    cur = this.$el.find('.cur').removeClass('cur');\n    prev = cur.prev();\n    if (!prev.length) {\n      prev = this.$el.find('li:last');\n    }\n    prev.addClass('cur');\n    prevEl = prev[0];\n    offset = prevEl.offsetTop + prevEl.offsetHeight + (prevEl.nextSibling ? prevEl.nextSibling.offsetHeight : 0);\n    return this.scrollTop(Math.max(0, offset - this.$el.height()));\n  };\n\n  View.prototype.scrollTop = function(scrollTop) {\n    return this.$elUl.scrollTop(scrollTop);\n  };\n\n  View.prototype.show = function() {\n    var rect;\n    if (this.stopShowing) {\n      this.stopShowing = false;\n      return;\n    }\n    if (!this.visible()) {\n      this.$el.show();\n      this.$el.scrollTop(0);\n      this.context.trigger('shown');\n    }\n    if (rect = this.context.rect()) {\n      return this.reposition(rect);\n    }\n  };\n\n  View.prototype.hide = function(e, time) {\n    var callback;\n    if (!this.visible()) {\n      return;\n    }\n    if (isNaN(time)) {\n      this.$el.hide();\n      return this.context.trigger('hidden', [e]);\n    } else {\n      callback = (function(_this) {\n        return function() {\n          return _this.hide();\n        };\n      })(this);\n      clearTimeout(this.timeoutID);\n      return this.timeoutID = setTimeout(callback, time);\n    }\n  };\n\n  View.prototype.render = function(list) {\n    var $li, $ul, i, item, len, li, tpl;\n    if (!($.isArray(list) && list.length > 0)) {\n      this.hide();\n      return;\n    }\n    this.$el.find('ul').empty();\n    $ul = this.$el.find('ul');\n    tpl = this.context.getOpt('displayTpl');\n    for (i = 0, len = list.length; i < len; i++) {\n      item = list[i];\n      item = $.extend({}, item, {\n        'atwho-at': this.context.at\n      });\n      li = this.context.callbacks(\"tplEval\").call(this.context, tpl, item, \"onDisplay\");\n      $li = $(this.context.callbacks(\"highlighter\").call(this.context, li, this.context.query.text));\n      $li.data(\"item-data\", item);\n      $ul.append($li);\n    }\n    this.show();\n    if (this.context.getOpt('highlightFirst')) {\n      return $ul.find(\"li:first\").addClass(\"cur\");\n    }\n  };\n\n  return View;\n\n})();\n\nvar Api;\n\nApi = {\n  load: function(at, data) {\n    var c;\n    if (c = this.controller(at)) {\n      return c.model.load(data);\n    }\n  },\n  isSelecting: function() {\n    var ref;\n    return !!((ref = this.controller()) != null ? ref.view.visible() : void 0);\n  },\n  hide: function() {\n    var ref;\n    return (ref = this.controller()) != null ? ref.view.hide() : void 0;\n  },\n  reposition: function() {\n    var c;\n    if (c = this.controller()) {\n      return c.view.reposition(c.rect());\n    }\n  },\n  setIframe: function(iframe, asRoot) {\n    this.setupRootElement(iframe, asRoot);\n    return null;\n  },\n  run: function() {\n    return this.dispatch();\n  },\n  destroy: function() {\n    this.shutdown();\n    return this.$inputor.data('atwho', null);\n  }\n};\n\n$.fn.atwho = function(method) {\n  var _args, result;\n  _args = arguments;\n  result = null;\n  this.filter('textarea, input, [contenteditable=\"\"], [contenteditable=true]').each(function() {\n    var $this, app;\n    if (!(app = ($this = $(this)).data(\"atwho\"))) {\n      $this.data('atwho', (app = new App(this)));\n    }\n    if (typeof method === 'object' || !method) {\n      return app.reg(method.at, method);\n    } else if (Api[method] && app) {\n      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));\n    } else {\n      return $.error(\"Method \" + method + \" does not exist on jQuery.atwho\");\n    }\n  });\n  if (result != null) {\n    return result;\n  } else {\n    return this;\n  }\n};\n\n$.fn.atwho[\"default\"] = {\n  at: void 0,\n  alias: void 0,\n  data: null,\n  displayTpl: \"<li>${name}</li>\",\n  insertTpl: \"${atwho-at}${name}\",\n  headerTpl: null,\n  callbacks: DEFAULT_CALLBACKS,\n  functionOverrides: {},\n  searchKey: \"name\",\n  suffix: void 0,\n  hideWithoutSuffix: false,\n  startWithSpace: true,\n  acceptSpaceBar: false,\n  highlightFirst: true,\n  limit: 5,\n  maxLen: 20,\n  minLen: 0,\n  displayTimeout: 300,\n  delay: null,\n  spaceSelectsMatch: false,\n  tabSelectsMatch: true,\n  editableAtwhoQueryAttrs: {},\n  scrollDuration: 150,\n  suspendOnComposing: true,\n  lookUpOnClick: true\n};\n\n$.fn.atwho.debug = false;\n\n}));\n","import Vue from 'vue';\n\nexport default Vue.observable({\n  selectedProject: {},\n});\n","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","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 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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignFile\"},\"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\":\"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\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":285}};\n    doc.loc.source = {\"body\":\"#import \\\"./diff_refs.fragment.graphql\\\"\\n\\nfragment DesignFile on Design {\\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\",\"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));\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[\"DesignFile\"] = oneQuery(doc, \"DesignFile\");\n        \n","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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getWorkItemStateCounts\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"includeDescendants\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":true},\"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\":\"sort\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemSort\"}},\"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\":\"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\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"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\":\"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\":\"not\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NegatedWorkItemFilterInput\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UnionedWorkItemFilterInput\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isGroup\"}},\"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\":\"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\":\"workItemStateCounts\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeDescendants\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"includeDescendants\"}}},{\"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\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"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\":\"not\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}}}],\"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\":\"opened\"},\"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\":\"skip\"},\"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\":\"workItemStateCounts\"},\"arguments\":[{\"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\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"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\":\"not\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}}}],\"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\":\"opened\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":1638}};\n    doc.loc.source = {\"body\":\"query getWorkItemStateCounts(\\n  $includeDescendants: Boolean = true\\n  $fullPath: ID!\\n  $sort: WorkItemSort\\n  $state: IssuableState\\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  $types: [IssueType!]\\n  $not: NegatedWorkItemFilterInput\\n  $or: UnionedWorkItemFilterInput\\n  $isGroup: Boolean = true\\n) {\\n  group(fullPath: $fullPath) @include(if: $isGroup) {\\n    id\\n    workItemStateCounts(\\n      includeDescendants: $includeDescendants\\n      sort: $sort\\n      state: $state\\n      assigneeUsernames: $assigneeUsernames\\n      assigneeWildcardId: $assigneeWildcardId\\n      authorUsername: $authorUsername\\n      confidential: $confidential\\n      labelName: $labelName\\n      milestoneTitle: $milestoneTitle\\n      milestoneWildcardId: $milestoneWildcardId\\n      myReactionEmoji: $myReactionEmoji\\n      types: $types\\n      not: $not\\n      or: $or\\n    ) {\\n      all\\n      closed\\n      opened\\n    }\\n  }\\n  project(fullPath: $fullPath) @skip(if: $isGroup) {\\n    id\\n    workItemStateCounts(\\n      sort: $sort\\n      state: $state\\n      assigneeUsernames: $assigneeUsernames\\n      assigneeWildcardId: $assigneeWildcardId\\n      authorUsername: $authorUsername\\n      confidential: $confidential\\n      labelName: $labelName\\n      milestoneTitle: $milestoneTitle\\n      milestoneWildcardId: $milestoneWildcardId\\n      myReactionEmoji: $myReactionEmoji\\n      types: $types\\n      not: $not\\n      or: $or\\n    ) {\\n      all\\n      closed\\n      opened\\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[\"getWorkItemStateCounts\"] = oneQuery(doc, \"getWorkItemStateCounts\");\n        \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\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemNoteUpdated\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"noteableId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NoteableID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemNoteUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"noteableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"noteableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemNote\"},\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":214}};\n    doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/work_items/graphql/notes/work_item_note.fragment.graphql\\\"\\n\\nsubscription workItemNoteUpdated($noteableId: NoteableID) {\\n  workItemNoteUpdated(noteableId: $noteableId) {\\n    ...WorkItemNote\\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/notes/work_item_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[\"workItemNoteUpdated\"] = oneQuery(doc, \"workItemNoteUpdated\");\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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemAncestorsUpdated\"},\"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\":\"workItemUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemId\"},\"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\":176}};\n    doc.loc.source = {\"body\":\"#import \\\"./work_item_ancestors.fragment.graphql\\\"\\n\\nsubscription workItemAncestorsUpdated($id: WorkItemID!) {\\n  workItemUpdated(workItemId: $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[\"workItemAncestorsUpdated\"] = oneQuery(doc, \"workItemAncestorsUpdated\");\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","// Constants used by table helpers\n\nconst FIELD_KEY_CELL_VARIANT = '_cellVariants';\nconst FIELD_KEY_ROW_VARIANT = '_rowVariant';\nconst FIELD_KEY_SHOW_DETAILS = '_showDetails';\n\n// Object of item keys that should be ignored for headers and\n// stringification and filter events\nconst IGNORED_FIELD_KEYS = [FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT, FIELD_KEY_SHOW_DETAILS].reduce((result, key) => ({\n  ...result,\n  [key]: true\n}), {});\n\n// Filter CSS selector for click/dblclick/etc. events\n// If any of these selectors match the clicked element, we ignore the event\nconst EVENT_FILTER = ['a', 'a *',\n// Include content inside links\n'button', 'button *',\n// Include content inside buttons\n'input:not(.disabled):not([disabled])', 'select:not(.disabled):not([disabled])', 'textarea:not(.disabled):not([disabled])', '[role=\"link\"]', '[role=\"link\"] *', '[role=\"button\"]', '[role=\"button\"] *', '[tabindex]:not(.disabled):not([disabled])'].join(',');\n\nexport { EVENT_FILTER, FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT, FIELD_KEY_SHOW_DETAILS, IGNORED_FIELD_KEYS };\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","import { extend } from '../../../vue';\nimport { SLOT_NAME_TABLE_COLGROUP } from '../../../constants/slots';\n\n// --- Props ---\n\nconst props = {};\n\n// --- Mixin ---\n\n// @vue/component\nconst colgroupMixin = extend({\n  methods: {\n    renderColgroup() {\n      const {\n        computedFields: fields\n      } = this;\n      const h = this.$createElement;\n      let $colgroup = h();\n      if (this.hasNormalizedSlot(SLOT_NAME_TABLE_COLGROUP)) {\n        $colgroup = h('colgroup', {\n          key: 'colgroup'\n        }, [this.normalizeSlot(SLOT_NAME_TABLE_COLGROUP, {\n          columns: fields.length,\n          fields\n        })]);\n      }\n      return $colgroup;\n    }\n  }\n});\n\nexport { colgroupMixin, props };\n","import cloneDeep from 'lodash/cloneDeep';\nimport isEqual from 'lodash/isEqual';\nimport GlToken from '../token/token';\nimport { stopEvent } from '../../../utils/utils';\nimport GlFilteredSearchTokenSegment from './filtered_search_token_segment';\nimport { tokenToOption, createTerm, TOKEN_CLOSE_SELECTOR } from './filtered_search_utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst SEGMENT_TITLE = 'TYPE';\nconst SEGMENT_OPERATOR = 'OPERATOR';\nconst SEGMENT_DATA = 'DATA';\nconst DEFAULT_OPERATORS = [{\n  value: '=',\n  description: 'is',\n  default: true\n}, {\n  value: '!=',\n  description: 'is not'\n}];\nvar script = {\n  name: 'GlFilteredSearchToken',\n  // FIXME: temporary workaround to ensure compatibility with @vue/compat\n  __v_skip: true,\n  components: {\n    GlToken,\n    GlFilteredSearchTokenSegment\n  },\n  inheritAttrs: false,\n  props: {\n    availableTokens: {\n      type: Array,\n      required: false,\n      default: () => []\n    },\n    /**\n     * Token configuration with available operators and options.\n     */\n    config: {\n      type: Object,\n      required: false,\n      default: () => ({})\n    },\n    /**\n     * Determines if the token is being edited or not.\n     */\n    active: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    multiSelectValues: {\n      type: Array,\n      required: false,\n      default: () => []\n    },\n    /**\n     * Current token value.\n     */\n    value: {\n      type: Object,\n      required: false,\n      default: () => ({\n        operator: '',\n        data: ''\n      })\n    },\n    /**\n     * Display operators' descriptions instead of their values (e.g., \"is\" instead of \"=\").\n     */\n    showFriendlyText: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    cursorPosition: {\n      type: String,\n      required: false,\n      default: 'end',\n      validator: value => ['start', 'end'].includes(value)\n    },\n    viewOnly: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    dataSegmentInputAttributes: {\n      type: Object,\n      required: false,\n      default: () => ({})\n    }\n  },\n  data() {\n    return {\n      activeSegment: null,\n      tokenValue: cloneDeep(this.value),\n      intendedCursorPosition: this.cursorPosition\n    };\n  },\n  computed: {\n    operators() {\n      return this.config.operators || DEFAULT_OPERATORS;\n    },\n    tokenEmpty() {\n      var _this$tokenValue$data;\n      return ((_this$tokenValue$data = this.tokenValue.data) === null || _this$tokenValue$data === void 0 ? void 0 : _this$tokenValue$data.length) === 0;\n    },\n    hasDataOrDataSegmentIsCurrentlyActive() {\n      const hasData = !this.tokenEmpty;\n      return hasData || this.isSegmentActive(SEGMENT_DATA);\n    },\n    availableTokensWithSelf() {\n      return [this.config, ...this.availableTokens.filter(token => token !== this.config)].map(\n      // eslint-disable-next-line unicorn/no-array-callback-reference\n      tokenToOption);\n    },\n    operatorDescription() {\n      const operator = this.operators.find(op => op.value === this.tokenValue.operator);\n      return this.showFriendlyText ? operator === null || operator === void 0 ? void 0 : operator.description : operator === null || operator === void 0 ? void 0 : operator.value;\n    },\n    eventListeners() {\n      return this.viewOnly ? {} : {\n        mousedown: this.stopMousedownOnCloseButton,\n        close: this.destroyByClose\n      };\n    }\n  },\n  segments: {\n    SEGMENT_TITLE,\n    SEGMENT_DATA,\n    SEGMENT_OPERATOR\n  },\n  watch: {\n    tokenValue: {\n      deep: true,\n      handler(newValue) {\n        /**\n         * Emitted when the token changes its value.\n         *\n         * @event input\n         * @type {object} dataObj Object containing the update value.\n         */\n        this.$emit('input', newValue);\n      }\n    },\n    value: {\n      handler(newValue, oldValue) {\n        if (isEqual(newValue === null || newValue === void 0 ? void 0 : newValue.data, oldValue === null || oldValue === void 0 ? void 0 : oldValue.data) && (newValue === null || newValue === void 0 ? void 0 : newValue.operator) === (oldValue === null || oldValue === void 0 ? void 0 : oldValue.operator)) {\n          return;\n        }\n        this.tokenValue = cloneDeep(newValue);\n      }\n    },\n    active: {\n      immediate: true,\n      handler(tokenIsActive) {\n        if (tokenIsActive) {\n          this.intendedCursorPosition = this.cursorPosition;\n          if (!this.activeSegment) {\n            this.activateSegment(this.tokenEmpty ? SEGMENT_OPERATOR : SEGMENT_DATA);\n          }\n        } else {\n          this.activeSegment = null;\n\n          // restore multi select values if we have them\n          // otherwise destroy the token\n          if (this.config.multiSelect) {\n            this.$emit('input', {\n              ...this.tokenValue,\n              data: this.multiSelectValues || ''\n            });\n          }\n          if (this.tokenEmpty && this.multiSelectValues.length === 0) {\n            /**\n             * Emitted when token is about to be destroyed.\n             *\n             * @event destroy\n             */\n            this.$emit('destroy');\n          }\n        }\n      }\n    }\n  },\n  created() {\n    if (!('operator' in this.tokenValue)) {\n      if (this.operators.length === 1) {\n        const operator = this.operators[0].value;\n        this.$emit('input', {\n          ...this.tokenValue,\n          operator\n        });\n        this.activeSegment = SEGMENT_DATA;\n      } else {\n        this.$emit('input', {\n          ...this.tokenValue,\n          operator: ''\n        });\n      }\n    }\n  },\n  methods: {\n    activateSegment(segment) {\n      if (this.viewOnly) return;\n      this.activeSegment = segment;\n      if (!this.active) {\n        /**\n         * Emitted when this term token is clicked.\n         *\n         * @event activate\n         */\n        this.$emit('activate');\n      }\n    },\n    getAdditionalSegmentClasses(segment) {\n      if (this.viewOnly) {\n        return 'gl-cursor-text';\n      }\n      return {\n        'gl-cursor-pointer': !this.isSegmentActive(segment)\n      };\n    },\n    isSegmentActive(segment) {\n      return this.active && this.activeSegment === segment;\n    },\n    replaceWithTermIfEmpty() {\n      if (this.tokenValue.operator === '' && this.tokenEmpty) {\n        /**\n         * Emitted when this token is converted to another type\n         * @property {object} token Replacement token configuration\n         */\n        this.$emit('replace', createTerm(this.config.title));\n      }\n    },\n    replaceToken(newType) {\n      const newTokenConfig = this.availableTokens.find(_ref => {\n        let {\n          type\n        } = _ref;\n        return type === newType;\n      });\n      if (newTokenConfig === this.config) {\n        this.$nextTick(() => {\n          /**\n           * Emitted when this term token will lose its focus.\n           *\n           * @event deactivate\n           */\n          this.$emit('deactivate');\n        });\n        return;\n      }\n      if (newTokenConfig) {\n        const isCompatible = this.config.dataType && this.config.dataType === newTokenConfig.dataType;\n        this.$emit('replace', {\n          type: newTokenConfig.type,\n          value: isCompatible ? this.tokenValue : {\n            data: ''\n          }\n        });\n      }\n    },\n    handleOperatorKeydown(evt, _ref2) {\n      let {\n        inputValue,\n        suggestedValue,\n        applySuggestion\n      } = _ref2;\n      const {\n        key\n      } = evt;\n      if (key === ' ' || key === 'Spacebar') {\n        applySuggestion(suggestedValue);\n        return;\n      }\n      const potentialValue = `${inputValue}${key}`;\n      if (key.length === 1 && !this.operators.find(_ref3 => {\n        let {\n          value\n        } = _ref3;\n        return value.startsWith(potentialValue);\n      })) {\n        if (this.tokenEmpty) {\n          applySuggestion(suggestedValue);\n        } else {\n          evt.preventDefault();\n        }\n      }\n    },\n    activateDataSegment() {\n      if (this.config.multiSelect) {\n        this.$emit('input', {\n          ...this.tokenValue,\n          data: ''\n        });\n      }\n      this.activateSegment(this.$options.segments.SEGMENT_DATA);\n    },\n    activatePreviousOperatorSegment() {\n      this.activateSegment(this.$options.segments.SEGMENT_OPERATOR);\n      this.intendedCursorPosition = 'end';\n    },\n    activatePreviousTitleSegment() {\n      this.activateSegment(this.$options.segments.SEGMENT_TITLE);\n      this.intendedCursorPosition = 'end';\n    },\n    activateNextDataSegment() {\n      this.activateDataSegment();\n      this.intendedCursorPosition = 'start';\n    },\n    activateNextOperatorSegment() {\n      this.activateSegment(this.$options.segments.SEGMENT_OPERATOR);\n      this.intendedCursorPosition = 'start';\n    },\n    handleComplete(value) {\n      /**\n       * Emitted when the token entry has been completed.\n       *\n       * @event complete\n       */\n      this.$emit('complete', value);\n    },\n    stopMousedownOnCloseButton(event) {\n      if (event.target.closest(TOKEN_CLOSE_SELECTOR)) {\n        stopEvent(event);\n      }\n    },\n    destroyByClose() {\n      this.$emit('destroy');\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-filtered-search-token\",class:{\n    'gl-filtered-search-token-active': _vm.active,\n    'gl-filtered-search-token-hover': !_vm.viewOnly,\n    'gl-cursor-default': _vm.viewOnly,\n  },attrs:{\"data-testid\":\"filtered-search-token\"}},[_c('gl-filtered-search-token-segment',{key:\"title-segment\",attrs:{\"value\":_vm.config.title,\"active\":_vm.isSegmentActive(_vm.$options.segments.SEGMENT_TITLE),\"cursor-position\":_vm.intendedCursorPosition,\"options\":_vm.availableTokensWithSelf,\"view-only\":_vm.viewOnly},on:{\"activate\":function($event){return _vm.activateSegment(_vm.$options.segments.SEGMENT_TITLE)},\"deactivate\":function($event){return _vm.$emit('deactivate')},\"complete\":_vm.replaceToken,\"backspace\":function($event){return _vm.$emit('destroy')},\"submit\":function($event){return _vm.$emit('submit')},\"previous\":function($event){return _vm.$emit('previous')},\"next\":_vm.activateNextOperatorSegment},scopedSlots:_vm._u([{key:\"view\",fn:function(ref){\n  var inputValue = ref.inputValue;\nreturn [_c('gl-token',{staticClass:\"gl-filtered-search-token-type\",class:_vm.getAdditionalSegmentClasses(_vm.$options.segments.SEGMENT_TITLE),attrs:{\"view-only\":\"\"}},[_vm._v(\"\\n        \"+_vm._s(inputValue)+\"\\n      \")])]}}])}),_vm._v(\" \"),_c('gl-filtered-search-token-segment',{key:\"operator-segment\",attrs:{\"active\":_vm.isSegmentActive(_vm.$options.segments.SEGMENT_OPERATOR),\"cursor-position\":_vm.intendedCursorPosition,\"options\":_vm.operators,\"option-text-field\":\"value\",\"custom-input-keydown-handler\":_vm.handleOperatorKeydown,\"view-only\":_vm.viewOnly},on:{\"activate\":function($event){return _vm.activateSegment(_vm.$options.segments.SEGMENT_OPERATOR)},\"backspace\":_vm.replaceWithTermIfEmpty,\"complete\":function($event){return _vm.activateSegment(_vm.$options.segments.SEGMENT_DATA)},\"deactivate\":function($event){return _vm.$emit('deactivate')},\"previous\":_vm.activatePreviousTitleSegment,\"next\":_vm.activateNextDataSegment},scopedSlots:_vm._u([{key:\"view\",fn:function(){return [_c('gl-token',{staticClass:\"gl-filtered-search-token-operator\",class:_vm.getAdditionalSegmentClasses(_vm.$options.segments.SEGMENT_OPERATOR),attrs:{\"variant\":\"search-value\",\"view-only\":\"\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.operatorDescription)+\"\\n      \")])]},proxy:true},{key:\"option\",fn:function(ref){\n  var option = ref.option;\nreturn [_c('div',{staticClass:\"gl-flex\"},[_vm._v(\"\\n        \"+_vm._s(_vm.showFriendlyText ? option.description : option.value)+\"\\n        \"),(option.description)?_c('span',{staticClass:\"gl-filtered-search-token-operator-description\"},[_vm._v(\"\\n          \"+_vm._s(_vm.showFriendlyText ? option.value : option.description)+\"\\n        \")]):_vm._e()])]}}]),model:{value:(_vm.tokenValue.operator),callback:function ($$v) {_vm.$set(_vm.tokenValue, \"operator\", $$v);},expression:\"tokenValue.operator\"}}),_vm._v(\" \"),(_vm.hasDataOrDataSegmentIsCurrentlyActive)?_c('gl-filtered-search-token-segment',{key:\"data-segment\",attrs:{\"active\":_vm.isSegmentActive(_vm.$options.segments.SEGMENT_DATA),\"cursor-position\":_vm.intendedCursorPosition,\"multi-select\":_vm.config.multiSelect,\"options\":_vm.config.options,\"view-only\":_vm.viewOnly,\"search-input-attributes\":_vm.dataSegmentInputAttributes},on:{\"activate\":_vm.activateDataSegment,\"backspace\":function($event){return _vm.activateSegment(_vm.$options.segments.SEGMENT_OPERATOR)},\"complete\":_vm.handleComplete,\"select\":function($event){return _vm.$emit('select', $event)},\"submit\":function($event){return _vm.$emit('submit')},\"deactivate\":function($event){return _vm.$emit('deactivate')},\"split\":function($event){return _vm.$emit('split', $event)},\"previous\":_vm.activatePreviousOperatorSegment,\"next\":function($event){return _vm.$emit('next')}},scopedSlots:_vm._u([{key:\"before-input\",fn:function(scope){return [_vm._t(\"before-data-segment-input\",null,null,scope)]}},{key:\"suggestions\",fn:function(){return [_vm._t(\"suggestions\")]},proxy:true},{key:\"view\",fn:function(ref){\n  var inputValue = ref.inputValue;\nreturn [_vm._t(\"view-token\",function(){return [_c('gl-token',_vm._g({staticClass:\"gl-filtered-search-token-data\",class:_vm.getAdditionalSegmentClasses(_vm.$options.segments.SEGMENT_DATA),attrs:{\"variant\":\"search-value\",\"view-only\":_vm.viewOnly}},_vm.eventListeners),[_c('span',{staticClass:\"gl-filtered-search-token-data-content\"},[_vm._t(\"view\",function(){return [_vm._v(_vm._s(inputValue))]},null,{ inputValue: inputValue })],2)])]},null,{\n          inputValue: inputValue,\n          listeners: _vm.eventListeners,\n          cssClasses: Object.assign({}, {'gl-filtered-search-token-data': true},\n            _vm.getAdditionalSegmentClasses(_vm.$options.segments.SEGMENT_DATA)),\n        })]}}],null,true),model:{value:(_vm.tokenValue.data),callback:function ($$v) {_vm.$set(_vm.tokenValue, \"data\", $$v);},expression:\"tokenValue.data\"}}):_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 { 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\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemParent\"},\"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\":\"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\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":87}};\n    doc.loc.source = {\"body\":\"query workItemParent($fullPath: ID!) {\\n  namespace(fullPath: $fullPath) {\\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[\"workItemParent\"] = oneQuery(doc, \"workItemParent\");\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 { extend } from '../../vue';\nimport { NAME_THEAD } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n  // Also sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n  // Supported values: 'lite', 'dark', or `null`\n  headVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_THEAD);\n\n// --- Main component ---\n\n// TODO:\n//   In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n//   to the child elements, so this can be converted to a functional component\n// @vue/component\nconst BThead = /*#__PURE__*/extend({\n  name: NAME_THEAD,\n  mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n  provide() {\n    return {\n      getBvTableRowGroup: () => this\n    };\n  },\n  inject: {\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    getBvTable: {\n      default: /* istanbul ignore next */() => () => ({})\n    }\n  },\n  inheritAttrs: false,\n  props,\n  computed: {\n    bvTable() {\n      return this.getBvTable();\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    isThead() {\n      return true;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    isDark() {\n      return this.bvTable.dark;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    isStacked() {\n      return this.bvTable.isStacked;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    isResponsive() {\n      return this.bvTable.isResponsive;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    // Needed to handle header background classes, due to lack of\n    // background color inheritance with Bootstrap v4 table CSS\n    // Sticky headers only apply to cells in table `thead`\n    isStickyHeader() {\n      return !this.isStacked && this.bvTable.stickyHeader;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    // Needed to handle header background classes, due to lack of\n    // background color inheritance with Bootstrap v4 table CSS\n    hasStickyHeader() {\n      return !this.isStacked && this.bvTable.stickyHeader;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    tableVariant() {\n      return this.bvTable.tableVariant;\n    },\n    theadClasses() {\n      return [this.headVariant ? `thead-${this.headVariant}` : null];\n    },\n    theadAttrs() {\n      return {\n        role: 'rowgroup',\n        ...this.bvAttrs\n      };\n    }\n  },\n  render(h) {\n    return h('thead', {\n      class: this.theadClasses,\n      attrs: this.theadAttrs,\n      // Pass down any native listeners\n      on: this.bvListeners\n    }, this.normalizeSlot());\n  }\n});\n\nexport { BThead, props };\n","import { extend } from '../../../vue';\nimport { EVENT_NAME_HEAD_CLICKED } from '../../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../../constants/key-codes';\nimport { PROP_TYPE_STRING, PROP_TYPE_ARRAY_OBJECT_STRING } from '../../../constants/props';\nimport { SLOT_NAME_THEAD_TOP } from '../../../constants/slots';\nimport { stopEvent } from '../../../utils/events';\nimport { htmlOrText } from '../../../utils/html';\nimport { identity } from '../../../utils/identity';\nimport { isUndefinedOrNull } from '../../../utils/inspect';\nimport { noop } from '../../../utils/noop';\nimport { makeProp } from '../../../utils/props';\nimport { safeVueInstance } from '../../../utils/safe-vue-instance';\nimport { startCase } from '../../../utils/string';\nimport { BThead } from '../thead';\nimport { BTfoot } from '../tfoot';\nimport { BTr } from '../tr';\nimport { BTh } from '../th';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active';\n\n// --- Helper methods ---\n\nconst getHeadSlotName = value => `head(${value || ''})`;\nconst getFootSlotName = value => `foot(${value || ''})`;\n\n// --- Props ---\n\nconst props = {\n  // Any Bootstrap theme variant (or custom)\n  headRowVariant: makeProp(PROP_TYPE_STRING),\n  // 'light', 'dark' or `null` (or custom)\n  headVariant: makeProp(PROP_TYPE_STRING),\n  theadClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n  theadTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst theadMixin = extend({\n  props,\n  methods: {\n    fieldClasses(field) {\n      // Header field (<th>) classes\n      return [field.class ? field.class : '', field.thClass ? field.thClass : ''];\n    },\n    headClicked(event, field, isFoot) {\n      if (this.stopIfBusy && this.stopIfBusy(event)) {\n        // If table is busy (via provider) then don't propagate\n        return;\n      } else if (filterEvent(event)) {\n        // Clicked on a non-disabled control so ignore\n        return;\n      } else if (textSelectionActive(this.$el)) {\n        // User is selecting text, so ignore\n        /* istanbul ignore next: JSDOM doesn't support getSelection() */\n        return;\n      }\n      stopEvent(event);\n      this.$emit(EVENT_NAME_HEAD_CLICKED, field.key, field, event, isFoot);\n    },\n    renderThead() {\n      let isFoot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n      const {\n        computedFields: fields,\n        isSortable,\n        isSelectable,\n        headVariant,\n        footVariant,\n        headRowVariant,\n        footRowVariant\n      } = safeVueInstance(this);\n      const h = this.$createElement;\n\n      // In always stacked mode, we don't bother rendering the head/foot\n      // Or if no field headings (empty table)\n      if (this.isStackedAlways || fields.length === 0) {\n        return h();\n      }\n      const hasHeadClickListener = isSortable || this.hasListener(EVENT_NAME_HEAD_CLICKED);\n\n      // Reference to `selectAllRows` and `clearSelected()`, if table is selectable\n      const selectAllRows = isSelectable ? this.selectAllRows : noop;\n      const clearSelected = isSelectable ? this.clearSelected : noop;\n\n      // Helper function to generate a field <th> cell\n      const makeCell = (field, colIndex) => {\n        const {\n          label,\n          labelHtml,\n          variant,\n          stickyColumn,\n          key\n        } = field;\n        let ariaLabel = null;\n        if (!field.label.trim() && !field.headerTitle) {\n          // In case field's label and title are empty/blank\n          // We need to add a hint about what the column is about for non-sighted users\n          /* istanbul ignore next */\n          ariaLabel = startCase(field.key);\n        }\n        const on = {};\n        if (hasHeadClickListener) {\n          on.click = event => {\n            this.headClicked(event, field, isFoot);\n          };\n          on.keydown = event => {\n            const keyCode = event.keyCode;\n            if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\n              this.headClicked(event, field, isFoot);\n            }\n          };\n        }\n        const sortAttrs = isSortable ? this.sortTheadThAttrs(key, field, isFoot) : {};\n        const sortClass = isSortable ? this.sortTheadThClasses(key, field, isFoot) : null;\n        const sortLabel = isSortable ? this.sortTheadThLabel(key, field, isFoot) : null;\n        const data = {\n          class: [{\n            // We need to make the header cell relative when we have\n            // a `.gl-sr-only` sort label to work around overflow issues\n            'gl-relative': sortLabel\n          }, this.fieldClasses(field), sortClass],\n          props: {\n            variant,\n            stickyColumn\n          },\n          style: field.thStyle || {},\n          attrs: {\n            // We only add a `tabindex` of `0` if there is a head-clicked listener\n            // and the current field is sortable\n            tabindex: hasHeadClickListener && field.sortable ? '0' : null,\n            abbr: field.headerAbbr || null,\n            title: field.headerTitle || null,\n            'aria-colindex': colIndex + 1,\n            'aria-label': ariaLabel,\n            ...this.getThValues(null, key, field.thAttr, isFoot ? 'foot' : 'head', {}),\n            ...sortAttrs\n          },\n          on,\n          key\n        };\n\n        // Handle edge case where in-document templates are used with new\n        // `v-slot:name` syntax where the browser lower-cases the v-slot's\n        // name (attributes become lower cased when parsed by the browser)\n        // We have replaced the square bracket syntax with round brackets\n        // to prevent confusion with dynamic slot names\n        let slotNames = [getHeadSlotName(key), getHeadSlotName(key.toLowerCase()), getHeadSlotName()];\n        // Footer will fallback to header slot names\n        if (isFoot) {\n          slotNames = [getFootSlotName(key), getFootSlotName(key.toLowerCase()), getFootSlotName(), ...slotNames];\n        }\n        const scope = {\n          label,\n          column: key,\n          field,\n          isFoot,\n          // Add in row select methods\n          selectAllRows,\n          clearSelected\n        };\n        const $content = this.normalizeSlot(slotNames, scope) || h('div', {\n          domProps: htmlOrText(labelHtml, label)\n        });\n        const $srLabel = sortLabel ? h('span', {\n          staticClass: 'gl-sr-only'\n        }, ` (${sortLabel})`) : null;\n\n        // Return the header cell\n        return h(BTh, data, [$content, $srLabel].filter(identity));\n      };\n\n      // Generate the array of <th> cells\n      const $cells = fields.map(makeCell).filter(identity);\n\n      // Generate the row(s)\n      const $trs = [];\n      if (isFoot) {\n        $trs.push(h(BTr, {\n          class: this.tfootTrClass,\n          props: {\n            variant: isUndefinedOrNull(footRowVariant) ? headRowVariant : /* istanbul ignore next */footRowVariant\n          }\n        }, $cells));\n      } else {\n        const scope = {\n          columns: fields.length,\n          fields,\n          // Add in row select methods\n          selectAllRows,\n          clearSelected\n        };\n        $trs.push(this.normalizeSlot(SLOT_NAME_THEAD_TOP, scope) || h());\n        $trs.push(h(BTr, {\n          class: this.theadTrClass,\n          props: {\n            variant: headRowVariant\n          }\n        }, $cells));\n      }\n      return h(isFoot ? BTfoot : BThead, {\n        class: (isFoot ? this.tfootClass : this.theadClass) || null,\n        props: isFoot ? {\n          footVariant: footVariant || headVariant || null\n        } : {\n          headVariant: headVariant || null\n        },\n        key: isFoot ? 'bv-tfoot' : 'bv-thead'\n      }, $trs);\n    }\n  }\n});\n\nexport { props, theadMixin };\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","var baseFlatten = require('./_baseFlatten'),\n    baseIteratee = require('./_baseIteratee'),\n    baseRest = require('./_baseRest'),\n    baseUniq = require('./_baseUniq'),\n    isArrayLikeObject = require('./isArrayLikeObject'),\n    last = require('./last');\n\n/**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. 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} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nvar unionBy = baseRest(function(arrays) {\n  var iteratee = last(arrays);\n  if (isArrayLikeObject(iteratee)) {\n    iteratee = undefined;\n  }\n  return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), baseIteratee(iteratee, 2));\n});\n\nmodule.exports = unionBy;\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});","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","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\">&middot;</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 arrayMap = require('./_arrayMap'),\n    baseIntersection = require('./_baseIntersection'),\n    baseIteratee = require('./_baseIteratee'),\n    baseRest = require('./_baseRest'),\n    castArrayLikeObject = require('./_castArrayLikeObject'),\n    last = require('./last');\n\n/**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` 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 * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\nvar intersectionBy = baseRest(function(arrays) {\n  var iteratee = last(arrays),\n      mapped = arrayMap(arrays, castArrayLikeObject);\n\n  if (iteratee === last(mapped)) {\n    iteratee = undefined;\n  } else {\n    mapped.pop();\n  }\n  return (mapped.length && mapped[0] === arrays[0])\n    ? baseIntersection(mapped, baseIteratee(iteratee, 2))\n    : [];\n});\n\nmodule.exports = intersectionBy;\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('issue-card-time-info',{attrs:{\"issue\":_vm.issue}},[(_vm.showWeight)?_c('work-item-attribute',{attrs:{\"anchor-id\":\"issuable-weight-content\",\"title\":`${_vm.weight}`,\"title-component-class\":\"issuable-weight gl-mr-3\",\"tooltip-text\":_vm.__('Weight'),\"tooltip-placement\":\"top\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('gl-icon',{attrs:{\"name\":\"weight\",\"size\":12}})]},proxy:true}],null,false,3426229333)}):_vm._e(),_vm._v(\" \"),(_vm.showHealthStatus)?_c('issue-health-status',{attrs:{\"health-status\":_vm.healthStatus}}):_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_card_time_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!./issue_card_time_info.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\nimport { STATUS_CLOSED } from '~/issues/constants';\nimport { humanTimeframe, isInPast, localeDateFormat, newDate } from '~/lib/utils/datetime_utility';\nimport { __ } from '~/locale';\nimport { STATE_CLOSED } from '~/work_items/constants';\nimport { isMilestoneWidget, isStartAndDueDateWidget } from '~/work_items/utils';\nimport IssuableMilestone from '~/vue_shared/issuable/list/components/issuable_milestone.vue';\nimport WorkItemAttribute from '~/vue_shared/components/work_item_attribute.vue';\n\nexport default {\n  components: {\n    IssuableMilestone,\n    WorkItemAttribute,\n    GlIcon,\n  },\n  props: {\n    issue: {\n      type: Object,\n      required: true,\n    },\n    isWorkItemList: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  computed: {\n    milestone() {\n      return this.issue.milestone || this.issue.widgets?.find(isMilestoneWidget)?.milestone;\n    },\n    dueDate() {\n      return this.issue.dueDate || this.issue.widgets?.find(isStartAndDueDateWidget)?.dueDate;\n    },\n    dueDateText() {\n      if (this.startDate) {\n        return humanTimeframe(newDate(this.startDate), newDate(this.dueDate));\n      }\n      if (this.dueDate) {\n        return localeDateFormat.asDate.format(newDate(this.dueDate));\n      }\n      return null;\n    },\n    isClosed() {\n      return this.issue.state === STATUS_CLOSED || this.issue.state === STATE_CLOSED;\n    },\n    isOverdue() {\n      if (!this.dueDate) {\n        return false;\n      }\n      return isInPast(newDate(this.dueDate)) && !this.isClosed;\n    },\n    dueDateTitle() {\n      return this.isOverdue ? `${__('Due date')} (${__('overdue')})` : __('Due date');\n    },\n    dateIcon() {\n      return this.isOverdue ? 'calendar-overdue' : 'calendar';\n    },\n    startDate() {\n      return this.issue.widgets?.find(isStartAndDueDateWidget)?.startDate;\n    },\n    timeEstimate() {\n      return this.issue.humanTimeEstimate || this.issue.timeStats?.humanTimeEstimate;\n    },\n  },\n};\n</script>\n\n<template>\n  <span>\n    <issuable-milestone v-if=\"milestone\" :milestone=\"milestone\" />\n    <work-item-attribute\n      v-if=\"dueDateText\"\n      anchor-id=\"issuable-due-date\"\n      :title=\"dueDateText\"\n      title-component-class=\"issuable-due-date gl-mr-3\"\n      :tooltip-text=\"dueDateTitle\"\n      tooltip-placement=\"top\"\n    >\n      <template #icon>\n        <gl-icon :variant=\"isOverdue ? 'danger' : 'current'\" :name=\"dateIcon\" :size=\"12\" />\n      </template>\n    </work-item-attribute>\n    <work-item-attribute\n      v-if=\"timeEstimate\"\n      anchor-id=\"time-estimate\"\n      :title=\"timeEstimate\"\n      title-component-class=\"gl-mr-3\"\n      :tooltip-text=\"__('Estimate')\"\n      tooltip-placement=\"top\"\n    >\n      <template #icon>\n        <gl-icon name=\"timer\" :size=\"12\" />\n      </template>\n    </work-item-attribute>\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!./issue_card_time_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!./issue_card_time_info.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\nimport IssueCardTimeInfo from '~/issues/list/components/issue_card_time_info.vue';\nimport IssueHealthStatus from 'ee/related_items_tree/components/issue_health_status.vue';\nimport { isHealthStatusWidget, isWeightWidget } from '~/work_items/utils';\nimport WorkItemAttribute from '~/vue_shared/components/work_item_attribute.vue';\n\nexport default {\n  components: {\n    IssueCardTimeInfo,\n    IssueHealthStatus,\n    WorkItemAttribute,\n    GlIcon,\n  },\n  inject: ['hasIssuableHealthStatusFeature', 'hasIssueWeightsFeature'],\n  props: {\n    issue: {\n      type: Object,\n      required: true,\n    },\n    isWorkItemList: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  computed: {\n    healthStatus() {\n      return (\n        this.issue.healthStatus || this.issue.widgets?.find(isHealthStatusWidget)?.healthStatus\n      );\n    },\n    showHealthStatus() {\n      return this.hasIssuableHealthStatusFeature && this.healthStatus && !this.isWorkItemList;\n    },\n    weight() {\n      return this.issue.weight || this.issue.widgets?.find(isWeightWidget)?.weight;\n    },\n    showWeight() {\n      return this.hasIssueWeightsFeature && this.weight != null;\n    },\n  },\n};\n</script>\n\n<template>\n  <issue-card-time-info :issue=\"issue\">\n    <work-item-attribute\n      v-if=\"showWeight\"\n      anchor-id=\"issuable-weight-content\"\n      :title=\"`${weight}`\"\n      title-component-class=\"issuable-weight gl-mr-3\"\n      :tooltip-text=\"__('Weight')\"\n      tooltip-placement=\"top\"\n    >\n      <template #icon>\n        <gl-icon name=\"weight\" :size=\"12\" />\n      </template>\n    </work-item-attribute>\n    <issue-health-status v-if=\"showHealthStatus\" :health-status=\"healthStatus\" />\n  </issue-card-time-info>\n</template>\n","import { render, staticRenderFns } from \"./issue_card_time_info.vue?vue&type=template&id=59247cc5\"\nimport script from \"./issue_card_time_info.vue?vue&type=script&lang=js\"\nexport * from \"./issue_card_time_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 _c('span',[(_vm.milestone)?_c('issuable-milestone',{attrs:{\"milestone\":_vm.milestone}}):_vm._e(),_vm._v(\" \"),(_vm.dueDateText)?_c('work-item-attribute',{attrs:{\"anchor-id\":\"issuable-due-date\",\"title\":_vm.dueDateText,\"title-component-class\":\"issuable-due-date gl-mr-3\",\"tooltip-text\":_vm.dueDateTitle,\"tooltip-placement\":\"top\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('gl-icon',{attrs:{\"variant\":_vm.isOverdue ? 'danger' : 'current',\"name\":_vm.dateIcon,\"size\":12}})]},proxy:true}],null,false,4212441276)}):_vm._e(),_vm._v(\" \"),(_vm.timeEstimate)?_c('work-item-attribute',{attrs:{\"anchor-id\":\"time-estimate\",\"title\":_vm.timeEstimate,\"title-component-class\":\"gl-mr-3\",\"tooltip-text\":_vm.__('Estimate'),\"tooltip-placement\":\"top\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('gl-icon',{attrs:{\"name\":\"timer\",\"size\":12}})]},proxy:true}],null,false,3630396722)}):_vm._e(),_vm._v(\" \"),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./issue_card_time_info.vue?vue&type=template&id=5b3861f5\"\nimport script from \"./issue_card_time_info.vue?vue&type=script&lang=js\"\nexport * from \"./issue_card_time_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","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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"searchLabels\"},\"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\":\"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\":\"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\":\"labels\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTerm\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestorGroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeDescendantGroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__persist\"},\"arguments\":[],\"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\":\"Label\"},\"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\":\"labels\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"searchTerm\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestorGroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__persist\"},\"arguments\":[],\"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\":\"Label\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":587}};\n    doc.loc.source = {\"body\":\"#import \\\"./label.fragment.graphql\\\"\\n\\nquery searchLabels($fullPath: ID!, $search: String, $isProject: Boolean = false) {\\n  group(fullPath: $fullPath) @skip(if: $isProject) @persist {\\n    id\\n    labels(searchTerm: $search, includeAncestorGroups: true, includeDescendantGroups: true) {\\n      __persist\\n      nodes {\\n        __persist\\n        ...Label\\n      }\\n    }\\n  }\\n  project(fullPath: $fullPath) @include(if: $isProject) @persist {\\n    id\\n    labels(searchTerm: $search, includeAncestorGroups: true) {\\n      __persist\\n      nodes {\\n        __persist\\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(\"./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[\"searchLabels\"] = oneQuery(doc, \"searchLabels\");\n        \n","// base dropdown events\nconst GL_DROPDOWN_SHOWN = 'shown';\nconst GL_DROPDOWN_HIDDEN = 'hidden';\nconst GL_DROPDOWN_BEFORE_CLOSE = 'beforeClose';\nconst GL_DROPDOWN_FOCUS_CONTENT = 'focusContent';\n\n// KEY Codes\nconst ARROW_DOWN = 'ArrowDown';\nconst ARROW_UP = 'ArrowUp';\nconst END = 'End';\nconst ENTER = 'Enter';\nconst HOME = 'Home';\nconst SPACE = 'Space';\n\n// Positioning strategies\n// https://floating-ui.com/docs/computePosition#strategy\nconst POSITION_ABSOLUTE = 'absolute';\nconst POSITION_FIXED = 'fixed';\nconst GL_DROPDOWN_CONTENTS_CLASS = 'gl-new-dropdown-contents';\n\nexport { ARROW_DOWN, ARROW_UP, END, ENTER, GL_DROPDOWN_BEFORE_CLOSE, GL_DROPDOWN_CONTENTS_CLASS, GL_DROPDOWN_FOCUS_CONTENT, GL_DROPDOWN_HIDDEN, GL_DROPDOWN_SHOWN, HOME, POSITION_ABSOLUTE, POSITION_FIXED, SPACE };\n","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","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","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\":\"updateWorkItemAwardEmojiWidget\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AwardEmojiToggleInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"awardEmojiToggle\"},\"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\":\"toggledOn\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":141}};\n    doc.loc.source = {\"body\":\"mutation updateWorkItemAwardEmojiWidget($input: AwardEmojiToggleInput!) {\\n  awardEmojiToggle(input: $input) {\\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[\"updateWorkItemAwardEmojiWidget\"] = oneQuery(doc, \"updateWorkItemAwardEmojiWidget\");\n        \n","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","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\n\nfunction getWindow(node) {\n  var _node$ownerDocument;\n  return ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\n\nfunction getComputedStyle$1(element) {\n  return getWindow(element).getComputedStyle(element);\n}\n\nfunction isNode(value) {\n  return value instanceof getWindow(value).Node;\n}\nfunction getNodeName(node) {\n  if (isNode(node)) {\n    return (node.nodeName || '').toLowerCase();\n  }\n  // Mocked nodes in testing environments may not be instances of Node. By\n  // returning `#document` an infinite loop won't occur.\n  // https://github.com/floating-ui/floating-ui/issues/2317\n  return '#document';\n}\n\nfunction isHTMLElement(value) {\n  return value instanceof getWindow(value).HTMLElement;\n}\nfunction isElement(value) {\n  return value instanceof getWindow(value).Element;\n}\nfunction isShadowRoot(node) {\n  // Browsers without `ShadowRoot` support.\n  if (typeof ShadowRoot === 'undefined') {\n    return false;\n  }\n  return node instanceof getWindow(node).ShadowRoot || node instanceof ShadowRoot;\n}\nfunction isOverflowElement(element) {\n  const {\n    overflow,\n    overflowX,\n    overflowY,\n    display\n  } = getComputedStyle$1(element);\n  return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n  return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n  const safari = isSafari();\n  const css = getComputedStyle$1(element);\n\n  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n  return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !safari && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !safari && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction isSafari() {\n  if (typeof CSS === 'undefined' || !CSS.supports) return false;\n  return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n  return ['html', 'body', '#document'].includes(getNodeName(node));\n}\n\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createEmptyCoords = v => ({\n  x: v,\n  y: v\n});\n\nfunction getCssDimensions(element) {\n  const css = getComputedStyle$1(element);\n  // In testing environments, the `width` and `height` properties are empty\n  // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n  let width = parseFloat(css.width) || 0;\n  let height = parseFloat(css.height) || 0;\n  const hasOffset = isHTMLElement(element);\n  const offsetWidth = hasOffset ? element.offsetWidth : width;\n  const offsetHeight = hasOffset ? element.offsetHeight : height;\n  const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n  if (shouldFallback) {\n    width = offsetWidth;\n    height = offsetHeight;\n  }\n  return {\n    width,\n    height,\n    $: shouldFallback\n  };\n}\n\nfunction unwrapElement(element) {\n  return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n  const domElement = unwrapElement(element);\n  if (!isHTMLElement(domElement)) {\n    return createEmptyCoords(1);\n  }\n  const rect = domElement.getBoundingClientRect();\n  const {\n    width,\n    height,\n    $\n  } = getCssDimensions(domElement);\n  let x = ($ ? round(rect.width) : rect.width) / width;\n  let y = ($ ? round(rect.height) : rect.height) / height;\n\n  // 0, NaN, or Infinity should always fallback to 1.\n\n  if (!x || !Number.isFinite(x)) {\n    x = 1;\n  }\n  if (!y || !Number.isFinite(y)) {\n    y = 1;\n  }\n  return {\n    x,\n    y\n  };\n}\n\nconst noOffsets = /*#__PURE__*/createEmptyCoords(0);\nfunction getVisualOffsets(element, isFixed, floatingOffsetParent) {\n  var _win$visualViewport, _win$visualViewport2;\n  if (isFixed === void 0) {\n    isFixed = true;\n  }\n  if (!isSafari()) {\n    return noOffsets;\n  }\n  const win = element ? getWindow(element) : window;\n  if (!floatingOffsetParent || isFixed && floatingOffsetParent !== win) {\n    return noOffsets;\n  }\n  return {\n    x: ((_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) || 0,\n    y: ((_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) || 0\n  };\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n  if (includeScale === void 0) {\n    includeScale = false;\n  }\n  if (isFixedStrategy === void 0) {\n    isFixedStrategy = false;\n  }\n  const clientRect = element.getBoundingClientRect();\n  const domElement = unwrapElement(element);\n  let scale = createEmptyCoords(1);\n  if (includeScale) {\n    if (offsetParent) {\n      if (isElement(offsetParent)) {\n        scale = getScale(offsetParent);\n      }\n    } else {\n      scale = getScale(element);\n    }\n  }\n  const visualOffsets = getVisualOffsets(domElement, isFixedStrategy, offsetParent);\n  let x = (clientRect.left + visualOffsets.x) / scale.x;\n  let y = (clientRect.top + visualOffsets.y) / scale.y;\n  let width = clientRect.width / scale.x;\n  let height = clientRect.height / scale.y;\n  if (domElement) {\n    const win = getWindow(domElement);\n    const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n    let currentIFrame = win.frameElement;\n    while (currentIFrame && offsetParent && offsetWin !== win) {\n      const iframeScale = getScale(currentIFrame);\n      const iframeRect = currentIFrame.getBoundingClientRect();\n      const css = getComputedStyle(currentIFrame);\n      const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n      const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n      x *= iframeScale.x;\n      y *= iframeScale.y;\n      width *= iframeScale.x;\n      height *= iframeScale.y;\n      x += left;\n      y += top;\n      currentIFrame = getWindow(currentIFrame).frameElement;\n    }\n  }\n  return rectToClientRect({\n    width,\n    height,\n    x,\n    y\n  });\n}\n\nfunction getDocumentElement(node) {\n  return ((isNode(node) ? node.ownerDocument : node.document) || window.document).documentElement;\n}\n\nfunction getNodeScroll(element) {\n  if (isElement(element)) {\n    return {\n      scrollLeft: element.scrollLeft,\n      scrollTop: element.scrollTop\n    };\n  }\n  return {\n    scrollLeft: element.pageXOffset,\n    scrollTop: element.pageYOffset\n  };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n  let {\n    rect,\n    offsetParent,\n    strategy\n  } = _ref;\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  const documentElement = getDocumentElement(offsetParent);\n  if (offsetParent === documentElement) {\n    return rect;\n  }\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  let scale = createEmptyCoords(1);\n  const offsets = createEmptyCoords(0);\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n    if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isHTMLElement(offsetParent)) {\n      const offsetRect = getBoundingClientRect(offsetParent);\n      scale = getScale(offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    }\n  }\n  return {\n    width: rect.width * scale.x,\n    height: rect.height * scale.y,\n    x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n    y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n  };\n}\n\nfunction getWindowScrollBarX(element) {\n  // If <html> has a CSS width greater than the viewport, then this will be\n  // incorrect for RTL.\n  return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n  const html = getDocumentElement(element);\n  const scroll = getNodeScroll(element);\n  const body = element.ownerDocument.body;\n  const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n  const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n  let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n  const y = -scroll.scrollTop;\n  if (getComputedStyle$1(body).direction === 'rtl') {\n    x += max(html.clientWidth, body.clientWidth) - width;\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\n\nfunction getParentNode(node) {\n  if (getNodeName(node) === 'html') {\n    return node;\n  }\n  const result =\n  // Step into the shadow DOM of the parent of a slotted node.\n  node.assignedSlot ||\n  // DOM Element detected.\n  node.parentNode ||\n  // ShadowRoot detected.\n  isShadowRoot(node) && node.host ||\n  // Fallback.\n  getDocumentElement(node);\n  return isShadowRoot(result) ? result.host : result;\n}\n\nfunction getNearestOverflowAncestor(node) {\n  const parentNode = getParentNode(node);\n  if (isLastTraversableNode(parentNode)) {\n    return node.ownerDocument ? node.ownerDocument.body : node.body;\n  }\n  if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n    return parentNode;\n  }\n  return getNearestOverflowAncestor(parentNode);\n}\n\nfunction getOverflowAncestors(node, list) {\n  var _node$ownerDocument;\n  if (list === void 0) {\n    list = [];\n  }\n  const scrollableAncestor = getNearestOverflowAncestor(node);\n  const isBody = scrollableAncestor === ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.body);\n  const win = getWindow(scrollableAncestor);\n  if (isBody) {\n    return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []);\n  }\n  return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor));\n}\n\nfunction getViewportRect(element, strategy) {\n  const win = getWindow(element);\n  const html = getDocumentElement(element);\n  const visualViewport = win.visualViewport;\n  let width = html.clientWidth;\n  let height = html.clientHeight;\n  let x = 0;\n  let y = 0;\n  if (visualViewport) {\n    width = visualViewport.width;\n    height = visualViewport.height;\n    const visualViewportBased = isSafari();\n    if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n      x = visualViewport.offsetLeft;\n      y = visualViewport.offsetTop;\n    }\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n  const top = clientRect.top + element.clientTop;\n  const left = clientRect.left + element.clientLeft;\n  const scale = isHTMLElement(element) ? getScale(element) : createEmptyCoords(1);\n  const width = element.clientWidth * scale.x;\n  const height = element.clientHeight * scale.y;\n  const x = left * scale.x;\n  const y = top * scale.y;\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n  let rect;\n  if (clippingAncestor === 'viewport') {\n    rect = getViewportRect(element, strategy);\n  } else if (clippingAncestor === 'document') {\n    rect = getDocumentRect(getDocumentElement(element));\n  } else if (isElement(clippingAncestor)) {\n    rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n  } else {\n    const visualOffsets = getVisualOffsets(element);\n    rect = {\n      ...clippingAncestor,\n      x: clippingAncestor.x - visualOffsets.x,\n      y: clippingAncestor.y - visualOffsets.y\n    };\n  }\n  return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n  const parentNode = getParentNode(element);\n  if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n    return false;\n  }\n  return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n  const cachedResult = cache.get(element);\n  if (cachedResult) {\n    return cachedResult;\n  }\n  let result = getOverflowAncestors(element).filter(el => isElement(el) && getNodeName(el) !== 'body');\n  let currentContainingBlockComputedStyle = null;\n  const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n  let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    const computedStyle = getComputedStyle$1(currentNode);\n    const currentNodeIsContaining = isContainingBlock(currentNode);\n    if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n      currentContainingBlockComputedStyle = null;\n    }\n    const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n    if (shouldDropCurrentNode) {\n      // Drop non-containing blocks.\n      result = result.filter(ancestor => ancestor !== currentNode);\n    } else {\n      // Record last containing block for next iteration.\n      currentContainingBlockComputedStyle = computedStyle;\n    }\n    currentNode = getParentNode(currentNode);\n  }\n  cache.set(element, result);\n  return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n  let {\n    element,\n    boundary,\n    rootBoundary,\n    strategy\n  } = _ref;\n  const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n  const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n  const firstClippingAncestor = clippingAncestors[0];\n  const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n    const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n    accRect.top = max(rect.top, accRect.top);\n    accRect.right = min(rect.right, accRect.right);\n    accRect.bottom = min(rect.bottom, accRect.bottom);\n    accRect.left = max(rect.left, accRect.left);\n    return accRect;\n  }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n  return {\n    width: clippingRect.right - clippingRect.left,\n    height: clippingRect.bottom - clippingRect.top,\n    x: clippingRect.left,\n    y: clippingRect.top\n  };\n}\n\nfunction getDimensions(element) {\n  return getCssDimensions(element);\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n  if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n    return null;\n  }\n  if (polyfill) {\n    return polyfill(element);\n  }\n  return element.offsetParent;\n}\nfunction getContainingBlock(element) {\n  let currentNode = getParentNode(element);\n  while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    if (isContainingBlock(currentNode)) {\n      return currentNode;\n    } else {\n      currentNode = getParentNode(currentNode);\n    }\n  }\n  return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n  const window = getWindow(element);\n  if (!isHTMLElement(element)) {\n    return window;\n  }\n  let offsetParent = getTrueOffsetParent(element, polyfill);\n  while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === 'static') {\n    offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n  }\n  if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle$1(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n    return window;\n  }\n  return offsetParent || getContainingBlock(element) || window;\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  const documentElement = getDocumentElement(offsetParent);\n  const isFixed = strategy === 'fixed';\n  const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  const offsets = createEmptyCoords(0);\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isHTMLElement(offsetParent)) {\n      const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    } else if (documentElement) {\n      offsets.x = getWindowScrollBarX(documentElement);\n    }\n  }\n  return {\n    x: rect.left + scroll.scrollLeft - offsets.x,\n    y: rect.top + scroll.scrollTop - offsets.y,\n    width: rect.width,\n    height: rect.height\n  };\n}\n\nconst platform = {\n  getClippingRect,\n  convertOffsetParentRelativeRectToViewportRelativeRect,\n  isElement,\n  getDimensions,\n  getOffsetParent,\n  getDocumentElement,\n  getScale,\n  async getElementRects(_ref) {\n    let {\n      reference,\n      floating,\n      strategy\n    } = _ref;\n    const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n    const getDimensionsFn = this.getDimensions;\n    return {\n      reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n      floating: {\n        x: 0,\n        y: 0,\n        ...(await getDimensionsFn(floating))\n      }\n    };\n  },\n  getClientRects: element => Array.from(element.getClientRects()),\n  isRTL: element => getComputedStyle$1(element).direction === 'rtl'\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n  let io = null;\n  let timeoutId;\n  const root = getDocumentElement(element);\n  function cleanup() {\n    clearTimeout(timeoutId);\n    io && io.disconnect();\n    io = null;\n  }\n  function refresh(skip, threshold) {\n    if (skip === void 0) {\n      skip = false;\n    }\n    if (threshold === void 0) {\n      threshold = 1;\n    }\n    cleanup();\n    const {\n      left,\n      top,\n      width,\n      height\n    } = element.getBoundingClientRect();\n    if (!skip) {\n      onMove();\n    }\n    if (!width || !height) {\n      return;\n    }\n    const insetTop = floor(top);\n    const insetRight = floor(root.clientWidth - (left + width));\n    const insetBottom = floor(root.clientHeight - (top + height));\n    const insetLeft = floor(left);\n    const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n    const options = {\n      rootMargin,\n      threshold: max(0, min(1, threshold)) || 1\n    };\n    let isFirstUpdate = true;\n    function handleObserve(entries) {\n      const ratio = entries[0].intersectionRatio;\n      if (ratio !== threshold) {\n        if (!isFirstUpdate) {\n          return refresh();\n        }\n        if (!ratio) {\n          timeoutId = setTimeout(() => {\n            refresh(false, 1e-7);\n          }, 100);\n        } else {\n          refresh(false, ratio);\n        }\n      }\n      isFirstUpdate = false;\n    }\n\n    // Older browsers don't support a `document` as the root and will throw an\n    // error.\n    try {\n      io = new IntersectionObserver(handleObserve, {\n        ...options,\n        // Handle <iframe>s\n        root: root.ownerDocument\n      });\n    } catch (e) {\n      io = new IntersectionObserver(handleObserve, options);\n    }\n    io.observe(element);\n  }\n  refresh(true);\n  return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    ancestorScroll = true,\n    ancestorResize = true,\n    elementResize = typeof ResizeObserver === 'function',\n    layoutShift = typeof IntersectionObserver === 'function',\n    animationFrame = false\n  } = options;\n  const referenceEl = unwrapElement(reference);\n  const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n  ancestors.forEach(ancestor => {\n    ancestorScroll && ancestor.addEventListener('scroll', update, {\n      passive: true\n    });\n    ancestorResize && ancestor.addEventListener('resize', update);\n  });\n  const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n  let reobserveFrame = -1;\n  let resizeObserver = null;\n  if (elementResize) {\n    resizeObserver = new ResizeObserver(_ref => {\n      let [firstEntry] = _ref;\n      if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n        // Prevent update loops when using the `size` middleware.\n        // https://github.com/floating-ui/floating-ui/issues/1740\n        resizeObserver.unobserve(floating);\n        cancelAnimationFrame(reobserveFrame);\n        reobserveFrame = requestAnimationFrame(() => {\n          resizeObserver && resizeObserver.observe(floating);\n        });\n      }\n      update();\n    });\n    if (referenceEl && !animationFrame) {\n      resizeObserver.observe(referenceEl);\n    }\n    resizeObserver.observe(floating);\n  }\n  let frameId;\n  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n  if (animationFrame) {\n    frameLoop();\n  }\n  function frameLoop() {\n    const nextRefRect = getBoundingClientRect(reference);\n    if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n      update();\n    }\n    prevRefRect = nextRefRect;\n    frameId = requestAnimationFrame(frameLoop);\n  }\n  update();\n  return () => {\n    ancestors.forEach(ancestor => {\n      ancestorScroll && ancestor.removeEventListener('scroll', update);\n      ancestorResize && ancestor.removeEventListener('resize', update);\n    });\n    cleanupIo && cleanupIo();\n    resizeObserver && resizeObserver.disconnect();\n    resizeObserver = null;\n    if (animationFrame) {\n      cancelAnimationFrame(frameId);\n    }\n  };\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain CSS positioning\n * strategy.\n */\nconst computePosition = (reference, floating, options) => {\n  // This caches the expensive `getClippingElementAncestors` function so that\n  // multiple lifecycle resets re-use the same result. It only lives for a\n  // single call. If other functions become expensive, we can add them as well.\n  const cache = new Map();\n  const mergedOptions = {\n    platform,\n    ...options\n  };\n  const platformWithCache = {\n    ...mergedOptions.platform,\n    _c: cache\n  };\n  return computePosition$1(reference, floating, {\n    ...mergedOptions,\n    platform: platformWithCache\n  });\n};\n\nexport { autoUpdate, computePosition, getOverflowAncestors, platform };\n","import { extend } from '../../vue';\nimport { NAME_TABLE_CELL } from '../../constants/components';\nimport { PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { isTag } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\n\n// --- Helper methods ---\n\n// Parse a rowspan or colspan into a digit (or `null` if < `1` )\nconst parseSpan = value => {\n  value = toInteger(value, 0);\n  return value > 0 ? value : null;\n};\n\n/* istanbul ignore next */\nconst spanValidator = value => isUndefinedOrNull(value) || parseSpan(value) > 0;\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n  colspan: makeProp(PROP_TYPE_NUMBER_STRING, null, spanValidator),\n  rowspan: makeProp(PROP_TYPE_NUMBER_STRING, null, spanValidator),\n  stackedHeading: makeProp(PROP_TYPE_STRING),\n  stickyColumn: makeProp(PROP_TYPE_BOOLEAN, false),\n  variant: makeProp(PROP_TYPE_STRING)\n}, NAME_TABLE_CELL);\n\n// --- Main component ---\n\n// TODO:\n//   In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n//   to the child elements, so this can be converted to a functional component\n// @vue/component\nconst BTd = /*#__PURE__*/extend({\n  name: NAME_TABLE_CELL,\n  // Mixin order is important!\n  mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n  inject: {\n    getBvTableTr: {\n      default: /* istanbul ignore next */() => () => ({})\n    }\n  },\n  inheritAttrs: false,\n  props,\n  computed: {\n    bvTableTr() {\n      return this.getBvTableTr();\n    },\n    // Overridden by `<b-th>`\n    tag() {\n      return 'td';\n    },\n    inTbody() {\n      return this.bvTableTr.inTbody;\n    },\n    inThead() {\n      return this.bvTableTr.inThead;\n    },\n    inTfoot() {\n      return this.bvTableTr.inTfoot;\n    },\n    isDark() {\n      return this.bvTableTr.isDark;\n    },\n    isStacked() {\n      return this.bvTableTr.isStacked;\n    },\n    // We only support stacked-heading in tbody in stacked mode\n    isStackedCell() {\n      return this.inTbody && this.isStacked;\n    },\n    isResponsive() {\n      return this.bvTableTr.isResponsive;\n    },\n    // Needed to handle header background classes, due to lack of\n    // background color inheritance with Bootstrap v4 table CSS\n    // Sticky headers only apply to cells in table `thead`\n    isStickyHeader() {\n      return this.bvTableTr.isStickyHeader;\n    },\n    // Needed to handle header background classes, due to lack of\n    // background color inheritance with Bootstrap v4 table CSS\n    hasStickyHeader() {\n      return this.bvTableTr.hasStickyHeader;\n    },\n    // Needed to handle background classes, due to lack of\n    // background color inheritance with Bootstrap v4 table CSS\n    // Sticky column cells are only available in responsive\n    // mode (horizontal scrolling) or when sticky header mode\n    // Applies to cells in `thead`, `tbody` and `tfoot`\n    isStickyColumn() {\n      return !this.isStacked && (this.isResponsive || this.hasStickyHeader) && this.stickyColumn;\n    },\n    rowVariant() {\n      return this.bvTableTr.variant;\n    },\n    headVariant() {\n      return this.bvTableTr.headVariant;\n    },\n    footVariant() {\n      return this.bvTableTr.footVariant;\n    },\n    tableVariant() {\n      return this.bvTableTr.tableVariant;\n    },\n    computedColspan() {\n      return parseSpan(this.colspan);\n    },\n    computedRowspan() {\n      return parseSpan(this.rowspan);\n    },\n    // We use computed props here for improved performance by caching\n    // the results of the string interpolation\n    cellClasses() {\n      let {\n        variant,\n        headVariant,\n        isStickyColumn\n      } = this;\n      if (!variant && this.isStickyHeader && !headVariant || !variant && isStickyColumn && this.inTfoot && !this.footVariant || !variant && isStickyColumn && this.inThead && !headVariant || !variant && isStickyColumn && this.inTbody) {\n        // Needed for sticky-header mode as Bootstrap v4 table cells do\n        // not inherit parent's `background-color`\n        variant = this.rowVariant || this.tableVariant || 'b-table-default';\n      }\n      return [variant ? `${this.isDark ? 'bg' : 'table'}-${variant}` : null, isStickyColumn ? 'b-table-sticky-column' : null];\n    },\n    cellAttrs() {\n      const {\n        stackedHeading\n      } = this;\n\n      // We use computed props here for improved performance by caching\n      // the results of the object spread (Object.assign)\n      const headOrFoot = this.inThead || this.inTfoot;\n      // Make sure col/rowspan's are > 0 or null\n      const colspan = this.computedColspan;\n      const rowspan = this.computedRowspan;\n      // Default role and scope\n      let role = 'cell';\n      let scope = null;\n\n      // Compute role and scope\n      // We only add scopes with an explicit span of 1 or greater\n      if (headOrFoot) {\n        // Header or footer cells\n        role = 'columnheader';\n        scope = colspan > 0 ? 'colspan' : 'col';\n      } else if (isTag(this.tag, 'th')) {\n        // th's in tbody\n        role = 'rowheader';\n        scope = rowspan > 0 ? 'rowgroup' : 'row';\n      }\n      return {\n        colspan,\n        rowspan,\n        role,\n        scope,\n        // Allow users to override role/scope plus add other attributes\n        ...this.bvAttrs,\n        // Add in the stacked cell label data-attribute if in\n        // stacked mode (if a stacked heading label is provided)\n        'data-label': this.isStackedCell && !isUndefinedOrNull(stackedHeading) ? /* istanbul ignore next */toString(stackedHeading) : null\n      };\n    }\n  },\n  render(h) {\n    const $content = [this.normalizeSlot()];\n    return h(this.tag, {\n      class: this.cellClasses,\n      attrs: this.cellAttrs,\n      // Transfer any native listeners\n      on: this.bvListeners\n    }, [this.isStackedCell ? h('div', [$content]) : $content]);\n  }\n});\n\nexport { BTd, props };\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\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"openChildItemCount\"},\"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\":\"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\":\"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\":\"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\":[]}]}}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":484}};\n    doc.loc.source = {\"body\":\"query openChildItemCount($fullPath: ID!, $iid: String!) {\\n  namespace(fullPath: $fullPath) {\\n    id\\n    workItem(iid: $iid) {\\n      id\\n      widgets {\\n        ... on WorkItemWidgetHierarchy {\\n          type\\n          rolledUpCountsByType {\\n            countsByState {\\n              opened\\n              all\\n              closed\\n            }\\n            workItemType {\\n              id\\n              name\\n              iconName\\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[\"openChildItemCount\"] = oneQuery(doc, \"openChildItemCount\");\n        \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 * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n  x: v,\n  y: v\n});\nconst oppositeSideMap = {\n  left: 'right',\n  right: 'left',\n  bottom: 'top',\n  top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n  start: 'end',\n  end: 'start'\n};\nfunction clamp(start, value, end) {\n  return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n  return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n  return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n  return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n  return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n  return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n  return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n  return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n  if (rtl === void 0) {\n    rtl = false;\n  }\n  const alignment = getAlignment(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const length = getAxisLength(alignmentAxis);\n  let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n  if (rects.reference[length] > rects.floating[length]) {\n    mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n  }\n  return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n  const oppositePlacement = getOppositePlacement(placement);\n  return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n  return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n  const lr = ['left', 'right'];\n  const rl = ['right', 'left'];\n  const tb = ['top', 'bottom'];\n  const bt = ['bottom', 'top'];\n  switch (side) {\n    case 'top':\n    case 'bottom':\n      if (rtl) return isStart ? rl : lr;\n      return isStart ? lr : rl;\n    case 'left':\n    case 'right':\n      return isStart ? tb : bt;\n    default:\n      return [];\n  }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n  const alignment = getAlignment(placement);\n  let list = getSideList(getSide(placement), direction === 'start', rtl);\n  if (alignment) {\n    list = list.map(side => side + \"-\" + alignment);\n    if (flipAlignment) {\n      list = list.concat(list.map(getOppositeAlignmentPlacement));\n    }\n  }\n  return list;\n}\nfunction getOppositePlacement(placement) {\n  return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n  return {\n    top: 0,\n    right: 0,\n    bottom: 0,\n    left: 0,\n    ...padding\n  };\n}\nfunction getPaddingObject(padding) {\n  return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n    top: padding,\n    right: padding,\n    bottom: padding,\n    left: padding\n  };\n}\nfunction rectToClientRect(rect) {\n  const {\n    x,\n    y,\n    width,\n    height\n  } = rect;\n  return {\n    width,\n    height,\n    top: y,\n    left: x,\n    right: x + width,\n    bottom: y + height,\n    x,\n    y\n  };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","var arrayFilter = require('./_arrayFilter'),\n    baseRest = require('./_baseRest'),\n    baseXor = require('./_baseXor'),\n    isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\nvar xor = baseRest(function(arrays) {\n  return baseXor(arrayFilter(arrays, isArrayLikeObject));\n});\n\nmodule.exports = xor;\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemEmailParticipantsByIid\"},\"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\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetEmailParticipants\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"emailParticipants\"},\"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\":\"email\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":374}};\n    doc.loc.source = {\"body\":\"query workItemEmailParticipantsByIid($fullPath: ID!, $iid: String!) {\\n  workspace: namespace(fullPath: $fullPath) {\\n    id\\n    workItem(iid: $iid) {\\n      id\\n      iid\\n      widgets {\\n        ... on WorkItemWidgetEmailParticipants {\\n          type\\n          emailParticipants {\\n            nodes {\\n              email\\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[\"workItemEmailParticipantsByIid\"] = oneQuery(doc, \"workItemEmailParticipantsByIid\");\n        \n","import { extend } from '../../vue';\nimport { NAME_TH } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { props as props$1, BTd } from './td';\n\n// --- Props ---\n\nconst props = makePropsConfigurable(props$1, NAME_TH);\n\n// --- Main component ---\n\n// TODO:\n//   In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n//   to the child elements, so this can be converted to a functional component\n// @vue/component\nconst BTh = /*#__PURE__*/extend({\n  name: NAME_TH,\n  extends: BTd,\n  props,\n  computed: {\n    tag() {\n      return 'th';\n    }\n  }\n});\n\nexport { BTh, props };\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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemDevelopmentUpdated\"},\"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\":\"workItemUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemId\"},\"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\":\"iid\"},\"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\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetDevelopment\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemDevelopmentFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":337}};\n    doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/work_items/graphql/work_item_development.fragment.graphql\\\"\\n\\nsubscription workItemDevelopmentUpdated($id: WorkItemID!) {\\n  workItemUpdated(workItemId: $id) {\\n    id\\n    iid\\n    namespace {\\n      id\\n    }\\n    widgets {\\n      ... on WorkItemWidgetDevelopment {\\n        ...WorkItemDevelopmentFragment\\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_development.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[\"workItemDevelopmentUpdated\"] = oneQuery(doc, \"workItemDevelopmentUpdated\");\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","/**\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\":\"workItemDescriptionTemplatesList\"},\"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\":\"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\":\"workItemDescriptionTemplates\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":206}};\n    doc.loc.source = {\"body\":\"query workItemDescriptionTemplatesList($fullPath: ID!) {\\n  namespace(fullPath: $fullPath) {\\n    id\\n    workItemDescriptionTemplates {\\n      __typename\\n      nodes @client {\\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[\"workItemDescriptionTemplatesList\"] = oneQuery(doc, \"workItemDescriptionTemplatesList\");\n        \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"workItemDetail\",on:{\"dragstart\":function($event){$event.preventDefault();$event.stopPropagation();},\"dragend\":function($event){$event.preventDefault();$event.stopPropagation();},\"dragenter\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onDragEnter.apply(null, arguments)},\"dragover\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onDragOver.apply(null, arguments)},\"dragleave\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onDragLeaveMain.apply(null, arguments)},\"drop\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onDrop.apply(null, arguments)}}},[(_vm.showIntersectionObserver)?_c('work-item-sticky-header',{attrs:{\"current-user-todos\":_vm.currentUserTodos,\"show-work-item-current-user-todos\":_vm.showWorkItemCurrentUserTodos,\"parent-work-item-confidentiality\":_vm.parentWorkItemConfidentiality,\"update-in-progress\":_vm.updateInProgress,\"full-path\":_vm.workItemFullPath,\"is-modal\":_vm.isModal,\"work-item\":_vm.workItem,\"is-sticky-header-showing\":_vm.isStickyHeaderShowing,\"work-item-notifications-subscribed\":_vm.workItemNotificationsSubscribed,\"work-item-author-id\":_vm.workItemAuthorId,\"is-group\":_vm.isGroupWorkItem,\"allowed-child-types\":_vm.allowedChildTypes,\"parent-id\":_vm.parentWorkItemId},on:{\"hideStickyHeader\":_vm.hideStickyHeader,\"showStickyHeader\":_vm.showStickyHeader,\"deleteWorkItem\":function($event){return _vm.$emit('deleteWorkItem', { workItemType: _vm.workItemType, workItemId: _vm.workItem.id })},\"toggleWorkItemConfidentiality\":_vm.toggleConfidentiality,\"error\":function($event){_vm.updateError = $event},\"promotedToObjective\":function($event){return _vm.$emit('promotedToObjective', _vm.iid)},\"workItemTypeChanged\":_vm.workItemTypeChanged,\"toggleEditMode\":_vm.enableEditMode,\"workItemStateUpdated\":function($event){return _vm.$emit('workItemStateUpdated')},\"toggleReportAbuseModal\":_vm.toggleReportAbuseModal,\"todosUpdated\":_vm.updateWorkItemCurrentTodosWidgetCache}}):_vm._e(),_vm._v(\" \"),_c('section',{staticClass:\"work-item-view\"},[(_vm.updateError)?_c('section',{staticClass:\"flash-container flash-container-page sticky\"},[_c('gl-alert',{staticClass:\"gl-mb-3\",attrs:{\"variant\":\"danger\"},on:{\"dismiss\":function($event){_vm.updateError = undefined}}},[_vm._v(\"\\n        \"+_vm._s(_vm.updateError)+\"\\n      \")])],1):_vm._e(),_vm._v(\" \"),_c('section',{class:_vm.workItemBodyClass},[_c('div',{class:_vm.modalCloseButtonClass},[(_vm.isModal)?_c('gl-button',{staticClass:\"gl-ml-auto\",attrs:{\"category\":\"tertiary\",\"data-testid\":\"work-item-close\",\"icon\":\"close\",\"aria-label\":_vm.__('Close')},on:{\"click\":function($event){return _vm.$emit('close')}}}):_vm._e()],1),_vm._v(\" \"),(_vm.workItemLoading)?_c('work-item-loading'):(_vm.error)?_c('gl-empty-state',{attrs:{\"title\":_vm.$options.i18n.fetchErrorTitle,\"description\":_vm.error,\"svg-path\":_vm.$options.noAccessSvg}}):_c('div',{attrs:{\"data-testid\":\"detail-wrapper\"}},[_c('div',{staticClass:\"gl-block gl-flex-row gl-items-start gl-gap-3 sm:!gl-flex\"},[(_vm.shouldShowAncestors)?_c('work-item-ancestors',{staticClass:\"gl-mb-1\",attrs:{\"work-item\":_vm.workItem}}):_vm._e(),_vm._v(\" \"),(!_vm.error)?_c('div',{class:_vm.titleClassHeader,attrs:{\"data-testid\":\"work-item-type\"}},[(_vm.workItem.title)?_c('work-item-title',{ref:\"title\",attrs:{\"is-editing\":_vm.editMode,\"title\":_vm.workItem.title},on:{\"updateWorkItem\":_vm.updateWorkItem,\"updateDraft\":function($event){return _vm.updateDraft('title', $event)},\"error\":function($event){_vm.updateError = $event}}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-ml-auto gl-mt-1 gl-flex gl-gap-3 gl-self-start\"},[(_vm.shouldShowEditButton)?_c('gl-button',{staticClass:\"shortcut-edit-wi-description\",attrs:{\"category\":\"secondary\",\"data-testid\":\"work-item-edit-form-button\"},on:{\"click\":_vm.enableEditMode}},[_vm._v(\"\\n              \"+_vm._s(_vm.__('Edit'))+\"\\n            \")]):_vm._e(),_vm._v(\" \"),(_vm.showWorkItemCurrentUserTodos)?_c('todos-toggle',{attrs:{\"item-id\":_vm.workItem.id,\"current-user-todos\":_vm.currentUserTodos,\"todos-button-type\":\"secondary\"},on:{\"todosUpdated\":_vm.updateWorkItemCurrentTodosWidgetCache,\"error\":function($event){_vm.updateError = $event}}}):_vm._e(),_vm._v(\" \"),(_vm.newTodoAndNotificationsEnabled)?_c('work-item-notifications-widget',{attrs:{\"full-path\":_vm.workItemFullPath,\"work-item-id\":_vm.workItem.id,\"subscribed-to-notifications\":_vm.workItemNotificationsSubscribed,\"can-update\":_vm.canUpdate},on:{\"error\":function($event){_vm.updateError = $event}}}):_vm._e(),_vm._v(\" \"),(_vm.workItemPresent)?_c('work-item-actions',{attrs:{\"full-path\":_vm.workItemFullPath,\"work-item-id\":_vm.workItem.id,\"hide-subscribe\":_vm.newTodoAndNotificationsEnabled,\"subscribed-to-notifications\":_vm.workItemNotificationsSubscribed,\"work-item-type\":_vm.workItemType,\"work-item-type-id\":_vm.workItemTypeId,\"work-item-iid\":_vm.iid,\"can-delete\":_vm.canDelete,\"can-update\":_vm.canUpdate,\"is-confidential\":_vm.workItem.confidential,\"is-discussion-locked\":_vm.isDiscussionLocked,\"is-parent-confidential\":_vm.parentWorkItemConfidentiality,\"work-item-reference\":_vm.workItem.reference,\"work-item-create-note-email\":_vm.workItem.createNoteEmail,\"is-modal\":_vm.isModal,\"work-item-state\":_vm.workItem.state,\"has-children\":_vm.hasChildren,\"has-parent\":_vm.shouldShowAncestors,\"parent-id\":_vm.parentWorkItemId,\"work-item-author-id\":_vm.workItemAuthorId,\"can-create-related-item\":_vm.workItemLinkedItems !== undefined,\"is-group\":_vm.isGroupWorkItem,\"widgets\":_vm.widgets,\"allowed-child-types\":_vm.allowedChildTypes},on:{\"deleteWorkItem\":function($event){return _vm.$emit('deleteWorkItem', { workItemType: _vm.workItemType, workItemId: _vm.workItem.id })},\"toggleWorkItemConfidentiality\":_vm.toggleConfidentiality,\"error\":function($event){_vm.updateError = $event},\"promotedToObjective\":function($event){return _vm.$emit('promotedToObjective', _vm.iid)},\"workItemStateUpdated\":function($event){return _vm.$emit('workItemStateUpdated')},\"workItemTypeChanged\":_vm.workItemTypeChanged,\"toggleReportAbuseModal\":_vm.toggleReportAbuseModal,\"workItemCreated\":_vm.handleWorkItemCreated}}):_vm._e()],1),_vm._v(\" \"),(_vm.isModal)?_c('gl-button',{staticClass:\"gl-hidden sm:!gl-block\",attrs:{\"category\":\"tertiary\",\"data-testid\":\"work-item-close\",\"icon\":\"close\",\"aria-label\":_vm.__('Close')},on:{\"click\":function($event){return _vm.$emit('close')}}}):_vm._e()],1),_vm._v(\" \"),_c('div',{class:{ 'gl-mt-3': !_vm.editMode }},[(_vm.workItem.title && _vm.shouldShowAncestors)?_c('work-item-title',{ref:\"title\",class:_vm.titleClassComponent,attrs:{\"is-editing\":_vm.editMode,\"title\":_vm.workItem.title},on:{\"error\":function($event){_vm.updateError = $event},\"updateWorkItem\":_vm.updateWorkItem,\"updateDraft\":function($event){return _vm.updateDraft('title', $event)}}}):_vm._e(),_vm._v(\" \"),(!_vm.editMode)?_c('work-item-created-updated',{attrs:{\"full-path\":_vm.workItemFullPath,\"work-item-iid\":_vm.iid,\"update-in-progress\":_vm.updateInProgress}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"work-item-overview\",attrs:{\"data-testid\":\"work-item-overview\"}},[_c('section',[(_vm.hasDescriptionWidget)?_c('work-item-description',{attrs:{\"edit-mode\":_vm.editMode,\"full-path\":_vm.workItemFullPath,\"work-item-id\":_vm.workItem.id,\"work-item-iid\":_vm.workItem.iid,\"update-in-progress\":_vm.updateInProgress,\"without-heading-anchors\":_vm.isDrawer},on:{\"updateWorkItem\":_vm.updateWorkItem,\"updateDraft\":function($event){return _vm.updateDraft('description', $event)},\"cancelEditing\":_vm.cancelEditing,\"error\":function($event){_vm.updateError = $event}}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-flex-wrap gl-justify-between\"},[(_vm.workItemAwardEmoji)?_c('work-item-award-emoji',{attrs:{\"work-item-id\":_vm.workItem.id,\"work-item-fullpath\":_vm.workItemFullPath,\"award-emoji\":_vm.workItemAwardEmoji.awardEmoji,\"work-item-iid\":_vm.iid},on:{\"error\":function($event){_vm.updateError = $event},\"emoji-updated\":function($event){return _vm.$emit('work-item-emoji-updated', $event)}}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-gap-3\"},[(_vm.showUploadDesign)?_c('gl-intersection-observer',{on:{\"appear\":function($event){_vm.isDesignUploadButtonInViewport = true},\"disappear\":function($event){_vm.isDesignUploadButtonInViewport = false}}},[(_vm.showUploadDesign)?_c('design-upload-button',{attrs:{\"is-saving\":_vm.isSaving,\"data-testid\":\"design-upload-button\"},on:{\"upload\":_vm.onUploadDesign,\"error\":_vm.onUploadDesignError}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.showCreateBranchMergeRequestSplitButton)?_c('work-item-create-branch-merge-request-split-button',{attrs:{\"work-item-id\":_vm.workItem.id,\"work-item-iid\":_vm.iid,\"work-item-full-path\":_vm.workItemFullPath,\"work-item-type\":_vm.workItem.workItemType.name,\"is-confidential-work-item\":_vm.workItem.confidential,\"project-id\":_vm.workItemProjectId}}):_vm._e()],1)],1)],1),_vm._v(\" \"),_c('aside',{staticClass:\"work-item-overview-right-sidebar\",class:{ 'is-modal': _vm.isModal },attrs:{\"data-testid\":\"work-item-overview-right-sidebar\"}},[_c('work-item-attributes-wrapper',{class:{ 'gl-top-11': _vm.isDrawer },attrs:{\"full-path\":_vm.workItemFullPath,\"work-item\":_vm.workItem,\"group-path\":_vm.groupPath,\"is-group\":_vm.isGroupWorkItem},on:{\"error\":function($event){_vm.updateError = $event},\"attributesUpdated\":function($event){return _vm.$emit('attributesUpdated', $event)}}})],1),_vm._v(\" \"),(_vm.hasDesignWidget)?_c('design-widget',{class:{ 'gl-mt-0': _vm.isDrawer },attrs:{\"work-item-id\":_vm.workItem.id,\"work-item-iid\":_vm.iid,\"upload-error\":_vm.designUploadError,\"upload-error-variant\":_vm.designUploadErrorVariant,\"is-saving\":_vm.isSaving},on:{\"upload\":_vm.onUploadDesign,\"dismissError\":function($event){_vm.designUploadError = null}},scopedSlots:_vm._u([{key:\"empty-state\",fn:function(){return [(_vm.isEmptyStateVisible && !_vm.isSaving && _vm.isDragDataValid && !_vm.isAddingNotes)?_c('design-dropzone',{ref:\"emptyStateDesignDropzone\",staticClass:\"gl-relative gl-mt-5\",attrs:{\"show-upload-design-overlay\":\"\",\"validate-design-upload-on-dragover\":\"\",\"hide-upload-text-on-dragging\":\"\",\"accept-design-formats\":_vm.$options.VALID_DESIGN_FILE_MIMETYPE.mimetype},on:{\"change\":_vm.onUploadDesign},scopedSlots:_vm._u([{key:\"upload-text\",fn:function(){return [_vm._v(\"\\n                  \"+_vm._s(_vm.$options.i18n.addDesignEmptyState)+\"\\n                \")]},proxy:true}],null,false,2887841576)}):_vm._e()]},proxy:true}],null,false,3747810937)}):_vm._e(),_vm._v(\" \"),(_vm.showWorkItemTree)?_c('work-item-tree',{attrs:{\"full-path\":_vm.workItemFullPath,\"is-group\":_vm.isGroupWorkItem,\"work-item-type\":_vm.workItemType,\"parent-work-item-type\":_vm.workItem.workItemType.name,\"work-item-id\":_vm.workItem.id,\"work-item-iid\":_vm.iid,\"active-child-item-id\":_vm.activeChildItemId,\"can-update\":_vm.canUpdate,\"can-update-children\":_vm.canUpdateChildren,\"confidential\":_vm.workItem.confidential,\"allowed-child-types\":_vm.allowedChildTypes,\"is-drawer\":_vm.isDrawer},on:{\"show-modal\":_vm.openContextualView,\"addChild\":function($event){return _vm.$emit('addChild')},\"childrenLoaded\":function($event){_vm.hasChildren = $event}}}):_vm._e(),_vm._v(\" \"),(_vm.workItemLinkedItems)?_c('work-item-relationships',{attrs:{\"is-group\":_vm.isGroupWorkItem,\"work-item-id\":_vm.workItem.id,\"work-item-iid\":_vm.iid,\"work-item-full-path\":_vm.workItemFullPath,\"work-item-type\":_vm.workItem.workItemType.name,\"can-admin-work-item-link\":_vm.canAdminWorkItemLink},on:{\"showModal\":_vm.openContextualView}}):_vm._e(),_vm._v(\" \"),(_vm.workItemDevelopment)?_c('work-item-development',{attrs:{\"is-modal\":_vm.isModal,\"work-item-id\":_vm.workItem.id,\"work-item-iid\":_vm.iid,\"work-item-full-path\":_vm.workItemFullPath,\"work-item-type\":_vm.workItem.workItemType.name}}):_vm._e(),_vm._v(\" \"),(_vm.workItemNotes)?_c('work-item-notes',{staticClass:\"gl-pt-5\",attrs:{\"full-path\":_vm.workItemFullPath,\"work-item-id\":_vm.workItem.id,\"work-item-iid\":_vm.workItem.iid,\"work-item-type\":_vm.workItemType,\"is-modal\":_vm.isModal,\"assignees\":_vm.workItemAssignees && _vm.workItemAssignees.assignees.nodes,\"can-set-work-item-metadata\":_vm.canAssignUnassignUser,\"report-abuse-path\":_vm.reportAbusePath,\"is-discussion-locked\":_vm.isDiscussionLocked,\"is-work-item-confidential\":_vm.workItem.confidential,\"use-h2\":!_vm.isModal,\"parent-id\":_vm.parentWorkItemId},on:{\"error\":function($event){_vm.updateError = $event},\"openReportAbuse\":_vm.openReportAbuseModal,\"startEditing\":function($event){_vm.isAddingNotes = true},\"stopEditing\":function($event){_vm.isAddingNotes = false}}}):_vm._e()],1)])],1)]),_vm._v(\" \"),(_vm.workItemsAlphaEnabled && !_vm.isDrawer)?_c('work-item-drawer',{attrs:{\"active-item\":_vm.activeChildItem,\"open\":_vm.isItemSelected,\"issuable-type\":_vm.activeChildItemType,\"click-outside-exclude-selector\":\".issuable-list\"},on:{\"close\":function($event){_vm.activeChildItem = null},\"workItemDeleted\":_vm.deleteChildItem}}):_vm._e(),_vm._v(\" \"),(_vm.isReportModalOpen)?_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()],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_actions_split_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!./work_item_actions_split_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlDisclosureDropdown, GlPopover, GlLink, GlTooltipDirective } from '@gitlab/ui';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { s__ } from '~/locale';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport {\n  WORK_ITEM_TYPE_VALUE_EPIC,\n  WORK_ITEM_TYPE_VALUE_OBJECTIVE,\n  sprintfWorkItem,\n} from '../../constants';\n\nexport default {\n  components: {\n    GlDisclosureDropdown,\n    GlPopover,\n    GlLink,\n    HelpIcon,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  props: {\n    actions: {\n      type: Array,\n      required: true,\n    },\n    tooltipText: {\n      type: String,\n      required: false,\n      default: '',\n    },\n  },\n  data() {\n    return {\n      isDropdownVisible: false,\n    };\n  },\n  computed: {\n    buttonTooltipText() {\n      return this.isDropdownVisible ? '' : this.tooltipText;\n    },\n  },\n  methods: {\n    getPopoverText(workItemType) {\n      return sprintfWorkItem(\n        s__(\n          'WorkItem|You cannot add another child %{workItemType}. You’ve reached the maximum number of nested levels.',\n        ),\n        workItemType,\n      );\n    },\n    getPopoverLink(workItemType) {\n      switch (workItemType) {\n        case WORK_ITEM_TYPE_VALUE_EPIC:\n          return helpPagePath('/user/group/epics/manage_epics', {\n            anchor: 'multi-level-child-epics',\n          });\n        case WORK_ITEM_TYPE_VALUE_OBJECTIVE:\n          return helpPagePath('/user/okrs', { anchor: 'child-objectives-and-key-results' });\n        default:\n          return '';\n      }\n    },\n    onBeforeClose({ originalEvent: { target }, preventDefault }) {\n      // Prevents the disclosure dropdown from being closed\n      // if clicking on a link within the popover,\n      // because the dropdown treats it as a click outside and emits beforeClose event\n      // which prevents the user from visiting the link\n      if (target?.id === 'info-link') preventDefault();\n    },\n    showDropdown() {\n      this.isDropdownVisible = true;\n    },\n    hideDropdown() {\n      this.isDropdownVisible = false;\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-disclosure-dropdown\n    v-gl-tooltip=\"buttonTooltipText\"\n    :toggle-text=\"__('Add')\"\n    size=\"small\"\n    placement=\"bottom-end\"\n    :items=\"actions\"\n    @shown=\"showDropdown\"\n    @hidden=\"hideDropdown\"\n    @beforeClose=\"onBeforeClose\"\n  >\n    <template #group-label=\"{ group }\">\n      <span class=\"gl-flex gl-items-center gl-justify-between gl-pr-4\">\n        {{ group.name }}\n        <gl-popover v-if=\"group.atDepthLimit\" triggers=\"hover focus\" target=\"info-icon\">\n          {{ getPopoverText(group.name) }}\n          <gl-link id=\"info-link\" :href=\"getPopoverLink(group.name)\" target=\"_blank\">\n            {{ __('Learn more.') }}\n          </gl-link>\n        </gl-popover>\n        <span\n          v-if=\"group.atDepthLimit\"\n          id=\"info-icon\"\n          tabindex=\"0\"\n          :aria-label=\"__(`Help`)\"\n          class=\"gl-leading-1\"\n        >\n          <help-icon />\n        </span>\n      </span>\n    </template>\n  </gl-disclosure-dropdown>\n</template>\n","import { render, staticRenderFns } from \"./work_item_actions_split_button.vue?vue&type=template&id=00f0ee30\"\nimport script from \"./work_item_actions_split_button.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_actions_split_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-disclosure-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.buttonTooltipText),expression:\"buttonTooltipText\"}],attrs:{\"toggle-text\":_vm.__('Add'),\"size\":\"small\",\"placement\":\"bottom-end\",\"items\":_vm.actions},on:{\"shown\":_vm.showDropdown,\"hidden\":_vm.hideDropdown,\"beforeClose\":_vm.onBeforeClose},scopedSlots:_vm._u([{key:\"group-label\",fn:function({ group }){return [_c('span',{staticClass:\"gl-flex gl-items-center gl-justify-between gl-pr-4\"},[_vm._v(\"\\n      \"+_vm._s(group.name)+\"\\n      \"),(group.atDepthLimit)?_c('gl-popover',{attrs:{\"triggers\":\"hover focus\",\"target\":\"info-icon\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.getPopoverText(group.name))+\"\\n        \"),_c('gl-link',{attrs:{\"id\":\"info-link\",\"href\":_vm.getPopoverLink(group.name),\"target\":\"_blank\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.__('Learn more.'))+\"\\n        \")])],1):_vm._e(),_vm._v(\" \"),(group.atDepthLimit)?_c('span',{staticClass:\"gl-leading-1\",attrs:{\"id\":\"info-icon\",\"tabindex\":\"0\",\"aria-label\":_vm.__(`Help`)}},[_c('help-icon')],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!./work_item_rolled_up_data.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.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_data.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlTooltip, GlPopover } from '@gitlab/ui';\nimport { s__, __ } from '~/locale';\nimport workItemByIidQuery from '~/work_items/graphql/work_item_by_iid.query.graphql';\nimport { findWidget } from '~/issues/list/utils';\nimport {\n  i18n,\n  WIDGET_TYPE_WEIGHT,\n  WORK_ITEM_TYPE_VALUE_EPIC,\n  WIDGET_TYPE_HEALTH_STATUS,\n} from '../../constants';\n\nexport default {\n  components: {\n    GlIcon,\n    GlTooltip,\n    GlPopover,\n    WorkItemRolledUpHealthStatus: () =>\n      import(\n        'ee_component/work_items/components/work_item_links/work_item_rolled_up_health_status.vue'\n      ),\n  },\n  i18n: {\n    progressLabel: s__('WorkItem|Progress'),\n    weightCompletedLabel: s__('WorkItem|issue weight completed'),\n  },\n  props: {\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    workItemIid: {\n      type: String,\n      required: false,\n      default: null,\n    },\n  },\n  data() {\n    return {\n      workItem: {},\n      error: null,\n    };\n  },\n  apollo: {\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      error(e) {\n        this.$emit('error', i18n.fetchError);\n        this.error = e.message || i18n.fetchError;\n      },\n    },\n  },\n  computed: {\n    workItemWeight() {\n      return findWidget(WIDGET_TYPE_WEIGHT, this.workItem);\n    },\n    workItemHealthStatus() {\n      return findWidget(WIDGET_TYPE_HEALTH_STATUS, this.workItem);\n    },\n    shouldRolledUpWeightBeVisible() {\n      return this.showRolledUpWeight && this.rolledUpWeight !== null;\n    },\n    showRolledUpProgress() {\n      return this.rolledUpWeight && this.rolledUpCompletedWeight !== null;\n    },\n    showRolledUpWeight() {\n      return this.workItemWeight?.widgetDefinition?.rollUp;\n    },\n    rolledUpWeight() {\n      return this.workItemWeight?.rolledUpWeight;\n    },\n    rolledUpCompletedWeight() {\n      return this.workItemWeight?.rolledUpCompletedWeight;\n    },\n    completedWeightPercentage() {\n      return Math.round((this.rolledUpCompletedWeight / this.rolledUpWeight) * 100);\n    },\n    weightTooltip() {\n      return this.workItemType === WORK_ITEM_TYPE_VALUE_EPIC ? __('Issue weight') : __('Weight');\n    },\n    rolledUpHealthStatus() {\n      return this.workItemHealthStatus?.rolledUpHealthStatus;\n    },\n  },\n};\n</script>\n\n<template>\n  <div class=\"gl-flex\">\n    <!-- Rolled up weight -->\n    <span\n      v-if=\"shouldRolledUpWeightBeVisible\"\n      ref=\"weightData\"\n      tabindex=\"0\"\n      data-testid=\"work-item-rollup-weight\"\n      class=\"gl-flex gl-cursor-help gl-items-center gl-gap-2 gl-font-normal gl-text-subtle sm:gl-ml-3\"\n    >\n      <gl-icon name=\"weight\" variant=\"subtle\" />\n      <span data-testid=\"work-item-weight-value\" class=\"gl-text-sm\">{{ rolledUpWeight }}</span>\n      <gl-tooltip :target=\"() => $refs.weightData\">\n        <span class=\"gl-font-bold\">\n          {{ weightTooltip }}\n        </span>\n      </gl-tooltip>\n    </span>\n    <!--- END Rolled up weight -->\n\n    <!-- Rolled up Progress -->\n    <span\n      v-if=\"showRolledUpProgress\"\n      ref=\"progressBadge\"\n      tabindex=\"0\"\n      data-testid=\"work-item-rollup-progress\"\n      class=\"gl-ml-3 gl-flex gl-items-center gl-gap-2 gl-font-normal gl-text-subtle\"\n    >\n      <gl-icon name=\"progress\" variant=\"subtle\" />\n      <span data-testid=\"work-item-progress-value\" class=\"gl-text-sm\"\n        >{{ completedWeightPercentage }}%</span\n      >\n\n      <gl-popover triggers=\"hover focus\" :target=\"() => $refs.progressBadge\">\n        <template #title>{{ $options.i18n.progressLabel }}</template>\n        <span class=\"gl-font-bold\">{{ rolledUpCompletedWeight }}/{{ rolledUpWeight }}</span>\n        {{ $options.i18n.weightCompletedLabel }}\n      </gl-popover>\n    </span>\n    <!-- END Rolled up Progress -->\n\n    <!-- Rolled up health status -->\n    <work-item-rolled-up-health-status\n      v-if=\"rolledUpHealthStatus\"\n      :rolled-up-health-status=\"rolledUpHealthStatus\"\n    />\n    <!-- END Rolled up health status -->\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_rolled_up_data.vue?vue&type=template&id=75fe5bbe\"\nimport script from \"./work_item_rolled_up_data.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_rolled_up_data.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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\"},[(_vm.shouldRolledUpWeightBeVisible)?_c('span',{ref:\"weightData\",staticClass:\"gl-flex gl-cursor-help gl-items-center gl-gap-2 gl-font-normal gl-text-subtle sm:gl-ml-3\",attrs:{\"tabindex\":\"0\",\"data-testid\":\"work-item-rollup-weight\"}},[_c('gl-icon',{attrs:{\"name\":\"weight\",\"variant\":\"subtle\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-text-sm\",attrs:{\"data-testid\":\"work-item-weight-value\"}},[_vm._v(_vm._s(_vm.rolledUpWeight))]),_vm._v(\" \"),_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.weightData}},[_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(\"\\n        \"+_vm._s(_vm.weightTooltip)+\"\\n      \")])])],1):_vm._e(),_vm._v(\" \"),(_vm.showRolledUpProgress)?_c('span',{ref:\"progressBadge\",staticClass:\"gl-ml-3 gl-flex gl-items-center gl-gap-2 gl-font-normal gl-text-subtle\",attrs:{\"tabindex\":\"0\",\"data-testid\":\"work-item-rollup-progress\"}},[_c('gl-icon',{attrs:{\"name\":\"progress\",\"variant\":\"subtle\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-text-sm\",attrs:{\"data-testid\":\"work-item-progress-value\"}},[_vm._v(_vm._s(_vm.completedWeightPercentage)+\"%\")]),_vm._v(\" \"),_c('gl-popover',{attrs:{\"triggers\":\"hover focus\",\"target\":() => _vm.$refs.progressBadge},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(_vm._s(_vm.$options.i18n.progressLabel))]},proxy:true}],null,false,1194666129)},[_vm._v(\" \"),_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(_vm.rolledUpCompletedWeight)+\"/\"+_vm._s(_vm.rolledUpWeight))]),_vm._v(\"\\n      \"+_vm._s(_vm.$options.i18n.weightCompletedLabel)+\"\\n    \")])],1):_vm._e(),_vm._v(\" \"),(_vm.rolledUpHealthStatus)?_c('work-item-rolled-up-health-status',{attrs:{\"rolled-up-health-status\":_vm.rolledUpHealthStatus}}):_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_tree.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.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_tree.vue?vue&type=script&lang=js\"","<script>\nimport { GlAlert } from '@gitlab/ui';\nimport { sprintf, s__ } from '~/locale';\nimport { createAlert } from '~/alert';\nimport CrudComponent from '~/vue_shared/components/crud_component.vue';\nimport { findWidget } from '~/issues/list/utils';\nimport { getParameterByName } from '~/lib/utils/url_utility';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport {\n  FORM_TYPES,\n  WORK_ITEMS_TREE_TEXT,\n  WORK_ITEM_TYPE_VALUE_MAP,\n  WORK_ITEMS_TYPE_MAP,\n  WORK_ITEM_TYPE_ENUM_OBJECTIVE,\n  WORK_ITEM_TYPE_ENUM_KEY_RESULT,\n  WORK_ITEM_TYPE_ENUM_EPIC,\n  CHILD_ITEMS_ANCHOR,\n  WORKITEM_TREE_SHOWLABELS_LOCALSTORAGEKEY,\n  WORKITEM_TREE_SHOWCLOSED_LOCALSTORAGEKEY,\n  WORK_ITEM_TYPE_VALUE_EPIC,\n  WIDGET_TYPE_HIERARCHY,\n  INJECTION_LINK_CHILD_PREVENT_ROUTER_NAVIGATION,\n  DETAIL_VIEW_QUERY_PARAM_NAME,\n} from '../../constants';\nimport {\n  findHierarchyWidgets,\n  getDefaultHierarchyChildrenCount,\n  saveToggleToLocalStorage,\n  getToggleFromLocalStorage,\n  getItems,\n} from '../../utils';\nimport getWorkItemTreeQuery from '../../graphql/work_item_tree.query.graphql';\nimport namespaceWorkItemTypesQuery from '../../graphql/namespace_work_item_types.query.graphql';\nimport WorkItemChildrenLoadMore from '../shared/work_item_children_load_more.vue';\nimport WorkItemMoreActions from '../shared/work_item_more_actions.vue';\nimport WorkItemActionsSplitButton from './work_item_actions_split_button.vue';\nimport WorkItemLinksForm from './work_item_links_form.vue';\nimport WorkItemChildrenWrapper from './work_item_children_wrapper.vue';\nimport WorkItemRolledUpData from './work_item_rolled_up_data.vue';\nimport WorkItemRolledUpCount from './work_item_rolled_up_count.vue';\n\nexport default {\n  FORM_TYPES,\n  WORK_ITEMS_TREE_TEXT,\n  WORK_ITEM_TYPE_ENUM_OBJECTIVE,\n  WORK_ITEM_TYPE_ENUM_KEY_RESULT,\n  components: {\n    GlAlert,\n    WorkItemActionsSplitButton,\n    CrudComponent,\n    WorkItemLinksForm,\n    WorkItemChildrenWrapper,\n    WorkItemChildrenLoadMore,\n    WorkItemMoreActions,\n    WorkItemRolledUpData,\n    WorkItemRolledUpCount,\n  },\n  inject: ['hasSubepicsFeature'],\n  provide() {\n    return {\n      [INJECTION_LINK_CHILD_PREVENT_ROUTER_NAVIGATION]: !this.isDrawer,\n    };\n  },\n  props: {\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    isGroup: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n    parentWorkItemType: {\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    confidential: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    canUpdate: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    canUpdateChildren: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    allowedChildTypes: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n    isDrawer: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    activeChildItemId: {\n      type: String,\n      required: false,\n      default: null,\n    },\n  },\n  data() {\n    return {\n      error: undefined,\n      formType: null,\n      childType: null,\n      widgetName: CHILD_ITEMS_ANCHOR,\n      showLabels: true,\n      showClosed: true,\n      fetchNextPageInProgress: false,\n      workItem: {},\n      disableContent: false,\n      workItemTypes: [],\n      hierarchyWidget: null,\n      draggedItemType: null,\n      showLabelsLocalStorageKey: WORKITEM_TREE_SHOWLABELS_LOCALSTORAGEKEY,\n      showClosedLocalStorageKey: WORKITEM_TREE_SHOWCLOSED_LOCALSTORAGEKEY,\n    };\n  },\n  apollo: {\n    hierarchyWidget: {\n      query: getWorkItemTreeQuery,\n      variables() {\n        return {\n          id: this.workItemId,\n          pageSize: getDefaultHierarchyChildrenCount(),\n          endCursor: '',\n        };\n      },\n      skip() {\n        return !this.workItemId;\n      },\n      update({ workItem = {} }) {\n        const { children } = findHierarchyWidgets(workItem.widgets);\n        this.$emit('childrenLoaded', Boolean(children?.count));\n        this.workItem = workItem;\n        return children || {};\n      },\n      error() {\n        this.error = s__('WorkItems|An error occurred while fetching children');\n      },\n      result() {\n        if (this.hasNextPage && this.children.length === 0) {\n          this.fetchNextPage();\n        }\n        this.checkDrawerParams();\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    workItemHierarchy() {\n      return findWidget(WIDGET_TYPE_HIERARCHY, this.workItem);\n    },\n    rolledUpCountsByType() {\n      return this.workItemHierarchy?.rolledUpCountsByType || [];\n    },\n    depthLimitReachedByType() {\n      return this.workItemHierarchy?.depthLimitReachedByType || [];\n    },\n    childrenIds() {\n      return this.children.map((c) => c.id);\n    },\n    addItemsActions() {\n      let childTypes = this.allowedChildTypes;\n      // To remove EPICS actions when subepics are not available\n      if (\n        this.workItemType.toUpperCase() === WORK_ITEM_TYPE_ENUM_EPIC &&\n        !this.hasSubepicsFeature\n      ) {\n        childTypes = childTypes.filter((type) => {\n          return type.name.toUpperCase() !== WORK_ITEM_TYPE_ENUM_EPIC;\n        });\n      }\n\n      const reorderedChildTypes = childTypes.slice().sort((a, b) => a.id.localeCompare(b.id));\n      return reorderedChildTypes.map((type) => {\n        const enumType = WORK_ITEM_TYPE_VALUE_MAP[type.name];\n        const depthLimitByType =\n          this.depthLimitReachedByType?.find(\n            (item) => item.workItemType?.name.toUpperCase() === enumType,\n          ) || {};\n\n        return {\n          name: WORK_ITEMS_TYPE_MAP[enumType].name,\n          atDepthLimit: depthLimitByType.depthLimitReached,\n          items: this.genericActionItems(type.name).map((item) => ({\n            text: item.title,\n            action: item.action,\n            extraAttrs: {\n              disabled: depthLimitByType.depthLimitReached,\n            },\n          })),\n        };\n      });\n    },\n    children() {\n      return this.hierarchyWidget?.nodes || [];\n    },\n    hasIndirectChildren() {\n      return this.children\n        .map((child) => findHierarchyWidgets(child.widgets) || {})\n        .some((hierarchy) => hierarchy.hasChildren);\n    },\n    isLoadingChildren() {\n      return this.$apollo.queries.hierarchyWidget.loading;\n    },\n    showEmptyMessage() {\n      return this.children.length === 0 && !this.isLoadingChildren;\n    },\n    pageInfo() {\n      return this.hierarchyWidget?.pageInfo;\n    },\n    endCursor() {\n      return this.pageInfo?.endCursor || '';\n    },\n    hasNextPage() {\n      return this.pageInfo?.hasNextPage;\n    },\n    workItemNamespaceName() {\n      return this.workItem?.namespace?.fullName;\n    },\n    shouldRolledUpWeightBeVisible() {\n      return this.showRolledUpWeight && this.rolledUpWeight !== null;\n    },\n    showTaskWeight() {\n      return this.workItemType !== WORK_ITEM_TYPE_VALUE_EPIC;\n    },\n    allowedChildrenByType() {\n      return this.workItemTypes.reduce((acc, type) => {\n        const definition = type.widgetDefinitions?.find(\n          (widgetDefinition) => widgetDefinition.type === WIDGET_TYPE_HIERARCHY,\n        );\n        if (definition?.allowedChildTypes?.nodes?.length > 0) {\n          acc[type.name] = definition.allowedChildTypes.nodes.map((a) => a.name);\n        }\n        return acc;\n      }, {});\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    genericActionItems(workItem) {\n      const enumType = WORK_ITEM_TYPE_VALUE_MAP[workItem];\n      const workItemName = WORK_ITEMS_TYPE_MAP[enumType].name.toLowerCase();\n      return [\n        {\n          title: sprintf(s__('WorkItem|New %{workItemName}'), { workItemName }),\n          action: () => this.showAddForm(FORM_TYPES.create, enumType),\n        },\n        {\n          title: sprintf(s__('WorkItem|Existing %{workItemName}'), { workItemName }),\n          action: () => this.showAddForm(FORM_TYPES.add, enumType),\n        },\n      ];\n    },\n    showAddForm(formType, childType) {\n      this.$refs.workItemTree.showForm();\n      this.formType = formType;\n      this.childType = childType;\n      this.$nextTick(() => {\n        this.$refs.wiLinksForm.$refs.wiTitleInput?.$el.focus();\n      });\n    },\n    hideAddForm() {\n      this.$refs.workItemTree.hideForm();\n    },\n    showModal({ event, child }) {\n      this.$emit('show-modal', { event, modalWorkItem: child });\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    async fetchNextPage() {\n      if (this.hasNextPage && !this.fetchNextPageInProgress) {\n        this.fetchNextPageInProgress = true;\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    checkDrawerParams() {\n      const queryParam = getParameterByName(DETAIL_VIEW_QUERY_PARAM_NAME);\n\n      if (!queryParam) {\n        return;\n      }\n\n      const params = JSON.parse(atob(queryParam));\n      if (params.id) {\n        const modalWorkItem = this.children.find((i) => getIdFromGraphQLId(i.id) === params.id);\n        if (modalWorkItem) {\n          this.$emit('show-modal', { modalWorkItem });\n        }\n      }\n    },\n  },\n  i18n: {\n    noChildItemsOpen: s__('WorkItem|No child items are currently open.'),\n  },\n};\n</script>\n\n<template>\n  <crud-component\n    ref=\"workItemTree\"\n    :title=\"$options.WORK_ITEMS_TREE_TEXT.title\"\n    :anchor-id=\"widgetName\"\n    :is-loading=\"isLoadingChildren && !fetchNextPageInProgress\"\n    is-collapsible\n    persist-collapsed-state\n    data-testid=\"work-item-tree\"\n  >\n    <template #count>\n      <work-item-rolled-up-count\n        v-if=\"!isLoadingChildren\"\n        class=\"gl-ml-2 sm:gl-ml-0\"\n        :rolled-up-counts-by-type=\"rolledUpCountsByType\"\n      />\n      <work-item-rolled-up-data\n        v-if=\"!isLoadingChildren\"\n        class=\"gl-hidden sm:gl-flex\"\n        :work-item-id=\"workItemId\"\n        :work-item-iid=\"workItemIid\"\n        :work-item-type=\"workItemType\"\n        :full-path=\"fullPath\"\n      />\n    </template>\n\n    <template #description>\n      <work-item-rolled-up-data\n        v-if=\"!isLoadingChildren\"\n        class=\"gl-mt-2 sm:gl-hidden\"\n        :work-item-id=\"workItemId\"\n        :work-item-iid=\"workItemIid\"\n        :work-item-type=\"workItemType\"\n        :full-path=\"fullPath\"\n      />\n    </template>\n\n    <template #actions>\n      <work-item-actions-split-button v-if=\"canUpdateChildren\" :actions=\"addItemsActions\" />\n      <work-item-more-actions\n        :work-item-iid=\"workItemIid\"\n        :full-path=\"fullPath\"\n        :work-item-type=\"workItemType\"\n        :show-labels=\"showLabels\"\n        :show-closed=\"showClosed\"\n        show-view-roadmap-action\n        @toggle-show-labels=\"toggleShowLabels\"\n        @toggle-show-closed=\"toggleShowClosed\"\n      />\n    </template>\n\n    <template #form>\n      <work-item-links-form\n        ref=\"wiLinksForm\"\n        data-testid=\"add-tree-form\"\n        :full-path=\"fullPath\"\n        :full-name=\"workItemNamespaceName\"\n        :is-group=\"isGroup\"\n        :issuable-gid=\"workItemId\"\n        :work-item-iid=\"workItemIid\"\n        :form-type=\"formType\"\n        :parent-work-item-type=\"parentWorkItemType\"\n        :children-type=\"childType\"\n        :children-ids=\"childrenIds\"\n        :parent-confidential=\"confidential\"\n        @error=\"error = $event\"\n        @success=\"hideAddForm\"\n        @cancel=\"hideAddForm\"\n        @addChild=\"$emit('addChild')\"\n        @update-in-progress=\"disableContent = $event\"\n      />\n    </template>\n\n    <template v-if=\"showEmptyMessage\" #empty>\n      {{ $options.WORK_ITEMS_TREE_TEXT.empty }}\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          :children=\"children\"\n          :parent=\"workItem\"\n          :can-update=\"canUpdateChildren\"\n          :full-path=\"fullPath\"\n          :work-item-id=\"workItemId\"\n          :work-item-iid=\"workItemIid\"\n          :work-item-type=\"workItemType\"\n          :show-labels=\"showLabels\"\n          :show-closed=\"showClosed\"\n          :disable-content=\"disableContent\"\n          :show-task-weight=\"showTaskWeight\"\n          :has-indirect-children=\"hasIndirectChildren\"\n          :allowed-children-by-type=\"allowedChildrenByType\"\n          :dragged-item-type=\"draggedItemType\"\n          :active-child-item-id=\"activeChildItemId\"\n          :parent-id=\"workItemId\"\n          @drag=\"draggedItemType = $event\"\n          @drop=\"draggedItemType = null\"\n          @error=\"error = $event\"\n          @show-modal=\"showModal\"\n        />\n        <work-item-children-load-more\n          v-if=\"hasNextPage\"\n          data-testid=\"work-item-load-more\"\n          :class=\"{ '!gl-pl-5': hasIndirectChildren }\"\n          :show-task-weight=\"showTaskWeight\"\n          :fetch-next-page-in-progress=\"fetchNextPageInProgress\"\n          @fetch-next-page=\"fetchNextPage\"\n        />\n      </div>\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_tree.vue?vue&type=template&id=940b173a\"\nimport script from \"./work_item_tree.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_tree.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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:\"workItemTree\",attrs:{\"title\":_vm.$options.WORK_ITEMS_TREE_TEXT.title,\"anchor-id\":_vm.widgetName,\"is-loading\":_vm.isLoadingChildren && !_vm.fetchNextPageInProgress,\"is-collapsible\":\"\",\"persist-collapsed-state\":\"\",\"data-testid\":\"work-item-tree\"},scopedSlots:_vm._u([{key:\"count\",fn:function(){return [(!_vm.isLoadingChildren)?_c('work-item-rolled-up-count',{staticClass:\"gl-ml-2 sm:gl-ml-0\",attrs:{\"rolled-up-counts-by-type\":_vm.rolledUpCountsByType}}):_vm._e(),_vm._v(\" \"),(!_vm.isLoadingChildren)?_c('work-item-rolled-up-data',{staticClass:\"gl-hidden sm:gl-flex\",attrs:{\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"work-item-type\":_vm.workItemType,\"full-path\":_vm.fullPath}}):_vm._e()]},proxy:true},{key:\"description\",fn:function(){return [(!_vm.isLoadingChildren)?_c('work-item-rolled-up-data',{staticClass:\"gl-mt-2 sm:gl-hidden\",attrs:{\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"work-item-type\":_vm.workItemType,\"full-path\":_vm.fullPath}}):_vm._e()]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.canUpdateChildren)?_c('work-item-actions-split-button',{attrs:{\"actions\":_vm.addItemsActions}}):_vm._e(),_vm._v(\" \"),_c('work-item-more-actions',{attrs:{\"work-item-iid\":_vm.workItemIid,\"full-path\":_vm.fullPath,\"work-item-type\":_vm.workItemType,\"show-labels\":_vm.showLabels,\"show-closed\":_vm.showClosed,\"show-view-roadmap-action\":\"\"},on:{\"toggle-show-labels\":_vm.toggleShowLabels,\"toggle-show-closed\":_vm.toggleShowClosed}})]},proxy:true},{key:\"form\",fn:function(){return [_c('work-item-links-form',{ref:\"wiLinksForm\",attrs:{\"data-testid\":\"add-tree-form\",\"full-path\":_vm.fullPath,\"full-name\":_vm.workItemNamespaceName,\"is-group\":_vm.isGroup,\"issuable-gid\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"form-type\":_vm.formType,\"parent-work-item-type\":_vm.parentWorkItemType,\"children-type\":_vm.childType,\"children-ids\":_vm.childrenIds,\"parent-confidential\":_vm.confidential},on:{\"error\":function($event){_vm.error = $event},\"success\":_vm.hideAddForm,\"cancel\":_vm.hideAddForm,\"addChild\":function($event){return _vm.$emit('addChild')},\"update-in-progress\":function($event){_vm.disableContent = $event}}})]},proxy:true},(_vm.showEmptyMessage)?{key:\"empty\",fn:function(){return [_vm._v(\"\\n    \"+_vm._s(_vm.$options.WORK_ITEMS_TREE_TEXT.empty)+\"\\n  \")]},proxy:true}:null,{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\"},[_c('work-item-children-wrapper',{attrs:{\"children\":_vm.children,\"parent\":_vm.workItem,\"can-update\":_vm.canUpdateChildren,\"full-path\":_vm.fullPath,\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"work-item-type\":_vm.workItemType,\"show-labels\":_vm.showLabels,\"show-closed\":_vm.showClosed,\"disable-content\":_vm.disableContent,\"show-task-weight\":_vm.showTaskWeight,\"has-indirect-children\":_vm.hasIndirectChildren,\"allowed-children-by-type\":_vm.allowedChildrenByType,\"dragged-item-type\":_vm.draggedItemType,\"active-child-item-id\":_vm.activeChildItemId,\"parent-id\":_vm.workItemId},on:{\"drag\":function($event){_vm.draggedItemType = $event},\"drop\":function($event){_vm.draggedItemType = null},\"error\":function($event){_vm.error = $event},\"show-modal\":_vm.showModal}}),_vm._v(\" \"),(_vm.hasNextPage)?_c('work-item-children-load-more',{class:{ '!gl-pl-5': _vm.hasIndirectChildren },attrs:{\"data-testid\":\"work-item-load-more\",\"show-task-weight\":_vm.showTaskWeight,\"fetch-next-page-in-progress\":_vm.fetchNextPageInProgress},on:{\"fetch-next-page\":_vm.fetchNextPage}}):_vm._e()],1):_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 mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.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_change_type_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_change_type_modal.vue?vue&type=script&lang=js\"","<script>\nimport { GlModal, GlFormGroup, GlFormSelect, GlAlert } from '@gitlab/ui';\nimport { differenceBy } from 'lodash';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { __, s__, sprintf } from '~/locale';\nimport { findDesignWidget } from '~/work_items/utils';\nimport { capitalizeFirstCharacter } from '~/lib/utils/text_utility';\n\nimport {\n  WIDGET_TYPE_HIERARCHY,\n  WORK_ITEMS_TYPE_MAP,\n  WORK_ITEM_ALLOWED_CHANGE_TYPE_MAP,\n  WORK_ITEM_TYPE_ENUM_OBJECTIVE,\n  WORK_ITEM_TYPE_ENUM_KEY_RESULT,\n  sprintfWorkItem,\n  I18N_WORK_ITEM_CHANGE_TYPE_PARENT_ERROR,\n  I18N_WORK_ITEM_CHANGE_TYPE_CHILD_ERROR,\n  I18N_WORK_ITEM_CHANGE_TYPE_MISSING_FIELDS_ERROR,\n  WORK_ITEM_WIDGETS_NAME_MAP,\n  WIDGET_TYPE_DESIGNS,\n} from '../constants';\n\nimport namespaceWorkItemTypesQuery from '../graphql/namespace_work_item_types.query.graphql';\nimport convertWorkItemMutation from '../graphql/work_item_convert.mutation.graphql';\nimport getWorkItemDesignListQuery from './design_management/graphql/design_collection.query.graphql';\n\nexport default {\n  components: {\n    GlModal,\n    GlFormGroup,\n    GlFormSelect,\n    GlAlert,\n  },\n  actionCancel: {\n    text: __('Cancel'),\n  },\n  mixins: [glFeatureFlagMixin()],\n  inject: ['hasOkrsFeature'],\n  props: {\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    workItemType: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    hasChildren: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    hasParent: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    widgets: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n    allowedChildTypes: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n  },\n  data() {\n    return {\n      selectedWorkItemType: null,\n      workItemTypes: [],\n      warningMessage: '',\n      errorMessage: '',\n      changeTypeDisabled: true,\n      hasDesigns: false,\n    };\n  },\n  apollo: {\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      error(e) {\n        this.showErrorMessage(e);\n      },\n    },\n    hasDesigns: {\n      query: getWorkItemDesignListQuery,\n      variables() {\n        return {\n          id: this.workItemId,\n          atVersion: null,\n        };\n      },\n      update(data) {\n        return findDesignWidget(data.workItem.widgets)?.designCollection?.designs.nodes?.length > 0;\n      },\n      skip() {\n        return !this.workItemId;\n      },\n      error(e) {\n        this.showErrorMessage(e);\n      },\n    },\n  },\n  computed: {\n    allowedConversionWorkItemTypes() {\n      // The logic will be simplified once we implement\n      // https://gitlab.com/gitlab-org/gitlab/-/issues/498656\n      return [\n        { text: __('Select type'), value: null },\n        ...Object.entries(WORK_ITEMS_TYPE_MAP)\n          .map(([key, value]) => ({\n            text: value.value,\n            value: key,\n          }))\n          .filter((item) => {\n            if (item.text === this.workItemType) {\n              return false;\n            }\n            // Keeping this separate for readability\n            if (\n              item.value === WORK_ITEM_TYPE_ENUM_OBJECTIVE ||\n              item.value === WORK_ITEM_TYPE_ENUM_KEY_RESULT\n            ) {\n              return this.isOkrsEnabled;\n            }\n            return WORK_ITEM_ALLOWED_CHANGE_TYPE_MAP.includes(item.value);\n          }),\n      ];\n    },\n    isOkrsEnabled() {\n      return this.hasOkrsFeature && this.glFeatures.okrsMvc;\n    },\n    selectedWorkItemTypeWidgetDefinitions() {\n      return this.getWidgetDefinitions(this.selectedWorkItemType?.text);\n    },\n    currentWorkItemTypeWidgetDefinitions() {\n      return this.getWidgetDefinitions(this.workItemType);\n    },\n    widgetDifference() {\n      return differenceBy(\n        this.currentWorkItemTypeWidgetDefinitions,\n        this.selectedWorkItemTypeWidgetDefinitions,\n        'type',\n      );\n    },\n    widgetsWithExistingData() {\n      // Filter the widgets based on the presence or absence of data\n      const widgetsWithExistingDataList = this.widgetDifference.filter((item) => {\n        // Find the widget object\n        const widgetObject = this.widgets?.find((widget) => widget.type === item.type);\n\n        // return false if the widget data is not found\n        if (!widgetObject) {\n          return false;\n        }\n\n        // Skip the type and __typename fields\n        // It will either have the actual widget object or none\n        const fieldName = Object.keys(widgetObject).find(\n          (key) => key !== 'type' && key !== '__typename',\n        );\n\n        // return false if the field name is undefined\n        if (!fieldName) {\n          return false;\n        }\n\n        // Check if the object has non-empty nodes array or\n        // non-empty object\n        return widgetObject[fieldName]?.nodes !== undefined\n          ? widgetObject[fieldName]?.nodes?.length > 0\n          : Boolean(widgetObject[fieldName]);\n      });\n\n      if (this.hasDesigns) {\n        widgetsWithExistingDataList.push({\n          name: WORK_ITEM_WIDGETS_NAME_MAP[WIDGET_TYPE_DESIGNS],\n          type: WIDGET_TYPE_DESIGNS,\n        });\n      }\n\n      return widgetsWithExistingDataList.map((item) => ({\n        ...item,\n        name: WORK_ITEM_WIDGETS_NAME_MAP[item.type],\n      }));\n    },\n    hasWidgetDifference() {\n      return this.widgetsWithExistingData.length > 0;\n    },\n    parentWorkItem() {\n      return this.widgets?.find((widget) => widget.type === WIDGET_TYPE_HIERARCHY)?.parent;\n    },\n    parentWorkItemType() {\n      return this.parentWorkItem?.workItemType?.name;\n    },\n    workItemTypeId() {\n      return this.workItemTypes.find((type) => type.name === this.selectedWorkItemType.text).id;\n    },\n    selectedWorkItemTypeValue() {\n      return this.selectedWorkItemType?.value || null;\n    },\n    actionPrimary() {\n      return {\n        text: s__('WorkItem|Change type'),\n        attributes: {\n          variant: 'confirm',\n          disabled: this.changeTypeDisabled,\n        },\n      };\n    },\n  },\n  methods: {\n    async changeType() {\n      try {\n        const {\n          data: {\n            workItemConvert: { errors },\n          },\n        } = await this.$apollo.mutate({\n          mutation: convertWorkItemMutation,\n          variables: {\n            input: {\n              id: this.workItemId,\n              workItemTypeId: this.workItemTypeId,\n            },\n          },\n        });\n        if (errors.length > 0) {\n          this.showErrorMessage(errors[0]);\n          return;\n        }\n        this.$toast.show(s__('WorkItem|Type changed.'));\n        this.$emit('workItemTypeChanged');\n        this.hide();\n      } catch (error) {\n        this.showErrorMessage(error);\n        Sentry.captureException(error);\n      }\n    },\n    getWidgetDefinitions(type) {\n      if (!type) {\n        return [];\n      }\n      return this.workItemTypes.find((widget) => widget.name === type)?.widgetDefinitions;\n    },\n    validateWorkItemType(value) {\n      this.changeTypeDisabled = false;\n      this.warningMessage = '';\n      if (!value) {\n        this.resetModal();\n        return;\n      }\n\n      this.selectedWorkItemType = this.allowedConversionWorkItemTypes.find(\n        (item) => item.value === value,\n      );\n\n      if (this.hasParent) {\n        this.showWarningMessage(\n          sprintfWorkItem(\n            I18N_WORK_ITEM_CHANGE_TYPE_PARENT_ERROR,\n            this.selectedWorkItemType.text,\n            this.parentWorkItemType,\n          ),\n        );\n        this.changeTypeDisabled = true;\n        return;\n      }\n\n      if (this.hasChildren) {\n        const msg = sprintf(I18N_WORK_ITEM_CHANGE_TYPE_CHILD_ERROR, {\n          workItemType: capitalizeFirstCharacter(\n            this.selectedWorkItemType.text.toLocaleLowerCase(),\n          ),\n          childItemType: this.allowedChildTypes?.[0]?.name?.toLocaleLowerCase(),\n        });\n\n        this.showWarningMessage(msg);\n        this.changeTypeDisabled = true;\n        return;\n      }\n\n      // Compare the widget definitions of both types\n      if (this.hasWidgetDifference) {\n        this.warningMessage = sprintfWorkItem(\n          I18N_WORK_ITEM_CHANGE_TYPE_MISSING_FIELDS_ERROR,\n          this.selectedWorkItemType.text,\n        );\n      }\n    },\n    showWarningMessage(message) {\n      this.warningMessage = message;\n    },\n    showErrorMessage(message) {\n      this.errorMessage = message;\n    },\n    show() {\n      this.resetModal();\n      this.changeTypeDisabled = true;\n      this.$refs.modal.show();\n    },\n    hide() {\n      this.resetModal();\n      this.$refs.modal.hide();\n    },\n    resetModal() {\n      this.warningMessage = '';\n      this.errorMessage = '';\n      this.showDifferenceMessage = false;\n      this.selectedWorkItemType = null;\n      this.changeTypeDisabled = false;\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-modal\n    v-if=\"workItemId\"\n    ref=\"modal\"\n    modal-id=\"work-item-change-type\"\n    :title=\"s__('WorkItem|Change type')\"\n    size=\"sm\"\n    :action-primary=\"actionPrimary\"\n    :action-cancel=\"$options.actionCancel\"\n    @primary=\"changeType\"\n    @canceled=\"hide\"\n  >\n    <gl-alert\n      v-if=\"errorMessage\"\n      data-testid=\"change-type-error-message\"\n      class=\"gl-mb-3\"\n      variant=\"danger\"\n      @dismiss=\"errorMessage = undefined\"\n    >\n      {{ errorMessage }}\n    </gl-alert>\n    <div class=\"gl-mb-4\">\n      {{ s__('WorkItem|Select which type you would like to change this item to.') }}\n    </div>\n    <gl-form-group :label=\"__('Type')\" label-for=\"work-item-type-select\">\n      <gl-form-select\n        id=\"work-item-type-select\"\n        data-testid=\"work-item-change-type-select\"\n        :value=\"selectedWorkItemTypeValue\"\n        width=\"md\"\n        :options=\"allowedConversionWorkItemTypes\"\n        @change=\"validateWorkItemType\"\n      />\n    </gl-form-group>\n    <gl-alert\n      v-if=\"warningMessage\"\n      data-testid=\"change-type-warning-message\"\n      variant=\"warning\"\n      :dismissible=\"false\"\n    >\n      {{ warningMessage }}\n      <ul v-if=\"hasWidgetDifference\" class=\"gl-mb-0\">\n        <li v-for=\"widget in widgetsWithExistingData\" :key=\"widget.type\">\n          {{ widget.name }}\n        </li>\n      </ul>\n    </gl-alert>\n  </gl-modal>\n</template>\n","import { render, staticRenderFns } from \"./work_item_change_type_modal.vue?vue&type=template&id=01035bca\"\nimport script from \"./work_item_change_type_modal.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_change_type_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 (_vm.workItemId)?_c('gl-modal',{ref:\"modal\",attrs:{\"modal-id\":\"work-item-change-type\",\"title\":_vm.s__('WorkItem|Change type'),\"size\":\"sm\",\"action-primary\":_vm.actionPrimary,\"action-cancel\":_vm.$options.actionCancel},on:{\"primary\":_vm.changeType,\"canceled\":_vm.hide}},[(_vm.errorMessage)?_c('gl-alert',{staticClass:\"gl-mb-3\",attrs:{\"data-testid\":\"change-type-error-message\",\"variant\":\"danger\"},on:{\"dismiss\":function($event){_vm.errorMessage = undefined}}},[_vm._v(\"\\n    \"+_vm._s(_vm.errorMessage)+\"\\n  \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-mb-4\"},[_vm._v(\"\\n    \"+_vm._s(_vm.s__('WorkItem|Select which type you would like to change this item to.'))+\"\\n  \")]),_vm._v(\" \"),_c('gl-form-group',{attrs:{\"label\":_vm.__('Type'),\"label-for\":\"work-item-type-select\"}},[_c('gl-form-select',{attrs:{\"id\":\"work-item-type-select\",\"data-testid\":\"work-item-change-type-select\",\"value\":_vm.selectedWorkItemTypeValue,\"width\":\"md\",\"options\":_vm.allowedConversionWorkItemTypes},on:{\"change\":_vm.validateWorkItemType}})],1),_vm._v(\" \"),(_vm.warningMessage)?_c('gl-alert',{attrs:{\"data-testid\":\"change-type-warning-message\",\"variant\":\"warning\",\"dismissible\":false}},[_vm._v(\"\\n    \"+_vm._s(_vm.warningMessage)+\"\\n    \"),(_vm.hasWidgetDifference)?_c('ul',{staticClass:\"gl-mb-0\"},_vm._l((_vm.widgetsWithExistingData),function(widget){return _c('li',{key:widget.type},[_vm._v(\"\\n        \"+_vm._s(widget.name)+\"\\n      \")])}),0):_vm._e()]):_vm._e()],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_state_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!./work_item_state_toggle.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlDisclosureDropdownItem, GlLoadingIcon, GlModal, GlLink } from '@gitlab/ui';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport Tracking from '~/tracking';\nimport { __, s__ } from '~/locale';\nimport {\n  sprintfWorkItem,\n  I18N_WORK_ITEM_ERROR_UPDATING,\n  STATE_OPEN,\n  STATE_EVENT_CLOSE,\n  STATE_EVENT_REOPEN,\n  TRACKING_CATEGORY_SHOW,\n  LINKED_CATEGORIES_MAP,\n  i18n,\n} from '../constants';\nimport { findHierarchyWidgets, findLinkedItemsWidget } from '../utils';\nimport { updateCountsForParent } from '../graphql/cache_utils';\nimport updateWorkItemMutation from '../graphql/update_work_item.mutation.graphql';\nimport workItemByIidQuery from '../graphql/work_item_by_iid.query.graphql';\nimport workItemLinkedItemsQuery from '../graphql/work_item_linked_items.query.graphql';\nimport workItemOpenChildCountQuery from '../graphql/open_child_count.query.graphql';\n\nexport default {\n  components: {\n    GlButton,\n    GlDisclosureDropdownItem,\n    GlLoadingIcon,\n    GlModal,\n    GlLink,\n  },\n  mixins: [Tracking.mixin()],\n  props: {\n    workItemState: {\n      type: String,\n      required: true,\n    },\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    workItemIid: {\n      type: String,\n      required: true,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    showAsDropdownItem: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    hasComment: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    parentId: {\n      type: String,\n      required: false,\n      default: null,\n    },\n  },\n  data() {\n    return {\n      updateInProgress: false,\n      blockerItems: [],\n      openChildItemsCount: 0,\n    };\n  },\n  apollo: {\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      error(e) {\n        const msg = e.message || i18n.fetchError;\n        this.$emit('error', msg);\n        Sentry.captureException(new Error(msg));\n      },\n    },\n    blockerItems: {\n      query: workItemLinkedItemsQuery,\n      variables() {\n        return {\n          fullPath: this.fullPath,\n          iid: this.workItemIid,\n        };\n      },\n      skip() {\n        return !this.workItemIid;\n      },\n      update({ workspace }) {\n        if (!workspace?.workItem) return [];\n\n        const linkedWorkItems = findLinkedItemsWidget(workspace.workItem)?.linkedItems?.nodes || [];\n\n        return linkedWorkItems.filter((item) => {\n          return item.linkType === LINKED_CATEGORIES_MAP.IS_BLOCKED_BY;\n        });\n      },\n      error(e) {\n        const msg = e.message || i18n.fetchError;\n        this.$emit('error', msg);\n        Sentry.captureException(new Error(msg));\n      },\n    },\n    openChildItemsCount: {\n      query: workItemOpenChildCountQuery,\n      variables() {\n        return {\n          fullPath: this.fullPath,\n          iid: this.workItemIid,\n        };\n      },\n      skip() {\n        return !this.workItemIid;\n      },\n      update({ namespace }) {\n        if (!namespace?.workItem) return 0;\n\n        /** @type {Array<{countsByState: { opened : number }}> } */\n        const countsByType = findHierarchyWidgets(namespace.workItem.widgets)?.rolledUpCountsByType;\n\n        if (!countsByType) {\n          return 0;\n        }\n\n        const total = countsByType.reduce((acc, curr) => acc + curr.countsByState.opened, 0);\n\n        return total;\n      },\n    },\n  },\n  computed: {\n    isWorkItemOpen() {\n      return this.workItemState === STATE_OPEN;\n    },\n    toggleWorkItemStateText() {\n      let baseText = this.isWorkItemOpen\n        ? s__('WorkItem|Close %{workItemType}')\n        : s__('WorkItem|Reopen %{workItemType}');\n\n      if (this.hasComment) {\n        baseText = this.isWorkItemOpen\n          ? s__('WorkItem|Comment & close %{workItemType}')\n          : s__('WorkItem|Comment & reopen %{workItemType}');\n      }\n      return sprintfWorkItem(baseText, this.workItemType);\n    },\n    tracking() {\n      return {\n        category: TRACKING_CATEGORY_SHOW,\n        label: 'item_state',\n        property: `type_${this.workItemType}`,\n      };\n    },\n    toggleInProgressText() {\n      const baseText = this.isWorkItemOpen\n        ? s__('WorkItem|Closing %{workItemType}')\n        : s__('WorkItem|Reopening %{workItemType}');\n      return sprintfWorkItem(baseText, this.workItemType);\n    },\n    isBlocked() {\n      return this.blockerItems.length > 0;\n    },\n    hasOpenChildren() {\n      return this.openChildItemsCount > 0;\n    },\n    action() {\n      if (this.isWorkItemOpen) {\n        if (this.isBlocked) {\n          return () => this.$refs.blockedByIssuesModal.show();\n        }\n        if (this.hasOpenChildren) {\n          return () => this.$refs.openChildrenWarningModal.show();\n        }\n      }\n      return this.updateWorkItem;\n    },\n    blockedByModalTitle() {\n      return sprintfWorkItem(\n        s__('WorkItem|Are you sure you want to close this blocked %{workItemType}?'),\n        this.workItemType,\n      );\n    },\n    blockedByModalBody() {\n      return sprintfWorkItem(\n        s__('WorkItem|This %{workItemType} is currently blocked by the following items:'),\n        this.workItemType,\n      );\n    },\n    openChildrenModalTitle() {\n      return sprintfWorkItem(\n        s__('WorkItem|Are you sure you want to close this %{workItemType}?'),\n        this.workItemType,\n      );\n    },\n    openChildrenModalBody() {\n      return sprintfWorkItem(\n        s__(\n          'WorkItem|This %{workItemType} has open child items. If you close this %{workItemType}, they will remain open.',\n        ),\n        this.workItemType,\n      );\n    },\n    modalActionCancel() {\n      return {\n        text: __('Cancel'),\n      };\n    },\n    modalActionPrimary() {\n      return {\n        text: sprintfWorkItem(s__('WorkItem|Yes, close %{workItemType}'), this.workItemType),\n      };\n    },\n  },\n  methods: {\n    async updateWorkItem() {\n      this.updateInProgress = true;\n\n      try {\n        this.track('updated_state');\n\n        const { data } = await this.$apollo.mutate({\n          mutation: updateWorkItemMutation,\n          variables: {\n            input: {\n              id: this.workItemId,\n              stateEvent: this.isWorkItemOpen ? STATE_EVENT_CLOSE : STATE_EVENT_REOPEN,\n            },\n          },\n          update: (cache) =>\n            updateCountsForParent({\n              cache,\n              parentId: this.parentId,\n              workItemType: this.workItemType,\n              isClosing: this.isWorkItemOpen,\n            }),\n        });\n\n        const errors = data.workItemUpdate?.errors;\n\n        if (errors?.length) {\n          throw new Error(errors[0]);\n        }\n      } catch (error) {\n        const msg = sprintfWorkItem(I18N_WORK_ITEM_ERROR_UPDATING, this.workItemType);\n        this.$emit('error', msg);\n        Sentry.captureException(error);\n      }\n\n      if (this.hasComment) {\n        this.$emit('submit-comment');\n      }\n      this.$emit('workItemStateUpdated');\n\n      this.updateInProgress = false;\n    },\n  },\n};\n</script>\n\n<template>\n  <span>\n    <gl-disclosure-dropdown-item v-if=\"showAsDropdownItem\" @action=\"action\">\n      <template #list-item>\n        <template v-if=\"updateInProgress\">\n          <gl-loading-icon inline size=\"sm\" />\n          {{ toggleInProgressText }}\n        </template>\n        <template v-else>\n          {{ toggleWorkItemStateText }}\n        </template>\n      </template>\n    </gl-disclosure-dropdown-item>\n\n    <gl-button v-else :loading=\"updateInProgress\" @click=\"action\">{{\n      toggleWorkItemStateText\n    }}</gl-button>\n\n    <gl-modal\n      ref=\"blockedByIssuesModal\"\n      modal-id=\"blocked-by-issues-modal\"\n      data-testid=\"blocked-by-issues-modal\"\n      :action-cancel=\"modalActionCancel\"\n      :action-primary=\"modalActionPrimary\"\n      :title=\"blockedByModalTitle\"\n      @primary=\"updateWorkItem\"\n    >\n      <p>{{ blockedByModalBody }}</p>\n      <ul>\n        <li v-for=\"issue in blockerItems\" :key=\"issue.workItem.iid\">\n          <gl-link :href=\"issue.workItem.webUrl\">#{{ issue.workItem.iid }}</gl-link>\n        </li>\n      </ul>\n    </gl-modal>\n\n    <gl-modal\n      ref=\"openChildrenWarningModal\"\n      modal-id=\"open-children-warning-modal\"\n      data-testid=\"open-children-warning-modal\"\n      :action-cancel=\"modalActionCancel\"\n      :action-primary=\"modalActionPrimary\"\n      :title=\"openChildrenModalTitle\"\n      @primary=\"updateWorkItem\"\n    >\n      <p>{{ openChildrenModalBody }}</p>\n    </gl-modal>\n  </span>\n</template>\n","import { render, staticRenderFns } from \"./work_item_state_toggle.vue?vue&type=template&id=d3554a42\"\nimport script from \"./work_item_state_toggle.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_state_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('span',[(_vm.showAsDropdownItem)?_c('gl-disclosure-dropdown-item',{on:{\"action\":_vm.action},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [(_vm.updateInProgress)?[_c('gl-loading-icon',{attrs:{\"inline\":\"\",\"size\":\"sm\"}}),_vm._v(\"\\n        \"+_vm._s(_vm.toggleInProgressText)+\"\\n      \")]:[_vm._v(\"\\n        \"+_vm._s(_vm.toggleWorkItemStateText)+\"\\n      \")]]},proxy:true}],null,false,3931365702)}):_c('gl-button',{attrs:{\"loading\":_vm.updateInProgress},on:{\"click\":_vm.action}},[_vm._v(_vm._s(_vm.toggleWorkItemStateText))]),_vm._v(\" \"),_c('gl-modal',{ref:\"blockedByIssuesModal\",attrs:{\"modal-id\":\"blocked-by-issues-modal\",\"data-testid\":\"blocked-by-issues-modal\",\"action-cancel\":_vm.modalActionCancel,\"action-primary\":_vm.modalActionPrimary,\"title\":_vm.blockedByModalTitle},on:{\"primary\":_vm.updateWorkItem}},[_c('p',[_vm._v(_vm._s(_vm.blockedByModalBody))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.blockerItems),function(issue){return _c('li',{key:issue.workItem.iid},[_c('gl-link',{attrs:{\"href\":issue.workItem.webUrl}},[_vm._v(\"#\"+_vm._s(issue.workItem.iid))])],1)}),0)]),_vm._v(\" \"),_c('gl-modal',{ref:\"openChildrenWarningModal\",attrs:{\"modal-id\":\"open-children-warning-modal\",\"data-testid\":\"open-children-warning-modal\",\"action-cancel\":_vm.modalActionCancel,\"action-primary\":_vm.modalActionPrimary,\"title\":_vm.openChildrenModalTitle},on:{\"primary\":_vm.updateWorkItem}},[_c('p',[_vm._v(_vm._s(_vm.openChildrenModalBody))])])],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_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_actions.vue?vue&type=script&lang=js\"","<script>\nimport {\n  GlDisclosureDropdown,\n  GlDisclosureDropdownItem,\n  GlDropdownDivider,\n  GlLoadingIcon,\n  GlModal,\n  GlModalDirective,\n  GlTooltipDirective,\n  GlToggle,\n} from '@gitlab/ui';\n\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\n\nimport { __, s__ } from '~/locale';\nimport Tracking from '~/tracking';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\n\nimport {\n  sprintfWorkItem,\n  I18N_WORK_ITEM_DELETE,\n  I18N_WORK_ITEM_ARE_YOU_SURE_DELETE,\n  I18N_WORK_ITEM_ARE_YOU_SURE_DELETE_HIERARCHY,\n  TEST_ID_CONFIDENTIALITY_TOGGLE_ACTION,\n  TEST_ID_NOTIFICATIONS_TOGGLE_FORM,\n  TEST_ID_DELETE_ACTION,\n  TEST_ID_PROMOTE_ACTION,\n  TEST_ID_CHANGE_TYPE_ACTION,\n  TEST_ID_COPY_CREATE_NOTE_EMAIL_ACTION,\n  TEST_ID_COPY_REFERENCE_ACTION,\n  TEST_ID_TOGGLE_ACTION,\n  I18N_WORK_ITEM_ERROR_CONVERTING,\n  WORK_ITEM_TYPE_VALUE_KEY_RESULT,\n  WORK_ITEM_TYPE_VALUE_OBJECTIVE,\n  I18N_WORK_ITEM_COPY_CREATE_NOTE_EMAIL,\n  I18N_WORK_ITEM_ERROR_COPY_REFERENCE,\n  I18N_WORK_ITEM_ERROR_COPY_EMAIL,\n  I18N_WORK_ITEM_NEW_RELATED_ITEM,\n  TEST_ID_LOCK_ACTION,\n  TEST_ID_REPORT_ABUSE,\n  TEST_ID_NEW_RELATED_WORK_ITEM,\n  WORK_ITEM_TYPE_VALUE_EPIC,\n  WORK_ITEM_TYPE_ENUM_EPIC,\n} from '../constants';\nimport updateWorkItemMutation from '../graphql/update_work_item.mutation.graphql';\nimport updateWorkItemNotificationsMutation from '../graphql/update_work_item_notifications.mutation.graphql';\nimport convertWorkItemMutation from '../graphql/work_item_convert.mutation.graphql';\nimport namespaceWorkItemTypesQuery from '../graphql/namespace_work_item_types.query.graphql';\nimport WorkItemChangeTypeModal from './work_item_change_type_modal.vue';\nimport WorkItemStateToggle from './work_item_state_toggle.vue';\nimport CreateWorkItemModal from './create_work_item_modal.vue';\n\nexport default {\n  i18n: {\n    enableConfidentiality: s__('WorkItem|Turn on confidentiality'),\n    disableConfidentiality: s__('WorkItem|Turn off confidentiality'),\n    confidentialityEnabled: s__('WorkItem|Confidentiality turned on.'),\n    confidentialityDisabled: s__('WorkItem|Confidentiality turned off.'),\n    confidentialParentTooltip: s__(\n      'WorkItem|Child items of a confidential parent must be confidential. Turn off confidentiality on the parent item first.',\n    ),\n    notifications: s__('WorkItem|Notifications'),\n    notificationOn: s__('WorkItem|Notifications turned on.'),\n    notificationOff: s__('WorkItem|Notifications turned off.'),\n    copyReference: __('Copy reference'),\n    referenceCopied: __('Reference copied'),\n    emailAddressCopied: __('Email address copied'),\n    moreActions: __('More actions'),\n    reportAbuse: __('Report abuse'),\n    changeWorkItemType: s__('WorkItem|Change type'),\n  },\n  WORK_ITEM_TYPE_ENUM_EPIC,\n  components: {\n    GlDisclosureDropdown,\n    GlDisclosureDropdownItem,\n    GlDropdownDivider,\n    GlLoadingIcon,\n    GlModal,\n    GlToggle,\n    WorkItemStateToggle,\n    CreateWorkItemModal,\n    WorkItemChangeTypeModal,\n  },\n  directives: {\n    GlModal: GlModalDirective,\n    GlTooltip: GlTooltipDirective,\n  },\n  mixins: [glFeatureFlagMixin(), Tracking.mixin({ label: 'actions_menu' })],\n  isLoggedIn: isLoggedIn(),\n  notificationsToggleFormTestId: TEST_ID_NOTIFICATIONS_TOGGLE_FORM,\n  confidentialityTestId: TEST_ID_CONFIDENTIALITY_TOGGLE_ACTION,\n  copyReferenceTestId: TEST_ID_COPY_REFERENCE_ACTION,\n  copyCreateNoteEmailTestId: TEST_ID_COPY_CREATE_NOTE_EMAIL_ACTION,\n  deleteActionTestId: TEST_ID_DELETE_ACTION,\n  promoteActionTestId: TEST_ID_PROMOTE_ACTION,\n  changeTypeTestId: TEST_ID_CHANGE_TYPE_ACTION,\n  lockDiscussionTestId: TEST_ID_LOCK_ACTION,\n  stateToggleTestId: TEST_ID_TOGGLE_ACTION,\n  reportAbuseActionTestId: TEST_ID_REPORT_ABUSE,\n  newRelatedItemTestId: TEST_ID_NEW_RELATED_WORK_ITEM,\n  props: {\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    workItemState: {\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    workItemType: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    workItemTypeId: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    canUpdate: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    canDelete: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isConfidential: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isDiscussionLocked: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isParentConfidential: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    subscribedToNotifications: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    workItemReference: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    workItemCreateNoteEmail: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    isModal: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    hideSubscribe: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    hasChildren: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    hasParent: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    parentId: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    workItemAuthorId: {\n      type: Number,\n      required: false,\n      default: 0,\n    },\n    canCreateRelatedItem: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isGroup: {\n      type: Boolean,\n      required: true,\n    },\n    widgets: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n    allowedChildTypes: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n  },\n  data() {\n    return {\n      isLockDiscussionUpdating: false,\n      isDropdownVisible: false,\n      isCreateWorkItemModalVisible: false,\n    };\n  },\n  apollo: {\n    // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\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 || this.workItemType !== WORK_ITEM_TYPE_VALUE_KEY_RESULT;\n      },\n    },\n  },\n  computed: {\n    i18n() {\n      return {\n        deleteWorkItem: sprintfWorkItem(I18N_WORK_ITEM_DELETE, this.workItemType),\n        convertError: sprintfWorkItem(I18N_WORK_ITEM_ERROR_CONVERTING, this.workItemType),\n        copyCreateNoteEmail: sprintfWorkItem(\n          I18N_WORK_ITEM_COPY_CREATE_NOTE_EMAIL,\n          this.workItemType,\n        ),\n        copyReferenceError: sprintfWorkItem(I18N_WORK_ITEM_ERROR_COPY_REFERENCE, this.workItemType),\n        copyCreateNoteEmailError: sprintfWorkItem(\n          I18N_WORK_ITEM_ERROR_COPY_EMAIL,\n          this.workItemType,\n        ),\n        newRelatedItemLabel: sprintfWorkItem(I18N_WORK_ITEM_NEW_RELATED_ITEM, this.workItemType),\n      };\n    },\n    areYouSureDeleteMessage() {\n      return this.hasChildren\n        ? sprintfWorkItem(I18N_WORK_ITEM_ARE_YOU_SURE_DELETE_HIERARCHY, this.workItemType)\n        : sprintfWorkItem(I18N_WORK_ITEM_ARE_YOU_SURE_DELETE, this.workItemType);\n    },\n    canLockWorkItem() {\n      return this.canUpdate;\n    },\n    canPromoteToObjective() {\n      return this.canUpdate && this.workItemType === WORK_ITEM_TYPE_VALUE_KEY_RESULT;\n    },\n    confidentialItem() {\n      return {\n        text: this.isConfidential\n          ? this.$options.i18n.disableConfidentiality\n          : this.$options.i18n.enableConfidentiality,\n        extraAttrs: {\n          disabled: this.isParentConfidential,\n        },\n      };\n    },\n    confidentialTooltip() {\n      return this.isParentConfidential ? this.$options.i18n.confidentialParentTooltip : '';\n    },\n    lockDiscussionText() {\n      return this.isDiscussionLocked ? __('Unlock discussion') : __('Lock discussion');\n    },\n    objectiveWorkItemTypeId() {\n      return this.workItemTypes.find((type) => type.name === WORK_ITEM_TYPE_VALUE_OBJECTIVE).id;\n    },\n    showDropdownTooltip() {\n      return !this.isDropdownVisible ? this.$options.i18n.moreActions : '';\n    },\n    isAuthor() {\n      return this.workItemAuthorId === window.gon.current_user_id;\n    },\n    relatedItemData() {\n      return {\n        id: this.workItemId,\n        type: this.workItemType,\n        reference: this.workItemReference,\n      };\n    },\n    isEpic() {\n      return this.workItemType === WORK_ITEM_TYPE_VALUE_EPIC;\n    },\n    confidentialityToggledText() {\n      return this.isConfidential\n        ? this.$options.i18n.confidentialityDisabled\n        : this.$options.i18n.confidentialityEnabled;\n    },\n    showChangeType() {\n      return !this.isEpic && this.glFeatures.workItemsBeta;\n    },\n  },\n  methods: {\n    copyToClipboard(text, message) {\n      if (this.isModal) {\n        navigator.clipboard.writeText(text);\n      }\n      toast(message);\n      this.closeDropdown();\n    },\n    handleToggleWorkItemConfidentiality() {\n      this.track('click_toggle_work_item_confidentiality');\n      this.$emit('toggleWorkItemConfidentiality', !this.isConfidential);\n      toast(this.confidentialityToggledText);\n      this.closeDropdown();\n    },\n    handleDelete() {\n      this.$refs.modal.show();\n      this.closeDropdown();\n    },\n    handleDeleteWorkItem() {\n      this.track('click_delete_work_item');\n      this.$emit('deleteWorkItem');\n    },\n    handleCancelDeleteWorkItem({ trigger }) {\n      if (trigger !== 'ok') {\n        this.track('cancel_delete_work_item');\n      }\n    },\n    toggleNotifications(subscribed) {\n      this.$apollo\n        .mutate({\n          mutation: updateWorkItemNotificationsMutation,\n          variables: {\n            input: {\n              id: this.workItemId,\n              subscribed,\n            },\n          },\n        })\n        .then(({ data }) => {\n          const { errors } = data.workItemSubscribe;\n          if (errors?.length) {\n            throw new Error(errors[0]);\n          }\n\n          toast(\n            subscribed ? this.$options.i18n.notificationOn : this.$options.i18n.notificationOff,\n          );\n        })\n        .catch((error) => {\n          this.$emit('error', error.message);\n          Sentry.captureException(error);\n        });\n    },\n    throwConvertError() {\n      this.$emit('error', this.i18n.convertError);\n    },\n    closeDropdown() {\n      this.$refs.workItemsMoreActions.close();\n    },\n    toggleDiscussionLock() {\n      this.isLockDiscussionUpdating = true;\n\n      this.$apollo\n        .mutate({\n          mutation: updateWorkItemMutation,\n          variables: {\n            input: {\n              id: this.workItemId,\n              notesWidget: {\n                discussionLocked: !this.isDiscussionLocked,\n              },\n            },\n          },\n        })\n        .then(({ data }) => {\n          const { errors } = data.workItemUpdate;\n          if (errors?.length) {\n            throw new Error(errors);\n          }\n\n          toast(this.isDiscussionLocked ? __('Discussion locked.') : __('Discussion unlocked.'));\n        })\n        .catch((error) => {\n          this.$emit('error', error.message);\n          Sentry.captureException(error);\n        })\n        .finally(() => {\n          this.isLockDiscussionUpdating = false;\n        });\n    },\n    async promoteToObjective() {\n      try {\n        const {\n          data: {\n            workItemConvert: { errors },\n          },\n        } = await this.$apollo.mutate({\n          mutation: convertWorkItemMutation,\n          variables: {\n            input: {\n              id: this.workItemId,\n              workItemTypeId: this.objectiveWorkItemTypeId,\n            },\n          },\n        });\n        if (errors.length > 0) {\n          this.throwConvertError();\n          return;\n        }\n        this.$toast.show(s__('WorkItem|Promoted to objective.'));\n        this.track('promote_kr_to_objective');\n        this.$emit('promotedToObjective');\n      } catch (error) {\n        this.throwConvertError();\n        Sentry.captureException(error);\n      } finally {\n        this.closeDropdown();\n      }\n    },\n    showDropdown() {\n      this.isDropdownVisible = true;\n    },\n    hideDropdown() {\n      this.isDropdownVisible = false;\n    },\n    emitStateToggleError(error) {\n      this.$emit('error', error);\n    },\n    handleToggleReportAbuseModal() {\n      this.$emit('toggleReportAbuseModal', true);\n      this.closeDropdown();\n    },\n    showChangeTypeModal() {\n      this.$refs.workItemsChangeTypeModal.show();\n    },\n  },\n};\n</script>\n\n<template>\n  <div>\n    <gl-disclosure-dropdown\n      ref=\"workItemsMoreActions\"\n      v-gl-tooltip=\"showDropdownTooltip\"\n      icon=\"ellipsis_v\"\n      data-testid=\"work-item-actions-dropdown\"\n      text-sr-only\n      :toggle-text=\"$options.i18n.moreActions\"\n      category=\"tertiary\"\n      :auto-close=\"false\"\n      no-caret\n      right\n      @shown=\"showDropdown\"\n      @hidden=\"hideDropdown\"\n    >\n      <template v-if=\"$options.isLoggedIn && !hideSubscribe\">\n        <gl-disclosure-dropdown-item\n          class=\"gl-flex gl-w-full gl-justify-end\"\n          :data-testid=\"$options.notificationsToggleFormTestId\"\n        >\n          <template #list-item>\n            <gl-toggle\n              :value=\"subscribedToNotifications\"\n              :label=\"$options.i18n.notifications\"\n              label-position=\"left\"\n              class=\"work-item-dropdown-toggle gl-justify-between\"\n              @change=\"toggleNotifications($event)\"\n            />\n          </template>\n        </gl-disclosure-dropdown-item>\n        <gl-dropdown-divider />\n      </template>\n\n      <work-item-state-toggle\n        v-if=\"canUpdate\"\n        :data-testid=\"$options.stateToggleTestId\"\n        :work-item-id=\"workItemId\"\n        :work-item-iid=\"workItemIid\"\n        :work-item-state=\"workItemState\"\n        :work-item-type=\"workItemType\"\n        :full-path=\"fullPath\"\n        :parent-id=\"parentId\"\n        show-as-dropdown-item\n        @error=\"emitStateToggleError\"\n        @workItemStateUpdated=\"$emit('workItemStateUpdated')\"\n      />\n\n      <gl-disclosure-dropdown-item\n        v-if=\"canCreateRelatedItem && canUpdate\"\n        :data-testid=\"$options.newRelatedItemTestId\"\n        @action=\"isCreateWorkItemModalVisible = true\"\n      >\n        <template #list-item>{{ i18n.newRelatedItemLabel }}</template>\n      </gl-disclosure-dropdown-item>\n\n      <gl-disclosure-dropdown-item\n        v-if=\"canPromoteToObjective\"\n        :data-testid=\"$options.promoteActionTestId\"\n        @action=\"promoteToObjective\"\n      >\n        <template #list-item>{{ __('Promote to objective') }}</template>\n      </gl-disclosure-dropdown-item>\n\n      <gl-disclosure-dropdown-item\n        v-if=\"showChangeType\"\n        :data-testid=\"$options.changeTypeTestId\"\n        @action=\"showChangeTypeModal\"\n      >\n        <template #list-item>{{ $options.i18n.changeWorkItemType }}</template>\n      </gl-disclosure-dropdown-item>\n\n      <gl-disclosure-dropdown-item\n        v-if=\"canLockWorkItem\"\n        :data-testid=\"$options.lockDiscussionTestId\"\n        @action=\"toggleDiscussionLock\"\n      >\n        <template #list-item>\n          <gl-loading-icon v-if=\"isLockDiscussionUpdating\" class=\"gl-mr-1\" inline />\n          {{ lockDiscussionText }}\n        </template>\n      </gl-disclosure-dropdown-item>\n\n      <gl-disclosure-dropdown-item\n        v-if=\"canUpdate\"\n        v-gl-tooltip.left.viewport.d0=\"confidentialTooltip\"\n        :item=\"confidentialItem\"\n        :data-testid=\"$options.confidentialityTestId\"\n        @action=\"handleToggleWorkItemConfidentiality\"\n      />\n\n      <gl-disclosure-dropdown-item\n        :data-testid=\"$options.copyReferenceTestId\"\n        :data-clipboard-text=\"workItemReference\"\n        class=\"shortcut-copy-reference\"\n        @action=\"copyToClipboard(workItemReference, $options.i18n.referenceCopied)\"\n      >\n        <template #list-item>{{ $options.i18n.copyReference }}</template>\n      </gl-disclosure-dropdown-item>\n\n      <gl-disclosure-dropdown-item\n        v-if=\"$options.isLoggedIn && workItemCreateNoteEmail\"\n        :data-testid=\"$options.copyCreateNoteEmailTestId\"\n        :data-clipboard-text=\"workItemCreateNoteEmail\"\n        @action=\"copyToClipboard(workItemCreateNoteEmail, $options.i18n.emailAddressCopied)\"\n      >\n        <template #list-item>{{ i18n.copyCreateNoteEmail }}</template>\n      </gl-disclosure-dropdown-item>\n\n      <gl-dropdown-divider />\n      <gl-disclosure-dropdown-item\n        v-if=\"!isAuthor\"\n        :data-testid=\"$options.reportAbuseActionTestId\"\n        @action=\"handleToggleReportAbuseModal\"\n      >\n        <template #list-item>{{ $options.i18n.reportAbuse }}</template>\n      </gl-disclosure-dropdown-item>\n\n      <template v-if=\"canDelete\">\n        <gl-disclosure-dropdown-item\n          :data-testid=\"$options.deleteActionTestId\"\n          variant=\"danger\"\n          @action=\"handleDelete\"\n        >\n          <template #list-item>\n            <span class=\"gl-text-danger\">{{ i18n.deleteWorkItem }}</span>\n          </template>\n        </gl-disclosure-dropdown-item>\n      </template>\n    </gl-disclosure-dropdown>\n\n    <gl-modal\n      ref=\"modal\"\n      modal-id=\"work-item-confirm-delete\"\n      :title=\"i18n.deleteWorkItem\"\n      :ok-title=\"i18n.deleteWorkItem\"\n      ok-variant=\"danger\"\n      @ok=\"handleDeleteWorkItem\"\n      @hide=\"handleCancelDeleteWorkItem\"\n    >\n      {{ areYouSureDeleteMessage }}\n    </gl-modal>\n\n    <create-work-item-modal\n      :visible=\"isCreateWorkItemModalVisible\"\n      :related-item=\"relatedItemData\"\n      :work-item-type-name=\"workItemType.toUpperCase()\"\n      :show-project-selector=\"!isEpic\"\n      :is-group=\"isGroup\"\n      hide-button\n      @workItemCreated=\"$emit('workItemCreated')\"\n      @hideModal=\"isCreateWorkItemModalVisible = false\"\n    />\n    <work-item-change-type-modal\n      v-if=\"showChangeType\"\n      ref=\"workItemsChangeTypeModal\"\n      :work-item-id=\"workItemId\"\n      :work-item-type=\"workItemType\"\n      :full-path=\"fullPath\"\n      :has-children=\"hasChildren\"\n      :has-parent=\"hasParent\"\n      :widgets=\"widgets\"\n      :allowed-child-types=\"allowedChildTypes\"\n      @workItemTypeChanged=\"$emit('workItemTypeChanged')\"\n    />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_actions.vue?vue&type=template&id=86488a2a\"\nimport script from \"./work_item_actions.vue?vue&type=script&lang=js\"\nexport * from \"./work_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","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.showDropdownTooltip),expression:\"showDropdownTooltip\"}],ref:\"workItemsMoreActions\",attrs:{\"icon\":\"ellipsis_v\",\"data-testid\":\"work-item-actions-dropdown\",\"text-sr-only\":\"\",\"toggle-text\":_vm.$options.i18n.moreActions,\"category\":\"tertiary\",\"auto-close\":false,\"no-caret\":\"\",\"right\":\"\"},on:{\"shown\":_vm.showDropdown,\"hidden\":_vm.hideDropdown}},[(_vm.$options.isLoggedIn && !_vm.hideSubscribe)?[_c('gl-disclosure-dropdown-item',{staticClass:\"gl-flex gl-w-full gl-justify-end\",attrs:{\"data-testid\":_vm.$options.notificationsToggleFormTestId},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('gl-toggle',{staticClass:\"work-item-dropdown-toggle gl-justify-between\",attrs:{\"value\":_vm.subscribedToNotifications,\"label\":_vm.$options.i18n.notifications,\"label-position\":\"left\"},on:{\"change\":function($event){return _vm.toggleNotifications($event)}}})]},proxy:true}],null,false,3004330995)}),_vm._v(\" \"),_c('gl-dropdown-divider')]:_vm._e(),_vm._v(\" \"),(_vm.canUpdate)?_c('work-item-state-toggle',{attrs:{\"data-testid\":_vm.$options.stateToggleTestId,\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"work-item-state\":_vm.workItemState,\"work-item-type\":_vm.workItemType,\"full-path\":_vm.fullPath,\"parent-id\":_vm.parentId,\"show-as-dropdown-item\":\"\"},on:{\"error\":_vm.emitStateToggleError,\"workItemStateUpdated\":function($event){return _vm.$emit('workItemStateUpdated')}}}):_vm._e(),_vm._v(\" \"),(_vm.canCreateRelatedItem && _vm.canUpdate)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":_vm.$options.newRelatedItemTestId},on:{\"action\":function($event){_vm.isCreateWorkItemModalVisible = true}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(_vm._s(_vm.i18n.newRelatedItemLabel))]},proxy:true}],null,false,290360778)}):_vm._e(),_vm._v(\" \"),(_vm.canPromoteToObjective)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":_vm.$options.promoteActionTestId},on:{\"action\":_vm.promoteToObjective},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(_vm._s(_vm.__('Promote to objective')))]},proxy:true}],null,false,770306721)}):_vm._e(),_vm._v(\" \"),(_vm.showChangeType)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":_vm.$options.changeTypeTestId},on:{\"action\":_vm.showChangeTypeModal},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(_vm._s(_vm.$options.i18n.changeWorkItemType))]},proxy:true}],null,false,3244804026)}):_vm._e(),_vm._v(\" \"),(_vm.canLockWorkItem)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":_vm.$options.lockDiscussionTestId},on:{\"action\":_vm.toggleDiscussionLock},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [(_vm.isLockDiscussionUpdating)?_c('gl-loading-icon',{staticClass:\"gl-mr-1\",attrs:{\"inline\":\"\"}}):_vm._e(),_vm._v(\"\\n        \"+_vm._s(_vm.lockDiscussionText)+\"\\n      \")]},proxy:true}],null,false,1445635889)}):_vm._e(),_vm._v(\" \"),(_vm.canUpdate)?_c('gl-disclosure-dropdown-item',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport.d0\",value:(_vm.confidentialTooltip),expression:\"confidentialTooltip\",modifiers:{\"left\":true,\"viewport\":true,\"d0\":true}}],attrs:{\"item\":_vm.confidentialItem,\"data-testid\":_vm.$options.confidentialityTestId},on:{\"action\":_vm.handleToggleWorkItemConfidentiality}}):_vm._e(),_vm._v(\" \"),_c('gl-disclosure-dropdown-item',{staticClass:\"shortcut-copy-reference\",attrs:{\"data-testid\":_vm.$options.copyReferenceTestId,\"data-clipboard-text\":_vm.workItemReference},on:{\"action\":function($event){return _vm.copyToClipboard(_vm.workItemReference, _vm.$options.i18n.referenceCopied)}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(_vm._s(_vm.$options.i18n.copyReference))]},proxy:true}])}),_vm._v(\" \"),(_vm.$options.isLoggedIn && _vm.workItemCreateNoteEmail)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":_vm.$options.copyCreateNoteEmailTestId,\"data-clipboard-text\":_vm.workItemCreateNoteEmail},on:{\"action\":function($event){return _vm.copyToClipboard(_vm.workItemCreateNoteEmail, _vm.$options.i18n.emailAddressCopied)}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(_vm._s(_vm.i18n.copyCreateNoteEmail))]},proxy:true}],null,false,613349719)}):_vm._e(),_vm._v(\" \"),_c('gl-dropdown-divider'),_vm._v(\" \"),(!_vm.isAuthor)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":_vm.$options.reportAbuseActionTestId},on:{\"action\":_vm.handleToggleReportAbuseModal},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.canDelete)?[_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":_vm.$options.deleteActionTestId,\"variant\":\"danger\"},on:{\"action\":_vm.handleDelete},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('span',{staticClass:\"gl-text-danger\"},[_vm._v(_vm._s(_vm.i18n.deleteWorkItem))])]},proxy:true}],null,false,311200855)})]:_vm._e()],2),_vm._v(\" \"),_c('gl-modal',{ref:\"modal\",attrs:{\"modal-id\":\"work-item-confirm-delete\",\"title\":_vm.i18n.deleteWorkItem,\"ok-title\":_vm.i18n.deleteWorkItem,\"ok-variant\":\"danger\"},on:{\"ok\":_vm.handleDeleteWorkItem,\"hide\":_vm.handleCancelDeleteWorkItem}},[_vm._v(\"\\n    \"+_vm._s(_vm.areYouSureDeleteMessage)+\"\\n  \")]),_vm._v(\" \"),_c('create-work-item-modal',{attrs:{\"visible\":_vm.isCreateWorkItemModalVisible,\"related-item\":_vm.relatedItemData,\"work-item-type-name\":_vm.workItemType.toUpperCase(),\"show-project-selector\":!_vm.isEpic,\"is-group\":_vm.isGroup,\"hide-button\":\"\"},on:{\"workItemCreated\":function($event){return _vm.$emit('workItemCreated')},\"hideModal\":function($event){_vm.isCreateWorkItemModalVisible = false}}}),_vm._v(\" \"),(_vm.showChangeType)?_c('work-item-change-type-modal',{ref:\"workItemsChangeTypeModal\",attrs:{\"work-item-id\":_vm.workItemId,\"work-item-type\":_vm.workItemType,\"full-path\":_vm.fullPath,\"has-children\":_vm.hasChildren,\"has-parent\":_vm.hasParent,\"widgets\":_vm.widgets,\"allowed-child-types\":_vm.allowedChildTypes},on:{\"workItemTypeChanged\":function($event){return _vm.$emit('workItemTypeChanged')}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlButton, GlIcon, GlTooltipDirective } from '@gitlab/ui';\n\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\n\nimport { __, s__ } from '~/locale';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\n\nimport updateWorkItemNotificationsMutation from '../graphql/update_work_item_notifications.mutation.graphql';\n\nconst ICON_ON = 'notifications';\nconst ICON_OFF = 'notifications-off';\n\nexport default {\n  i18n: {\n    notificationOn: s__('WorkItem|Notifications turned on.'),\n    notificationOff: s__('WorkItem|Notifications turned off.'),\n    labelOn: __('Notifications on'),\n    labelOff: __('Notifications off'),\n  },\n  components: {\n    GlButton,\n    GlIcon,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  isLoggedIn: isLoggedIn(),\n  props: {\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    workItemId: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    canUpdate: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    subscribedToNotifications: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      isLockDiscussionUpdating: false,\n      emailsDisabled: false,\n    };\n  },\n  computed: {\n    notificationTooltip() {\n      return this.subscribedToNotifications\n        ? this.$options.i18n.labelOn\n        : this.$options.i18n.labelOff;\n    },\n    notificationIcon() {\n      return this.subscribedToNotifications ? ICON_ON : ICON_OFF;\n    },\n  },\n  methods: {\n    toggleNotifications(subscribed) {\n      this.$apollo\n        .mutate({\n          mutation: updateWorkItemNotificationsMutation,\n          variables: {\n            input: {\n              id: this.workItemId,\n              subscribed,\n            },\n          },\n        })\n        .then(({ data }) => {\n          const { errors } = data.workItemSubscribe;\n          if (errors?.length) {\n            throw new Error(errors[0]);\n          }\n\n          toast(\n            subscribed ? this.$options.i18n.notificationOn : this.$options.i18n.notificationOff,\n          );\n        })\n        .catch((error) => {\n          this.$emit('error', error.message);\n          Sentry.captureException(error);\n        });\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-button\n    ref=\"tooltip\"\n    v-gl-tooltip.hover\n    category=\"secondary\"\n    data-testid=\"subscribe-button\"\n    :title=\"notificationTooltip\"\n    class=\"btn-icon\"\n    @click=\"toggleNotifications(!subscribedToNotifications)\"\n  >\n    <gl-icon\n      :name=\"notificationIcon\"\n      :size=\"16\"\n      :class=\"{ '!gl-fill-blue-500': subscribedToNotifications }\"\n    />\n  </gl-button>\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_notifications_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!./work_item_notifications_widget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./work_item_notifications_widget.vue?vue&type=template&id=2414b154\"\nimport script from \"./work_item_notifications_widget.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_notifications_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-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}}],ref:\"tooltip\",staticClass:\"btn-icon\",attrs:{\"category\":\"secondary\",\"data-testid\":\"subscribe-button\",\"title\":_vm.notificationTooltip},on:{\"click\":function($event){return _vm.toggleNotifications(!_vm.subscribedToNotifications)}}},[_c('gl-icon',{class:{ '!gl-fill-blue-500': _vm.subscribedToNotifications },attrs:{\"name\":_vm.notificationIcon,\"size\":16}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlButton, GlDatepicker, GlFormGroup, GlOutsideDirective as Outside } from '@gitlab/ui';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { s__ } from '~/locale';\nimport Tracking from '~/tracking';\nimport { formatDate, newDate, toISODateFormat } from '~/lib/utils/datetime_utility';\nimport { Mousetrap } from '~/lib/mousetrap';\nimport { keysFor, SIDEBAR_CLOSE_WIDGET } from '~/behaviors/shortcuts/keybindings';\nimport {\n  I18N_WORK_ITEM_ERROR_UPDATING,\n  sprintfWorkItem,\n  TRACKING_CATEGORY_SHOW,\n  WIDGET_TYPE_START_AND_DUE_DATE,\n} from '~/work_items/constants';\nimport updateWorkItemMutation from '~/work_items/graphql/update_work_item.mutation.graphql';\n\nconst nullObjectDate = new Date(0);\n\nexport default {\n  i18n: {\n    dates: s__('WorkItem|Dates'),\n    dueDate: s__('WorkItem|Due'),\n    none: s__('WorkItem|None'),\n    startDate: s__('WorkItem|Start'),\n  },\n  dueDateInputId: 'due-date-input',\n  startDateInputId: 'start-date-input',\n  components: {\n    GlButton,\n    GlDatepicker,\n    GlFormGroup,\n  },\n  directives: {\n    Outside,\n  },\n  mixins: [Tracking.mixin()],\n  props: {\n    canUpdate: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    dueDate: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    startDate: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n    workItem: {\n      type: Object,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      dirtyDueDate: null,\n      dirtyStartDate: null,\n      isUpdating: false,\n      isEditing: false,\n    };\n  },\n  computed: {\n    workItemId() {\n      return this.workItem.id;\n    },\n    datesUnchanged() {\n      const dirtyDueDate = this.dirtyDueDate || nullObjectDate;\n      const dirtyStartDate = this.dirtyStartDate || nullObjectDate;\n      const dueDate = this.dueDate ? newDate(this.dueDate) : nullObjectDate;\n      const startDate = this.startDate ? newDate(this.startDate) : nullObjectDate;\n      return (\n        dirtyDueDate.getTime() === dueDate.getTime() &&\n        dirtyStartDate.getTime() === startDate.getTime()\n      );\n    },\n    isDatepickerDisabled() {\n      return !this.canUpdate || this.isUpdating;\n    },\n    isWithOnlyDueDate() {\n      return Boolean(this.dueDate && !this.startDate);\n    },\n    isWithOnlyStartDate() {\n      return Boolean(!this.dueDate && this.startDate);\n    },\n    isWithNoDates() {\n      return !this.dueDate && !this.startDate;\n    },\n    tracking() {\n      return {\n        category: TRACKING_CATEGORY_SHOW,\n        label: 'item_dates',\n        property: `type_${this.workItemType}`,\n      };\n    },\n    startDateValue() {\n      return this.startDate\n        ? formatDate(this.startDate, 'mmm d, yyyy', true)\n        : this.$options.i18n.none;\n    },\n    dueDateValue() {\n      return this.dueDate ? formatDate(this.dueDate, 'mmm d, yyyy', true) : this.$options.i18n.none;\n    },\n    optimisticResponse() {\n      const workItemDatesWidget = this.workItem.widgets.find(\n        (widget) => widget.type === WIDGET_TYPE_START_AND_DUE_DATE,\n      );\n\n      return {\n        workItemUpdate: {\n          errors: [],\n          workItem: {\n            ...this.workItem,\n            widgets: [\n              ...this.workItem.widgets.filter(\n                (widget) => widget.type !== WIDGET_TYPE_START_AND_DUE_DATE,\n              ),\n              {\n                ...workItemDatesWidget,\n                dueDate: this.dirtyDueDate ? toISODateFormat(this.dirtyDueDate) : null,\n                startDate: this.dirtyStartDate ? toISODateFormat(this.dirtyStartDate) : null,\n              },\n            ],\n          },\n        },\n      };\n    },\n  },\n  watch: {\n    dueDate: {\n      handler(newDueDate) {\n        this.dirtyDueDate = newDate(newDueDate);\n      },\n      immediate: true,\n    },\n    startDate: {\n      handler(newStartDate) {\n        this.dirtyStartDate = newDate(newStartDate);\n      },\n      immediate: true,\n    },\n  },\n  mounted() {\n    Mousetrap.bind(keysFor(SIDEBAR_CLOSE_WIDGET), this.collapseWidget);\n  },\n  beforeDestroy() {\n    Mousetrap.unbind(keysFor(SIDEBAR_CLOSE_WIDGET));\n  },\n  methods: {\n    clearDueDatePicker() {\n      this.dirtyDueDate = null;\n    },\n    clearStartDatePicker() {\n      this.dirtyStartDate = null;\n    },\n    handleStartDateInput() {\n      if (this.dirtyDueDate && this.dirtyStartDate > this.dirtyDueDate) {\n        this.dirtyDueDate = this.dirtyStartDate;\n      }\n    },\n    updateDates() {\n      if (this.datesUnchanged) {\n        return;\n      }\n\n      this.track('updated_dates');\n\n      this.isUpdating = true;\n\n      this.$apollo\n        .mutate({\n          mutation: updateWorkItemMutation,\n          variables: {\n            input: {\n              id: this.workItemId,\n              startAndDueDateWidget: {\n                dueDate: this.dirtyDueDate ? toISODateFormat(this.dirtyDueDate) : null,\n                startDate: this.dirtyStartDate ? toISODateFormat(this.dirtyStartDate) : null,\n              },\n            },\n          },\n          optimisticResponse: this.optimisticResponse,\n        })\n        .then(({ data }) => {\n          if (data.workItemUpdate.errors.length) {\n            throw new Error(data.workItemUpdate.errors.join('; '));\n          }\n        })\n        .catch((error) => {\n          const message = sprintfWorkItem(I18N_WORK_ITEM_ERROR_UPDATING, this.workItemType);\n          this.$emit('error', message);\n          Sentry.captureException(error);\n        })\n        .finally(() => {\n          this.isUpdating = false;\n        });\n    },\n    expandWidget() {\n      this.isEditing = true;\n    },\n    collapseWidget(event = {}) {\n      // This prevents outside directive from treating\n      // a click on a select element within datepicker as an outside click,\n      // therefore allowing user to select a month and a year without\n      // triggering the mutation and immediately closing the dropdown\n      if (event.target?.classList.contains('pika-select', 'pika-select-month', 'pika-select-year'))\n        return;\n      this.isEditing = false;\n      this.updateDates();\n    },\n  },\n};\n</script>\n\n<template>\n  <section data-testid=\"work-item-start-due-dates\">\n    <div class=\"gl-flex gl-items-center gl-gap-3\">\n      <h3 :class=\"{ 'gl-sr-only': isEditing }\" class=\"gl-heading-5 !gl-mb-0\">\n        {{ $options.i18n.dates }}\n      </h3>\n      <gl-button\n        v-if=\"canUpdate && !isEditing\"\n        data-testid=\"edit-button\"\n        category=\"tertiary\"\n        size=\"small\"\n        class=\"gl-ml-auto\"\n        :disabled=\"isUpdating\"\n        @click=\"expandWidget\"\n        >{{ __('Edit') }}</gl-button\n      >\n    </div>\n    <fieldset v-if=\"isEditing\" data-testid=\"datepicker-wrapper\">\n      <div class=\"gl-flex gl-items-center gl-justify-between\">\n        <legend class=\"gl-mb-0 gl-border-b-0 gl-text-base gl-font-bold\">\n          {{ $options.i18n.dates }}\n        </legend>\n        <gl-button\n          data-testid=\"apply-button\"\n          category=\"tertiary\"\n          size=\"small\"\n          :disabled=\"isUpdating\"\n          @click=\"collapseWidget\"\n          >{{ __('Apply') }}</gl-button\n        >\n      </div>\n      <div\n        v-outside=\"collapseWidget\"\n        class=\"gl-flex gl-flex-col gl-flex-wrap gl-gap-x-5 gl-gap-y-3 gl-pt-2 sm:gl-flex-row md:gl-flex-col\"\n      >\n        <gl-form-group\n          class=\"gl-m-0 gl-flex gl-items-center gl-gap-3\"\n          :label=\"$options.i18n.startDate\"\n          :label-for=\"$options.startDateInputId\"\n          label-class=\"!gl-font-normal !gl-pb-0 gl-min-w-7 sm:gl-min-w-fit md:gl-min-w-7 gl-break-words\"\n        >\n          <gl-datepicker\n            ref=\"startDatePicker\"\n            v-model=\"dirtyStartDate\"\n            container=\"body\"\n            :disabled=\"isDatepickerDisabled\"\n            :input-id=\"$options.startDateInputId\"\n            :target=\"null\"\n            show-clear-button\n            class=\"work-item-date-picker gl-max-w-20\"\n            @clear=\"clearStartDatePicker\"\n            @close=\"handleStartDateInput\"\n            @keydown.esc.native=\"collapseWidget\"\n          />\n        </gl-form-group>\n        <gl-form-group\n          class=\"gl-m-0 gl-flex gl-items-center gl-gap-3\"\n          :label=\"$options.i18n.dueDate\"\n          :label-for=\"$options.dueDateInputId\"\n          label-class=\"!gl-font-normal !gl-pb-0 gl-min-w-7 sm:gl-min-w-fit md:gl-min-w-7 gl-break-words\"\n        >\n          <gl-datepicker\n            v-model=\"dirtyDueDate\"\n            container=\"body\"\n            :disabled=\"isDatepickerDisabled\"\n            :input-id=\"$options.dueDateInputId\"\n            :min-date=\"dirtyStartDate\"\n            :target=\"null\"\n            show-clear-button\n            class=\"work-item-date-picker gl-max-w-20\"\n            data-testid=\"due-date-picker\"\n            @clear=\"clearDueDatePicker\"\n            @keydown.esc.native=\"collapseWidget\"\n          />\n        </gl-form-group>\n      </div>\n    </fieldset>\n    <template v-else>\n      <p class=\"gl-m-0 gl-pb-1\">\n        <span class=\"gl-inline-block gl-min-w-8\">{{ $options.i18n.startDate }}:</span>\n        <span data-testid=\"start-date-value\" :class=\"{ 'gl-text-subtle': !startDate }\">\n          {{ startDateValue }}\n        </span>\n      </p>\n      <p class=\"gl-m-0 gl-pt-1\">\n        <span class=\"gl-inline-block gl-min-w-8\">{{ $options.i18n.dueDate }}:</span>\n        <span data-testid=\"due-date-value\" :class=\"{ 'gl-text-subtle': !dueDate }\">\n          {{ dueDateValue }}\n        </span>\n      </p>\n    </template>\n  </section>\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_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!./work_item_due_date.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./work_item_due_date.vue?vue&type=template&id=2429833a\"\nimport script from \"./work_item_due_date.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{attrs:{\"data-testid\":\"work-item-start-due-dates\"}},[_c('div',{staticClass:\"gl-flex gl-items-center gl-gap-3\"},[_c('h3',{staticClass:\"gl-heading-5 !gl-mb-0\",class:{ 'gl-sr-only': _vm.isEditing }},[_vm._v(\"\\n      \"+_vm._s(_vm.$options.i18n.dates)+\"\\n    \")]),_vm._v(\" \"),(_vm.canUpdate && !_vm.isEditing)?_c('gl-button',{staticClass:\"gl-ml-auto\",attrs:{\"data-testid\":\"edit-button\",\"category\":\"tertiary\",\"size\":\"small\",\"disabled\":_vm.isUpdating},on:{\"click\":_vm.expandWidget}},[_vm._v(_vm._s(_vm.__('Edit')))]):_vm._e()],1),_vm._v(\" \"),(_vm.isEditing)?_c('fieldset',{attrs:{\"data-testid\":\"datepicker-wrapper\"}},[_c('div',{staticClass:\"gl-flex gl-items-center gl-justify-between\"},[_c('legend',{staticClass:\"gl-mb-0 gl-border-b-0 gl-text-base gl-font-bold\"},[_vm._v(\"\\n        \"+_vm._s(_vm.$options.i18n.dates)+\"\\n      \")]),_vm._v(\" \"),_c('gl-button',{attrs:{\"data-testid\":\"apply-button\",\"category\":\"tertiary\",\"size\":\"small\",\"disabled\":_vm.isUpdating},on:{\"click\":_vm.collapseWidget}},[_vm._v(_vm._s(_vm.__('Apply')))])],1),_vm._v(\" \"),_c('div',{directives:[{name:\"outside\",rawName:\"v-outside\",value:(_vm.collapseWidget),expression:\"collapseWidget\"}],staticClass:\"gl-flex gl-flex-col gl-flex-wrap gl-gap-x-5 gl-gap-y-3 gl-pt-2 sm:gl-flex-row md:gl-flex-col\"},[_c('gl-form-group',{staticClass:\"gl-m-0 gl-flex gl-items-center gl-gap-3\",attrs:{\"label\":_vm.$options.i18n.startDate,\"label-for\":_vm.$options.startDateInputId,\"label-class\":\"!gl-font-normal !gl-pb-0 gl-min-w-7 sm:gl-min-w-fit md:gl-min-w-7 gl-break-words\"}},[_c('gl-datepicker',{ref:\"startDatePicker\",staticClass:\"work-item-date-picker gl-max-w-20\",attrs:{\"container\":\"body\",\"disabled\":_vm.isDatepickerDisabled,\"input-id\":_vm.$options.startDateInputId,\"target\":null,\"show-clear-button\":\"\"},on:{\"clear\":_vm.clearStartDatePicker,\"close\":_vm.handleStartDateInput},nativeOn:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.collapseWidget.apply(null, arguments)}},model:{value:(_vm.dirtyStartDate),callback:function ($$v) {_vm.dirtyStartDate=$$v},expression:\"dirtyStartDate\"}})],1),_vm._v(\" \"),_c('gl-form-group',{staticClass:\"gl-m-0 gl-flex gl-items-center gl-gap-3\",attrs:{\"label\":_vm.$options.i18n.dueDate,\"label-for\":_vm.$options.dueDateInputId,\"label-class\":\"!gl-font-normal !gl-pb-0 gl-min-w-7 sm:gl-min-w-fit md:gl-min-w-7 gl-break-words\"}},[_c('gl-datepicker',{staticClass:\"work-item-date-picker gl-max-w-20\",attrs:{\"container\":\"body\",\"disabled\":_vm.isDatepickerDisabled,\"input-id\":_vm.$options.dueDateInputId,\"min-date\":_vm.dirtyStartDate,\"target\":null,\"show-clear-button\":\"\",\"data-testid\":\"due-date-picker\"},on:{\"clear\":_vm.clearDueDatePicker},nativeOn:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.collapseWidget.apply(null, arguments)}},model:{value:(_vm.dirtyDueDate),callback:function ($$v) {_vm.dirtyDueDate=$$v},expression:\"dirtyDueDate\"}})],1)],1)]):[_c('p',{staticClass:\"gl-m-0 gl-pb-1\"},[_c('span',{staticClass:\"gl-inline-block gl-min-w-8\"},[_vm._v(_vm._s(_vm.$options.i18n.startDate)+\":\")]),_vm._v(\" \"),_c('span',{class:{ 'gl-text-subtle': !_vm.startDate },attrs:{\"data-testid\":\"start-date-value\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.startDateValue)+\"\\n      \")])]),_vm._v(\" \"),_c('p',{staticClass:\"gl-m-0 gl-pt-1\"},[_c('span',{staticClass:\"gl-inline-block gl-min-w-8\"},[_vm._v(_vm._s(_vm.$options.i18n.dueDate)+\":\")]),_vm._v(\" \"),_c('span',{class:{ 'gl-text-subtle': !_vm.dueDate },attrs:{\"data-testid\":\"due-date-value\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.dueDateValue)+\"\\n      \")])])]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport {\n  GlButton,\n  GlModal,\n  GlModalDirective,\n  GlProgressBar,\n  GlSprintf,\n  GlTooltipDirective,\n} from '@gitlab/ui';\nimport { outputChronicDuration } from '~/chronic_duration';\nimport { isPositiveInteger } from '~/lib/utils/number_utils';\nimport { s__, sprintf } from '~/locale';\nimport {\n  CREATE_TIMELOG_MODAL_ID,\n  SET_TIME_ESTIMATE_MODAL_ID,\n} from '~/sidebar/components/time_tracking/constants';\nimport CreateTimelogForm from '~/sidebar/components/time_tracking/create_timelog_form.vue';\nimport SetTimeEstimateForm from '~/sidebar/components/time_tracking/set_time_estimate_form.vue';\nimport TimeTrackingReport from '~/sidebar/components/time_tracking/time_tracking_report.vue';\n\nconst options = { hoursPerDay: 8, daysPerMonth: 20, format: 'short' };\n\nexport default {\n  i18n: {\n    addTimeTrackingMessage: s__(\n      'TimeTracking|Add an %{estimateStart}estimate%{estimateEnd} or %{timeSpentStart}time spent%{timeSpentEnd}.',\n    ),\n  },\n  components: {\n    TimeTrackingReport,\n    CreateTimelogForm,\n    GlButton,\n    GlModal,\n    GlProgressBar,\n    GlSprintf,\n    SetTimeEstimateForm,\n  },\n  directives: {\n    GlModal: GlModalDirective,\n    GlTooltip: GlTooltipDirective,\n  },\n  props: {\n    canUpdate: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    timeEstimate: {\n      type: Number,\n      required: false,\n      default: 0,\n    },\n    timelogs: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n    totalTimeSpent: {\n      type: Number,\n      required: false,\n      default: 0,\n    },\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    workItemIid: {\n      type: String,\n      required: true,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n  },\n  computed: {\n    humanTimeEstimate() {\n      return outputChronicDuration(this.timeEstimate, options);\n    },\n    humanTotalTimeSpent() {\n      return outputChronicDuration(this.totalTimeSpent, options) ?? '0h';\n    },\n    progressBarTooltipText() {\n      const timeDifference = this.totalTimeSpent - this.timeEstimate;\n      const time = outputChronicDuration(Math.abs(timeDifference), options) ?? '0h';\n      return isPositiveInteger(timeDifference)\n        ? sprintf(s__('TimeTracking|%{time} over'), { time })\n        : sprintf(s__('TimeTracking|%{time} remaining'), { time });\n    },\n    progressBarVariant() {\n      return this.timeRemainingPercent > 100 ? 'danger' : 'primary';\n    },\n    timeEstimateDetails() {\n      return {\n        timeEstimate: this.timeEstimate,\n        humanTimeEstimate: this.humanTimeEstimate,\n      };\n    },\n    timeRemainingPercent() {\n      return Math.floor((this.totalTimeSpent / this.timeEstimate) * 100);\n    },\n    createTimelogModalId() {\n      return `${CREATE_TIMELOG_MODAL_ID}-${this.workItemId}`;\n    },\n    setTimeEstimateModalId() {\n      return `${SET_TIME_ESTIMATE_MODAL_ID}-${this.workItemId}`;\n    },\n    timeTrackingModalId() {\n      return `time-tracking-modal-${this.workItemId}`;\n    },\n  },\n};\n</script>\n\n<template>\n  <div data-testid=\"work-item-time-tracking\">\n    <div class=\"gl-flex gl-items-center gl-justify-between\">\n      <h3 class=\"gl-heading-5 !gl-mb-2\">\n        {{ __('Time tracking') }}\n      </h3>\n      <gl-button\n        v-if=\"canUpdate\"\n        v-gl-modal=\"createTimelogModalId\"\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        :aria-label=\"__('Add time entry')\"\n      />\n    </div>\n\n    <div class=\"gl-flex gl-items-center gl-gap-2 gl-text-sm\" data-testid=\"time-tracking-body\">\n      <template v-if=\"totalTimeSpent || timeEstimate\">\n        <span class=\"gl-text-subtle\">{{ s__('TimeTracking|Spent') }}</span>\n        <gl-button\n          v-if=\"canUpdate\"\n          v-gl-modal=\"timeTrackingModalId\"\n          v-gl-tooltip=\"s__('TimeTracking|View time tracking report')\"\n          variant=\"link\"\n          class=\"!gl-text-sm\"\n          data-testid=\"view-time-spent-button\"\n        >\n          {{ humanTotalTimeSpent }}\n        </gl-button>\n        <template v-else>\n          {{ humanTotalTimeSpent }}\n        </template>\n        <template v-if=\"timeEstimate\">\n          <gl-progress-bar\n            v-gl-tooltip=\"progressBarTooltipText\"\n            class=\"gl-mx-2 gl-grow\"\n            :value=\"timeRemainingPercent\"\n            :variant=\"progressBarVariant\"\n          />\n          <span class=\"gl-text-subtle\">{{ s__('TimeTracking|Estimate') }}</span>\n          <gl-button\n            v-if=\"canUpdate\"\n            v-gl-modal=\"setTimeEstimateModalId\"\n            v-gl-tooltip=\"s__('TimeTracking|Set estimate')\"\n            variant=\"link\"\n            class=\"!gl-text-sm\"\n            data-testid=\"set-estimate-button\"\n          >\n            {{ humanTimeEstimate }}\n          </gl-button>\n          <template v-else>\n            {{ humanTimeEstimate }}\n          </template>\n        </template>\n        <gl-button\n          v-else-if=\"canUpdate\"\n          v-gl-modal=\"setTimeEstimateModalId\"\n          class=\"gl-ml-auto !gl-text-sm\"\n          variant=\"link\"\n          data-testid=\"add-estimate-button\"\n        >\n          {{ s__('TimeTracking|Add estimate') }}\n        </gl-button>\n      </template>\n      <span v-else-if=\"canUpdate\" class=\"gl-text-subtle\">\n        <gl-sprintf :message=\"$options.i18n.addTimeTrackingMessage\">\n          <template #estimate=\"{ content }\">\n            <gl-button\n              v-gl-modal=\"setTimeEstimateModalId\"\n              class=\"gl-align-baseline !gl-text-sm\"\n              variant=\"link\"\n              data-testid=\"add-estimate-button\"\n            >\n              {{ content }}\n            </gl-button>\n          </template>\n          <template #timeSpent=\"{ content }\">\n            <gl-button\n              v-gl-modal=\"createTimelogModalId\"\n              class=\"gl-align-baseline !gl-text-sm\"\n              variant=\"link\"\n              data-testid=\"add-time-spent-button\"\n            >\n              {{ content }}\n            </gl-button>\n          </template>\n        </gl-sprintf>\n      </span>\n      <span v-else class=\"gl-text-subtle\">\n        {{ __('No estimate or time spent') }}\n      </span>\n    </div>\n\n    <set-time-estimate-form\n      :time-tracking=\"timeEstimateDetails\"\n      :work-item-id=\"workItemId\"\n      :work-item-type=\"workItemType\"\n    />\n\n    <create-timelog-form :work-item-id=\"workItemId\" :work-item-type=\"workItemType\" />\n\n    <gl-modal\n      :modal-id=\"timeTrackingModalId\"\n      data-testid=\"time-tracking-report-modal\"\n      hide-footer\n      size=\"lg\"\n      :title=\"__('Time tracking report')\"\n    >\n      <time-tracking-report :timelogs=\"timelogs\" :work-item-iid=\"workItemIid\" />\n    </gl-modal>\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!./work_item_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!./work_item_time_tracking.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./work_item_time_tracking.vue?vue&type=template&id=a28e10ca\"\nimport script from \"./work_item_time_tracking.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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',{attrs:{\"data-testid\":\"work-item-time-tracking\"}},[_c('div',{staticClass:\"gl-flex gl-items-center gl-justify-between\"},[_c('h3',{staticClass:\"gl-heading-5 !gl-mb-2\"},[_vm._v(\"\\n      \"+_vm._s(_vm.__('Time tracking'))+\"\\n    \")]),_vm._v(\" \"),(_vm.canUpdate)?_c('gl-button',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.createTimelogModalId),expression:\"createTimelogModalId\"},{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'),\"aria-label\":_vm.__('Add time entry')}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-items-center gl-gap-2 gl-text-sm\",attrs:{\"data-testid\":\"time-tracking-body\"}},[(_vm.totalTimeSpent || _vm.timeEstimate)?[_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.s__('TimeTracking|Spent')))]),_vm._v(\" \"),(_vm.canUpdate)?_c('gl-button',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.timeTrackingModalId),expression:\"timeTrackingModalId\"},{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.s__('TimeTracking|View time tracking report')),expression:\"s__('TimeTracking|View time tracking report')\"}],staticClass:\"!gl-text-sm\",attrs:{\"variant\":\"link\",\"data-testid\":\"view-time-spent-button\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.humanTotalTimeSpent)+\"\\n      \")]):[_vm._v(\"\\n        \"+_vm._s(_vm.humanTotalTimeSpent)+\"\\n      \")],_vm._v(\" \"),(_vm.timeEstimate)?[_c('gl-progress-bar',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.progressBarTooltipText),expression:\"progressBarTooltipText\"}],staticClass:\"gl-mx-2 gl-grow\",attrs:{\"value\":_vm.timeRemainingPercent,\"variant\":_vm.progressBarVariant}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.s__('TimeTracking|Estimate')))]),_vm._v(\" \"),(_vm.canUpdate)?_c('gl-button',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.setTimeEstimateModalId),expression:\"setTimeEstimateModalId\"},{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.s__('TimeTracking|Set estimate')),expression:\"s__('TimeTracking|Set estimate')\"}],staticClass:\"!gl-text-sm\",attrs:{\"variant\":\"link\",\"data-testid\":\"set-estimate-button\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.humanTimeEstimate)+\"\\n        \")]):[_vm._v(\"\\n          \"+_vm._s(_vm.humanTimeEstimate)+\"\\n        \")]]:(_vm.canUpdate)?_c('gl-button',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.setTimeEstimateModalId),expression:\"setTimeEstimateModalId\"}],staticClass:\"gl-ml-auto !gl-text-sm\",attrs:{\"variant\":\"link\",\"data-testid\":\"add-estimate-button\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.s__('TimeTracking|Add estimate'))+\"\\n      \")]):_vm._e()]:(_vm.canUpdate)?_c('span',{staticClass:\"gl-text-subtle\"},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.addTimeTrackingMessage},scopedSlots:_vm._u([{key:\"estimate\",fn:function({ content }){return [_c('gl-button',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.setTimeEstimateModalId),expression:\"setTimeEstimateModalId\"}],staticClass:\"gl-align-baseline !gl-text-sm\",attrs:{\"variant\":\"link\",\"data-testid\":\"add-estimate-button\"}},[_vm._v(\"\\n            \"+_vm._s(content)+\"\\n          \")])]}},{key:\"timeSpent\",fn:function({ content }){return [_c('gl-button',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.createTimelogModalId),expression:\"createTimelogModalId\"}],staticClass:\"gl-align-baseline !gl-text-sm\",attrs:{\"variant\":\"link\",\"data-testid\":\"add-time-spent-button\"}},[_vm._v(\"\\n            \"+_vm._s(content)+\"\\n          \")])]}}])})],1):_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(\"\\n      \"+_vm._s(_vm.__('No estimate or time spent'))+\"\\n    \")])],2),_vm._v(\" \"),_c('set-time-estimate-form',{attrs:{\"time-tracking\":_vm.timeEstimateDetails,\"work-item-id\":_vm.workItemId,\"work-item-type\":_vm.workItemType}}),_vm._v(\" \"),_c('create-timelog-form',{attrs:{\"work-item-id\":_vm.workItemId,\"work-item-type\":_vm.workItemType}}),_vm._v(\" \"),_c('gl-modal',{attrs:{\"modal-id\":_vm.timeTrackingModalId,\"data-testid\":\"time-tracking-report-modal\",\"hide-footer\":\"\",\"size\":\"lg\",\"title\":_vm.__('Time tracking report')}},[_c('time-tracking-report',{attrs:{\"timelogs\":_vm.timelogs,\"work-item-iid\":_vm.workItemIid}})],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_attributes_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_attributes_wrapper.vue?vue&type=script&lang=js\"","<script>\nimport Participants from '~/sidebar/components/participants/participants.vue';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { ListType } from '~/boards/constants';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\n\nimport {\n  WIDGET_TYPE_ASSIGNEES,\n  WIDGET_TYPE_HEALTH_STATUS,\n  WIDGET_TYPE_HIERARCHY,\n  WIDGET_TYPE_ITERATION,\n  WIDGET_TYPE_LABELS,\n  WIDGET_TYPE_MILESTONE,\n  WIDGET_TYPE_PARTICIPANTS,\n  WIDGET_TYPE_PROGRESS,\n  WIDGET_TYPE_START_AND_DUE_DATE,\n  WIDGET_TYPE_TIME_TRACKING,\n  WIDGET_TYPE_WEIGHT,\n  WIDGET_TYPE_COLOR,\n  WIDGET_TYPE_CRM_CONTACTS,\n  WORK_ITEM_TYPE_VALUE_EPIC,\n} from '../constants';\nimport workItemParticipantsQuery from '../graphql/work_item_participants.query.graphql';\n\nimport WorkItemAssignees from './work_item_assignees.vue';\nimport WorkItemDueDate from './work_item_due_date.vue';\nimport WorkItemLabels from './work_item_labels.vue';\nimport WorkItemMilestone from './work_item_milestone.vue';\nimport WorkItemParent from './work_item_parent.vue';\nimport WorkItemTimeTracking from './work_item_time_tracking.vue';\nimport WorkItemCrmContacts from './work_item_crm_contacts.vue';\n\nexport default {\n  ListType,\n  components: {\n    Participants,\n    WorkItemLabels,\n    WorkItemMilestone,\n    WorkItemAssignees,\n    WorkItemDueDate,\n    WorkItemParent,\n    WorkItemTimeTracking,\n    WorkItemCrmContacts,\n    WorkItemWeight: () => import('ee_component/work_items/components/work_item_weight.vue'),\n    WorkItemProgress: () => import('ee_component/work_items/components/work_item_progress.vue'),\n    WorkItemIteration: () => import('ee_component/work_items/components/work_item_iteration.vue'),\n    WorkItemHealthStatus: () =>\n      import('ee_component/work_items/components/work_item_health_status.vue'),\n    WorkItemColor: () => import('ee_component/work_items/components/work_item_color.vue'),\n    WorkItemRolledupDates: () =>\n      import('ee_component/work_items/components/work_item_rolledup_dates.vue'),\n  },\n  mixins: [glFeatureFlagMixin()],\n  inject: ['hasSubepicsFeature'],\n  props: {\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    workItem: {\n      type: Object,\n      required: true,\n    },\n    groupPath: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    isGroup: {\n      type: Boolean,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      workItemParticipants: [],\n    };\n  },\n  apollo: {\n    workItemParticipants: {\n      query: workItemParticipantsQuery,\n      variables() {\n        return {\n          fullPath: this.fullPath,\n          iid: this.workItem.iid,\n        };\n      },\n      skip() {\n        return !this.workItem.iid;\n      },\n      update({ workspace }) {\n        if (!workspace?.workItem) return [];\n\n        return (\n          this.isWidgetPresent(WIDGET_TYPE_PARTICIPANTS, workspace.workItem)?.participants?.nodes ||\n          []\n        );\n      },\n      error(e) {\n        Sentry.captureException(e);\n      },\n    },\n  },\n  computed: {\n    workItemType() {\n      return this.workItem.workItemType?.name;\n    },\n    canUpdate() {\n      return this.workItem?.userPermissions?.updateWorkItem;\n    },\n    canDelete() {\n      return this.workItem?.userPermissions?.deleteWorkItem;\n    },\n    workItemAssignees() {\n      return this.isWidgetPresent(WIDGET_TYPE_ASSIGNEES);\n    },\n    workItemLabels() {\n      return this.isWidgetPresent(WIDGET_TYPE_LABELS);\n    },\n    workItemStartAndDueDate() {\n      return this.isWidgetPresent(WIDGET_TYPE_START_AND_DUE_DATE);\n    },\n    canWorkItemRollUp() {\n      return this.workItemStartAndDueDate?.rollUp;\n    },\n    workItemWeight() {\n      return this.isWidgetPresent(WIDGET_TYPE_WEIGHT);\n    },\n    workItemProgress() {\n      return this.isWidgetPresent(WIDGET_TYPE_PROGRESS);\n    },\n    workItemIteration() {\n      return this.isWidgetPresent(WIDGET_TYPE_ITERATION);\n    },\n    workItemHealthStatus() {\n      return this.isWidgetPresent(WIDGET_TYPE_HEALTH_STATUS);\n    },\n    workItemHierarchy() {\n      return this.isWidgetPresent(WIDGET_TYPE_HIERARCHY);\n    },\n    workItemMilestone() {\n      return this.isWidgetPresent(WIDGET_TYPE_MILESTONE);\n    },\n    showRolledupDates() {\n      return this.workItemType === WORK_ITEM_TYPE_VALUE_EPIC;\n    },\n    showParent() {\n      return this.workItemType === WORK_ITEM_TYPE_VALUE_EPIC ? this.hasSubepicsFeature : true;\n    },\n    workItemParent() {\n      return this.isWidgetPresent(WIDGET_TYPE_HIERARCHY)?.parent;\n    },\n    workItemTimeTracking() {\n      return this.isWidgetPresent(WIDGET_TYPE_TIME_TRACKING);\n    },\n    workItemColor() {\n      return this.isWidgetPresent(WIDGET_TYPE_COLOR);\n    },\n    workItemAuthor() {\n      return this.workItem?.author;\n    },\n    hasParent() {\n      return this.workItemHierarchy?.hasParent;\n    },\n    workItemCrmContacts() {\n      return this.isWidgetPresent(WIDGET_TYPE_CRM_CONTACTS) && this.glFeatures.workItemsAlpha;\n    },\n  },\n  methods: {\n    isWidgetPresent(type, workItem = this.workItem) {\n      return workItem?.widgets?.find((widget) => widget.type === type);\n    },\n  },\n};\n</script>\n\n<template>\n  <div class=\"work-item-attributes-wrapper\">\n    <template v-if=\"workItemAssignees\">\n      <work-item-assignees\n        class=\"js-assignee work-item-attributes-item\"\n        :can-update=\"canUpdate\"\n        :full-path=\"fullPath\"\n        :is-group=\"isGroup\"\n        :work-item-id=\"workItem.id\"\n        :assignees=\"workItemAssignees.assignees.nodes\"\n        :participants=\"workItemParticipants\"\n        :work-item-author=\"workItemAuthor\"\n        :allows-multiple-assignees=\"workItemAssignees.allowsMultipleAssignees\"\n        :work-item-type=\"workItemType\"\n        :can-invite-members=\"workItemAssignees.canInviteMembers\"\n        @error=\"$emit('error', $event)\"\n        @assigneesUpdated=\"\n          $emit('attributesUpdated', { type: $options.ListType.assignee, ids: $event })\n        \"\n      />\n    </template>\n    <template v-if=\"workItemLabels\">\n      <work-item-labels\n        class=\"js-labels work-item-attributes-item\"\n        :can-update=\"canUpdate\"\n        :full-path=\"fullPath\"\n        :is-group=\"isGroup\"\n        :work-item-id=\"workItem.id\"\n        :work-item-iid=\"workItem.iid\"\n        :work-item-type=\"workItemType\"\n        @error=\"$emit('error', $event)\"\n        @labelsUpdated=\"$emit('attributesUpdated', { type: $options.ListType.label, ids: $event })\"\n      />\n    </template>\n    <template v-if=\"workItemWeight\">\n      <work-item-weight\n        class=\"work-item-attributes-item\"\n        :can-update=\"canUpdate\"\n        :full-path=\"fullPath\"\n        :widget=\"workItemWeight\"\n        :work-item-id=\"workItem.id\"\n        :work-item-iid=\"workItem.iid\"\n        :work-item-type=\"workItemType\"\n        @error=\"$emit('error', $event)\"\n      />\n    </template>\n    <template v-if=\"canWorkItemRollUp && showRolledupDates\">\n      <work-item-rolledup-dates\n        class=\"work-item-attributes-item\"\n        :can-update=\"canUpdate\"\n        :full-path=\"fullPath\"\n        :start-date=\"workItemStartAndDueDate.startDate\"\n        :due-date=\"workItemStartAndDueDate.dueDate\"\n        :is-fixed=\"workItemStartAndDueDate.isFixed\"\n        :should-roll-up=\"canWorkItemRollUp\"\n        :work-item-type=\"workItemType\"\n        :work-item=\"workItem\"\n        @error=\"$emit('error', $event)\"\n      />\n    </template>\n    <template v-if=\"workItemMilestone\">\n      <work-item-milestone\n        class=\"js-milestone work-item-attributes-item\"\n        :is-group=\"isGroup\"\n        :full-path=\"fullPath\"\n        :work-item-id=\"workItem.id\"\n        :work-item-milestone=\"workItemMilestone.milestone\"\n        :work-item-type=\"workItemType\"\n        :can-update=\"canUpdate\"\n        @error=\"$emit('error', $event)\"\n        @milestoneUpdated=\"\n          $emit('attributesUpdated', { type: $options.ListType.milestone, ids: [$event] })\n        \"\n      />\n    </template>\n    <template v-if=\"workItemIteration\">\n      <work-item-iteration\n        class=\"work-item-attributes-item\"\n        :full-path=\"fullPath\"\n        :is-group=\"isGroup\"\n        :iteration=\"workItemIteration.iteration\"\n        :can-update=\"canUpdate\"\n        :work-item-id=\"workItem.id\"\n        :work-item-iid=\"workItem.iid\"\n        :work-item-type=\"workItemType\"\n        @error=\"$emit('error', $event)\"\n        @iterationUpdated=\"\n          $emit('attributesUpdated', { type: $options.ListType.iteration, ids: [$event] })\n        \"\n      />\n    </template>\n    <template v-if=\"workItemStartAndDueDate && !showRolledupDates\">\n      <work-item-due-date\n        class=\"work-item-attributes-item\"\n        :can-update=\"canUpdate\"\n        :due-date=\"workItemStartAndDueDate.dueDate\"\n        :start-date=\"workItemStartAndDueDate.startDate\"\n        :work-item-type=\"workItemType\"\n        :full-path=\"fullPath\"\n        :work-item=\"workItem\"\n        @error=\"$emit('error', $event)\"\n      />\n    </template>\n    <template v-if=\"workItemProgress\">\n      <work-item-progress\n        class=\"work-item-attributes-item\"\n        :can-update=\"canUpdate\"\n        :progress=\"workItemProgress.progress\"\n        :work-item-id=\"workItem.id\"\n        :work-item-type=\"workItemType\"\n        @error=\"$emit('error', $event)\"\n      />\n    </template>\n    <template v-if=\"workItemHealthStatus\">\n      <work-item-health-status\n        class=\"work-item-attributes-item\"\n        :work-item-id=\"workItem.id\"\n        :work-item-iid=\"workItem.iid\"\n        :work-item-type=\"workItemType\"\n        :full-path=\"fullPath\"\n        @error=\"$emit('error', $event)\"\n      />\n    </template>\n    <template v-if=\"workItemColor\">\n      <work-item-color\n        class=\"work-item-attributes-item\"\n        :work-item=\"workItem\"\n        :full-path=\"fullPath\"\n        :can-update=\"canUpdate\"\n        @error=\"$emit('error', $event)\"\n      />\n    </template>\n    <template v-if=\"workItemHierarchy && showParent\">\n      <work-item-parent\n        class=\"work-item-attributes-item\"\n        :can-update=\"canUpdate\"\n        :work-item-id=\"workItem.id\"\n        :work-item-type=\"workItemType\"\n        :parent=\"workItemParent\"\n        :has-parent=\"hasParent\"\n        :group-path=\"groupPath\"\n        :is-group=\"isGroup\"\n        @error=\"$emit('error', $event)\"\n      />\n    </template>\n    <work-item-time-tracking\n      v-if=\"workItemTimeTracking\"\n      class=\"work-item-attributes-item\"\n      :can-update=\"canUpdate\"\n      :time-estimate=\"workItemTimeTracking.timeEstimate\"\n      :timelogs=\"workItemTimeTracking.timelogs.nodes\"\n      :total-time-spent=\"workItemTimeTracking.totalTimeSpent\"\n      :work-item-id=\"workItem.id\"\n      :work-item-iid=\"workItem.iid\"\n      :work-item-type=\"workItemType\"\n    />\n    <template v-if=\"workItemCrmContacts\">\n      <work-item-crm-contacts\n        class=\"gl-border-t gl-mb-5 gl-border-subtle gl-pt-5\"\n        :full-path=\"fullPath\"\n        :work-item-id=\"workItem.id\"\n        :work-item-iid=\"workItem.iid\"\n        :work-item-type=\"workItemType\"\n      />\n    </template>\n    <participants\n      v-if=\"workItemParticipants.length\"\n      class=\"work-item-attributes-item\"\n      :participants=\"workItemParticipants\"\n    />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_attributes_wrapper.vue?vue&type=template&id=d07c220a\"\nimport script from \"./work_item_attributes_wrapper.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_attributes_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('div',{staticClass:\"work-item-attributes-wrapper\"},[(_vm.workItemAssignees)?[_c('work-item-assignees',{staticClass:\"js-assignee work-item-attributes-item\",attrs:{\"can-update\":_vm.canUpdate,\"full-path\":_vm.fullPath,\"is-group\":_vm.isGroup,\"work-item-id\":_vm.workItem.id,\"assignees\":_vm.workItemAssignees.assignees.nodes,\"participants\":_vm.workItemParticipants,\"work-item-author\":_vm.workItemAuthor,\"allows-multiple-assignees\":_vm.workItemAssignees.allowsMultipleAssignees,\"work-item-type\":_vm.workItemType,\"can-invite-members\":_vm.workItemAssignees.canInviteMembers},on:{\"error\":function($event){return _vm.$emit('error', $event)},\"assigneesUpdated\":function($event){return _vm.$emit('attributesUpdated', { type: _vm.$options.ListType.assignee, ids: $event })}}})]:_vm._e(),_vm._v(\" \"),(_vm.workItemLabels)?[_c('work-item-labels',{staticClass:\"js-labels work-item-attributes-item\",attrs:{\"can-update\":_vm.canUpdate,\"full-path\":_vm.fullPath,\"is-group\":_vm.isGroup,\"work-item-id\":_vm.workItem.id,\"work-item-iid\":_vm.workItem.iid,\"work-item-type\":_vm.workItemType},on:{\"error\":function($event){return _vm.$emit('error', $event)},\"labelsUpdated\":function($event){return _vm.$emit('attributesUpdated', { type: _vm.$options.ListType.label, ids: $event })}}})]:_vm._e(),_vm._v(\" \"),(_vm.workItemWeight)?[_c('work-item-weight',{staticClass:\"work-item-attributes-item\",attrs:{\"can-update\":_vm.canUpdate,\"full-path\":_vm.fullPath,\"widget\":_vm.workItemWeight,\"work-item-id\":_vm.workItem.id,\"work-item-iid\":_vm.workItem.iid,\"work-item-type\":_vm.workItemType},on:{\"error\":function($event){return _vm.$emit('error', $event)}}})]:_vm._e(),_vm._v(\" \"),(_vm.canWorkItemRollUp && _vm.showRolledupDates)?[_c('work-item-rolledup-dates',{staticClass:\"work-item-attributes-item\",attrs:{\"can-update\":_vm.canUpdate,\"full-path\":_vm.fullPath,\"start-date\":_vm.workItemStartAndDueDate.startDate,\"due-date\":_vm.workItemStartAndDueDate.dueDate,\"is-fixed\":_vm.workItemStartAndDueDate.isFixed,\"should-roll-up\":_vm.canWorkItemRollUp,\"work-item-type\":_vm.workItemType,\"work-item\":_vm.workItem},on:{\"error\":function($event){return _vm.$emit('error', $event)}}})]:_vm._e(),_vm._v(\" \"),(_vm.workItemMilestone)?[_c('work-item-milestone',{staticClass:\"js-milestone work-item-attributes-item\",attrs:{\"is-group\":_vm.isGroup,\"full-path\":_vm.fullPath,\"work-item-id\":_vm.workItem.id,\"work-item-milestone\":_vm.workItemMilestone.milestone,\"work-item-type\":_vm.workItemType,\"can-update\":_vm.canUpdate},on:{\"error\":function($event){return _vm.$emit('error', $event)},\"milestoneUpdated\":function($event){return _vm.$emit('attributesUpdated', { type: _vm.$options.ListType.milestone, ids: [$event] })}}})]:_vm._e(),_vm._v(\" \"),(_vm.workItemIteration)?[_c('work-item-iteration',{staticClass:\"work-item-attributes-item\",attrs:{\"full-path\":_vm.fullPath,\"is-group\":_vm.isGroup,\"iteration\":_vm.workItemIteration.iteration,\"can-update\":_vm.canUpdate,\"work-item-id\":_vm.workItem.id,\"work-item-iid\":_vm.workItem.iid,\"work-item-type\":_vm.workItemType},on:{\"error\":function($event){return _vm.$emit('error', $event)},\"iterationUpdated\":function($event){return _vm.$emit('attributesUpdated', { type: _vm.$options.ListType.iteration, ids: [$event] })}}})]:_vm._e(),_vm._v(\" \"),(_vm.workItemStartAndDueDate && !_vm.showRolledupDates)?[_c('work-item-due-date',{staticClass:\"work-item-attributes-item\",attrs:{\"can-update\":_vm.canUpdate,\"due-date\":_vm.workItemStartAndDueDate.dueDate,\"start-date\":_vm.workItemStartAndDueDate.startDate,\"work-item-type\":_vm.workItemType,\"full-path\":_vm.fullPath,\"work-item\":_vm.workItem},on:{\"error\":function($event){return _vm.$emit('error', $event)}}})]:_vm._e(),_vm._v(\" \"),(_vm.workItemProgress)?[_c('work-item-progress',{staticClass:\"work-item-attributes-item\",attrs:{\"can-update\":_vm.canUpdate,\"progress\":_vm.workItemProgress.progress,\"work-item-id\":_vm.workItem.id,\"work-item-type\":_vm.workItemType},on:{\"error\":function($event){return _vm.$emit('error', $event)}}})]:_vm._e(),_vm._v(\" \"),(_vm.workItemHealthStatus)?[_c('work-item-health-status',{staticClass:\"work-item-attributes-item\",attrs:{\"work-item-id\":_vm.workItem.id,\"work-item-iid\":_vm.workItem.iid,\"work-item-type\":_vm.workItemType,\"full-path\":_vm.fullPath},on:{\"error\":function($event){return _vm.$emit('error', $event)}}})]:_vm._e(),_vm._v(\" \"),(_vm.workItemColor)?[_c('work-item-color',{staticClass:\"work-item-attributes-item\",attrs:{\"work-item\":_vm.workItem,\"full-path\":_vm.fullPath,\"can-update\":_vm.canUpdate},on:{\"error\":function($event){return _vm.$emit('error', $event)}}})]:_vm._e(),_vm._v(\" \"),(_vm.workItemHierarchy && _vm.showParent)?[_c('work-item-parent',{staticClass:\"work-item-attributes-item\",attrs:{\"can-update\":_vm.canUpdate,\"work-item-id\":_vm.workItem.id,\"work-item-type\":_vm.workItemType,\"parent\":_vm.workItemParent,\"has-parent\":_vm.hasParent,\"group-path\":_vm.groupPath,\"is-group\":_vm.isGroup},on:{\"error\":function($event){return _vm.$emit('error', $event)}}})]:_vm._e(),_vm._v(\" \"),(_vm.workItemTimeTracking)?_c('work-item-time-tracking',{staticClass:\"work-item-attributes-item\",attrs:{\"can-update\":_vm.canUpdate,\"time-estimate\":_vm.workItemTimeTracking.timeEstimate,\"timelogs\":_vm.workItemTimeTracking.timelogs.nodes,\"total-time-spent\":_vm.workItemTimeTracking.totalTimeSpent,\"work-item-id\":_vm.workItem.id,\"work-item-iid\":_vm.workItem.iid,\"work-item-type\":_vm.workItemType}}):_vm._e(),_vm._v(\" \"),(_vm.workItemCrmContacts)?[_c('work-item-crm-contacts',{staticClass:\"gl-border-t gl-mb-5 gl-border-subtle gl-pt-5\",attrs:{\"full-path\":_vm.fullPath,\"work-item-id\":_vm.workItem.id,\"work-item-iid\":_vm.workItem.iid,\"work-item-type\":_vm.workItemType}})]:_vm._e(),_vm._v(\" \"),(_vm.workItemParticipants.length)?_c('participants',{staticClass:\"work-item-attributes-item\",attrs:{\"participants\":_vm.workItemParticipants}}):_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_created_updated.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.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_created_updated.vue?vue&type=script&lang=js\"","<script>\nimport { GlAvatarLink, GlSprintf, GlLoadingIcon } from '@gitlab/ui';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport LockedBadge from '~/issuable/components/locked_badge.vue';\nimport { WORKSPACE_PROJECT } from '~/issues/constants';\nimport TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';\nimport ConfidentialityBadge from '~/vue_shared/components/confidentiality_badge.vue';\nimport workItemByIidQuery from '../graphql/work_item_by_iid.query.graphql';\nimport { isNotesWidget } from '../utils';\nimport WorkItemStateBadge from './work_item_state_badge.vue';\nimport WorkItemTypeIcon from './work_item_type_icon.vue';\n\nexport default {\n  components: {\n    LockedBadge,\n    GlAvatarLink,\n    GlSprintf,\n    TimeAgoTooltip,\n    WorkItemStateBadge,\n    WorkItemTypeIcon,\n    ConfidentialityBadge,\n    GlLoadingIcon,\n  },\n  props: {\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    workItemIid: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    updateInProgress: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  computed: {\n    createdAt() {\n      return this.workItem?.createdAt || '';\n    },\n    author() {\n      return this.workItem?.author ?? {};\n    },\n    authorId() {\n      return getIdFromGraphQLId(this.author.id);\n    },\n    workItemState() {\n      return this.workItem?.state;\n    },\n    workItemType() {\n      return this.workItem?.workItemType?.name;\n    },\n    workItemIconName() {\n      return this.workItem?.workItemType?.iconName;\n    },\n    isDiscussionLocked() {\n      return this.workItem?.widgets?.find(isNotesWidget)?.discussionLocked;\n    },\n    isWorkItemConfidential() {\n      return this.workItem?.confidential;\n    },\n    isLoading() {\n      return this.$apollo.queries.workItem.loading;\n    },\n  },\n  apollo: {\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      skip() {\n        return !this.workItemIid;\n      },\n      update(data) {\n        return data.workspace.workItem ?? {};\n      },\n    },\n  },\n  WORKSPACE_PROJECT,\n};\n</script>\n\n<template>\n  <div v-if=\"isLoading\">\n    <gl-loading-icon inline />\n  </div>\n  <div v-else class=\"gl-mb-3 gl-mt-3 gl-text-subtle\">\n    <work-item-state-badge v-if=\"workItemState\" :work-item-state=\"workItemState\" />\n    <gl-loading-icon v-if=\"updateInProgress\" inline />\n    <confidentiality-badge\n      v-if=\"isWorkItemConfidential\"\n      class=\"gl-align-middle\"\n      :issuable-type=\"workItemType\"\n      :workspace-type=\"$options.WORKSPACE_PROJECT\"\n      hide-text-in-small-screens\n    />\n    <locked-badge v-if=\"isDiscussionLocked\" class=\"gl-align-middle\" :issuable-type=\"workItemType\" />\n    <work-item-type-icon\n      class=\"gl-align-middle\"\n      :work-item-icon-name=\"workItemIconName\"\n      :work-item-type=\"workItemType\"\n      show-text\n      icon-class=\"gl-fill-icon-subtle\"\n    />\n    <span data-testid=\"work-item-created\" class=\"gl-align-middle\">\n      <gl-sprintf v-if=\"author.name\" :message=\"__('created %{timeAgo} by %{author}')\">\n        <template #timeAgo>\n          <time-ago-tooltip :time=\"createdAt\" />\n        </template>\n        <template #author>\n          <gl-avatar-link\n            class=\"js-user-link gl-font-bold gl-text-default\"\n            :title=\"author.name\"\n            :data-user-id=\"authorId\"\n            :href=\"author.webUrl\"\n          >\n            {{ author.name }}\n          </gl-avatar-link>\n        </template>\n      </gl-sprintf>\n      <gl-sprintf v-else-if=\"createdAt\" :message=\"__('created %{timeAgo}')\">\n        <template #timeAgo>\n          <time-ago-tooltip :time=\"createdAt\" />\n        </template>\n      </gl-sprintf>\n    </span>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_created_updated.vue?vue&type=template&id=db7570e4\"\nimport script from \"./work_item_created_updated.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_created_updated.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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.isLoading)?_c('div',[_c('gl-loading-icon',{attrs:{\"inline\":\"\"}})],1):_c('div',{staticClass:\"gl-mb-3 gl-mt-3 gl-text-subtle\"},[(_vm.workItemState)?_c('work-item-state-badge',{attrs:{\"work-item-state\":_vm.workItemState}}):_vm._e(),_vm._v(\" \"),(_vm.updateInProgress)?_c('gl-loading-icon',{attrs:{\"inline\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.isWorkItemConfidential)?_c('confidentiality-badge',{staticClass:\"gl-align-middle\",attrs:{\"issuable-type\":_vm.workItemType,\"workspace-type\":_vm.$options.WORKSPACE_PROJECT,\"hide-text-in-small-screens\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.isDiscussionLocked)?_c('locked-badge',{staticClass:\"gl-align-middle\",attrs:{\"issuable-type\":_vm.workItemType}}):_vm._e(),_vm._v(\" \"),_c('work-item-type-icon',{staticClass:\"gl-align-middle\",attrs:{\"work-item-icon-name\":_vm.workItemIconName,\"work-item-type\":_vm.workItemType,\"show-text\":\"\",\"icon-class\":\"gl-fill-icon-subtle\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-align-middle\",attrs:{\"data-testid\":\"work-item-created\"}},[(_vm.author.name)?_c('gl-sprintf',{attrs:{\"message\":_vm.__('created %{timeAgo} by %{author}')},scopedSlots:_vm._u([{key:\"timeAgo\",fn:function(){return [_c('time-ago-tooltip',{attrs:{\"time\":_vm.createdAt}})]},proxy:true},{key:\"author\",fn:function(){return [_c('gl-avatar-link',{staticClass:\"js-user-link gl-font-bold gl-text-default\",attrs:{\"title\":_vm.author.name,\"data-user-id\":_vm.authorId,\"href\":_vm.author.webUrl}},[_vm._v(\"\\n          \"+_vm._s(_vm.author.name)+\"\\n        \")])]},proxy:true}],null,false,268530585)}):(_vm.createdAt)?_c('gl-sprintf',{attrs:{\"message\":_vm.__('created %{timeAgo}')},scopedSlots:_vm._u([{key:\"timeAgo\",fn:function(){return [_c('time-ago-tooltip',{attrs:{\"time\":_vm.createdAt}})]},proxy:true}])}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { mergeUrlParams } from '~/lib/utils/url_utility';\nimport axios from '~/lib/utils/axios_utils';\nimport { __ } from '~/locale';\nimport { createAlert } from '~/alert';\n\nexport default {\n  data() {\n    return {\n      isDescriptionVersionExpanded: false,\n      noteDeleted: false,\n    };\n  },\n  computed: {\n    systemNoteDescriptionVersion() {\n      return this.note.systemNoteMetadata?.descriptionVersion;\n    },\n    descriptionVersionDiffPath() {\n      return this.systemNoteDescriptionVersion?.diffPath;\n    },\n    descriptionVersionDeletePath() {\n      return this.systemNoteDescriptionVersion?.deletePath;\n    },\n    descriptionVersionStartId() {\n      return getIdFromGraphQLId(this.systemNoteDescriptionVersion?.startVersionId);\n    },\n    isDescriptionVersionDeleted() {\n      return this.systemNoteDescriptionVersion?.deleted;\n    },\n    canDeleteDescriptionVersion() {\n      return this.systemNoteDescriptionVersion?.canDelete;\n    },\n    canSeeDescriptionVersion() {\n      return Boolean(\n        this.descriptionVersionDiffPath &&\n          this.descriptionVersionId &&\n          !this.isDescriptionVersionDeleted,\n      );\n    },\n    displayDeleteButton() {\n      return (\n        this.canDeleteDescriptionVersion && !this.noteDeleted && !this.isDescriptionVersionDeleted\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    async fetchDescriptionVersion({ endpoint, startingVersion, versionId }) {\n      let requestUrl = endpoint;\n\n      if (startingVersion) {\n        requestUrl = mergeUrlParams({ start_version_id: startingVersion }, requestUrl);\n      }\n\n      this.isLoadingDescriptionVersion = true;\n\n      await axios\n        .get(requestUrl)\n        .then((res) => {\n          this.isLoadingDescriptionVersion = false;\n          this.descriptionVersions = {\n            ...this.descriptionVersions,\n            [versionId]: res.data,\n          };\n        })\n        .catch(() => {\n          createAlert({\n            message: __(\n              'Something went wrong while fetching description changes. Please try again.',\n            ),\n          });\n        })\n        .finally(() => {\n          this.isLoadingDescriptionVersion = false;\n        });\n    },\n    async softDeleteDescriptionVersion({ endpoint, startVersion, versionId }) {\n      let requestUrl = endpoint;\n\n      if (startVersion) {\n        requestUrl = mergeUrlParams({ start_version_id: startVersion }, requestUrl);\n      }\n\n      await axios\n        .delete(requestUrl)\n        .then(() => {\n          this.noteDeleted = true;\n          // no need to use vue.set the next time , first time ensures that it is reactive\n          this.descriptionVersions[versionId] = '<span>Deleted</span>';\n        })\n        .catch((error) => {\n          createAlert({\n            message: __(\n              'Something went wrong while deleting description changes. Please try again.',\n            ),\n          });\n          throw new Error(error);\n        });\n    },\n    toggleDescriptionVersion() {\n      this.isDescriptionVersionExpanded = !this.isDescriptionVersionExpanded;\n\n      const versionId = this.descriptionVersionId;\n\n      if (this.descriptionVersions?.[versionId]) {\n        return false;\n      }\n\n      const startingVersion = this.descriptionVersionStartId;\n\n      return this.fetchDescriptionVersion({\n        endpoint: this.descriptionVersionDiffPath,\n        startingVersion,\n        versionId,\n      });\n    },\n    deleteDescriptionVersion() {\n      return this.softDeleteDescriptionVersion({\n        endpoint: this.descriptionVersionDeletePath,\n        startVersion: this.descriptionVersionStartId,\n        versionId: this.descriptionVersionId,\n      }).catch(() => {\n        this.noteDeleted = false;\n      });\n    },\n  },\n};\n","<script>\n/**\n * Common component to render a system note, icon and user information.\n *\n * This component need not be used with any store neither has any vuex dependency\n *\n * @example\n * <system-note\n *   :note=\"{\n *     id: String,\n *     author: Object,\n *     createdAt: String,\n *     bodyHtml: String,\n *     systemNoteIconName: String\n *    }\"\n *   />\n */\nimport { GlButton, GlSkeletonLoader, GlTooltipDirective, GlIcon } from '@gitlab/ui';\nimport $ from 'jquery';\nimport { renderGFM } from '~/behaviors/markdown/render_gfm';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport descriptionVersionHistoryMixin from 'ee_else_ce/work_items/mixins/description_version_history';\nimport { getLocationHash } from '~/lib/utils/url_utility';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { __ } from '~/locale';\nimport NoteHeader from '~/notes/components/note_header.vue';\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\n\nconst ALLOWED_ICONS = ['issue-close'];\nconst ICON_COLORS = {\n  'issue-close': '!gl-bg-blue-100 gl-text-blue-700 icon-info',\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],\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      isLoadingDescriptionVersion: false,\n      descriptionVersions: {},\n    };\n  },\n  computed: {\n    targetNoteHash() {\n      return getLocationHash();\n    },\n    noteAnchorId() {\n      return `note_${this.noteId}`;\n    },\n    getIconColor() {\n      return ICON_COLORS[this.note.systemNoteIconName] || '';\n    },\n    isAllowedIcon() {\n      return ALLOWED_ICONS.includes(this.note.systemNoteIconName);\n    },\n    isTargetNote() {\n      return this.targetNoteHash === this.noteAnchorId;\n    },\n    toggleIcon() {\n      return this.expanded ? 'chevron-up' : 'chevron-down';\n    },\n    actionTextHtml() {\n      return $(this.note.bodyHtml).unwrap().html();\n    },\n    descriptionVersionId() {\n      return getIdFromGraphQLId(this.systemNoteDescriptionVersion?.id);\n    },\n    noteId() {\n      return getIdFromGraphQLId(this.note.id);\n    },\n    descriptionVersion() {\n      return this.descriptionVersions[this.descriptionVersionId];\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  },\n  mounted() {\n    renderGFM(this.$refs['gfm-content']);\n  },\n  safeHtmlConfig: {\n    ADD_TAGS: ['use'], // to support icon SVGs\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        getIconColor,\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 v-if=\"isAllowedIcon\" :size=\"14\" :name=\"note.systemNoteIconName\" />\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.createdAt\"\n          :note-id=\"noteId\"\n          :is-system-note=\"true\"\n        >\n          <span ref=\"gfm-content\" v-safe-html=\"actionTextHtml\" class=\"gl-break-anywhere\"></span>\n          <template v-if=\"canSeeDescriptionVersion\" #extra-controls>\n            &middot;\n            <gl-button\n              v-if=\"canSeeDescriptionVersion\"\n              variant=\"link\"\n              :icon=\"descriptionVersionToggleIcon\"\n              data-testid=\"compare-btn\"\n              class=\"gl-align-text-bottom !gl-text-sm\"\n              @click=\"toggleDescriptionVersion\"\n              >{{ __('Compare with previous version') }}</gl-button\n            >\n          </template>\n        </note-header>\n      </div>\n      <div class=\"note-body gl-pb-3 gl-pl-3\">\n        <div v-if=\"shouldShowDescriptionVersion\" class=\"gl-relative !gl-pt-3\">\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            data-testid=\"description-version-diff\"\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    </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=343d99df\"\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('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.getIconColor,\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:{\"size\":14,\"name\":_vm.note.systemNoteIconName}}):_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.createdAt,\"note-id\":_vm.noteId,\"is-system-note\":true},scopedSlots:_vm._u([(_vm.canSeeDescriptionVersion)?{key:\"extra-controls\",fn:function(){return [_vm._v(\"\\n          ·\\n          \"),(_vm.canSeeDescriptionVersion)?_c('gl-button',{staticClass:\"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()]},proxy:true}:null],null,true)},[_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.actionTextHtml),expression:\"actionTextHtml\"}],ref:\"gfm-content\",staticClass:\"gl-break-anywhere\"})])],1),_vm._v(\" \"),_c('div',{staticClass:\"note-body gl-pb-3 gl-pl-3\"},[(_vm.shouldShowDescriptionVersion)?_c('div',{staticClass:\"gl-relative !gl-pt-3\"},[(_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\",attrs:{\"data-testid\":\"description-version-diff\"}}),_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()])])])\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_activity_sort_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!./work_item_activity_sort_filter.vue?vue&type=script&lang=js\"","<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\nimport Tracking from '~/tracking';\nimport LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';\nimport { TRACKING_CATEGORY_SHOW } from '~/work_items/constants';\n\nexport default {\n  components: {\n    GlCollapsibleListbox,\n    LocalStorageSync,\n  },\n  mixins: [Tracking.mixin()],\n  props: {\n    loading: {\n      type: Boolean,\n      default: false,\n      required: false,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n    sortFilterProp: {\n      type: String,\n      required: true,\n    },\n    items: {\n      type: Array,\n      required: true,\n    },\n    trackingLabel: {\n      type: String,\n      required: true,\n    },\n    trackingAction: {\n      type: String,\n      required: true,\n    },\n    filterEvent: {\n      type: String,\n      required: true,\n    },\n    defaultSortFilterProp: {\n      type: String,\n      required: true,\n    },\n    storageKey: {\n      type: String,\n      required: true,\n    },\n  },\n  computed: {\n    tracking() {\n      return {\n        category: TRACKING_CATEGORY_SHOW,\n        label: this.trackingLabel,\n        property: `type_${this.workItemType}`,\n      };\n    },\n    getDropdownSelectedText() {\n      return this.selectedSortOption.text;\n    },\n    selectedSortOption() {\n      return (\n        this.items.find(({ key }) => this.sortFilterProp === key) || this.defaultSortFilterProp\n      );\n    },\n  },\n  methods: {\n    setDiscussionFilterOption(filterValue) {\n      this.$emit(this.filterEvent, filterValue);\n    },\n    fetchFilteredDiscussions(filterValue) {\n      if (this.isSortDropdownItemActive(filterValue)) {\n        return;\n      }\n      this.track(this.trackingAction);\n      this.$emit(this.filterEvent, filterValue);\n    },\n    isSortDropdownItemActive(value) {\n      return value === this.sortFilterProp;\n    },\n  },\n};\n</script>\n\n<template>\n  <div class=\"gl-inline-block gl-align-bottom\">\n    <local-storage-sync\n      :value=\"sortFilterProp\"\n      :storage-key=\"storageKey\"\n      as-string\n      @input=\"setDiscussionFilterOption\"\n    />\n    <gl-collapsible-listbox\n      :toggle-text=\"getDropdownSelectedText\"\n      :disabled=\"loading\"\n      :items=\"items\"\n      :selected=\"sortFilterProp\"\n      placement=\"bottom-end\"\n      size=\"small\"\n      @select=\"fetchFilteredDiscussions\"\n    />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_activity_sort_filter.vue?vue&type=template&id=c38a38e2\"\nimport script from \"./work_item_activity_sort_filter.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_activity_sort_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 _c('div',{staticClass:\"gl-inline-block gl-align-bottom\"},[_c('local-storage-sync',{attrs:{\"value\":_vm.sortFilterProp,\"storage-key\":_vm.storageKey,\"as-string\":\"\"},on:{\"input\":_vm.setDiscussionFilterOption}}),_vm._v(\" \"),_c('gl-collapsible-listbox',{attrs:{\"toggle-text\":_vm.getDropdownSelectedText,\"disabled\":_vm.loading,\"items\":_vm.items,\"selected\":_vm.sortFilterProp,\"placement\":\"bottom-end\",\"size\":\"small\"},on:{\"select\":_vm.fetchFilteredDiscussions}})],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_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!./work_item_notes_activity_header.vue?vue&type=script&lang=js\"","<script>\nimport WorkItemActivitySortFilter from '~/work_items/components/notes/work_item_activity_sort_filter.vue';\nimport { s__ } from '~/locale';\nimport { ASC } from '~/notes/constants';\nimport {\n  WORK_ITEM_NOTES_FILTER_ALL_NOTES,\n  WORK_ITEM_ACTIVITY_FILTER_OPTIONS,\n  WORK_ITEM_NOTES_FILTER_KEY,\n  WORK_ITEM_ACTIVITY_SORT_OPTIONS,\n  WORK_ITEM_NOTES_SORT_ORDER_KEY,\n} from '~/work_items/constants';\n\nexport default {\n  i18n: {\n    activityLabel: s__('WorkItem|Activity'),\n  },\n  components: {\n    WorkItemActivitySortFilter,\n  },\n  props: {\n    disableActivityFilterSort: {\n      type: Boolean,\n      required: true,\n    },\n    sortOrder: {\n      type: String,\n      default: ASC,\n      required: false,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n    discussionFilter: {\n      type: String,\n      default: WORK_ITEM_NOTES_FILTER_ALL_NOTES,\n      required: false,\n    },\n    useH2: {\n      type: Boolean,\n      default: false,\n      required: false,\n    },\n  },\n  computed: {\n    headerClasses() {\n      return this.useH2 ? 'gl-text-size-h1 gl-m-0' : 'gl-text-base gl-m-0';\n    },\n  },\n  methods: {\n    changeNotesSortOrder(direction) {\n      this.$emit('changeSort', direction);\n    },\n    filterDiscussions(filterValue) {\n      this.$emit('changeFilter', filterValue);\n    },\n  },\n  WORK_ITEM_ACTIVITY_FILTER_OPTIONS,\n  WORK_ITEM_NOTES_FILTER_KEY,\n  WORK_ITEM_NOTES_FILTER_ALL_NOTES,\n  WORK_ITEM_ACTIVITY_SORT_OPTIONS,\n  WORK_ITEM_NOTES_SORT_ORDER_KEY,\n  ASC,\n};\n</script>\n\n<template>\n  <div class=\"gl-flex gl-flex-wrap gl-items-center gl-justify-between gl-pb-3\">\n    <component :is=\"useH2 ? 'h2' : 'h3'\" :class=\"headerClasses\">{{\n      $options.i18n.activityLabel\n    }}</component>\n    <div class=\"gl-flex gl-gap-3\">\n      <work-item-activity-sort-filter\n        :work-item-type=\"workItemType\"\n        :loading=\"disableActivityFilterSort\"\n        :sort-filter-prop=\"discussionFilter\"\n        :items=\"$options.WORK_ITEM_ACTIVITY_FILTER_OPTIONS\"\n        :storage-key=\"$options.WORK_ITEM_NOTES_FILTER_KEY\"\n        :default-sort-filter-prop=\"$options.WORK_ITEM_NOTES_FILTER_ALL_NOTES\"\n        tracking-action=\"work_item_notes_filter_changed\"\n        tracking-label=\"item_track_notes_filtering\"\n        filter-event=\"changeFilter\"\n        data-testid=\"work-item-filter\"\n        @changeFilter=\"filterDiscussions\"\n      />\n      <work-item-activity-sort-filter\n        :work-item-type=\"workItemType\"\n        :loading=\"disableActivityFilterSort\"\n        :sort-filter-prop=\"sortOrder\"\n        :items=\"$options.WORK_ITEM_ACTIVITY_SORT_OPTIONS\"\n        :storage-key=\"$options.WORK_ITEM_NOTES_SORT_ORDER_KEY\"\n        :default-sort-filter-prop=\"$options.ASC\"\n        tracking-action=\"work_item_notes_sort_order_changed\"\n        tracking-label=\"item_track_notes_sorting\"\n        filter-event=\"changeSort\"\n        data-testid=\"work-item-sort\"\n        @changeSort=\"changeNotesSortOrder\"\n      />\n    </div>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_notes_activity_header.vue?vue&type=template&id=20c6456c\"\nimport script from \"./work_item_notes_activity_header.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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-wrap gl-items-center gl-justify-between gl-pb-3\"},[_c(_vm.useH2 ? 'h2' : 'h3',{tag:\"component\",class:_vm.headerClasses},[_vm._v(_vm._s(_vm.$options.i18n.activityLabel))]),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-gap-3\"},[_c('work-item-activity-sort-filter',{attrs:{\"work-item-type\":_vm.workItemType,\"loading\":_vm.disableActivityFilterSort,\"sort-filter-prop\":_vm.discussionFilter,\"items\":_vm.$options.WORK_ITEM_ACTIVITY_FILTER_OPTIONS,\"storage-key\":_vm.$options.WORK_ITEM_NOTES_FILTER_KEY,\"default-sort-filter-prop\":_vm.$options.WORK_ITEM_NOTES_FILTER_ALL_NOTES,\"tracking-action\":\"work_item_notes_filter_changed\",\"tracking-label\":\"item_track_notes_filtering\",\"filter-event\":\"changeFilter\",\"data-testid\":\"work-item-filter\"},on:{\"changeFilter\":_vm.filterDiscussions}}),_vm._v(\" \"),_c('work-item-activity-sort-filter',{attrs:{\"work-item-type\":_vm.workItemType,\"loading\":_vm.disableActivityFilterSort,\"sort-filter-prop\":_vm.sortOrder,\"items\":_vm.$options.WORK_ITEM_ACTIVITY_SORT_OPTIONS,\"storage-key\":_vm.$options.WORK_ITEM_NOTES_SORT_ORDER_KEY,\"default-sort-filter-prop\":_vm.$options.ASC,\"tracking-action\":\"work_item_notes_sort_order_changed\",\"tracking-label\":\"item_track_notes_sorting\",\"filter-event\":\"changeSort\",\"data-testid\":\"work-item-sort\"},on:{\"changeSort\":_vm.changeNotesSortOrder}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { DESCRIPTION_TYPE, TIME_DIFFERENCE_VALUE } from '~/notes/constants';\n\n/**\n * Checks the time difference between two notes from their 'created_at' dates\n * returns an integer\n */\nexport const getTimeDifferenceInMinutes = (noteBeginning, noteEnd) => {\n  const descriptionNoteBegin = new Date(noteBeginning.createdAt);\n  const descriptionNoteEnd = new Date(noteEnd.createdAt);\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) => {\n  return note.system && note.body === DESCRIPTION_TYPE;\n};\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.reduce((acc, currentNote) => {\n    const note = currentNote.notes.nodes[0];\n    let lastStartVersionId = '';\n\n    if (isDescriptionSystemNote(note)) {\n      // is it the first one?\n      if (!lastDescriptionSystemNote) {\n        lastDescriptionSystemNote = note;\n      } else {\n        const timeDifferenceMinutes = getTimeDifferenceInMinutes(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.systemNoteMetadata.descriptionVersion?.deleted\n        ) {\n          // update the previous system note\n          lastDescriptionSystemNote = note;\n        } else {\n          // set the first version to fetch grouped system note versions\n\n          lastStartVersionId = lastDescriptionSystemNote.systemNoteMetadata.descriptionVersion?.id;\n\n          // delete the previous one\n          acc.splice(lastDescriptionSystemNoteIndex, 1);\n        }\n      }\n\n      // update the previous system note index\n      lastDescriptionSystemNoteIndex = acc.length;\n\n      acc.push({\n        notes: {\n          nodes: [\n            {\n              ...note,\n              systemNoteMetadata: {\n                ...note.systemNoteMetadata,\n                descriptionVersion: {\n                  ...note.systemNoteMetadata.descriptionVersion,\n                  startVersionId: lastStartVersionId,\n                },\n              },\n            },\n          ],\n        },\n      });\n    } else {\n      acc.push(currentNote);\n    }\n\n    return acc;\n  }, []);\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isOnlyCommentOfAThread)?_c('work-item-note',{class:{ 'gl-mb-4': _vm.hasReplies },attrs:{\"is-first-note\":true,\"note\":_vm.note,\"discussion-id\":_vm.discussionId,\"full-path\":_vm.fullPath,\"has-replies\":_vm.hasReplies,\"work-item-type\":_vm.workItemType,\"is-modal\":_vm.isModal,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"markdown-preview-path\":_vm.markdownPreviewPath,\"assignees\":_vm.assignees,\"can-set-work-item-metadata\":_vm.canSetWorkItemMetadata,\"is-discussion-resolved\":_vm.isDiscussionResolved,\"is-discussion-resolvable\":_vm.isDiscussionResolvable,\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"is-resolving\":_vm.isResolving},on:{\"startEditing\":function($event){return _vm.$emit('startEditing')},\"resolve\":_vm.resolveDiscussion,\"startReplying\":_vm.showReplyForm,\"deleteNote\":function($event){return _vm.$emit('deleteNote', _vm.note)},\"reportAbuse\":function($event){return _vm.$emit('reportAbuse', _vm.note)},\"cancelEditing\":function($event){return _vm.$emit('cancelEditing')},\"error\":function($event){return _vm.$emit('error', $event)}}}):_c('timeline-entry-item',{staticClass:\"note note-discussion gl-px-0\",attrs:{\"data-note-id\":_vm.noteId}},[_c('div',{staticClass:\"timeline-content\"},[_c('div',{staticClass:\"discussion\"},[_c('div',{staticClass:\"discussion-body\"},[_c('div',{staticClass:\"discussion-wrapper\"},[_c('div',{staticClass:\"discussion-notes\"},[_c('ul',{staticClass:\"notes\"},[_c('work-item-note',{class:{ 'gl-mb-4': _vm.hasReplies },attrs:{\"is-first-note\":\"\",\"note\":_vm.note,\"discussion-id\":_vm.discussionId,\"full-path\":_vm.fullPath,\"has-replies\":_vm.hasReplies,\"work-item-type\":_vm.workItemType,\"is-modal\":_vm.isModal,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"markdown-preview-path\":_vm.markdownPreviewPath,\"assignees\":_vm.assignees,\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"can-set-work-item-metadata\":_vm.canSetWorkItemMetadata,\"is-discussion-resolved\":_vm.isDiscussionResolved,\"is-discussion-resolvable\":_vm.isDiscussionResolvable,\"is-resolving\":_vm.isResolving},on:{\"startReplying\":_vm.showReplyForm,\"startEditing\":function($event){return _vm.$emit('startEditing')},\"deleteNote\":function($event){return _vm.$emit('deleteNote', _vm.note)},\"reportAbuse\":function($event){return _vm.$emit('reportAbuse', _vm.note)},\"cancelEditing\":function($event){return _vm.$emit('cancelEditing')},\"resolve\":_vm.resolveDiscussion,\"error\":function($event){return _vm.$emit('error', $event)}}}),_vm._v(\" \"),_c('discussion-notes-replies-wrapper',[(_vm.hasReplies)?_c('toggle-replies-widget',{attrs:{\"collapsed\":!_vm.isExpanded,\"replies\":_vm.replies},on:{\"toggle\":function($event){return _vm.toggleDiscussion({ discussionId: _vm.discussionId })}}}):_vm._e(),_vm._v(\" \"),(_vm.isExpanded)?[_vm._l((_vm.replies),function(reply){return [_c('work-item-note',{key:_vm.threadKey(reply),attrs:{\"discussion-id\":_vm.discussionId,\"full-path\":_vm.fullPath,\"note\":reply,\"work-item-type\":_vm.workItemType,\"is-modal\":_vm.isModal,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"markdown-preview-path\":_vm.markdownPreviewPath,\"assignees\":_vm.assignees,\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"can-set-work-item-metadata\":_vm.canSetWorkItemMetadata,\"is-discussion-resolved\":_vm.isDiscussionResolved,\"is-discussion-resolvable\":_vm.isDiscussionResolvable,\"is-resolving\":_vm.isResolving},on:{\"startReplying\":_vm.showReplyForm,\"deleteNote\":function($event){return _vm.$emit('deleteNote', reply)},\"reportAbuse\":function($event){return _vm.$emit('reportAbuse', reply)},\"startEditing\":function($event){return _vm.$emit('startEditing')},\"cancelEditing\":function($event){return _vm.$emit('cancelEditing')},\"error\":function($event){return _vm.$emit('error', $event)}}})]}),_vm._v(\" \"),(_vm.isReplying)?_c('work-item-note-replying',{attrs:{\"is-internal-note\":_vm.note.internal,\"body\":_vm.replyingText}}):_vm._e(),_vm._v(\" \"),(_vm.shouldShowReplyForm)?_c('work-item-add-note',{attrs:{\"notes-form\":false,\"autofocus\":_vm.autofocus,\"full-path\":_vm.fullPath,\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"discussion-id\":_vm.discussionId,\"work-item-type\":_vm.workItemType,\"sort-order\":_vm.sortOrder,\"add-padding\":true,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"markdown-preview-path\":_vm.markdownPreviewPath,\"is-discussion-locked\":_vm.isDiscussionLocked,\"is-internal-thread\":_vm.note.internal,\"is-work-item-confidential\":_vm.isWorkItemConfidential,\"is-discussion-resolved\":_vm.isDiscussionResolved,\"is-discussion-resolvable\":_vm.isDiscussionResolvable,\"is-resolving\":_vm.isResolving,\"has-replies\":_vm.hasReplies},on:{\"startReplying\":_vm.showReplyForm,\"cancelEditing\":_vm.hideReplyForm,\"replied\":_vm.onReplied,\"replying\":_vm.onReplying,\"resolve\":_vm.resolveDiscussion,\"error\":function($event){return _vm.$emit('error', $event)},\"startEditing\":function($event){return _vm.$emit('startEditing')}}}):_vm._e()]:_vm._e()],2)],1)])])])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlButton, GlFormCheckbox, GlTooltipDirective } from '@gitlab/ui';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { s__, __ } from '~/locale';\nimport { capitalizeFirstCharacter } from '~/lib/utils/text_utility';\nimport {\n  STATE_OPEN,\n  WORK_ITEM_TYPE_VALUE_TASK,\n  WIDGET_TYPE_EMAIL_PARTICIPANTS,\n  i18n,\n} from '~/work_items/constants';\nimport { getDraft, clearDraft, updateDraft } from '~/lib/utils/autosave';\nimport { findWidget } from '~/issues/list/utils';\nimport { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal';\nimport MarkdownEditor from '~/vue_shared/components/markdown/markdown_editor.vue';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport WorkItemStateToggle from '~/work_items/components/work_item_state_toggle.vue';\nimport CommentFieldLayout from '~/notes/components/comment_field_layout.vue';\nimport workItemByIidQuery from '../../graphql/work_item_by_iid.query.graphql';\nimport workItemEmailParticipantsByIidQuery from '../../graphql/notes/work_item_email_participants_by_iid.query.graphql';\n\nconst DOCS_WORK_ITEM_LOCKED_TASKS_PATH = helpPagePath('user/tasks.html', {\n  anchor: 'lock-discussion',\n});\nconst DOCS_WORK_ITEM_CONFIDENTIAL_TASKS_PATH = helpPagePath('user/tasks.html', {\n  anchor: 'confidential-tasks',\n});\nconst DOCS_WORK_ITEM_LOCKED_OKRS_PATH = helpPagePath('user/okrs.html', {\n  anchor: 'lock-discussion',\n});\nconst DOCS_WORK_ITEM_CONFIDENTIAL_OKRS_PATH = helpPagePath('user/okrs.html', {\n  anchor: 'confidential-okrs',\n});\n\nexport default {\n  i18n: {\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    addInternalNote: __('Add internal note'),\n    cancelButtonText: __('Cancel'),\n  },\n  constantOptions: {\n    markdownDocsPath: helpPagePath('user/markdown'),\n  },\n  components: {\n    CommentFieldLayout,\n    GlButton,\n    MarkdownEditor,\n    GlFormCheckbox,\n    HelpIcon,\n    WorkItemStateToggle,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  props: {\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    ariaLabel: {\n      type: String,\n      required: true,\n    },\n    autosaveKey: {\n      type: String,\n      required: true,\n    },\n    isSubmitting: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    initialValue: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    commentButtonText: {\n      type: String,\n      required: false,\n      default: __('Comment'),\n    },\n    markdownPreviewPath: {\n      type: String,\n      required: true,\n    },\n    autocompleteDataSources: {\n      type: Object,\n      required: false,\n      default: () => ({}),\n    },\n    isNewDiscussion: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    workItemState: {\n      type: String,\n      required: false,\n      default: STATE_OPEN,\n    },\n    autofocus: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isDiscussionLocked: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isWorkItemConfidential: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    workItemIid: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    isDiscussionInternal: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isDiscussionResolved: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isDiscussionResolvable: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    hasReplies: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    hasEmailParticipantsWidget: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    parentId: {\n      type: String,\n      required: false,\n      default: null,\n    },\n  },\n  data() {\n    return {\n      commentText: getDraft(this.autosaveKey) || this.initialValue || '',\n      updateInProgress: false,\n      isNoteInternal: false,\n      toggleResolveChecked: this.isDiscussionResolved,\n      emailParticipants: [],\n      workItem: {},\n    };\n  },\n  computed: {\n    formFieldProps() {\n      return {\n        'aria-label': this.ariaLabel,\n        placeholder: __('Write a comment or drag your files here…'),\n        id: 'work-item-add-or-edit-comment',\n        name: 'work-item-add-or-edit-comment',\n      };\n    },\n    commentButtonTextComputed() {\n      return this.isNoteInternal ? this.$options.i18n.addInternalNote : this.commentButtonText;\n    },\n    docsLinks() {\n      return this.workItemType === WORK_ITEM_TYPE_VALUE_TASK\n        ? {\n            confidential_issues_docs_path: DOCS_WORK_ITEM_CONFIDENTIAL_TASKS_PATH,\n            locked_discussion_docs_path: DOCS_WORK_ITEM_LOCKED_TASKS_PATH,\n          }\n        : {\n            confidential_issues_docs_path: DOCS_WORK_ITEM_CONFIDENTIAL_OKRS_PATH,\n            locked_discussion_docs_path: DOCS_WORK_ITEM_LOCKED_OKRS_PATH,\n          };\n    },\n    getWorkItemData() {\n      return {\n        confidential: this.isWorkItemConfidential,\n        discussion_locked: this.isDiscussionLocked,\n        issue_email_participants: this.emailParticipants,\n        ...this.docsLinks,\n      };\n    },\n    workItemTypeKey() {\n      return capitalizeFirstCharacter(this.workItemType).replace(' ', '');\n    },\n    showResolveDiscussionToggle() {\n      return !this.isNewDiscussion && this.isDiscussionResolvable && this.hasReplies;\n    },\n    resolveCheckboxLabel() {\n      return this.isDiscussionResolved ? __('Unresolve thread') : __('Resolve thread');\n    },\n    canMarkNoteAsInternal() {\n      return this.workItem?.userPermissions?.markNoteAsInternal;\n    },\n    showInternalNoteCheckbox() {\n      return this.canMarkNoteAsInternal && this.isNewDiscussion;\n    },\n  },\n  apollo: {\n    emailParticipants: {\n      query: workItemEmailParticipantsByIidQuery,\n      variables() {\n        return {\n          fullPath: this.fullPath,\n          iid: this.workItemIid,\n        };\n      },\n      skip() {\n        // Don't request email participants if the widget is not available\n        return !this.workItemIid || !this.hasEmailParticipantsWidget;\n      },\n      error() {\n        this.$emit('error', i18n.fetchError);\n      },\n      update(data) {\n        return (\n          findWidget(WIDGET_TYPE_EMAIL_PARTICIPANTS, data?.workspace?.workItem)?.emailParticipants\n            ?.nodes || []\n        );\n      },\n    },\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      error() {\n        this.$emit('error', i18n.fetchError);\n      },\n    },\n  },\n  methods: {\n    setCommentText(newText) {\n      /**\n       * https://gitlab.com/gitlab-org/gitlab/-/issues/388314\n       *\n       * While the form is saving using meta+enter,\n       * avoid updating the data which is cleared after form submission.\n       */\n      if (!this.isSubmitting) {\n        this.commentText = newText;\n        updateDraft(this.autosaveKey, this.commentText);\n        if (this.commentText) {\n          this.$emit('startEditing');\n        } else {\n          this.$emit('stopEditing');\n        }\n      }\n    },\n    async cancelEditing() {\n      if (this.commentText && this.commentText !== this.initialValue) {\n        const msg = s__('WorkItem|Are you sure you want to cancel editing?');\n\n        const confirmed = await confirmAction(msg, {\n          primaryBtnText: __('Discard changes'),\n          cancelBtnText: __('Continue editing'),\n          primaryBtnVariant: 'danger',\n        });\n\n        if (!confirmed) {\n          return;\n        }\n      }\n\n      this.$emit('cancelEditing');\n      clearDraft(this.autosaveKey);\n    },\n    submitForm() {\n      if (this.isSubmitting) {\n        return;\n      }\n      if (this.toggleResolveChecked) {\n        this.$emit('toggleResolveDiscussion');\n      }\n      this.$emit('submitForm', {\n        commentText: this.commentText,\n        isNoteInternal: this.isNoteInternal,\n      });\n    },\n  },\n};\n</script>\n\n<template>\n  <div class=\"timeline-discussion-body !gl-overflow-visible\">\n    <div class=\"note-body !gl-overflow-visible !gl-p-0\">\n      <form class=\"common-note-form gfm-form js-main-target-form new-note gl-grow\">\n        <comment-field-layout\n          :with-alert-container=\"isWorkItemConfidential\"\n          :is-internal-note=\"isDiscussionInternal || isNoteInternal\"\n          :note=\"commentText\"\n          :noteable-data=\"getWorkItemData\"\n          :noteable-type=\"workItemTypeKey\"\n        >\n          <markdown-editor\n            :value=\"commentText\"\n            :render-markdown-path=\"markdownPreviewPath\"\n            :markdown-docs-path=\"$options.constantOptions.markdownDocsPath\"\n            :autocomplete-data-sources=\"autocompleteDataSources\"\n            :form-field-props=\"formFieldProps\"\n            :add-spacing-classes=\"false\"\n            use-bottom-toolbar\n            supports-quick-actions\n            :autofocus=\"autofocus\"\n            @input=\"setCommentText\"\n            @keydown.meta.enter=\"submitForm\"\n            @keydown.ctrl.enter=\"submitForm\"\n            @keydown.esc.stop=\"cancelEditing\"\n          />\n        </comment-field-layout>\n        <div class=\"note-form-actions\" data-testid=\"work-item-comment-form-actions\">\n          <div v-if=\"showResolveDiscussionToggle\">\n            <label>\n              <gl-form-checkbox\n                v-model=\"toggleResolveChecked\"\n                data-testid=\"toggle-resolve-checkbox\"\n              >\n                {{ resolveCheckboxLabel }}\n              </gl-form-checkbox>\n            </label>\n          </div>\n          <gl-form-checkbox\n            v-if=\"showInternalNoteCheckbox\"\n            v-model=\"isNoteInternal\"\n            class=\"gl-mb-2\"\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          <div class=\"gl-flex gl-gap-3\">\n            <gl-button\n              category=\"primary\"\n              variant=\"confirm\"\n              data-testid=\"confirm-button\"\n              :disabled=\"!commentText.length\"\n              :loading=\"isSubmitting\"\n              @click=\"submitForm\"\n              >{{ commentButtonTextComputed }}\n            </gl-button>\n            <work-item-state-toggle\n              v-if=\"isNewDiscussion\"\n              :work-item-id=\"workItemId\"\n              :work-item-iid=\"workItemIid\"\n              :work-item-state=\"workItemState\"\n              :work-item-type=\"workItemType\"\n              :full-path=\"fullPath\"\n              :has-comment=\"Boolean(commentText.length)\"\n              :parent-id=\"parentId\"\n              can-update\n              @submit-comment=\"submitForm\"\n              @error=\"$emit('error', $event)\"\n            />\n            <gl-button\n              v-else\n              data-testid=\"cancel-button\"\n              category=\"primary\"\n              :loading=\"updateInProgress\"\n              @click=\"cancelEditing\"\n              >{{ $options.i18n.cancelButtonText }}\n            </gl-button>\n          </div>\n        </div>\n      </form>\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!./work_item_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!./work_item_comment_form.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./work_item_comment_form.vue?vue&type=template&id=b16c65be\"\nimport script from \"./work_item_comment_form.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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',{staticClass:\"timeline-discussion-body !gl-overflow-visible\"},[_c('div',{staticClass:\"note-body !gl-overflow-visible !gl-p-0\"},[_c('form',{staticClass:\"common-note-form gfm-form js-main-target-form new-note gl-grow\"},[_c('comment-field-layout',{attrs:{\"with-alert-container\":_vm.isWorkItemConfidential,\"is-internal-note\":_vm.isDiscussionInternal || _vm.isNoteInternal,\"note\":_vm.commentText,\"noteable-data\":_vm.getWorkItemData,\"noteable-type\":_vm.workItemTypeKey}},[_c('markdown-editor',{attrs:{\"value\":_vm.commentText,\"render-markdown-path\":_vm.markdownPreviewPath,\"markdown-docs-path\":_vm.$options.constantOptions.markdownDocsPath,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"form-field-props\":_vm.formFieldProps,\"add-spacing-classes\":false,\"use-bottom-toolbar\":\"\",\"supports-quick-actions\":\"\",\"autofocus\":_vm.autofocus},on:{\"input\":_vm.setCommentText,\"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.cancelEditing.apply(null, arguments)}]}})],1),_vm._v(\" \"),_c('div',{staticClass:\"note-form-actions\",attrs:{\"data-testid\":\"work-item-comment-form-actions\"}},[(_vm.showResolveDiscussionToggle)?_c('div',[_c('label',[_c('gl-form-checkbox',{attrs:{\"data-testid\":\"toggle-resolve-checkbox\"},model:{value:(_vm.toggleResolveChecked),callback:function ($$v) {_vm.toggleResolveChecked=$$v},expression:\"toggleResolveChecked\"}},[_vm._v(\"\\n              \"+_vm._s(_vm.resolveCheckboxLabel)+\"\\n            \")])],1)]):_vm._e(),_vm._v(\" \"),(_vm.showInternalNoteCheckbox)?_c('gl-form-checkbox',{staticClass:\"gl-mb-2\",attrs:{\"data-testid\":\"internal-note-checkbox\"},model:{value:(_vm.isNoteInternal),callback:function ($$v) {_vm.isNoteInternal=$$v},expression:\"isNoteInternal\"}},[_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(\" \"),_c('div',{staticClass:\"gl-flex gl-gap-3\"},[_c('gl-button',{attrs:{\"category\":\"primary\",\"variant\":\"confirm\",\"data-testid\":\"confirm-button\",\"disabled\":!_vm.commentText.length,\"loading\":_vm.isSubmitting},on:{\"click\":_vm.submitForm}},[_vm._v(_vm._s(_vm.commentButtonTextComputed)+\"\\n          \")]),_vm._v(\" \"),(_vm.isNewDiscussion)?_c('work-item-state-toggle',{attrs:{\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"work-item-state\":_vm.workItemState,\"work-item-type\":_vm.workItemType,\"full-path\":_vm.fullPath,\"has-comment\":Boolean(_vm.commentText.length),\"parent-id\":_vm.parentId,\"can-update\":\"\"},on:{\"submit-comment\":_vm.submitForm,\"error\":function($event){return _vm.$emit('error', $event)}}}):_c('gl-button',{attrs:{\"data-testid\":\"cancel-button\",\"category\":\"primary\",\"loading\":_vm.updateInProgress},on:{\"click\":_vm.cancelEditing}},[_vm._v(_vm._s(_vm.$options.i18n.cancelButtonText)+\"\\n          \")])],1)],1)],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { __ } from '~/locale';\nimport { TYPENAME_USER } from '~/graphql_shared/constants';\nimport { convertToGraphQLId, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport {\n  updateCacheAfterAddingAwardEmojiToNote,\n  updateCacheAfterRemovingAwardEmojiFromNote,\n} from '~/work_items/graphql/cache_utils';\nimport workItemNotesByIidQuery from '../graphql/notes/work_item_notes_by_iid.query.graphql';\nimport addAwardEmojiMutation from '../graphql/notes/work_item_note_add_award_emoji.mutation.graphql';\nimport removeAwardEmojiMutation from '../graphql/notes/work_item_note_remove_award_emoji.mutation.graphql';\n\nfunction awardedByCurrentUser(note) {\n  return (note.awardEmoji?.nodes ?? [])\n    .filter((award) => {\n      return getIdFromGraphQLId(award.user.id) === window.gon.current_user_id;\n    })\n    .map((award) => award.name);\n}\n\nexport function getMutation({ note, name }) {\n  if (awardedByCurrentUser(note).includes(name)) {\n    return {\n      mutation: removeAwardEmojiMutation,\n      mutationName: 'awardEmojiRemove',\n      errorMessage: __('Failed to remove emoji. Please try again'),\n    };\n  }\n  return {\n    mutation: addAwardEmojiMutation,\n    mutationName: 'awardEmojiAdd',\n    errorMessage: __('Failed to add emoji. Please try again'),\n  };\n}\n\nexport function optimisticAwardUpdate({ note, name, fullPath, workItemIid }) {\n  const { mutation } = getMutation({ note, name });\n\n  const currentUserId = window.gon.current_user_id;\n\n  return (store) => {\n    store.updateQuery(\n      {\n        query: workItemNotesByIidQuery,\n        variables: { fullPath, iid: workItemIid },\n      },\n      (sourceData) => {\n        const updatedNote = {\n          id: note.id,\n          awardEmoji: {\n            __typename: 'AwardEmoji',\n            name,\n            user: {\n              __typename: 'UserCore',\n              id: convertToGraphQLId(TYPENAME_USER, currentUserId),\n              name: null,\n            },\n          },\n        };\n\n        if (mutation === removeAwardEmojiMutation) {\n          return updateCacheAfterRemovingAwardEmojiFromNote(sourceData, updatedNote);\n        }\n        return updateCacheAfterAddingAwardEmojiToNote(sourceData, updatedNote);\n      },\n    );\n  };\n}\n","<script>\nimport {\n  GlButton,\n  GlTooltipDirective,\n  GlDisclosureDropdown,\n  GlDisclosureDropdownItem,\n  GlDisclosureDropdownGroup,\n} from '@gitlab/ui';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { __, sprintf } from '~/locale';\nimport UserAccessRoleBadge from '~/vue_shared/components/user_access_role_badge.vue';\nimport ReplyButton from '~/notes/components/note_actions/reply_button.vue';\nimport { getMutation, optimisticAwardUpdate } from '../../notes/award_utils';\n\nexport default {\n  name: 'WorkItemNoteActions',\n  i18n: {\n    editButtonText: __('Edit comment'),\n    moreActionsText: __('More actions'),\n    deleteNoteText: __('Delete comment'),\n    copyLinkText: __('Copy link'),\n    assignUserText: __('Assign to commenting user'),\n    unassignUserText: __('Unassign from commenting user'),\n    reportAbuseText: __('Report abuse'),\n    resolveThreadTitle: __('Resolve thread'),\n  },\n  components: {\n    EmojiPicker: () => import('~/emoji/components/picker.vue'),\n    GlButton,\n    GlDisclosureDropdown,\n    GlDisclosureDropdownItem,\n    GlDisclosureDropdownGroup,\n    ReplyButton,\n    UserAccessRoleBadge,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  props: {\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    workItemIid: {\n      type: String,\n      required: true,\n    },\n    note: {\n      type: Object,\n      required: true,\n    },\n    showReply: {\n      type: Boolean,\n      required: true,\n    },\n    showEdit: {\n      type: Boolean,\n      required: true,\n    },\n    noteId: {\n      type: String,\n      required: true,\n    },\n    showAwardEmoji: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    noteUrl: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    isAuthorAnAssignee: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    showAssignUnassign: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    canReportAbuse: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n    isWorkItemAuthor: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isAuthorContributor: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    maxAccessLevelOfAuthor: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    projectName: {\n      type: String,\n      required: false,\n      default: '',\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  },\n  computed: {\n    assignUserActionText() {\n      return this.isAuthorAnAssignee\n        ? this.$options.i18n.unassignUserText\n        : this.$options.i18n.assignUserText;\n    },\n    displayAuthorBadgeText() {\n      return sprintf(__('This user is the author of this %{workItemType}.'), {\n        workItemType: this.workItemType.toLowerCase(),\n      });\n    },\n    displayMemberBadgeText() {\n      return sprintf(__('This user has the %{access} role in the %{name} project.'), {\n        access: this.maxAccessLevelOfAuthor.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    resolveThreadTitle() {\n      return this.isResolved\n        ? __('Resolved by ') + this.resolvedBy.name\n        : this.$options.i18n.resolveThreadTitle;\n    },\n  },\n  methods: {\n    async setAwardEmoji(name) {\n      const { mutation, mutationName, errorMessage } = getMutation({ note: this.note, name });\n\n      try {\n        await this.$apollo.mutate({\n          mutation,\n          variables: {\n            awardableId: this.note.id,\n            name,\n          },\n          optimisticResponse: {\n            [mutationName]: {\n              errors: [],\n            },\n          },\n          update: optimisticAwardUpdate({\n            note: this.note,\n            name,\n            fullPath: this.fullPath,\n            workItemIid: this.workItemIid,\n          }),\n        });\n      } catch (error) {\n        this.$emit('error', errorMessage);\n        Sentry.captureException(error);\n      }\n    },\n    emitEvent(eventName) {\n      this.$emit(eventName);\n      this.$refs.dropdown.close();\n    },\n  },\n};\n</script>\n\n<template>\n  <div class=\"note-actions\">\n    <user-access-role-badge\n      v-if=\"isWorkItemAuthor\"\n      v-gl-tooltip\n      :title=\"displayAuthorBadgeText\"\n      class=\"gl-mr-3 gl-hidden sm:gl-block\"\n      data-testid=\"author-badge\"\n    >\n      {{ __('Author') }}\n    </user-access-role-badge>\n    <user-access-role-badge\n      v-if=\"maxAccessLevelOfAuthor\"\n      v-gl-tooltip\n      class=\"gl-mr-3 gl-hidden sm:gl-block\"\n      :title=\"displayMemberBadgeText\"\n      data-testid=\"max-access-level-badge\"\n    >\n      {{ maxAccessLevelOfAuthor }}\n    </user-access-role-badge>\n    <user-access-role-badge\n      v-else-if=\"isAuthorContributor\"\n      v-gl-tooltip\n      class=\"gl-mr-3 gl-hidden sm:gl-block\"\n      :title=\"displayContributorBadgeText\"\n      data-testid=\"contributor-badge\"\n    >\n      {{ __('Contributor') }}\n    </user-access-role-badge>\n    <gl-button\n      v-if=\"canResolve\"\n      ref=\"resolveButton\"\n      v-gl-tooltip.hover\n      data-testid=\"resolve-line-button\"\n      category=\"tertiary\"\n      class=\"note-action-button\"\n      :class=\"{ '!gl-text-success': isResolved }\"\n      :title=\"resolveThreadTitle\"\n      :aria-label=\"resolveThreadTitle\"\n      :icon=\"resolveIcon\"\n      :loading=\"isResolving\"\n      @click=\"$emit('resolve')\"\n    />\n    <emoji-picker\n      v-if=\"showAwardEmoji\"\n      toggle-class=\"add-reaction-button btn-default-tertiary\"\n      data-testid=\"note-emoji-button\"\n      @click=\"setAwardEmoji\"\n    />\n    <reply-button v-if=\"showReply\" ref=\"replyButton\" @startReplying=\"$emit('startReplying')\" />\n    <gl-button\n      v-if=\"showEdit\"\n      v-gl-tooltip\n      data-testid=\"note-actions-edit\"\n      data-track-action=\"click_button\"\n      data-track-label=\"edit_button\"\n      category=\"tertiary\"\n      icon=\"pencil\"\n      :title=\"$options.i18n.editButtonText\"\n      :aria-label=\"$options.i18n.editButtonText\"\n      @click=\"$emit('startEditing')\"\n    />\n    <gl-disclosure-dropdown\n      ref=\"dropdown\"\n      v-gl-tooltip\n      icon=\"ellipsis_v\"\n      text-sr-only\n      placement=\"bottom-end\"\n      :toggle-text=\"$options.i18n.moreActionsText\"\n      :title=\"$options.i18n.moreActionsText\"\n      category=\"tertiary\"\n      no-caret\n    >\n      <gl-disclosure-dropdown-item\n        data-testid=\"copy-link-action\"\n        :data-clipboard-text=\"noteUrl\"\n        @action=\"emitEvent('notifyCopyDone')\"\n      >\n        <template #list-item>\n          {{ $options.i18n.copyLinkText }}\n        </template>\n      </gl-disclosure-dropdown-item>\n      <gl-disclosure-dropdown-item\n        v-if=\"showAssignUnassign\"\n        data-testid=\"assign-note-action\"\n        @action=\"emitEvent('assignUser')\"\n      >\n        <template #list-item>\n          {{ assignUserActionText }}\n        </template>\n      </gl-disclosure-dropdown-item>\n      <gl-disclosure-dropdown-group v-if=\"canReportAbuse || showEdit\" bordered>\n        <gl-disclosure-dropdown-item\n          v-if=\"canReportAbuse\"\n          data-testid=\"abuse-note-action\"\n          @action=\"emitEvent('reportAbuse')\"\n        >\n          <template #list-item>\n            {{ $options.i18n.reportAbuseText }}\n          </template>\n        </gl-disclosure-dropdown-item>\n        <gl-disclosure-dropdown-item\n          v-if=\"showEdit\"\n          data-testid=\"delete-note-action\"\n          @action=\"emitEvent('deleteNote')\"\n        >\n          <template #list-item>\n            <span class=\"gl-text-red-500\">{{ $options.i18n.deleteNoteText }}</span>\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!./work_item_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!./work_item_note_actions.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./work_item_note_actions.vue?vue&type=template&id=d5fec4d6\"\nimport script from \"./work_item_note_actions.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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.isWorkItemAuthor)?_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,\"data-testid\":\"author-badge\"}},[_vm._v(\"\\n    \"+_vm._s(_vm.__('Author'))+\"\\n  \")]):_vm._e(),_vm._v(\" \"),(_vm.maxAccessLevelOfAuthor)?_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,\"data-testid\":\"max-access-level-badge\"}},[_vm._v(\"\\n    \"+_vm._s(_vm.maxAccessLevelOfAuthor)+\"\\n  \")]):(_vm.isAuthorContributor)?_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,\"data-testid\":\"contributor-badge\"}},[_vm._v(\"\\n    \"+_vm._s(_vm.__('Contributor'))+\"\\n  \")]):_vm._e(),_vm._v(\" \"),(_vm.canResolve)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}}],ref:\"resolveButton\",staticClass:\"note-action-button\",class:{ '!gl-text-success': _vm.isResolved },attrs:{\"data-testid\":\"resolve-line-button\",\"category\":\"tertiary\",\"title\":_vm.resolveThreadTitle,\"aria-label\":_vm.resolveThreadTitle,\"icon\":_vm.resolveIcon,\"loading\":_vm.isResolving},on:{\"click\":function($event){return _vm.$emit('resolve')}}}):_vm._e(),_vm._v(\" \"),(_vm.showAwardEmoji)?_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\",on:{\"startReplying\":function($event){return _vm.$emit('startReplying')}}}):_vm._e(),_vm._v(\" \"),(_vm.showEdit)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"data-testid\":\"note-actions-edit\",\"data-track-action\":\"click_button\",\"data-track-label\":\"edit_button\",\"category\":\"tertiary\",\"icon\":\"pencil\",\"title\":_vm.$options.i18n.editButtonText,\"aria-label\":_vm.$options.i18n.editButtonText},on:{\"click\":function($event){return _vm.$emit('startEditing')}}}):_vm._e(),_vm._v(\" \"),_c('gl-disclosure-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],ref:\"dropdown\",attrs:{\"icon\":\"ellipsis_v\",\"text-sr-only\":\"\",\"placement\":\"bottom-end\",\"toggle-text\":_vm.$options.i18n.moreActionsText,\"title\":_vm.$options.i18n.moreActionsText,\"category\":\"tertiary\",\"no-caret\":\"\"}},[_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"copy-link-action\",\"data-clipboard-text\":_vm.noteUrl},on:{\"action\":function($event){return _vm.emitEvent('notifyCopyDone')}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(\"\\n        \"+_vm._s(_vm.$options.i18n.copyLinkText)+\"\\n      \")]},proxy:true}])}),_vm._v(\" \"),(_vm.showAssignUnassign)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"assign-note-action\"},on:{\"action\":function($event){return _vm.emitEvent('assignUser')}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(\"\\n        \"+_vm._s(_vm.assignUserActionText)+\"\\n      \")]},proxy:true}],null,false,26466937)}):_vm._e(),_vm._v(\" \"),(_vm.canReportAbuse || _vm.showEdit)?_c('gl-disclosure-dropdown-group',{attrs:{\"bordered\":\"\"}},[(_vm.canReportAbuse)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"abuse-note-action\"},on:{\"action\":function($event){return _vm.emitEvent('reportAbuse')}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(\"\\n          \"+_vm._s(_vm.$options.i18n.reportAbuseText)+\"\\n        \")]},proxy:true}],null,false,3200492707)}):_vm._e(),_vm._v(\" \"),(_vm.showEdit)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"delete-note-action\"},on:{\"action\":function($event){return _vm.emitEvent('deleteNote')}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('span',{staticClass:\"gl-text-red-500\"},[_vm._v(_vm._s(_vm.$options.i18n.deleteNoteText))])]},proxy:true}],null,false,2848037124)}):_vm._e()],1):_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_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!./work_item_note_awards_list.vue?vue&type=script&lang=js\"","<script>\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport AwardsList from '~/vue_shared/components/awards_list.vue';\nimport { getMutation, optimisticAwardUpdate } from '../../notes/award_utils';\n\nexport default {\n  components: {\n    AwardsList,\n  },\n  props: {\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    workItemIid: {\n      type: String,\n      required: true,\n    },\n    note: {\n      type: Object,\n      required: true,\n    },\n    isModal: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  computed: {\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    hasAwardEmojiPermission() {\n      return this.note.userPermissions.awardEmoji;\n    },\n    currentUserId() {\n      return window.gon.current_user_id;\n    },\n  },\n  methods: {\n    async handleAward(name) {\n      if (!this.hasAwardEmojiPermission) {\n        return;\n      }\n\n      const { mutation, mutationName, errorMessage } = getMutation({ note: this.note, name });\n\n      try {\n        await this.$apollo.mutate({\n          mutation,\n          variables: {\n            awardableId: this.note.id,\n            name,\n          },\n          optimisticResponse: {\n            [mutationName]: {\n              errors: [],\n            },\n          },\n          update: optimisticAwardUpdate({\n            note: this.note,\n            name,\n            fullPath: this.fullPath,\n            workItemIid: this.workItemIid,\n          }),\n        });\n      } catch (error) {\n        this.$emit('error', errorMessage);\n        Sentry.captureException(error);\n      }\n    },\n  },\n};\n</script>\n\n<template>\n  <awards-list\n    v-if=\"awards.length\"\n    :awards=\"awards\"\n    :can-award-emoji=\"hasAwardEmojiPermission\"\n    :current-user-id=\"currentUserId\"\n    @award=\"handleAward($event)\"\n  />\n</template>\n","import { render, staticRenderFns } from \"./work_item_note_awards_list.vue?vue&type=template&id=7e57ce48\"\nimport script from \"./work_item_note_awards_list.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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 (_vm.awards.length)?_c('awards-list',{attrs:{\"awards\":_vm.awards,\"can-award-emoji\":_vm.hasAwardEmojiPermission,\"current-user-id\":_vm.currentUserId},on:{\"award\":function($event){return _vm.handleAward($event)}}}):_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_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!./work_item_note_body.vue?vue&type=script&lang=js\"","<script>\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { renderGFM } from '~/behaviors/markdown/render_gfm';\n\nexport default {\n  name: 'WorkItemNoteBody',\n  directives: {\n    SafeHtml,\n  },\n  props: {\n    note: {\n      type: Object,\n      required: true,\n    },\n    hasReplies: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  watch: {\n    'note.bodyHtml': {\n      immediate: true,\n      async handler(newVal, oldVal) {\n        if (newVal === oldVal) {\n          return;\n        }\n        await this.$nextTick();\n        this.renderGFM();\n      },\n    },\n  },\n  methods: {\n    renderGFM() {\n      renderGFM(this.$refs['note-body']);\n      gl?.lazyLoader?.searchLazyImages();\n    },\n  },\n  safeHtmlConfig: {\n    ADD_TAGS: ['use', 'gl-emoji', 'copy-code'],\n  },\n};\n</script>\n\n<template>\n  <div ref=\"note-body\">\n    <div\n      v-safe-html:[$options.safeHtmlConfig]=\"note.bodyHtml\"\n      class=\"note-text md\"\n      data-testid=\"work-item-note-body\"\n    ></div>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_note_body.vue?vue&type=template&id=db28e5b0\"\nimport script from \"./work_item_note_body.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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\"},[_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(_vm.note.bodyHtml),expression:\"note.bodyHtml\",arg:_vm.$options.safeHtmlConfig}],staticClass:\"note-text md\",attrs:{\"data-testid\":\"work-item-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!./work_item_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!./work_item_note.vue?vue&type=script&lang=js\"","<script>\nimport { isEmpty } from 'lodash';\nimport { GlAvatarLink, GlAvatar } from '@gitlab/ui';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport { __ } from '~/locale';\nimport Tracking from '~/tracking';\nimport { updateDraft, clearDraft } from '~/lib/utils/autosave';\nimport { scrollToTargetOnResize } from '~/lib/utils/resize_observer';\nimport { renderMarkdown } from '~/notes/utils';\nimport { getLocationHash } from '~/lib/utils/url_utility';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport EditedAt from '~/issues/show/components/edited.vue';\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\nimport NoteHeader from '~/notes/components/note_header.vue';\nimport { i18n, TRACKING_CATEGORY_SHOW } from '../../constants';\nimport updateWorkItemMutation from '../../graphql/update_work_item.mutation.graphql';\nimport updateWorkItemNoteMutation from '../../graphql/notes/update_work_item_note.mutation.graphql';\nimport workItemByIidQuery from '../../graphql/work_item_by_iid.query.graphql';\nimport { isAssigneesWidget } from '../../utils';\nimport WorkItemCommentForm from './work_item_comment_form.vue';\nimport NoteActions from './work_item_note_actions.vue';\nimport WorkItemNoteAwardsList from './work_item_note_awards_list.vue';\nimport NoteBody from './work_item_note_body.vue';\n\nexport default {\n  name: 'WorkItemNoteThread',\n  components: {\n    WorkItemNoteAwardsList,\n    TimelineEntryItem,\n    NoteBody,\n    NoteHeader,\n    NoteActions,\n    GlAvatar,\n    GlAvatarLink,\n    WorkItemCommentForm,\n    EditedAt,\n  },\n  mixins: [Tracking.mixin()],\n  props: {\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    workItemIid: {\n      type: String,\n      required: true,\n    },\n    note: {\n      type: Object,\n      required: true,\n    },\n    isFirstNote: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    hasReplies: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n    isModal: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    markdownPreviewPath: {\n      type: String,\n      required: true,\n    },\n    autocompleteDataSources: {\n      type: Object,\n      required: false,\n      default: () => ({}),\n    },\n    assignees: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n    canSetWorkItemMetadata: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isDiscussionResolved: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isDiscussionResolvable: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isResolving: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      isEditing: false,\n      workItem: {},\n    };\n  },\n  computed: {\n    tracking() {\n      return {\n        category: TRACKING_CATEGORY_SHOW,\n        label: 'work_item_note_actions',\n        property: `type_${this.workItemType}`,\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    externalAuthor() {\n      return this.note?.externalAuthor;\n    },\n    entryClass() {\n      return {\n        'note note-wrapper note-comment': true,\n        target: this.isTarget,\n        'inner-target': this.isTarget && !this.isFirstNote,\n        'internal-note': this.note.internal,\n      };\n    },\n    showReply() {\n      return this.note.userPermissions.createNote && this.isFirstNote;\n    },\n    canResolve() {\n      return this.note.userPermissions.resolveNote && this.isFirstNote && this.hasReplies;\n    },\n    noteHeaderClass() {\n      return {\n        'note-header': true,\n      };\n    },\n    autosaveKey() {\n      // eslint-disable-next-line @gitlab/require-i18n-strings\n      return `${this.note.id}-comment`;\n    },\n    lastEditedBy() {\n      return this.note.lastEditedBy;\n    },\n    hasAdminPermission() {\n      return this.note.userPermissions.adminNote;\n    },\n    noteAnchorId() {\n      return `note_${getIdFromGraphQLId(this.note.id)}`;\n    },\n    isTarget() {\n      return this.targetNoteHash === this.noteAnchorId;\n    },\n    targetNoteHash() {\n      return getLocationHash();\n    },\n    noteUrl() {\n      const routeParamType = this.$route?.params?.type;\n      if (routeParamType && !this.note.url.includes(routeParamType)) {\n        return this.note.url.replace('work_items', routeParamType);\n      }\n      return this.note.url;\n    },\n    hasAwardEmojiPermission() {\n      return this.note.userPermissions.awardEmoji;\n    },\n    isAuthorAnAssignee() {\n      return Boolean(this.assignees.filter((assignee) => assignee.id === this.author.id).length);\n    },\n    currentUserId() {\n      return window.gon.current_user_id;\n    },\n    isCurrentUserAuthorOfNote() {\n      return this.authorId === this.currentUserId;\n    },\n    isWorkItemAuthor() {\n      return getIdFromGraphQLId(this.workItem.author?.id) === this.authorId;\n    },\n    projectName() {\n      return this.workItem.namespace?.name;\n    },\n    isWorkItemConfidential() {\n      return this.workItem.confidential;\n    },\n    discussionResolvedBy() {\n      return this.note.discussion.resolvedBy;\n    },\n  },\n  mounted() {\n    if (this.isTarget) {\n      scrollToTargetOnResize();\n    }\n  },\n  apollo: {\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      error() {\n        this.$emit('error', i18n.fetchError);\n      },\n    },\n  },\n  methods: {\n    showReplyForm() {\n      this.$emit('startReplying');\n      this.$emit('startEditing');\n    },\n    startEditing() {\n      this.$emit('startEditing');\n      this.isEditing = true;\n      updateDraft(this.autosaveKey, this.note.body);\n    },\n    async updateNote({ commentText }) {\n      try {\n        this.isEditing = false;\n        await this.$apollo.mutate({\n          mutation: updateWorkItemNoteMutation,\n          variables: {\n            input: {\n              id: this.note.id,\n              body: commentText,\n            },\n          },\n          optimisticResponse: {\n            updateNote: {\n              errors: [],\n              note: {\n                ...this.note,\n                bodyHtml: renderMarkdown(commentText),\n              },\n            },\n          },\n        });\n        clearDraft(this.autosaveKey);\n      } catch (error) {\n        updateDraft(this.autosaveKey, commentText);\n        this.isEditing = true;\n        this.$emit('error', __('Something went wrong when updating a comment. Please try again'));\n        Sentry.captureException(error);\n      }\n    },\n    getNewAssigneesAndWidget() {\n      let newAssignees = [];\n      if (this.isAuthorAnAssignee) {\n        newAssignees = this.assignees.filter(({ id }) => id !== this.author.id);\n      } else {\n        newAssignees = [...this.assignees, this.author];\n      }\n\n      const assigneesWidgetIndex = this.workItem.widgets.findIndex(isAssigneesWidget);\n\n      const editedWorkItemWidgets = [...this.workItem.widgets];\n\n      editedWorkItemWidgets[assigneesWidgetIndex] = {\n        ...editedWorkItemWidgets[assigneesWidgetIndex],\n        assignees: {\n          nodes: newAssignees,\n        },\n      };\n\n      return {\n        newAssignees,\n        editedWorkItemWidgets,\n      };\n    },\n    notifyCopyDone() {\n      if (this.isModal) {\n        navigator.clipboard.writeText(this.noteUrl);\n      }\n      toast(__('Link copied to clipboard.'));\n    },\n    async assignUserAction() {\n      const { newAssignees, editedWorkItemWidgets } = this.getNewAssigneesAndWidget();\n\n      try {\n        await this.$apollo.mutate({\n          mutation: updateWorkItemMutation,\n          variables: {\n            input: {\n              id: this.workItemId,\n              assigneesWidget: {\n                assigneeIds: newAssignees.map(({ id }) => id),\n              },\n            },\n          },\n          optimisticResponse: {\n            workItemUpdate: {\n              errors: [],\n              workItem: {\n                ...this.workItem,\n                widgets: editedWorkItemWidgets,\n              },\n            },\n          },\n        });\n        this.track(`${this.isAuthorAnAssignee ? 'unassigned_user' : 'assigned_user'}`);\n      } catch (error) {\n        this.$emit('error', i18n.updateError);\n        Sentry.captureException(error);\n      }\n    },\n    cancelEditing() {\n      this.isEditing = false;\n      this.$emit('cancelEditing');\n    },\n  },\n};\n</script>\n\n<template>\n  <timeline-entry-item :id=\"noteAnchorId\" :class=\"entryClass\">\n    <div :key=\"note.id\" class=\"timeline-avatar gl-float-left\">\n      <gl-avatar-link\n        :href=\"author.webUrl\"\n        :data-user-id=\"authorId\"\n        :data-username=\"author.username\"\n        class=\"js-user-link\"\n      >\n        <gl-avatar\n          :src=\"author.avatarUrl\"\n          :entity-name=\"author.username\"\n          :alt=\"author.name\"\n          :size=\"32\"\n        />\n      </gl-avatar-link>\n    </div>\n    <div class=\"timeline-content\">\n      <div data-testid=\"note-wrapper\">\n        <div :class=\"noteHeaderClass\">\n          <note-header\n            :author=\"author\"\n            :created-at=\"note.createdAt\"\n            :note-id=\"note.id\"\n            :note-url=\"noteUrl\"\n            :is-internal-note=\"note.internal\"\n            :email-participant=\"externalAuthor\"\n          >\n            <span v-if=\"note.createdAt\" class=\"gl-hidden sm:gl-inline\">&middot;</span>\n          </note-header>\n          <div class=\"gl-inline-flex\">\n            <note-actions\n              v-if=\"!isEditing\"\n              :full-path=\"fullPath\"\n              :show-award-emoji=\"hasAwardEmojiPermission\"\n              :work-item-iid=\"workItemIid\"\n              :note=\"note\"\n              :note-url=\"noteUrl\"\n              :show-reply=\"showReply\"\n              :show-edit=\"hasAdminPermission\"\n              :note-id=\"note.id\"\n              :is-author-an-assignee=\"isAuthorAnAssignee\"\n              :show-assign-unassign=\"canSetWorkItemMetadata && hasAuthor\"\n              :can-report-abuse=\"!isCurrentUserAuthorOfNote\"\n              :is-work-item-author=\"isWorkItemAuthor\"\n              :work-item-type=\"workItemType\"\n              :is-author-contributor=\"note.authorIsContributor\"\n              :max-access-level-of-author=\"note.maxAccessLevelOfAuthor\"\n              :project-name=\"projectName\"\n              :can-resolve=\"canResolve\"\n              :resolvable=\"isDiscussionResolvable\"\n              :is-resolved=\"isDiscussionResolved\"\n              :is-resolving=\"isResolving\"\n              :resolved-by=\"discussionResolvedBy\"\n              @startReplying=\"showReplyForm\"\n              @startEditing=\"startEditing\"\n              @resolve=\"$emit('resolve')\"\n              @error=\"($event) => $emit('error', $event)\"\n              @notifyCopyDone=\"notifyCopyDone\"\n              @deleteNote=\"$emit('deleteNote')\"\n              @assignUser=\"assignUserAction\"\n              @reportAbuse=\"$emit('reportAbuse')\"\n            />\n          </div>\n        </div>\n        <div class=\"note-body\">\n          <work-item-comment-form\n            v-if=\"isEditing\"\n            :work-item-type=\"workItemType\"\n            :aria-label=\"__('Edit comment')\"\n            :autosave-key=\"autosaveKey\"\n            :initial-value=\"note.body\"\n            :comment-button-text=\"__('Save comment')\"\n            :autocomplete-data-sources=\"autocompleteDataSources\"\n            :markdown-preview-path=\"markdownPreviewPath\"\n            :work-item-id=\"workItemId\"\n            :autofocus=\"isEditing\"\n            :is-work-item-confidential=\"isWorkItemConfidential\"\n            :is-discussion-resolved=\"isDiscussionResolved\"\n            :is-discussion-resolvable=\"isDiscussionResolvable\"\n            :has-replies=\"hasReplies\"\n            :full-path=\"fullPath\"\n            class=\"gl-mt-3\"\n            @cancelEditing=\"cancelEditing\"\n            @toggleResolveDiscussion=\"$emit('resolve')\"\n            @submitForm=\"updateNote\"\n          />\n          <div v-else class=\"timeline-discussion-body\">\n            <note-body ref=\"noteBody\" :note=\"note\" :has-replies=\"hasReplies\" />\n          </div>\n          <edited-at\n            v-if=\"note.lastEditedBy && !isEditing\"\n            :updated-at=\"note.lastEditedAt\"\n            :updated-by-name=\"lastEditedBy.name\"\n            :updated-by-path=\"lastEditedBy.webPath\"\n            class=\"gl-mt-5\"\n            :class=\"isFirstNote ? '' : 'gl-pl-7'\"\n          />\n\n          <div class=\"note-awards\" :class=\"isFirstNote ? '' : 'gl-pl-7'\">\n            <work-item-note-awards-list\n              :full-path=\"fullPath\"\n              :note=\"note\"\n              :work-item-iid=\"workItemIid\"\n              :is-modal=\"isModal\"\n            />\n          </div>\n        </div>\n      </div>\n    </div>\n  </timeline-entry-item>\n</template>\n","import { render, staticRenderFns } from \"./work_item_note.vue?vue&type=template&id=eca97592\"\nimport script from \"./work_item_note.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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',{class:_vm.entryClass,attrs:{\"id\":_vm.noteAnchorId}},[_c('div',{key:_vm.note.id,staticClass:\"timeline-avatar gl-float-left\"},[_c('gl-avatar-link',{staticClass:\"js-user-link\",attrs:{\"href\":_vm.author.webUrl,\"data-user-id\":_vm.authorId,\"data-username\":_vm.author.username}},[_c('gl-avatar',{attrs:{\"src\":_vm.author.avatarUrl,\"entity-name\":_vm.author.username,\"alt\":_vm.author.name,\"size\":32}})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"timeline-content\"},[_c('div',{attrs:{\"data-testid\":\"note-wrapper\"}},[_c('div',{class:_vm.noteHeaderClass},[_c('note-header',{attrs:{\"author\":_vm.author,\"created-at\":_vm.note.createdAt,\"note-id\":_vm.note.id,\"note-url\":_vm.noteUrl,\"is-internal-note\":_vm.note.internal,\"email-participant\":_vm.externalAuthor}},[(_vm.note.createdAt)?_c('span',{staticClass:\"gl-hidden sm:gl-inline\"},[_vm._v(\"·\")]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"gl-inline-flex\"},[(!_vm.isEditing)?_c('note-actions',{attrs:{\"full-path\":_vm.fullPath,\"show-award-emoji\":_vm.hasAwardEmojiPermission,\"work-item-iid\":_vm.workItemIid,\"note\":_vm.note,\"note-url\":_vm.noteUrl,\"show-reply\":_vm.showReply,\"show-edit\":_vm.hasAdminPermission,\"note-id\":_vm.note.id,\"is-author-an-assignee\":_vm.isAuthorAnAssignee,\"show-assign-unassign\":_vm.canSetWorkItemMetadata && _vm.hasAuthor,\"can-report-abuse\":!_vm.isCurrentUserAuthorOfNote,\"is-work-item-author\":_vm.isWorkItemAuthor,\"work-item-type\":_vm.workItemType,\"is-author-contributor\":_vm.note.authorIsContributor,\"max-access-level-of-author\":_vm.note.maxAccessLevelOfAuthor,\"project-name\":_vm.projectName,\"can-resolve\":_vm.canResolve,\"resolvable\":_vm.isDiscussionResolvable,\"is-resolved\":_vm.isDiscussionResolved,\"is-resolving\":_vm.isResolving,\"resolved-by\":_vm.discussionResolvedBy},on:{\"startReplying\":_vm.showReplyForm,\"startEditing\":_vm.startEditing,\"resolve\":function($event){return _vm.$emit('resolve')},\"error\":($event) => _vm.$emit('error', $event),\"notifyCopyDone\":_vm.notifyCopyDone,\"deleteNote\":function($event){return _vm.$emit('deleteNote')},\"assignUser\":_vm.assignUserAction,\"reportAbuse\":function($event){return _vm.$emit('reportAbuse')}}}):_vm._e()],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"note-body\"},[(_vm.isEditing)?_c('work-item-comment-form',{staticClass:\"gl-mt-3\",attrs:{\"work-item-type\":_vm.workItemType,\"aria-label\":_vm.__('Edit comment'),\"autosave-key\":_vm.autosaveKey,\"initial-value\":_vm.note.body,\"comment-button-text\":_vm.__('Save comment'),\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"markdown-preview-path\":_vm.markdownPreviewPath,\"work-item-id\":_vm.workItemId,\"autofocus\":_vm.isEditing,\"is-work-item-confidential\":_vm.isWorkItemConfidential,\"is-discussion-resolved\":_vm.isDiscussionResolved,\"is-discussion-resolvable\":_vm.isDiscussionResolvable,\"has-replies\":_vm.hasReplies,\"full-path\":_vm.fullPath},on:{\"cancelEditing\":_vm.cancelEditing,\"toggleResolveDiscussion\":function($event){return _vm.$emit('resolve')},\"submitForm\":_vm.updateNote}}):_c('div',{staticClass:\"timeline-discussion-body\"},[_c('note-body',{ref:\"noteBody\",attrs:{\"note\":_vm.note,\"has-replies\":_vm.hasReplies}})],1),_vm._v(\" \"),(_vm.note.lastEditedBy && !_vm.isEditing)?_c('edited-at',{staticClass:\"gl-mt-5\",class:_vm.isFirstNote ? '' : 'gl-pl-7',attrs:{\"updated-at\":_vm.note.lastEditedAt,\"updated-by-name\":_vm.lastEditedBy.name,\"updated-by-path\":_vm.lastEditedBy.webPath}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"note-awards\",class:_vm.isFirstNote ? '' : 'gl-pl-7'},[_c('work-item-note-awards-list',{attrs:{\"full-path\":_vm.fullPath,\"note\":_vm.note,\"work-item-iid\":_vm.workItemIid,\"is-modal\":_vm.isModal}})],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_note_replying.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.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_note_replying.vue?vue&type=script&lang=js\"","<script>\nimport { GlAvatar } from '@gitlab/ui';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport NoteHeader from '~/notes/components/note_header.vue';\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\n\nexport default {\n  name: 'WorkItemNoteReplying',\n  components: {\n    TimelineEntryItem,\n    GlAvatar,\n    NoteHeader,\n  },\n  directives: {\n    SafeHtml,\n  },\n  safeHtmlConfig: {\n    ADD_TAGS: ['use', 'gl-emoji', 'copy-code'],\n  },\n  constantOptions: {\n    avatarUrl: window.gon.current_user_avatar_url,\n  },\n  props: {\n    body: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    isInternalNote: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  computed: {\n    author() {\n      return {\n        avatarUrl: window.gon.current_user_avatar_url,\n        id: window.gon.current_user_id,\n        name: window.gon.current_user_fullname,\n        username: window.gon.current_username,\n      };\n    },\n    entryClass() {\n      return {\n        'note note-wrapper note-comment being-posted': true,\n        'internal-note': this.isInternalNote,\n      };\n    },\n  },\n};\n</script>\n\n<template>\n  <timeline-entry-item :class=\"entryClass\">\n    <div class=\"timeline-avatar gl-float-left\">\n      <gl-avatar :src=\"$options.constantOptions.avatarUrl\" :size=\"32\" />\n    </div>\n    <div class=\"timeline-content\" data-testid=\"note-wrapper\">\n      <div class=\"note-header\">\n        <note-header :author=\"author\" />\n      </div>\n      <div ref=\"note-body\" class=\"timeline-discussion-body\">\n        <div class=\"note-body\">\n          <div\n            v-safe-html:[$options.safeHtmlConfig]=\"body\"\n            class=\"note-text md\"\n            data-testid=\"work-item-note-body\"\n          ></div>\n        </div>\n      </div>\n    </div>\n  </timeline-entry-item>\n</template>\n","import { render, staticRenderFns } from \"./work_item_note_replying.vue?vue&type=template&id=32bde9b2\"\nimport script from \"./work_item_note_replying.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_note_replying.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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',{class:_vm.entryClass},[_c('div',{staticClass:\"timeline-avatar gl-float-left\"},[_c('gl-avatar',{attrs:{\"src\":_vm.$options.constantOptions.avatarUrl,\"size\":32}})],1),_vm._v(\" \"),_c('div',{staticClass:\"timeline-content\",attrs:{\"data-testid\":\"note-wrapper\"}},[_c('div',{staticClass:\"note-header\"},[_c('note-header',{attrs:{\"author\":_vm.author}})],1),_vm._v(\" \"),_c('div',{ref:\"note-body\",staticClass:\"timeline-discussion-body\"},[_c('div',{staticClass:\"note-body\"},[_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(_vm.body),expression:\"body\",arg:_vm.$options.safeHtmlConfig}],staticClass:\"note-text md\",attrs:{\"data-testid\":\"work-item-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!./work_item_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!./work_item_note_signed_out.vue?vue&type=script&lang=js\"","<script>\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { __, sprintf } from '~/locale';\n\nexport default {\n  directives: {\n    SafeHtml,\n  },\n  inject: ['registerPath', 'signInPath'],\n  computed: {\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.registerPath}\">`,\n          startTagSignIn: `<a href=\"${this.signInPath}\">`,\n          endRegisterTag: '</a>',\n          endSignInTag: '</a>',\n        },\n        false,\n      );\n    },\n  },\n};\n</script>\n\n<template>\n  <div\n    v-safe-html=\"signedOutText\"\n    class=\"disabled-comment gl-relative gl-text-center gl-text-subtle\"\n  ></div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_note_signed_out.vue?vue&type=template&id=7d66f180\"\nimport script from \"./work_item_note_signed_out.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.signedOutText),expression:\"signedOutText\"}],staticClass:\"disabled-comment gl-relative 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!./work_item_comment_locked.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.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_comment_locked.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink, GlIcon } from '@gitlab/ui';\nimport { __, sprintf } from '~/locale';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { issuableTypeText } from '~/issues/constants';\nimport { WORK_ITEM_TYPE_VALUE_TASK } from '~/work_items/constants';\n\nexport default {\n  components: {\n    GlIcon,\n    GlLink,\n  },\n  props: {\n    workItemType: {\n      required: false,\n      type: String,\n      default: WORK_ITEM_TYPE_VALUE_TASK,\n    },\n    isProjectArchived: {\n      required: false,\n      type: Boolean,\n      default: false,\n    },\n  },\n  constantOptions: {\n    archivedProjectDocsPath: helpPagePath('user/project/working_with_projects', {\n      anchor: 'archive-a-project',\n    }),\n    lockedIssueDocsPath: helpPagePath('user/discussions/index.md', {\n      anchor: 'prevent-comments-by-locking-the-discussion',\n    }),\n    projectArchivedWarning: __('This project is archived and cannot be commented on.'),\n  },\n  computed: {\n    issuableDisplayName() {\n      return this.workItemType.replace(/_/g, ' ');\n    },\n    lockedIssueWarning() {\n      return sprintf(__('The discussion in this %{noteableTypeText} is locked.'), {\n        noteableTypeText: this.noteableTypeText,\n      });\n    },\n    noteableTypeText() {\n      return issuableTypeText[this.workItemType];\n    },\n  },\n};\n</script>\n\n<template>\n  <div class=\"issuable-note-warning gl-relative gl-rounded-base gl-py-4\">\n    <gl-icon name=\"lock\" class=\"gl-mr-2\" />\n    <template v-if=\"isProjectArchived\">\n      {{ $options.constantOptions.projectArchivedWarning }}\n      <gl-link :href=\"$options.constantOptions.archivedProjectDocsPath\" class=\"learn-more\">\n        {{ __('Learn more.') }}\n      </gl-link>\n    </template>\n\n    <template v-else>\n      {{ lockedIssueWarning }}\n      {{ __('Only project members can comment.') }}\n      <gl-link :href=\"$options.constantOptions.lockedIssueDocsPath\" class=\"learn-more\">\n        {{ __('Learn more.') }}\n      </gl-link>\n    </template>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_comment_locked.vue?vue&type=template&id=6e58e013\"\nimport script from \"./work_item_comment_locked.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_comment_locked.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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 gl-relative gl-rounded-base gl-py-4\"},[_c('gl-icon',{staticClass:\"gl-mr-2\",attrs:{\"name\":\"lock\"}}),_vm._v(\" \"),(_vm.isProjectArchived)?[_vm._v(\"\\n    \"+_vm._s(_vm.$options.constantOptions.projectArchivedWarning)+\"\\n    \"),_c('gl-link',{staticClass:\"learn-more\",attrs:{\"href\":_vm.$options.constantOptions.archivedProjectDocsPath}},[_vm._v(\"\\n      \"+_vm._s(_vm.__('Learn more.'))+\"\\n    \")])]:[_vm._v(\"\\n    \"+_vm._s(_vm.lockedIssueWarning)+\"\\n    \"+_vm._s(_vm.__('Only project members can comment.'))+\"\\n    \"),_c('gl-link',{staticClass:\"learn-more\",attrs:{\"href\":_vm.$options.constantOptions.lockedIssueDocsPath}},[_vm._v(\"\\n      \"+_vm._s(_vm.__('Learn more.'))+\"\\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!./work_item_add_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!./work_item_add_note.vue?vue&type=script&lang=js\"","<script>\nimport { GlAlert } from '@gitlab/ui';\nimport { uniqueId } from 'lodash';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport Tracking from '~/tracking';\nimport { ASC } from '~/notes/constants';\nimport { __ } from '~/locale';\nimport { clearDraft } from '~/lib/utils/autosave';\nimport { findWidget } from '~/issues/list/utils';\nimport DiscussionReplyPlaceholder from '~/notes/components/discussion_reply_placeholder.vue';\nimport ResolveDiscussionButton from '~/notes/components/discussion_resolve_button.vue';\nimport createNoteMutation from '../../graphql/notes/create_work_item_note.mutation.graphql';\nimport workItemByIidQuery from '../../graphql/work_item_by_iid.query.graphql';\nimport { TRACKING_CATEGORY_SHOW, WIDGET_TYPE_EMAIL_PARTICIPANTS, i18n } from '../../constants';\nimport WorkItemNoteSignedOut from './work_item_note_signed_out.vue';\nimport WorkItemCommentLocked from './work_item_comment_locked.vue';\nimport WorkItemCommentForm from './work_item_comment_form.vue';\n\nexport default {\n  constantOptions: {\n    avatarUrl: window.gon.current_user_avatar_url,\n  },\n  components: {\n    DiscussionReplyPlaceholder,\n    GlAlert,\n    WorkItemNoteSignedOut,\n    WorkItemCommentLocked,\n    WorkItemCommentForm,\n    ResolveDiscussionButton,\n  },\n  mixins: [Tracking.mixin()],\n  props: {\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    workItemIid: {\n      type: String,\n      required: true,\n    },\n    discussionId: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    autofocus: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    addPadding: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n    sortOrder: {\n      type: String,\n      required: false,\n      default: ASC,\n    },\n    markdownPreviewPath: {\n      type: String,\n      required: true,\n    },\n    autocompleteDataSources: {\n      type: Object,\n      required: false,\n      default: () => ({}),\n    },\n    isDiscussionLocked: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isNewDiscussion: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isInternalThread: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isWorkItemConfidential: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isDiscussionResolved: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isDiscussionResolvable: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isResolving: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    hasReplies: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    parentId: {\n      type: String,\n      required: false,\n      default: null,\n    },\n  },\n  data() {\n    return {\n      addNoteKey: this.generateUniqueId(),\n      errorMessages: '',\n      messages: '',\n      workItem: {},\n      isEditing: this.isNewDiscussion,\n      isSubmitting: false,\n      isSubmittingWithKeydown: false,\n    };\n  },\n  apollo: {\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      error() {\n        this.$emit('error', i18n.fetchError);\n      },\n    },\n  },\n  computed: {\n    isLoading() {\n      return this.$apollo.queries.workItem.loading;\n    },\n    signedIn() {\n      return Boolean(window.gon.current_user_id);\n    },\n    autosaveKey() {\n      // eslint-disable-next-line @gitlab/require-i18n-strings\n      return this.discussionId ? `${this.discussionId}-comment` : `${this.workItemId}-comment`;\n    },\n    tracking() {\n      return {\n        category: TRACKING_CATEGORY_SHOW,\n        label: 'item_comment',\n        property: `type_${this.workItemType}`,\n      };\n    },\n    timelineEntryInnerClass() {\n      return {\n        'timeline-entry-inner': this.isNewDiscussion,\n      };\n    },\n    timelineContentClass() {\n      return {\n        'timeline-content': true,\n        '!gl-border-0 !gl-pl-0': !this.addPadding,\n      };\n    },\n    parentClass() {\n      return {\n        'gl-relative gl-flex gl-items-start gl-flex-wrap sm:gl-flex-nowrap': !this.isEditing,\n      };\n    },\n    isProjectArchived() {\n      return this.workItem.archived;\n    },\n    canCreateNote() {\n      return this.workItem.userPermissions?.createNote;\n    },\n    workItemState() {\n      return this.workItem.state;\n    },\n    commentButtonText() {\n      return this.isNewDiscussion ? __('Comment') : __('Reply');\n    },\n    timelineEntryClass() {\n      return {\n        'timeline-entry note-form': this.isNewDiscussion,\n        // eslint-disable-next-line @gitlab/require-i18n-strings\n        '!gl-pb-5 note note-wrapper note-comment discussion-reply-holder clearfix':\n          !this.isNewDiscussion,\n        'is-replying': this.isEditing,\n        'internal-note': this.isInternalThread,\n      };\n    },\n    resolveDiscussionTitle() {\n      return this.isDiscussionResolved ? __('Unresolve thread') : __('Resolve thread');\n    },\n    hasEmailParticipantsWidget() {\n      return Boolean(findWidget(WIDGET_TYPE_EMAIL_PARTICIPANTS, this.workItem));\n    },\n  },\n  watch: {\n    autofocus: {\n      immediate: true,\n      handler(focus) {\n        if (focus) {\n          this.isEditing = true;\n        }\n      },\n    },\n  },\n  methods: {\n    generateUniqueId() {\n      // used to rerender work-item-comment-form so the text in the textarea is cleared\n      return uniqueId(`work-item-add-note-${this.workItemId}-`);\n    },\n    async updateWorkItem({ commentText, isNoteInternal = false }) {\n      this.isSubmitting = true;\n      this.$emit('replying', commentText);\n      try {\n        this.track('add_work_item_comment');\n\n        const { data } = await this.$apollo.mutate({\n          mutation: createNoteMutation,\n          variables: {\n            input: {\n              noteableId: this.workItemId,\n              body: commentText,\n              discussionId: this.discussionId || null,\n              internal: isNoteInternal,\n            },\n          },\n          update: this.onNoteUpdate,\n        });\n        const { errorMessages, messages } = data.createNote.quickActionsStatus;\n\n        this.errorMessages = errorMessages?.join(' ');\n        this.messages = messages?.join(' ');\n        this.$emit('replied');\n        clearDraft(this.autosaveKey);\n        this.cancelEditing();\n      } catch (error) {\n        this.$emit('error', error.message);\n        Sentry.captureException(error);\n      } finally {\n        this.isSubmitting = false;\n      }\n    },\n    cancelEditing() {\n      this.isEditing = this.isNewDiscussion;\n      this.addNoteKey = this.generateUniqueId();\n      this.$emit('cancelEditing');\n    },\n    showReplyForm() {\n      this.isEditing = true;\n      this.$emit('startReplying');\n    },\n    onNoteUpdate(store, createNoteData) {\n      const numErrors = createNoteData.data?.createNote?.errors?.length;\n\n      if (numErrors) {\n        const { errors } = createNoteData.data.createNote;\n\n        // TODO: https://gitlab.com/gitlab-org/gitlab/-/issues/503600\n        // Refetching widgets as a temporary solution for dynamic updates\n        // of the sidebar on changing the work item type\n        if (numErrors === 2 && errors[1].includes('\"type\"')) {\n          this.$apollo.queries.workItem.refetch();\n          return;\n        }\n\n        // TODO: https://gitlab.com/gitlab-org/gitlab/-/issues/346557\n        // When a note only contains quick actions,\n        // additional \"helpful\" messages are embedded in the errors field.\n        // For instance, a note solely composed of \"/assign @foobar\" would\n        // return a message \"Commands only Assigned @root.\" as an error on creation\n        // even though the quick action successfully executed.\n        if (\n          numErrors === 2 &&\n          errors[0].includes('Commands only') &&\n          errors[1].includes('Command names')\n        ) {\n          return;\n        }\n\n        throw new Error(createNoteData.data?.createNote?.errors[0]);\n      }\n    },\n  },\n};\n</script>\n\n<template>\n  <li :class=\"timelineEntryClass\">\n    <work-item-note-signed-out v-if=\"!signedIn\" />\n    <work-item-comment-locked\n      v-else-if=\"!isLoading && !canCreateNote\"\n      :work-item-type=\"workItemType\"\n      :is-project-archived=\"isProjectArchived\"\n    />\n    <div v-else :class=\"timelineEntryInnerClass\">\n      <div :class=\"timelineContentClass\">\n        <gl-alert\n          v-if=\"messages\"\n          class=\"gl-mb-2\"\n          data-testid=\"success-alert\"\n          @dismiss=\"messages = ''\"\n        >\n          {{ messages }}\n        </gl-alert>\n        <gl-alert\n          v-if=\"errorMessages\"\n          class=\"gl-mb-2\"\n          variant=\"danger\"\n          data-testid=\"error-alert\"\n          @dismiss=\"errorMessages = ''\"\n        >\n          {{ errorMessages }}\n        </gl-alert>\n        <div :class=\"parentClass\">\n          <work-item-comment-form\n            v-if=\"isEditing\"\n            :key=\"addNoteKey\"\n            :work-item-type=\"workItemType\"\n            :aria-label=\"__('Add a reply')\"\n            :is-submitting=\"isSubmitting\"\n            :autosave-key=\"autosaveKey\"\n            :is-new-discussion=\"isNewDiscussion\"\n            :autocomplete-data-sources=\"autocompleteDataSources\"\n            :markdown-preview-path=\"markdownPreviewPath\"\n            :work-item-state=\"workItemState\"\n            :work-item-id=\"workItemId\"\n            :autofocus=\"autofocus\"\n            :comment-button-text=\"commentButtonText\"\n            :is-discussion-internal=\"isInternalThread\"\n            :is-discussion-locked=\"isDiscussionLocked\"\n            :is-work-item-confidential=\"isWorkItemConfidential\"\n            :is-discussion-resolved=\"isDiscussionResolved\"\n            :is-discussion-resolvable=\"isDiscussionResolvable\"\n            :full-path=\"fullPath\"\n            :has-replies=\"hasReplies\"\n            :work-item-iid=\"workItemIid\"\n            :has-email-participants-widget=\"hasEmailParticipantsWidget\"\n            :parent-id=\"parentId\"\n            @toggleResolveDiscussion=\"$emit('resolve')\"\n            @submitForm=\"updateWorkItem\"\n            @cancelEditing=\"cancelEditing\"\n            @error=\"$emit('error', $event)\"\n            @startEditing=\"$emit('startEditing')\"\n            @stopEditing=\"$emit('stopEditing')\"\n          />\n          <discussion-reply-placeholder\n            v-else\n            data-testid=\"note-reply-textarea\"\n            @focus=\"showReplyForm\"\n          />\n\n          <div v-if=\"!isNewDiscussion && !isEditing\" class=\"discussion-actions\">\n            <resolve-discussion-button\n              v-if=\"isDiscussionResolvable\"\n              data-testid=\"resolve-discussion-button\"\n              :is-resolving=\"isResolving\"\n              :button-title=\"resolveDiscussionTitle\"\n              @onClick=\"$emit('resolve')\"\n            />\n          </div>\n        </div>\n      </div>\n    </div>\n  </li>\n</template>\n","import { render, staticRenderFns } from \"./work_item_add_note.vue?vue&type=template&id=76fb6bd5\"\nimport script from \"./work_item_add_note.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_add_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',{class:_vm.timelineEntryClass},[(!_vm.signedIn)?_c('work-item-note-signed-out'):(!_vm.isLoading && !_vm.canCreateNote)?_c('work-item-comment-locked',{attrs:{\"work-item-type\":_vm.workItemType,\"is-project-archived\":_vm.isProjectArchived}}):_c('div',{class:_vm.timelineEntryInnerClass},[_c('div',{class:_vm.timelineContentClass},[(_vm.messages)?_c('gl-alert',{staticClass:\"gl-mb-2\",attrs:{\"data-testid\":\"success-alert\"},on:{\"dismiss\":function($event){_vm.messages = ''}}},[_vm._v(\"\\n        \"+_vm._s(_vm.messages)+\"\\n      \")]):_vm._e(),_vm._v(\" \"),(_vm.errorMessages)?_c('gl-alert',{staticClass:\"gl-mb-2\",attrs:{\"variant\":\"danger\",\"data-testid\":\"error-alert\"},on:{\"dismiss\":function($event){_vm.errorMessages = ''}}},[_vm._v(\"\\n        \"+_vm._s(_vm.errorMessages)+\"\\n      \")]):_vm._e(),_vm._v(\" \"),_c('div',{class:_vm.parentClass},[(_vm.isEditing)?_c('work-item-comment-form',{key:_vm.addNoteKey,attrs:{\"work-item-type\":_vm.workItemType,\"aria-label\":_vm.__('Add a reply'),\"is-submitting\":_vm.isSubmitting,\"autosave-key\":_vm.autosaveKey,\"is-new-discussion\":_vm.isNewDiscussion,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"markdown-preview-path\":_vm.markdownPreviewPath,\"work-item-state\":_vm.workItemState,\"work-item-id\":_vm.workItemId,\"autofocus\":_vm.autofocus,\"comment-button-text\":_vm.commentButtonText,\"is-discussion-internal\":_vm.isInternalThread,\"is-discussion-locked\":_vm.isDiscussionLocked,\"is-work-item-confidential\":_vm.isWorkItemConfidential,\"is-discussion-resolved\":_vm.isDiscussionResolved,\"is-discussion-resolvable\":_vm.isDiscussionResolvable,\"full-path\":_vm.fullPath,\"has-replies\":_vm.hasReplies,\"work-item-iid\":_vm.workItemIid,\"has-email-participants-widget\":_vm.hasEmailParticipantsWidget,\"parent-id\":_vm.parentId},on:{\"toggleResolveDiscussion\":function($event){return _vm.$emit('resolve')},\"submitForm\":_vm.updateWorkItem,\"cancelEditing\":_vm.cancelEditing,\"error\":function($event){return _vm.$emit('error', $event)},\"startEditing\":function($event){return _vm.$emit('startEditing')},\"stopEditing\":function($event){return _vm.$emit('stopEditing')}}}):_c('discussion-reply-placeholder',{attrs:{\"data-testid\":\"note-reply-textarea\"},on:{\"focus\":_vm.showReplyForm}}),_vm._v(\" \"),(!_vm.isNewDiscussion && !_vm.isEditing)?_c('div',{staticClass:\"discussion-actions\"},[(_vm.isDiscussionResolvable)?_c('resolve-discussion-button',{attrs:{\"data-testid\":\"resolve-discussion-button\",\"is-resolving\":_vm.isResolving,\"button-title\":_vm.resolveDiscussionTitle},on:{\"onClick\":function($event){return _vm.$emit('resolve')}}}):_vm._e()],1):_vm._e()],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_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!./work_item_discussion.vue?vue&type=script&lang=js\"","<script>\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { ASC } from '~/notes/constants';\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\nimport toggleWorkItemNoteResolveDiscussion from '~/work_items/graphql/notes/toggle_work_item_note_resolve_discussion.mutation.graphql';\nimport DiscussionNotesRepliesWrapper from '~/notes/components/discussion_notes_replies_wrapper.vue';\nimport ToggleRepliesWidget from '~/notes/components/toggle_replies_widget.vue';\nimport WorkItemNote from '~/work_items/components/notes/work_item_note.vue';\nimport WorkItemNoteReplying from '~/work_items/components/notes/work_item_note_replying.vue';\nimport WorkItemAddNote from './work_item_add_note.vue';\n\nexport default {\n  components: {\n    TimelineEntryItem,\n    WorkItemNote,\n    WorkItemAddNote,\n    ToggleRepliesWidget,\n    DiscussionNotesRepliesWrapper,\n    WorkItemNoteReplying,\n  },\n  props: {\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    workItemIid: {\n      type: String,\n      required: true,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n    discussion: {\n      type: Array,\n      required: true,\n    },\n    sortOrder: {\n      type: String,\n      default: ASC,\n      required: false,\n    },\n    isModal: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    markdownPreviewPath: {\n      type: String,\n      required: true,\n    },\n    autocompleteDataSources: {\n      type: Object,\n      required: false,\n      default: () => ({}),\n    },\n    assignees: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n    canSetWorkItemMetadata: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isDiscussionLocked: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isWorkItemConfidential: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isExpandedOnLoad: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      isExpanded: this.isExpandedOnLoad,\n      autofocus: false,\n      isReplying: false,\n      replyingText: '',\n      showForm: false,\n      isResolving: false,\n    };\n  },\n  computed: {\n    note() {\n      return this.discussion[0];\n    },\n    noteId() {\n      return getIdFromGraphQLId(this.note.id);\n    },\n    hasReplies() {\n      return Boolean(this.replies?.length);\n    },\n    replies() {\n      if (this.discussion?.length > 1) {\n        return this.discussion.slice(1);\n      }\n      return null;\n    },\n    discussionId() {\n      return this.firstComment?.id || '';\n    },\n    shouldShowReplyForm() {\n      return this.showForm || this.hasReplies;\n    },\n    isOnlyCommentOfAThread() {\n      return !this.hasReplies && !this.showForm;\n    },\n    firstComment() {\n      return this.discussion[0]?.discussion;\n    },\n    isDiscussionResolved() {\n      return this.firstComment?.resolved;\n    },\n    isDiscussionResolvable() {\n      return this.firstComment?.resolvable && this.note?.userPermissions?.resolveNote;\n    },\n  },\n  watch: {\n    discussion: {\n      handler(newDiscussion) {\n        if (newDiscussion[0].discussion.resolved === false) {\n          this.isExpanded = true;\n        }\n      },\n      deep: true,\n    },\n  },\n  methods: {\n    showReplyForm() {\n      this.showForm = true;\n      this.isExpanded = true;\n      this.autofocus = true;\n    },\n    hideReplyForm() {\n      this.showForm = false;\n      this.isExpanded = this.hasReplies;\n      this.autofocus = false;\n      this.$emit('cancelEditing');\n    },\n    toggleDiscussion() {\n      this.isExpanded = !this.isExpanded;\n    },\n    threadKey(note) {\n      return `${note.id}-thread`; // eslint-disable-line @gitlab/require-i18n-strings\n    },\n    onReplied() {\n      this.isExpanded = true;\n      this.isReplying = false;\n      this.replyingText = '';\n    },\n    onReplying(commentText) {\n      this.isReplying = true;\n      this.replyingText = commentText;\n    },\n    getToggledDiscussion(resolved) {\n      let resolvedBy = null;\n      if (resolved) {\n        resolvedBy = {\n          id: gon?.current_user_id,\n          name: gon?.current_user_fullname,\n          __typename: 'UserCore',\n        };\n      }\n      const toggledDiscussionNotes = [...this.discussion].map((note) => {\n        return {\n          ...note,\n          discussion: {\n            ...note.discussion,\n            resolved,\n            resolvedBy,\n          },\n        };\n      });\n      return {\n        id: this.discussionId,\n        notes: {\n          nodes: [...toggledDiscussionNotes],\n        },\n      };\n    },\n    async resolveDiscussion() {\n      this.isResolving = true;\n      try {\n        await this.$apollo.mutate({\n          mutation: toggleWorkItemNoteResolveDiscussion,\n          variables: { id: this.discussionId, resolve: !this.isDiscussionResolved },\n          optimisticResponse: {\n            discussionToggleResolve: {\n              errors: [],\n              discussion: this.getToggledDiscussion(!this.isDiscussionResolved),\n              __typename: 'DiscussionToggleResolvePayload',\n            },\n          },\n        });\n      } catch (error) {\n        this.$emit('error', error.message);\n      } finally {\n        this.isResolving = false;\n      }\n    },\n  },\n};\n</script>\n\n<template>\n  <work-item-note\n    v-if=\"isOnlyCommentOfAThread\"\n    :is-first-note=\"true\"\n    :note=\"note\"\n    :discussion-id=\"discussionId\"\n    :full-path=\"fullPath\"\n    :has-replies=\"hasReplies\"\n    :work-item-type=\"workItemType\"\n    :is-modal=\"isModal\"\n    :autocomplete-data-sources=\"autocompleteDataSources\"\n    :markdown-preview-path=\"markdownPreviewPath\"\n    :class=\"{ 'gl-mb-4': hasReplies }\"\n    :assignees=\"assignees\"\n    :can-set-work-item-metadata=\"canSetWorkItemMetadata\"\n    :is-discussion-resolved=\"isDiscussionResolved\"\n    :is-discussion-resolvable=\"isDiscussionResolvable\"\n    :work-item-id=\"workItemId\"\n    :work-item-iid=\"workItemIid\"\n    :is-resolving=\"isResolving\"\n    @startEditing=\"$emit('startEditing')\"\n    @resolve=\"resolveDiscussion\"\n    @startReplying=\"showReplyForm\"\n    @deleteNote=\"$emit('deleteNote', note)\"\n    @reportAbuse=\"$emit('reportAbuse', note)\"\n    @cancelEditing=\"$emit('cancelEditing')\"\n    @error=\"$emit('error', $event)\"\n  />\n  <timeline-entry-item v-else :data-note-id=\"noteId\" class=\"note note-discussion gl-px-0\">\n    <div class=\"timeline-content\">\n      <div class=\"discussion\">\n        <div class=\"discussion-body\">\n          <div class=\"discussion-wrapper\">\n            <div class=\"discussion-notes\">\n              <ul class=\"notes\">\n                <work-item-note\n                  is-first-note\n                  :note=\"note\"\n                  :discussion-id=\"discussionId\"\n                  :full-path=\"fullPath\"\n                  :has-replies=\"hasReplies\"\n                  :work-item-type=\"workItemType\"\n                  :is-modal=\"isModal\"\n                  :class=\"{ 'gl-mb-4': hasReplies }\"\n                  :autocomplete-data-sources=\"autocompleteDataSources\"\n                  :markdown-preview-path=\"markdownPreviewPath\"\n                  :assignees=\"assignees\"\n                  :work-item-id=\"workItemId\"\n                  :work-item-iid=\"workItemIid\"\n                  :can-set-work-item-metadata=\"canSetWorkItemMetadata\"\n                  :is-discussion-resolved=\"isDiscussionResolved\"\n                  :is-discussion-resolvable=\"isDiscussionResolvable\"\n                  :is-resolving=\"isResolving\"\n                  @startReplying=\"showReplyForm\"\n                  @startEditing=\"$emit('startEditing')\"\n                  @deleteNote=\"$emit('deleteNote', note)\"\n                  @reportAbuse=\"$emit('reportAbuse', note)\"\n                  @cancelEditing=\"$emit('cancelEditing')\"\n                  @resolve=\"resolveDiscussion\"\n                  @error=\"$emit('error', $event)\"\n                />\n                <discussion-notes-replies-wrapper>\n                  <toggle-replies-widget\n                    v-if=\"hasReplies\"\n                    :collapsed=\"!isExpanded\"\n                    :replies=\"replies\"\n                    @toggle=\"toggleDiscussion({ discussionId })\"\n                  />\n                  <template v-if=\"isExpanded\">\n                    <template v-for=\"reply in replies\">\n                      <work-item-note\n                        :key=\"threadKey(reply)\"\n                        :discussion-id=\"discussionId\"\n                        :full-path=\"fullPath\"\n                        :note=\"reply\"\n                        :work-item-type=\"workItemType\"\n                        :is-modal=\"isModal\"\n                        :autocomplete-data-sources=\"autocompleteDataSources\"\n                        :markdown-preview-path=\"markdownPreviewPath\"\n                        :assignees=\"assignees\"\n                        :work-item-id=\"workItemId\"\n                        :work-item-iid=\"workItemIid\"\n                        :can-set-work-item-metadata=\"canSetWorkItemMetadata\"\n                        :is-discussion-resolved=\"isDiscussionResolved\"\n                        :is-discussion-resolvable=\"isDiscussionResolvable\"\n                        :is-resolving=\"isResolving\"\n                        @startReplying=\"showReplyForm\"\n                        @deleteNote=\"$emit('deleteNote', reply)\"\n                        @reportAbuse=\"$emit('reportAbuse', reply)\"\n                        @startEditing=\"$emit('startEditing')\"\n                        @cancelEditing=\"$emit('cancelEditing')\"\n                        @error=\"$emit('error', $event)\"\n                      />\n                    </template>\n                    <work-item-note-replying\n                      v-if=\"isReplying\"\n                      :is-internal-note=\"note.internal\"\n                      :body=\"replyingText\"\n                    />\n                    <work-item-add-note\n                      v-if=\"shouldShowReplyForm\"\n                      :notes-form=\"false\"\n                      :autofocus=\"autofocus\"\n                      :full-path=\"fullPath\"\n                      :work-item-id=\"workItemId\"\n                      :work-item-iid=\"workItemIid\"\n                      :discussion-id=\"discussionId\"\n                      :work-item-type=\"workItemType\"\n                      :sort-order=\"sortOrder\"\n                      :add-padding=\"true\"\n                      :autocomplete-data-sources=\"autocompleteDataSources\"\n                      :markdown-preview-path=\"markdownPreviewPath\"\n                      :is-discussion-locked=\"isDiscussionLocked\"\n                      :is-internal-thread=\"note.internal\"\n                      :is-work-item-confidential=\"isWorkItemConfidential\"\n                      :is-discussion-resolved=\"isDiscussionResolved\"\n                      :is-discussion-resolvable=\"isDiscussionResolvable\"\n                      :is-resolving=\"isResolving\"\n                      :has-replies=\"hasReplies\"\n                      @startReplying=\"showReplyForm\"\n                      @cancelEditing=\"hideReplyForm\"\n                      @replied=\"onReplied\"\n                      @replying=\"onReplying\"\n                      @resolve=\"resolveDiscussion\"\n                      @error=\"$emit('error', $event)\"\n                      @startEditing=\"$emit('startEditing')\"\n                    />\n                  </template>\n                </discussion-notes-replies-wrapper>\n              </ul>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </timeline-entry-item>\n</template>\n","import { render, staticRenderFns } from \"./work_item_discussion.vue?vue&type=template&id=e920c236\"\nimport script from \"./work_item_discussion.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.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_history_only_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!./work_item_history_only_filter_note.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlIcon, GlSprintf } from '@gitlab/ui';\nimport { s__ } from '~/locale';\n\nimport {\n  WORK_ITEM_NOTES_FILTER_ALL_NOTES,\n  WORK_ITEM_NOTES_FILTER_ONLY_COMMENTS,\n} from '~/work_items/constants';\n\nexport default {\n  WORK_ITEM_NOTES_FILTER_ALL_NOTES,\n  WORK_ITEM_NOTES_FILTER_ONLY_COMMENTS,\n  i18n: {\n    information: s__(\n      \"WorkItem|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      this.$emit('changeFilter', value);\n    },\n  },\n};\n</script>\n\n<template>\n  <li class=\"timeline-entry note note-wrapper discussion-filter-note\">\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      <gl-sprintf :message=\"$options.i18n.information\">\n        <template #bold=\"{ content }\">\n          <b>{{ content }}</b>\n        </template>\n      </gl-sprintf>\n\n      <div class=\"discussion-filter-actions\">\n        <gl-button\n          class=\"gl-mr-2 gl-mt-3\"\n          data-testid=\"show-all-activity\"\n          @click=\"selectFilter($options.WORK_ITEM_NOTES_FILTER_ALL_NOTES)\"\n        >\n          {{ __('Show all activity') }}\n        </gl-button>\n        <gl-button\n          class=\"gl-mt-3\"\n          data-testid=\"show-comments-only\"\n          @click=\"selectFilter($options.WORK_ITEM_NOTES_FILTER_ONLY_COMMENTS)\"\n        >\n          {{ __('Show comments only') }}\n        </gl-button>\n      </div>\n    </div>\n  </li>\n</template>\n","import { render, staticRenderFns } from \"./work_item_history_only_filter_note.vue?vue&type=template&id=cb093a36\"\nimport script from \"./work_item_history_only_filter_note.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_history_only_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\"},[_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('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.information},scopedSlots:_vm._u([{key:\"bold\",fn:function({ content }){return [_c('b',[_vm._v(_vm._s(content))])]}}])}),_vm._v(\" \"),_c('div',{staticClass:\"discussion-filter-actions\"},[_c('gl-button',{staticClass:\"gl-mr-2 gl-mt-3\",attrs:{\"data-testid\":\"show-all-activity\"},on:{\"click\":function($event){return _vm.selectFilter(_vm.$options.WORK_ITEM_NOTES_FILTER_ALL_NOTES)}}},[_vm._v(\"\\n        \"+_vm._s(_vm.__('Show all activity'))+\"\\n      \")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-mt-3\",attrs:{\"data-testid\":\"show-comments-only\"},on:{\"click\":function($event){return _vm.selectFilter(_vm.$options.WORK_ITEM_NOTES_FILTER_ONLY_COMMENTS)}}},[_vm._v(\"\\n        \"+_vm._s(_vm.__('Show comments only'))+\"\\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!./work_item_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!./work_item_notes.vue?vue&type=script&lang=js\"","<script>\nimport { GlModal } from '@gitlab/ui';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { __ } from '~/locale';\nimport {\n  TYPENAME_DISCUSSION,\n  TYPENAME_DISCUSSION_NOTE,\n  TYPENAME_NOTE,\n} from '~/graphql_shared/constants';\nimport SystemNote from '~/work_items/components/notes/system_note.vue';\nimport WorkItemNotesLoading from '~/work_items/components/notes/work_item_notes_loading.vue';\nimport WorkItemNotesActivityHeader from '~/work_items/components/notes/work_item_notes_activity_header.vue';\nimport {\n  i18n,\n  DEFAULT_PAGE_SIZE_NOTES,\n  WORK_ITEM_NOTES_FILTER_ALL_NOTES,\n  WORK_ITEM_NOTES_FILTER_ONLY_COMMENTS,\n  WORK_ITEM_NOTES_FILTER_ONLY_HISTORY,\n  NEW_WORK_ITEM_IID,\n} from '~/work_items/constants';\nimport { ASC, DESC } from '~/notes/constants';\nimport { autocompleteDataSources, markdownPreviewPath } from '~/work_items/utils';\nimport {\n  updateCacheAfterCreatingNote,\n  updateCacheAfterDeletingNote,\n} from '~/work_items/graphql/cache_utils';\nimport { convertToGraphQLId, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { getLocationHash } from '~/lib/utils/url_utility';\nimport { collapseSystemNotes } from '~/work_items/notes/collapse_utils';\nimport WorkItemDiscussion from '~/work_items/components/notes/work_item_discussion.vue';\nimport WorkItemHistoryOnlyFilterNote from '~/work_items/components/notes/work_item_history_only_filter_note.vue';\nimport workItemNoteCreatedSubscription from '~/work_items/graphql/notes/work_item_note_created.subscription.graphql';\nimport workItemNoteUpdatedSubscription from '~/work_items/graphql/notes/work_item_note_updated.subscription.graphql';\nimport workItemNoteDeletedSubscription from '~/work_items/graphql/notes/work_item_note_deleted.subscription.graphql';\nimport deleteNoteMutation from '../graphql/notes/delete_work_item_notes.mutation.graphql';\nimport workItemNoteQuery from '../graphql/notes/work_item_note.query.graphql';\nimport workItemNotesByIidQuery from '../graphql/notes/work_item_notes_by_iid.query.graphql';\nimport WorkItemAddNote from './notes/work_item_add_note.vue';\n\nexport default {\n  components: {\n    GlModal,\n    SystemNote,\n    WorkItemAddNote,\n    WorkItemDiscussion,\n    WorkItemNotesActivityHeader,\n    WorkItemHistoryOnlyFilterNote,\n    WorkItemNotesLoading,\n  },\n  inject: ['isGroup'],\n  props: {\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    workItemIid: {\n      type: String,\n      required: true,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n    isModal: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    assignees: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n    canSetWorkItemMetadata: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    reportAbusePath: {\n      type: String,\n      required: true,\n    },\n    isDiscussionLocked: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isWorkItemConfidential: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    useH2: {\n      type: Boolean,\n      default: false,\n      required: false,\n    },\n    parentId: {\n      type: String,\n      default: null,\n      required: false,\n    },\n  },\n  data() {\n    return {\n      isLoadingMore: false,\n      sortOrder: ASC,\n      noteToDelete: null,\n      discussionFilter: WORK_ITEM_NOTES_FILTER_ALL_NOTES,\n      workItemNamespace: null,\n      previewNote: null,\n    };\n  },\n  computed: {\n    initialLoading() {\n      return this.$apollo.queries.workItemNotes.loading && !this.isLoadingMore;\n    },\n    someNotesLoaded() {\n      return !this.initialLoading || this.previewNote;\n    },\n    avatarUrl() {\n      return window.gon.current_user_avatar_url;\n    },\n    pageInfo() {\n      return this.workItemNotes?.pageInfo;\n    },\n    hasNextPage() {\n      return this.pageInfo?.hasNextPage;\n    },\n    disableActivityFilterSort() {\n      return this.initialLoading || this.isLoadingMore;\n    },\n    formAtTop() {\n      return this.sortOrder === DESC;\n    },\n    markdownPreviewPath() {\n      const { fullPath, workItemIid: iid } = this;\n      return markdownPreviewPath({ fullPath, iid, isGroup: this.isGroupWorkItem });\n    },\n    isGroupWorkItem() {\n      return this.workItemNamespace?.id?.includes?.('Group');\n    },\n    autocompleteDataSources() {\n      const { fullPath, workItemIid: iid } = this;\n      const isNewWorkItemInGroup = this.isGroup && iid === NEW_WORK_ITEM_IID;\n      return autocompleteDataSources({\n        fullPath,\n        iid,\n        isGroup: this.isGroupWorkItem || isNewWorkItemInGroup,\n      });\n    },\n    workItemCommentFormProps() {\n      return {\n        fullPath: this.fullPath,\n        workItemId: this.workItemId,\n        workItemIid: this.workItemIid,\n        workItemType: this.workItemType,\n        sortOrder: this.sortOrder,\n        isNewDiscussion: true,\n        markdownPreviewPath: this.markdownPreviewPath,\n        autocompleteDataSources: this.autocompleteDataSources,\n        isDiscussionLocked: this.isDiscussionLocked,\n        isWorkItemConfidential: this.isWorkItemConfidential,\n        parentId: this.parentId,\n      };\n    },\n    notesArray() {\n      const notes = this.workItemNotes?.nodes || [];\n\n      let visibleNotes = collapseSystemNotes(notes);\n\n      visibleNotes = visibleNotes.filter((note) => {\n        const isSystemNote = this.isSystemNote(note);\n\n        if (this.discussionFilter === WORK_ITEM_NOTES_FILTER_ONLY_COMMENTS && isSystemNote) {\n          return false;\n        }\n\n        if (this.discussionFilter === WORK_ITEM_NOTES_FILTER_ONLY_HISTORY && !isSystemNote) {\n          return false;\n        }\n\n        return true;\n      });\n\n      // don't show preview in modal, as we might accidentally load a note from the parent work item\n      const urlParams = new URLSearchParams(window.location.search);\n      const modalOpen = urlParams.has('show');\n\n      if (this.previewNote && !this.previewNoteLoadedInList && !modalOpen) {\n        visibleNotes = [...visibleNotes, this.previewNote];\n      }\n\n      if (this.sortOrder === DESC) {\n        return [...visibleNotes].reverse();\n      }\n\n      return visibleNotes;\n    },\n    commentsDisabled() {\n      return this.discussionFilter === WORK_ITEM_NOTES_FILTER_ONLY_HISTORY;\n    },\n    targetNoteHash() {\n      return getLocationHash();\n    },\n    previewNoteId() {\n      const hash = this.targetNoteHash;\n      const isSha = /^note_([a-f0-9]{40})/.test(hash); // synthetic note id\n      const isNoteId = /^note_(\\d+)/.test(hash);\n\n      if (isSha || !isNoteId) {\n        return null;\n      }\n\n      return hash.replace(/^note_/, '');\n    },\n    previewNoteLoadedInList() {\n      // are these the same? could there be ID conflicts when they aren't? test data was using DiscussionNote\n      const noteId = convertToGraphQLId(TYPENAME_NOTE, this.previewNoteId);\n      const discussionNoteId = convertToGraphQLId(TYPENAME_DISCUSSION_NOTE, this.previewNoteId);\n\n      function matchingNoteId(note) {\n        return note.notes.nodes.find((singleReply) => {\n          return singleReply.id === noteId || singleReply.id === discussionNoteId;\n        });\n      }\n\n      const notes = this.workItemNotes?.nodes || [];\n      const n = notes.find(matchingNoteId);\n      return Boolean(n);\n    },\n  },\n  apollo: {\n    previewNote: {\n      skip() {\n        return !this.previewNoteId;\n      },\n      query: workItemNoteQuery,\n      variables() {\n        return {\n          id: convertToGraphQLId(TYPENAME_NOTE, this.previewNoteId),\n        };\n      },\n      update(data) {\n        return data?.note?.discussion;\n      },\n      result(result) {\n        if (result?.errors?.length > 0) {\n          Sentry.captureException(result.errors[0].message);\n        }\n\n        // make sure skeleton notes are placed below the preview note\n        if (result?.data?.note && this.$apollo.queries.workItemNotes?.loading) {\n          this.isLoadingMore = true;\n        }\n      },\n      error(error) {\n        Sentry.captureException(error);\n      },\n    },\n    // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n    workItemNotes: {\n      query: workItemNotesByIidQuery,\n      variables() {\n        return {\n          fullPath: this.fullPath,\n          iid: this.workItemIid,\n          after: this.after,\n          pageSize: DEFAULT_PAGE_SIZE_NOTES,\n        };\n      },\n      update(data) {\n        const widgets = data.workspace?.workItem?.widgets;\n        return widgets?.find((widget) => widget.type === 'NOTES')?.discussions || [];\n      },\n      skip() {\n        return !this.workItemIid;\n      },\n      error() {\n        this.$emit('error', i18n.fetchError);\n      },\n      result({ data }) {\n        this.workItemNamespace = data.workspace?.workItem?.namespace;\n        this.isLoadingMore = false;\n        if (this.hasNextPage) {\n          this.fetchMoreNotes();\n        }\n      },\n      subscribeToMore: [\n        {\n          document: workItemNoteCreatedSubscription,\n          updateQuery(previousResult, { subscriptionData }) {\n            return updateCacheAfterCreatingNote(previousResult, subscriptionData);\n          },\n          variables() {\n            return {\n              noteableId: this.workItemId,\n            };\n          },\n          skip() {\n            return !this.workItemId || this.hasNextPage;\n          },\n        },\n        {\n          document: workItemNoteDeletedSubscription,\n          updateQuery(previousResult, { subscriptionData }) {\n            return updateCacheAfterDeletingNote(previousResult, subscriptionData);\n          },\n          variables() {\n            return {\n              noteableId: this.workItemId,\n            };\n          },\n          skip() {\n            return !this.workItemId || this.hasNextPage;\n          },\n        },\n        {\n          document: workItemNoteUpdatedSubscription,\n          variables() {\n            return {\n              noteableId: this.workItemId,\n            };\n          },\n          skip() {\n            return !this.workItemId;\n          },\n        },\n      ],\n    },\n  },\n  methods: {\n    getDiscussionKey(discussion) {\n      // discussion key is important like this since after first comment changes\n      const discussionId = discussion.notes.nodes[0].id;\n      return discussionId.split('/')[discussionId.split('/').length - 1];\n    },\n    isSystemNote(note) {\n      return note.notes.nodes[0].system;\n    },\n    changeNotesSortOrder(direction) {\n      this.sortOrder = direction;\n    },\n    filterDiscussions(filterValue) {\n      this.discussionFilter = filterValue;\n    },\n    reportAbuse(isOpen, reply = {}) {\n      this.$emit('openReportAbuse', reply);\n    },\n    noteId(note) {\n      return getIdFromGraphQLId(note.id);\n    },\n    isHashTargeted(discussion) {\n      return (\n        discussion.notes.nodes.length &&\n        discussion.notes.nodes.some((note) => this.targetNoteHash === `note_${this.noteId(note)}`)\n      );\n    },\n    isDiscussionExpandedOnLoad(discussion) {\n      return !this.isDiscussionResolved(discussion) || this.isHashTargeted(discussion);\n    },\n    isDiscussionResolved(discussion) {\n      return discussion.notes.nodes[0]?.discussion?.resolved;\n    },\n    async fetchMoreNotes() {\n      this.isLoadingMore = true;\n      await this.$apollo.queries.workItemNotes\n        .fetchMore({\n          variables: {\n            fullPath: this.fullPath,\n            iid: this.workItemIid,\n            after: this.pageInfo?.endCursor,\n          },\n        })\n        .catch((error) => this.$emit('error', error.message));\n    },\n    showDeleteNoteModal(note, discussion) {\n      const isLastNote = discussion.notes.nodes.length === 1;\n      this.$refs.deleteNoteModal.show();\n      this.noteToDelete = { ...note, isLastNote };\n    },\n    cancelDeletingNote() {\n      this.noteToDelete = null;\n    },\n    async deleteNote() {\n      try {\n        const { id, isLastNote, discussion } = this.noteToDelete;\n        await this.$apollo.mutate({\n          mutation: deleteNoteMutation,\n          variables: {\n            input: {\n              id,\n            },\n          },\n          update(cache) {\n            const deletedObject = isLastNote\n              ? { __typename: TYPENAME_DISCUSSION, id: discussion.id }\n              : { __typename: TYPENAME_NOTE, id };\n            cache.modify({\n              id: cache.identify(deletedObject),\n              fields: (_, { DELETE }) => DELETE,\n            });\n          },\n          optimisticResponse: {\n            destroyNote: {\n              note: null,\n              __typename: 'DestroyNotePayload',\n            },\n          },\n        });\n      } catch (error) {\n        this.$emit('error', __('Something went wrong when deleting a comment. Please try again'));\n        Sentry.captureException(error);\n      }\n    },\n  },\n};\n</script>\n\n<template>\n  <div class=\"work-item-notes\">\n    <work-item-notes-activity-header\n      :sort-order=\"sortOrder\"\n      :disable-activity-filter-sort=\"disableActivityFilterSort\"\n      :work-item-type=\"workItemType\"\n      :discussion-filter=\"discussionFilter\"\n      :use-h2=\"useH2\"\n      @changeSort=\"changeNotesSortOrder\"\n      @changeFilter=\"filterDiscussions\"\n    />\n    <work-item-notes-loading v-if=\"initialLoading\" class=\"gl-mt-5\" />\n    <div v-if=\"someNotesLoaded\" class=\"issuable-discussion gl-mb-5 !gl-clearfix\">\n      <div v-if=\"formAtTop && !commentsDisabled\" class=\"js-comment-form\">\n        <ul class=\"notes notes-form timeline\">\n          <work-item-add-note\n            v-bind=\"workItemCommentFormProps\"\n            @startEditing=\"$emit('startEditing')\"\n            @stopEditing=\"$emit('stopEditing')\"\n            @error=\"$emit('error', $event)\"\n          />\n        </ul>\n      </div>\n      <work-item-notes-loading v-if=\"formAtTop && isLoadingMore\" />\n      <ul class=\"notes main-notes-list timeline\">\n        <template v-for=\"discussion in notesArray\">\n          <system-note\n            v-if=\"isSystemNote(discussion)\"\n            :key=\"discussion.notes.nodes[0].id\"\n            :note=\"discussion.notes.nodes[0]\"\n          />\n          <template v-else>\n            <work-item-discussion\n              :key=\"getDiscussionKey(discussion)\"\n              :discussion=\"discussion.notes.nodes\"\n              :full-path=\"fullPath\"\n              :work-item-id=\"workItemId\"\n              :work-item-iid=\"workItemIid\"\n              :work-item-type=\"workItemType\"\n              :is-modal=\"isModal\"\n              :autocomplete-data-sources=\"autocompleteDataSources\"\n              :markdown-preview-path=\"markdownPreviewPath\"\n              :assignees=\"assignees\"\n              :can-set-work-item-metadata=\"canSetWorkItemMetadata\"\n              :is-discussion-locked=\"isDiscussionLocked\"\n              :is-work-item-confidential=\"isWorkItemConfidential\"\n              :is-expanded-on-load=\"isDiscussionExpandedOnLoad(discussion)\"\n              @deleteNote=\"showDeleteNoteModal($event, discussion)\"\n              @reportAbuse=\"reportAbuse(true, $event)\"\n              @error=\"$emit('error', $event)\"\n              @startEditing=\"$emit('startEditing')\"\n              @cancelEditing=\"$emit('stopEditing')\"\n            />\n          </template>\n        </template>\n\n        <work-item-history-only-filter-note\n          v-if=\"commentsDisabled\"\n          @changeFilter=\"filterDiscussions\"\n        />\n      </ul>\n      <work-item-notes-loading v-if=\"!formAtTop && isLoadingMore\" />\n      <div v-if=\"!formAtTop && !commentsDisabled\" class=\"js-comment-form\">\n        <ul class=\"notes notes-form timeline\">\n          <work-item-add-note\n            v-bind=\"workItemCommentFormProps\"\n            @startEditing=\"$emit('startEditing')\"\n            @stopEditing=\"$emit('stopEditing')\"\n            @error=\"$emit('error', $event)\"\n          />\n        </ul>\n      </div>\n    </div>\n    <gl-modal\n      ref=\"deleteNoteModal\"\n      modal-id=\"delete-note-modal\"\n      :title=\"__('Delete comment?')\"\n      :ok-title=\"__('Delete comment')\"\n      ok-variant=\"danger\"\n      size=\"sm\"\n      @primary=\"deleteNote\"\n      @canceled=\"cancelDeletingNote\"\n    >\n      {{ __('Are you sure you want to delete this comment?') }}\n    </gl-modal>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_notes.vue?vue&type=template&id=d646dd84\"\nimport script from \"./work_item_notes.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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:\"work-item-notes\"},[_c('work-item-notes-activity-header',{attrs:{\"sort-order\":_vm.sortOrder,\"disable-activity-filter-sort\":_vm.disableActivityFilterSort,\"work-item-type\":_vm.workItemType,\"discussion-filter\":_vm.discussionFilter,\"use-h2\":_vm.useH2},on:{\"changeSort\":_vm.changeNotesSortOrder,\"changeFilter\":_vm.filterDiscussions}}),_vm._v(\" \"),(_vm.initialLoading)?_c('work-item-notes-loading',{staticClass:\"gl-mt-5\"}):_vm._e(),_vm._v(\" \"),(_vm.someNotesLoaded)?_c('div',{staticClass:\"issuable-discussion gl-mb-5 !gl-clearfix\"},[(_vm.formAtTop && !_vm.commentsDisabled)?_c('div',{staticClass:\"js-comment-form\"},[_c('ul',{staticClass:\"notes notes-form timeline\"},[_c('work-item-add-note',_vm._b({on:{\"startEditing\":function($event){return _vm.$emit('startEditing')},\"stopEditing\":function($event){return _vm.$emit('stopEditing')},\"error\":function($event){return _vm.$emit('error', $event)}}},'work-item-add-note',_vm.workItemCommentFormProps,false))],1)]):_vm._e(),_vm._v(\" \"),(_vm.formAtTop && _vm.isLoadingMore)?_c('work-item-notes-loading'):_vm._e(),_vm._v(\" \"),_c('ul',{staticClass:\"notes main-notes-list timeline\"},[_vm._l((_vm.notesArray),function(discussion){return [(_vm.isSystemNote(discussion))?_c('system-note',{key:discussion.notes.nodes[0].id,attrs:{\"note\":discussion.notes.nodes[0]}}):[_c('work-item-discussion',{key:_vm.getDiscussionKey(discussion),attrs:{\"discussion\":discussion.notes.nodes,\"full-path\":_vm.fullPath,\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"work-item-type\":_vm.workItemType,\"is-modal\":_vm.isModal,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"markdown-preview-path\":_vm.markdownPreviewPath,\"assignees\":_vm.assignees,\"can-set-work-item-metadata\":_vm.canSetWorkItemMetadata,\"is-discussion-locked\":_vm.isDiscussionLocked,\"is-work-item-confidential\":_vm.isWorkItemConfidential,\"is-expanded-on-load\":_vm.isDiscussionExpandedOnLoad(discussion)},on:{\"deleteNote\":function($event){return _vm.showDeleteNoteModal($event, discussion)},\"reportAbuse\":function($event){return _vm.reportAbuse(true, $event)},\"error\":function($event){return _vm.$emit('error', $event)},\"startEditing\":function($event){return _vm.$emit('startEditing')},\"cancelEditing\":function($event){return _vm.$emit('stopEditing')}}})]]}),_vm._v(\" \"),(_vm.commentsDisabled)?_c('work-item-history-only-filter-note',{on:{\"changeFilter\":_vm.filterDiscussions}}):_vm._e()],2),_vm._v(\" \"),(!_vm.formAtTop && _vm.isLoadingMore)?_c('work-item-notes-loading'):_vm._e(),_vm._v(\" \"),(!_vm.formAtTop && !_vm.commentsDisabled)?_c('div',{staticClass:\"js-comment-form\"},[_c('ul',{staticClass:\"notes notes-form timeline\"},[_c('work-item-add-note',_vm._b({on:{\"startEditing\":function($event){return _vm.$emit('startEditing')},\"stopEditing\":function($event){return _vm.$emit('stopEditing')},\"error\":function($event){return _vm.$emit('error', $event)}}},'work-item-add-note',_vm.workItemCommentFormProps,false))],1)]):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('gl-modal',{ref:\"deleteNoteModal\",attrs:{\"modal-id\":\"delete-note-modal\",\"title\":_vm.__('Delete comment?'),\"ok-title\":_vm.__('Delete comment'),\"ok-variant\":\"danger\",\"size\":\"sm\"},on:{\"primary\":_vm.deleteNote,\"canceled\":_vm.cancelDeletingNote}},[_vm._v(\"\\n    \"+_vm._s(_vm.__('Are you sure you want to delete this comment?'))+\"\\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!./work_item_award_emoji.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.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_award_emoji.vue?vue&type=script&lang=js\"","<script>\nimport { produce } from 'immer';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\n\nimport { getIdFromGraphQLId, convertToGraphQLId } from '~/graphql_shared/utils';\nimport AwardsList from '~/vue_shared/components/awards_list.vue';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport { TYPENAME_USER } from '~/graphql_shared/constants';\n\nimport { EMOJI_THUMBS_UP, EMOJI_THUMBS_DOWN } from '~/emoji/constants';\nimport projectWorkItemAwardEmojiQuery from '../graphql/award_emoji.query.graphql';\nimport updateAwardEmojiMutation from '../graphql/update_award_emoji.mutation.graphql';\nimport {\n  WIDGET_TYPE_AWARD_EMOJI,\n  DEFAULT_PAGE_SIZE_EMOJIS,\n  I18N_WORK_ITEM_FETCH_AWARD_EMOJI_ERROR,\n} from '../constants';\n\nexport default {\n  defaultAwards: [EMOJI_THUMBS_UP, EMOJI_THUMBS_DOWN],\n  isLoggedIn: isLoggedIn(),\n  components: {\n    AwardsList,\n  },\n  props: {\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    workItemFullpath: {\n      type: String,\n      required: true,\n    },\n    workItemIid: {\n      type: String,\n      required: false,\n      default: null,\n    },\n  },\n  data() {\n    return {\n      isLoading: false,\n    };\n  },\n  computed: {\n    currentUserId() {\n      return window.gon.current_user_id;\n    },\n    currentUserFullName() {\n      return window.gon.current_user_fullname;\n    },\n    /**\n     * Parse and convert emoji reactions list to a format that AwardsList can understand\n     */\n    awards() {\n      if (!this.awardEmoji) {\n        return [];\n      }\n\n      return this.awardEmoji.nodes.map((emoji) => ({\n        name: emoji.name,\n        user: {\n          id: getIdFromGraphQLId(emoji.user.id),\n          name: emoji.user.name,\n        },\n      }));\n    },\n    pageInfo() {\n      return this.awardEmoji?.pageInfo;\n    },\n    hasNextPage() {\n      return this.pageInfo?.hasNextPage;\n    },\n  },\n  apollo: {\n    // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n    awardEmoji: {\n      query: projectWorkItemAwardEmojiQuery,\n      variables() {\n        return {\n          iid: this.workItemIid,\n          fullPath: this.workItemFullpath,\n          after: this.after,\n          pageSize: DEFAULT_PAGE_SIZE_EMOJIS,\n        };\n      },\n      update(data) {\n        const widgets = data.workspace?.workItem?.widgets;\n        return widgets?.find((widget) => widget.type === WIDGET_TYPE_AWARD_EMOJI).awardEmoji || {};\n      },\n      skip() {\n        return !this.workItemIid;\n      },\n      result({ data }) {\n        if (this.hasNextPage) {\n          this.fetchAwardEmojis();\n        } else {\n          this.isLoading = false;\n        }\n        if (data) {\n          this.$emit('emoji-updated', data.workspace?.workItem);\n        }\n      },\n      error() {\n        this.$emit('error', I18N_WORK_ITEM_FETCH_AWARD_EMOJI_ERROR);\n      },\n    },\n  },\n  methods: {\n    async fetchAwardEmojis() {\n      this.isLoading = true;\n      try {\n        await this.$apollo.queries.awardEmoji.fetchMore({\n          variables: {\n            pageSize: DEFAULT_PAGE_SIZE_EMOJIS,\n            after: this.pageInfo?.endCursor,\n          },\n        });\n      } catch {\n        this.$emit('error', I18N_WORK_ITEM_FETCH_AWARD_EMOJI_ERROR);\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 reactions 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.awardEmoji.nodes;\n        }\n\n        // else make a copy of immutable list and return the list after adding the new emoji\n        const awardEmojiNodes = [...this.awardEmoji.nodes];\n        awardEmojiNodes.push({\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 awardEmojiNodes;\n      }\n\n      // else just filter the emoji\n      return this.awardEmoji.nodes.filter(\n        (emoji) =>\n          !(emoji.name === name && getIdFromGraphQLId(emoji.user.id) === this.currentUserId),\n      );\n    },\n    updateWorkItemAwardEmojiWidgetCache({ cache, name, toggledOn }) {\n      const query = {\n        query: projectWorkItemAwardEmojiQuery,\n        variables: {\n          fullPath: this.workItemFullpath,\n          iid: this.workItemIid,\n          pageSize: DEFAULT_PAGE_SIZE_EMOJIS,\n        },\n      };\n\n      const sourceData = cache.readQuery(query);\n\n      const newData = produce(sourceData, (draftState) => {\n        const { widgets } = draftState.workspace.workItem;\n        const widgetAwardEmoji = widgets.find((widget) => widget.type === WIDGET_TYPE_AWARD_EMOJI);\n        widgetAwardEmoji.awardEmoji.nodes = this.getAwardEmojiNodes(name, toggledOn);\n      });\n\n      cache.writeQuery({ ...query, data: newData });\n    },\n    handleAward(name) {\n      // Decide action based on emoji is already present\n      const inputVariables = {\n        awardableId: this.workItemId,\n        name,\n      };\n\n      this.$apollo\n        .mutate({\n          mutation: updateAwardEmojiMutation,\n          variables: {\n            input: inputVariables,\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            // update the cache of emoji reactions widget object\n            this.updateWorkItemAwardEmojiWidgetCache({ cache, name, toggledOn });\n          },\n        })\n        .then(\n          ({\n            data: {\n              awardEmojiToggle: { 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        });\n    },\n  },\n};\n</script>\n\n<template>\n  <div v-if=\"!isLoading\" class=\"gl-mt-3\">\n    <awards-list\n      :awards=\"awards\"\n      :can-award-emoji=\"$options.isLoggedIn\"\n      :current-user-id=\"currentUserId\"\n      :default-awards=\"$options.defaultAwards\"\n      selected-class=\"selected\"\n      @award=\"handleAward\"\n    />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_award_emoji.vue?vue&type=template&id=4dd9b9b0\"\nimport script from \"./work_item_award_emoji.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_award_emoji.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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.isLoading)?_c('div',{staticClass:\"gl-mt-3\"},[_c('awards-list',{attrs:{\"awards\":_vm.awards,\"can-award-emoji\":_vm.$options.isLoggedIn,\"current-user-id\":_vm.currentUserId,\"default-awards\":_vm.$options.defaultAwards,\"selected-class\":\"selected\"},on:{\"award\":_vm.handleAward}})],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_relationship_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!./work_item_relationship_list.vue?vue&type=script&lang=js\"","<script>\nimport DraggableList from 'vuedraggable';\n\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport { ESC_KEY_CODE } from '~/lib/utils/keycodes';\nimport { defaultSortableOptions, DRAG_DELAY } from '~/sortable/constants';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { sortableStart, sortableEnd } from '~/sortable/utils';\n\nimport WorkItemLinkChildContents from '../shared/work_item_link_child_contents.vue';\n\nimport removeLinkedItemsMutation from '../../graphql/remove_linked_items.mutation.graphql';\nimport addLinkedItemsMutation from '../../graphql/add_linked_items.mutation.graphql';\n\nimport { RELATIONSHIP_TYPE_ENUM } from '../../constants';\n\nexport default {\n  RELATIONSHIP_TYPE_ENUM,\n  components: {\n    WorkItemLinkChildContents,\n  },\n  props: {\n    parentWorkItemId: {\n      type: String,\n      required: true,\n    },\n    parentWorkItemIid: {\n      type: String,\n      required: true,\n    },\n    linkedItems: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n    relationshipType: {\n      type: String,\n      required: true,\n      validator: (value) => Object.keys(RELATIONSHIP_TYPE_ENUM).includes(value),\n    },\n    heading: {\n      type: String,\n      required: true,\n    },\n    canUpdate: {\n      type: Boolean,\n      required: true,\n    },\n    showLabels: {\n      type: Boolean,\n      required: false,\n      default: true,\n    },\n    workItemFullPath: {\n      type: String,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      dragCancelled: false,\n      updateInProgress: false,\n    };\n  },\n  computed: {\n    canReorder() {\n      return isLoggedIn() && this.canUpdate;\n    },\n    listRootComponent() {\n      return this.canReorder ? DraggableList : 'ul';\n    },\n    listOptions() {\n      return {\n        ...defaultSortableOptions,\n        animation: 0,\n        fallbackOnBody: false,\n        group: 'work-item-linked-items',\n        tag: 'ul',\n        value: this.linkedItems,\n        delay: DRAG_DELAY,\n        delayOnTouchOnly: true,\n        sort: false,\n        'data-relationship-type': this.relationshipType,\n      };\n    },\n  },\n  methods: {\n    handleKeyUp(e) {\n      if (e.keyCode === ESC_KEY_CODE) {\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    handleDragStart({ to }) {\n      sortableStart();\n      this.dragCancelled = false;\n\n      // Attach listener to detect `ESC` key press to cancel drag.\n      document.addEventListener('keyup', this.handleKeyUp.bind(this));\n\n      // Ignore click events originating from anchor elements on the next event loop\n      // Firefox fires a click event on anchor elements inside the draggable item.\n      const ignoreClickEvent = (event) => event.preventDefault();\n      to.addEventListener('click', ignoreClickEvent, { capture: true, once: true });\n\n      setTimeout(() => to.removeEventListener('click', ignoreClickEvent), 1);\n    },\n    /**\n     * Always insert to the top of the target list\n     */\n    handleMove({ from, to, dragged }) {\n      if (from.dataset.relationshipType !== to.dataset.relationshipType) {\n        // When from and to relationship types differ, allow dropping item\n        // by showing ghost element to the top of the list and cancel any\n        // other drop operation by returning false.\n        to.prepend(dragged);\n        return false;\n      }\n      // Allow item to be placed back to its original list\n      // in case user doesn't want to change relationship type by returning true.\n      return true;\n    },\n    async handleDragEnd({ from, to, item }) {\n      const fromRelationshipType = from.dataset.relationshipType;\n      const toRelationshipType = to.dataset.relationshipType;\n      const { workItemId } = item.dataset;\n      const linkedItem = this.linkedItems.find((i) => i.workItem.id === workItemId);\n\n      sortableEnd();\n\n      // Detach listener as soon as drag ends.\n      document.removeEventListener('keyup', this.handleKeyUp.bind(this));\n      // Drag was cancelled, prevent moving.\n      if (this.dragCancelled) return;\n      // Relationship type didn't change, prevent moving.\n      if (fromRelationshipType === toRelationshipType) return;\n\n      this.$emit('updateLinkedItem', {\n        linkedItem,\n        fromRelationshipType,\n        toRelationshipType,\n      });\n\n      try {\n        // Replace below two mutation calls with one when https://gitlab.com/gitlab-org/gitlab/-/issues/481896 is resolved.\n        // Remove item from the list of its original relationship type.\n        const removeRes = await this.$apollo.mutate({\n          mutation: removeLinkedItemsMutation,\n          variables: {\n            input: {\n              id: this.parentWorkItemId,\n              workItemsIds: [workItemId],\n            },\n          },\n        });\n\n        if (removeRes.data.workItemRemoveLinkedItems.errors.length) {\n          throw new Error(removeRes.data.workItemRemoveLinkedItems.errors);\n        }\n\n        // Add item to the list of its new relationship type.\n        const addRes = await this.$apollo.mutate({\n          mutation: addLinkedItemsMutation,\n          variables: {\n            input: {\n              id: this.parentWorkItemId,\n              linkType: this.$options.RELATIONSHIP_TYPE_ENUM[toRelationshipType],\n              workItemsIds: [workItemId],\n            },\n          },\n        });\n\n        if (addRes.data.workItemAddLinkedItems.errors.length) {\n          throw new Error(addRes.data.workItemAddLinkedItems.errors);\n        }\n      } catch (error) {\n        Sentry.captureException(error);\n      }\n    },\n  },\n};\n</script>\n<template>\n  <div data-testid=\"work-item-linked-items-list\" class=\"gl-p-3\">\n    <h3\n      v-if=\"heading\"\n      data-testid=\"work-items-list-heading\"\n      class=\"gl-mb-0 gl-mt-0 gl-block gl-rounded-base gl-bg-strong gl-px-3 gl-py-2 gl-text-sm gl-font-semibold gl-text-subtle\"\n    >\n      {{ heading }}\n    </h3>\n    <component\n      :is=\"listRootComponent\"\n      v-bind=\"listOptions\"\n      ref=\"list\"\n      class=\"work-items-list content-list\"\n      :class=\"{\n        'sortable-container gl-cursor-grab': canReorder,\n        'disabled-content': updateInProgress,\n      }\"\n      :move=\"handleMove\"\n      @start=\"handleDragStart\"\n      @end=\"handleDragEnd\"\n    >\n      <li\n        v-for=\"linkedItem in linkedItems\"\n        :key=\"linkedItem.workItem.id\"\n        data-testid=\"link-child-contents-container\"\n        class=\"linked-item !gl-border-x-0 !gl-border-b-1 !gl-border-t-0 !gl-border-solid !gl-px-0 !gl-py-2 last:!gl-border-b-0\"\n        :data-work-item-id=\"linkedItem.workItem.id\"\n      >\n        <work-item-link-child-contents\n          :child-item=\"linkedItem.workItem\"\n          :can-update=\"canUpdate\"\n          :show-labels=\"showLabels\"\n          :work-item-full-path=\"workItemFullPath\"\n          @click=\"$emit('showModal', { event: $event, child: linkedItem.workItem })\"\n          @removeChild=\"$emit('removeLinkedItem', linkedItem.workItem)\"\n        />\n      </li>\n    </component>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_relationship_list.vue?vue&type=template&id=61b3d50d\"\nimport script from \"./work_item_relationship_list.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_relationship_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-p-3\",attrs:{\"data-testid\":\"work-item-linked-items-list\"}},[(_vm.heading)?_c('h3',{staticClass:\"gl-mb-0 gl-mt-0 gl-block gl-rounded-base gl-bg-strong gl-px-3 gl-py-2 gl-text-sm gl-font-semibold gl-text-subtle\",attrs:{\"data-testid\":\"work-items-list-heading\"}},[_vm._v(\"\\n    \"+_vm._s(_vm.heading)+\"\\n  \")]):_vm._e(),_vm._v(\" \"),_c(_vm.listRootComponent,_vm._b({ref:\"list\",tag:\"component\",staticClass:\"work-items-list content-list\",class:{\n      'sortable-container gl-cursor-grab': _vm.canReorder,\n      'disabled-content': _vm.updateInProgress,\n    },attrs:{\"move\":_vm.handleMove},on:{\"start\":_vm.handleDragStart,\"end\":_vm.handleDragEnd}},'component',_vm.listOptions,false),_vm._l((_vm.linkedItems),function(linkedItem){return _c('li',{key:linkedItem.workItem.id,staticClass:\"linked-item !gl-border-x-0 !gl-border-b-1 !gl-border-t-0 !gl-border-solid !gl-px-0 !gl-py-2 last:!gl-border-b-0\",attrs:{\"data-testid\":\"link-child-contents-container\",\"data-work-item-id\":linkedItem.workItem.id}},[_c('work-item-link-child-contents',{attrs:{\"child-item\":linkedItem.workItem,\"can-update\":_vm.canUpdate,\"show-labels\":_vm.showLabels,\"work-item-full-path\":_vm.workItemFullPath},on:{\"click\":function($event){return _vm.$emit('showModal', { event: $event, child: linkedItem.workItem })},\"removeChild\":function($event){return _vm.$emit('removeLinkedItem', linkedItem.workItem)}}})],1)}),0)],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_add_relationship_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_add_relationship_form.vue?vue&type=script&lang=js\"","<script>\nimport { produce } from 'immer';\nimport { GlFormGroup, GlForm, GlFormRadioGroup, GlButton, GlAlert } from '@gitlab/ui';\nimport { __, s__ } from '~/locale';\nimport WorkItemTokenInput from '../shared/work_item_token_input.vue';\nimport addLinkedItemsMutation from '../../graphql/add_linked_items.mutation.graphql';\nimport workItemLinkedItemsQuery from '../../graphql/work_item_linked_items.query.graphql';\nimport { findLinkedItemsWidget } from '../../utils';\nimport {\n  LINK_ITEM_FORM_HEADER_LABEL,\n  LINKED_ITEM_TYPE_VALUE,\n  MAX_WORK_ITEMS,\n  I18N_MAX_WORK_ITEMS_ERROR_MESSAGE,\n  I18N_MAX_WORK_ITEMS_NOTE_LABEL,\n} from '../../constants';\n\nexport default {\n  components: {\n    GlForm,\n    GlButton,\n    GlFormGroup,\n    GlFormRadioGroup,\n    GlAlert,\n    WorkItemTokenInput,\n  },\n  props: {\n    isGroup: {\n      type: Boolean,\n      required: false,\n      default: false,\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: null,\n    },\n    workItemType: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    childrenIds: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n  },\n  data() {\n    return {\n      linkedItemType: LINKED_ITEM_TYPE_VALUE.RELATED,\n      linkedItemTypes: [\n        {\n          text: this.$options.i18n.relatedToLabel,\n          value: LINKED_ITEM_TYPE_VALUE.RELATED,\n        },\n        {\n          text: this.$options.i18n.blockingLabel,\n          value: LINKED_ITEM_TYPE_VALUE.BLOCKS,\n        },\n        {\n          text: this.$options.i18n.blockedByLabel,\n          value: LINKED_ITEM_TYPE_VALUE.BLOCKED_BY,\n        },\n      ],\n      workItemsToAdd: [],\n      error: null,\n      showWorkItemsToAddInvalidMessage: false,\n      isSubmitting: false,\n      searchInProgress: false,\n      maxWorkItems: MAX_WORK_ITEMS,\n    };\n  },\n  computed: {\n    linkItemFormHeaderLabel() {\n      return LINK_ITEM_FORM_HEADER_LABEL[this.workItemType];\n    },\n    workItemsToAddInvalidMessage() {\n      return this.$options.i18n.addChildErrorMessage;\n    },\n    isSubmitButtonDisabled() {\n      return this.workItemsToAdd.length <= 0 || !this.areWorkItemsToAddValid;\n    },\n    areWorkItemsToAddValid() {\n      return this.workItemsToAdd.length <= this.maxWorkItems;\n    },\n    errorMessage() {\n      return !this.areWorkItemsToAddValid ? this.$options.i18n.maxItemsErrorMessage : '';\n    },\n  },\n  methods: {\n    async linkWorkItem() {\n      try {\n        if (this.searchInProgress) {\n          return;\n        }\n        this.isSubmitting = true;\n        const {\n          data: {\n            workItemAddLinkedItems: { errors },\n          },\n        } = await this.$apollo.mutate({\n          mutation: addLinkedItemsMutation,\n          variables: {\n            input: {\n              id: this.workItemId,\n              linkType: this.linkedItemType,\n              workItemsIds: this.workItemsToAdd.map((wi) => wi.id),\n            },\n          },\n          update: (\n            cache,\n            {\n              data: {\n                workItemAddLinkedItems: { workItem },\n              },\n            },\n          ) => {\n            const queryArgs = {\n              query: workItemLinkedItemsQuery,\n              variables: { fullPath: this.workItemFullPath, iid: this.workItemIid },\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 linkedItemsWidget = findLinkedItemsWidget(draftState.workspace.workItem);\n\n                linkedItemsWidget.linkedItems = findLinkedItemsWidget(workItem)?.linkedItems;\n              }),\n            });\n          },\n        });\n\n        if (errors.length > 0) {\n          [this.error] = errors;\n          return;\n        }\n\n        this.workItemsToAdd = [];\n        this.unsetError();\n        this.showWorkItemsToAddInvalidMessage = false;\n        this.linkedItemType = LINKED_ITEM_TYPE_VALUE.RELATED;\n        this.$emit('submitted');\n      } catch (e) {\n        this.error = this.$options.i18n.addLinkedItemErrorMessage;\n      } finally {\n        this.isSubmitting = false;\n      }\n    },\n    unsetError() {\n      this.error = null;\n    },\n  },\n  i18n: {\n    addButtonLabel: __('Add'),\n    relatedToLabel: s__('WorkItem|relates to'),\n    blockingLabel: s__('WorkItem|blocks'),\n    blockedByLabel: s__('WorkItem|is blocked by'),\n    linkItemInputLabel: s__('WorkItem|the following items'),\n    addLinkedItemErrorMessage: s__(\n      'WorkItem|Something went wrong when trying to link a item. Please try again.',\n    ),\n    maxItemsNoteLabel: I18N_MAX_WORK_ITEMS_NOTE_LABEL,\n    maxItemsErrorMessage: I18N_MAX_WORK_ITEMS_ERROR_MESSAGE,\n  },\n};\n</script>\n\n<template>\n  <gl-form data-testid=\"link-work-item-form\" @submit.stop.prevent=\"linkWorkItem\">\n    <gl-alert v-if=\"error\" variant=\"danger\" class=\"gl-mb-3\" @dismiss=\"unsetError\">\n      {{ error }}\n    </gl-alert>\n    <gl-form-group\n      :label=\"linkItemFormHeaderLabel\"\n      label-for=\"linked-item-type-radio\"\n      label-class=\"label-bold\"\n      class=\"gl-mb-3\"\n    >\n      <gl-form-radio-group\n        id=\"linked-item-type-radio\"\n        v-model=\"linkedItemType\"\n        :options=\"linkedItemTypes\"\n        :checked=\"linkedItemType\"\n      />\n    </gl-form-group>\n    <p class=\"gl-mb-2 gl-font-bold\">\n      {{ $options.i18n.linkItemInputLabel }}\n    </p>\n    <div class=\"gl-mb-5\">\n      <work-item-token-input\n        v-model=\"workItemsToAdd\"\n        class=\"gl-mb-2\"\n        :parent-work-item-id=\"workItemId\"\n        :children-ids=\"childrenIds\"\n        :are-work-items-to-add-valid=\"areWorkItemsToAddValid\"\n        :full-path=\"workItemFullPath\"\n        :is-group=\"isGroup\"\n        :max-selection-limit=\"maxWorkItems\"\n        @searching=\"searchInProgress = $event\"\n      />\n      <div v-if=\"errorMessage\" class=\"gl-mb-2 gl-text-danger\">\n        {{ $options.i18n.maxItemsErrorMessage }}\n      </div>\n      <div v-if=\"!errorMessage\" data-testid=\"max-work-item-note\" class=\"gl-text-subtle\">\n        {{ $options.i18n.maxItemsNoteLabel }}\n      </div>\n      <div\n        v-if=\"showWorkItemsToAddInvalidMessage\"\n        class=\"gl-text-danger\"\n        data-testid=\"work-items-invalid\"\n      >\n        {{ workItemsToAddInvalidMessage }}\n      </div>\n    </div>\n    <div class=\"gl-flex gl-gap-3\">\n      <gl-button\n        data-testid=\"link-work-item-button\"\n        category=\"primary\"\n        variant=\"confirm\"\n        size=\"small\"\n        type=\"submit\"\n        :disabled=\"isSubmitButtonDisabled\"\n        :loading=\"isSubmitting\"\n      >\n        {{ $options.i18n.addButtonLabel }}\n      </gl-button>\n      <gl-button category=\"secondary\" size=\"small\" @click=\"$emit('cancel')\">\n        {{ s__('WorkItem|Cancel') }}\n      </gl-button>\n    </div>\n  </gl-form>\n</template>\n","import { render, staticRenderFns } from \"./work_item_add_relationship_form.vue?vue&type=template&id=c08fdd22\"\nimport script from \"./work_item_add_relationship_form.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_add_relationship_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('gl-form',{attrs:{\"data-testid\":\"link-work-item-form\"},on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.linkWorkItem.apply(null, arguments)}}},[(_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-form-group',{staticClass:\"gl-mb-3\",attrs:{\"label\":_vm.linkItemFormHeaderLabel,\"label-for\":\"linked-item-type-radio\",\"label-class\":\"label-bold\"}},[_c('gl-form-radio-group',{attrs:{\"id\":\"linked-item-type-radio\",\"options\":_vm.linkedItemTypes,\"checked\":_vm.linkedItemType},model:{value:(_vm.linkedItemType),callback:function ($$v) {_vm.linkedItemType=$$v},expression:\"linkedItemType\"}})],1),_vm._v(\" \"),_c('p',{staticClass:\"gl-mb-2 gl-font-bold\"},[_vm._v(\"\\n    \"+_vm._s(_vm.$options.i18n.linkItemInputLabel)+\"\\n  \")]),_vm._v(\" \"),_c('div',{staticClass:\"gl-mb-5\"},[_c('work-item-token-input',{staticClass:\"gl-mb-2\",attrs:{\"parent-work-item-id\":_vm.workItemId,\"children-ids\":_vm.childrenIds,\"are-work-items-to-add-valid\":_vm.areWorkItemsToAddValid,\"full-path\":_vm.workItemFullPath,\"is-group\":_vm.isGroup,\"max-selection-limit\":_vm.maxWorkItems},on:{\"searching\":function($event){_vm.searchInProgress = $event}},model:{value:(_vm.workItemsToAdd),callback:function ($$v) {_vm.workItemsToAdd=$$v},expression:\"workItemsToAdd\"}}),_vm._v(\" \"),(_vm.errorMessage)?_c('div',{staticClass:\"gl-mb-2 gl-text-danger\"},[_vm._v(\"\\n      \"+_vm._s(_vm.$options.i18n.maxItemsErrorMessage)+\"\\n    \")]):_vm._e(),_vm._v(\" \"),(!_vm.errorMessage)?_c('div',{staticClass:\"gl-text-subtle\",attrs:{\"data-testid\":\"max-work-item-note\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.$options.i18n.maxItemsNoteLabel)+\"\\n    \")]):_vm._e(),_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()],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-gap-3\"},[_c('gl-button',{attrs:{\"data-testid\":\"link-work-item-button\",\"category\":\"primary\",\"variant\":\"confirm\",\"size\":\"small\",\"type\":\"submit\",\"disabled\":_vm.isSubmitButtonDisabled,\"loading\":_vm.isSubmitting}},[_vm._v(\"\\n      \"+_vm._s(_vm.$options.i18n.addButtonLabel)+\"\\n    \")]),_vm._v(\" \"),_c('gl-button',{attrs:{\"category\":\"secondary\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_vm._v(\"\\n      \"+_vm._s(_vm.s__('WorkItem|Cancel'))+\"\\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!./work_item_relationships.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.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_relationships.vue?vue&type=script&lang=js\"","<script>\nimport { produce } from 'immer';\nimport { GlAlert, GlButton, GlBadge } from '@gitlab/ui';\nimport { cloneDeep } from 'lodash';\n\nimport { s__, n__, sprintf } from '~/locale';\nimport CrudComponent from '~/vue_shared/components/crud_component.vue';\n\nimport workItemLinkedItemsQuery from '../../graphql/work_item_linked_items.query.graphql';\nimport removeLinkedItemsMutation from '../../graphql/remove_linked_items.mutation.graphql';\nimport {\n  findLinkedItemsWidget,\n  saveToggleToLocalStorage,\n  getToggleFromLocalStorage,\n  isItemDisplayable,\n} from '../../utils';\nimport {\n  LINKED_CATEGORIES_MAP,\n  LINKED_ITEMS_ANCHOR,\n  WORKITEM_RELATIONSHIPS_SHOWLABELS_LOCALSTORAGEKEY,\n  WORKITEM_RELATIONSHIPS_SHOWCLOSED_LOCALSTORAGEKEY,\n  sprintfWorkItem,\n} from '../../constants';\n\nimport WorkItemMoreActions from '../shared/work_item_more_actions.vue';\nimport WorkItemRelationshipList from './work_item_relationship_list.vue';\nimport WorkItemAddRelationshipForm from './work_item_add_relationship_form.vue';\n\nexport default {\n  linkedCategories: LINKED_CATEGORIES_MAP,\n  components: {\n    GlAlert,\n    GlButton,\n    GlBadge,\n    CrudComponent,\n    WorkItemRelationshipList,\n    WorkItemAddRelationshipForm,\n    WorkItemMoreActions,\n  },\n  props: {\n    isGroup: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    workItemId: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    workItemIid: {\n      type: String,\n      required: true,\n    },\n    workItemFullPath: {\n      type: String,\n      required: true,\n    },\n    canAdminWorkItemLink: {\n      type: Boolean,\n      required: true,\n    },\n    workItemType: {\n      type: String,\n      required: false,\n      default: null,\n    },\n  },\n  apollo: {\n    linkedWorkItems: {\n      query: workItemLinkedItemsQuery,\n      variables() {\n        return {\n          fullPath: this.workItemFullPath,\n          iid: this.workItemIid,\n        };\n      },\n      skip() {\n        return !this.workItemIid;\n      },\n      update({ workspace }) {\n        if (!workspace?.workItem) return [];\n\n        return findLinkedItemsWidget(workspace.workItem).linkedItems?.nodes || [];\n      },\n      async result() {\n        // When work items are switched in a modal, the data props are not getting reset.\n        // Thus, duplicating the work items in the list.\n        // Here, the existing list are cleared before the new items are pushed.\n        this.linksRelatesTo = [];\n        this.linksIsBlockedBy = [];\n        this.linksBlocks = [];\n\n        this.linkedWorkItems.forEach((item) => {\n          if (item.linkType === LINKED_CATEGORIES_MAP.RELATES_TO) {\n            this.linksRelatesTo.push(item);\n          } else if (item.linkType === LINKED_CATEGORIES_MAP.IS_BLOCKED_BY) {\n            this.linksIsBlockedBy.push(item);\n          } else if (item.linkType === LINKED_CATEGORIES_MAP.BLOCKS) {\n            this.linksBlocks.push(item);\n          }\n        });\n      },\n      error(e) {\n        this.error = e.message || this.$options.i18n.fetchError;\n      },\n    },\n  },\n  data() {\n    return {\n      error: '',\n      linksRelatesTo: [],\n      linksIsBlockedBy: [],\n      linksBlocks: [],\n      widgetName: LINKED_ITEMS_ANCHOR,\n      showLabels: true,\n      showClosed: true,\n      linkedWorkItems: [],\n      showLabelsLocalStorageKey: WORKITEM_RELATIONSHIPS_SHOWLABELS_LOCALSTORAGEKEY,\n      showClosedLocalStorageKey: WORKITEM_RELATIONSHIPS_SHOWCLOSED_LOCALSTORAGEKEY,\n    };\n  },\n  computed: {\n    isLoading() {\n      return this.$apollo.queries.linkedWorkItems.loading;\n    },\n    childrenIds() {\n      return this.linkedWorkItems.map((item) => item.workItem.id);\n    },\n    linkedWorkItemsCount() {\n      return this.linkedWorkItems.length;\n    },\n    isEmptyRelatedWorkItems() {\n      return !this.error && this.linkedWorkItems.length === 0;\n    },\n    hasAllLinkedItemsHidden() {\n      return this.displayableLinks(this.linkedWorkItems).length === 0;\n    },\n    countBadgeAriaLabel() {\n      const message = sprintf(\n        n__(\n          'WorkItem|%{workItemType} has 1 linked item',\n          'WorkItem|%{workItemType} has %{itemCount} linked items',\n          this.linkedWorkItemsCount,\n        ),\n        { itemCount: this.linkedWorkItemsCount },\n      );\n      return sprintfWorkItem(message, this.workItemType);\n    },\n    openRelatesToLinks() {\n      return this.displayableLinks(this.linksRelatesTo);\n    },\n    openIsBlockedByLinks() {\n      return this.displayableLinks(this.linksIsBlockedBy);\n    },\n    openBlocksLinks() {\n      return this.displayableLinks(this.linksBlocks);\n    },\n  },\n  mounted() {\n    this.showLabels = getToggleFromLocalStorage(this.showLabelsLocalStorageKey);\n    this.showClosed = getToggleFromLocalStorage(this.showClosedLocalStorageKey);\n  },\n  methods: {\n    showLinkItemForm() {\n      this.$refs.widget.showForm();\n    },\n    hideLinkItemForm() {\n      this.$refs.widget.hideForm();\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    /**\n     * We are relying on calling two mutations sequentially to achieve drag and drop\n     * until https://gitlab.com/gitlab-org/gitlab/-/issues/481896 is resolved.\n     * So to update placement of item on UI, we need to manually remove it from source\n     * list and put it to target list.\n     */\n    updateLinkedItem({ linkedItem, fromRelationshipType, toRelationshipType }) {\n      // Remove from source list\n      switch (fromRelationshipType) {\n        case this.$options.linkedCategories.RELATES_TO:\n          this.linksRelatesTo = this.linksRelatesTo.filter(\n            (item) => item.linkId !== linkedItem.linkId,\n          );\n          break;\n        case this.$options.linkedCategories.IS_BLOCKED_BY:\n          this.linksIsBlockedBy = this.linksIsBlockedBy.filter(\n            (item) => item.linkId !== linkedItem.linkId,\n          );\n          break;\n        case this.$options.linkedCategories.BLOCKS:\n          this.linksBlocks = this.linksBlocks.filter((item) => item.linkId !== linkedItem.linkId);\n          break;\n        default:\n          break;\n      }\n\n      // Clone the object before updating its relationship type\n      const updatingLinkedItem = cloneDeep(linkedItem);\n      updatingLinkedItem.linkType = toRelationshipType;\n\n      // Add to target list\n      switch (toRelationshipType) {\n        case this.$options.linkedCategories.RELATES_TO:\n          this.linksRelatesTo.unshift(updatingLinkedItem);\n          break;\n        case this.$options.linkedCategories.IS_BLOCKED_BY:\n          this.linksIsBlockedBy.unshift(updatingLinkedItem);\n          break;\n        case this.$options.linkedCategories.BLOCKS:\n          this.linksBlocks.unshift(updatingLinkedItem);\n          break;\n        default:\n          break;\n      }\n    },\n    async removeLinkedItem(linkedItem) {\n      try {\n        const {\n          data: {\n            workItemRemoveLinkedItems: { errors },\n          },\n        } = await this.$apollo.mutate({\n          mutation: removeLinkedItemsMutation,\n          variables: {\n            input: {\n              id: this.workItemId,\n              workItemsIds: [linkedItem.id],\n            },\n          },\n          update: (cache, { data: { workItemRemoveLinkedItems } }) => {\n            const errorMessages = workItemRemoveLinkedItems?.errors;\n            if (errorMessages && errorMessages.length > 0) {\n              [this.error] = errorMessages;\n              return;\n            }\n            const queryArgs = {\n              query: workItemLinkedItemsQuery,\n              variables: { fullPath: this.workItemFullPath, iid: this.workItemIid },\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 linkedItems =\n                  findLinkedItemsWidget(draftState.workspace.workItem).linkedItems?.nodes || [];\n                const index = linkedItems.findIndex((item) => {\n                  return item.workItem.id === linkedItem.id;\n                });\n                linkedItems.splice(index, 1);\n              }),\n            });\n          },\n        });\n\n        if (errors.length > 0) {\n          [this.error] = errors;\n          return;\n        }\n\n        this.$toast.show(s__('WorkItem|Linked item removed'));\n      } catch {\n        this.error = this.$options.i18n.removeLinkedItemErrorMessage;\n      }\n    },\n    displayableLinks(items) {\n      return items.filter((item) => isItemDisplayable(item.workItem, this.showClosed));\n    },\n  },\n  i18n: {\n    title: s__('WorkItem|Linked items'),\n    fetchError: s__('WorkItem|Something went wrong when fetching items. Please refresh this page.'),\n    emptyStateMessage: s__(\n      \"WorkItem|Link items together to show that they're related or that one is blocking others.\",\n    ),\n    noLinkedItemsOpen: s__('WorkItem|No linked items are currently open.'),\n    removeLinkedItemErrorMessage: s__(\n      'WorkItem|Something went wrong when removing item. Please refresh this page.',\n    ),\n    addChildButtonLabel: s__('WorkItem|Add'),\n    relatedToTitle: s__('WorkItem|Related to'),\n    blockingTitle: s__('WorkItem|Blocking'),\n    blockedByTitle: s__('WorkItem|Blocked by'),\n    addLinkedWorkItemButtonLabel: s__('WorkItem|Add'),\n  },\n};\n</script>\n<template>\n  <crud-component\n    ref=\"widget\"\n    :anchor-id=\"widgetName\"\n    :title=\"$options.i18n.title\"\n    :is-loading=\"isLoading\"\n    is-collapsible\n    persist-collapsed-state\n    data-testid=\"work-item-relationships\"\n  >\n    <template #count>\n      <gl-badge\n        :aria-label=\"countBadgeAriaLabel\"\n        data-testid=\"linked-items-count-bage\"\n        variant=\"muted\"\n      >\n        {{ linkedWorkItemsCount }}\n      </gl-badge>\n    </template>\n\n    <template #actions>\n      <gl-button\n        v-if=\"canAdminWorkItemLink\"\n        data-testid=\"link-item-add-button\"\n        size=\"small\"\n        @click=\"showLinkItemForm\"\n      >\n        <slot name=\"add-button-text\">{{ $options.i18n.addLinkedWorkItemButtonLabel }}</slot>\n      </gl-button>\n      <work-item-more-actions\n        :work-item-iid=\"workItemIid\"\n        :full-path=\"workItemFullPath\"\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 #form>\n      <work-item-add-relationship-form\n        :is-group=\"isGroup\"\n        :work-item-id=\"workItemId\"\n        :work-item-iid=\"workItemIid\"\n        :work-item-full-path=\"workItemFullPath\"\n        :children-ids=\"childrenIds\"\n        :work-item-type=\"workItemType\"\n        @submitted=\"hideLinkItemForm\"\n        @cancel=\"hideLinkItemForm\"\n      />\n    </template>\n\n    <template v-if=\"isEmptyRelatedWorkItems\" #empty>\n      {{ $options.i18n.emptyStateMessage }}\n    </template>\n\n    <template #default>\n      <gl-alert v-if=\"error\" variant=\"danger\" @dismiss=\"error = undefined\">\n        {{ error }}\n      </gl-alert>\n\n      <work-item-relationship-list\n        v-if=\"openBlocksLinks.length\"\n        :parent-work-item-id=\"workItemId\"\n        :parent-work-item-iid=\"workItemIid\"\n        :linked-items=\"openBlocksLinks\"\n        :relationship-type=\"$options.linkedCategories.BLOCKS\"\n        :heading=\"$options.i18n.blockingTitle\"\n        :can-update=\"canAdminWorkItemLink\"\n        :show-labels=\"showLabels\"\n        :work-item-full-path=\"workItemFullPath\"\n        @showModal=\"\n          $emit('showModal', {\n            event: $event.event,\n            modalWorkItem: $event.child,\n            context: widgetName,\n          })\n        \"\n        @removeLinkedItem=\"removeLinkedItem\"\n        @updateLinkedItem=\"updateLinkedItem\"\n      />\n      <work-item-relationship-list\n        v-if=\"openIsBlockedByLinks.length\"\n        :parent-work-item-id=\"workItemId\"\n        :parent-work-item-iid=\"workItemIid\"\n        :linked-items=\"openIsBlockedByLinks\"\n        :relationship-type=\"$options.linkedCategories.IS_BLOCKED_BY\"\n        :heading=\"$options.i18n.blockedByTitle\"\n        :can-update=\"canAdminWorkItemLink\"\n        :show-labels=\"showLabels\"\n        :work-item-full-path=\"workItemFullPath\"\n        @showModal=\"\n          $emit('showModal', {\n            event: $event.event,\n            modalWorkItem: $event.child,\n            context: widgetName,\n          })\n        \"\n        @removeLinkedItem=\"removeLinkedItem\"\n        @updateLinkedItem=\"updateLinkedItem\"\n      />\n      <work-item-relationship-list\n        v-if=\"openRelatesToLinks.length\"\n        :parent-work-item-id=\"workItemId\"\n        :parent-work-item-iid=\"workItemIid\"\n        :linked-items=\"openRelatesToLinks\"\n        :relationship-type=\"$options.linkedCategories.RELATES_TO\"\n        :heading=\"$options.i18n.relatedToTitle\"\n        :can-update=\"canAdminWorkItemLink\"\n        :show-labels=\"showLabels\"\n        :work-item-full-path=\"workItemFullPath\"\n        @showModal=\"\n          $emit('showModal', {\n            event: $event.event,\n            modalWorkItem: $event.child,\n            context: widgetName,\n          })\n        \"\n        @removeLinkedItem=\"removeLinkedItem\"\n        @updateLinkedItem=\"updateLinkedItem\"\n      />\n\n      <div\n        v-if=\"hasAllLinkedItemsHidden\"\n        class=\"gl-text-subtle\"\n        data-testid=\"work-item-no-linked-items-open\"\n      >\n        {{ $options.i18n.noLinkedItemsOpen }}\n      </div>\n    </template>\n  </crud-component>\n</template>\n","import { render, staticRenderFns } from \"./work_item_relationships.vue?vue&type=template&id=6b924b22\"\nimport script from \"./work_item_relationships.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_relationships.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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:\"widget\",attrs:{\"anchor-id\":_vm.widgetName,\"title\":_vm.$options.i18n.title,\"is-loading\":_vm.isLoading,\"is-collapsible\":\"\",\"persist-collapsed-state\":\"\",\"data-testid\":\"work-item-relationships\"},scopedSlots:_vm._u([{key:\"count\",fn:function(){return [_c('gl-badge',{attrs:{\"aria-label\":_vm.countBadgeAriaLabel,\"data-testid\":\"linked-items-count-bage\",\"variant\":\"muted\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.linkedWorkItemsCount)+\"\\n    \")])]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.canAdminWorkItemLink)?_c('gl-button',{attrs:{\"data-testid\":\"link-item-add-button\",\"size\":\"small\"},on:{\"click\":_vm.showLinkItemForm}},[_vm._t(\"add-button-text\",function(){return [_vm._v(_vm._s(_vm.$options.i18n.addLinkedWorkItemButtonLabel))]})],2):_vm._e(),_vm._v(\" \"),_c('work-item-more-actions',{attrs:{\"work-item-iid\":_vm.workItemIid,\"full-path\":_vm.workItemFullPath,\"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},{key:\"form\",fn:function(){return [_c('work-item-add-relationship-form',{attrs:{\"is-group\":_vm.isGroup,\"work-item-id\":_vm.workItemId,\"work-item-iid\":_vm.workItemIid,\"work-item-full-path\":_vm.workItemFullPath,\"children-ids\":_vm.childrenIds,\"work-item-type\":_vm.workItemType},on:{\"submitted\":_vm.hideLinkItemForm,\"cancel\":_vm.hideLinkItemForm}})]},proxy:true},(_vm.isEmptyRelatedWorkItems)?{key:\"empty\",fn:function(){return [_vm._v(\"\\n    \"+_vm._s(_vm.$options.i18n.emptyStateMessage)+\"\\n  \")]},proxy:true}:null,{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.openBlocksLinks.length)?_c('work-item-relationship-list',{attrs:{\"parent-work-item-id\":_vm.workItemId,\"parent-work-item-iid\":_vm.workItemIid,\"linked-items\":_vm.openBlocksLinks,\"relationship-type\":_vm.$options.linkedCategories.BLOCKS,\"heading\":_vm.$options.i18n.blockingTitle,\"can-update\":_vm.canAdminWorkItemLink,\"show-labels\":_vm.showLabels,\"work-item-full-path\":_vm.workItemFullPath},on:{\"showModal\":function($event){return _vm.$emit('showModal', {\n          event: $event.event,\n          modalWorkItem: $event.child,\n          context: _vm.widgetName,\n        })},\"removeLinkedItem\":_vm.removeLinkedItem,\"updateLinkedItem\":_vm.updateLinkedItem}}):_vm._e(),_vm._v(\" \"),(_vm.openIsBlockedByLinks.length)?_c('work-item-relationship-list',{attrs:{\"parent-work-item-id\":_vm.workItemId,\"parent-work-item-iid\":_vm.workItemIid,\"linked-items\":_vm.openIsBlockedByLinks,\"relationship-type\":_vm.$options.linkedCategories.IS_BLOCKED_BY,\"heading\":_vm.$options.i18n.blockedByTitle,\"can-update\":_vm.canAdminWorkItemLink,\"show-labels\":_vm.showLabels,\"work-item-full-path\":_vm.workItemFullPath},on:{\"showModal\":function($event){return _vm.$emit('showModal', {\n          event: $event.event,\n          modalWorkItem: $event.child,\n          context: _vm.widgetName,\n        })},\"removeLinkedItem\":_vm.removeLinkedItem,\"updateLinkedItem\":_vm.updateLinkedItem}}):_vm._e(),_vm._v(\" \"),(_vm.openRelatesToLinks.length)?_c('work-item-relationship-list',{attrs:{\"parent-work-item-id\":_vm.workItemId,\"parent-work-item-iid\":_vm.workItemIid,\"linked-items\":_vm.openRelatesToLinks,\"relationship-type\":_vm.$options.linkedCategories.RELATES_TO,\"heading\":_vm.$options.i18n.relatedToTitle,\"can-update\":_vm.canAdminWorkItemLink,\"show-labels\":_vm.showLabels,\"work-item-full-path\":_vm.workItemFullPath},on:{\"showModal\":function($event){return _vm.$emit('showModal', {\n          event: $event.event,\n          modalWorkItem: $event.child,\n          context: _vm.widgetName,\n        })},\"removeLinkedItem\":_vm.removeLinkedItem,\"updateLinkedItem\":_vm.updateLinkedItem}}):_vm._e(),_vm._v(\" \"),(_vm.hasAllLinkedItemsHidden)?_c('div',{staticClass:\"gl-text-subtle\",attrs:{\"data-testid\":\"work-item-no-linked-items-open\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.$options.i18n.noLinkedItemsOpen)+\"\\n    \")]):_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!./work_item_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!./work_item_sticky_header.vue?vue&type=script&lang=js\"","<script>\nimport { GlLoadingIcon, GlIntersectionObserver, GlButton, GlLink } from '@gitlab/ui';\nimport LockedBadge from '~/issuable/components/locked_badge.vue';\nimport { WORKSPACE_PROJECT } from '~/issues/constants';\nimport ConfidentialityBadge from '~/vue_shared/components/confidentiality_badge.vue';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { isNotesWidget } from '../utils';\nimport WorkItemActions from './work_item_actions.vue';\nimport TodosToggle from './shared/todos_toggle.vue';\nimport WorkItemStateBadge from './work_item_state_badge.vue';\nimport WorkItemNotificationsWidget from './work_item_notifications_widget.vue';\n\nexport default {\n  components: {\n    LockedBadge,\n    GlIntersectionObserver,\n    GlLoadingIcon,\n    WorkItemActions,\n    TodosToggle,\n    ConfidentialityBadge,\n    WorkItemStateBadge,\n    WorkItemNotificationsWidget,\n    GlButton,\n    GlLink,\n  },\n  mixins: [glFeatureFlagMixin()],\n  props: {\n    workItem: {\n      type: Object,\n      required: true,\n    },\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    isStickyHeaderShowing: {\n      type: Boolean,\n      required: true,\n    },\n    workItemNotificationsSubscribed: {\n      type: Boolean,\n      required: true,\n    },\n    updateInProgress: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    parentWorkItemConfidentiality: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    parentId: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    showWorkItemCurrentUserTodos: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isModal: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    currentUserTodos: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n    workItemAuthorId: {\n      type: Number,\n      required: false,\n      default: 0,\n    },\n    isGroup: {\n      type: Boolean,\n      required: true,\n    },\n    allowedChildTypes: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n  },\n  computed: {\n    canUpdate() {\n      return this.workItem.userPermissions?.updateWorkItem;\n    },\n    canDelete() {\n      return this.workItem.userPermissions?.deleteWorkItem;\n    },\n    isDiscussionLocked() {\n      return this.workItem.widgets?.find(isNotesWidget)?.discussionLocked;\n    },\n    workItemType() {\n      return this.workItem.workItemType?.name;\n    },\n    workItemTypeId() {\n      return this.workItem.workItemType?.id;\n    },\n    projectFullPath() {\n      return this.workItem.namespace?.fullPath;\n    },\n    workItemState() {\n      return this.workItem.state;\n    },\n    newTodoAndNotificationsEnabled() {\n      return this.glFeatures.notificationsTodosButtons;\n    },\n    widgets() {\n      return this.workItem.widgets;\n    },\n  },\n  WORKSPACE_PROJECT,\n};\n</script>\n\n<template>\n  <gl-intersection-observer\n    @appear=\"$emit('hideStickyHeader')\"\n    @disappear=\"$emit('showStickyHeader')\"\n  >\n    <transition name=\"issuable-header-slide\">\n      <div\n        v-if=\"isStickyHeaderShowing\"\n        class=\"issue-sticky-header gl-border-b gl-fixed gl-z-3 gl-bg-default gl-py-2\"\n        data-testid=\"work-item-sticky-header\"\n      >\n        <div\n          class=\"work-item-sticky-header-text gl-mx-auto gl-flex gl-items-center gl-gap-3 gl-px-5 xl:gl-px-6\"\n        >\n          <work-item-state-badge v-if=\"workItemState\" :work-item-state=\"workItemState\" />\n          <gl-loading-icon v-if=\"updateInProgress\" />\n          <confidentiality-badge\n            v-if=\"workItem.confidential\"\n            :issuable-type=\"workItemType\"\n            :workspace-type=\"$options.WORKSPACE_PROJECT\"\n            hide-text-in-small-screens\n          />\n          <locked-badge v-if=\"isDiscussionLocked\" :issuable-type=\"workItemType\" />\n          <gl-link\n            class=\"gl-mr-auto gl-block gl-truncate gl-pr-3 gl-font-bold gl-text-strong\"\n            href=\"#top\"\n            :title=\"workItem.title\"\n          >\n            {{ workItem.title }}\n          </gl-link>\n          <gl-button\n            v-if=\"canUpdate\"\n            category=\"secondary\"\n            data-testid=\"work-item-edit-button-sticky\"\n            class=\"shortcut-edit-wi-description\"\n            @click=\"$emit('toggleEditMode')\"\n          >\n            {{ __('Edit') }}\n          </gl-button>\n          <todos-toggle\n            v-if=\"showWorkItemCurrentUserTodos\"\n            :item-id=\"workItem.id\"\n            :current-user-todos=\"currentUserTodos\"\n            todos-button-type=\"secondary\"\n            @todosUpdated=\"$emit('todosUpdated', $event)\"\n            @error=\"updateError = $event\"\n          />\n          <work-item-notifications-widget\n            v-if=\"newTodoAndNotificationsEnabled\"\n            :full-path=\"fullPath\"\n            :work-item-id=\"workItem.id\"\n            :subscribed-to-notifications=\"workItemNotificationsSubscribed\"\n            :can-update=\"canUpdate\"\n            @error=\"$emit('error')\"\n          />\n          <work-item-actions\n            :full-path=\"fullPath\"\n            :work-item-id=\"workItem.id\"\n            :work-item-iid=\"workItem.iid\"\n            :hide-subscribe=\"newTodoAndNotificationsEnabled\"\n            :subscribed-to-notifications=\"workItemNotificationsSubscribed\"\n            :work-item-type=\"workItemType\"\n            :work-item-type-id=\"workItemTypeId\"\n            :can-delete=\"canDelete\"\n            :can-update=\"canUpdate\"\n            :is-confidential=\"workItem.confidential\"\n            :is-discussion-locked=\"isDiscussionLocked\"\n            :is-parent-confidential=\"parentWorkItemConfidentiality\"\n            :work-item-reference=\"workItem.reference\"\n            :work-item-create-note-email=\"workItem.createNoteEmail\"\n            :work-item-state=\"workItem.state\"\n            :is-modal=\"isModal\"\n            :work-item-author-id=\"workItemAuthorId\"\n            :is-group=\"isGroup\"\n            :widgets=\"widgets\"\n            :allowed-child-types=\"allowedChildTypes\"\n            :parent-id=\"parentId\"\n            @deleteWorkItem=\"$emit('deleteWorkItem')\"\n            @toggleWorkItemConfidentiality=\"\n              $emit('toggleWorkItemConfidentiality', !workItem.confidential)\n            \"\n            @error=\"$emit('error')\"\n            @promotedToObjective=\"$emit('promotedToObjective')\"\n            @workItemTypeChanged=\"$emit('workItemTypeChanged')\"\n            @workItemStateUpdated=\"$emit('workItemStateUpdated')\"\n            @toggleReportAbuseModal=\"$emit('toggleReportAbuseModal', true)\"\n          />\n        </div>\n      </div>\n    </transition>\n  </gl-intersection-observer>\n</template>\n","import { render, staticRenderFns } from \"./work_item_sticky_header.vue?vue&type=template&id=5759b36f\"\nimport script from \"./work_item_sticky_header.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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('hideStickyHeader')},\"disappear\":function($event){return _vm.$emit('showStickyHeader')}}},[_c('transition',{attrs:{\"name\":\"issuable-header-slide\"}},[(_vm.isStickyHeaderShowing)?_c('div',{staticClass:\"issue-sticky-header gl-border-b gl-fixed gl-z-3 gl-bg-default gl-py-2\",attrs:{\"data-testid\":\"work-item-sticky-header\"}},[_c('div',{staticClass:\"work-item-sticky-header-text gl-mx-auto gl-flex gl-items-center gl-gap-3 gl-px-5 xl:gl-px-6\"},[(_vm.workItemState)?_c('work-item-state-badge',{attrs:{\"work-item-state\":_vm.workItemState}}):_vm._e(),_vm._v(\" \"),(_vm.updateInProgress)?_c('gl-loading-icon'):_vm._e(),_vm._v(\" \"),(_vm.workItem.confidential)?_c('confidentiality-badge',{attrs:{\"issuable-type\":_vm.workItemType,\"workspace-type\":_vm.$options.WORKSPACE_PROJECT,\"hide-text-in-small-screens\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.isDiscussionLocked)?_c('locked-badge',{attrs:{\"issuable-type\":_vm.workItemType}}):_vm._e(),_vm._v(\" \"),_c('gl-link',{staticClass:\"gl-mr-auto gl-block gl-truncate gl-pr-3 gl-font-bold gl-text-strong\",attrs:{\"href\":\"#top\",\"title\":_vm.workItem.title}},[_vm._v(\"\\n          \"+_vm._s(_vm.workItem.title)+\"\\n        \")]),_vm._v(\" \"),(_vm.canUpdate)?_c('gl-button',{staticClass:\"shortcut-edit-wi-description\",attrs:{\"category\":\"secondary\",\"data-testid\":\"work-item-edit-button-sticky\"},on:{\"click\":function($event){return _vm.$emit('toggleEditMode')}}},[_vm._v(\"\\n          \"+_vm._s(_vm.__('Edit'))+\"\\n        \")]):_vm._e(),_vm._v(\" \"),(_vm.showWorkItemCurrentUserTodos)?_c('todos-toggle',{attrs:{\"item-id\":_vm.workItem.id,\"current-user-todos\":_vm.currentUserTodos,\"todos-button-type\":\"secondary\"},on:{\"todosUpdated\":function($event){return _vm.$emit('todosUpdated', $event)},\"error\":function($event){_vm.updateError = $event}}}):_vm._e(),_vm._v(\" \"),(_vm.newTodoAndNotificationsEnabled)?_c('work-item-notifications-widget',{attrs:{\"full-path\":_vm.fullPath,\"work-item-id\":_vm.workItem.id,\"subscribed-to-notifications\":_vm.workItemNotificationsSubscribed,\"can-update\":_vm.canUpdate},on:{\"error\":function($event){return _vm.$emit('error')}}}):_vm._e(),_vm._v(\" \"),_c('work-item-actions',{attrs:{\"full-path\":_vm.fullPath,\"work-item-id\":_vm.workItem.id,\"work-item-iid\":_vm.workItem.iid,\"hide-subscribe\":_vm.newTodoAndNotificationsEnabled,\"subscribed-to-notifications\":_vm.workItemNotificationsSubscribed,\"work-item-type\":_vm.workItemType,\"work-item-type-id\":_vm.workItemTypeId,\"can-delete\":_vm.canDelete,\"can-update\":_vm.canUpdate,\"is-confidential\":_vm.workItem.confidential,\"is-discussion-locked\":_vm.isDiscussionLocked,\"is-parent-confidential\":_vm.parentWorkItemConfidentiality,\"work-item-reference\":_vm.workItem.reference,\"work-item-create-note-email\":_vm.workItem.createNoteEmail,\"work-item-state\":_vm.workItem.state,\"is-modal\":_vm.isModal,\"work-item-author-id\":_vm.workItemAuthorId,\"is-group\":_vm.isGroup,\"widgets\":_vm.widgets,\"allowed-child-types\":_vm.allowedChildTypes,\"parent-id\":_vm.parentId},on:{\"deleteWorkItem\":function($event){return _vm.$emit('deleteWorkItem')},\"toggleWorkItemConfidentiality\":function($event){return _vm.$emit('toggleWorkItemConfidentiality', !_vm.workItem.confidential)},\"error\":function($event){return _vm.$emit('error')},\"promotedToObjective\":function($event){return _vm.$emit('promotedToObjective')},\"workItemTypeChanged\":function($event){return _vm.$emit('workItemTypeChanged')},\"workItemStateUpdated\":function($event){return _vm.$emit('workItemStateUpdated')},\"toggleReportAbuseModal\":function($event){return _vm.$emit('toggleReportAbuseModal', true)}}})],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!./disclosure_hierarchy_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!./disclosure_hierarchy_item.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport iconSpriteInfo from '@gitlab/svgs/dist/icons.json';\nimport { GlIcon, GlLink } from '@gitlab/ui';\nimport { ISSUABLE_EPIC } from '../../constants';\n\nexport default {\n  components: {\n    GlIcon,\n    GlLink,\n  },\n  props: {\n    /**\n     * Path item in the form:\n     * ```\n     * {\n     *   title:    String, required\n     *   icon:     String, optional\n     *   ancestorNotAvailable: Boolean, optional\n     * }\n     * ```\n     */\n    item: {\n      type: Object,\n      required: false,\n      default: () => {},\n    },\n    itemId: {\n      type: String,\n      required: false,\n      default: null,\n    },\n  },\n  methods: {\n    shouldDisplayIcon(icon) {\n      if (icon === ISSUABLE_EPIC) return true;\n      return icon && iconSpriteInfo.icons.includes(icon);\n    },\n  },\n};\n</script>\n\n<template>\n  <li class=\"disclosure-hierarchy-item gl-flex gl-min-w-0\">\n    <gl-link\n      :id=\"itemId\"\n      :href=\"item.webUrl\"\n      class=\"disclosure-hierarchy-button hover:gl-no-underline active:!gl-no-underline\"\n      :class=\"{ 'gl-cursor-help': item.ancestorNotAvailable }\"\n    >\n      <gl-icon v-if=\"shouldDisplayIcon(item.icon)\" :name=\"item.icon\" class=\"gl-mx-2 gl-shrink-0\" />\n      <span class=\"gl-z-200 gl-truncate\">{{ item.title }}</span>\n    </gl-link>\n    <!--\n      @slot Additional content to be displayed in an item.\n      @binding {Object} item The item being rendered.\n      @binding {String} itemId The rendered item's ID.\n    -->\n    <slot :item=\"item\" :item-id=\"itemId\"></slot>\n  </li>\n</template>\n","import { render, staticRenderFns } from \"./disclosure_hierarchy_item.vue?vue&type=template&id=53352bbc\"\nimport script from \"./disclosure_hierarchy_item.vue?vue&type=script&lang=js\"\nexport * from \"./disclosure_hierarchy_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('li',{staticClass:\"disclosure-hierarchy-item gl-flex gl-min-w-0\"},[_c('gl-link',{staticClass:\"disclosure-hierarchy-button hover:gl-no-underline active:!gl-no-underline\",class:{ 'gl-cursor-help': _vm.item.ancestorNotAvailable },attrs:{\"id\":_vm.itemId,\"href\":_vm.item.webUrl}},[(_vm.shouldDisplayIcon(_vm.item.icon))?_c('gl-icon',{staticClass:\"gl-mx-2 gl-shrink-0\",attrs:{\"name\":_vm.item.icon}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"gl-z-200 gl-truncate\"},[_vm._v(_vm._s(_vm.item.title))])],1),_vm._v(\" \"),_vm._t(\"default\",null,{\"item\":_vm.item,\"itemId\":_vm.itemId})],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!./disclosure_hierarchy.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./disclosure_hierarchy.vue?vue&type=script&lang=js\"","<script>\nimport uniqueId from 'lodash/uniqueId';\nimport { GlIcon, GlTooltip, GlDisclosureDropdown, GlResizeObserverDirective } from '@gitlab/ui';\nimport { GlBreakpointInstance } from '@gitlab/ui/dist/utils';\nimport DisclosureHierarchyItem from './disclosure_hierarchy_item.vue';\n\nexport default {\n  components: {\n    GlDisclosureDropdown,\n    GlIcon,\n    GlTooltip,\n    DisclosureHierarchyItem,\n  },\n  directives: {\n    GlResizeObserver: GlResizeObserverDirective,\n  },\n  props: {\n    /**\n     * A list of items in the form:\n     * ```\n     * {\n     *   title:    String, required\n     *   icon:     String, optional\n     * }\n     * ```\n     */\n    items: {\n      type: Array,\n      required: false,\n      default: () => [],\n      validator: (items) => {\n        return items.every((item) => Object.keys(item).includes('title'));\n      },\n    },\n    /**\n     * When set, displays only first and last item, and groups the rest under an ellipsis button\n     */\n    withEllipsis: {\n      type: Boolean,\n      default: false,\n      required: false,\n    },\n    /**\n     * When set, a tooltip displays when hovering middle ellipsis button\n     */\n    ellipsisTooltipLabel: {\n      type: String,\n      required: false,\n      default: '',\n    },\n  },\n  data() {\n    return {\n      itemUuid: uniqueId('disclosure-hierarchy-'),\n      isMobile: false,\n    };\n  },\n  computed: {\n    middleItems() {\n      if (this.isMobile) {\n        return this.items.slice(0, -1).map((item) => ({ ...item, text: item.title }));\n      }\n      return this.items.slice(1, -1).map((item) => ({ ...item, text: item.title }));\n    },\n    firstItem() {\n      return this.items[0];\n    },\n    lastItemIndex() {\n      return this.items.length - 1;\n    },\n    lastItem() {\n      return this.items[this.lastItemIndex];\n    },\n  },\n  methods: {\n    itemId(index) {\n      return `${this.itemUuid}-item-${index}`;\n    },\n    handleResize() {\n      this.isMobile = ['sm', 'xs'].includes(GlBreakpointInstance.getBreakpointSize());\n    },\n  },\n};\n</script>\n\n<template>\n  <div\n    v-gl-resize-observer=\"handleResize\"\n    class=\"disclosure-hierarchy gl-relative gl-flex gl-min-w-0 gl-grow-2\"\n  >\n    <ul class=\"gl-relative gl-m-0 gl-inline-flex gl-max-w-full gl-list-none gl-flex-row gl-p-0\">\n      <template v-if=\"withEllipsis || isMobile\">\n        <disclosure-hierarchy-item v-if=\"!isMobile\" :item=\"firstItem\" :item-id=\"itemId(0)\">\n          <slot :item=\"firstItem\" :item-id=\"itemId(0)\"></slot>\n        </disclosure-hierarchy-item>\n        <li v-if=\"middleItems.length > 0\" class=\"disclosure-hierarchy-item\">\n          <gl-disclosure-dropdown :items=\"middleItems\">\n            <template #toggle>\n              <button\n                id=\"disclosure-hierarchy-ellipsis-button\"\n                class=\"disclosure-hierarchy-button\"\n                :aria-label=\"ellipsisTooltipLabel\"\n              >\n                <gl-icon name=\"ellipsis_h\" class=\"gl-z-200 gl-ml-3\" />\n              </button>\n            </template>\n            <template #list-item=\"{ item }\">\n              <span class=\"gl-flex\">\n                <gl-icon\n                  v-if=\"item.icon\"\n                  :name=\"item.icon\"\n                  class=\"gl-mr-3 gl-shrink-0 gl-align-middle\"\n                />\n                {{ item.title }}\n              </span>\n            </template>\n          </gl-disclosure-dropdown>\n        </li>\n        <gl-tooltip\n          v-if=\"ellipsisTooltipLabel\"\n          target=\"disclosure-hierarchy-ellipsis-button\"\n          triggers=\"hover\"\n        >\n          {{ ellipsisTooltipLabel }}\n        </gl-tooltip>\n        <disclosure-hierarchy-item :item=\"lastItem\" :item-id=\"itemId(lastItemIndex)\">\n          <slot :item=\"lastItem\" :item-id=\"itemId(lastItemIndex)\"></slot>\n        </disclosure-hierarchy-item>\n      </template>\n      <disclosure-hierarchy-item\n        v-for=\"(item, index) in items\"\n        v-else\n        :key=\"index\"\n        :item=\"item\"\n        :item-id=\"itemId(index)\"\n      >\n        <slot :item=\"item\" :item-id=\"itemId(index)\"></slot>\n      </disclosure-hierarchy-item>\n    </ul>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./disclosure_hierarchy.vue?vue&type=template&id=dfc3da1c\"\nimport script from \"./disclosure_hierarchy.vue?vue&type=script&lang=js\"\nexport * from \"./disclosure_hierarchy.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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-resize-observer\",rawName:\"v-gl-resize-observer\",value:(_vm.handleResize),expression:\"handleResize\"}],staticClass:\"disclosure-hierarchy gl-relative gl-flex gl-min-w-0 gl-grow-2\"},[_c('ul',{staticClass:\"gl-relative gl-m-0 gl-inline-flex gl-max-w-full gl-list-none gl-flex-row gl-p-0\"},[(_vm.withEllipsis || _vm.isMobile)?[(!_vm.isMobile)?_c('disclosure-hierarchy-item',{attrs:{\"item\":_vm.firstItem,\"item-id\":_vm.itemId(0)}},[_vm._t(\"default\",null,{\"item\":_vm.firstItem,\"itemId\":_vm.itemId(0)})],2):_vm._e(),_vm._v(\" \"),(_vm.middleItems.length > 0)?_c('li',{staticClass:\"disclosure-hierarchy-item\"},[_c('gl-disclosure-dropdown',{attrs:{\"items\":_vm.middleItems},scopedSlots:_vm._u([{key:\"toggle\",fn:function(){return [_c('button',{staticClass:\"disclosure-hierarchy-button\",attrs:{\"id\":\"disclosure-hierarchy-ellipsis-button\",\"aria-label\":_vm.ellipsisTooltipLabel}},[_c('gl-icon',{staticClass:\"gl-z-200 gl-ml-3\",attrs:{\"name\":\"ellipsis_h\"}})],1)]},proxy:true},{key:\"list-item\",fn:function({ item }){return [_c('span',{staticClass:\"gl-flex\"},[(item.icon)?_c('gl-icon',{staticClass:\"gl-mr-3 gl-shrink-0 gl-align-middle\",attrs:{\"name\":item.icon}}):_vm._e(),_vm._v(\"\\n              \"+_vm._s(item.title)+\"\\n            \")],1)]}}],null,false,83121197)})],1):_vm._e(),_vm._v(\" \"),(_vm.ellipsisTooltipLabel)?_c('gl-tooltip',{attrs:{\"target\":\"disclosure-hierarchy-ellipsis-button\",\"triggers\":\"hover\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.ellipsisTooltipLabel)+\"\\n      \")]):_vm._e(),_vm._v(\" \"),_c('disclosure-hierarchy-item',{attrs:{\"item\":_vm.lastItem,\"item-id\":_vm.itemId(_vm.lastItemIndex)}},[_vm._t(\"default\",null,{\"item\":_vm.lastItem,\"itemId\":_vm.itemId(_vm.lastItemIndex)})],2)]:_vm._l((_vm.items),function(item,index){return _c('disclosure-hierarchy-item',{key:index,attrs:{\"item\":item,\"item-id\":_vm.itemId(index)}},[_vm._t(\"default\",null,{\"item\":item,\"itemId\":_vm.itemId(index)})],2)})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlIcon, GlPopover, GlBadge, GlSprintf } from '@gitlab/ui';\n\nimport { createAlert } from '~/alert';\nimport { s__ } from '~/locale';\nimport TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';\n\nimport { findHierarchyWidgets, formatAncestors } from '../../utils';\nimport workItemAncestorsQuery from '../../graphql/work_item_ancestors.query.graphql';\nimport workItemAncestorsUpdatedSubscription from '../../graphql/work_item_ancestors.subscription.graphql';\nimport WorkItemStateBadge from '../work_item_state_badge.vue';\nimport DisclosureHierarchy from './disclosure_hierarchy.vue';\n\nexport const ANCESTOR_NOT_AVAILABLE = {\n  title: s__('WorkItems|Ancestors not available'),\n  ancestorNotAvailable: true,\n  icon: 'eye-slash',\n};\n\nexport default {\n  i18n: {\n    ancestorLabel: s__('WorkItem|Ancestor'),\n    ancestorsTooltipLabel: s__('WorkItem|Show all ancestors'),\n  },\n  components: {\n    GlIcon,\n    GlPopover,\n    GlBadge,\n    GlSprintf,\n    TimeAgoTooltip,\n    WorkItemStateBadge,\n    DisclosureHierarchy,\n  },\n  props: {\n    workItem: {\n      type: Object,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      ancestors: [],\n    };\n  },\n  apollo: {\n    ancestors: {\n      query: workItemAncestorsQuery,\n      variables() {\n        return {\n          id: this.workItem.id,\n        };\n      },\n      update(data) {\n        const formattedAncestors = formatAncestors(data.workItem).flatMap((ancestor) => {\n          const ancestorHierarchyWidget = findHierarchyWidgets(ancestor.widgets);\n          // Condition is to check if it `hasParent` is true and the parent object is null  i.e, inaccessible\n          // then add \"ancestor is not available\" with other parents\n          return ancestorHierarchyWidget?.hasParent && !ancestorHierarchyWidget?.parent\n            ? [ANCESTOR_NOT_AVAILABLE, ancestor]\n            : [ancestor];\n        });\n\n        // If the work item has a parent at root level but the parent object is null i.e, inaccessible\n        // then add \"ancestor is not available\" as the only item\n        const widgets = findHierarchyWidgets(data.workItem?.widgets);\n        if (formattedAncestors.length === 0 && widgets?.hasParent && !widgets?.parent) {\n          formattedAncestors.push(ANCESTOR_NOT_AVAILABLE);\n        }\n        return formattedAncestors;\n      },\n      skip() {\n        return !this.workItem.id;\n      },\n      error(error) {\n        createAlert({\n          message: s__('Hierarchy|Something went wrong while fetching ancestors.'),\n          captureError: true,\n          error,\n        });\n      },\n      subscribeToMore: {\n        document: workItemAncestorsUpdatedSubscription,\n        variables() {\n          return {\n            id: this.workItem.id,\n          };\n        },\n        skip() {\n          return !this.workItem?.id;\n        },\n      },\n    },\n  },\n};\n</script>\n\n<template>\n  <disclosure-hierarchy\n    v-if=\"ancestors.length > 0\"\n    :items=\"ancestors\"\n    :with-ellipsis=\"ancestors.length > 2\"\n    :ellipsis-tooltip-label=\"$options.i18n.ancestorsTooltipLabel\"\n  >\n    <template #default=\"{ item, itemId }\">\n      <gl-popover\n        v-if=\"!item.ancestorNotAvailable\"\n        triggers=\"hover focus\"\n        placement=\"bottom\"\n        :target=\"itemId\"\n      >\n        <template #title>\n          <div>\n            <gl-badge variant=\"muted\">{{ $options.i18n.ancestorLabel }}</gl-badge>\n            <div class=\"gl-pt-3\">\n              {{ item.title }}\n            </div>\n          </div>\n        </template>\n        <div class=\"gl-pb-3 gl-text-subtle\">\n          <gl-icon v-if=\"item.icon\" :name=\"item.icon\" variant=\"subtle\" />\n          {{ item.reference }}\n        </div>\n        <work-item-state-badge v-if=\"item.state\" :work-item-state=\"item.state\" />\n        <span class=\"gl-align-middle gl-text-subtle\">\n          <gl-sprintf v-if=\"item.createdAt\" :message=\"__('Created %{timeAgo}')\">\n            <template #timeAgo>\n              <time-ago-tooltip :time=\"item.createdAt\" />\n            </template>\n          </gl-sprintf>\n        </span>\n      </gl-popover>\n      <gl-popover v-else triggers=\"hover focus\" placement=\"bottom\" :target=\"itemId\">\n        <span>{{\n          s__(`WorkItem|You don't have the necessary permission to view the ancestors.`)\n        }}</span>\n      </gl-popover>\n    </template>\n  </disclosure-hierarchy>\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_ancestors.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.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_ancestors.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./work_item_ancestors.vue?vue&type=template&id=f1ddd35e\"\nimport script from \"./work_item_ancestors.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_ancestors.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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.ancestors.length > 0)?_c('disclosure-hierarchy',{attrs:{\"items\":_vm.ancestors,\"with-ellipsis\":_vm.ancestors.length > 2,\"ellipsis-tooltip-label\":_vm.$options.i18n.ancestorsTooltipLabel},scopedSlots:_vm._u([{key:\"default\",fn:function({ item, itemId }){return [(!item.ancestorNotAvailable)?_c('gl-popover',{attrs:{\"triggers\":\"hover focus\",\"placement\":\"bottom\",\"target\":itemId},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('div',[_c('gl-badge',{attrs:{\"variant\":\"muted\"}},[_vm._v(_vm._s(_vm.$options.i18n.ancestorLabel))]),_vm._v(\" \"),_c('div',{staticClass:\"gl-pt-3\"},[_vm._v(\"\\n            \"+_vm._s(item.title)+\"\\n          \")])],1)]},proxy:true}],null,true)},[_vm._v(\" \"),_c('div',{staticClass:\"gl-pb-3 gl-text-subtle\"},[(item.icon)?_c('gl-icon',{attrs:{\"name\":item.icon,\"variant\":\"subtle\"}}):_vm._e(),_vm._v(\"\\n        \"+_vm._s(item.reference)+\"\\n      \")],1),_vm._v(\" \"),(item.state)?_c('work-item-state-badge',{attrs:{\"work-item-state\":item.state}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"gl-align-middle gl-text-subtle\"},[(item.createdAt)?_c('gl-sprintf',{attrs:{\"message\":_vm.__('Created %{timeAgo}')},scopedSlots:_vm._u([{key:\"timeAgo\",fn:function(){return [_c('time-ago-tooltip',{attrs:{\"time\":item.createdAt}})]},proxy:true}],null,true)}):_vm._e()],1)],1):_c('gl-popover',{attrs:{\"triggers\":\"hover focus\",\"placement\":\"bottom\",\"target\":itemId}},[_c('span',[_vm._v(_vm._s(_vm.s__(`WorkItem|You don't have the necessary permission to view the ancestors.`)))])])]}}],null,false,3621494646)}):_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_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!./design_item.vue?vue&type=script&lang=js\"","<script>\nimport { GlLoadingIcon, GlIcon, GlIntersectionObserver, GlTooltipDirective } from '@gitlab/ui';\nimport { n__, __ } from '~/locale';\nimport Timeago from '~/vue_shared/components/time_ago_tooltip.vue';\nimport { ROUTES } from '../../constants';\n\nexport default {\n  components: {\n    GlLoadingIcon,\n    GlIntersectionObserver,\n    GlIcon,\n    Timeago,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  props: {\n    id: {\n      type: [Number, String],\n      required: true,\n    },\n    event: {\n      type: String,\n      required: true,\n    },\n    notesCount: {\n      type: Number,\n      required: true,\n    },\n    image: {\n      type: String,\n      required: true,\n    },\n    filename: {\n      type: String,\n      required: true,\n    },\n    updatedAt: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    isUploading: {\n      type: Boolean,\n      required: false,\n      default: true,\n    },\n    imageV432x230: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    workItemIid: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    isDragging: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      imageLoading: true,\n      imageError: false,\n      wasInView: false,\n    };\n  },\n  computed: {\n    icon() {\n      const normalizedEvent = this.event.toLowerCase();\n      const icons = {\n        creation: {\n          name: 'file-addition-solid',\n          classes: 'gl-fill-icon-success',\n          tooltip: __('Added in this version'),\n        },\n        modification: {\n          name: 'file-modified-solid',\n          classes: 'gl-fill-icon-info',\n          tooltip: __('Modified in this version'),\n        },\n        deletion: {\n          name: 'file-deletion-solid',\n          classes: 'gl-fill-icon-danger',\n          tooltip: __('Archived in this version'),\n        },\n      };\n\n      return icons[normalizedEvent] ? icons[normalizedEvent] : {};\n    },\n    notesLabel() {\n      return n__('%d comment', '%d comments', this.notesCount);\n    },\n    imageLink() {\n      return this.wasInView ? this.imageV432x230 || this.image : '';\n    },\n    showLoadingSpinner() {\n      return this.imageLoading || this.isUploading;\n    },\n    showImageErrorIcon() {\n      return this.wasInView && this.imageError;\n    },\n    showImage() {\n      return !this.showLoadingSpinner && !this.showImageErrorIcon;\n    },\n    routerLinkProps() {\n      return {\n        name: this.$options.ROUTES.design,\n        params: { iid: this.workItemIid, id: this.filename },\n        query: this.$route.query,\n      };\n    },\n  },\n  methods: {\n    onImageLoad() {\n      this.imageLoading = false;\n      this.imageError = false;\n    },\n    onImageError() {\n      this.imageLoading = false;\n      this.imageError = true;\n    },\n    onAppear() {\n      // do nothing if image has previously\n      // been in view\n      if (this.wasInView) {\n        return;\n      }\n\n      this.wasInView = true;\n      this.imageLoading = true;\n    },\n    onTileClick(event) {\n      if (this.isDragging) {\n        event.preventDefault();\n      }\n    },\n  },\n  ROUTES,\n};\n</script>\n\n<template>\n  <router-link\n    :to=\"routerLinkProps\"\n    class=\"card js-design-list-item design-list-item gl-mb-0 gl-cursor-pointer gl-text-default hover:gl-text-default\"\n  >\n    <div\n      class=\"card-body gl-relative gl-flex gl-items-center gl-justify-center gl-overflow-hidden gl-rounded-t-base gl-p-0\"\n      @click=\"onTileClick\"\n    >\n      <div\n        v-if=\"icon.name\"\n        data-testid=\"design-event\"\n        class=\"gl-absolute gl-right-3 gl-top-3 gl-mr-1\"\n      >\n        <span :title=\"icon.tooltip\" :aria-label=\"icon.tooltip\">\n          <gl-icon\n            :name=\"icon.name\"\n            :size=\"16\"\n            :class=\"icon.classes\"\n            data-testid=\"design-status-icon\"\n            :data-qa-status=\"icon.name\"\n          />\n        </span>\n      </div>\n      <gl-intersection-observer\n        class=\"gl-grow\"\n        data-testid=\"design-image\"\n        :data-qa-filename=\"filename\"\n        @appear=\"onAppear\"\n      >\n        <gl-loading-icon v-if=\"showLoadingSpinner\" size=\"lg\" />\n        <gl-icon v-else-if=\"showImageErrorIcon\" name=\"media-broken\" :size=\"32\" variant=\"subtle\" />\n        <img\n          v-show=\"showImage\"\n          :src=\"imageLink\"\n          :alt=\"filename\"\n          class=\"design-img gl-mx-auto gl-block gl-max-h-full gl-w-auto gl-max-w-full\"\n          :data-testid=\"`design-img-${id}`\"\n          @load=\"onImageLoad\"\n          @error=\"onImageError\"\n        />\n      </gl-intersection-observer>\n    </div>\n    <div class=\"card-footer gl-flex gl-w-full gl-bg-white gl-px-4 gl-py-3\">\n      <div class=\"str-truncated-100 gl-flex gl-flex-col\">\n        <span\n          v-gl-tooltip\n          class=\"str-truncated-100 gl-text-sm\"\n          :data-testid=\"`design-img-filename-${id}`\"\n          :title=\"filename\"\n          >{{ filename }}</span\n        >\n        <span v-if=\"updatedAt\" class=\"str-truncated-100\">\n          {{ __('Updated') }} <timeago :time=\"updatedAt\" tooltip-placement=\"bottom\" />\n        </span>\n      </div>\n      <div v-if=\"notesCount\" class=\"gl-ml-auto gl-flex gl-items-center gl-text-subtle\">\n        <gl-icon name=\"comments\" class=\"gl-ml-2\" />\n        <span :aria-label=\"notesLabel\" class=\"gl-ml-2 gl-text-sm\">\n          {{ notesCount }}\n        </span>\n      </div>\n    </div>\n  </router-link>\n</template>\n","import { render, staticRenderFns } from \"./design_item.vue?vue&type=template&id=4aff7a0d\"\nimport script from \"./design_item.vue?vue&type=script&lang=js\"\nexport * from \"./design_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('router-link',{staticClass:\"card js-design-list-item design-list-item gl-mb-0 gl-cursor-pointer gl-text-default hover:gl-text-default\",attrs:{\"to\":_vm.routerLinkProps}},[_c('div',{staticClass:\"card-body gl-relative gl-flex gl-items-center gl-justify-center gl-overflow-hidden gl-rounded-t-base gl-p-0\",on:{\"click\":_vm.onTileClick}},[(_vm.icon.name)?_c('div',{staticClass:\"gl-absolute gl-right-3 gl-top-3 gl-mr-1\",attrs:{\"data-testid\":\"design-event\"}},[_c('span',{attrs:{\"title\":_vm.icon.tooltip,\"aria-label\":_vm.icon.tooltip}},[_c('gl-icon',{class:_vm.icon.classes,attrs:{\"name\":_vm.icon.name,\"size\":16,\"data-testid\":\"design-status-icon\",\"data-qa-status\":_vm.icon.name}})],1)]):_vm._e(),_vm._v(\" \"),_c('gl-intersection-observer',{staticClass:\"gl-grow\",attrs:{\"data-testid\":\"design-image\",\"data-qa-filename\":_vm.filename},on:{\"appear\":_vm.onAppear}},[(_vm.showLoadingSpinner)?_c('gl-loading-icon',{attrs:{\"size\":\"lg\"}}):(_vm.showImageErrorIcon)?_c('gl-icon',{attrs:{\"name\":\"media-broken\",\"size\":32,\"variant\":\"subtle\"}}):_vm._e(),_vm._v(\" \"),_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showImage),expression:\"showImage\"}],staticClass:\"design-img gl-mx-auto gl-block gl-max-h-full gl-w-auto gl-max-w-full\",attrs:{\"src\":_vm.imageLink,\"alt\":_vm.filename,\"data-testid\":`design-img-${_vm.id}`},on:{\"load\":_vm.onImageLoad,\"error\":_vm.onImageError}})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"card-footer gl-flex gl-w-full gl-bg-white gl-px-4 gl-py-3\"},[_c('div',{staticClass:\"str-truncated-100 gl-flex gl-flex-col\"},[_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"str-truncated-100 gl-text-sm\",attrs:{\"data-testid\":`design-img-filename-${_vm.id}`,\"title\":_vm.filename}},[_vm._v(_vm._s(_vm.filename))]),_vm._v(\" \"),(_vm.updatedAt)?_c('span',{staticClass:\"str-truncated-100\"},[_vm._v(\"\\n        \"+_vm._s(_vm.__('Updated'))+\" \"),_c('timeago',{attrs:{\"time\":_vm.updatedAt,\"tooltip-placement\":\"bottom\"}})],1):_vm._e()]),_vm._v(\" \"),(_vm.notesCount)?_c('div',{staticClass:\"gl-ml-auto gl-flex gl-items-center gl-text-subtle\"},[_c('gl-icon',{staticClass:\"gl-ml-2\",attrs:{\"name\":\"comments\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-ml-2 gl-text-sm\",attrs:{\"aria-label\":_vm.notesLabel}},[_vm._v(\"\\n        \"+_vm._s(_vm.notesCount)+\"\\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!./design_version_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!./design_version_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport { GlAvatar, GlCollapsibleListbox } from '@gitlab/ui';\nimport defaultAvatarUrl from 'images/no_avatar.png';\nimport { TYPENAME_DESIGN_VERSION } from '~/graphql_shared/constants';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { __, sprintf } from '~/locale';\nimport TimeAgo from '~/vue_shared/components/time_ago_tooltip.vue';\nimport { findVersionId } from './utils';\n\nexport default {\n  components: {\n    GlAvatar,\n    GlCollapsibleListbox,\n    TimeAgo,\n  },\n  props: {\n    allVersions: {\n      type: Array,\n      required: true,\n    },\n  },\n  computed: {\n    allVersionsList() {\n      return this.allVersions.map(({ id, ...item }, index) => ({\n        value: id,\n        index,\n        ...item,\n      }));\n    },\n    queryVersion() {\n      return this.$route.query.version;\n    },\n    currentVersionIdx() {\n      if (!this.queryVersion) return 0;\n\n      const idx = this.allVersions.findIndex(\n        (version) => this.findVersionId(version.id) === this.queryVersion,\n      );\n\n      // if the currentVersionId isn't a valid version (i.e. not in allVersions)\n      // then return the latest version (index 0)\n      return idx !== -1 ? idx : 0;\n    },\n    dropdownText() {\n      if (this.isLatestVersion) {\n        return __('Showing latest version');\n      }\n      // allVersions is sorted in reverse chronological order (the latest first)\n      const currentVersionNumber = this.allVersions.length - this.currentVersionIdx;\n\n      return sprintf(__('Showing version #%{versionNumber}'), {\n        versionNumber: currentVersionNumber,\n      });\n    },\n    hasValidVersion() {\n      return (\n        this.$route.query.version &&\n        this.allVersions &&\n        this.allVersions.some((version) => version.id.endsWith(this.$route.query.version))\n      );\n    },\n    designsVersion() {\n      return this.hasValidVersion\n        ? convertToGraphQLId(TYPENAME_DESIGN_VERSION, this.$route.query.version)\n        : null;\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.$route.query.version ||\n          !this.latestVersionId ||\n          this.$route.query.version === this.latestVersionId\n        );\n      }\n      return true;\n    },\n  },\n  methods: {\n    findVersionId,\n    routeToVersion(versionId) {\n      this.$router.push({\n        path: this.$route.path,\n        query: { version: this.findVersionId(versionId) },\n      });\n    },\n    versionText(item) {\n      const versionNumber = this.allVersions.length - item.index;\n      const message =\n        this.findVersionId(item.value) === this.latestVersionId\n          ? __('Version %{versionNumber} (latest)')\n          : __('Version %{versionNumber}');\n      return sprintf(message, { versionNumber });\n    },\n    getAvatarUrl(version) {\n      return version?.author?.avatarUrl || defaultAvatarUrl;\n    },\n    getAuthorName(author) {\n      return author?.name;\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-collapsible-listbox\n    is-check-centered\n    :items=\"allVersionsList\"\n    :toggle-text=\"dropdownText\"\n    :selected=\"designsVersion\"\n    size=\"small\"\n    @select=\"routeToVersion\"\n  >\n    <template #list-item=\"{ item }\">\n      <span class=\"gl-flex gl-items-center gl-gap-3\">\n        <gl-avatar :alt=\"getAuthorName(item.author)\" :size=\"32\" :src=\"getAvatarUrl(item)\" />\n        <span class=\"gl-flex gl-flex-col\">\n          <span class=\"gl-font-bold\">{{ versionText(item) }}</span>\n          <span v-if=\"item.author\" class=\"gl-mt-1 gl-text-subtle\">\n            <span class=\"gl-block\">{{ getAuthorName(item.author) }}</span>\n            <time-ago\n              v-if=\"item.createdAt\"\n              class=\"text-1\"\n              :time=\"item.createdAt\"\n              tooltip-placement=\"bottom\"\n            />\n          </span>\n        </span>\n      </span>\n    </template>\n  </gl-collapsible-listbox>\n</template>\n","import { render, staticRenderFns } from \"./design_version_dropdown.vue?vue&type=template&id=adef309c\"\nimport script from \"./design_version_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./design_version_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:{\"is-check-centered\":\"\",\"items\":_vm.allVersionsList,\"toggle-text\":_vm.dropdownText,\"selected\":_vm.designsVersion,\"size\":\"small\"},on:{\"select\":_vm.routeToVersion},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('span',{staticClass:\"gl-flex gl-items-center gl-gap-3\"},[_c('gl-avatar',{attrs:{\"alt\":_vm.getAuthorName(item.author),\"size\":32,\"src\":_vm.getAvatarUrl(item)}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-flex gl-flex-col\"},[_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(_vm.versionText(item)))]),_vm._v(\" \"),(item.author)?_c('span',{staticClass:\"gl-mt-1 gl-text-subtle\"},[_c('span',{staticClass:\"gl-block\"},[_vm._v(_vm._s(_vm.getAuthorName(item.author)))]),_vm._v(\" \"),(item.createdAt)?_c('time-ago',{staticClass:\"text-1\",attrs:{\"time\":item.createdAt,\"tooltip-placement\":\"bottom\"}}):_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!./design_management_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!./design_management_widget.vue?vue&type=script&lang=js\"","<script>\nimport { GlAlert, GlButton, GlFormCheckbox, GlTooltipDirective } from '@gitlab/ui';\nimport { GlBreakpointInstance } from '@gitlab/ui/dist/utils';\nimport VueDraggable from 'vuedraggable';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { s__ } from '~/locale';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport { TYPENAME_DESIGN_VERSION } from '~/graphql_shared/constants';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { findDesignWidget } from '~/work_items/utils';\nimport CrudComponent from '~/vue_shared/components/crud_component.vue';\nimport DesignDropzone from '~/vue_shared/components/upload_dropzone/upload_dropzone.vue';\nimport {\n  designArchiveError,\n  VALID_DESIGN_FILE_MIMETYPE,\n  ALERT_VARIANTS,\n  MOVE_DESIGN_ERROR,\n} from './constants';\nimport { updateStoreAfterDesignsArchive, updateDesignsOnStoreAfterReorder } from './cache_updates';\nimport { findVersionId, moveDesignOptimisticResponse } from './utils';\n\nimport getWorkItemDesignListQuery from './graphql/design_collection.query.graphql';\nimport archiveDesignMutation from './graphql/archive_design.mutation.graphql';\nimport moveDesignMutation from './graphql/move_design.mutation.graphql';\nimport Design from './design_item.vue';\nimport DesignVersionDropdown from './design_version_dropdown.vue';\nimport ArchiveDesignButton from './archive_design_button.vue';\n\nexport default {\n  isLoggedIn: isLoggedIn(),\n  components: {\n    GlAlert,\n    GlButton,\n    GlFormCheckbox,\n    Design,\n    DesignVersionDropdown,\n    ArchiveDesignButton,\n    CrudComponent,\n    DesignDropzone,\n    VueDraggable,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  inject: ['fullPath'],\n  props: {\n    workItemId: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    workItemIid: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    isSaving: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    uploadError: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    uploadErrorVariant: {\n      type: String,\n      required: false,\n      default: ALERT_VARIANTS.danger,\n    },\n  },\n  apollo: {\n    designCollection: {\n      query: getWorkItemDesignListQuery,\n      variables() {\n        return {\n          id: this.workItemId,\n          atVersion: this.designsVersion,\n        };\n      },\n      update(data) {\n        const designWidget = findDesignWidget(data.workItem.widgets);\n        if (designWidget.designCollection === null) {\n          return null;\n        }\n        const { copyState } = designWidget.designCollection;\n        const designNodes = designWidget.designCollection.designs.nodes;\n        const versionNodes = designWidget.designCollection.versions.nodes;\n        return {\n          designs: designNodes,\n          copyState,\n          versions: versionNodes,\n        };\n      },\n      skip() {\n        return !this.workItemId;\n      },\n      error() {\n        this.error = this.$options.i18n.designLoadingError;\n      },\n    },\n  },\n  data() {\n    return {\n      designCollection: null,\n      error: null,\n      selectedDesigns: [],\n      isArchiving: false,\n      isDraggingDesign: false,\n      reorderedDesigns: null,\n      isReorderingInProgress: false,\n      dragStartPosition: null,\n    };\n  },\n  computed: {\n    isMobile() {\n      return ['sm', 'xs'].includes(GlBreakpointInstance.getBreakpointSize());\n    },\n    designs() {\n      return this.designCollection?.designs || [];\n    },\n    allVersions() {\n      return this.designCollection?.versions || [];\n    },\n    hasDesigns() {\n      return this.designs.length > 0;\n    },\n    hasDesignsAndVersions() {\n      return this.hasDesigns || this.allVersions.length > 0;\n    },\n    hasSelectedDesigns() {\n      return this.selectedDesigns.length > 0;\n    },\n    hasValidVersion() {\n      return (\n        this.$route.query.version &&\n        this.allVersions &&\n        this.allVersions.some((version) => version.id.endsWith(this.$route.query.version))\n      );\n    },\n    /**\n     * This is needed to increase size of dropzone when all\n     * designs are archived and only empty state is visible.\n     */\n    crudBodyClass() {\n      return this.hasDesigns ? '' : '!gl-m-0';\n    },\n    designsVersion() {\n      return this.hasValidVersion\n        ? convertToGraphQLId(TYPENAME_DESIGN_VERSION, this.$route.query.version)\n        : null;\n    },\n    isDraggingDisabled() {\n      return (\n        !this.$options.isLoggedIn ||\n        !this.isLatestVersion ||\n        this.isReorderingInProgress ||\n        this.isMobile\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.$route.query.version ||\n          !this.latestVersionId ||\n          this.$route.query.version === this.latestVersionId\n        );\n      }\n      return true;\n    },\n    designCollectionQueryBody() {\n      return {\n        query: getWorkItemDesignListQuery,\n        variables: { id: this.workItemId, atVersion: null },\n      };\n    },\n    selectAllButtonText() {\n      return this.hasSelectedDesigns\n        ? s__('DesignManagement|Deselect all')\n        : s__('DesignManagement|Select all');\n    },\n  },\n  methods: {\n    dismissError() {\n      this.error = undefined;\n      this.$emit('dismissError');\n    },\n    isDesignSelected(filename) {\n      return this.selectedDesigns.includes(filename);\n    },\n    checkboxAriaLabel(design) {\n      return this.isDesignSelected(design)\n        ? s__('DesignManagement|Unselect the design')\n        : s__('DesignManagement|Select the design');\n    },\n    openDesignUpload() {\n      this.$refs.fileUpload.click();\n    },\n    onDesignUploadChange(e) {\n      this.$emit('upload', e.target.files);\n    },\n    changeSelectedDesigns(filename) {\n      if (this.isDesignSelected(filename)) {\n        this.selectedDesigns = this.selectedDesigns.filter((design) => design !== filename);\n      } else {\n        this.selectedDesigns.push(filename);\n      }\n    },\n    toggleDesignsSelection() {\n      if (this.hasSelectedDesigns) {\n        this.selectedDesigns = [];\n      } else {\n        this.selectedDesigns = this.designs.map((design) => design.filename);\n      }\n    },\n    async onArchiveDesign() {\n      try {\n        this.isArchiving = true;\n        await this.$apollo.mutate({\n          mutation: archiveDesignMutation,\n          variables: {\n            filenames: this.selectedDesigns,\n            projectPath: this.fullPath,\n            iid: this.workItemIid,\n          },\n          update: this.afterArchiveDesign,\n        });\n      } catch (error) {\n        this.error = designArchiveError(this.selectedDesigns.length);\n        Sentry.captureException(error);\n      } finally {\n        // display the latest version\n        if (this.$route?.query?.version) {\n          this.$router.push({\n            path: this.$route.path,\n            query: {},\n          });\n        }\n        this.selectedDesigns = [];\n        this.isArchiving = false;\n      }\n    },\n    afterArchiveDesign(store, { data: { designManagementDelete } }) {\n      updateStoreAfterDesignsArchive(\n        store,\n        designManagementDelete,\n        this.designCollectionQueryBody,\n        this.selectedDesigns,\n      );\n    },\n    designMoveVariables(newIndex, element) {\n      const variables = {\n        id: element.id,\n      };\n      if (newIndex > 0) {\n        variables.previous = this.reorderedDesigns[newIndex - 1].id;\n      }\n      if (newIndex < this.reorderedDesigns.length - 1) {\n        variables.next = this.reorderedDesigns[newIndex + 1].id;\n      }\n      return variables;\n    },\n    async onDesignsReorder({ moved: { newIndex, element } }) {\n      this.isReorderingInProgress = true;\n      try {\n        await this.$apollo.mutate({\n          mutation: moveDesignMutation,\n          variables: this.designMoveVariables(newIndex, element),\n          update: this.afterReorderDesign,\n          optimisticResponse: moveDesignOptimisticResponse(this.reorderedDesigns),\n        });\n      } catch (error) {\n        this.error = MOVE_DESIGN_ERROR;\n        Sentry.captureException(error);\n      } finally {\n        this.isReorderingInProgress = false;\n      }\n    },\n    afterReorderDesign(store, { data: { designManagementMove } }) {\n      updateDesignsOnStoreAfterReorder(store, designManagementMove, this.designCollectionQueryBody);\n    },\n    onDesignMove(designs) {\n      this.reorderedDesigns = designs;\n    },\n    onMouseDown({ clientX, clientY }) {\n      this.dragStartPosition = { x: clientX, y: clientY };\n    },\n    onPointerUp(event) {\n      const { clientX, clientY } = event;\n      const deltaX = Math.abs(clientX - this.dragStartPosition.x);\n      const deltaY = Math.abs(clientY - this.dragStartPosition.y);\n\n      // Checking if the mouse movement was below the drag threshold of 5px\n      // to treat the event as a click, not a drag\n      if (deltaX < 5 && deltaY < 5) {\n        // Envoking click event since VueDraggable suppresses it intermittently\n        event.target.click();\n        this.isDraggingDesign = false;\n\n        // Tackling Chrome specific issues of VueDraggable not propagating\n        // the click to children\n        if (event.target.tagName === 'OL') {\n          const designTiles = event.target.querySelectorAll('.js-design-tile');\n          // Finding the tile under the <ol> tag pointer\n          const hoveredTile = Array.from(designTiles).find((tile) => {\n            const { top, left, right, bottom } = tile.getBoundingClientRect();\n            return clientX >= left && clientX <= right && clientY >= top && clientY <= bottom;\n          });\n          if (hoveredTile) {\n            const designLink = hoveredTile.querySelector('.design-list-item');\n            designLink.click();\n          }\n        }\n      } else {\n        this.isDraggingDesign = true;\n      }\n      this.lastDragPosition = null;\n    },\n    onDragEnd() {\n      // Deffering setting the flag to false so that the tile\n      // click is not fired right after drag ends\n      setTimeout(() => {\n        this.isDraggingDesign = false;\n      }, 100);\n    },\n  },\n  dragOptions: {\n    animation: 200,\n    ghostClass: 'gl-invisible',\n  },\n  i18n: {\n    designLoadingError: s__(\n      'DesignManagement|An error occurred while loading designs. Please try again.',\n    ),\n    archiveDesignText: s__('DesignManagement|Archive selected'),\n    allDesignsArchived: s__('DesignManagement|All designs have been archived.'),\n    uploadDesignOverlayText: s__('DesignManagement|Drop your images to start the upload.'),\n  },\n  VALID_DESIGN_FILE_MIMETYPE,\n};\n</script>\n\n<template>\n  <div>\n    <slot v-if=\"!hasDesignsAndVersions\" name=\"empty-state\"></slot>\n    <crud-component\n      v-if=\"hasDesignsAndVersions\"\n      anchor-name=\"designs\"\n      anchor-id=\"designs\"\n      :title=\"s__('DesignManagement|Designs')\"\n      data-testid=\"designs-root\"\n      class=\"gl-relative gl-mt-5\"\n      :body-class=\"crudBodyClass\"\n      is-collapsible\n      persist-collapsed-state\n    >\n      <template #count>\n        <design-version-dropdown :all-versions=\"allVersions\" />\n      </template>\n\n      <template #actions>\n        <gl-button\n          v-if=\"isLatestVersion\"\n          category=\"tertiary\"\n          size=\"small\"\n          variant=\"link\"\n          :disabled=\"!hasDesigns\"\n          data-testid=\"select-all-designs-button\"\n          :aria-label=\"selectAllButtonText\"\n          @click=\"toggleDesignsSelection\"\n        >\n          {{ selectAllButtonText }}\n        </gl-button>\n        <archive-design-button\n          v-if=\"isLatestVersion\"\n          data-testid=\"archive-button\"\n          button-class=\"gl-hidden sm:gl-block\"\n          :has-selected-designs=\"hasSelectedDesigns\"\n          :loading=\"isArchiving\"\n          @archive-selected-designs=\"onArchiveDesign\"\n        >\n          {{ $options.i18n.archiveDesignText }}\n        </archive-design-button>\n        <archive-design-button\n          v-if=\"isLatestVersion\"\n          v-gl-tooltip.bottom\n          data-testid=\"archive-button\"\n          button-class=\"sm:gl-hidden gl-block\"\n          button-icon=\"archive\"\n          :title=\"$options.i18n.archiveDesignText\"\n          :aria-label=\"$options.i18n.archiveDesignText\"\n          :has-selected-designs=\"hasSelectedDesigns\"\n          :loading=\"isArchiving\"\n          @archive-selected-designs=\"onArchiveDesign\"\n        />\n        <gl-button\n          size=\"small\"\n          data-testid=\"add-design\"\n          :disabled=\"isSaving\"\n          :loading=\"isSaving\"\n          @click=\"openDesignUpload\"\n          >{{ __('Add') }}</gl-button\n        >\n        <input\n          ref=\"fileUpload\"\n          type=\"file\"\n          name=\"design_file\"\n          :accept=\"$options.VALID_DESIGN_FILE_MIMETYPE.mimetype\"\n          class=\"gl-hidden\"\n          multiple\n          @change=\"onDesignUploadChange\"\n        />\n      </template>\n\n      <template #default>\n        <gl-alert\n          v-if=\"error || uploadError\"\n          :variant=\"uploadErrorVariant\"\n          @dismiss=\"dismissError()\"\n        >\n          {{ error || uploadError }}\n        </gl-alert>\n        <design-dropzone\n          show-upload-design-overlay\n          validate-design-upload-on-dragover\n          :accept-design-formats=\"$options.VALID_DESIGN_FILE_MIMETYPE.mimetype\"\n          :upload-design-overlay-text=\"$options.i18n.uploadDesignOverlayText\"\n          @change=\"$emit('upload', $event)\"\n          @error=\"$emit('error')\"\n          @dragenter=\"dismissError\"\n        >\n          <p v-if=\"!hasDesigns\" class=\"gl-mb-0 gl-px-5 gl-py-4 gl-text-subtle\">\n            {{ $options.i18n.allDesignsArchived }}\n          </p>\n          <vue-draggable\n            :value=\"designs\"\n            :disabled=\"isDraggingDisabled\"\n            v-bind=\"$options.dragOptions\"\n            :force-fallback=\"true\"\n            tag=\"ol\"\n            draggable=\".js-design-tile\"\n            filter=\".no-drag\"\n            class=\"list-unstyled row -gl-my-1 gl-flex gl-gap-y-5\"\n            :class=\"{ 'gl-px-3 gl-py-2': hasDesigns, 'gl-hidden': !hasDesigns }\"\n            @end=\"onDragEnd\"\n            @change=\"onDesignsReorder\"\n            @input=\"onDesignMove\"\n            @pointerup.native=\"onPointerUp\"\n          >\n            <li\n              v-for=\"design in designs\"\n              :key=\"design.id\"\n              class=\"col-md-6 col-lg-3 js-design-tile gl-bg-transparent gl-px-3 gl-shadow-none\"\n              @mousedown=\"onMouseDown\"\n              @pointerup=\"onPointerUp\"\n            >\n              <design\n                v-bind=\"design\"\n                class=\"gl-bg-default\"\n                :is-uploading=\"false\"\n                :is-dragging=\"isDraggingDesign\"\n                :work-item-iid=\"workItemIid\"\n                data-testid=\"design-item\"\n                @pointerup=\"onPointerUp\"\n              />\n\n              <gl-form-checkbox\n                v-if=\"isLatestVersion\"\n                :id=\"`design-checkbox-${design.id}`\"\n                :checked=\"isDesignSelected(design.filename)\"\n                class=\"no-drag gl-absolute gl-left-5 gl-top-4 gl-ml-2\"\n                data-testid=\"design-checkbox\"\n                :aria-label=\"checkboxAriaLabel(design.filename)\"\n                @change=\"changeSelectedDesigns(design.filename)\"\n              />\n            </li>\n          </vue-draggable>\n        </design-dropzone>\n        <router-view :key=\"$route.fullPath\" :all-designs=\"designs\" :all-versions=\"allVersions\" />\n      </template>\n    </crud-component>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./design_management_widget.vue?vue&type=template&id=44f3512d\"\nimport script from \"./design_management_widget.vue?vue&type=script&lang=js\"\nexport * from \"./design_management_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('div',[(!_vm.hasDesignsAndVersions)?_vm._t(\"empty-state\"):_vm._e(),_vm._v(\" \"),(_vm.hasDesignsAndVersions)?_c('crud-component',{staticClass:\"gl-relative gl-mt-5\",attrs:{\"anchor-name\":\"designs\",\"anchor-id\":\"designs\",\"title\":_vm.s__('DesignManagement|Designs'),\"data-testid\":\"designs-root\",\"body-class\":_vm.crudBodyClass,\"is-collapsible\":\"\",\"persist-collapsed-state\":\"\"},scopedSlots:_vm._u([{key:\"count\",fn:function(){return [_c('design-version-dropdown',{attrs:{\"all-versions\":_vm.allVersions}})]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.isLatestVersion)?_c('gl-button',{attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"variant\":\"link\",\"disabled\":!_vm.hasDesigns,\"data-testid\":\"select-all-designs-button\",\"aria-label\":_vm.selectAllButtonText},on:{\"click\":_vm.toggleDesignsSelection}},[_vm._v(\"\\n        \"+_vm._s(_vm.selectAllButtonText)+\"\\n      \")]):_vm._e(),_vm._v(\" \"),(_vm.isLatestVersion)?_c('archive-design-button',{attrs:{\"data-testid\":\"archive-button\",\"button-class\":\"gl-hidden sm:gl-block\",\"has-selected-designs\":_vm.hasSelectedDesigns,\"loading\":_vm.isArchiving},on:{\"archive-selected-designs\":_vm.onArchiveDesign}},[_vm._v(\"\\n        \"+_vm._s(_vm.$options.i18n.archiveDesignText)+\"\\n      \")]):_vm._e(),_vm._v(\" \"),(_vm.isLatestVersion)?_c('archive-design-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom\",modifiers:{\"bottom\":true}}],attrs:{\"data-testid\":\"archive-button\",\"button-class\":\"sm:gl-hidden gl-block\",\"button-icon\":\"archive\",\"title\":_vm.$options.i18n.archiveDesignText,\"aria-label\":_vm.$options.i18n.archiveDesignText,\"has-selected-designs\":_vm.hasSelectedDesigns,\"loading\":_vm.isArchiving},on:{\"archive-selected-designs\":_vm.onArchiveDesign}}):_vm._e(),_vm._v(\" \"),_c('gl-button',{attrs:{\"size\":\"small\",\"data-testid\":\"add-design\",\"disabled\":_vm.isSaving,\"loading\":_vm.isSaving},on:{\"click\":_vm.openDesignUpload}},[_vm._v(_vm._s(_vm.__('Add')))]),_vm._v(\" \"),_c('input',{ref:\"fileUpload\",staticClass:\"gl-hidden\",attrs:{\"type\":\"file\",\"name\":\"design_file\",\"accept\":_vm.$options.VALID_DESIGN_FILE_MIMETYPE.mimetype,\"multiple\":\"\"},on:{\"change\":_vm.onDesignUploadChange}})]},proxy:true},{key:\"default\",fn:function(){return [(_vm.error || _vm.uploadError)?_c('gl-alert',{attrs:{\"variant\":_vm.uploadErrorVariant},on:{\"dismiss\":function($event){return _vm.dismissError()}}},[_vm._v(\"\\n        \"+_vm._s(_vm.error || _vm.uploadError)+\"\\n      \")]):_vm._e(),_vm._v(\" \"),_c('design-dropzone',{attrs:{\"show-upload-design-overlay\":\"\",\"validate-design-upload-on-dragover\":\"\",\"accept-design-formats\":_vm.$options.VALID_DESIGN_FILE_MIMETYPE.mimetype,\"upload-design-overlay-text\":_vm.$options.i18n.uploadDesignOverlayText},on:{\"change\":function($event){return _vm.$emit('upload', $event)},\"error\":function($event){return _vm.$emit('error')},\"dragenter\":_vm.dismissError}},[(!_vm.hasDesigns)?_c('p',{staticClass:\"gl-mb-0 gl-px-5 gl-py-4 gl-text-subtle\"},[_vm._v(\"\\n          \"+_vm._s(_vm.$options.i18n.allDesignsArchived)+\"\\n        \")]):_vm._e(),_vm._v(\" \"),_c('vue-draggable',_vm._b({staticClass:\"list-unstyled row -gl-my-1 gl-flex gl-gap-y-5\",class:{ 'gl-px-3 gl-py-2': _vm.hasDesigns, 'gl-hidden': !_vm.hasDesigns },attrs:{\"value\":_vm.designs,\"disabled\":_vm.isDraggingDisabled,\"force-fallback\":true,\"tag\":\"ol\",\"draggable\":\".js-design-tile\",\"filter\":\".no-drag\"},on:{\"end\":_vm.onDragEnd,\"change\":_vm.onDesignsReorder,\"input\":_vm.onDesignMove},nativeOn:{\"pointerup\":function($event){return _vm.onPointerUp.apply(null, arguments)}}},'vue-draggable',_vm.$options.dragOptions,false),_vm._l((_vm.designs),function(design){return _c('li',{key:design.id,staticClass:\"col-md-6 col-lg-3 js-design-tile gl-bg-transparent gl-px-3 gl-shadow-none\",on:{\"mousedown\":_vm.onMouseDown,\"pointerup\":_vm.onPointerUp}},[_c('design',_vm._b({staticClass:\"gl-bg-default\",attrs:{\"is-uploading\":false,\"is-dragging\":_vm.isDraggingDesign,\"work-item-iid\":_vm.workItemIid,\"data-testid\":\"design-item\"},on:{\"pointerup\":_vm.onPointerUp}},'design',design,false)),_vm._v(\" \"),(_vm.isLatestVersion)?_c('gl-form-checkbox',{staticClass:\"no-drag gl-absolute gl-left-5 gl-top-4 gl-ml-2\",attrs:{\"id\":`design-checkbox-${design.id}`,\"checked\":_vm.isDesignSelected(design.filename),\"data-testid\":\"design-checkbox\",\"aria-label\":_vm.checkboxAriaLabel(design.filename)},on:{\"change\":function($event){return _vm.changeSelectedDesigns(design.filename)}}}):_vm._e()],1)}),0)],1),_vm._v(\" \"),_c('router-view',{key:_vm.$route.fullPath,attrs:{\"all-designs\":_vm.designs,\"all-versions\":_vm.allVersions}})]},proxy:true}],null,false,3149116076)}):_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!./upload_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!./upload_button.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlButton, GlTooltipDirective } from '@gitlab/ui';\nimport { VALID_DESIGN_FILE_MIMETYPE } from './constants';\n\nexport default {\n  components: {\n    GlButton,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  props: {\n    isSaving: {\n      type: Boolean,\n      required: true,\n    },\n  },\n  methods: {\n    openFileUpload() {\n      this.$refs.fileUpload.click();\n    },\n    onFileUploadChange(e) {\n      this.$emit('upload', e.target.files);\n    },\n  },\n  VALID_DESIGN_FILE_MIMETYPE,\n};\n</script>\n\n<template>\n  <div class=\"gl-mt-4 sm:gl-ml-auto\">\n    <gl-button\n      v-gl-tooltip.hover\n      :title=\"\n        s__(\n          'DesignManagement|Adding a design with the same filename replaces the file in a new version.',\n        )\n      \"\n      :disabled=\"isSaving\"\n      :loading=\"isSaving\"\n      category=\"primary\"\n      icon=\"media\"\n      @click=\"openFileUpload\"\n    >\n      {{ s__('DesignManagement|Add design') }}\n    </gl-button>\n\n    <input\n      ref=\"fileUpload\"\n      type=\"file\"\n      name=\"design_file\"\n      :accept=\"$options.VALID_DESIGN_FILE_MIMETYPE.mimetype\"\n      class=\"gl-hidden\"\n      multiple\n      @change=\"onFileUploadChange\"\n    />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./upload_button.vue?vue&type=template&id=8f3ec928\"\nimport script from \"./upload_button.vue?vue&type=script&lang=js\"\nexport * from \"./upload_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-mt-4 sm:gl-ml-auto\"},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"title\":_vm.s__(\n        'DesignManagement|Adding a design with the same filename replaces the file in a new version.',\n      ),\"disabled\":_vm.isSaving,\"loading\":_vm.isSaving,\"category\":\"primary\",\"icon\":\"media\"},on:{\"click\":_vm.openFileUpload}},[_vm._v(\"\\n    \"+_vm._s(_vm.s__('DesignManagement|Add design'))+\"\\n  \")]),_vm._v(\" \"),_c('input',{ref:\"fileUpload\",staticClass:\"gl-hidden\",attrs:{\"type\":\"file\",\"name\":\"design_file\",\"accept\":_vm.$options.VALID_DESIGN_FILE_MIMETYPE.mimetype,\"multiple\":\"\"},on:{\"change\":_vm.onFileUploadChange}})],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_development_mr_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!./work_item_development_mr_item.vue?vue&type=script&lang=js\"","<script>\nimport {\n  GlLink,\n  GlIcon,\n  GlAvatarsInline,\n  GlAvatarLink,\n  GlAvatar,\n  GlTooltipDirective,\n  GlDisclosureDropdown,\n  GlDisclosureDropdownItem,\n  GlBadge,\n} from '@gitlab/ui';\nimport ItemMilestone from '~/issuable/components/issue_milestone.vue';\nimport TooltipOnTruncate from '~/vue_shared/directives/tooltip_on_truncate';\nimport CiIcon from '~/vue_shared/components/ci_icon/ci_icon.vue';\nimport { s__, sprintf } from '~/locale';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport { STATUS_CLOSED, STATUS_MERGED } from '~/issues/constants';\n\nexport default {\n  components: {\n    GlLink,\n    GlIcon,\n    GlAvatarsInline,\n    GlAvatarLink,\n    GlAvatar,\n    ItemMilestone,\n    CiIcon,\n    GlDisclosureDropdown,\n    GlDisclosureDropdownItem,\n    GlBadge,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n    TooltipOnTruncate,\n  },\n  props: {\n    itemContent: {\n      type: Object,\n      required: true,\n    },\n    isModal: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  computed: {\n    assignees() {\n      return this.itemContent?.assignees?.nodes || [];\n    },\n    badgeVariant() {\n      return {\n        [STATUS_CLOSED]: 'danger',\n        [STATUS_MERGED]: 'info',\n      };\n    },\n    badgeLabel() {\n      return {\n        [STATUS_CLOSED]: s__('WorkItem|Closed'),\n        [STATUS_MERGED]: s__('WorkItem|Merged'),\n      };\n    },\n    stateBadgeLabel() {\n      return this.badgeLabel[this.itemContent.state];\n    },\n    stateBadgeVariant() {\n      return this.badgeVariant[this.itemContent.state];\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    projectPath() {\n      return `${this.itemContent.project.namespace.path}/${this.itemContent.project.name}`;\n    },\n    detailedStatus() {\n      return this.itemContent?.headPipeline?.detailedStatus;\n    },\n    milestone() {\n      return this.itemContent?.milestone;\n    },\n    branchName() {\n      return this.itemContent?.sourceBranch;\n    },\n    mrReference() {\n      return this.itemContent?.reference;\n    },\n    isMRClosed() {\n      return this.itemContent.state === STATUS_CLOSED;\n    },\n    isMRMerged() {\n      return this.itemContent.state === STATUS_MERGED;\n    },\n    isMergedOrClosed() {\n      return this.isMRClosed || this.isMRMerged;\n    },\n  },\n  methods: {\n    copyToClipboard(text, message) {\n      if (this.isModal) {\n        navigator.clipboard.writeText(text);\n      }\n      toast(message);\n      this.closeDropdown();\n    },\n    closeDropdown() {\n      this.$refs.mrMoreActions.close();\n    },\n  },\n};\n</script>\n<template>\n  <div class=\"gl-flex gl-w-full gl-items-start gl-justify-between\">\n    <div\n      class=\"flex-xl-nowrap gl-flex gl-w-19/20 gl-flex-wrap gl-items-center gl-justify-between gl-gap-2\"\n    >\n      <div class=\"item-title gl-flex gl-min-w-0 gl-items-center gl-gap-3\">\n        <gl-icon\n          name=\"merge-request\"\n          :size=\"16\"\n          variant=\"default\"\n          class=\"gl-shrink-0\"\n          :class=\"{ 'gl-fill-icon-subtle': isMRClosed }\"\n        />\n        <gl-link\n          v-tooltip-on-truncate\n          :href=\"itemContent.webUrl\"\n          class=\"gl-truncate gl-font-semibold gl-text-gray-900 hover:gl-text-gray-900 hover:gl-underline\"\n          :class=\"{ 'gl-text-subtle': isMRClosed }\"\n        >\n          {{ itemContent.title }}\n        </gl-link>\n      </div>\n      <div class=\"item-info-area gl-flex gl-shrink-0 gl-grow gl-gap-3\">\n        <div class=\"item-meta gl-flex gl-flex-wrap-reverse gl-gap-3 sm:gl-justify-between\">\n          <div class=\"item-path-area item-path-id gl-flex gl-flex-wrap gl-items-center gl-gap-3\">\n            <span class=\"gl-font-sm gl-text-subtle\"> !{{ itemContent.iid }} </span>\n            <item-milestone\n              v-if=\"milestone\"\n              :milestone=\"milestone\"\n              class=\"gl-hidden gl-cursor-help gl-text-subtle sm:gl-block\"\n            />\n          </div>\n          <div class=\"item-attributes-area gl-flex gl-items-center gl-gap-3\">\n            <div\n              class=\"item-assignees order-md-2 gl-flex gl-shrink-0 gl-items-center gl-gap-2 gl-self-end\"\n            >\n              <gl-badge v-if=\"isMergedOrClosed\" :variant=\"stateBadgeVariant\">\n                {{ stateBadgeLabel }}\n              </gl-badge>\n              <ci-icon v-if=\"detailedStatus\" :status=\"detailedStatus\" />\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\" />\n                  </gl-avatar-link>\n                </template>\n              </gl-avatars-inline>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <gl-disclosure-dropdown\n      ref=\"mrMoreActions\"\n      v-gl-tooltip\n      icon=\"ellipsis_v\"\n      size=\"small\"\n      class=\"sm:gl-max-w-11/12 -gl-mr-2 gl-grow-0 sm:gl-block sm:gl-align-top\"\n      data-testid=\"work-item-mr-actions-dropdown\"\n      text-sr-only\n      :toggle-text=\"__('More actions')\"\n      category=\"tertiary\"\n      :auto-close=\"false\"\n      no-caret\n      placement=\"bottom-end\"\n    >\n      <gl-disclosure-dropdown-item\n        data-testid=\"mr-copy-branch-name\"\n        :data-clipboard-text=\"branchName\"\n        @action=\"copyToClipboard(branchName, __('Copied branch name.'))\"\n      >\n        <template #list-item>{{ __('Copy branch name') }}</template>\n      </gl-disclosure-dropdown-item>\n\n      <gl-disclosure-dropdown-item\n        data-testid=\"mr-copy-reference\"\n        :data-clipboard-text=\"mrReference\"\n        @action=\"copyToClipboard(mrReference, __('Copied reference.'))\"\n      >\n        <template #list-item>{{ __('Copy reference') }}</template>\n      </gl-disclosure-dropdown-item>\n    </gl-disclosure-dropdown>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_development_mr_item.vue?vue&type=template&id=4999237a\"\nimport script from \"./work_item_development_mr_item.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_development_mr_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:\"gl-flex gl-w-full gl-items-start gl-justify-between\"},[_c('div',{staticClass:\"flex-xl-nowrap gl-flex gl-w-19/20 gl-flex-wrap gl-items-center gl-justify-between gl-gap-2\"},[_c('div',{staticClass:\"item-title gl-flex gl-min-w-0 gl-items-center gl-gap-3\"},[_c('gl-icon',{staticClass:\"gl-shrink-0\",class:{ 'gl-fill-icon-subtle': _vm.isMRClosed },attrs:{\"name\":\"merge-request\",\"size\":16,\"variant\":\"default\"}}),_vm._v(\" \"),_c('gl-link',{directives:[{name:\"tooltip-on-truncate\",rawName:\"v-tooltip-on-truncate\"}],staticClass:\"gl-truncate gl-font-semibold gl-text-gray-900 hover:gl-text-gray-900 hover:gl-underline\",class:{ 'gl-text-subtle': _vm.isMRClosed },attrs:{\"href\":_vm.itemContent.webUrl}},[_vm._v(\"\\n        \"+_vm._s(_vm.itemContent.title)+\"\\n      \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"item-info-area gl-flex gl-shrink-0 gl-grow gl-gap-3\"},[_c('div',{staticClass:\"item-meta gl-flex gl-flex-wrap-reverse gl-gap-3 sm:gl-justify-between\"},[_c('div',{staticClass:\"item-path-area item-path-id gl-flex gl-flex-wrap gl-items-center gl-gap-3\"},[_c('span',{staticClass:\"gl-font-sm gl-text-subtle\"},[_vm._v(\" !\"+_vm._s(_vm.itemContent.iid)+\" \")]),_vm._v(\" \"),(_vm.milestone)?_c('item-milestone',{staticClass:\"gl-hidden gl-cursor-help gl-text-subtle sm:gl-block\",attrs:{\"milestone\":_vm.milestone}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"item-attributes-area gl-flex gl-items-center gl-gap-3\"},[_c('div',{staticClass:\"item-assignees order-md-2 gl-flex gl-shrink-0 gl-items-center gl-gap-2 gl-self-end\"},[(_vm.isMergedOrClosed)?_c('gl-badge',{attrs:{\"variant\":_vm.stateBadgeVariant}},[_vm._v(\"\\n              \"+_vm._s(_vm.stateBadgeLabel)+\"\\n            \")]):_vm._e(),_vm._v(\" \"),(_vm.detailedStatus)?_c('ci-icon',{attrs:{\"status\":_vm.detailedStatus}}):_vm._e(),_vm._v(\" \"),(_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}})],1)]}}],null,false,3379637811)}):_vm._e()],1)])])])]),_vm._v(\" \"),_c('gl-disclosure-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],ref:\"mrMoreActions\",staticClass:\"sm:gl-max-w-11/12 -gl-mr-2 gl-grow-0 sm:gl-block sm:gl-align-top\",attrs:{\"icon\":\"ellipsis_v\",\"size\":\"small\",\"data-testid\":\"work-item-mr-actions-dropdown\",\"text-sr-only\":\"\",\"toggle-text\":_vm.__('More actions'),\"category\":\"tertiary\",\"auto-close\":false,\"no-caret\":\"\",\"placement\":\"bottom-end\"}},[_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"mr-copy-branch-name\",\"data-clipboard-text\":_vm.branchName},on:{\"action\":function($event){_vm.copyToClipboard(_vm.branchName, _vm.__('Copied branch name.'))}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(_vm._s(_vm.__('Copy branch name')))]},proxy:true}])}),_vm._v(\" \"),_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"mr-copy-reference\",\"data-clipboard-text\":_vm.mrReference},on:{\"action\":function($event){_vm.copyToClipboard(_vm.mrReference, _vm.__('Copied reference.'))}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(_vm._s(_vm.__('Copy reference')))]},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!./work_item_development_branch_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!./work_item_development_branch_item.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlLink, GlDisclosureDropdown, GlDisclosureDropdownItem } from '@gitlab/ui';\nimport TooltipOnTruncate from '~/vue_shared/directives/tooltip_on_truncate';\nimport toast from '~/vue_shared/plugins/global_toast';\n\nexport default {\n  components: {\n    GlIcon,\n    GlLink,\n    GlDisclosureDropdown,\n    GlDisclosureDropdownItem,\n  },\n  directives: {\n    TooltipOnTruncate,\n  },\n  props: {\n    itemContent: {\n      type: Object,\n      required: true,\n    },\n    isModal: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  computed: {\n    branchName() {\n      return this.itemContent?.name;\n    },\n    branchComparePath() {\n      return this.itemContent?.comparePath;\n    },\n  },\n  methods: {\n    copyToClipboard(text, message) {\n      if (this.isModal) {\n        navigator.clipboard.writeText(text);\n      }\n      toast(message);\n      this.closeDropdown();\n    },\n    closeDropdown() {\n      this.$refs.branchMoreActions.close();\n    },\n  },\n};\n</script>\n\n<template>\n  <div class=\"gl-flex gl-w-full gl-justify-between\">\n    <div class=\"flex-xl-nowrap gl-flex gl-w-19/20 gl-flex-wrap gl-items-center gl-gap-2\">\n      <gl-icon name=\"branch\" variant=\"default\" class=\"gl-shrink-0\" />\n      <gl-link\n        v-tooltip-on-truncate\n        :href=\"branchComparePath\"\n        class=\"gl-max-w-17/20 gl-truncate gl-font-semibold gl-text-primary hover:gl-text-primary hover:gl-underline\"\n      >\n        {{ branchName }}\n      </gl-link>\n    </div>\n    <gl-disclosure-dropdown\n      ref=\"branchMoreActions\"\n      icon=\"ellipsis_v\"\n      data-testid=\"work-item-branch-actions-dropdown\"\n      size=\"small\"\n      class=\"gl-float-right -gl-mr-2\"\n      text-sr-only\n      :toggle-text=\"__('More actions')\"\n      category=\"tertiary\"\n      :auto-close=\"false\"\n      no-caret\n      placement=\"bottom-end\"\n    >\n      <gl-disclosure-dropdown-item\n        data-testid=\"branch-copy-name\"\n        :data-clipboard-text=\"branchName\"\n        @action=\"copyToClipboard(branchName, __('Copied branch.'))\"\n      >\n        <template #list-item>{{ __('Copy branch name') }}</template>\n      </gl-disclosure-dropdown-item>\n    </gl-disclosure-dropdown>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_development_branch_item.vue?vue&type=template&id=e8de8152\"\nimport script from \"./work_item_development_branch_item.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_development_branch_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:\"gl-flex gl-w-full gl-justify-between\"},[_c('div',{staticClass:\"flex-xl-nowrap gl-flex gl-w-19/20 gl-flex-wrap gl-items-center gl-gap-2\"},[_c('gl-icon',{staticClass:\"gl-shrink-0\",attrs:{\"name\":\"branch\",\"variant\":\"default\"}}),_vm._v(\" \"),_c('gl-link',{directives:[{name:\"tooltip-on-truncate\",rawName:\"v-tooltip-on-truncate\"}],staticClass:\"gl-max-w-17/20 gl-truncate gl-font-semibold gl-text-primary hover:gl-text-primary hover:gl-underline\",attrs:{\"href\":_vm.branchComparePath}},[_vm._v(\"\\n      \"+_vm._s(_vm.branchName)+\"\\n    \")])],1),_vm._v(\" \"),_c('gl-disclosure-dropdown',{ref:\"branchMoreActions\",staticClass:\"gl-float-right -gl-mr-2\",attrs:{\"icon\":\"ellipsis_v\",\"data-testid\":\"work-item-branch-actions-dropdown\",\"size\":\"small\",\"text-sr-only\":\"\",\"toggle-text\":_vm.__('More actions'),\"category\":\"tertiary\",\"auto-close\":false,\"no-caret\":\"\",\"placement\":\"bottom-end\"}},[_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"branch-copy-name\",\"data-clipboard-text\":_vm.branchName},on:{\"action\":function($event){_vm.copyToClipboard(_vm.branchName, _vm.__('Copied branch.'))}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(_vm._s(_vm.__('Copy branch name')))]},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!./work_item_development_relationship_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!./work_item_development_relationship_list.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { unionBy, uniqueId, map } from 'lodash';\nimport {\n  TYPENAME_FEATURE_FLAG,\n  TYPENAME_MERGE_REQUEST,\n  TYPENAME_WORK_ITEM_RELATED_BRANCH,\n} from '~/graphql_shared/constants';\nimport { STATUS_OPEN, STATUS_CLOSED, STATUS_MERGED } from '~/issues/constants';\n\nimport WorkItemDevelopmentMrItem from './work_item_development_mr_item.vue';\nimport WorkItemDevelopmentBranchItem from './work_item_development_branch_item.vue';\n\nexport default {\n  components: {\n    WorkItemDevelopmentMrItem,\n    WorkItemDevelopmentFfItem: () =>\n      import(\n        'ee_component/work_items/components/work_item_development/work_item_development_ff_item.vue'\n      ),\n    GlButton,\n  },\n  props: {\n    workItemDevWidget: {\n      type: Object,\n      required: true,\n    },\n    isModal: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  computed: {\n    list() {\n      return [\n        ...this.sortedFeatureFlags,\n        ...this.mergedMergeRequests,\n        ...this.openMergeRequests,\n        ...this.closedMergeRequests,\n        ...this.relatedBranches,\n      ];\n    },\n    mergeRequests() {\n      return unionBy(\n        map(this.closingMergeRequests, 'mergeRequest'),\n        this.relatedMergeRequests,\n        'id',\n      );\n    },\n    mergedMergeRequests() {\n      return this.mergeRequests.filter(({ state }) => state === STATUS_MERGED);\n    },\n    openMergeRequests() {\n      return this.mergeRequests.filter(({ state }) => state === STATUS_OPEN);\n    },\n    closedMergeRequests() {\n      return this.mergeRequests.filter(({ state }) => state === STATUS_CLOSED);\n    },\n    relatedBranches() {\n      return this.workItemDevWidget.relatedBranches?.nodes || [];\n    },\n    relatedMergeRequests() {\n      return this.workItemDevWidget.relatedMergeRequests?.nodes || [];\n    },\n    closingMergeRequests() {\n      return this.workItemDevWidget.closingMergeRequests?.nodes || [];\n    },\n    featureFlags() {\n      return this.workItemDevWidget.featureFlags?.nodes || [];\n    },\n    sortedFeatureFlags() {\n      const flagsSortedByRelationshipDate = [...this.featureFlags].reverse();\n      const enabledFlags = flagsSortedByRelationshipDate.filter((flag) => flag.active);\n      const disabledFlags = flagsSortedByRelationshipDate.filter((flag) => !flag.active);\n\n      return [...enabledFlags, ...disabledFlags];\n    },\n  },\n  methods: {\n    itemComponent(item) {\n      let component;\n\n      if (this.isMergeRequest(item)) {\n        component = WorkItemDevelopmentMrItem;\n      } else if (this.isFeatureFlag(item)) {\n        component = 'work-item-development-ff-item';\n      } else if (this.isBranch(item)) {\n        component = WorkItemDevelopmentBranchItem;\n      } else {\n        component = 'li';\n      }\n      return component;\n    },\n    isMergeRequest(item) {\n      // eslint-disable-next-line no-underscore-dangle\n      return item.__typename === TYPENAME_MERGE_REQUEST;\n    },\n    isFeatureFlag(item) {\n      // eslint-disable-next-line no-underscore-dangle\n      return item.__typename === TYPENAME_FEATURE_FLAG;\n    },\n    isBranch(item) {\n      // eslint-disable-next-line no-underscore-dangle\n      return item.__typename === TYPENAME_WORK_ITEM_RELATED_BRANCH;\n    },\n    itemId(item) {\n      return item?.id || uniqueId('branch-id-');\n    },\n  },\n};\n</script>\n<template>\n  <div>\n    <ul\n      ref=\"list-body\"\n      class=\"gl-m-0 gl-list-none gl-p-0\"\n      data-testid=\"work-item-dev-items-list\"\n      :data-list-length=\"list.length\"\n    >\n      <li\n        v-for=\"item in list\"\n        :key=\"itemId(item)\"\n        class=\"gl-border-b gl-py-4 first:!gl-pt-0 last:gl-border-none last:!gl-pb-0\"\n      >\n        <component :is=\"itemComponent(item)\" :item-content=\"item\" :is-modal=\"isModal\" />\n      </li>\n    </ul>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_development_relationship_list.vue?vue&type=template&id=307de1c1\"\nimport script from \"./work_item_development_relationship_list.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_development_relationship_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',[_c('ul',{ref:\"list-body\",staticClass:\"gl-m-0 gl-list-none gl-p-0\",attrs:{\"data-testid\":\"work-item-dev-items-list\",\"data-list-length\":_vm.list.length}},_vm._l((_vm.list),function(item){return _c('li',{key:_vm.itemId(item),staticClass:\"gl-border-b gl-py-4 first:!gl-pt-0 last:gl-border-none last:!gl-pb-0\"},[_c(_vm.itemComponent(item),{tag:\"component\",attrs:{\"item-content\":item,\"is-modal\":_vm.isModal}})],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!./work_item_create_branch_merge_request_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_create_branch_merge_request_modal.vue?vue&type=script&lang=js\"","<script>\nimport { GlForm, GlFormInput, GlFormGroup, GlModal } from '@gitlab/ui';\nimport { debounce } from 'lodash';\nimport axios from '~/lib/utils/axios_utils';\nimport { createAlert } from '~/alert';\nimport {\n  sprintfWorkItem,\n  WORK_ITEM_CREATE_ENTITY_MODAL_TARGET_SOURCE,\n  WORK_ITEM_CREATE_ENTITY_MODAL_TARGET_BRANCH,\n} from '~/work_items/constants';\nimport { visitUrl } from '~/lib/utils/url_utility';\nimport { createBranchMRApiPathHelper } from '~/work_items/utils';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport {\n  findInvalidBranchNameCharacters,\n  humanizeBranchValidationErrors,\n} from '~/lib/utils/text_utility';\nimport getProjectRootRef from '~/work_items/graphql/get_project_root_ref.query.graphql';\nimport { s__, __ } from '~/locale';\nimport confidentialMergeRequestState from '~/confidential_merge_request/state';\nimport ProjectFormGroup from '~/confidential_merge_request/components/project_form_group.vue';\n\nexport default {\n  components: {\n    GlForm,\n    GlFormInput,\n    GlFormGroup,\n    GlModal,\n    ProjectFormGroup,\n  },\n  i18n: {\n    sourceLabel: __('Source (branch or tag)'),\n    branchLabel: __('Branch name'),\n    createBranch: __('Create branch'),\n    cancelLabel: __('Cancel'),\n    createMergeRequest: __('Create merge request'),\n    branchNameExists: __('Branch is already taken'),\n    sourceNotAvailable: __('Source is not available'),\n    branchNameAvailable: __('Branch name is available'),\n    sourceIsAvailable: __('Source is available'),\n    branchNameIsRequired: __('Branch name is required'),\n    sourceNameIsRequired: __('Source name is required'),\n    checkingSourceValidity: __('Checking source validity'),\n    checkingBranchValidity: __('Checking branch validity'),\n  },\n  createMRModalId: 'create-merge-request-modal',\n  mergeRequestHelpPagePath: helpPagePath('user/project/merge_requests/index.md'),\n  inject: ['groupPath'],\n  props: {\n    showModal: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    showBranchFlow: {\n      type: Boolean,\n      required: false,\n      default: true,\n    },\n    showMergeRequestFlow: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    workItemIid: {\n      type: String,\n      required: true,\n    },\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n    workItemFullPath: {\n      type: String,\n      required: true,\n    },\n    projectId: {\n      type: String,\n      required: true,\n    },\n    isConfidentialWorkItem: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      isLoading: false,\n      canCreateBranch: false,\n      branchName: '',\n      sourceName: '',\n      invalidSource: false,\n      invalidBranch: false,\n      invalidForm: false,\n      sourceDescription: '',\n      branchDescription: '',\n      checkingSourceValidity: false,\n      checkingBranchValidity: false,\n      creatingBranch: false,\n      defaultBranch: '',\n    };\n  },\n  apollo: {\n    defaultBranch: {\n      query: getProjectRootRef,\n      variables() {\n        return {\n          projectFullPath: this.workItemFullPath,\n        };\n      },\n      update(data) {\n        return data?.project?.repository?.rootRef || '';\n      },\n      skip() {\n        return !this.workItemFullPath;\n      },\n      error(e) {\n        this.$emit('error', this.$options.i18n.fetchError);\n        this.error = e.message || this.$options.i18n.fetchError;\n      },\n    },\n  },\n  computed: {\n    createButtonText() {\n      return this.showBranchFlow\n        ? this.$options.i18n.createBranch\n        : this.$options.i18n.createMergeRequest;\n    },\n    sourceFeedback() {\n      return this.sourceName?.length\n        ? this.$options.i18n.sourceNotAvailable\n        : this.$options.i18n.sourceNameIsRequired;\n    },\n    branchFeedback() {\n      const branchErrors = findInvalidBranchNameCharacters(this.branchName);\n      if (!this.branchName.length) {\n        return this.$options.i18n.branchNameIsRequired;\n      }\n      if (branchErrors.length) {\n        return humanizeBranchValidationErrors(branchErrors);\n      }\n      return this.$options.i18n.branchNameExists;\n    },\n    modalTitle() {\n      return this.createButtonText;\n    },\n    isSaveButtonDisabled() {\n      return (\n        this.invalidForm || (this.isConfidentialWorkItem && !this.canCreateConfidentialMergeRequest)\n      );\n    },\n    saveButtonAction() {\n      return {\n        text: this.createButtonText,\n        attributes: {\n          variant: 'confirm',\n          disabled: this.isSaveButtonDisabled,\n          loading:\n            this.checkingSourceValidity || this.checkingBranchValidity || this.creatingBranch,\n        },\n      };\n    },\n    canCreateConfidentialMergeRequest() {\n      return (\n        this.isConfidentialWorkItem &&\n        Object.keys(confidentialMergeRequestState?.selectedProject).length > 0\n      );\n    },\n    cancelButtonAction() {\n      return {\n        text: this.$options.i18n.cancelLabel,\n      };\n    },\n    newForkPath() {\n      return `/${this.workItemFullPath}/-/forks/new`;\n    },\n  },\n  watch: {\n    showModal(newVal, oldVal) {\n      if (newVal && newVal !== oldVal) {\n        this.init();\n      }\n    },\n  },\n  mounted() {\n    this.init();\n  },\n  methods: {\n    async init() {\n      const createPath = createBranchMRApiPathHelper.canCreateBranch({\n        fullPath: this.workItemFullPath,\n        workItemIid: this.workItemIid,\n      });\n      this.isLoading = true;\n      const {\n        data: { can_create_branch, suggested_branch_name },\n      } = await axios.get(createPath);\n\n      this.isLoading = false;\n      /** The legacy API is returning values in camelcase format has have to use it here */\n      /** Can be changed when we migrate the response to graphql */\n      /* eslint-disable camelcase */\n      this.canCreateBranch = can_create_branch;\n      this.$emit('fetchedPermissions', can_create_branch);\n\n      if (this.canCreateBranch) {\n        this.branchName = suggested_branch_name;\n        /* eslint-enable camelcase */\n        this.sourceName = this.defaultBranch;\n      }\n    },\n    async createBranch() {\n      try {\n        const endpoint = createBranchMRApiPathHelper.createBranch({\n          fullPath: this.isConfidentialWorkItem\n            ? confidentialMergeRequestState.selectedProject.pathWithNamespace\n            : this.workItemFullPath,\n          workItemIid: this.workItemIid,\n          sourceBranch: this.defaultBranch,\n          targetBranch: this.branchName,\n        });\n\n        this.creatingBranch = true;\n        const { data } = await axios.post(endpoint, {\n          confidential_issue_project_id: this.canCreateConfidentialMergeRequest\n            ? this.projectId\n            : null,\n        });\n\n        this.$toast.show(__('Branch created.'), {\n          autoHideDelay: 10000,\n          action: {\n            text: __('View branch'),\n            onClick: () => visitUrl(data.url),\n          },\n        });\n\n        this.$emit('hideModal');\n      } catch {\n        createAlert({\n          message: sprintfWorkItem(\n            s__('WorkItem|Failed to create a branch for this %{workItemType}. Please try again.'),\n            this.workItemType?.toLowerCase(),\n          ),\n        });\n      } finally {\n        this.creatingBranch = false;\n      }\n    },\n    async createMergeRequest() {\n      await this.createBranch();\n      const path = createBranchMRApiPathHelper.createMR({\n        fullPath: this.isConfidentialWorkItem\n          ? confidentialMergeRequestState.selectedProject.pathWithNamespace\n          : this.workItemFullPath,\n        workItemIid: this.workItemIid,\n        sourceBranch: this.branchName,\n        targetBranch: this.defaultBranch,\n      });\n\n      /** open the merge request once we have it created */\n      visitUrl(path);\n    },\n    createEntity() {\n      if (this.showBranchFlow) {\n        this.createBranch();\n      } else {\n        this.createMergeRequest();\n      }\n    },\n    fetchRefs(refValue, target) {\n      if (!refValue || !refValue.trim().length) {\n        this.invalidSource = target === WORK_ITEM_CREATE_ENTITY_MODAL_TARGET_SOURCE;\n        this.invalidBranch = target === WORK_ITEM_CREATE_ENTITY_MODAL_TARGET_BRANCH;\n        this.invalidForm = true;\n        return;\n      }\n\n      if (target === WORK_ITEM_CREATE_ENTITY_MODAL_TARGET_SOURCE) {\n        this.checkingSourceValidity = true;\n        this.sourceDescription = __('Checking source validity...');\n      } else {\n        this.checkingBranchValidity = true;\n        this.branchDescription = __('Checking branch validity...');\n      }\n\n      this.refCancelToken = axios.CancelToken.source();\n\n      const refsPath = createBranchMRApiPathHelper.getRefs({\n        fullPath: this.isConfidentialWorkItem\n          ? confidentialMergeRequestState.selectedProject.pathWithNamespace\n          : this.workItemFullPath,\n      });\n\n      axios\n        .get(`${refsPath}${encodeURIComponent(refValue)}`, {\n          cancelToken: this.refCancelToken.token,\n        })\n        .then(({ data }) => {\n          const branches = data.Branches;\n          const tags = data.Tags;\n\n          if (target === WORK_ITEM_CREATE_ENTITY_MODAL_TARGET_SOURCE) {\n            this.invalidSource = !(\n              branches.indexOf(refValue) !== -1 || tags.indexOf(refValue) !== -1\n            );\n          } else {\n            this.invalidBranch = Boolean(\n              branches.indexOf(refValue) !== -1 || findInvalidBranchNameCharacters(refValue).length,\n            );\n          }\n\n          this.invalidForm = this.invalidSource || this.invalidBranch;\n        })\n        .catch((thrown) => {\n          if (axios.isCancel(thrown)) {\n            return false;\n          }\n          createAlert({\n            message: __('Failed to get ref.'),\n          });\n          return false;\n        })\n        .finally(() => {\n          this.checkingSourceValidity = false;\n          this.checkingBranchValidity = false;\n        });\n    },\n    checkValidity: debounce(function debouncedCheckValidity(refValue, target) {\n      return this.fetchRefs(refValue, target);\n    }, 250),\n    hideModal() {\n      this.$emit('hideModal');\n      this.$nextTick(() => {\n        this.invalidBranch = false;\n        this.invalidSource = false;\n        this.invalidForm = false;\n      });\n    },\n  },\n  WORK_ITEM_CREATE_ENTITY_MODAL_TARGET_SOURCE,\n  WORK_ITEM_CREATE_ENTITY_MODAL_TARGET_BRANCH,\n};\n</script>\n\n<template>\n  <div>\n    <gl-modal\n      ref=\"create-modal\"\n      :visible=\"showModal || creatingBranch\"\n      :title=\"modalTitle\"\n      :modal-id=\"$options.createMRModalId\"\n      :action-primary=\"saveButtonAction\"\n      :action-cancel=\"cancelButtonAction\"\n      size=\"sm\"\n      @primary.prevent=\"createEntity\"\n      @hide=\"hideModal\"\n    >\n      <gl-form class=\"gl-text-left\">\n        <project-form-group\n          v-if=\"isConfidentialWorkItem\"\n          :namespace-path=\"groupPath\"\n          :project-path=\"workItemFullPath\"\n          :help-page-path=\"$options.mergeRequestHelpPagePath\"\n          :new-fork-path=\"newForkPath\"\n        />\n        <gl-form-group\n          required\n          label-for=\"source-name-id\"\n          :label=\"$options.i18n.sourceLabel\"\n          :description=\"checkingSourceValidity ? sourceDescription : ''\"\n          :invalid-feedback=\"checkingSourceValidity || isLoading ? '' : sourceFeedback\"\n          :valid-feedback=\"\n            checkingSourceValidity || isLoading ? '' : $options.i18n.sourceIsAvailable\n          \"\n          :state=\"sourceName ? !invalidSource : false\"\n        >\n          <gl-form-input\n            id=\"source-name-id\"\n            v-model.trim=\"sourceName\"\n            :state=\"!invalidSource\"\n            required\n            name=\"source-name\"\n            type=\"text\"\n            :disabled=\"isLoading || creatingBranch\"\n            @input=\"checkValidity($event, $options.WORK_ITEM_CREATE_ENTITY_MODAL_TARGET_SOURCE)\"\n          />\n        </gl-form-group>\n        <gl-form-group\n          required\n          label-for=\"branch-name-id\"\n          :label=\"$options.i18n.branchLabel\"\n          :description=\"checkingBranchValidity ? branchDescription : ''\"\n          :invalid-feedback=\"checkingBranchValidity || isLoading ? '' : branchFeedback\"\n          :valid-feedback=\"\n            checkingBranchValidity || isLoading ? '' : $options.i18n.branchNameAvailable\n          \"\n          :state=\"branchName ? !invalidBranch : false\"\n        >\n          <gl-form-input\n            id=\"branch-name-id\"\n            v-model.trim=\"branchName\"\n            :state=\"!invalidBranch\"\n            :disabled=\"isLoading || creatingBranch\"\n            required\n            name=\"branch-name\"\n            type=\"text\"\n            @input=\"checkValidity($event, $options.WORK_ITEM_CREATE_ENTITY_MODAL_TARGET_BRANCH)\"\n          />\n        </gl-form-group>\n      </gl-form>\n    </gl-modal>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_create_branch_merge_request_modal.vue?vue&type=template&id=7f5c7b38\"\nimport script from \"./work_item_create_branch_merge_request_modal.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_create_branch_merge_request_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('div',[_c('gl-modal',{ref:\"create-modal\",attrs:{\"visible\":_vm.showModal || _vm.creatingBranch,\"title\":_vm.modalTitle,\"modal-id\":_vm.$options.createMRModalId,\"action-primary\":_vm.saveButtonAction,\"action-cancel\":_vm.cancelButtonAction,\"size\":\"sm\"},on:{\"primary\":function($event){$event.preventDefault();return _vm.createEntity.apply(null, arguments)},\"hide\":_vm.hideModal}},[_c('gl-form',{staticClass:\"gl-text-left\"},[(_vm.isConfidentialWorkItem)?_c('project-form-group',{attrs:{\"namespace-path\":_vm.groupPath,\"project-path\":_vm.workItemFullPath,\"help-page-path\":_vm.$options.mergeRequestHelpPagePath,\"new-fork-path\":_vm.newForkPath}}):_vm._e(),_vm._v(\" \"),_c('gl-form-group',{attrs:{\"required\":\"\",\"label-for\":\"source-name-id\",\"label\":_vm.$options.i18n.sourceLabel,\"description\":_vm.checkingSourceValidity ? _vm.sourceDescription : '',\"invalid-feedback\":_vm.checkingSourceValidity || _vm.isLoading ? '' : _vm.sourceFeedback,\"valid-feedback\":_vm.checkingSourceValidity || _vm.isLoading ? '' : _vm.$options.i18n.sourceIsAvailable,\"state\":_vm.sourceName ? !_vm.invalidSource : false}},[_c('gl-form-input',{attrs:{\"id\":\"source-name-id\",\"state\":!_vm.invalidSource,\"required\":\"\",\"name\":\"source-name\",\"type\":\"text\",\"disabled\":_vm.isLoading || _vm.creatingBranch},on:{\"input\":function($event){return _vm.checkValidity($event, _vm.$options.WORK_ITEM_CREATE_ENTITY_MODAL_TARGET_SOURCE)}},model:{value:(_vm.sourceName),callback:function ($$v) {_vm.sourceName=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"sourceName\"}})],1),_vm._v(\" \"),_c('gl-form-group',{attrs:{\"required\":\"\",\"label-for\":\"branch-name-id\",\"label\":_vm.$options.i18n.branchLabel,\"description\":_vm.checkingBranchValidity ? _vm.branchDescription : '',\"invalid-feedback\":_vm.checkingBranchValidity || _vm.isLoading ? '' : _vm.branchFeedback,\"valid-feedback\":_vm.checkingBranchValidity || _vm.isLoading ? '' : _vm.$options.i18n.branchNameAvailable,\"state\":_vm.branchName ? !_vm.invalidBranch : false}},[_c('gl-form-input',{attrs:{\"id\":\"branch-name-id\",\"state\":!_vm.invalidBranch,\"disabled\":_vm.isLoading || _vm.creatingBranch,\"required\":\"\",\"name\":\"branch-name\",\"type\":\"text\"},on:{\"input\":function($event){return _vm.checkValidity($event, _vm.$options.WORK_ITEM_CREATE_ENTITY_MODAL_TARGET_BRANCH)}},model:{value:(_vm.branchName),callback:function ($$v) {_vm.branchName=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"branchName\"}})],1)],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_development.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.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_development.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlAlert, GlTooltipDirective, GlModalDirective } from '@gitlab/ui';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\n\nimport { s__, __ } from '~/locale';\nimport { findWidget } from '~/issues/list/utils';\n\nimport workItemByIidQuery from '~/work_items/graphql/work_item_by_iid.query.graphql';\nimport workItemDevelopmentQuery from '~/work_items/graphql/work_item_development.query.graphql';\nimport workItemDevelopmentUpdatedSubscription from '~/work_items/graphql/work_item_development.subscription.graphql';\nimport {\n  sprintfWorkItem,\n  WIDGET_TYPE_DEVELOPMENT,\n  STATE_OPEN,\n  DEVELOPMENT_ITEMS_ANCHOR,\n} from '~/work_items/constants';\n\nimport CrudComponent from '~/vue_shared/components/crud_component.vue';\nimport WorkItemActionsSplitButton from '~/work_items/components/work_item_links/work_item_actions_split_button.vue';\nimport WorkItemDevelopmentRelationshipList from './work_item_development_relationship_list.vue';\nimport WorkItemCreateBranchMergeRequestModal from './work_item_create_branch_merge_request_modal.vue';\n\nexport default {\n  i18n: {\n    development: s__('WorkItem|Development'),\n    fetchError: s__('WorkItem|Something went wrong when fetching items. Please refresh this page.'),\n    createMergeRequest: __('Create merge request'),\n    createBranch: __('Create branch'),\n    branchLabel: __('Branch'),\n    mergeRequestLabel: __('Merge request'),\n    addTooltipLabel: __('Add development item'),\n    openStateWithOneMergeRequestText: s__(\n      'WorkItem|This %{workItemType} will be closed when the following is merged.',\n    ),\n    openStateText: s__(\n      'WorkItem|This %{workItemType} will be closed when any of the following is merged.',\n    ),\n    closedStateText: s__(\n      'WorkItem|The %{workItemType} was closed automatically when a branch was merged.',\n    ),\n  },\n  components: {\n    GlIcon,\n    GlAlert,\n    WorkItemDevelopmentRelationshipList,\n    CrudComponent,\n    WorkItemActionsSplitButton,\n    WorkItemCreateBranchMergeRequestModal,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n    GlModalDirective,\n  },\n  mixins: [glFeatureFlagMixin()],\n  props: {\n    workItemFullPath: {\n      type: String,\n      required: true,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    workItemIid: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    isModal: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      error: undefined,\n      workItem: {},\n      workItemDevelopment: {},\n      showCreateBranchAndMrModal: false,\n      showBranchFlow: true,\n      showMergeRequestFlow: false,\n      isLoadingPermissionsQuery: false,\n      showCreateOptions: true,\n    };\n  },\n  computed: {\n    canUpdate() {\n      return this.workItem?.userPermissions?.updateWorkItem;\n    },\n    workItemState() {\n      return this.workItem?.state;\n    },\n    workItemTypeName() {\n      return this.workItem?.workItemType?.name;\n    },\n    isLoading() {\n      return (\n        this.$apollo.queries.workItem.loading || this.$apollo.queries.workItemDevelopment.loading\n      );\n    },\n    willAutoCloseByMergeRequest() {\n      return this.workItemDevelopment?.willAutoCloseByMergeRequest;\n    },\n    relatedMergeRequests() {\n      return this.workItemDevelopment?.relatedMergeRequests?.nodes || [];\n    },\n    closingMergeRequests() {\n      return this.workItemDevelopment?.closingMergeRequests?.nodes || [];\n    },\n    featureFlags() {\n      return this.workItemDevelopment?.featureFlags?.nodes || [];\n    },\n    relatedBranches() {\n      return this.workItemDevelopment?.relatedBranches?.nodes || [];\n    },\n    shouldShowDevWidget() {\n      return this.workItemDevelopment && !this.isRelatedDevelopmentListEmpty;\n    },\n    isRelatedDevelopmentListEmpty() {\n      return (\n        !this.error &&\n        this.relatedMergeRequests.length === 0 &&\n        this.closingMergeRequests.length === 0 &&\n        this.featureFlags.length === 0 &&\n        this.relatedBranches.length === 0\n      );\n    },\n    showAutoCloseInformation() {\n      return (\n        this.closingMergeRequests.length > 0 && this.willAutoCloseByMergeRequest && !this.isLoading\n      );\n    },\n    openStateText() {\n      return this.closingMergeRequests.length > 1\n        ? sprintfWorkItem(this.$options.i18n.openStateText, this.workItemTypeName)\n        : sprintfWorkItem(\n            this.$options.i18n.openStateWithOneMergeRequestText,\n            this.workItemTypeName,\n          );\n    },\n    closedStateText() {\n      return sprintfWorkItem(this.$options.i18n.closedStateText, this.workItemTypeName);\n    },\n    tooltipText() {\n      return this.workItemState === STATE_OPEN ? this.openStateText : this.closedStateText;\n    },\n    workItemsAlphaEnabled() {\n      return this.glFeatures.workItemsAlpha;\n    },\n    showAddButton() {\n      return this.canUpdate && this.showCreateOptions;\n    },\n    isConfidentialWorkItem() {\n      return this.workItem?.confidential;\n    },\n    projectId() {\n      return this.workItem?.project?.id;\n    },\n    addItemsActions() {\n      return [\n        {\n          name: this.$options.i18n.mergeRequestLabel,\n          items: [\n            {\n              text: this.$options.i18n.createMergeRequest,\n              action: this.openModal.bind(this, false, true),\n              extraAttrs: {\n                'data-testid': 'create-mr-dropdown-button',\n              },\n            },\n          ],\n        },\n        {\n          name: this.$options.i18n.branchLabel,\n          items: [\n            {\n              text: this.$options.i18n.createBranch,\n              action: this.openModal.bind(this, true, false),\n              extraAttrs: {\n                'data-testid': 'create-branch-dropdown-button',\n              },\n            },\n          ],\n        },\n      ];\n    },\n  },\n  apollo: {\n    workItem: {\n      query: workItemByIidQuery,\n      variables() {\n        return {\n          fullPath: this.workItemFullPath,\n          iid: this.workItemIid,\n        };\n      },\n      update(data) {\n        return data.workspace?.workItem || {};\n      },\n      skip() {\n        return !this.workItemIid;\n      },\n      error(e) {\n        this.$emit('error', this.$options.i18n.fetchError);\n        this.error = e.message || this.$options.i18n.fetchError;\n      },\n    },\n    workItemDevelopment: {\n      query: workItemDevelopmentQuery,\n      variables() {\n        return {\n          id: this.workItemId,\n        };\n      },\n      update(data) {\n        return findWidget(WIDGET_TYPE_DEVELOPMENT, data?.workItem) || {};\n      },\n      skip() {\n        return !this.workItemIid;\n      },\n      error(e) {\n        this.$emit('error', this.$options.i18n.fetchError);\n        this.error = e.message || this.$options.i18n.fetchError;\n      },\n      subscribeToMore: {\n        document: workItemDevelopmentUpdatedSubscription,\n        variables() {\n          return {\n            id: this.workItem.id,\n          };\n        },\n        skip() {\n          return !this.workItem?.id;\n        },\n      },\n    },\n  },\n  methods: {\n    openModal(createBranch = true, createMergeRequest = false) {\n      this.toggleCreateModal(true);\n      this.showBranchFlow = createBranch;\n      this.showMergeRequestFlow = createMergeRequest;\n    },\n    toggleCreateModal(showOrhide) {\n      this.showCreateBranchAndMrModal = showOrhide;\n    },\n    updatePermissions(canCreateBranch) {\n      this.showCreateOptions = canCreateBranch;\n    },\n  },\n  DEVELOPMENT_ITEMS_ANCHOR,\n};\n</script>\n\n<template>\n  <div>\n    <crud-component\n      v-if=\"shouldShowDevWidget\"\n      ref=\"workItemDevelopment\"\n      :title=\"$options.i18n.development\"\n      :anchor-id=\"$options.DEVELOPMENT_ITEMS_ANCHOR\"\n      :is-loading=\"isLoading || isLoadingPermissionsQuery\"\n      is-collapsible\n      persist-collapsed-state\n      data-testid=\"work-item-development\"\n    >\n      <template #count>\n        <span\n          v-if=\"showAutoCloseInformation\"\n          v-gl-tooltip\n          tabindex=\"0\"\n          class=\"!gl-p-0 hover:!gl-bg-transparent\"\n          :title=\"tooltipText\"\n          :aria-label=\"tooltipText\"\n          data-testid=\"more-information\"\n        >\n          <gl-icon name=\"information-o\" variant=\"info\" />\n        </span>\n      </template>\n\n      <template #actions>\n        <work-item-actions-split-button\n          v-if=\"showAddButton\"\n          data-testid=\"create-options-dropdown\"\n          :actions=\"addItemsActions\"\n          :tooltip-text=\"$options.i18n.addTooltipLabel\"\n        />\n      </template>\n\n      <template v-if=\"isRelatedDevelopmentListEmpty\" #empty>\n        {{ __('None') }}\n      </template>\n\n      <template #default>\n        <gl-alert v-if=\"error\" variant=\"danger\" @dismiss=\"error = undefined\">\n          {{ error }}\n        </gl-alert>\n        <work-item-development-relationship-list\n          v-if=\"!isRelatedDevelopmentListEmpty\"\n          :is-modal=\"isModal\"\n          :work-item-dev-widget=\"workItemDevelopment\"\n        />\n      </template>\n    </crud-component>\n    <work-item-create-branch-merge-request-modal\n      v-if=\"!isLoading\"\n      :show-modal=\"showCreateBranchAndMrModal\"\n      :show-branch-flow=\"showBranchFlow\"\n      :show-merge-request-flow=\"showMergeRequestFlow\"\n      :work-item-iid=\"workItemIid\"\n      :work-item-id=\"workItemId\"\n      :work-item-type=\"workItemTypeName\"\n      :work-item-full-path=\"workItemFullPath\"\n      :is-confidential-work-item=\"isConfidentialWorkItem\"\n      :project-id=\"projectId\"\n      @hideModal=\"toggleCreateModal(false)\"\n      @fetchedPermissions=\"updatePermissions\"\n    />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_development.vue?vue&type=template&id=8928590e\"\nimport script from \"./work_item_development.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_development.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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.shouldShowDevWidget)?_c('crud-component',{ref:\"workItemDevelopment\",attrs:{\"title\":_vm.$options.i18n.development,\"anchor-id\":_vm.$options.DEVELOPMENT_ITEMS_ANCHOR,\"is-loading\":_vm.isLoading || _vm.isLoadingPermissionsQuery,\"is-collapsible\":\"\",\"persist-collapsed-state\":\"\",\"data-testid\":\"work-item-development\"},scopedSlots:_vm._u([{key:\"count\",fn:function(){return [(_vm.showAutoCloseInformation)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"!gl-p-0 hover:!gl-bg-transparent\",attrs:{\"tabindex\":\"0\",\"title\":_vm.tooltipText,\"aria-label\":_vm.tooltipText,\"data-testid\":\"more-information\"}},[_c('gl-icon',{attrs:{\"name\":\"information-o\",\"variant\":\"info\"}})],1):_vm._e()]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.showAddButton)?_c('work-item-actions-split-button',{attrs:{\"data-testid\":\"create-options-dropdown\",\"actions\":_vm.addItemsActions,\"tooltip-text\":_vm.$options.i18n.addTooltipLabel}}):_vm._e()]},proxy:true},(_vm.isRelatedDevelopmentListEmpty)?{key:\"empty\",fn:function(){return [_vm._v(\"\\n      \"+_vm._s(_vm.__('None'))+\"\\n    \")]},proxy:true}:null,{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.isRelatedDevelopmentListEmpty)?_c('work-item-development-relationship-list',{attrs:{\"is-modal\":_vm.isModal,\"work-item-dev-widget\":_vm.workItemDevelopment}}):_vm._e()]},proxy:true}],null,true)}):_vm._e(),_vm._v(\" \"),(!_vm.isLoading)?_c('work-item-create-branch-merge-request-modal',{attrs:{\"show-modal\":_vm.showCreateBranchAndMrModal,\"show-branch-flow\":_vm.showBranchFlow,\"show-merge-request-flow\":_vm.showMergeRequestFlow,\"work-item-iid\":_vm.workItemIid,\"work-item-id\":_vm.workItemId,\"work-item-type\":_vm.workItemTypeName,\"work-item-full-path\":_vm.workItemFullPath,\"is-confidential-work-item\":_vm.isConfidentialWorkItem,\"project-id\":_vm.projectId},on:{\"hideModal\":function($event){return _vm.toggleCreateModal(false)},\"fetchedPermissions\":_vm.updatePermissions}}):_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_create_branch_merge_request_split_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!./work_item_create_branch_merge_request_split_button.vue?vue&type=script&lang=js\"","<script>\nimport {\n  GlButton,\n  GlButtonGroup,\n  GlDisclosureDropdown,\n  GlDisclosureDropdownGroup,\n} from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport WorkItemCreateBranchMergeRequestModal from './work_item_create_branch_merge_request_modal.vue';\n\nexport default {\n  name: 'WorkItemCreateBranchMergeRequestSplitButton',\n  i18n: {\n    createMergeRequest: __('Create merge request'),\n    createBranch: __('Create branch'),\n    branchLabel: __('Branch'),\n    mergeRequestLabel: __('Merge request'),\n  },\n  components: {\n    GlButton,\n    GlButtonGroup,\n    GlDisclosureDropdown,\n    GlDisclosureDropdownGroup,\n    WorkItemCreateBranchMergeRequestModal,\n  },\n  props: {\n    workItemFullPath: {\n      type: String,\n      required: true,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    projectId: {\n      type: String,\n      required: true,\n    },\n    workItemIid: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    isConfidentialWorkItem: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      showBranchFlow: true,\n      showMergeRequestFlow: false,\n      showCreateBranchAndMrModal: false,\n      checkingBranchAvailibility: true,\n      showCreateOptions: true,\n    };\n  },\n  computed: {\n    mergeRequestGroup() {\n      const items = [\n        {\n          text: this.$options.i18n.createMergeRequest,\n          action: this.openModal.bind(this, false, true),\n          extraAttrs: {\n            'data-testid': 'create-mr-dropdown-button',\n          },\n        },\n      ];\n\n      return { items, name: __('Merge request') };\n    },\n    branchGroup() {\n      const items = [\n        {\n          text: this.$options.i18n.createBranch,\n          action: this.openModal.bind(this, true, false),\n          extraAttrs: {\n            'data-testid': 'create-branch-dropdown-button',\n          },\n        },\n      ];\n\n      return { items, name: __('Branch') };\n    },\n    createMergeRequestButtonText() {\n      return this.isConfidentialWorkItem\n        ? __('Create confidential merge request')\n        : this.$options.i18n.createMergeRequest;\n    },\n  },\n  methods: {\n    openModal(createBranch = true, createMergeRequest = false) {\n      this.toggleCreateModal(true);\n      this.showBranchFlow = createBranch;\n      this.showMergeRequestFlow = createMergeRequest;\n    },\n    toggleCreateModal(showOrhide) {\n      this.showCreateBranchAndMrModal = showOrhide;\n    },\n    updatePermissions(canCreateBranch) {\n      this.checkingBranchAvailibility = false;\n      this.showCreateOptions = canCreateBranch;\n    },\n  },\n};\n</script>\n\n<template>\n  <div v-if=\"showCreateOptions\" class=\"gl-mt-4\">\n    <gl-button-group>\n      <gl-button\n        :loading=\"checkingBranchAvailibility\"\n        icon=\"merge-request\"\n        category=\"primary\"\n        variant=\"default\"\n        size=\"medium\"\n        @click=\"openModal(false, true)\"\n      >\n        {{ createMergeRequestButtonText }}\n      </gl-button>\n      <gl-disclosure-dropdown placement=\"bottom-end\" data-testid=\"create-options-dropdown\">\n        <gl-disclosure-dropdown-group :group=\"mergeRequestGroup\" />\n\n        <gl-disclosure-dropdown-group bordered :group=\"branchGroup\" />\n      </gl-disclosure-dropdown>\n    </gl-button-group>\n    <work-item-create-branch-merge-request-modal\n      :show-modal=\"showCreateBranchAndMrModal\"\n      :show-branch-flow=\"showBranchFlow\"\n      :show-merge-request-flow=\"showMergeRequestFlow\"\n      :work-item-iid=\"workItemIid\"\n      :work-item-id=\"workItemId\"\n      :work-item-type=\"workItemType\"\n      :work-item-full-path=\"workItemFullPath\"\n      :is-confidential-work-item=\"isConfidentialWorkItem\"\n      :project-id=\"projectId\"\n      @hideModal=\"toggleCreateModal(false)\"\n      @fetchedPermissions=\"updatePermissions\"\n    />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_create_branch_merge_request_split_button.vue?vue&type=template&id=17a8e22c\"\nimport script from \"./work_item_create_branch_merge_request_split_button.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_create_branch_merge_request_split_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 (_vm.showCreateOptions)?_c('div',{staticClass:\"gl-mt-4\"},[_c('gl-button-group',[_c('gl-button',{attrs:{\"loading\":_vm.checkingBranchAvailibility,\"icon\":\"merge-request\",\"category\":\"primary\",\"variant\":\"default\",\"size\":\"medium\"},on:{\"click\":function($event){return _vm.openModal(false, true)}}},[_vm._v(\"\\n      \"+_vm._s(_vm.createMergeRequestButtonText)+\"\\n    \")]),_vm._v(\" \"),_c('gl-disclosure-dropdown',{attrs:{\"placement\":\"bottom-end\",\"data-testid\":\"create-options-dropdown\"}},[_c('gl-disclosure-dropdown-group',{attrs:{\"group\":_vm.mergeRequestGroup}}),_vm._v(\" \"),_c('gl-disclosure-dropdown-group',{attrs:{\"bordered\":\"\",\"group\":_vm.branchGroup}})],1)],1),_vm._v(\" \"),_c('work-item-create-branch-merge-request-modal',{attrs:{\"show-modal\":_vm.showCreateBranchAndMrModal,\"show-branch-flow\":_vm.showBranchFlow,\"show-merge-request-flow\":_vm.showMergeRequestFlow,\"work-item-iid\":_vm.workItemIid,\"work-item-id\":_vm.workItemId,\"work-item-type\":_vm.workItemType,\"work-item-full-path\":_vm.workItemFullPath,\"is-confidential-work-item\":_vm.isConfidentialWorkItem,\"project-id\":_vm.projectId},on:{\"hideModal\":function($event){return _vm.toggleCreateModal(false)},\"fetchedPermissions\":_vm.updatePermissions}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { isEmpty } from 'lodash';\nimport {\n  GlAlert,\n  GlButton,\n  GlTooltipDirective,\n  GlEmptyState,\n  GlIntersectionObserver,\n} from '@gitlab/ui';\nimport noAccessSvg from '@gitlab/svgs/dist/illustrations/empty-state/empty-search-md.svg';\nimport DesignDropzone from '~/vue_shared/components/upload_dropzone/upload_dropzone.vue';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { s__ } from '~/locale';\nimport { getParameterByName } from '~/lib/utils/url_utility';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_GROUP } from '~/graphql_shared/constants';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport { WORKSPACE_PROJECT } from '~/issues/constants';\nimport {\n  i18n,\n  WIDGET_TYPE_ASSIGNEES,\n  WIDGET_TYPE_NOTIFICATIONS,\n  WIDGET_TYPE_CURRENT_USER_TODOS,\n  WIDGET_TYPE_DESCRIPTION,\n  WIDGET_TYPE_AWARD_EMOJI,\n  WIDGET_TYPE_HIERARCHY,\n  WORK_ITEM_TYPE_VALUE_OBJECTIVE,\n  WIDGET_TYPE_NOTES,\n  WIDGET_TYPE_LINKED_ITEMS,\n  WIDGET_TYPE_DESIGNS,\n  LINKED_ITEMS_ANCHOR,\n  WORK_ITEM_REFERENCE_CHAR,\n  WORK_ITEM_TYPE_VALUE_TASK,\n  WORK_ITEM_TYPE_VALUE_EPIC,\n  WIDGET_TYPE_WEIGHT,\n  WIDGET_TYPE_DEVELOPMENT,\n  STATE_OPEN,\n} from '../constants';\n\nimport workItemUpdatedSubscription from '../graphql/work_item_updated.subscription.graphql';\nimport updateWorkItemMutation from '../graphql/update_work_item.mutation.graphql';\nimport workItemByIdQuery from '../graphql/work_item_by_id.query.graphql';\nimport workItemByIidQuery from '../graphql/work_item_by_iid.query.graphql';\nimport getAllowedWorkItemChildTypes from '../graphql/work_item_allowed_children.query.graphql';\nimport workspacePermissionsQuery from '../graphql/workspace_permissions.query.graphql';\nimport { findHierarchyWidgetDefinition } from '../utils';\nimport { updateWorkItemCurrentTodosWidget } from '../graphql/cache_utils';\n\nimport getWorkItemDesignListQuery from './design_management/graphql/design_collection.query.graphql';\nimport uploadDesignMutation from './design_management/graphql/upload_design.mutation.graphql';\nimport { designUploadOptimisticResponse } from './design_management/utils';\nimport { updateStoreAfterUploadDesign } from './design_management/cache_updates';\nimport {\n  MAXIMUM_FILE_UPLOAD_LIMIT,\n  MAXIMUM_FILE_UPLOAD_LIMIT_REACHED,\n  designUploadSkippedWarning,\n  UPLOAD_DESIGN_ERROR_MESSAGE,\n  ALERT_VARIANTS,\n  VALID_DESIGN_FILE_MIMETYPE,\n} from './design_management/constants';\n\nimport WorkItemTree from './work_item_links/work_item_tree.vue';\nimport WorkItemActions from './work_item_actions.vue';\nimport TodosToggle from './shared/todos_toggle.vue';\nimport WorkItemNotificationsWidget from './work_item_notifications_widget.vue';\nimport WorkItemAttributesWrapper from './work_item_attributes_wrapper.vue';\nimport WorkItemCreatedUpdated from './work_item_created_updated.vue';\nimport WorkItemDescription from './work_item_description.vue';\nimport WorkItemNotes from './work_item_notes.vue';\nimport WorkItemAwardEmoji from './work_item_award_emoji.vue';\nimport WorkItemRelationships from './work_item_relationships/work_item_relationships.vue';\nimport WorkItemStickyHeader from './work_item_sticky_header.vue';\nimport WorkItemAncestors from './work_item_ancestors/work_item_ancestors.vue';\nimport WorkItemTitle from './work_item_title.vue';\nimport WorkItemLoading from './work_item_loading.vue';\nimport WorkItemAbuseModal from './work_item_abuse_modal.vue';\nimport WorkItemDrawer from './work_item_drawer.vue';\nimport DesignWidget from './design_management/design_management_widget.vue';\nimport DesignUploadButton from './design_management/upload_button.vue';\nimport WorkItemDevelopment from './work_item_development/work_item_development.vue';\nimport WorkItemCreateBranchMergeRequestSplitButton from './work_item_development/work_item_create_branch_merge_request_split_button.vue';\n\nconst defaultWorkspacePermissions = {\n  createDesign: false,\n};\n\nexport default {\n  name: 'WorkItemDetail',\n  i18n,\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  isLoggedIn: isLoggedIn(),\n  VALID_DESIGN_FILE_MIMETYPE,\n  components: {\n    DesignDropzone,\n    DesignWidget,\n    DesignUploadButton,\n    GlAlert,\n    GlButton,\n    GlEmptyState,\n    GlIntersectionObserver,\n    WorkItemActions,\n    TodosToggle,\n    WorkItemNotificationsWidget,\n    WorkItemCreatedUpdated,\n    WorkItemDescription,\n    WorkItemAwardEmoji,\n    WorkItemAttributesWrapper,\n    WorkItemTree,\n    WorkItemNotes,\n    WorkItemRelationships,\n    WorkItemStickyHeader,\n    WorkItemAncestors,\n    WorkItemTitle,\n    WorkItemLoading,\n    WorkItemAbuseModal,\n    WorkItemDrawer,\n    WorkItemDevelopment,\n    WorkItemCreateBranchMergeRequestSplitButton,\n  },\n  mixins: [glFeatureFlagMixin()],\n  inject: [\n    'fullPath',\n    'reportAbusePath',\n    'groupPath',\n    'hasSubepicsFeature',\n    'hasLinkedItemsEpicsFeature',\n  ],\n  props: {\n    isModal: {\n      type: Boolean,\n      required: false,\n      default: false,\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    modalWorkItemFullPath: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    modalIsGroup: {\n      type: Boolean,\n      required: false,\n      default: null,\n    },\n    isDrawer: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      error: undefined,\n      updateError: undefined,\n      workItem: {},\n      updateInProgress: false,\n      modalWorkItemIid: getParameterByName('work_item_iid'),\n      modalWorkItemNamespaceFullPath: '',\n      isReportModalOpen: false,\n      reportedUrl: '',\n      reportedUserId: 0,\n      isStickyHeaderShowing: false,\n      editMode: false,\n      draftData: {},\n      hasChildren: false,\n      filesToBeSaved: [],\n      allowedChildTypes: [],\n      designUploadError: null,\n      designUploadErrorVariant: ALERT_VARIANTS.danger,\n      workspacePermissions: defaultWorkspacePermissions,\n      activeChildItem: null,\n      isEmptyStateVisible: false,\n      dragCounter: 0,\n      isDesignUploadButtonInViewport: false,\n      isDragDataValid: false,\n      isAddingNotes: false,\n    };\n  },\n  apollo: {\n    workItem: {\n      query() {\n        if (this.workItemId) {\n          return workItemByIdQuery;\n        }\n        return workItemByIidQuery;\n      },\n      variables() {\n        if (this.workItemId) {\n          return {\n            id: this.workItemId,\n          };\n        }\n        return {\n          fullPath: this.workItemFullPath,\n          iid: this.workItemIid,\n        };\n      },\n      skip() {\n        return !this.workItemIid && !this.workItemId;\n      },\n      update(data) {\n        if (this.workItemId) {\n          return data.workItem ?? {};\n        }\n        return data.workspace.workItem ?? {};\n      },\n      error() {\n        this.setEmptyState();\n      },\n      result(res) {\n        // need to handle this when the res is loading: true, netWorkStatus: 1, partial: true\n        if (!res.data) {\n          return;\n        }\n        this.activeChildItem = null;\n        this.$emit('work-item-updated', this.workItem);\n        if (isEmpty(this.workItem)) {\n          this.setEmptyState();\n        }\n        if (!(this.isModal || this.isDrawer) && this.workItem.namespace) {\n          const path = this.workItem.namespace.fullPath\n            ? ` · ${this.workItem.namespace.fullPath}`\n            : '';\n\n          document.title = `${this.workItem.title} (${WORK_ITEM_REFERENCE_CHAR}${this.workItem.iid}) · ${this.workItem?.workItemType?.name}${path}`;\n        }\n      },\n      subscribeToMore: {\n        document: workItemUpdatedSubscription,\n        variables() {\n          return {\n            id: this.workItem.id,\n          };\n        },\n        skip() {\n          return !this.workItem?.id;\n        },\n      },\n    },\n    allowedChildTypes: {\n      query: getAllowedWorkItemChildTypes,\n      variables() {\n        return {\n          id: this.workItem.id,\n        };\n      },\n      skip() {\n        return !this.workItem?.id;\n      },\n      update(data) {\n        return findHierarchyWidgetDefinition(data.workItem)?.allowedChildTypes?.nodes || [];\n      },\n    },\n    workspacePermissions: {\n      query: workspacePermissionsQuery,\n      variables() {\n        return {\n          fullPath: this.workItemFullPath,\n        };\n      },\n      skip() {\n        return this.isGroupWorkItem || this.workItemLoading;\n      },\n      update(data) {\n        return data.workspace?.userPermissions ?? defaultWorkspacePermissions;\n      },\n    },\n  },\n  computed: {\n    workItemFullPath() {\n      return this.modalWorkItemFullPath || this.fullPath;\n    },\n    workItemProjectId() {\n      return this.workItem?.project?.id;\n    },\n    workItemLoading() {\n      return isEmpty(this.workItem) && this.$apollo.queries.workItem.loading;\n    },\n    workItemType() {\n      return this.workItem.workItemType?.name;\n    },\n    workItemTypeId() {\n      return this.workItem.workItemType?.id;\n    },\n    workItemAuthorId() {\n      return getIdFromGraphQLId(this.workItem.author?.id);\n    },\n    canUpdate() {\n      return this.workItem.userPermissions?.updateWorkItem;\n    },\n    canUpdateChildren() {\n      return this.workItem.userPermissions?.adminParentLink;\n    },\n    canDelete() {\n      return this.workItem.userPermissions?.deleteWorkItem;\n    },\n    canSetWorkItemMetadata() {\n      return this.workItem.userPermissions?.setWorkItemMetadata;\n    },\n    canAdminWorkItemLink() {\n      return this.workItem.userPermissions?.adminWorkItemLink;\n    },\n    canAssignUnassignUser() {\n      return this.workItemAssignees && this.canSetWorkItemMetadata;\n    },\n    isDiscussionLocked() {\n      return this.workItemNotes?.discussionLocked;\n    },\n    workItemsAlphaEnabled() {\n      return this.glFeatures.workItemsAlpha;\n    },\n    newTodoAndNotificationsEnabled() {\n      return this.glFeatures.notificationsTodosButtons;\n    },\n    parentWorkItem() {\n      return this.isWidgetPresent(WIDGET_TYPE_HIERARCHY)?.parent;\n    },\n    parentWorkItemId() {\n      return this.parentWorkItem?.id;\n    },\n    hasParent() {\n      const { workItemType, parentWorkItem, hasSubepicsFeature } = this;\n\n      if (workItemType === WORK_ITEM_TYPE_VALUE_EPIC) {\n        return Boolean(hasSubepicsFeature && parentWorkItem);\n      }\n\n      return Boolean(parentWorkItem);\n    },\n    shouldShowAncestors() {\n      // TODO: This is a temporary check till the issue work item migration is completed\n      // Issue: https://gitlab.com/gitlab-org/gitlab/-/issues/468114\n      if (\n        this.workItemType === WORK_ITEM_TYPE_VALUE_TASK &&\n        !this.glFeatures.namespaceLevelWorkItems\n      ) {\n        return false;\n      }\n\n      // Checks whether current work item has parent\n      // or it is in hierarchy but there is no permission to view the parent\n      return this.hasParent || this.workItemHierarchy?.hasParent;\n    },\n    parentWorkItemConfidentiality() {\n      return this.parentWorkItem?.confidential;\n    },\n    parentWorkItemType() {\n      return this.parentWorkItem?.workItemType?.name;\n    },\n    workItemIconName() {\n      return this.workItem.workItemType?.iconName;\n    },\n    hasDescriptionWidget() {\n      return this.isWidgetPresent(WIDGET_TYPE_DESCRIPTION);\n    },\n    hasDesignWidget() {\n      return this.isWidgetPresent(WIDGET_TYPE_DESIGNS) && this.$router;\n    },\n    showUploadDesign() {\n      return this.hasDesignWidget && this.workspacePermissions.createDesign;\n    },\n    workItemNotificationsSubscribed() {\n      return Boolean(this.isWidgetPresent(WIDGET_TYPE_NOTIFICATIONS)?.subscribed);\n    },\n    workItemCurrentUserTodos() {\n      return this.isWidgetPresent(WIDGET_TYPE_CURRENT_USER_TODOS);\n    },\n    showWorkItemCurrentUserTodos() {\n      return Boolean(this.$options.isLoggedIn && this.workItemCurrentUserTodos);\n    },\n    currentUserTodos() {\n      return this.workItemCurrentUserTodos?.currentUserTodos?.nodes;\n    },\n    workItemAssignees() {\n      return this.isWidgetPresent(WIDGET_TYPE_ASSIGNEES);\n    },\n    workItemAwardEmoji() {\n      return this.isWidgetPresent(WIDGET_TYPE_AWARD_EMOJI);\n    },\n    workItemHierarchy() {\n      return this.isWidgetPresent(WIDGET_TYPE_HIERARCHY);\n    },\n    workItemNotes() {\n      return this.isWidgetPresent(WIDGET_TYPE_NOTES);\n    },\n    workItemWeight() {\n      return this.isWidgetPresent(WIDGET_TYPE_WEIGHT);\n    },\n    workItemDevelopment() {\n      return this.isWidgetPresent(WIDGET_TYPE_DEVELOPMENT);\n    },\n    workItemBodyClass() {\n      return {\n        'gl-pt-5': !this.updateError && !this.isModal,\n      };\n    },\n    showIntersectionObserver() {\n      return !this.isModal && !this.editMode && !this.isDrawer;\n    },\n    workItemLinkedItems() {\n      return this.workItemType === WORK_ITEM_TYPE_VALUE_EPIC\n        ? this.isWidgetPresent(WIDGET_TYPE_LINKED_ITEMS) && this.hasLinkedItemsEpicsFeature\n        : this.isWidgetPresent(WIDGET_TYPE_LINKED_ITEMS);\n    },\n    showWorkItemTree() {\n      return this.isWidgetPresent(WIDGET_TYPE_HIERARCHY) && this.allowedChildTypes?.length > 0;\n    },\n    titleClassHeader() {\n      return {\n        'sm:!gl-hidden gl-mt-3': this.shouldShowAncestors,\n        'sm:!gl-block': !this.shouldShowAncestors,\n        'gl-w-full': !this.shouldShowAncestors && !this.editMode,\n        'editable-wi-title': this.editMode && !this.shouldShowAncestors,\n      };\n    },\n    titleClassComponent() {\n      return {\n        'sm:!gl-block': !this.shouldShowAncestors,\n        'gl-hidden sm:!gl-block gl-mt-3': this.shouldShowAncestors,\n        'editable-wi-title': this.workItemsAlphaEnabled,\n      };\n    },\n    shouldShowEditButton() {\n      return !this.editMode && this.canUpdate;\n    },\n    modalCloseButtonClass() {\n      return {\n        'sm:gl-hidden': !this.error,\n        'gl-flex': true,\n      };\n    },\n    workItemPresent() {\n      return !isEmpty(this.workItem);\n    },\n    isGroupWorkItem() {\n      return Boolean(this.modalIsGroup ?? this.workItem.namespace?.id.includes(TYPENAME_GROUP));\n    },\n    isSaving() {\n      return this.filesToBeSaved.length > 0;\n    },\n    designCollectionQueryBody() {\n      return {\n        query: getWorkItemDesignListQuery,\n        variables: { id: this.workItem.id, atVersion: null },\n      };\n    },\n    iid() {\n      return this.workItemIid || this.workItem.iid;\n    },\n    widgets() {\n      return this.workItem.widgets;\n    },\n    isItemSelected() {\n      return !isEmpty(this.activeChildItem);\n    },\n    activeChildItemType() {\n      return this.activeChildItem?.workItemType?.name;\n    },\n    activeChildItemId() {\n      return this.activeChildItem?.id;\n    },\n    workItemIsOpen() {\n      return this.workItem?.state === STATE_OPEN;\n    },\n    showCreateBranchMergeRequestSplitButton() {\n      return this.workItemDevelopment && this.workItemIsOpen;\n    },\n  },\n  methods: {\n    handleWorkItemCreated() {\n      this.$apollo.queries.workItem.refetch();\n    },\n    enableEditMode() {\n      this.editMode = true;\n    },\n    isWidgetPresent(type) {\n      return this.widgets?.find((widget) => widget.type === type);\n    },\n    toggleConfidentiality(confidentialStatus) {\n      this.updateInProgress = true;\n\n      this.$apollo\n        .mutate({\n          mutation: updateWorkItemMutation,\n          variables: {\n            input: {\n              id: this.workItem.id,\n              confidential: confidentialStatus,\n            },\n          },\n        })\n        .then(\n          ({\n            data: {\n              workItemUpdate: { errors, workItem },\n            },\n          }) => {\n            if (errors?.length) {\n              throw new Error(errors[0]);\n            }\n\n            this.$emit('workItemUpdated', {\n              confidential: workItem?.confidential,\n            });\n          },\n        )\n        .catch((error) => {\n          this.updateError = error.message;\n        })\n        .finally(() => {\n          this.updateInProgress = false;\n        });\n    },\n    setEmptyState() {\n      this.error = this.$options.i18n.fetchError;\n      document.title = s__('404|Not found');\n    },\n    openContextualView({ event, modalWorkItem, context }) {\n      if (!this.workItemsAlphaEnabled || context === LINKED_ITEMS_ANCHOR || this.isDrawer) {\n        return;\n      }\n\n      if (event) {\n        event.preventDefault();\n      }\n\n      if (this.isModal) {\n        this.$emit('update-modal', event, modalWorkItem);\n        return;\n      }\n\n      this.activeChildItem = modalWorkItem;\n    },\n    openReportAbuseModal(reply) {\n      if (this.isModal) {\n        this.$emit('openReportAbuse', reply);\n      } else {\n        this.toggleReportAbuseModal(true, reply);\n      }\n    },\n    toggleReportAbuseModal(isOpen, workItem = this.workItem) {\n      this.isReportModalOpen = isOpen;\n      this.reportedUrl = workItem.webUrl || workItem.url || {};\n      this.reportedUserId = workItem.author ? getIdFromGraphQLId(workItem.author.id) : 0;\n    },\n    hideStickyHeader() {\n      this.isStickyHeaderShowing = false;\n    },\n    showStickyHeader() {\n      this.isStickyHeaderShowing = true;\n    },\n    updateDraft(type, value) {\n      this.draftData[type] = value;\n    },\n    async updateWorkItem({ clearDraft } = {}) {\n      this.updateInProgress = true;\n      try {\n        const {\n          data: { workItemUpdate },\n        } = await this.$apollo.mutate({\n          mutation: updateWorkItemMutation,\n          variables: {\n            input: {\n              id: this.workItem.id,\n              title: this.draftData.title,\n              descriptionWidget: {\n                description: this.draftData.description,\n              },\n            },\n          },\n        });\n\n        const { errors } = workItemUpdate;\n\n        if (errors?.length) {\n          this.updateError = errors.join('\\n');\n          throw new Error(this.updateError);\n        }\n\n        if (clearDraft) {\n          clearDraft();\n        }\n\n        this.editMode = false;\n      } catch (error) {\n        Sentry.captureException(error);\n      } finally {\n        this.updateInProgress = false;\n      }\n    },\n    cancelEditing() {\n      this.draftData = {};\n      this.editMode = false;\n    },\n    isValidDesignUpload(files) {\n      if (!this.workspacePermissions.createDesign) return false;\n\n      if (files.length > MAXIMUM_FILE_UPLOAD_LIMIT) {\n        this.designUploadError = MAXIMUM_FILE_UPLOAD_LIMIT_REACHED;\n\n        return false;\n      }\n      return true;\n    },\n    onUploadDesign(files) {\n      // Redirect to latest version before uploading to avoid cache reading errors\n      if (this.$route?.query?.version) {\n        this.$router.push({\n          path: this.$route.path,\n          query: {},\n        });\n      }\n\n      // convert to Array so that we have Array methods (.map, .some, etc.)\n      this.filesToBeSaved = Array.from(files);\n      if (!this.isValidDesignUpload(this.filesToBeSaved)) return null;\n\n      const mutationPayload = {\n        optimisticResponse: designUploadOptimisticResponse(this.filesToBeSaved),\n        variables: {\n          files: this.filesToBeSaved,\n          projectPath: this.fullPath,\n          iid: this.iid,\n        },\n        context: {\n          hasUpload: true,\n        },\n        mutation: uploadDesignMutation,\n        update: this.afterUploadDesign,\n      };\n\n      this.designUploadErrorVariant = ALERT_VARIANTS.danger;\n      return this.$apollo\n        .mutate(mutationPayload)\n        .then((res) => this.onUploadDesignDone(res))\n        .catch(() => this.onUploadDesignError());\n    },\n    afterUploadDesign(store, { data: { designManagementUpload } }) {\n      updateStoreAfterUploadDesign(store, designManagementUpload, this.designCollectionQueryBody);\n    },\n    resetFilesToBeSaved() {\n      this.filesToBeSaved = [];\n    },\n    onUploadDesignDone(res) {\n      // display any warnings, if necessary\n      const skippedFiles = res?.data?.designManagementUpload?.skippedDesigns || [];\n      const skippedWarningMessage = designUploadSkippedWarning(this.filesToBeSaved, skippedFiles);\n      if (skippedWarningMessage) {\n        this.designUploadError = skippedWarningMessage;\n        this.designUploadErrorVariant = ALERT_VARIANTS.info;\n      }\n\n      // reset state\n      this.resetFilesToBeSaved();\n    },\n    onUploadDesignError() {\n      this.resetFilesToBeSaved();\n      this.designUploadError = UPLOAD_DESIGN_ERROR_MESSAGE;\n    },\n    updateWorkItemCurrentTodosWidgetCache({ cache, todos }) {\n      updateWorkItemCurrentTodosWidget({\n        cache,\n        todos,\n        fullPath: this.workItemFullPath,\n        iid: this.iid,\n      });\n    },\n    async deleteChildItem({ id }) {\n      this.activeChildItem = null;\n      await this.$nextTick();\n\n      const { cache } = this.$apollo.provider.clients.defaultClient;\n      cache.evict({\n        id: cache.identify({\n          __typename: 'WorkItem',\n          id,\n        }),\n      });\n      cache.gc();\n    },\n    workItemTypeChanged() {\n      this.$apollo.queries.workItem.refetch();\n      this.$emit('workItemTypeChanged', this.workItem);\n    },\n    isValidDragDataType({ dataTransfer }) {\n      this.isDragDataValid = Array.from(dataTransfer.items).some((item) =>\n        this.$options.VALID_DESIGN_FILE_MIMETYPE.mimetype.includes(item.type),\n      );\n    },\n    onDragEnter(event) {\n      this.dragCounter += 1;\n      this.isValidDragDataType(event);\n    },\n    onDragOver(event) {\n      this.isValidDragDataType(event);\n      if (this.isDesignUploadButtonInViewport) this.isEmptyStateVisible = true;\n    },\n    onDragLeave(event) {\n      const emptyStateDesignDropzone =\n        this.$refs.emptyStateDesignDropzone?.$el || this.$refs.emptyStateDesignDropzone;\n      if (!emptyStateDesignDropzone.contains(event.relatedTarget)) {\n        this.dragCounter -= 1;\n      }\n\n      if (this.dragCounter === 0) {\n        this.isEmptyStateVisible = false; // Hide dropzone\n      }\n    },\n    onDragLeaveMain(event) {\n      // Check if the drag is leaving the main container entirely\n      const mainContainerRef = this.$refs.workItemDetail;\n      if (!mainContainerRef.contains(event.relatedTarget)) {\n        this.dragCounter = 0;\n        this.isEmptyStateVisible = false; // Hide dropzone\n      }\n    },\n    onDrop() {\n      this.dragCounter = 0; // Reset drag state\n      this.isEmptyStateVisible = false; // Hide dropzone after drop\n    },\n  },\n  WORK_ITEM_TYPE_VALUE_OBJECTIVE,\n  WORKSPACE_PROJECT,\n  noAccessSvg,\n};\n</script>\n\n<template>\n  <div\n    ref=\"workItemDetail\"\n    @dragstart.prevent.stop\n    @dragend.prevent.stop\n    @dragenter.prevent.stop=\"onDragEnter\"\n    @dragover.prevent.stop=\"onDragOver\"\n    @dragleave.prevent.stop=\"onDragLeaveMain\"\n    @drop.prevent.stop=\"onDrop\"\n  >\n    <work-item-sticky-header\n      v-if=\"showIntersectionObserver\"\n      :current-user-todos=\"currentUserTodos\"\n      :show-work-item-current-user-todos=\"showWorkItemCurrentUserTodos\"\n      :parent-work-item-confidentiality=\"parentWorkItemConfidentiality\"\n      :update-in-progress=\"updateInProgress\"\n      :full-path=\"workItemFullPath\"\n      :is-modal=\"isModal\"\n      :work-item=\"workItem\"\n      :is-sticky-header-showing=\"isStickyHeaderShowing\"\n      :work-item-notifications-subscribed=\"workItemNotificationsSubscribed\"\n      :work-item-author-id=\"workItemAuthorId\"\n      :is-group=\"isGroupWorkItem\"\n      :allowed-child-types=\"allowedChildTypes\"\n      :parent-id=\"parentWorkItemId\"\n      @hideStickyHeader=\"hideStickyHeader\"\n      @showStickyHeader=\"showStickyHeader\"\n      @deleteWorkItem=\"$emit('deleteWorkItem', { workItemType, workItemId: workItem.id })\"\n      @toggleWorkItemConfidentiality=\"toggleConfidentiality\"\n      @error=\"updateError = $event\"\n      @promotedToObjective=\"$emit('promotedToObjective', iid)\"\n      @workItemTypeChanged=\"workItemTypeChanged\"\n      @toggleEditMode=\"enableEditMode\"\n      @workItemStateUpdated=\"$emit('workItemStateUpdated')\"\n      @toggleReportAbuseModal=\"toggleReportAbuseModal\"\n      @todosUpdated=\"updateWorkItemCurrentTodosWidgetCache\"\n    />\n    <section class=\"work-item-view\">\n      <section v-if=\"updateError\" class=\"flash-container flash-container-page sticky\">\n        <gl-alert class=\"gl-mb-3\" variant=\"danger\" @dismiss=\"updateError = undefined\">\n          {{ updateError }}\n        </gl-alert>\n      </section>\n      <section :class=\"workItemBodyClass\">\n        <div :class=\"modalCloseButtonClass\">\n          <gl-button\n            v-if=\"isModal\"\n            class=\"gl-ml-auto\"\n            category=\"tertiary\"\n            data-testid=\"work-item-close\"\n            icon=\"close\"\n            :aria-label=\"__('Close')\"\n            @click=\"$emit('close')\"\n          />\n        </div>\n        <work-item-loading v-if=\"workItemLoading\" />\n        <gl-empty-state\n          v-else-if=\"error\"\n          :title=\"$options.i18n.fetchErrorTitle\"\n          :description=\"error\"\n          :svg-path=\"$options.noAccessSvg\"\n        />\n        <div v-else data-testid=\"detail-wrapper\">\n          <div class=\"gl-block gl-flex-row gl-items-start gl-gap-3 sm:!gl-flex\">\n            <work-item-ancestors v-if=\"shouldShowAncestors\" :work-item=\"workItem\" class=\"gl-mb-1\" />\n            <div v-if=\"!error\" :class=\"titleClassHeader\" data-testid=\"work-item-type\">\n              <work-item-title\n                v-if=\"workItem.title\"\n                ref=\"title\"\n                :is-editing=\"editMode\"\n                :title=\"workItem.title\"\n                @updateWorkItem=\"updateWorkItem\"\n                @updateDraft=\"updateDraft('title', $event)\"\n                @error=\"updateError = $event\"\n              />\n            </div>\n            <div class=\"gl-ml-auto gl-mt-1 gl-flex gl-gap-3 gl-self-start\">\n              <gl-button\n                v-if=\"shouldShowEditButton\"\n                category=\"secondary\"\n                data-testid=\"work-item-edit-form-button\"\n                class=\"shortcut-edit-wi-description\"\n                @click=\"enableEditMode\"\n              >\n                {{ __('Edit') }}\n              </gl-button>\n              <todos-toggle\n                v-if=\"showWorkItemCurrentUserTodos\"\n                :item-id=\"workItem.id\"\n                :current-user-todos=\"currentUserTodos\"\n                todos-button-type=\"secondary\"\n                @todosUpdated=\"updateWorkItemCurrentTodosWidgetCache\"\n                @error=\"updateError = $event\"\n              />\n              <work-item-notifications-widget\n                v-if=\"newTodoAndNotificationsEnabled\"\n                :full-path=\"workItemFullPath\"\n                :work-item-id=\"workItem.id\"\n                :subscribed-to-notifications=\"workItemNotificationsSubscribed\"\n                :can-update=\"canUpdate\"\n                @error=\"updateError = $event\"\n              />\n              <work-item-actions\n                v-if=\"workItemPresent\"\n                :full-path=\"workItemFullPath\"\n                :work-item-id=\"workItem.id\"\n                :hide-subscribe=\"newTodoAndNotificationsEnabled\"\n                :subscribed-to-notifications=\"workItemNotificationsSubscribed\"\n                :work-item-type=\"workItemType\"\n                :work-item-type-id=\"workItemTypeId\"\n                :work-item-iid=\"iid\"\n                :can-delete=\"canDelete\"\n                :can-update=\"canUpdate\"\n                :is-confidential=\"workItem.confidential\"\n                :is-discussion-locked=\"isDiscussionLocked\"\n                :is-parent-confidential=\"parentWorkItemConfidentiality\"\n                :work-item-reference=\"workItem.reference\"\n                :work-item-create-note-email=\"workItem.createNoteEmail\"\n                :is-modal=\"isModal\"\n                :work-item-state=\"workItem.state\"\n                :has-children=\"hasChildren\"\n                :has-parent=\"shouldShowAncestors\"\n                :parent-id=\"parentWorkItemId\"\n                :work-item-author-id=\"workItemAuthorId\"\n                :can-create-related-item=\"workItemLinkedItems !== undefined\"\n                :is-group=\"isGroupWorkItem\"\n                :widgets=\"widgets\"\n                :allowed-child-types=\"allowedChildTypes\"\n                @deleteWorkItem=\"$emit('deleteWorkItem', { workItemType, workItemId: workItem.id })\"\n                @toggleWorkItemConfidentiality=\"toggleConfidentiality\"\n                @error=\"updateError = $event\"\n                @promotedToObjective=\"$emit('promotedToObjective', iid)\"\n                @workItemStateUpdated=\"$emit('workItemStateUpdated')\"\n                @workItemTypeChanged=\"workItemTypeChanged\"\n                @toggleReportAbuseModal=\"toggleReportAbuseModal\"\n                @workItemCreated=\"handleWorkItemCreated\"\n              />\n            </div>\n            <gl-button\n              v-if=\"isModal\"\n              class=\"gl-hidden sm:!gl-block\"\n              category=\"tertiary\"\n              data-testid=\"work-item-close\"\n              icon=\"close\"\n              :aria-label=\"__('Close')\"\n              @click=\"$emit('close')\"\n            />\n          </div>\n          <div :class=\"{ 'gl-mt-3': !editMode }\">\n            <work-item-title\n              v-if=\"workItem.title && shouldShowAncestors\"\n              ref=\"title\"\n              :is-editing=\"editMode\"\n              :class=\"titleClassComponent\"\n              :title=\"workItem.title\"\n              @error=\"updateError = $event\"\n              @updateWorkItem=\"updateWorkItem\"\n              @updateDraft=\"updateDraft('title', $event)\"\n            />\n            <work-item-created-updated\n              v-if=\"!editMode\"\n              :full-path=\"workItemFullPath\"\n              :work-item-iid=\"iid\"\n              :update-in-progress=\"updateInProgress\"\n            />\n          </div>\n          <div data-testid=\"work-item-overview\" class=\"work-item-overview\">\n            <section>\n              <work-item-description\n                v-if=\"hasDescriptionWidget\"\n                :edit-mode=\"editMode\"\n                :full-path=\"workItemFullPath\"\n                :work-item-id=\"workItem.id\"\n                :work-item-iid=\"workItem.iid\"\n                :update-in-progress=\"updateInProgress\"\n                :without-heading-anchors=\"isDrawer\"\n                @updateWorkItem=\"updateWorkItem\"\n                @updateDraft=\"updateDraft('description', $event)\"\n                @cancelEditing=\"cancelEditing\"\n                @error=\"updateError = $event\"\n              />\n              <div class=\"gl-flex gl-flex-wrap gl-justify-between\">\n                <work-item-award-emoji\n                  v-if=\"workItemAwardEmoji\"\n                  :work-item-id=\"workItem.id\"\n                  :work-item-fullpath=\"workItemFullPath\"\n                  :award-emoji=\"workItemAwardEmoji.awardEmoji\"\n                  :work-item-iid=\"iid\"\n                  @error=\"updateError = $event\"\n                  @emoji-updated=\"$emit('work-item-emoji-updated', $event)\"\n                />\n                <div class=\"gl-flex gl-gap-3\">\n                  <gl-intersection-observer\n                    v-if=\"showUploadDesign\"\n                    @appear=\"isDesignUploadButtonInViewport = true\"\n                    @disappear=\"isDesignUploadButtonInViewport = false\"\n                  >\n                    <design-upload-button\n                      v-if=\"showUploadDesign\"\n                      :is-saving=\"isSaving\"\n                      data-testid=\"design-upload-button\"\n                      @upload=\"onUploadDesign\"\n                      @error=\"onUploadDesignError\"\n                    />\n                  </gl-intersection-observer>\n                  <work-item-create-branch-merge-request-split-button\n                    v-if=\"showCreateBranchMergeRequestSplitButton\"\n                    :work-item-id=\"workItem.id\"\n                    :work-item-iid=\"iid\"\n                    :work-item-full-path=\"workItemFullPath\"\n                    :work-item-type=\"workItem.workItemType.name\"\n                    :is-confidential-work-item=\"workItem.confidential\"\n                    :project-id=\"workItemProjectId\"\n                  />\n                </div>\n              </div>\n            </section>\n            <aside\n              data-testid=\"work-item-overview-right-sidebar\"\n              class=\"work-item-overview-right-sidebar\"\n              :class=\"{ 'is-modal': isModal }\"\n            >\n              <work-item-attributes-wrapper\n                :class=\"{ 'gl-top-11': isDrawer }\"\n                :full-path=\"workItemFullPath\"\n                :work-item=\"workItem\"\n                :group-path=\"groupPath\"\n                :is-group=\"isGroupWorkItem\"\n                @error=\"updateError = $event\"\n                @attributesUpdated=\"$emit('attributesUpdated', $event)\"\n              />\n            </aside>\n\n            <design-widget\n              v-if=\"hasDesignWidget\"\n              :class=\"{ 'gl-mt-0': isDrawer }\"\n              :work-item-id=\"workItem.id\"\n              :work-item-iid=\"iid\"\n              :upload-error=\"designUploadError\"\n              :upload-error-variant=\"designUploadErrorVariant\"\n              :is-saving=\"isSaving\"\n              @upload=\"onUploadDesign\"\n              @dismissError=\"designUploadError = null\"\n            >\n              <template #empty-state>\n                <design-dropzone\n                  v-if=\"isEmptyStateVisible && !isSaving && isDragDataValid && !isAddingNotes\"\n                  ref=\"emptyStateDesignDropzone\"\n                  class=\"gl-relative gl-mt-5\"\n                  show-upload-design-overlay\n                  validate-design-upload-on-dragover\n                  hide-upload-text-on-dragging\n                  :accept-design-formats=\"$options.VALID_DESIGN_FILE_MIMETYPE.mimetype\"\n                  @change=\"onUploadDesign\"\n                >\n                  <template #upload-text>\n                    {{ $options.i18n.addDesignEmptyState }}\n                  </template>\n                </design-dropzone>\n              </template>\n            </design-widget>\n\n            <work-item-tree\n              v-if=\"showWorkItemTree\"\n              :full-path=\"workItemFullPath\"\n              :is-group=\"isGroupWorkItem\"\n              :work-item-type=\"workItemType\"\n              :parent-work-item-type=\"workItem.workItemType.name\"\n              :work-item-id=\"workItem.id\"\n              :work-item-iid=\"iid\"\n              :active-child-item-id=\"activeChildItemId\"\n              :can-update=\"canUpdate\"\n              :can-update-children=\"canUpdateChildren\"\n              :confidential=\"workItem.confidential\"\n              :allowed-child-types=\"allowedChildTypes\"\n              :is-drawer=\"isDrawer\"\n              @show-modal=\"openContextualView\"\n              @addChild=\"$emit('addChild')\"\n              @childrenLoaded=\"hasChildren = $event\"\n            />\n            <work-item-relationships\n              v-if=\"workItemLinkedItems\"\n              :is-group=\"isGroupWorkItem\"\n              :work-item-id=\"workItem.id\"\n              :work-item-iid=\"iid\"\n              :work-item-full-path=\"workItemFullPath\"\n              :work-item-type=\"workItem.workItemType.name\"\n              :can-admin-work-item-link=\"canAdminWorkItemLink\"\n              @showModal=\"openContextualView\"\n            />\n\n            <work-item-development\n              v-if=\"workItemDevelopment\"\n              :is-modal=\"isModal\"\n              :work-item-id=\"workItem.id\"\n              :work-item-iid=\"iid\"\n              :work-item-full-path=\"workItemFullPath\"\n              :work-item-type=\"workItem.workItemType.name\"\n            />\n            <work-item-notes\n              v-if=\"workItemNotes\"\n              :full-path=\"workItemFullPath\"\n              :work-item-id=\"workItem.id\"\n              :work-item-iid=\"workItem.iid\"\n              :work-item-type=\"workItemType\"\n              :is-modal=\"isModal\"\n              :assignees=\"workItemAssignees && workItemAssignees.assignees.nodes\"\n              :can-set-work-item-metadata=\"canAssignUnassignUser\"\n              :report-abuse-path=\"reportAbusePath\"\n              :is-discussion-locked=\"isDiscussionLocked\"\n              :is-work-item-confidential=\"workItem.confidential\"\n              class=\"gl-pt-5\"\n              :use-h2=\"!isModal\"\n              :parent-id=\"parentWorkItemId\"\n              @error=\"updateError = $event\"\n              @openReportAbuse=\"openReportAbuseModal\"\n              @startEditing=\"isAddingNotes = true\"\n              @stopEditing=\"isAddingNotes = false\"\n            />\n          </div>\n        </div>\n      </section>\n    </section>\n    <work-item-drawer\n      v-if=\"workItemsAlphaEnabled && !isDrawer\"\n      :active-item=\"activeChildItem\"\n      :open=\"isItemSelected\"\n      :issuable-type=\"activeChildItemType\"\n      click-outside-exclude-selector=\".issuable-list\"\n      @close=\"activeChildItem = null\"\n      @workItemDeleted=\"deleteChildItem\"\n    />\n    <work-item-abuse-modal\n      v-if=\"isReportModalOpen\"\n      :show-modal=\"isReportModalOpen\"\n      :reported-user-id=\"reportedUserId\"\n      :reported-from-url=\"reportedUrl\"\n      @close-modal=\"toggleReportAbuseModal(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!./work_item_detail.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.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.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./work_item_detail.vue?vue&type=template&id=065b76aa\"\nimport script from \"./work_item_detail.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_detail.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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 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","import { extend } from '../../vue';\nimport { NAME_TBODY } from '../../constants/components';\nimport { PROP_TYPE_OBJECT } from '../../constants/props';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n  tbodyTransitionHandlers: makeProp(PROP_TYPE_OBJECT),\n  tbodyTransitionProps: makeProp(PROP_TYPE_OBJECT)\n}, NAME_TBODY);\n\n// --- Main component ---\n\n// TODO:\n//   In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n//   to the child elements, so this can be converted to a functional component\n// @vue/component\nconst BTbody = /*#__PURE__*/extend({\n  name: NAME_TBODY,\n  mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n  provide() {\n    return {\n      getBvTableRowGroup: () => this\n    };\n  },\n  inject: {\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    getBvTable: {\n      default: /* istanbul ignore next */() => () => ({})\n    }\n  },\n  inheritAttrs: false,\n  props,\n  computed: {\n    bvTable() {\n      return this.getBvTable();\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    isTbody() {\n      return true;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    isDark() {\n      return this.bvTable.dark;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    isStacked() {\n      return this.bvTable.isStacked;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    isResponsive() {\n      return this.bvTable.isResponsive;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    // Sticky headers are only supported in thead\n    isStickyHeader() {\n      return false;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    // Needed to handle header background classes, due to lack of\n    // background color inheritance with Bootstrap v4 table CSS\n    hasStickyHeader() {\n      return !this.isStacked && this.bvTable.stickyHeader;\n    },\n    // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n    tableVariant() {\n      return this.bvTable.tableVariant;\n    },\n    isTransitionGroup() {\n      return this.tbodyTransitionProps || this.tbodyTransitionHandlers;\n    },\n    tbodyAttrs() {\n      return {\n        role: 'rowgroup',\n        ...this.bvAttrs\n      };\n    },\n    tbodyProps() {\n      const {\n        tbodyTransitionProps\n      } = this;\n      return tbodyTransitionProps ? {\n        ...tbodyTransitionProps,\n        tag: 'tbody'\n      } : {};\n    }\n  },\n  render(h) {\n    const data = {\n      props: this.tbodyProps,\n      attrs: this.tbodyAttrs\n    };\n    if (this.isTransitionGroup) {\n      // We use native listeners if a transition group for any delegated events\n      data.on = this.tbodyTransitionHandlers || {};\n      data.nativeOn = this.bvListeners;\n    } else {\n      // Otherwise we place any listeners on the tbody element\n      data.on = this.bvListeners;\n    }\n    return h(this.isTransitionGroup ? 'transition-group' : 'tbody', data, this.normalizeSlot());\n  }\n});\n\nexport { BTbody, props };\n","import { extend, REF_FOR_KEY } from '../../../vue';\nimport { EVENT_NAME_ROW_HOVERED, EVENT_NAME_ROW_UNHOVERED, EVENT_NAME_ROW_CLICKED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_OBJECT_FUNCTION, PROP_TYPE_FUNCTION } from '../../../constants/props';\nimport { SLOT_NAME_ROW_DETAILS } from '../../../constants/slots';\nimport { useParentMixin } from '../../../mixins/use-parent';\nimport { get } from '../../../utils/get';\nimport { isFunction, isString, isUndefinedOrNull } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { safeVueInstance } from '../../../utils/safe-vue-instance';\nimport { toString } from '../../../utils/string';\nimport { BTr } from '../tr';\nimport { BTd } from '../td';\nimport { BTh } from '../th';\nimport { FIELD_KEY_SHOW_DETAILS, FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT } from './constants';\n\n// --- Props ---\n\nconst props = {\n  detailsTdClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n  tbodyTrAttr: makeProp(PROP_TYPE_OBJECT_FUNCTION),\n  tbodyTrClass: makeProp([...PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_FUNCTION])\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst tbodyRowMixin = extend({\n  mixins: [useParentMixin],\n  props,\n  methods: {\n    // Methods for computing classes, attributes and styles for table cells\n    getTdValues(item, key, tdValue, defaultValue) {\n      const {\n        bvParent\n      } = this;\n      if (tdValue) {\n        const value = get(item, key, '');\n        if (isFunction(tdValue)) {\n          return tdValue(value, key, item);\n        } else if (isString(tdValue) && isFunction(bvParent[tdValue])) {\n          return bvParent[tdValue](value, key, item);\n        }\n        return tdValue;\n      }\n      return defaultValue;\n    },\n    getThValues(item, key, thValue, type, defaultValue) {\n      const {\n        bvParent\n      } = this;\n      if (thValue) {\n        const value = get(item, key, '');\n        if (isFunction(thValue)) {\n          return thValue(value, key, item, type);\n        } else if (isString(thValue) && isFunction(bvParent[thValue])) {\n          return bvParent[thValue](value, key, item, type);\n        }\n        return thValue;\n      }\n      return defaultValue;\n    },\n    // Method to get the value for a field\n    getFormattedValue(item, field) {\n      const {\n        key\n      } = field;\n      const formatter = this.getFieldFormatter(key);\n      let value = get(item, key, null);\n      if (isFunction(formatter)) {\n        value = formatter(value, key, item);\n      }\n      return isUndefinedOrNull(value) ? '' : value;\n    },\n    // Factory function methods\n    toggleDetailsFactory(hasDetailsSlot, item) {\n      // Returns a function to toggle a row's details slot\n      return () => {\n        if (hasDetailsSlot) {\n          this.$set(item, FIELD_KEY_SHOW_DETAILS, !item[FIELD_KEY_SHOW_DETAILS]);\n        }\n      };\n    },\n    // Row event handlers\n    rowHovered(event) {\n      // `mouseenter` handler (non-bubbling)\n      // `this.tbodyRowEventStopped` from tbody mixin\n      if (!this.tbodyRowEventStopped(event)) {\n        // `this.emitTbodyRowEvent` from tbody mixin\n        this.emitTbodyRowEvent(EVENT_NAME_ROW_HOVERED, event);\n      }\n    },\n    rowUnhovered(event) {\n      // `mouseleave` handler (non-bubbling)\n      // `this.tbodyRowEventStopped` from tbody mixin\n      if (!this.tbodyRowEventStopped(event)) {\n        // `this.emitTbodyRowEvent` from tbody mixin\n        this.emitTbodyRowEvent(EVENT_NAME_ROW_UNHOVERED, event);\n      }\n    },\n    // Renders a TD or TH for a row's field\n    renderTbodyRowCell(field, colIndex, item, rowIndex) {\n      const {\n        isStacked\n      } = this;\n      const {\n        key,\n        label,\n        isRowHeader\n      } = field;\n      const h = this.$createElement;\n      const hasDetailsSlot = this.hasNormalizedSlot(SLOT_NAME_ROW_DETAILS);\n      const formatted = this.getFormattedValue(item, field);\n      const stickyColumn = !isStacked && (this.isResponsive || this.stickyHeader) && field.stickyColumn;\n      // We only uses the helper components for sticky columns to\n      // improve performance of BTable/BTableLite by reducing the\n      // total number of vue instances created during render\n      const cellTag = stickyColumn ? isRowHeader ? BTh : BTd : isRowHeader ? 'th' : 'td';\n      const cellVariant = item[FIELD_KEY_CELL_VARIANT] && item[FIELD_KEY_CELL_VARIANT][key] ? item[FIELD_KEY_CELL_VARIANT][key] : field.variant || null;\n      const data = {\n        // For the Vue key, we concatenate the column index and\n        // field key (as field keys could be duplicated)\n        // TODO: Although we do prevent duplicate field keys...\n        //   So we could change this to: `row-${rowIndex}-cell-${key}`\n        class: [field.class ? field.class : '', this.getTdValues(item, key, field.tdClass, '')],\n        props: {},\n        attrs: {\n          'aria-colindex': String(colIndex + 1),\n          ...(isRowHeader ? this.getThValues(item, key, field.thAttr, 'row', {}) : this.getTdValues(item, key, field.tdAttr, {}))\n        },\n        key: `row-${rowIndex}-cell-${colIndex}-${key}`\n      };\n      if (stickyColumn) {\n        // We are using the helper BTd or BTh\n        data.props = {\n          stackedHeading: isStacked ? label : null,\n          stickyColumn: true,\n          variant: cellVariant\n        };\n      } else {\n        // Using native TD or TH element, so we need to\n        // add in the attributes and variant class\n        data.attrs['data-label'] = isStacked && !isUndefinedOrNull(label) ? toString(label) : null;\n        data.attrs.role = isRowHeader ? 'rowheader' : 'cell';\n        data.attrs.scope = isRowHeader ? 'row' : null;\n        // Add in the variant class\n        if (cellVariant) {\n          data.class.push(`${this.dark ? 'bg' : 'table'}-${cellVariant}`);\n        }\n      }\n      const slotScope = {\n        item,\n        index: rowIndex,\n        field,\n        unformatted: get(item, key, ''),\n        value: formatted,\n        toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item),\n        detailsShowing: Boolean(item[FIELD_KEY_SHOW_DETAILS])\n      };\n      // If table supports selectable mode, then add in the following scope\n      // this.supportsSelectableRows will be undefined if mixin isn't loaded\n      if (safeVueInstance(this).supportsSelectableRows) {\n        slotScope.rowSelected = this.isRowSelected(rowIndex);\n        slotScope.selectRow = () => this.selectRow(rowIndex);\n        slotScope.unselectRow = () => this.unselectRow(rowIndex);\n      }\n\n      // The new `v-slot` syntax doesn't like a slot name starting with\n      // a square bracket and if using in-document HTML templates, the\n      // v-slot attributes are lower-cased by the browser.\n      // Switched to round bracket syntax to prevent confusion with\n      // dynamic slot name syntax.\n      // We look for slots in this order: `cell(${key})`, `cell(${key.toLowerCase()})`, 'cell()'\n      // Slot names are now cached by mixin tbody in `this.$_bodyFieldSlotNameCache`\n      // Will be `null` if no slot (or fallback slot) exists\n      const slotName = this.$_bodyFieldSlotNameCache[key];\n      let $childNodes = slotName ? this.normalizeSlot(slotName, slotScope) : toString(formatted);\n      if (this.isStacked) {\n        // We wrap in a DIV to ensure rendered as a single cell when visually stacked!\n        $childNodes = [h('div', [$childNodes])];\n      }\n\n      // Render either a td or th cell\n      return h(cellTag, data, [$childNodes]);\n    },\n    // Renders an item's row (or rows if details supported)\n    renderTbodyRow(item, rowIndex) {\n      const {\n        computedFields: fields,\n        striped,\n        primaryKey,\n        currentPage,\n        perPage,\n        tbodyTrClass,\n        tbodyTrAttr,\n        hasSelectableRowClick\n      } = safeVueInstance(this);\n      const h = this.$createElement;\n      const hasDetailsSlot = this.hasNormalizedSlot(SLOT_NAME_ROW_DETAILS);\n      const rowShowDetails = item[FIELD_KEY_SHOW_DETAILS] && hasDetailsSlot;\n      const hasRowClickHandler = this.$listeners[EVENT_NAME_ROW_CLICKED] || hasSelectableRowClick;\n\n      // We can return more than one TR if rowDetails enabled\n      const $rows = [];\n\n      // Details ID needed for `aria-details` when details showing\n      // We set it to `null` when not showing so that attribute\n      // does not appear on the element\n      const detailsId = rowShowDetails ? this.safeId(`_details_${rowIndex}_`) : null;\n\n      // For each item data field in row\n      const $tds = fields.map((field, colIndex) => {\n        return this.renderTbodyRowCell(field, colIndex, item, rowIndex);\n      });\n\n      // Calculate the row number in the dataset (indexed from 1)\n      let ariaRowIndex = null;\n      if (currentPage && perPage && perPage > 0) {\n        ariaRowIndex = String((currentPage - 1) * perPage + rowIndex + 1);\n      }\n\n      // Create a unique :key to help ensure that sub components are re-rendered rather than\n      // re-used, which can cause issues. If a primary key is not provided we use the rendered\n      // rows index within the tbody.\n      // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2410\n      const primaryKeyValue = toString(get(item, primaryKey)) || null;\n      const rowKey = primaryKeyValue || toString(rowIndex);\n\n      // If primary key is provided, use it to generate a unique ID on each tbody > tr\n      // In the format of '{tableId}__row_{primaryKeyValue}'\n      const rowId = primaryKeyValue ? this.safeId(`_row_${primaryKeyValue}`) : null;\n\n      // Selectable classes and attributes\n      const selectableClasses = safeVueInstance(this).selectableRowClasses ? this.selectableRowClasses(rowIndex) : {};\n      const selectableAttrs = safeVueInstance(this).selectableRowAttrs ? this.selectableRowAttrs(rowIndex) : {};\n\n      // Additional classes and attributes\n      const userTrClasses = isFunction(tbodyTrClass) ? tbodyTrClass(item, 'row') : tbodyTrClass;\n      const userTrAttrs = isFunction(tbodyTrAttr) ? /* istanbul ignore next */tbodyTrAttr(item, 'row') : tbodyTrAttr;\n\n      // Add the item row\n      $rows.push(h(BTr, {\n        class: [userTrClasses, selectableClasses, rowShowDetails ? 'b-table-has-details' : ''],\n        props: {\n          variant: item[FIELD_KEY_ROW_VARIANT] || null\n        },\n        attrs: {\n          id: rowId,\n          ...userTrAttrs,\n          // Users cannot override the following attributes\n          tabindex: hasRowClickHandler ? '0' : null,\n          'data-pk': primaryKeyValue || null,\n          'aria-details': detailsId,\n          'aria-owns': detailsId,\n          'aria-rowindex': ariaRowIndex,\n          ...selectableAttrs\n        },\n        on: {\n          // Note: These events are not A11Y friendly!\n          mouseenter: this.rowHovered,\n          mouseleave: this.rowUnhovered\n        },\n        key: `__b-table-row-${rowKey}__`,\n        ref: 'item-rows',\n        [REF_FOR_KEY]: true\n      }, $tds));\n\n      // Row Details slot\n      if (rowShowDetails) {\n        const detailsScope = {\n          item,\n          index: rowIndex,\n          fields,\n          toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item)\n        };\n        // If table supports selectable mode, then add in the following scope\n        // this.supportsSelectableRows will be undefined if mixin isn't loaded\n        if (safeVueInstance(this).supportsSelectableRows) {\n          detailsScope.rowSelected = this.isRowSelected(rowIndex);\n          detailsScope.selectRow = () => this.selectRow(rowIndex);\n          detailsScope.unselectRow = () => this.unselectRow(rowIndex);\n        }\n\n        // Render the details slot in a TD\n        const $details = h(BTd, {\n          props: {\n            colspan: fields.length\n          },\n          class: this.detailsTdClass\n        }, [this.normalizeSlot(SLOT_NAME_ROW_DETAILS, detailsScope)]);\n\n        // Add a hidden row to keep table row striping consistent when details showing\n        // Only added if the table is striped\n        if (striped) {\n          $rows.push(\n          // We don't use `BTr` here as we don't need the extra functionality\n          h('tr', {\n            staticClass: 'd-none',\n            attrs: {\n              'aria-hidden': 'true',\n              role: 'presentation'\n            },\n            key: `__b-table-details-stripe__${rowKey}`\n          }));\n        }\n\n        // Add the actual details row\n        const userDetailsTrClasses = isFunction(this.tbodyTrClass) ? /* istanbul ignore next */this.tbodyTrClass(item, SLOT_NAME_ROW_DETAILS) : this.tbodyTrClass;\n        const userDetailsTrAttrs = isFunction(this.tbodyTrAttr) ? /* istanbul ignore next */this.tbodyTrAttr(item, SLOT_NAME_ROW_DETAILS) : this.tbodyTrAttr;\n        $rows.push(h(BTr, {\n          staticClass: 'b-table-details',\n          class: [userDetailsTrClasses],\n          props: {\n            variant: item[FIELD_KEY_ROW_VARIANT] || null\n          },\n          attrs: {\n            ...userDetailsTrAttrs,\n            // Users cannot override the following attributes\n            id: detailsId,\n            tabindex: '-1'\n          },\n          key: `__b-table-details__${rowKey}`\n        }, [$details]));\n      } else if (hasDetailsSlot) {\n        // Only add the placeholder if a the table has a row-details slot defined (but not shown)\n        $rows.push(h());\n        if (striped) {\n          // Add extra placeholder if table is striped\n          $rows.push(h());\n        }\n      }\n\n      // Return the row(s)\n      return $rows;\n    }\n  }\n});\n\nexport { props, tbodyRowMixin };\n","import { extend } from '../../../vue';\nimport { EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_MIDDLE_CLICKED, EVENT_NAME_ROW_CONTEXTMENU, EVENT_NAME_ROW_DBLCLICKED } from '../../../constants/events';\nimport { CODE_ENTER, CODE_SPACE, CODE_UP, CODE_DOWN, CODE_HOME, CODE_END } from '../../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING } from '../../../constants/props';\nimport { from, arrayIncludes } from '../../../utils/array';\nimport { isElement, closest, isActiveElement, attemptFocus } from '../../../utils/dom';\nimport { safeVueInstance } from '../../../utils/safe-vue-instance';\nimport { stopEvent } from '../../../utils/events';\nimport { sortKeys } from '../../../utils/object';\nimport { makeProp, pluckProps } from '../../../utils/props';\nimport { props as props$1, BTbody } from '../tbody';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active';\nimport { props as props$2, tbodyRowMixin } from './mixin-tbody-row';\n\n// --- Helper methods ---\n\nconst getCellSlotName = value => `cell(${value || ''})`;\n\n// --- Props ---\n\nconst props = sortKeys({\n  ...props$1,\n  ...props$2,\n  tbodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n});\n\n// --- Mixin ---\n\n// @vue/component\nconst tbodyMixin = extend({\n  mixins: [tbodyRowMixin],\n  props,\n  beforeDestroy() {\n    this.$_bodyFieldSlotNameCache = null;\n  },\n  methods: {\n    // Returns all the item TR elements (excludes detail and spacer rows)\n    // `this.$refs['item-rows']` is an array of item TR components/elements\n    // Rows should all be `<b-tr>` components, but we map to TR elements\n    // Also note that `this.$refs['item-rows']` may not always be in document order\n    getTbodyTrs() {\n      const {\n        $refs\n      } = this;\n      const tbody = $refs.tbody ? $refs.tbody.$el || $refs.tbody : null;\n      const trs = ($refs['item-rows'] || []).map(tr => tr.$el || tr);\n      return tbody && tbody.children && tbody.children.length > 0 && trs && trs.length > 0 ? from(tbody.children).filter(tr => arrayIncludes(trs, tr)) : /* istanbul ignore next */[];\n    },\n    // Returns index of a particular TBODY item TR\n    // We set `true` on closest to include self in result\n    getTbodyTrIndex(el) {\n      /* istanbul ignore next: should not normally happen */\n      if (!isElement(el)) {\n        return -1;\n      }\n      const tr = el.tagName === 'TR' ? el : closest('tr', el, true);\n      return tr ? this.getTbodyTrs().indexOf(tr) : -1;\n    },\n    // Emits a row event, with the item object, row index and original event\n    emitTbodyRowEvent(type, event) {\n      if (type && this.hasListener(type) && event && event.target) {\n        const rowIndex = this.getTbodyTrIndex(event.target);\n        if (rowIndex > -1) {\n          // The array of TRs correlate to the `computedItems` array\n          const item = this.computedItems[rowIndex];\n          this.$emit(type, item, rowIndex, event);\n        }\n      }\n    },\n    tbodyRowEventStopped(event) {\n      return this.stopIfBusy && this.stopIfBusy(event);\n    },\n    // Delegated row event handlers\n    onTbodyRowKeydown(event) {\n      // Keyboard navigation and row click emulation\n      const {\n        target,\n        keyCode\n      } = event;\n      if (this.tbodyRowEventStopped(event) || target.tagName !== 'TR' || !isActiveElement(target) || target.tabIndex !== 0) {\n        // Early exit if not an item row TR\n        return;\n      }\n      if (arrayIncludes([CODE_ENTER, CODE_SPACE], keyCode)) {\n        // Emulated click for keyboard users, transfer to click handler\n        stopEvent(event);\n        this.onTBodyRowClicked(event);\n      } else if (arrayIncludes([CODE_UP, CODE_DOWN, CODE_HOME, CODE_END], keyCode)) {\n        // Keyboard navigation\n        const rowIndex = this.getTbodyTrIndex(target);\n        if (rowIndex > -1) {\n          stopEvent(event);\n          const trs = this.getTbodyTrs();\n          const shift = event.shiftKey;\n          if (keyCode === CODE_HOME || shift && keyCode === CODE_UP) {\n            // Focus first row\n            attemptFocus(trs[0]);\n          } else if (keyCode === CODE_END || shift && keyCode === CODE_DOWN) {\n            // Focus last row\n            attemptFocus(trs[trs.length - 1]);\n          } else if (keyCode === CODE_UP && rowIndex > 0) {\n            // Focus previous row\n            attemptFocus(trs[rowIndex - 1]);\n          } else if (keyCode === CODE_DOWN && rowIndex < trs.length - 1) {\n            // Focus next row\n            attemptFocus(trs[rowIndex + 1]);\n          }\n        }\n      }\n    },\n    onTBodyRowClicked(event) {\n      const {\n        $refs\n      } = this;\n      const tbody = $refs.tbody ? $refs.tbody.$el || $refs.tbody : null;\n      // Don't emit event when the table is busy, the user clicked\n      // on a non-disabled control or is selecting text\n      if (this.tbodyRowEventStopped(event) || filterEvent(event) || textSelectionActive(tbody || this.$el)) {\n        return;\n      }\n      this.emitTbodyRowEvent(EVENT_NAME_ROW_CLICKED, event);\n    },\n    onTbodyRowMiddleMouseRowClicked(event) {\n      if (!this.tbodyRowEventStopped(event) && event.which === 2) {\n        this.emitTbodyRowEvent(EVENT_NAME_ROW_MIDDLE_CLICKED, event);\n      }\n    },\n    onTbodyRowContextmenu(event) {\n      if (!this.tbodyRowEventStopped(event)) {\n        this.emitTbodyRowEvent(EVENT_NAME_ROW_CONTEXTMENU, event);\n      }\n    },\n    onTbodyRowDblClicked(event) {\n      if (!this.tbodyRowEventStopped(event) && !filterEvent(event)) {\n        this.emitTbodyRowEvent(EVENT_NAME_ROW_DBLCLICKED, event);\n      }\n    },\n    // Render the tbody element and children\n    // Note:\n    //   Row hover handlers are handled by the tbody-row mixin\n    //   As mouseenter/mouseleave events do not bubble\n    renderTbody() {\n      const {\n        computedItems: items,\n        renderBusy,\n        renderTopRow,\n        renderEmpty,\n        renderBottomRow,\n        hasSelectableRowClick\n      } = safeVueInstance(this);\n      const h = this.$createElement;\n      const hasRowClickHandler = this.hasListener(EVENT_NAME_ROW_CLICKED) || hasSelectableRowClick;\n\n      // Prepare the tbody rows\n      const $rows = [];\n\n      // Add the item data rows or the busy slot\n      const $busy = renderBusy ? renderBusy() : null;\n      if ($busy) {\n        // If table is busy and a busy slot, then return only the busy \"row\" indicator\n        $rows.push($busy);\n      } else {\n        // Table isn't busy, or we don't have a busy slot\n\n        // Create a slot cache for improved performance when looking up cell slot names\n        // Values will be keyed by the field's `key` and will store the slot's name\n        // Slots could be dynamic (i.e. `v-if`), so we must compute on each render\n        // Used by tbody-row mixin render helper\n        const cache = {};\n        let defaultSlotName = getCellSlotName();\n        defaultSlotName = this.hasNormalizedSlot(defaultSlotName) ? defaultSlotName : null;\n        this.computedFields.forEach(field => {\n          const {\n            key\n          } = field;\n          const slotName = getCellSlotName(key);\n          const lowercaseSlotName = getCellSlotName(key.toLowerCase());\n          cache[key] = this.hasNormalizedSlot(slotName) ? slotName : this.hasNormalizedSlot(lowercaseSlotName) ? /* istanbul ignore next */lowercaseSlotName : defaultSlotName;\n        });\n        // Created as a non-reactive property so to not trigger component updates\n        // Must be a fresh object each render\n        this.$_bodyFieldSlotNameCache = cache;\n\n        // Add static top row slot (hidden in visibly stacked mode\n        // as we can't control `data-label` attr)\n        $rows.push(renderTopRow ? renderTopRow() : h());\n\n        // Render the rows\n        items.forEach((item, rowIndex) => {\n          // Render the individual item row (rows if details slot)\n          $rows.push(this.renderTbodyRow(item, rowIndex));\n        });\n\n        // Empty items / empty filtered row slot (only shows if `items.length < 1`)\n        $rows.push(renderEmpty ? renderEmpty() : h());\n\n        // Static bottom row slot (hidden in visibly stacked mode\n        // as we can't control `data-label` attr)\n        $rows.push(renderBottomRow ? renderBottomRow() : h());\n      }\n\n      // Note: these events will only emit if a listener is registered\n      const handlers = {\n        auxclick: this.onTbodyRowMiddleMouseRowClicked,\n        // TODO:\n        //   Perhaps we do want to automatically prevent the\n        //   default context menu from showing if there is a\n        //   `row-contextmenu` listener registered\n        contextmenu: this.onTbodyRowContextmenu,\n        // The following event(s) is not considered A11Y friendly\n        dblclick: this.onTbodyRowDblClicked\n        // Hover events (`mouseenter`/`mouseleave`) are handled by `tbody-row` mixin\n      };\n      // Add in click/keydown listeners if needed\n      if (hasRowClickHandler) {\n        handlers.click = this.onTBodyRowClicked;\n        handlers.keydown = this.onTbodyRowKeydown;\n      }\n\n      // Assemble rows into the tbody\n      const $tbody = h(BTbody, {\n        class: this.tbodyClass || null,\n        props: pluckProps(props$1, this.$props),\n        // BTbody transfers all native event listeners to the root element\n        // TODO: Only set the handlers if the table is not busy\n        on: handlers,\n        ref: 'tbody'\n      }, $rows);\n\n      // Return the assembled tbody\n      return $tbody;\n    }\n  }\n});\n\nexport { props, tbodyMixin };\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","<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\":\"searchUserProjectsWithIssuesEnabled\"},\"variableDefinitions\":[{\"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\":\"projects\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"membership\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"withIssuesEnabled\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"sort\"},\"value\":{\"kind\":\"StringValue\",\"value\":\"latest_activity_desc\",\"block\":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\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nameWithNamespace\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":262}};\n    doc.loc.source = {\"body\":\"query searchUserProjectsWithIssuesEnabled($search: String) {\\n  projects(\\n    search: $search\\n    membership: true\\n    withIssuesEnabled: true\\n    sort: \\\"latest_activity_desc\\\"\\n  ) {\\n    nodes {\\n      id\\n      name\\n      nameWithNamespace\\n      webUrl\\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[\"searchUserProjectsWithIssuesEnabled\"] = oneQuery(doc, \"searchUserProjectsWithIssuesEnabled\");\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","module.exports = require('./head');\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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"removeLinkedItems\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemRemoveLinkedItemsInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemRemoveLinkedItems\"},\"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\":\"message\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":144}};\n    doc.loc.source = {\"body\":\"mutation removeLinkedItems($input: WorkItemRemoveLinkedItemsInput!) {\\n  workItemRemoveLinkedItems(input: $input) {\\n    errors\\n    message\\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[\"removeLinkedItems\"] = oneQuery(doc, \"removeLinkedItems\");\n        \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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"gl-flex gl-items-center gl-gap-3\"},[_c('h3',{staticClass:\"gl-heading-5 !gl-mb-0\",class:{ 'gl-sr-only': _vm.isEditing }},[_vm._v(\"\\n      \"+_vm._s(_vm.dropdownLabel)+\"\\n    \")]),_vm._v(\" \"),(_vm.updateInProgress)?_c('gl-loading-icon'):_vm._e(),_vm._v(\" \"),(_vm.canUpdate && !_vm.isEditing)?_c('gl-button',{staticClass:\"shortcut-sidebar-dropdown-toggle gl-ml-auto\",attrs:{\"data-testid\":\"edit-button\",\"category\":\"tertiary\",\"size\":\"small\",\"disabled\":_vm.updateInProgress},on:{\"click\":function($event){_vm.isEditing = true}}},[_vm._v(_vm._s(_vm.$options.i18n.editButtonLabel))]):_vm._e()],1),_vm._v(\" \"),(_vm.isEditing)?_c('gl-form',[_c('div',{staticClass:\"gl-flex gl-items-center gl-justify-between\"},[_c('label',{staticClass:\"gl-heading-5 !gl-mb-0\",attrs:{\"for\":_vm.inputId}},[_vm._v(_vm._s(_vm.dropdownLabel))]),_vm._v(\" \"),_c('gl-button',{attrs:{\"data-testid\":\"apply-button\",\"category\":\"tertiary\",\"size\":\"small\",\"disabled\":_vm.updateInProgress},on:{\"click\":function($event){_vm.isEditing = false}}},[_vm._v(_vm._s(_vm.$options.i18n.applyButtonLabel))])],1),_vm._v(\" \"),_vm._t(\"body\",function(){return [_c('gl-collapsible-listbox',{ref:\"listbox\",staticClass:\"work-item-sidebar-dropdown\",attrs:{\"id\":_vm.inputId,\"multiple\":_vm.multiSelect,\"searchable\":_vm.searchable,\"start-opened\":\"\",\"block\":\"\",\"is-check-centered\":\"\",\"infinite-scroll\":_vm.infiniteScroll,\"searching\":_vm.loading,\"header-text\":_vm.headerText,\"toggle-text\":_vm.toggleText,\"no-results-text\":_vm.$options.i18n.noMatchingResults,\"items\":_vm.listItems,\"selected\":_vm.localSelectedItem,\"reset-button-label\":_vm.resetButton,\"infinite-scroll-loading\":_vm.infiniteScrollLoading},on:{\"reset\":_vm.unassignValue,\"search\":_vm.debouncedSearchKeyUpdate,\"select\":_vm.handleItemClick,\"shown\":_vm.onListboxShown,\"hidden\":_vm.onListboxHide,\"bottom-reached\":function($event){return _vm.$emit('bottomReached')}},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_vm._t(\"list-item\",function(){return [_vm._v(_vm._s(item.text))]},{\"item\":item})]}},(_vm.showFooter)?{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"gl-border-t-1 gl-border-t-dropdown !gl-p-2 gl-border-t-solid\"},[_vm._t(\"footer\")],2)]},proxy:true}:null],null,true)})]})],2):(_vm.hasValue)?_vm._t(\"readonly\"):_vm._t(\"none\",function(){return [_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.$options.i18n.none))])]})],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_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!./work_item_sidebar_dropdown_widget.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlForm, GlLoadingIcon, GlCollapsibleListbox } from '@gitlab/ui';\nimport { isEmpty, debounce } from 'lodash';\nimport { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';\n\nimport { s__, __, sprintf } from '~/locale';\n\nexport default {\n  i18n: {\n    none: s__('WorkItem|None'),\n    noMatchingResults: s__('WorkItem|No matching results'),\n    editButtonLabel: __('Edit'),\n    applyButtonLabel: __('Apply'),\n    resetButtonText: __('Clear'),\n  },\n  components: {\n    GlButton,\n    GlLoadingIcon,\n    GlForm,\n    GlCollapsibleListbox,\n  },\n  props: {\n    canUpdate: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    dropdownLabel: {\n      type: String,\n      required: true,\n    },\n    dropdownName: {\n      type: String,\n      required: true,\n    },\n    listItems: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n    itemValue: {\n      type: [Array, String],\n      required: false,\n      default: null,\n    },\n    loading: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    updateInProgress: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    resetButtonLabel: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    headerText: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    toggleDropdownText: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    multiSelect: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    showFooter: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    infiniteScroll: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    infiniteScrollLoading: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    clearSearchOnItemSelect: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    searchable: {\n      type: Boolean,\n      required: false,\n      default: true,\n    },\n    createdLabelId: {\n      type: String,\n      required: false,\n      default: undefined,\n    },\n  },\n  data() {\n    return {\n      isEditing: false,\n      localSelectedItem: this.itemValue,\n      isDirty: false,\n    };\n  },\n  computed: {\n    hasValue() {\n      return this.multiSelect ? !isEmpty(this.itemValue) : this.itemValue !== null;\n    },\n    inputId() {\n      return `work-item-dropdown-listbox-value-${this.dropdownName}`;\n    },\n    resetButton() {\n      return this.resetButtonLabel || this.$options.i18n.resetButtonText;\n    },\n    toggleText() {\n      return !this.toggleDropdownText && !this.hasValue\n        ? sprintf(__(`No %{label}`), { label: this.dropdownLabel.toLowerCase() })\n        : this.toggleDropdownText;\n    },\n  },\n  watch: {\n    itemValue: {\n      handler(newVal) {\n        if (!this.isEditing) {\n          this.localSelectedItem = newVal;\n          this.isDirty = false;\n        }\n      },\n    },\n    createdLabelId(id) {\n      this.localSelectedItem.push(id);\n      this.isDirty = true;\n    },\n  },\n  created() {\n    this.debouncedSearchKeyUpdate = debounce(this.setSearchKey, DEFAULT_DEBOUNCE_AND_THROTTLE_MS);\n  },\n  methods: {\n    setSearchKey(value) {\n      this.$emit('searchStarted', value);\n    },\n    handleItemClick(item) {\n      this.localSelectedItem = item;\n      if (!this.multiSelect) {\n        this.$emit('updateValue', item);\n      } else {\n        this.isDirty = true;\n        this.$emit('updateSelected', this.localSelectedItem);\n        this.clearSearch();\n      }\n    },\n    clearSearch() {\n      if (this.clearSearchOnItemSelect) {\n        this.setSearchKey('');\n        this.$refs.listbox.$refs.searchBox.clearInput();\n      }\n    },\n    onListboxShown() {\n      this.$emit('dropdownShown');\n    },\n    onListboxHide() {\n      this.isEditing = false;\n      this.$emit('dropdownHidden');\n      if (this.multiSelect && this.isDirty) {\n        this.$emit('updateValue', this.localSelectedItem);\n      }\n    },\n    unassignValue() {\n      this.localSelectedItem = this.multiSelect ? [] : null;\n      this.isEditing = false;\n      this.$emit('updateValue', this.localSelectedItem);\n    },\n  },\n};\n</script>\n\n<template>\n  <div>\n    <div class=\"gl-flex gl-items-center gl-gap-3\">\n      <!-- hide header when editing, since we then have a form label. Keep it reachable for screenreader nav  -->\n      <h3 :class=\"{ 'gl-sr-only': isEditing }\" class=\"gl-heading-5 !gl-mb-0\">\n        {{ dropdownLabel }}\n      </h3>\n      <gl-loading-icon v-if=\"updateInProgress\" />\n      <gl-button\n        v-if=\"canUpdate && !isEditing\"\n        data-testid=\"edit-button\"\n        category=\"tertiary\"\n        size=\"small\"\n        class=\"shortcut-sidebar-dropdown-toggle gl-ml-auto\"\n        :disabled=\"updateInProgress\"\n        @click=\"isEditing = true\"\n        >{{ $options.i18n.editButtonLabel }}</gl-button\n      >\n    </div>\n    <gl-form v-if=\"isEditing\">\n      <div class=\"gl-flex gl-items-center gl-justify-between\">\n        <label :for=\"inputId\" class=\"gl-heading-5 !gl-mb-0\">{{ dropdownLabel }}</label>\n        <gl-button\n          data-testid=\"apply-button\"\n          category=\"tertiary\"\n          size=\"small\"\n          :disabled=\"updateInProgress\"\n          @click=\"isEditing = false\"\n          >{{ $options.i18n.applyButtonLabel }}</gl-button\n        >\n      </div>\n      <slot name=\"body\">\n        <gl-collapsible-listbox\n          :id=\"inputId\"\n          ref=\"listbox\"\n          class=\"work-item-sidebar-dropdown\"\n          :multiple=\"multiSelect\"\n          :searchable=\"searchable\"\n          start-opened\n          block\n          is-check-centered\n          :infinite-scroll=\"infiniteScroll\"\n          :searching=\"loading\"\n          :header-text=\"headerText\"\n          :toggle-text=\"toggleText\"\n          :no-results-text=\"$options.i18n.noMatchingResults\"\n          :items=\"listItems\"\n          :selected=\"localSelectedItem\"\n          :reset-button-label=\"resetButton\"\n          :infinite-scroll-loading=\"infiniteScrollLoading\"\n          @reset=\"unassignValue\"\n          @search=\"debouncedSearchKeyUpdate\"\n          @select=\"handleItemClick\"\n          @shown=\"onListboxShown\"\n          @hidden=\"onListboxHide\"\n          @bottom-reached=\"$emit('bottomReached')\"\n        >\n          <template #list-item=\"{ item }\">\n            <slot name=\"list-item\" :item=\"item\">{{ item.text }}</slot>\n          </template>\n          <template v-if=\"showFooter\" #footer>\n            <div class=\"gl-border-t-1 gl-border-t-dropdown !gl-p-2 gl-border-t-solid\">\n              <slot name=\"footer\"></slot>\n            </div>\n          </template>\n        </gl-collapsible-listbox>\n      </slot>\n    </gl-form>\n    <slot v-else-if=\"hasValue\" name=\"readonly\"></slot>\n    <slot v-else name=\"none\">\n      <span class=\"gl-text-subtle\">{{ $options.i18n.none }}</span>\n    </slot>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_sidebar_dropdown_widget.vue?vue&type=template&id=f947b49a\"\nimport script from \"./work_item_sidebar_dropdown_widget.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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 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","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","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.hasSearch)?_c('gl-empty-state',{attrs:{\"description\":_vm.__('To widen your search, change or remove filters above'),\"title\":_vm.__('Sorry, your filter produced no results'),\"svg-path\":_vm.svgPath,\"data-testid\":\"issuable-empty-state\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"new-issue-button\",function(){return [(_vm.showNewIssueLink)?_c('gl-button',{attrs:{\"href\":_vm.newIssuePath,\"variant\":\"confirm\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.__('New issue'))+\"\\n      \")]):_vm._e()]})]},proxy:true}],null,true)}):(_vm.isOpenTab)?_c('gl-empty-state',{attrs:{\"title\":_vm.openTabTitle,\"svg-path\":_vm.svgPath,\"data-testid\":\"issuable-empty-state\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"new-issue-button\",function(){return [(_vm.showNewIssueLink)?_c('gl-button',{attrs:{\"href\":_vm.newIssuePath,\"variant\":\"confirm\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.__('New issue'))+\"\\n      \")]):_vm._e()]})]},proxy:true}],null,true)}):_c('gl-empty-state',{attrs:{\"title\":_vm.closedTabTitle,\"svg-path\":_vm.svgPath,\"data-testid\":\"issuable-empty-state\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default __webpack_public_path__ + \"empty-issues-md.3e7bf411.svg\";","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./empty_state_with_any_issues.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./empty_state_with_any_issues.vue?vue&type=script&lang=js\"","<script>\nimport epicEmptyStateSvg from '@gitlab/svgs/dist/illustrations/empty-state/empty-epic-md.svg';\nimport issuesEmptyStateSvg from '@gitlab/svgs/dist/illustrations/empty-state/empty-issues-md.svg';\nimport { GlButton, GlEmptyState } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n  components: {\n    GlButton,\n    GlEmptyState,\n  },\n  inject: {\n    newIssuePath: {\n      default: false,\n    },\n    showNewIssueLink: {\n      default: false,\n    },\n  },\n  props: {\n    hasSearch: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isEpic: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isOpenTab: {\n      type: Boolean,\n      required: false,\n      default: true,\n    },\n  },\n  computed: {\n    closedTabTitle() {\n      return this.isEpic ? __('There are no closed epics') : __('There are no closed issues');\n    },\n    openTabTitle() {\n      return this.isEpic ? __('There are no open epics') : __('There are no open issues');\n    },\n    svgPath() {\n      return this.isEpic ? epicEmptyStateSvg : issuesEmptyStateSvg;\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-empty-state\n    v-if=\"hasSearch\"\n    :description=\"__('To widen your search, change or remove filters above')\"\n    :title=\"__('Sorry, your filter produced no results')\"\n    :svg-path=\"svgPath\"\n    data-testid=\"issuable-empty-state\"\n  >\n    <template #actions>\n      <slot name=\"new-issue-button\">\n        <gl-button v-if=\"showNewIssueLink\" :href=\"newIssuePath\" variant=\"confirm\">\n          {{ __('New issue') }}\n        </gl-button>\n      </slot>\n    </template>\n  </gl-empty-state>\n\n  <gl-empty-state\n    v-else-if=\"isOpenTab\"\n    :title=\"openTabTitle\"\n    :svg-path=\"svgPath\"\n    data-testid=\"issuable-empty-state\"\n  >\n    <template #actions>\n      <slot name=\"new-issue-button\">\n        <gl-button v-if=\"showNewIssueLink\" :href=\"newIssuePath\" variant=\"confirm\">\n          {{ __('New issue') }}\n        </gl-button>\n      </slot>\n    </template>\n  </gl-empty-state>\n\n  <gl-empty-state\n    v-else\n    :title=\"closedTabTitle\"\n    :svg-path=\"svgPath\"\n    data-testid=\"issuable-empty-state\"\n  />\n</template>\n","import { render, staticRenderFns } from \"./empty_state_with_any_issues.vue?vue&type=template&id=43e77e56\"\nimport script from \"./empty_state_with_any_issues.vue?vue&type=script&lang=js\"\nexport * from \"./empty_state_with_any_issues.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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    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","\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\":\"color\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"textColor\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":61}};\n    doc.loc.source = {\"body\":\"fragment Label on Label {\\n  id\\n  color\\n  textColor\\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[\"Label\"] = oneQuery(doc, \"Label\");\n        \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","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","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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"searchProjects\"},\"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\":\"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\":\"projects\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"withIssuesEnabled\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubgroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"sort\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"SIMILARITY\"}}],\"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\":\"nameWithNamespace\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":292}};\n    doc.loc.source = {\"body\":\"query searchProjects($fullPath: ID!, $search: String) {\\n  group(fullPath: $fullPath) {\\n    id\\n    projects(search: $search, withIssuesEnabled: true, includeSubgroups: true, sort: SIMILARITY) {\\n      nodes {\\n        id\\n        name\\n        nameWithNamespace\\n        webUrl\\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[\"searchProjects\"] = oneQuery(doc, \"searchProjects\");\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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemNoteRemoveAwardEmoji\"},\"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\":\"awardEmojiRemove\"},\"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\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":173}};\n    doc.loc.source = {\"body\":\"mutation workItemNoteRemoveAwardEmoji($awardableId: AwardableID!, $name: String!) {\\n  awardEmojiRemove(input: { awardableId: $awardableId, name: $name }) {\\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[\"workItemNoteRemoveAwardEmoji\"] = oneQuery(doc, \"workItemNoteRemoveAwardEmoji\");\n        \n","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","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('work-item-sidebar-dropdown-widget',{staticClass:\"issuable-assignees gl-mt-2\",attrs:{\"multi-select\":_vm.allowsMultipleAssignees,\"dropdown-label\":_vm.dropdownLabel,\"can-update\":_vm.canUpdate,\"dropdown-name\":\"assignees\",\"show-footer\":_vm.canInviteMembers,\"loading\":_vm.isLoadingUsers,\"list-items\":_vm.searchUsers,\"item-value\":_vm.selectedAssigneeIds,\"toggle-dropdown-text\":_vm.dropdownText,\"header-text\":_vm.headerText,\"update-in-progress\":_vm.updateInProgress,\"reset-button-label\":_vm.__('Clear'),\"clear-search-on-item-select\":\"\",\"data-testid\":\"work-item-assignees\"},on:{\"dropdownShown\":_vm.onDropdownShown,\"searchStarted\":_vm.setSearchKey,\"updateValue\":_vm.handleAssigneesInput,\"updateSelected\":_vm.handleAssigneeClick,\"dropdownHidden\":_vm.onDropdownHide},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [(item)?_c('sidebar-participant',{attrs:{\"user\":item}}):_vm._e()]}},(_vm.canInviteMembers)?{key:\"footer\",fn:function(){return [_c('gl-button',{staticClass:\"!gl-justify-start\",attrs:{\"category\":\"tertiary\",\"block\":\"\"}},[_c('invite-members-trigger',{attrs:{\"display-text\":_vm.__('Invite members'),\"trigger-element\":\"side-nav\",\"icon\":\"plus\",\"trigger-source\":\"work-item-assignees\",\"classes\":\"hover:!gl-no-underline gl-pb-2\"}})],1)]},proxy:true}:null,{key:\"none\",fn:function(){return [_c('div',{staticClass:\"gl-flex gl-items-center gl-gap-2 gl-text-subtle\"},[_c('span',[_vm._v(_vm._s(_vm.__('None')))]),_vm._v(\" \"),(_vm.currentUser && _vm.canUpdate)?[_c('span',[_vm._v(\"-\")]),_vm._v(\" \"),_c('gl-button',{attrs:{\"variant\":\"link\",\"data-testid\":\"assign-self\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.assignToCurrentUser.apply(null, arguments)}}},[_c('span',{staticClass:\"gl-text-subtle hover:gl-text-blue-800\"},[_vm._v(_vm._s(_vm.__('assign yourself')))])])]:_vm._e()],2)]},proxy:true},{key:\"readonly\",fn:function(){return [_c('uncollapsed-assignee-list',{attrs:{\"users\":_vm.localAssignees,\"show-less-assignees-class\":\"hover:!gl-bg-transparent\"}})]},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!./work_item_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!./work_item_assignees.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { unionBy } from 'lodash';\nimport { sortNameAlphabetically, newWorkItemId } from '~/work_items/utils';\nimport currentUserQuery from '~/graphql_shared/queries/current_user.query.graphql';\nimport usersSearchQuery from '~/graphql_shared/queries/workspace_autocomplete_users.query.graphql';\nimport InviteMembersTrigger from '~/invite_members/components/invite_members_trigger.vue';\nimport SidebarParticipant from '~/sidebar/components/assignees/sidebar_participant.vue';\nimport UncollapsedAssigneeList from '~/sidebar/components/assignees/uncollapsed_assignee_list.vue';\nimport WorkItemSidebarDropdownWidget from '~/work_items/components/shared/work_item_sidebar_dropdown_widget.vue';\nimport { s__, sprintf, __ } from '~/locale';\nimport Tracking from '~/tracking';\nimport updateWorkItemMutation from '../graphql/update_work_item.mutation.graphql';\nimport updateNewWorkItemMutation from '../graphql/update_new_work_item.mutation.graphql';\nimport { i18n, TRACKING_CATEGORY_SHOW } from '../constants';\n\nexport default {\n  components: {\n    WorkItemSidebarDropdownWidget,\n    InviteMembersTrigger,\n    SidebarParticipant,\n    GlButton,\n    UncollapsedAssigneeList,\n  },\n  mixins: [Tracking.mixin()],\n  props: {\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    isGroup: {\n      type: Boolean,\n      required: true,\n    },\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    assignees: {\n      type: Array,\n      required: true,\n    },\n    allowsMultipleAssignees: {\n      type: Boolean,\n      required: true,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n    canUpdate: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    canInviteMembers: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    participants: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n    workItemAuthor: {\n      type: Object,\n      required: false,\n      default: () => ({}),\n    },\n  },\n  data() {\n    return {\n      localAssigneeIds: [],\n      assigneeIdsToShowAtTopOfTheListbox: [],\n      searchStarted: false,\n      searchKey: '',\n      users: [],\n      currentUser: null,\n      updateInProgress: false,\n      localUsers: [],\n    };\n  },\n  apollo: {\n    users: {\n      query() {\n        return usersSearchQuery;\n      },\n      variables() {\n        return {\n          fullPath: this.fullPath,\n          search: this.searchKey,\n          isProject: !this.isGroup,\n        };\n      },\n      skip() {\n        return !this.searchStarted;\n      },\n      update(data) {\n        return this.isGroup ? data.groupWorkspace?.users : data.workspace?.users;\n      },\n      result({ data }) {\n        if (!data) {\n          // when data is not available, skip the update\n          return;\n        }\n        const users = this.isGroup ? data?.groupWorkspace?.users : data?.workspace?.users;\n        this.localUsers = unionBy(this.localUsers, users, 'id');\n      },\n      error() {\n        this.$emit('error', i18n.fetchError);\n      },\n    },\n    currentUser: {\n      query: currentUserQuery,\n      result({ data }) {\n        if (!data) {\n          return;\n        }\n        this.localUsers = unionBy(this.localUsers, [data.currentUser], 'id');\n      },\n    },\n  },\n  computed: {\n    searchUsers() {\n      // when there is no search text, then we show selected users first\n      // followed by participants, then all other users\n      if (this.searchKey === '') {\n        const alphabetizedUsers = unionBy(this.users, this.participants, 'id').sort(\n          sortNameAlphabetically,\n        );\n\n        if (alphabetizedUsers.length === 0) {\n          return [];\n        }\n\n        const currentUser = alphabetizedUsers.find(({ id }) => id === this.currentUser?.id);\n\n        const allUsers = unionBy([currentUser], alphabetizedUsers, 'id').map((user) => ({\n          ...user,\n          value: user?.id,\n          text: user?.name,\n        }));\n\n        const selectedUsers =\n          allUsers\n            .filter(({ id }) => this.assigneeIdsToShowAtTopOfTheListbox.includes(id))\n            .sort(sortNameAlphabetically) || [];\n\n        const unselectedUsers = allUsers.filter(\n          ({ id }) => !this.assigneeIdsToShowAtTopOfTheListbox.includes(id),\n        );\n\n        // don't show the selected section if it's empty\n        if (selectedUsers.length === 0) {\n          return allUsers.map((user) => ({\n            ...user,\n            value: user?.id,\n            text: user?.name,\n          }));\n        }\n\n        return [\n          { options: selectedUsers, text: __('Selected') },\n          { options: unselectedUsers, text: __('All users'), textSrOnly: true },\n        ];\n      }\n\n      return this.users.map((user) => ({\n        ...user,\n        value: user?.id,\n        text: user?.name,\n      }));\n    },\n    tracking() {\n      return {\n        category: TRACKING_CATEGORY_SHOW,\n        label: 'item_assignees',\n        property: `type_${this.workItemType}`,\n      };\n    },\n    isLoadingUsers() {\n      return this.$apollo.queries.users.loading;\n    },\n    selectedAssigneeIds() {\n      return this.allowsMultipleAssignees ? this.localAssigneeIds : this.localAssigneeIds[0];\n    },\n    dropdownText() {\n      if (this.localAssigneeIds.length === 0) {\n        return s__('WorkItem|No assignees');\n      }\n\n      return this.localAssigneeIds.length === 1\n        ? this.localAssignees.map(({ name }) => name).join(', ')\n        : sprintf(s__('WorkItem|%{usersLength} assignees'), {\n            usersLength: this.localAssigneeIds.length,\n          });\n    },\n    dropdownLabel() {\n      return this.allowsMultipleAssignees ? __('Assignees') : __('Assignee');\n    },\n    headerText() {\n      return this.allowsMultipleAssignees ? __('Select assignees') : __('Select assignee');\n    },\n    filteredAssignees() {\n      // assignees are the ones already assigned to the work item detail\n      // search users are the ones returned by the autocomplete query which can never be more than 20 , context\n      // https://gitlab.com/gitlab-org/gitlab/-/issues/417757#note_1480434390\n      // we need the previous results of users after resetting the search since we want to show the name of thes user out of the 20 results searched as well\n      // participants are the ones which have sometime commented on the work item, same logic as legacy issues\n      return unionBy(this.assignees, this.searchUsers, this.participants, this.localUsers, 'id');\n    },\n    localAssignees() {\n      return (\n        this.filteredAssignees\n          .filter(({ id }) => this.localAssigneeIds.includes(id))\n          .sort(sortNameAlphabetically) || []\n      );\n    },\n  },\n  watch: {\n    assignees: {\n      handler(newVal) {\n        this.localAssigneeIds = newVal.map(({ id }) => id);\n        this.assigneeIdsToShowAtTopOfTheListbox = this.localAssigneeIds;\n      },\n      deep: true,\n      immediate: true,\n    },\n    searchKey(newVal, oldVal) {\n      if (newVal === '' && oldVal !== '') {\n        this.assigneeIdsToShowAtTopOfTheListbox = this.localAssigneeIds;\n      }\n    },\n  },\n  methods: {\n    handleAssigneesInput(assignees) {\n      this.setLocalAssigneeIdsOnEvent(assignees);\n      this.setAssignees();\n    },\n    handleAssigneeClick(assignees) {\n      this.setLocalAssigneeIdsOnEvent(assignees);\n    },\n    async setAssignees() {\n      this.updateInProgress = true;\n      const { localAssigneeIds } = this;\n\n      if (this.workItemId === newWorkItemId(this.workItemType)) {\n        this.$apollo.mutate({\n          mutation: updateNewWorkItemMutation,\n          variables: {\n            input: {\n              workItemType: this.workItemType,\n              fullPath: this.fullPath,\n              assignees: this.localAssignees,\n            },\n          },\n        });\n\n        this.updateInProgress = false;\n        return;\n      }\n\n      try {\n        const {\n          data: {\n            workItemUpdate: { errors },\n          },\n        } = await this.$apollo.mutate({\n          mutation: updateWorkItemMutation,\n          variables: {\n            input: {\n              id: this.workItemId,\n              assigneesWidget: {\n                assigneeIds: localAssigneeIds,\n              },\n            },\n          },\n        });\n        if (errors.length > 0) {\n          this.throwUpdateError();\n          return;\n        }\n        this.track('updated_assignees');\n        this.$emit('assigneesUpdated', localAssigneeIds);\n      } catch {\n        this.throwUpdateError();\n      } finally {\n        this.updateInProgress = false;\n        this.searchKey = '';\n        this.searchStarted = false;\n      }\n    },\n    setLocalAssigneeIdsOnEvent(assignees) {\n      const singleSelectAssignee = assignees === null ? [] : [assignees];\n      this.localAssigneeIds = this.allowsMultipleAssignees ? assignees : singleSelectAssignee;\n    },\n    setSearchKey(value) {\n      this.searchKey = value;\n      this.searchStarted = true;\n    },\n    assignToCurrentUser() {\n      const assignees = this.allowsMultipleAssignees ? [this.currentUser.id] : this.currentUser.id;\n      this.setLocalAssigneeIdsOnEvent(assignees);\n      this.setAssignees();\n    },\n    throwUpdateError() {\n      this.$emit('error', i18n.updateError);\n      // If mutation is rejected, we're rolling back to initial state\n      this.localAssigneeIds = this.assignees.map(({ id }) => id);\n    },\n    onDropdownShown() {\n      this.searchStarted = true;\n    },\n    onDropdownHide() {\n      this.setSearchKey('');\n      this.assigneeIdsToShowAtTopOfTheListbox = this.localAssigneeIds;\n    },\n  },\n};\n</script>\n\n<template>\n  <work-item-sidebar-dropdown-widget\n    :multi-select=\"allowsMultipleAssignees\"\n    class=\"issuable-assignees gl-mt-2\"\n    :dropdown-label=\"dropdownLabel\"\n    :can-update=\"canUpdate\"\n    dropdown-name=\"assignees\"\n    :show-footer=\"canInviteMembers\"\n    :loading=\"isLoadingUsers\"\n    :list-items=\"searchUsers\"\n    :item-value=\"selectedAssigneeIds\"\n    :toggle-dropdown-text=\"dropdownText\"\n    :header-text=\"headerText\"\n    :update-in-progress=\"updateInProgress\"\n    :reset-button-label=\"__('Clear')\"\n    clear-search-on-item-select\n    data-testid=\"work-item-assignees\"\n    @dropdownShown=\"onDropdownShown\"\n    @searchStarted=\"setSearchKey\"\n    @updateValue=\"handleAssigneesInput\"\n    @updateSelected=\"handleAssigneeClick\"\n    @dropdownHidden=\"onDropdownHide\"\n  >\n    <template #list-item=\"{ item }\">\n      <sidebar-participant v-if=\"item\" :user=\"item\" />\n    </template>\n    <template v-if=\"canInviteMembers\" #footer>\n      <gl-button category=\"tertiary\" block class=\"!gl-justify-start\">\n        <invite-members-trigger\n          :display-text=\"__('Invite members')\"\n          trigger-element=\"side-nav\"\n          icon=\"plus\"\n          trigger-source=\"work-item-assignees\"\n          classes=\"hover:!gl-no-underline gl-pb-2\"\n        />\n      </gl-button>\n    </template>\n    <template #none>\n      <div class=\"gl-flex gl-items-center gl-gap-2 gl-text-subtle\">\n        <span>{{ __('None') }}</span>\n        <template v-if=\"currentUser && canUpdate\">\n          <span>-</span>\n          <gl-button variant=\"link\" data-testid=\"assign-self\" @click.stop=\"assignToCurrentUser\"\n            ><span class=\"gl-text-subtle hover:gl-text-blue-800\">{{\n              __('assign yourself')\n            }}</span></gl-button\n          >\n        </template>\n      </div>\n    </template>\n    <template #readonly>\n      <uncollapsed-assignee-list\n        :users=\"localAssignees\"\n        show-less-assignees-class=\"hover:!gl-bg-transparent\"\n      />\n    </template>\n  </work-item-sidebar-dropdown-widget>\n</template>\n","import { render, staticRenderFns } from \"./work_item_assignees.vue?vue&type=template&id=7af6c3b2\"\nimport script from \"./work_item_assignees.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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',{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","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isEditing)?_c('gl-form-group',{attrs:{\"label\":_vm.$options.i18n.titleLabel,\"label-for\":_vm.inputId,\"invalid-feedback\":_vm.$options.i18n.requiredFieldFeedback,\"state\":_vm.isValid}},[_c('gl-form-input',{staticClass:\"gl-w-full\",attrs:{\"id\":_vm.inputId,\"value\":_vm.title,\"state\":_vm.isValid,\"autofocus\":\"\",\"data-testid\":\"work-item-title-input\"},on:{\"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.$emit('updateWorkItem')},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.$emit('updateWorkItem')}],\"input\":function($event){return _vm.$emit('updateDraft', $event)}}})],1):_c('h1',{staticClass:\"gl-heading-1 !gl-m-0 gl-w-full\",attrs:{\"data-testid\":\"work-item-title\"}},[_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!./work_item_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!./work_item_title.vue?vue&type=script&lang=js\"","<script>\nimport { uniqueId } from 'lodash';\nimport { GlFormGroup, GlFormInput } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n  components: {\n    GlFormGroup,\n    GlFormInput,\n  },\n  i18n: {\n    titleLabel: __('Title (required)'),\n    requiredFieldFeedback: __('A title is required'),\n  },\n  props: {\n    title: {\n      type: String,\n      required: true,\n    },\n    isEditing: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isValid: {\n      type: Boolean,\n      required: false,\n      default: true,\n    },\n  },\n  data() {\n    return {\n      inputId: uniqueId('work-item-title-'),\n    };\n  },\n};\n</script>\n\n<template>\n  <gl-form-group\n    v-if=\"isEditing\"\n    :label=\"$options.i18n.titleLabel\"\n    :label-for=\"inputId\"\n    :invalid-feedback=\"$options.i18n.requiredFieldFeedback\"\n    :state=\"isValid\"\n  >\n    <gl-form-input\n      :id=\"inputId\"\n      class=\"gl-w-full\"\n      :value=\"title\"\n      :state=\"isValid\"\n      autofocus\n      data-testid=\"work-item-title-input\"\n      @keydown.meta.enter=\"$emit('updateWorkItem')\"\n      @keydown.ctrl.enter=\"$emit('updateWorkItem')\"\n      @input=\"$emit('updateDraft', $event)\"\n    />\n  </gl-form-group>\n  <h1 v-else data-testid=\"work-item-title\" class=\"gl-heading-1 !gl-m-0 gl-w-full\">\n    {{ title }}\n  </h1>\n</template>\n","import { render, staticRenderFns } from \"./work_item_title.vue?vue&type=template&id=62b77093\"\nimport script from \"./work_item_title.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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","\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","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","const WORK_ITEM_TYPE_INCIDENT = 'incident';\nconst WORK_ITEM_TYPE_ISSUE = 'issue';\n\nexport const SUPPORT_BOT_USERNAME = 'support-bot';\n\nexport const issuableInitialDataById = (id) => {\n  try {\n    const el = document.getElementById(id);\n    if (!el?.dataset?.initial) return null;\n\n    return JSON.parse(el.dataset.initial);\n  } catch {\n    return null;\n  }\n};\n\nconst isIssuableIncident = (data) => {\n  return data?.issueType === WORK_ITEM_TYPE_INCIDENT;\n};\n\nconst isIssuableServiceDeskIssue = (data) => {\n  return data?.issueType === WORK_ITEM_TYPE_ISSUE && data?.authorUsername === SUPPORT_BOT_USERNAME;\n};\n\nexport const isLegacyIssueType = (issuableData) => {\n  return isIssuableIncident(issuableData) || isIssuableServiceDeskIssue(issuableData);\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","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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',_vm._l((_vm.$options.loader.repeat),function(index){return _c('gl-skeleton-loader',{key:index,attrs:{\"width\":_vm.$options.loader.width,\"height\":_vm.$options.loader.height,\"preserve-aspect-ratio\":\"xMinYMax meet\"}},[_c('circle',{attrs:{\"cx\":\"20\",\"cy\":\"20\",\"r\":\"16\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"width\":\"512\",\"x\":\"45\",\"y\":\"15\",\"height\":\"10\",\"rx\":\"4\"}})])}),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_notes_loading.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.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_notes_loading.vue?vue&type=script&lang=js\"","<script>\nimport { GlSkeletonLoader } from '@gitlab/ui';\n\nexport default {\n  components: {\n    GlSkeletonLoader,\n  },\n  loader: {\n    repeat: 10,\n    width: 1000,\n    height: 40,\n  },\n};\n</script>\n\n<template>\n  <div>\n    <gl-skeleton-loader\n      v-for=\"index in $options.loader.repeat\"\n      :key=\"index\"\n      :width=\"$options.loader.width\"\n      :height=\"$options.loader.height\"\n      preserve-aspect-ratio=\"xMinYMax meet\"\n    >\n      <circle cx=\"20\" cy=\"20\" r=\"16\" />\n      <rect width=\"512\" x=\"45\" y=\"15\" height=\"10\" rx=\"4\" />\n    </gl-skeleton-loader>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_notes_loading.vue?vue&type=template&id=1687f1df\"\nimport script from \"./work_item_notes_loading.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_notes_loading.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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 STATES = {\n  INITIAL: 'initial',\n  TRUNCATED: 'truncated',\n  EXTENDED: 'extended'\n};\n\nexport { STATES };\n","import { GlResizeObserverDirective } from '../../../directives/resize_observer/resize_observer';\nimport GlButton from '../../base/button/button';\nimport { STATES } from './constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n  name: 'GlTruncateText',\n  components: {\n    GlButton\n  },\n  directives: {\n    GlResizeObserver: GlResizeObserverDirective\n  },\n  props: {\n    /**\n     * The text for the 'Show more' button\n     */\n    showMoreText: {\n      type: String,\n      required: false,\n      default: 'Show more'\n    },\n    /**\n     * The text for the 'Show less' button\n     */\n    showLessText: {\n      type: String,\n      required: false,\n      default: 'Show less'\n    },\n    /**\n     * The number of lines that are initially visible on larger screens\n     */\n    lines: {\n      type: Number,\n      required: false,\n      default: 3\n    },\n    /**\n     * The number of lines that are initially visible on smaller screens\n     */\n    mobileLines: {\n      type: Number,\n      required: false,\n      default: 10\n    },\n    /**\n     * Props that are passed to the toggle button\n     */\n    toggleButtonProps: {\n      type: Object,\n      required: false,\n      default() {\n        return {};\n      }\n    }\n  },\n  data() {\n    return {\n      state: STATES.INITIAL\n    };\n  },\n  computed: {\n    showTruncationToggle() {\n      return this.isTruncated || this.isExtended;\n    },\n    truncationToggleText() {\n      return this.isTruncated ? this.showMoreText : this.showLessText;\n    },\n    cssVariables() {\n      return {\n        '--lines': this.lines,\n        '--mobile-lines': this.mobileLines\n      };\n    },\n    truncationClasses() {\n      return this.isExtended ? null : 'gl-truncate-text gl-overflow-hidden';\n    },\n    ariaExpanded() {\n      return (!this.isTruncated).toString();\n    },\n    isTruncated() {\n      return this.state === STATES.TRUNCATED;\n    },\n    isExtended() {\n      return this.state === STATES.EXTENDED;\n    }\n  },\n  methods: {\n    onResize(_ref) {\n      let {\n        target\n      } = _ref;\n      if (target.scrollHeight > target.offsetHeight) {\n        this.state = STATES.TRUNCATED;\n      } else if (this.isTruncated) {\n        this.state = STATES.INITIAL;\n      }\n    },\n    toggleTruncation() {\n      if (this.isTruncated) {\n        this.state = STATES.EXTENDED;\n      } else if (this.isExtended) {\n        this.state = STATES.TRUNCATED;\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('section',[_c('article',{directives:[{name:\"gl-resize-observer\",rawName:\"v-gl-resize-observer\",value:(_vm.onResize),expression:\"onResize\"}],class:_vm.truncationClasses,style:(_vm.cssVariables),attrs:{\"aria-expanded\":_vm.ariaExpanded}},[_vm._t(\"default\")],2),_vm._v(\" \"),(_vm.showTruncationToggle)?_c('gl-button',_vm._b({attrs:{\"variant\":\"link\"},on:{\"click\":_vm.toggleTruncation}},'gl-button',_vm.toggleButtonProps,false),[_vm._v(_vm._s(_vm.truncationToggleText))]):_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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('work-item-sidebar-dropdown-widget',{attrs:{\"dropdown-label\":_vm.s__('Crm|Contacts'),\"can-update\":_vm.canUpdate,\"dropdown-name\":\"crm-contacts\",\"loading\":_vm.isLoading,\"list-items\":_vm.listItems,\"item-value\":_vm.selectedItemIds,\"update-in-progress\":_vm.updateInProgress,\"toggle-dropdown-text\":_vm.dropdownLabelText,\"header-text\":_vm.s__('Crm|Select contacts'),\"multi-select\":\"\",\"clear-search-on-item-select\":\"\",\"data-testid\":\"work-item-crm-contacts\"},on:{\"dropdownShown\":_vm.search,\"searchStarted\":_vm.search,\"updateSelected\":_vm.updateCount,\"updateValue\":_vm.updateItems},scopedSlots:_vm._u([{key:\"readonly\",fn:function(){return [_c('div',{staticClass:\"gl-mt-1 gl-gap-2\"},_vm._l((_vm.selectedOrganizations),function([organizationName, contacts]){return _c('div',{key:organizationName,attrs:{\"data-testid\":\"organization\"}},[_c('div',{staticClass:\"gl-mt-3 gl-text-subtle\"},[_vm._v(_vm._s(organizationName))]),_vm._v(\" \"),_vm._l((contacts),function(contact){return _c('div',{key:contact.id,attrs:{\"data-testid\":\"contact\"}},[_c('gl-link',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-text-inherit\",attrs:{\"id\":`contact_${contact.id}`,\"title\":_vm.s__('Crm|View contact details')}},[_vm._v(\"\\n            \"+_vm._s(contact.firstName)+\" \"+_vm._s(contact.lastName)+\"\\n          \")]),_vm._v(\" \"),_c('gl-popover',{attrs:{\"target\":`contact_${contact.id}`,\"title\":`${contact.firstName} ${contact.lastName}`,\"triggers\":\"click blur focus\",\"placement\":\"left\",\"show-close-button\":\"\",\"boundary\":\"viewport\"}},[_c('div',{staticClass:\"gl-flex gl-flex-col gl-gap-3\"},[(contact.description)?_c('gl-truncate-text',{attrs:{\"toggle-button-props\":_vm.$options.truncateTextToggleButtonProps}},[_c('div',[_vm._v(_vm._s(contact.description))])]):_vm._e(),_vm._v(\" \"),(contact.email)?_c('div',{staticClass:\"gl-flex gl-flex-col gl-gap-1\"},[_c('div',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.__('Email')))]),_vm._v(\" \"),_c('a',{attrs:{\"href\":`mailto:${contact.email}`}},[_vm._v(_vm._s(contact.email))])]):_vm._e(),_vm._v(\" \"),(contact.phone)?_c('div',{staticClass:\"gl-flex gl-flex-col gl-gap-1\"},[_c('div',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.__('Phone')))]),_vm._v(\" \"),_c('div',[_vm._v(_vm._s(contact.phone))])]):_vm._e(),_vm._v(\" \"),(organizationName !== _vm.s__('Crm|No organization'))?_c('div',{staticClass:\"gl-flex gl-flex-col gl-gap-2 gl-rounded-base gl-bg-gray-50 gl-p-3\"},[_c('div',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(organizationName))]),_vm._v(\" \"),(contact.organization.description || contact.organization.defaultRate)?_c('div',{staticClass:\"gl-text-subtle\"},[(contact.organization.description)?_c('gl-truncate-text',{attrs:{\"toggle-button-props\":_vm.$options.truncateTextToggleButtonProps}},[_c('div',[_vm._v(\"\\n                      \"+_vm._s(contact.organization.description)+\"\\n                    \")])]):_vm._e(),_vm._v(\" \"),(contact.organization.defaultRate)?_c('div',[_vm._v(\"\\n                    \"+_vm._s(_vm.rateText(contact.organization.defaultRate))+\"\\n                  \")]):_vm._e()],1):_vm._e()]):_vm._e()],1)])],1)})],2)}),0)]},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!./work_item_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!./work_item_crm_contacts.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink, GlPopover, GlTooltipDirective, GlTruncateText } from '@gitlab/ui';\nimport { difference, groupBy, xor } from 'lodash';\nimport { findWidget } from '~/issues/list/utils';\nimport { __, n__, s__ } from '~/locale';\nimport WorkItemSidebarDropdownWidget from '~/work_items/components/shared/work_item_sidebar_dropdown_widget.vue';\nimport Tracking from '~/tracking';\nimport getGroupContactsQuery from '~/crm/contacts/components/graphql/get_group_contacts.query.graphql';\nimport workItemByIidQuery from '~/work_items/graphql/work_item_by_iid.query.graphql';\nimport updateWorkItemMutation from '../graphql/update_work_item.mutation.graphql';\nimport updateNewWorkItemMutation from '../graphql/update_new_work_item.mutation.graphql';\nimport {\n  i18n,\n  TRACKING_CATEGORY_SHOW,\n  I18N_WORK_ITEM_ERROR_FETCHING_CRM_CONTACTS,\n  WIDGET_TYPE_CRM_CONTACTS,\n} from '../constants';\nimport { newWorkItemFullPath, newWorkItemId } from '../utils';\n\nexport default {\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  components: {\n    GlLink,\n    GlPopover,\n    GlTruncateText,\n    WorkItemSidebarDropdownWidget,\n  },\n  mixins: [Tracking.mixin()],\n  props: {\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    workItemIid: {\n      type: String,\n      required: true,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      searchTerm: '',\n      searchStarted: false,\n      updateInProgress: false,\n      selectedCount: 0,\n    };\n  },\n  computed: {\n    createFlow() {\n      return this.workItemId === newWorkItemId(this.workItemType);\n    },\n    selectedItems() {\n      return this.workItemCrmContacts?.contacts.nodes || [];\n    },\n    isLoading() {\n      return this.$apollo.queries.searchItems.loading;\n    },\n    selectedItemIds() {\n      return this.selectedItems.map(({ id }) => id);\n    },\n    listItems() {\n      const contacts = this.searchItems || [];\n      const organizations = this.groupByOrganization(contacts, true);\n      return organizations.map(([key, values]) => {\n        return {\n          text: key,\n          options: values.map((contact) => {\n            return { value: contact.id, text: `${contact.firstName} ${contact.lastName}` };\n          }),\n        };\n      });\n    },\n    tracking() {\n      return {\n        category: TRACKING_CATEGORY_SHOW,\n        label: 'item_contact',\n        property: `type_${this.workItemType}`,\n      };\n    },\n    selectedOrganizations() {\n      return this.groupByOrganization(this.selectedItems, false);\n    },\n    workItemCrmContacts() {\n      return findWidget(WIDGET_TYPE_CRM_CONTACTS, this.workItem);\n    },\n    workItemFullPath() {\n      return this.createFlow\n        ? newWorkItemFullPath(this.fullPath, this.workItemType)\n        : this.fullPath;\n    },\n    canUpdate() {\n      return this.workItem?.userPermissions?.updateWorkItem;\n    },\n    dropdownLabelText() {\n      return n__('%d contact', '%d contacts', this.selectedCount);\n    },\n  },\n  apollo: {\n    // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n    searchItems: {\n      query: getGroupContactsQuery,\n      variables() {\n        return {\n          groupFullPath: this.fullPath.split('/')[0],\n          searchTerm: this.searchTerm,\n        };\n      },\n      skip() {\n        return !this.searchStarted;\n      },\n      update(data) {\n        return data.group?.contacts?.nodes;\n      },\n      error() {\n        this.$emit('error', I18N_WORK_ITEM_ERROR_FETCHING_CRM_CONTACTS);\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.workItemFullPath,\n          iid: this.workItemIid,\n        };\n      },\n      update(data) {\n        return data?.workspace?.workItem ?? {};\n      },\n      result() {\n        this.selectedCount = this.selectedItemIds.length;\n      },\n      skip() {\n        return !this.workItemIid;\n      },\n    },\n  },\n  methods: {\n    groupByOrganization(unsortedContacts, separateSelectedContacts) {\n      // Sort the contacts first\n      const contacts = [...unsortedContacts].sort((a, b) => {\n        if (a.firstName !== b.firstName) {\n          return a.firstName.localeCompare(b.firstName);\n        }\n        return a.lastName.localeCompare(b.lastName);\n      });\n\n      let groups = [];\n      let remainingContacts;\n      // Group the selected contacts first\n      if (separateSelectedContacts && this.selectedItems.length) {\n        remainingContacts = contacts.filter(\n          (contact) => !this.selectedItemIds.includes(contact.id),\n        );\n        groups.push([\n          __('Selected'),\n          contacts.filter((contact) => this.selectedItemIds.includes(contact.id)),\n        ]);\n      } else {\n        remainingContacts = contacts;\n      }\n\n      const orphanContacts = remainingContacts.filter(({ organization }) => !organization);\n      // Display each organization and their contacts next\n      remainingContacts = remainingContacts.filter(({ organization }) => organization);\n      const organizationGroups = Object.entries(groupBy(remainingContacts, 'organization.name'));\n      organizationGroups.sort((a, b) => a[0].localeCompare(b[0]));\n      groups = groups.concat(organizationGroups);\n\n      // Then finally display contacts without an organization\n      if (orphanContacts.length) {\n        groups.push([s__('Crm|No organization'), orphanContacts]);\n      }\n      return groups;\n    },\n    search(searchTerm = '') {\n      this.searchTerm = searchTerm;\n      this.searchStarted = true;\n    },\n    async updateItems(newSelectedItemIds) {\n      this.updateInProgress = true;\n      let newSelectedItems;\n\n      const differingItems = xor(newSelectedItemIds, this.selectedItemIds);\n\n      if (differingItems === 0) return;\n      if (newSelectedItemIds.length === 0) {\n        newSelectedItems = [];\n      } else {\n        const removeIds = difference(this.selectedItemIds, newSelectedItemIds);\n        if (removeIds.length > 0) {\n          newSelectedItems = this.selectedItems.filter(({ id }) => !removeIds.includes(id));\n        }\n\n        const addIds = difference(newSelectedItemIds, this.selectedItemIds);\n        if (addIds.length > 0) {\n          newSelectedItems = [\n            ...this.selectedItems,\n            ...this.searchItems.filter(({ id }) => addIds.includes(id)),\n          ];\n        }\n      }\n\n      if (this.createFlow) {\n        this.$apollo.mutate({\n          mutation: updateNewWorkItemMutation,\n          variables: {\n            input: {\n              workItemType: this.workItemType,\n              fullPath: this.fullPath,\n              crmContacts: newSelectedItems,\n            },\n          },\n        });\n\n        this.updateInProgress = false;\n        return;\n      }\n\n      try {\n        const {\n          data: {\n            workItemUpdate: { errors },\n          },\n        } = await this.$apollo.mutate({\n          mutation: updateWorkItemMutation,\n          variables: {\n            input: {\n              id: this.workItemId,\n              crmContactsWidget: {\n                contactIds: newSelectedItemIds,\n              },\n            },\n          },\n        });\n\n        if (errors.length > 0) {\n          throw new Error(errors[0].message);\n        }\n\n        this.track('updated_contacts');\n      } catch {\n        this.$emit('error', i18n.updateError);\n      } finally {\n        this.searchTerm = '';\n        this.updateInProgress = false;\n      }\n    },\n    rateText(rate) {\n      return `${s__('Crm|Rate')}: ${rate}`;\n    },\n    updateCount(items) {\n      this.selectedCount = items.length;\n    },\n  },\n  truncateTextToggleButtonProps: { class: '!gl-text-sm' },\n};\n</script>\n\n<template>\n  <work-item-sidebar-dropdown-widget\n    :dropdown-label=\"s__('Crm|Contacts')\"\n    :can-update=\"canUpdate\"\n    dropdown-name=\"crm-contacts\"\n    :loading=\"isLoading\"\n    :list-items=\"listItems\"\n    :item-value=\"selectedItemIds\"\n    :update-in-progress=\"updateInProgress\"\n    :toggle-dropdown-text=\"dropdownLabelText\"\n    :header-text=\"s__('Crm|Select contacts')\"\n    multi-select\n    clear-search-on-item-select\n    data-testid=\"work-item-crm-contacts\"\n    @dropdownShown=\"search\"\n    @searchStarted=\"search\"\n    @updateSelected=\"updateCount\"\n    @updateValue=\"updateItems\"\n  >\n    <template #readonly>\n      <div class=\"gl-mt-1 gl-gap-2\">\n        <div\n          v-for=\"[organizationName, contacts] in selectedOrganizations\"\n          :key=\"organizationName\"\n          data-testid=\"organization\"\n        >\n          <div class=\"gl-mt-3 gl-text-subtle\">{{ organizationName }}</div>\n          <div v-for=\"contact in contacts\" :key=\"contact.id\" data-testid=\"contact\">\n            <gl-link\n              :id=\"`contact_${contact.id}`\"\n              v-gl-tooltip\n              class=\"gl-text-inherit\"\n              :title=\"s__('Crm|View contact details')\"\n            >\n              {{ contact.firstName }} {{ contact.lastName }}\n            </gl-link>\n            <gl-popover\n              :target=\"`contact_${contact.id}`\"\n              :title=\"`${contact.firstName} ${contact.lastName}`\"\n              triggers=\"click blur focus\"\n              placement=\"left\"\n              show-close-button\n              boundary=\"viewport\"\n            >\n              <div class=\"gl-flex gl-flex-col gl-gap-3\">\n                <gl-truncate-text\n                  v-if=\"contact.description\"\n                  :toggle-button-props=\"$options.truncateTextToggleButtonProps\"\n                  ><div>{{ contact.description }}</div></gl-truncate-text\n                >\n                <div v-if=\"contact.email\" class=\"gl-flex gl-flex-col gl-gap-1\">\n                  <div class=\"gl-text-subtle\">{{ __('Email') }}</div>\n                  <a :href=\"`mailto:${contact.email}`\">{{ contact.email }}</a>\n                </div>\n                <div v-if=\"contact.phone\" class=\"gl-flex gl-flex-col gl-gap-1\">\n                  <div class=\"gl-text-subtle\">{{ __('Phone') }}</div>\n                  <div>{{ contact.phone }}</div>\n                </div>\n                <div\n                  v-if=\"organizationName !== s__('Crm|No organization')\"\n                  class=\"gl-flex gl-flex-col gl-gap-2 gl-rounded-base gl-bg-gray-50 gl-p-3\"\n                >\n                  <div class=\"gl-font-bold\">{{ organizationName }}</div>\n                  <div\n                    v-if=\"contact.organization.description || contact.organization.defaultRate\"\n                    class=\"gl-text-subtle\"\n                  >\n                    <gl-truncate-text\n                      v-if=\"contact.organization.description\"\n                      :toggle-button-props=\"$options.truncateTextToggleButtonProps\"\n                    >\n                      <div>\n                        {{ contact.organization.description }}\n                      </div>\n                    </gl-truncate-text>\n                    <div v-if=\"contact.organization.defaultRate\">\n                      {{ rateText(contact.organization.defaultRate) }}\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </gl-popover>\n          </div>\n        </div>\n      </div>\n    </template>\n  </work-item-sidebar-dropdown-widget>\n</template>\n","import { render, staticRenderFns } from \"./work_item_crm_contacts.vue?vue&type=template&id=664bd23b\"\nimport script from \"./work_item_crm_contacts.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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('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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"data-testid\":\"work-item-description-wrapper\"}},[(_vm.isEditing)?_c('gl-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.updateWorkItem.apply(null, arguments)},\"reset\":function($event){$event.preventDefault();return _vm.cancelEditing.apply(null, arguments)}}},[_c('gl-form-group',{class:_vm.formGroupClass,attrs:{\"label\":_vm.__('Description'),\"label-sr-only\":!_vm.canShowDescriptionTemplateSelector,\"label-for\":\"work-item-description\"}},[(_vm.canShowDescriptionTemplateSelector)?_c('work-item-description-template-listbox',{attrs:{\"full-path\":_vm.fullPath,\"template\":_vm.selectedTemplate},on:{\"selectTemplate\":_vm.handleSelectTemplate,\"clear\":_vm.handleClearTemplate,\"reset\":_vm.handleResetTemplate}}):_vm._e(),_vm._v(\" \"),(_vm.showTemplateApplyWarning)?_c('gl-alert',{staticClass:\"gl-mt-2\",attrs:{\"dismissible\":false,\"variant\":\"warning\",\"data-testid\":\"description-template-warning\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('gl-button',{attrs:{\"variant\":\"confirm\",\"data-testid\":\"template-apply\"},on:{\"click\":_vm.applyTemplate}},[_vm._v(_vm._s(_vm.s__('WorkItem|Apply template'))+\"\\n          \")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-ml-3\",attrs:{\"category\":\"secondary\",\"data-testid\":\"template-cancel\"},on:{\"click\":_vm.cancelApplyTemplate}},[_vm._v(_vm._s(_vm.s__('WorkItem|Cancel'))+\"\\n          \")])]},proxy:true}],null,false,695417104)},[_c('p',[_vm._v(\"\\n          \"+_vm._s(_vm.s__(\n              'WorkItem|Applying a template will replace the existing description. Any changes you have made will be lost.',\n            ))+\"\\n        \")])]):_vm._e(),_vm._v(\" \"),_c('markdown-editor',{class:{ 'gl-mt-2': _vm.canShowDescriptionTemplateSelector },attrs:{\"value\":_vm.descriptionText,\"render-markdown-path\":_vm.markdownPreviewPath,\"markdown-docs-path\":_vm.$options.markdownDocsPath,\"form-field-props\":_vm.formFieldProps,\"quick-actions-docs-path\":_vm.$options.quickActionsDocsPath,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"enable-autocomplete\":\"\",\"supports-quick-actions\":\"\",\"autofocus\":_vm.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.updateWorkItem.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.updateWorkItem.apply(null, arguments)}]}}),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex\"},[(_vm.hasConflicts)?_c('gl-alert',{staticClass:\"gl-mt-5 gl-w-full\",attrs:{\"dismissible\":false,\"variant\":\"danger\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('gl-button',{attrs:{\"category\":\"primary\",\"variant\":\"confirm\",\"loading\":_vm.isSubmitting,\"data-testid\":\"save-description\"},on:{\"click\":_vm.updateWorkItem}},[_vm._v(_vm._s(_vm.s__('WorkItem|Save and overwrite'))+\"\\n            \")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-ml-3\",attrs:{\"category\":\"secondary\",\"data-testid\":\"cancel\"},on:{\"click\":_vm.cancelEditing}},[_vm._v(_vm._s(_vm.s__('WorkItem|Discard changes'))+\"\\n            \")])]},proxy:true}],null,false,3811786835)},[_c('p',[_vm._v(\"\\n            \"+_vm._s(_vm.s__(\n                \"WorkItem|Someone edited the description at the same time you did. If you save it will overwrite their changes. Please confirm you'd like to save your edits.\",\n              ))+\"\\n          \")]),_vm._v(\" \"),_c('details',{staticClass:\"gl-mb-5\"},[_c('summary',{staticClass:\"gl-text-link\"},[_vm._v(_vm._s(_vm.s__('WorkItem|View current version')))]),_vm._v(\" \"),_c('gl-form-textarea',{staticClass:\"js-gfm-input js-autosize markdown-area !gl-font-monospace\",attrs:{\"data-testid\":\"conflicted-description\",\"readonly\":\"\",\"no-resize\":\"\",\"value\":_vm.conflictedDescription}})],1)]):(_vm.showButtonsBelowField)?_c('div',{staticClass:\"gl-mt-5 gl-flex gl-gap-3\"},[_c('gl-button',{attrs:{\"category\":\"primary\",\"variant\":\"confirm\",\"loading\":_vm.isSubmitting,\"data-testid\":\"save-description\",\"type\":\"submit\"}},[_vm._v(_vm._s(_vm.saveButtonText)+\"\\n          \")]),_vm._v(\" \"),_c('gl-button',{attrs:{\"category\":\"secondary\",\"data-testid\":\"cancel\",\"type\":\"reset\"}},[_vm._v(_vm._s(_vm.__('Cancel'))+\"\\n          \")])],1):_vm._e()],1)],1)],1):_c('work-item-description-rendered',{attrs:{\"work-item-description\":_vm.workItemDescription,\"work-item-id\":_vm.workItemId,\"work-item-type\":_vm.workItemType,\"can-edit\":_vm.canEdit,\"disable-truncation\":_vm.disableTruncation,\"is-group\":_vm.isGroup,\"is-updating\":_vm.isSubmitting,\"without-heading-anchors\":_vm.withoutHeadingAnchors},on:{\"startEditing\":_vm.startEditing,\"descriptionUpdated\":_vm.handleDescriptionTextUpdated}}),_vm._v(\" \"),(_vm.showEditedAt)?_c('edited-at',{attrs:{\"task-completion-status\":_vm.taskCompletionStatus,\"updated-at\":_vm.lastEditedAt,\"updated-by-name\":_vm.lastEditedByName,\"updated-by-path\":_vm.lastEditedByPath}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlButton, GlTooltipDirective } from '@gitlab/ui';\nimport Vue from 'vue';\nimport Sortable from 'sortablejs';\nimport { renderGFM } from '~/behaviors/markdown/render_gfm';\nimport TaskListItemActions from '~/issues/show/components/task_list_item_actions.vue';\nimport eventHub from '~/issues/show/event_hub';\nimport { InternalEvents } from '~/tracking';\nimport {\n  convertDescriptionWithNewSort,\n  deleteTaskListItem,\n  extractTaskTitleAndDescription,\n  insertNextToTaskListItemText,\n} from '~/issues/show/utils';\nimport { getSortableDefaultOptions, isDragging } from '~/sortable/utils';\nimport { handleLocationHash } from '~/lib/utils/common_utils';\nimport { getLocationHash } from '~/lib/utils/url_utility';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport {\n  WORK_ITEM_TYPE_ENUM_ISSUE,\n  WORK_ITEM_TYPE_ENUM_TASK,\n  WORK_ITEM_TYPE_VALUE_EPIC,\n} from '../constants';\n\nconst trackingMixin = InternalEvents.mixin();\n\nconst FULL_OPACITY = 'gl-opacity-10';\nconst CURSOR_GRAB = 'gl-cursor-grab';\nconst isCheckbox = (target) => target?.classList.contains('task-list-item-checkbox');\n\nexport default {\n  directives: {\n    SafeHtml,\n    GlTooltip: GlTooltipDirective,\n  },\n  components: {\n    CreateWorkItemModal: () => import('~/work_items/components/create_work_item_modal.vue'),\n    GlButton,\n  },\n  mixins: [trackingMixin],\n  props: {\n    disableTruncation: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isGroup: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isUpdating: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    workItemDescription: {\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    canEdit: {\n      type: Boolean,\n      required: true,\n    },\n    withoutHeadingAnchors: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      childDescription: '',\n      childTitle: '',\n      hasTaskListItemActions: false,\n      truncated: false,\n      visible: false,\n      checkboxes: [],\n    };\n  },\n  computed: {\n    childItemType() {\n      return this.workItemType === WORK_ITEM_TYPE_VALUE_EPIC\n        ? WORK_ITEM_TYPE_ENUM_ISSUE\n        : WORK_ITEM_TYPE_ENUM_TASK;\n    },\n    descriptionText() {\n      return this.workItemDescription?.description;\n    },\n    descriptionHtml() {\n      if (this.withoutHeadingAnchors) {\n        return this.stripHeadingAnchors(this.workItemDescription?.descriptionHtml);\n      }\n      return this.workItemDescription?.descriptionHtml;\n    },\n    isDescriptionEmpty() {\n      return this.descriptionHtml?.trim() === '';\n    },\n    isTruncated() {\n      return this.truncated && !this.disableTruncation;\n    },\n  },\n  watch: {\n    descriptionHtml: {\n      handler() {\n        this.renderGFM();\n      },\n      immediate: true,\n    },\n    isUpdating: {\n      handler(isUpdating) {\n        this.sortable?.option('disabled', isUpdating);\n        this.disableCheckboxes(isUpdating);\n      },\n    },\n  },\n  async mounted() {\n    eventHub.$on('convert-task-list-item', this.convertTaskListItem);\n    eventHub.$on('delete-task-list-item', this.deleteTaskListItem);\n    await this.$nextTick();\n    this.truncateOrScrollToAnchor();\n  },\n  beforeDestroy() {\n    eventHub.$off('convert-task-list-item', this.convertTaskListItem);\n    eventHub.$off('delete-task-list-item', this.deleteTaskListItem);\n    this.removeAllPointerEventListeners();\n  },\n  methods: {\n    async renderGFM() {\n      await this.$nextTick();\n\n      renderGFM(this.$refs['gfm-content']);\n      gl?.lazyLoader?.searchLazyImages();\n\n      if (this.canEdit) {\n        this.initCheckboxes();\n        this.removeAllPointerEventListeners();\n        this.renderSortableLists();\n        this.renderTaskListItemActions();\n      }\n    },\n    /**\n     * Work Item description is truncated when they exceed 40% of the viewport height (see truncateLongDescription below)\n     * Also, it is not rendered before DOMContentLoaded is complete so even if truncation is not done, anchoring\n     * to a link within description doesn't cause page to scroll, so we need handle both these scenarios manually.\n     *\n     * This method checks if Work Item was opened with an anchor pointed to a link within description.\n     * If yes, it will prevent description from truncating and will scroll the page to the anchor.\n     * If no, it will truncate the description as per default behaviour.\n     */\n    truncateOrScrollToAnchor() {\n      const hash = getLocationHash();\n      const hashSelector = `href=\"#${hash}\"`;\n      const isLocationHashAnchoredInDescription =\n        hash && this.descriptionHtml?.includes(hashSelector);\n\n      if (isLocationHashAnchoredInDescription) {\n        handleLocationHash();\n      } else {\n        this.truncateLongDescription();\n      }\n    },\n    renderSortableLists() {\n      // We exclude GLFM table of contents which have a `section-nav` class on the root `ul`.\n      const lists = this.$el.querySelectorAll?.(\n        '.description ul:not(.section-nav), .description ul:not(.section-nav) ul, .description ol',\n      );\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        this.sortable = Sortable.create(\n          list,\n          getSortableDefaultOptions({\n            handle: '.drag-icon',\n            onUpdate: (event) => {\n              const description = convertDescriptionWithNewSort(this.descriptionText, event.to);\n              this.$emit('descriptionUpdated', 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    initCheckboxes() {\n      this.checkboxes = this.$el.querySelectorAll('.task-list-item-checkbox');\n\n      // enable boxes, disabled by default in markdown\n      this.disableCheckboxes(false);\n    },\n    disableCheckboxes(disabled) {\n      this.checkboxes.forEach((checkbox) => {\n        // eslint-disable-next-line no-param-reassign\n        checkbox.disabled = disabled;\n      });\n    },\n    renderTaskListItemActions() {\n      const taskListItems = this.$el.querySelectorAll?.(\n        '.task-list-item:not(.inapplicable, table .task-list-item)',\n      );\n\n      taskListItems?.forEach((listItem) => {\n        const dropdown = this.createTaskListItemActions();\n        insertNextToTaskListItemText(dropdown, listItem);\n        this.addPointerEventListeners(listItem, '.task-list-item-actions');\n        this.hasTaskListItemActions = true;\n      });\n    },\n    createTaskListItemActions() {\n      const app = new Vue({\n        el: document.createElement('div'),\n        provide: { id: this.workItemId, issuableType: this.workItemType },\n        render: (createElement) => createElement(TaskListItemActions),\n      });\n      return app.$el;\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(CURSOR_GRAB);\n        element.classList.add(FULL_OPACITY);\n      };\n      const pointeroutListener = (event) => {\n        const element = event.target.closest('li').querySelector(elementSelector);\n        if (!element) {\n          return;\n        }\n        element.classList.remove(CURSOR_GRAB);\n        element.classList.remove(FULL_OPACITY);\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    convertTaskListItem({ id, sourcepos }) {\n      if (this.workItemId !== id) {\n        return;\n      }\n      const { newDescription, taskDescription, taskTitle } = deleteTaskListItem(\n        this.descriptionText,\n        sourcepos,\n      );\n      const { title, description } = extractTaskTitleAndDescription(taskTitle, taskDescription);\n      this.childTitle = title;\n      this.childDescription = description;\n      this.visible = true;\n      this.newDescription = newDescription;\n    },\n    deleteTaskListItem({ id, sourcepos }) {\n      if (this.workItemId !== id) {\n        return;\n      }\n      const { newDescription } = deleteTaskListItem(this.descriptionText, sourcepos);\n      this.$emit('descriptionUpdated', newDescription);\n    },\n    handleWorkItemCreated() {\n      this.$emit('descriptionUpdated', this.newDescription);\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        const [startRange] = sourcepos.split('-');\n        let [startRow] = startRange.split(':');\n        startRow = Number(startRow) - 1;\n\n        const descriptionTextRows = this.descriptionText.split('\\n');\n        const newDescriptionText = descriptionTextRows\n          .map((row, index) => {\n            if (startRow === index) {\n              if (target.checked) {\n                return row.replace(/\\[ \\]/, '[x]');\n              }\n              return row.replace(/\\[[x~]\\]/i, '[ ]');\n            }\n            return row;\n          })\n          .join('\\n');\n\n        this.$emit('descriptionUpdated', newDescriptionText);\n      }\n    },\n    truncateLongDescription() {\n      /* Truncate when description is > 80% viewport height, plus 96px buffer to avoid trivial truncations. */\n      const maxHeight = window.innerHeight * 0.8 + 96;\n      this.truncated = this.$refs['gfm-content']?.clientHeight > maxHeight;\n    },\n    showAll() {\n      this.truncated = false;\n      this.trackEvent('expand_description_on_workitem', {\n        label: this.workItemTypeName,\n      });\n    },\n    stripHeadingAnchors(htmlString) {\n      const regex = /(<a[^>]+?aria-hidden=\"true\" class=\"anchor)(\")/g;\n      return htmlString?.replace(regex, '$1 after:!gl-hidden$2');\n    },\n  },\n};\n</script>\n\n<template>\n  <div class=\"gl-my-5\">\n    <div v-if=\"isDescriptionEmpty\" class=\"gl-text-subtle\">{{ __('No description') }}</div>\n    <div\n      v-else\n      ref=\"description\"\n      class=\"work-item-description description md gl-relative gl-clearfix\"\n    >\n      <div\n        ref=\"gfm-content\"\n        v-safe-html=\"descriptionHtml\"\n        data-testid=\"work-item-description\"\n        :class=\"{ truncated: isTruncated, 'has-task-list-item-actions': hasTaskListItemActions }\"\n        @change=\"toggleCheckboxes\"\n      ></div>\n      <div\n        v-if=\"isTruncated\"\n        class=\"description-more gl-block gl-w-full\"\n        data-test-id=\"description-read-more\"\n      >\n        <div class=\"show-all-btn gl-flex gl-w-full gl-items-center gl-justify-center\">\n          <gl-button\n            ref=\"show-all-btn\"\n            variant=\"confirm\"\n            category=\"tertiary\"\n            class=\"gl-mx-4\"\n            data-testid=\"show-all-btn\"\n            @click=\"showAll\"\n            >{{ __('Read more') }}</gl-button\n          >\n        </div>\n      </div>\n    </div>\n    <create-work-item-modal\n      :description=\"childDescription\"\n      hide-button\n      :is-group=\"isGroup\"\n      :parent-id=\"workItemId\"\n      :show-project-selector=\"isGroup\"\n      :title=\"childTitle\"\n      :visible=\"visible\"\n      :work-item-type-name=\"childItemType\"\n      @hideModal=\"visible = false\"\n      @workItemCreated=\"handleWorkItemCreated\"\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!./work_item_description_rendered.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.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_description_rendered.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./work_item_description_rendered.vue?vue&type=template&id=c412356e\"\nimport script from \"./work_item_description_rendered.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_description_rendered.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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-my-5\"},[(_vm.isDescriptionEmpty)?_c('div',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.__('No description')))]):_c('div',{ref:\"description\",staticClass:\"work-item-description description md gl-relative gl-clearfix\"},[_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.descriptionHtml),expression:\"descriptionHtml\"}],ref:\"gfm-content\",class:{ truncated: _vm.isTruncated, 'has-task-list-item-actions': _vm.hasTaskListItemActions },attrs:{\"data-testid\":\"work-item-description\"},on:{\"change\":_vm.toggleCheckboxes}}),_vm._v(\" \"),(_vm.isTruncated)?_c('div',{staticClass:\"description-more gl-block gl-w-full\",attrs:{\"data-test-id\":\"description-read-more\"}},[_c('div',{staticClass:\"show-all-btn gl-flex gl-w-full gl-items-center gl-justify-center\"},[_c('gl-button',{ref:\"show-all-btn\",staticClass:\"gl-mx-4\",attrs:{\"variant\":\"confirm\",\"category\":\"tertiary\",\"data-testid\":\"show-all-btn\"},on:{\"click\":_vm.showAll}},[_vm._v(_vm._s(_vm.__('Read more')))])],1)]):_vm._e()]),_vm._v(\" \"),_c('create-work-item-modal',{attrs:{\"description\":_vm.childDescription,\"hide-button\":\"\",\"is-group\":_vm.isGroup,\"parent-id\":_vm.workItemId,\"show-project-selector\":_vm.isGroup,\"title\":_vm.childTitle,\"visible\":_vm.visible,\"work-item-type-name\":_vm.childItemType},on:{\"hideModal\":function($event){_vm.visible = false},\"workItemCreated\":_vm.handleWorkItemCreated}})],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_description_template_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_description_template_listbox.vue?vue&type=script&lang=js\"","<script>\nimport { GlCollapsibleListbox, GlSkeletonLoader, GlSprintf, GlLink, GlButton } from '@gitlab/ui';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { s__ } from '~/locale';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport workItemDescriptionTemplatesListQuery from '../graphql/work_item_description_templates_list.query.graphql';\n\nexport default {\n  name: 'WorkItemDescriptionTemplateListbox',\n  components: {\n    GlCollapsibleListbox,\n    GlSkeletonLoader,\n    GlSprintf,\n    GlLink,\n    GlButton,\n  },\n  props: {\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    template: {\n      type: String,\n      required: false,\n      default: null,\n    },\n  },\n  data() {\n    return {\n      descriptionTemplates: [],\n      searchTerm: '',\n    };\n  },\n  apollo: {\n    descriptionTemplates: {\n      query: workItemDescriptionTemplatesListQuery,\n      variables() {\n        return {\n          fullPath: this.fullPath,\n        };\n      },\n      update(data) {\n        return data.namespace?.workItemDescriptionTemplates.nodes || [];\n      },\n      error(e) {\n        Sentry.captureException(e);\n      },\n    },\n  },\n  computed: {\n    loading() {\n      return this.$apollo.queries.descriptionTemplates.loading;\n    },\n    toggleText() {\n      return this.template || s__('WorkItem|Choose a template');\n    },\n    hasTemplates() {\n      return this.descriptionTemplates.length > 0;\n    },\n    items() {\n      const listboxItems = this.descriptionTemplates.map(({ name }) => ({\n        value: name,\n        text: name,\n      }));\n      if (this.searchTerm) {\n        return listboxItems.filter(({ text }) => text.includes(this.searchTerm));\n      }\n      return listboxItems;\n    },\n  },\n  methods: {\n    handleSelect(item) {\n      this.$emit('selectTemplate', item);\n    },\n    handleSearch(searchTerm) {\n      this.searchTerm = searchTerm;\n    },\n    handleClear() {\n      this.$refs.listbox?.closeAndFocus();\n      this.$emit('clear');\n    },\n    handleReset() {\n      this.$refs.listbox?.closeAndFocus();\n      this.$emit('reset');\n    },\n  },\n  templateDocsPath: helpPagePath('user/project/description_templates'),\n};\n</script>\n\n<template>\n  <gl-skeleton-loader v-if=\"loading\" />\n\n  <gl-collapsible-listbox\n    v-else-if=\"hasTemplates\"\n    ref=\"listbox\"\n    :items=\"items\"\n    :toggle-text=\"toggleText\"\n    :header-text=\"s__('WorkItem|Select template')\"\n    size=\"small\"\n    :selected=\"template\"\n    :loading=\"loading\"\n    searchable\n    @select=\"handleSelect\"\n    @search=\"handleSearch\"\n  >\n    <template #footer>\n      <div class=\"gl-border-t gl-border-t-dropdown gl-p-2 gl-pt-0\">\n        <gl-button\n          category=\"tertiary\"\n          block\n          data-testid=\"clear-template\"\n          class=\"gl-mt-2 !gl-justify-start\"\n          @click=\"handleClear\"\n        >\n          {{ s__('WorkItem|No template') }}\n        </gl-button>\n        <gl-button\n          category=\"tertiary\"\n          block\n          data-testid=\"reset-template\"\n          class=\"gl-mt-2 !gl-justify-start\"\n          @click=\"handleReset\"\n        >\n          {{ s__('WorkItem|Reset template') }}\n        </gl-button>\n      </div>\n    </template>\n  </gl-collapsible-listbox>\n\n  <p v-else data-testid=\"template-message\">\n    <gl-sprintf\n      :message=\"\n        s__(\n          'WorkItem|Add %{linkStart}description templates%{linkEnd} to help your contributors communicate effectively!',\n        )\n      \"\n    >\n      <template #link=\"{ content }\">\n        <gl-link :href=\"$options.templateDocsPath\">\n          {{ content }}\n        </gl-link>\n      </template>\n    </gl-sprintf>\n  </p>\n</template>\n","import { render, staticRenderFns } from \"./work_item_description_template_listbox.vue?vue&type=template&id=76d0294a\"\nimport script from \"./work_item_description_template_listbox.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_description_template_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 (_vm.loading)?_c('gl-skeleton-loader'):(_vm.hasTemplates)?_c('gl-collapsible-listbox',{ref:\"listbox\",attrs:{\"items\":_vm.items,\"toggle-text\":_vm.toggleText,\"header-text\":_vm.s__('WorkItem|Select template'),\"size\":\"small\",\"selected\":_vm.template,\"loading\":_vm.loading,\"searchable\":\"\"},on:{\"select\":_vm.handleSelect,\"search\":_vm.handleSearch},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"gl-border-t gl-border-t-dropdown gl-p-2 gl-pt-0\"},[_c('gl-button',{staticClass:\"gl-mt-2 !gl-justify-start\",attrs:{\"category\":\"tertiary\",\"block\":\"\",\"data-testid\":\"clear-template\"},on:{\"click\":_vm.handleClear}},[_vm._v(\"\\n        \"+_vm._s(_vm.s__('WorkItem|No template'))+\"\\n      \")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-mt-2 !gl-justify-start\",attrs:{\"category\":\"tertiary\",\"block\":\"\",\"data-testid\":\"reset-template\"},on:{\"click\":_vm.handleReset}},[_vm._v(\"\\n        \"+_vm._s(_vm.s__('WorkItem|Reset template'))+\"\\n      \")])],1)]},proxy:true}])}):_c('p',{attrs:{\"data-testid\":\"template-message\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.s__(\n        'WorkItem|Add %{linkStart}description templates%{linkEnd} to help your contributors communicate effectively!',\n      )},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.$options.templateDocsPath}},[_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!./work_item_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!./work_item_description.vue?vue&type=script&lang=js\"","<script>\nimport { GlAlert, GlButton, GlForm, GlFormGroup, GlFormTextarea } from '@gitlab/ui';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { getDraft, clearDraft, updateDraft } from '~/lib/utils/autosave';\nimport { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal';\nimport { __, s__ } from '~/locale';\nimport EditedAt from '~/issues/show/components/edited.vue';\nimport Tracking from '~/tracking';\nimport MarkdownEditor from '~/vue_shared/components/markdown/markdown_editor.vue';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport {\n  newWorkItemId,\n  newWorkItemFullPath,\n  autocompleteDataSources,\n  markdownPreviewPath,\n} from '~/work_items/utils';\nimport workItemByIidQuery from '../graphql/work_item_by_iid.query.graphql';\nimport workItemDescriptionTemplateQuery from '../graphql/work_item_description_template.query.graphql';\nimport {\n  i18n,\n  NEW_WORK_ITEM_IID,\n  TRACKING_CATEGORY_SHOW,\n  WIDGET_TYPE_DESCRIPTION,\n} from '../constants';\nimport WorkItemDescriptionRendered from './work_item_description_rendered.vue';\nimport WorkItemDescriptionTemplateListbox from './work_item_description_template_listbox.vue';\n\nexport default {\n  components: {\n    EditedAt,\n    GlAlert,\n    GlButton,\n    GlForm,\n    GlFormGroup,\n    GlFormTextarea,\n    MarkdownEditor,\n    WorkItemDescriptionRendered,\n    WorkItemDescriptionTemplateListbox,\n  },\n  mixins: [Tracking.mixin(), glFeatureFlagMixin()],\n  inject: ['isGroup'],\n  props: {\n    description: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    workItemId: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    workItemIid: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    editMode: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    autofocus: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    updateInProgress: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    showButtonsBelowField: {\n      type: Boolean,\n      required: false,\n      default: true,\n    },\n    workItemTypeName: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    withoutHeadingAnchors: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  markdownDocsPath: helpPagePath('user/markdown'),\n  data() {\n    return {\n      workItem: {},\n      disableTruncation: false,\n      isEditing: this.editMode,\n      isSubmitting: false,\n      isSubmittingWithKeydown: false,\n      descriptionText: this.description,\n      initialDescriptionText: this.description,\n      conflictedDescription: '',\n      formFieldProps: {\n        'aria-label': __('Description'),\n        placeholder: __('Write a comment or drag your files here…'),\n        id: 'work-item-description',\n        name: 'work-item-description',\n      },\n      selectedTemplate: '',\n      descriptionTemplate: null,\n      appliedTemplate: '',\n      showTemplateApplyWarning: false,\n    };\n  },\n  apollo: {\n    workItem: {\n      query: workItemByIidQuery,\n      skip() {\n        return !this.workItemIid;\n      },\n      variables() {\n        return {\n          fullPath: this.workItemFullPath,\n          iid: this.workItemIid,\n        };\n      },\n      update(data) {\n        return data?.workspace?.workItem || {};\n      },\n      result() {\n        if (this.isEditing && !this.createFlow) {\n          this.checkForConflicts();\n        }\n        if (this.isEditing && this.createFlow) {\n          this.startEditing();\n        }\n      },\n      error() {\n        this.$emit('error', i18n.fetchError);\n      },\n    },\n    descriptionTemplate: {\n      query: workItemDescriptionTemplateQuery,\n      skip() {\n        return !this.selectedTemplate;\n      },\n      variables() {\n        return {\n          fullPath: this.fullPath,\n          name: this.selectedTemplate,\n        };\n      },\n      update(data) {\n        return data.namespace.workItemDescriptionTemplates.nodes[0] || {};\n      },\n      result() {\n        const isDirty = this.descriptionText !== this.workItemDescription?.description;\n        const isUnchangedTemplate = this.descriptionText === this.appliedTemplate;\n        const hasContent = this.descriptionText !== '';\n        if (!isUnchangedTemplate && (isDirty || hasContent)) {\n          this.showTemplateApplyWarning = true;\n        } else {\n          this.applyTemplate();\n        }\n      },\n      error(e) {\n        Sentry.captureException(e);\n        this.$emit('error', s__('WorkItem|Unable to find selected template.'));\n      },\n    },\n  },\n  computed: {\n    createFlow() {\n      return this.workItemId === newWorkItemId(this.workItemTypeName);\n    },\n    workItemFullPath() {\n      return this.createFlow\n        ? newWorkItemFullPath(this.fullPath, this.workItemTypeName)\n        : this.fullPath;\n    },\n    autosaveKey() {\n      return this.workItemId || `new-${this.workItemType}-description-draft`;\n    },\n    canEdit() {\n      return this.workItem?.userPermissions?.updateWorkItem || false;\n    },\n    hasConflicts() {\n      return Boolean(this.conflictedDescription);\n    },\n    tracking() {\n      return {\n        category: TRACKING_CATEGORY_SHOW,\n        label: 'item_description',\n        property: `type_${this.workItemType}`,\n      };\n    },\n    workItemDescription() {\n      const descriptionWidget = this.workItem?.widgets?.find(\n        (widget) => widget.type === WIDGET_TYPE_DESCRIPTION,\n      );\n      return {\n        ...descriptionWidget,\n        description: descriptionWidget?.description || '',\n      };\n    },\n    workItemType() {\n      return this.workItem?.workItemType?.name;\n    },\n    taskCompletionStatus() {\n      return this.workItemDescription?.taskCompletionStatus;\n    },\n    lastEditedAt() {\n      return this.workItemDescription?.lastEditedAt;\n    },\n    lastEditedByName() {\n      return this.workItemDescription?.lastEditedBy?.name;\n    },\n    lastEditedByPath() {\n      return this.workItemDescription?.lastEditedBy?.webPath;\n    },\n    isGroupWorkItem() {\n      return this.workItemNamespaceId.includes('Group');\n    },\n    workItemNamespaceId() {\n      return this.workItem?.namespace?.id || '';\n    },\n    markdownPreviewPath() {\n      const {\n        fullPath,\n        isGroup,\n        workItem: { iid },\n      } = this;\n      return markdownPreviewPath({ fullPath, iid, isGroup });\n    },\n    autocompleteDataSources() {\n      const isNewWorkItemInGroup = this.isGroup && this.workItemIid === NEW_WORK_ITEM_IID;\n      return autocompleteDataSources({\n        fullPath: this.fullPath,\n        isGroup: this.isGroupWorkItem || isNewWorkItemInGroup,\n        iid: this.workItemIid,\n        workItemTypeId: this.workItem?.workItemType?.id,\n      });\n    },\n    saveButtonText() {\n      return this.editMode ? __('Save changes') : __('Save');\n    },\n    formGroupClass() {\n      return {\n        'common-note-form': true,\n      };\n    },\n    showEditedAt() {\n      return (this.taskCompletionStatus || this.lastEditedAt) && !this.editMode;\n    },\n    canShowDescriptionTemplateSelector() {\n      return this.glFeatures.workItemsAlpha;\n    },\n    descriptionTemplateContent() {\n      return this.descriptionTemplate?.content || '';\n    },\n    canResetTemplate() {\n      const hasAppliedTemplate = this.appliedTemplate !== '';\n      const hasEditedTemplate = this.descriptionText !== this.appliedTemplate;\n      return hasAppliedTemplate && hasEditedTemplate;\n    },\n  },\n  watch: {\n    updateInProgress(newValue) {\n      this.isSubmitting = newValue;\n    },\n    editMode(newValue) {\n      this.isEditing = newValue;\n      this.selectedTemplate = '';\n      this.appliedTemplate = '';\n      this.showTemplateApplyWarning = false;\n      if (newValue) {\n        this.startEditing();\n      }\n    },\n  },\n  methods: {\n    checkForConflicts() {\n      if (this.initialDescriptionText.trim() !== this.workItemDescription?.description.trim()) {\n        this.conflictedDescription = this.workItemDescription?.description;\n      }\n    },\n    async startEditing() {\n      this.isEditing = true;\n      this.disableTruncation = true;\n\n      this.descriptionText = this.createFlow\n        ? this.workItemDescription?.description\n        : getDraft(this.autosaveKey) || this.workItemDescription?.description;\n      this.initialDescriptionText = this.descriptionText;\n\n      await this.$nextTick();\n\n      this.$refs.textarea?.focus();\n    },\n    async cancelEditing() {\n      const isDirty = this.descriptionText !== this.workItemDescription?.description;\n\n      if (isDirty) {\n        const msg = s__('WorkItem|Are you sure you want to cancel editing?');\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      this.isEditing = false;\n      this.$emit('cancelEditing');\n      clearDraft(this.autosaveKey);\n      this.conflictedDescription = '';\n      this.initialDescriptionText = this.descriptionText;\n    },\n    onInput() {\n      if (this.isSubmittingWithKeydown) {\n        return;\n      }\n\n      updateDraft(this.autosaveKey, this.descriptionText);\n    },\n    async updateWorkItem(event = {}) {\n      const { key } = event;\n\n      if (key) {\n        this.isSubmittingWithKeydown = true;\n      }\n\n      this.$emit('updateWorkItem', { clearDraft: () => clearDraft(this.autosaveKey) });\n\n      this.conflictedDescription = '';\n      this.initialDescriptionText = this.descriptionText;\n    },\n    setDescriptionText(newText) {\n      this.descriptionText = newText;\n      this.$emit('updateDraft', this.descriptionText);\n      updateDraft(this.autosaveKey, this.descriptionText);\n    },\n    handleDescriptionTextUpdated(newText) {\n      this.disableTruncation = true;\n      this.descriptionText = newText;\n      this.$emit('updateDraft', this.descriptionText);\n      this.updateWorkItem();\n    },\n    handleSelectTemplate(templateName) {\n      this.selectedTemplate = templateName;\n    },\n    applyTemplate() {\n      this.appliedTemplate = this.descriptionTemplateContent;\n      this.setDescriptionText(this.descriptionTemplateContent);\n      this.onInput();\n      this.showTemplateApplyWarning = false;\n    },\n    cancelApplyTemplate() {\n      this.selectedTemplate = '';\n      this.descriptionTemplate = null;\n      this.showTemplateApplyWarning = false;\n    },\n    handleClearTemplate() {\n      if (this.appliedTemplate) {\n        this.setDescriptionText('');\n        this.selectedTemplate = '';\n        this.descriptionTemplate = null;\n        this.appliedTemplate = '';\n      }\n    },\n    handleResetTemplate() {\n      if (this.canResetTemplate) {\n        this.setDescriptionText(this.appliedTemplate);\n        this.onInput();\n      }\n    },\n  },\n};\n</script>\n\n<template>\n  <div data-testid=\"work-item-description-wrapper\">\n    <gl-form v-if=\"isEditing\" @submit.prevent=\"updateWorkItem\" @reset.prevent=\"cancelEditing\">\n      <gl-form-group\n        :class=\"formGroupClass\"\n        :label=\"__('Description')\"\n        :label-sr-only=\"!canShowDescriptionTemplateSelector\"\n        label-for=\"work-item-description\"\n      >\n        <work-item-description-template-listbox\n          v-if=\"canShowDescriptionTemplateSelector\"\n          :full-path=\"fullPath\"\n          :template=\"selectedTemplate\"\n          @selectTemplate=\"handleSelectTemplate\"\n          @clear=\"handleClearTemplate\"\n          @reset=\"handleResetTemplate\"\n        />\n        <gl-alert\n          v-if=\"showTemplateApplyWarning\"\n          :dismissible=\"false\"\n          variant=\"warning\"\n          class=\"gl-mt-2\"\n          data-testid=\"description-template-warning\"\n        >\n          <p>\n            {{\n              s__(\n                'WorkItem|Applying a template will replace the existing description. Any changes you have made will be lost.',\n              )\n            }}\n          </p>\n          <template #actions>\n            <gl-button variant=\"confirm\" data-testid=\"template-apply\" @click=\"applyTemplate\"\n              >{{ s__('WorkItem|Apply template') }}\n            </gl-button>\n            <gl-button\n              category=\"secondary\"\n              class=\"gl-ml-3\"\n              data-testid=\"template-cancel\"\n              @click=\"cancelApplyTemplate\"\n              >{{ s__('WorkItem|Cancel') }}\n            </gl-button>\n          </template>\n        </gl-alert>\n        <markdown-editor\n          :value=\"descriptionText\"\n          :render-markdown-path=\"markdownPreviewPath\"\n          :markdown-docs-path=\"$options.markdownDocsPath\"\n          :form-field-props=\"formFieldProps\"\n          :quick-actions-docs-path=\"$options.quickActionsDocsPath\"\n          :autocomplete-data-sources=\"autocompleteDataSources\"\n          enable-autocomplete\n          supports-quick-actions\n          :autofocus=\"autofocus\"\n          :class=\"{ 'gl-mt-2': canShowDescriptionTemplateSelector }\"\n          @input=\"setDescriptionText\"\n          @keydown.meta.enter=\"updateWorkItem\"\n          @keydown.ctrl.enter=\"updateWorkItem\"\n        />\n        <div class=\"gl-flex\">\n          <gl-alert\n            v-if=\"hasConflicts\"\n            :dismissible=\"false\"\n            variant=\"danger\"\n            class=\"gl-mt-5 gl-w-full\"\n          >\n            <p>\n              {{\n                s__(\n                  \"WorkItem|Someone edited the description at the same time you did. If you save it will overwrite their changes. Please confirm you'd like to save your edits.\",\n                )\n              }}\n            </p>\n            <details class=\"gl-mb-5\">\n              <summary class=\"gl-text-link\">{{ s__('WorkItem|View current version') }}</summary>\n              <gl-form-textarea\n                class=\"js-gfm-input js-autosize markdown-area !gl-font-monospace\"\n                data-testid=\"conflicted-description\"\n                readonly\n                no-resize\n                :value=\"conflictedDescription\"\n              />\n            </details>\n            <template #actions>\n              <gl-button\n                category=\"primary\"\n                variant=\"confirm\"\n                :loading=\"isSubmitting\"\n                data-testid=\"save-description\"\n                @click=\"updateWorkItem\"\n                >{{ s__('WorkItem|Save and overwrite') }}\n              </gl-button>\n              <gl-button\n                category=\"secondary\"\n                class=\"gl-ml-3\"\n                data-testid=\"cancel\"\n                @click=\"cancelEditing\"\n                >{{ s__('WorkItem|Discard changes') }}\n              </gl-button>\n            </template>\n          </gl-alert>\n          <div v-else-if=\"showButtonsBelowField\" class=\"gl-mt-5 gl-flex gl-gap-3\">\n            <gl-button\n              category=\"primary\"\n              variant=\"confirm\"\n              :loading=\"isSubmitting\"\n              data-testid=\"save-description\"\n              type=\"submit\"\n              >{{ saveButtonText }}\n            </gl-button>\n            <gl-button category=\"secondary\" data-testid=\"cancel\" type=\"reset\"\n              >{{ __('Cancel') }}\n            </gl-button>\n          </div>\n        </div>\n      </gl-form-group>\n    </gl-form>\n    <work-item-description-rendered\n      v-else\n      :work-item-description=\"workItemDescription\"\n      :work-item-id=\"workItemId\"\n      :work-item-type=\"workItemType\"\n      :can-edit=\"canEdit\"\n      :disable-truncation=\"disableTruncation\"\n      :is-group=\"isGroup\"\n      :is-updating=\"isSubmitting\"\n      :without-heading-anchors=\"withoutHeadingAnchors\"\n      @startEditing=\"startEditing\"\n      @descriptionUpdated=\"handleDescriptionTextUpdated\"\n    />\n    <edited-at\n      v-if=\"showEditedAt\"\n      :task-completion-status=\"taskCompletionStatus\"\n      :updated-at=\"lastEditedAt\"\n      :updated-by-name=\"lastEditedByName\"\n      :updated-by-path=\"lastEditedByPath\"\n    />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./work_item_description.vue?vue&type=template&id=1dd2640c\"\nimport script from \"./work_item_description.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_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 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\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemNote\"},\"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\":\"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\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemNote\"},\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":251}};\n    doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/work_items/graphql/notes/work_item_note.fragment.graphql\\\"\\n\\nquery workItemNote($id: NoteID!) {\\n  note(id: $id) {\\n    id\\n    discussion {\\n      id\\n      notes {\\n        nodes {\\n          ...WorkItemNote\\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/notes/work_item_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[\"workItemNote\"] = oneQuery(doc, \"workItemNote\");\n        \n","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\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemDesignManagementMove\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignManagementDesignID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"previous\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignManagementDesignID\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"next\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignManagementDesignID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"designManagementMove\"},\"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\":\"previous\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"previous\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"next\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"next\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"designCollection\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"designs\"},\"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\":\"DesignFile\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":399}};\n    doc.loc.source = {\"body\":\"#import \\\"./fragments/design_file.fragment.graphql\\\"\\n\\nmutation WorkItemDesignManagementMove(\\n  $id: DesignManagementDesignID!\\n  $previous: DesignManagementDesignID\\n  $next: DesignManagementDesignID\\n) {\\n  designManagementMove(input: { id: $id, previous: $previous, next: $next }) {\\n    designCollection {\\n      designs {\\n        nodes {\\n          ...DesignFile\\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_file.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[\"WorkItemDesignManagementMove\"] = oneQuery(doc, \"WorkItemDesignManagementMove\");\n        \n","import { GlTooltipDirective } from '../../../directives/tooltip';\nimport GlButton from '../button/button';\nimport GlButtonGroup from '../button_group/button_group';\nimport GlCollapsibleListbox from '../new_dropdowns/listbox/listbox';\nimport { isOption } from '../new_dropdowns/listbox/utils';\nimport { translate } from '../../../utils/i18n';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n  name: 'GlSorting',\n  components: {\n    GlButton,\n    GlButtonGroup,\n    GlCollapsibleListbox\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective\n  },\n  props: {\n    /**\n     * Text to place in the toggle button.\n     */\n    text: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    /**\n     * Sort options to display in the dropdown\n     */\n    sortOptions: {\n      type: Array,\n      required: false,\n      default: () => [],\n      // eslint-disable-next-line unicorn/no-array-callback-reference\n      validator: sortOptions => sortOptions.every(isOption)\n    },\n    /**\n     * The value of the item currently selected in the dropdown.\n     * Only to be used with the `sortOptions` prop.\n     */\n    sortBy: {\n      type: [String, Number],\n      required: false,\n      default: null\n    },\n    /**\n     * Determines the current sort order icon displayed.\n     */\n    isAscending: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * The text for the tooltip and aria-label of the sort direction toggle\n     * button instead of the defaults for ascending/descending.\n     */\n    sortDirectionToolTip: {\n      type: String,\n      required: false,\n      default: null\n    },\n    /**\n     * Additional class(es) to apply to the root element of the GlCollapsibleListbox.\n     */\n    dropdownClass: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    /**\n     * Additional class(es) to apply to the dropdown toggle.\n     */\n    dropdownToggleClass: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    /**\n     * Additional class(es) to apply to the sort direction toggle button.\n     */\n    sortDirectionToggleClass: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    /**\n     * Render the dropdown toggle button as a block element\n     */\n    block: {\n      type: Boolean,\n      required: false,\n      default: false\n    }\n  },\n  computed: {\n    localSortDirection() {\n      return this.isAscending ? 'sort-lowest' : 'sort-highest';\n    },\n    sortDirectionText() {\n      if (this.sortDirectionToolTip) return this.sortDirectionToolTip;\n      return this.isAscending ? translate('GlSorting.sortAscending', 'Sort direction: ascending') : translate('GlSorting.sortDescending', 'Sort direction: descending');\n    }\n  },\n  methods: {\n    toggleSortDirection() {\n      const newDirection = !this.isAscending;\n\n      /**\n       * Emitted when the sort direction button is clicked.\n       *\n       * The event's payload will be true if the direction has been changed to\n       * ascending, or false if descending.\n       *\n       * @property {boolean} isAscending\n       */\n      this.$emit('sortDirectionChange', newDirection);\n    },\n    onSortByChanged(event) {\n      /**\n       * Emitted when the sort field is changed.\n       *\n       * The event's payload is the value of the selected sort field.\n       *\n       * Only emitted when using the `sortOptions` prop.\n       *\n       * @property {string|number} value\n       */\n      this.$emit('sortByChange', 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('gl-button-group',{staticClass:\"gl-sorting\"},[_c('gl-collapsible-listbox',{class:_vm.dropdownClass,attrs:{\"toggle-text\":_vm.text,\"items\":_vm.sortOptions,\"selected\":_vm.sortBy,\"toggle-class\":_vm.dropdownToggleClass,\"placement\":\"bottom-end\",\"block\":_vm.block},on:{\"select\":_vm.onSortByChanged}}),_vm._v(\" \"),_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],class:['sorting-direction-button', _vm.sortDirectionToggleClass],attrs:{\"title\":_vm.sortDirectionText,\"icon\":_vm.localSortDirection,\"aria-label\":_vm.sortDirectionText},on:{\"click\":_vm.toggleSortDirection}})],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\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"workspacePermissions\"},\"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\",\"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\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createDesign\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":149}};\n    doc.loc.source = {\"body\":\"query workspacePermissions($fullPath: ID!) {\\n  workspace: project(fullPath: $fullPath) {\\n    id\\n    userPermissions {\\n      createDesign\\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[\"workspacePermissions\"] = oneQuery(doc, \"workspacePermissions\");\n        \n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"deleteWorkItemNote\"},\"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\":\"note\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":120}};\n    doc.loc.source = {\"body\":\"mutation deleteWorkItemNote($input: DestroyNoteInput!) {\\n  destroyNote(input: $input) {\\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[\"deleteWorkItemNote\"] = oneQuery(doc, \"deleteWorkItemNote\");\n        \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-modal',{attrs:{\"modal-id\":\"create-work-item-cancel-confirmation-modal\",\"visible\":_vm.isVisible,\"scrollable\":false,\"no-close-on-esc\":\"\",\"no-close-on-backdrop\":\"\",\"hide-header\":\"\",\"hide-header-close\":\"\"},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('gl-button',{attrs:{\"type\":\"button\",\"data-testid\":\"create-work-item-continue-editing\"},on:{\"click\":function($event){return _vm.handleCancelConfirmationAction('continueEditing')}}},[_vm._v(_vm._s(_vm.s__('WorkItem|Continue editing')))]),_vm._v(\" \"),_c('gl-button',{attrs:{\"type\":\"button\",\"variant\":\"confirm\",\"data-testid\":\"create-work-item-discard\"},on:{\"click\":function($event){return _vm.handleCancelConfirmationAction('discard')}}},[_vm._v(_vm._s(_vm.s__('WorkItem|Discard changes')))])]},proxy:true}])},[_c('p',{staticClass:\"gl-mb-0 gl-mt-4\"},[_vm._v(_vm._s(_vm.cancelConfirmationText))])])\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_work_item_cancel_confirmation_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!./create_work_item_cancel_confirmation_modal.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlModal } from '@gitlab/ui';\nimport { s__, sprintf } from '~/locale';\n\nexport default {\n  components: {\n    GlButton,\n    GlModal,\n  },\n  props: {\n    isVisible: {\n      type: Boolean,\n      required: true,\n      default: false,\n    },\n    workItemTypeName: {\n      type: String,\n      required: true,\n      default: s__('Work Item|Epic'),\n    },\n  },\n  computed: {\n    cancelConfirmationText() {\n      return sprintf(\n        s__('WorkItem|Are you sure you want to cancel creating this %{workItemType}?'),\n        {\n          workItemType: this.workItemTypeName?.toLocaleLowerCase(),\n        },\n      );\n    },\n  },\n  methods: {\n    handleCancelConfirmationAction(decision) {\n      if (decision === 'continueEditing') {\n        this.$emit('continueEditing');\n      } else {\n        this.$emit('discardDraft');\n      }\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-modal\n    modal-id=\"create-work-item-cancel-confirmation-modal\"\n    :visible=\"isVisible\"\n    :scrollable=\"false\"\n    no-close-on-esc\n    no-close-on-backdrop\n    hide-header\n    hide-header-close\n  >\n    <p class=\"gl-mb-0 gl-mt-4\">{{ cancelConfirmationText }}</p>\n\n    <template #modal-footer>\n      <gl-button\n        type=\"button\"\n        data-testid=\"create-work-item-continue-editing\"\n        @click=\"handleCancelConfirmationAction('continueEditing')\"\n        >{{ s__('WorkItem|Continue editing') }}</gl-button\n      >\n      <gl-button\n        type=\"button\"\n        variant=\"confirm\"\n        data-testid=\"create-work-item-discard\"\n        @click=\"handleCancelConfirmationAction('discard')\"\n        >{{ s__('WorkItem|Discard changes') }}</gl-button\n      >\n    </template>\n  </gl-modal>\n</template>\n","import { render, staticRenderFns } from \"./create_work_item_cancel_confirmation_modal.vue?vue&type=template&id=f368e53c\"\nimport script from \"./create_work_item_cancel_confirmation_modal.vue?vue&type=script&lang=js\"\nexport * from \"./create_work_item_cancel_confirmation_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","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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('work-item-sidebar-dropdown-widget',{attrs:{\"dropdown-label\":_vm.__('Labels'),\"can-update\":_vm.canUpdate,\"created-label-id\":_vm.createdLabelId,\"dropdown-name\":\"label\",\"loading\":_vm.isLoadingLabels,\"list-items\":_vm.labelsList,\"item-value\":_vm.itemValues,\"update-in-progress\":_vm.updateInProgress,\"toggle-dropdown-text\":_vm.dropdownText,\"header-text\":_vm.__('Select labels'),\"reset-button-label\":_vm.__('Clear'),\"show-footer\":\"\",\"multi-select\":\"\",\"clear-search-on-item-select\":\"\",\"data-testid\":\"work-item-labels\"},on:{\"dropdownShown\":_vm.onDropdownShown,\"searchStarted\":_vm.search,\"updateValue\":_vm.updateLabels,\"updateSelected\":_vm.updateLabel},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('span',{staticClass:\"gl-rounded -gl-mt-1 gl-mr-1 gl-inline-block gl-h-3 gl-w-5 gl-align-middle\",class:{ 'gl-border gl-border-white': _vm.isSelected(item.value) },style:({ background: item.color })}),_vm._v(\"\\n    \"+_vm._s(item.text)+\"\\n  \")]}},{key:\"readonly\",fn:function(){return [_c('div',{staticClass:\"gl-mt-1 gl-flex gl-flex-wrap gl-gap-2\"},_vm._l((_vm.localLabels),function(label){return _c('gl-label',{key:label.id,attrs:{\"title\":label.title,\"description\":label.description,\"background-color\":label.color,\"scoped\":_vm.scopedLabel(label),\"show-close-button\":_vm.canUpdate,\"target\":_vm.labelFilterUrl(label)},on:{\"close\":function($event){return _vm.removeLabel(label)}}})}),1)]},proxy:true},{key:\"footer\",fn:function(){return [(_vm.canAdminLabel)?_c('gl-button',{staticClass:\"!gl-justify-start\",attrs:{\"block\":\"\",\"category\":\"tertiary\",\"data-testid\":\"create-label\"},on:{\"click\":function($event){_vm.showLabelForm = true}}},[_vm._v(\"\\n      \"+_vm._s(_vm.createLabelText)+\"\\n    \")]):_vm._e(),_vm._v(\" \"),_c('gl-button',{staticClass:\"!gl-mt-2 !gl-justify-start\",attrs:{\"block\":\"\",\"category\":\"tertiary\",\"href\":_vm.labelsManagePath,\"data-testid\":\"manage-labels\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.manageLabelText)+\"\\n    \")])]},proxy:true},(_vm.showLabelForm)?{key:\"body\",fn:function(){return [_c('gl-disclosure-dropdown',{staticClass:\"work-item-sidebar-dropdown\",attrs:{\"block\":\"\",\"start-opened\":\"\",\"toggle-text\":_vm.dropdownText}},[_c('div',{staticClass:\"gl-border-b gl-mb-4 gl-pb-3 gl-pl-4 gl-pt-2 gl-text-sm gl-font-bold gl-leading-24\"},[_vm._v(\"\\n        \"+_vm._s(_vm.__('Create label'))+\"\\n      \")]),_vm._v(\" \"),_c('dropdown-contents-create-view',{staticClass:\"gl-mb-2\",attrs:{\"attr-workspace-path\":_vm.fullPath,\"full-path\":_vm.fullPath,\"label-create-type\":_vm.workspaceType,\"search-key\":_vm.searchTerm,\"workspace-type\":_vm.workspaceType},on:{\"hideCreateView\":function($event){_vm.showLabelForm = false},\"labelCreated\":_vm.handleLabelCreated}})],1)]},proxy:true}:null],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlButton, GlDisclosureDropdown, GlLabel } from '@gitlab/ui';\nimport fuzzaldrinPlus from 'fuzzaldrin-plus';\nimport { difference, unionBy } from 'lodash';\nimport { WORKSPACE_GROUP, WORKSPACE_PROJECT } from '~/issues/constants';\nimport { __, n__ } from '~/locale';\nimport WorkItemSidebarDropdownWidget from '~/work_items/components/shared/work_item_sidebar_dropdown_widget.vue';\nimport DropdownContentsCreateView from '~/sidebar/components/labels/labels_select_widget/dropdown_contents_create_view.vue';\nimport groupLabelsQuery from '~/sidebar/components/labels/labels_select_widget/graphql/group_labels.query.graphql';\nimport projectLabelsQuery from '~/sidebar/components/labels/labels_select_widget/graphql/project_labels.query.graphql';\nimport { isScopedLabel } from '~/lib/utils/common_utils';\nimport Tracking from '~/tracking';\nimport workItemByIidQuery from '../graphql/work_item_by_iid.query.graphql';\nimport updateWorkItemMutation from '../graphql/update_work_item.mutation.graphql';\nimport updateNewWorkItemMutation from '../graphql/update_new_work_item.mutation.graphql';\nimport { i18n, I18N_WORK_ITEM_ERROR_FETCHING_LABELS, TRACKING_CATEGORY_SHOW } from '../constants';\nimport { isLabelsWidget, newWorkItemId, newWorkItemFullPath } from '../utils';\n\nfunction formatLabelForListbox(label) {\n  return {\n    text: label.title || label.text,\n    value: label.id || label.value,\n    color: label.color,\n  };\n}\n\nexport default {\n  components: {\n    DropdownContentsCreateView,\n    GlButton,\n    GlDisclosureDropdown,\n    GlLabel,\n    WorkItemSidebarDropdownWidget,\n  },\n  mixins: [Tracking.mixin()],\n  inject: ['canAdminLabel', 'issuesListPath', 'labelsManagePath'],\n  props: {\n    fullPath: {\n      type: String,\n      required: true,\n    },\n    isGroup: {\n      type: Boolean,\n      required: true,\n    },\n    workItemId: {\n      type: String,\n      required: true,\n    },\n    workItemIid: {\n      type: String,\n      required: true,\n    },\n    workItemType: {\n      type: String,\n      required: true,\n    },\n    canUpdate: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      searchTerm: '',\n      searchStarted: false,\n      showLabelForm: false,\n      updateInProgress: false,\n      createdLabelId: undefined,\n      removeLabelIds: [],\n      addLabelIds: [],\n      labelsCache: [],\n      labelsToShowAtTopOfTheListbox: [],\n    };\n  },\n  computed: {\n    createFlow() {\n      return this.workItemId === newWorkItemId(this.workItemType);\n    },\n    workItemFullPath() {\n      return this.createFlow\n        ? newWorkItemFullPath(this.fullPath, this.workItemType)\n        : this.fullPath;\n    },\n    tracking() {\n      return {\n        category: TRACKING_CATEGORY_SHOW,\n        label: 'item_label',\n        property: `type_${this.workItemType}`,\n      };\n    },\n    areLabelsSelected() {\n      return this.addLabelIds.length > 0 || this.itemValues.length > 0;\n    },\n    selectedLabelCount() {\n      return this.addLabelIds.length + this.itemValues.length - this.removeLabelIds.length;\n    },\n    dropDownLabelText() {\n      return n__('%d label', '%d labels', this.selectedLabelCount);\n    },\n    dropdownText() {\n      return this.areLabelsSelected ? `${this.dropDownLabelText}` : __('No labels');\n    },\n    isLoadingLabels() {\n      return this.$apollo.queries.searchLabels.loading;\n    },\n    visibleLabels() {\n      if (this.searchTerm) {\n        return fuzzaldrinPlus.filter(this.searchLabels, this.searchTerm, {\n          key: ['title'],\n        });\n      }\n\n      return this.searchLabels;\n    },\n    labelsList() {\n      const visibleLabels = this.visibleLabels?.map(formatLabelForListbox) || [];\n\n      if (this.searchTerm || this.itemValues.length === 0) {\n        return visibleLabels;\n      }\n\n      const selectedLabels = this.labelsToShowAtTopOfTheListbox.map(formatLabelForListbox) || [];\n      const unselectedLabels = visibleLabels.filter(\n        ({ value }) => !this.labelsToShowAtTopOfTheListbox.find((l) => l.id === value),\n      );\n\n      return [\n        { options: selectedLabels, text: __('Selected') },\n        { options: unselectedLabels, text: __('All'), textSrOnly: true },\n      ];\n    },\n    labelsWidget() {\n      return this.workItem?.widgets?.find(isLabelsWidget);\n    },\n    localLabels() {\n      return this.labelsWidget?.labels?.nodes || [];\n    },\n    itemValues() {\n      return this.localLabels.map(({ id }) => id);\n    },\n    allowsScopedLabels() {\n      return this.labelsWidget?.allowsScopedLabels;\n    },\n    createLabelText() {\n      return this.isGroup ? __('Create group label') : __('Create project label');\n    },\n    manageLabelText() {\n      return this.isGroup ? __('Manage group labels') : __('Manage project labels');\n    },\n    workspaceType() {\n      return this.isGroup ? WORKSPACE_GROUP : WORKSPACE_PROJECT;\n    },\n  },\n  watch: {\n    searchTerm(newVal, oldVal) {\n      if (newVal === '' && oldVal !== '') {\n        const selectedIds = [...this.itemValues, ...this.addLabelIds].filter(\n          (x) => !this.removeLabelIds.includes(x),\n        );\n\n        this.labelsToShowAtTopOfTheListbox = this.labelsCache.filter(({ id }) =>\n          selectedIds.includes(id),\n        );\n      }\n    },\n    localLabels(newVal) {\n      this.labelsToShowAtTopOfTheListbox = newVal;\n    },\n  },\n  apollo: {\n    // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n    workItem: {\n      query: workItemByIidQuery,\n      variables() {\n        return {\n          fullPath: this.workItemFullPath,\n          iid: this.workItemIid,\n        };\n      },\n      update(data) {\n        return data.workspace?.workItem || {};\n      },\n      result({ data }) {\n        const labels =\n          data?.workspace?.workItem?.widgets?.find(isLabelsWidget)?.labels?.nodes || [];\n        this.labelsCache = unionBy(this.labelsCache, labels, 'id');\n      },\n      skip() {\n        return !this.workItemIid;\n      },\n      error() {\n        this.$emit('error', i18n.fetchError);\n      },\n    },\n    // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n    searchLabels: {\n      query() {\n        return this.isGroup ? groupLabelsQuery : projectLabelsQuery;\n      },\n      variables() {\n        return {\n          fullPath: this.fullPath,\n          searchTerm: this.searchTerm,\n        };\n      },\n      skip() {\n        return !this.searchStarted;\n      },\n      update(data) {\n        return data.workspace?.labels?.nodes;\n      },\n      result({ data }) {\n        const labels = data?.workspace?.labels?.nodes || [];\n        this.labelsCache = unionBy(this.labelsCache, labels, 'id');\n      },\n      error() {\n        this.$emit('error', I18N_WORK_ITEM_ERROR_FETCHING_LABELS);\n      },\n    },\n  },\n  methods: {\n    onDropdownShown() {\n      this.searchTerm = '';\n      this.searchStarted = true;\n    },\n    search(searchTerm) {\n      this.searchTerm = searchTerm;\n      this.searchStarted = true;\n    },\n    removeLabel({ id }) {\n      this.removeLabelIds.push(id);\n      this.updateLabels();\n    },\n    updateLabel(labels) {\n      this.removeLabelIds = difference(this.itemValues, labels);\n      this.addLabelIds = difference(labels, this.itemValues);\n    },\n    async updateLabels(labels) {\n      this.updateInProgress = true;\n\n      if (labels?.length === 0) {\n        this.removeLabelIds = this.itemValues;\n        this.addLabelIds = [];\n      }\n\n      if (this.createFlow) {\n        const selectedIds = [...this.itemValues, ...this.addLabelIds].filter(\n          (x) => !this.removeLabelIds.includes(x),\n        );\n\n        this.$apollo.mutate({\n          mutation: updateNewWorkItemMutation,\n          variables: {\n            input: {\n              workItemType: this.workItemType,\n              fullPath: this.fullPath,\n              labels: this.labelsCache.filter(({ id }) => selectedIds.includes(id)),\n            },\n          },\n        });\n\n        this.updateInProgress = false;\n        this.addLabelIds = [];\n        this.removeLabelIds = [];\n        return;\n      }\n\n      try {\n        const {\n          data: {\n            workItemUpdate: { errors },\n          },\n        } = await this.$apollo.mutate({\n          mutation: updateWorkItemMutation,\n          variables: {\n            input: {\n              id: this.workItemId,\n              labelsWidget: {\n                addLabelIds: this.addLabelIds,\n                removeLabelIds: this.removeLabelIds,\n              },\n            },\n          },\n        });\n\n        if (errors.length > 0) {\n          throw new Error();\n        }\n\n        this.track('updated_labels');\n        this.$emit('labelsUpdated', [...this.addLabelIds, ...this.removeLabelIds]);\n      } catch {\n        this.$emit('error', i18n.updateError);\n      } finally {\n        this.searchTerm = '';\n        this.addLabelIds = [];\n        this.removeLabelIds = [];\n        this.updateInProgress = false;\n      }\n    },\n    scopedLabel(label) {\n      return this.allowsScopedLabels && isScopedLabel(label);\n    },\n    isSelected(id) {\n      return this.itemValues.includes(id) || this.addLabelIds.includes(id);\n    },\n    labelFilterUrl(label) {\n      return `${this.issuesListPath}?label_name[]=${encodeURIComponent(label.title)}`;\n    },\n    handleLabelCreated(label) {\n      this.showLabelForm = false;\n      this.createdLabelId = label.id;\n      this.addLabelIds.push(label.id);\n    },\n  },\n};\n</script>\n\n<template>\n  <work-item-sidebar-dropdown-widget\n    :dropdown-label=\"__('Labels')\"\n    :can-update=\"canUpdate\"\n    :created-label-id=\"createdLabelId\"\n    dropdown-name=\"label\"\n    :loading=\"isLoadingLabels\"\n    :list-items=\"labelsList\"\n    :item-value=\"itemValues\"\n    :update-in-progress=\"updateInProgress\"\n    :toggle-dropdown-text=\"dropdownText\"\n    :header-text=\"__('Select labels')\"\n    :reset-button-label=\"__('Clear')\"\n    show-footer\n    multi-select\n    clear-search-on-item-select\n    data-testid=\"work-item-labels\"\n    @dropdownShown=\"onDropdownShown\"\n    @searchStarted=\"search\"\n    @updateValue=\"updateLabels\"\n    @updateSelected=\"updateLabel\"\n  >\n    <template #list-item=\"{ item }\">\n      <span\n        :style=\"{ background: item.color }\"\n        :class=\"{ 'gl-border gl-border-white': isSelected(item.value) }\"\n        class=\"gl-rounded -gl-mt-1 gl-mr-1 gl-inline-block gl-h-3 gl-w-5 gl-align-middle\"\n      ></span>\n      {{ item.text }}\n    </template>\n    <template #readonly>\n      <div class=\"gl-mt-1 gl-flex gl-flex-wrap gl-gap-2\">\n        <gl-label\n          v-for=\"label in localLabels\"\n          :key=\"label.id\"\n          :title=\"label.title\"\n          :description=\"label.description\"\n          :background-color=\"label.color\"\n          :scoped=\"scopedLabel(label)\"\n          :show-close-button=\"canUpdate\"\n          :target=\"labelFilterUrl(label)\"\n          @close=\"removeLabel(label)\"\n        />\n      </div>\n    </template>\n    <template #footer>\n      <gl-button\n        v-if=\"canAdminLabel\"\n        class=\"!gl-justify-start\"\n        block\n        category=\"tertiary\"\n        data-testid=\"create-label\"\n        @click=\"showLabelForm = true\"\n      >\n        {{ createLabelText }}\n      </gl-button>\n      <gl-button\n        class=\"!gl-mt-2 !gl-justify-start\"\n        block\n        category=\"tertiary\"\n        :href=\"labelsManagePath\"\n        data-testid=\"manage-labels\"\n      >\n        {{ manageLabelText }}\n      </gl-button>\n    </template>\n    <template v-if=\"showLabelForm\" #body>\n      <gl-disclosure-dropdown\n        class=\"work-item-sidebar-dropdown\"\n        block\n        start-opened\n        :toggle-text=\"dropdownText\"\n      >\n        <div\n          class=\"gl-border-b gl-mb-4 gl-pb-3 gl-pl-4 gl-pt-2 gl-text-sm gl-font-bold gl-leading-24\"\n        >\n          {{ __('Create label') }}\n        </div>\n        <dropdown-contents-create-view\n          class=\"gl-mb-2\"\n          :attr-workspace-path=\"fullPath\"\n          :full-path=\"fullPath\"\n          :label-create-type=\"workspaceType\"\n          :search-key=\"searchTerm\"\n          :workspace-type=\"workspaceType\"\n          @hideCreateView=\"showLabelForm = false\"\n          @labelCreated=\"handleLabelCreated\"\n        />\n      </gl-disclosure-dropdown>\n    </template>\n  </work-item-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!./work_item_labels.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.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_labels.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./work_item_labels.vue?vue&type=template&id=3b2cc8aa\"\nimport script from \"./work_item_labels.vue?vue&type=script&lang=js\"\nexport * from \"./work_item_labels.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\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\":\"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","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\":\"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","(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","import { extend, isVue3 } from '../vue';\nimport { isUndefined, isArray } from '../utils/inspect';\n\n// Mixin to determine if an event listener has been registered\n\n// @vue/component\nconst hasListenerMixin = extend({\n  methods: {\n    hasListener(name) {\n      if (isVue3) {\n        return true;\n      }\n      // Only includes listeners registered via `v-on:name`\n      const $listeners = this.$listeners || {};\n      // Includes `v-on:name` and `this.$on('name')` registered listeners\n      // Note this property is not part of the public Vue API, but it is\n      // the only way to determine if a listener was added via `vm.$on`\n      const $events = this._events || {};\n      // Registered listeners in `this._events` are always an array,\n      // but might be zero length\n      return !isUndefined($listeners[name]) || isArray($events[name]) && $events[name].length > 0;\n    }\n  }\n});\n\nexport { hasListenerMixin };\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignItem\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Design\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignFile\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"imported\"},\"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\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":446}};\n    doc.loc.source = {\"body\":\"#import \\\"./design_note.fragment.graphql\\\"\\n#import \\\"./design_file.fragment.graphql\\\"\\n#import \\\"./diff_refs.fragment.graphql\\\"\\n#import \\\"./discussion_resolved_status.fragment.graphql\\\"\\n\\nfragment DesignItem on Design {\\n  ...DesignFile\\n  fullPath\\n  imported\\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}\\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(\"./design_note.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"./design_file.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"./diff_refs.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"./discussion_resolved_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[\"DesignItem\"] = oneQuery(doc, \"DesignItem\");\n        \n","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    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"addLinkedItems\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemAddLinkedItemsInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemAddLinkedItems\"},\"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\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemLinkedItemsFragment\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":291}};\n    doc.loc.source = {\"body\":\"#import \\\"./work_item.fragment.graphql\\\"\\n#import \\\"./work_item_linked_items.fragment.graphql\\\"\\n\\nmutation addLinkedItems($input: WorkItemAddLinkedItemsInput!) {\\n  workItemAddLinkedItems(input: $input) {\\n    workItem {\\n      ...WorkItem\\n      ...WorkItemLinkedItemsFragment\\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));\ndoc.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[\"addLinkedItems\"] = oneQuery(doc, \"addLinkedItems\");\n        \n","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","import Vue from 'vue';\n\nexport const staticBreadcrumbs = Vue.observable({});\n\nexport const injectVueAppBreadcrumbs = (\n  router,\n  BreadcrumbsComponent,\n  apolloProvider = null,\n  provide = {},\n  // eslint-disable-next-line max-params\n) => {\n  const injectBreadcrumbEl = document.querySelector('#js-injected-page-breadcrumbs');\n\n  if (!injectBreadcrumbEl) {\n    return false;\n  }\n\n  // Hide the last of the static breadcrumbs by nulling its values.\n  // This way, the separator \"/\" stays visible and also the new \"last\" static item isn't displayed in bold font.\n  staticBreadcrumbs.items[staticBreadcrumbs.items.length - 1].text = '';\n  staticBreadcrumbs.items[staticBreadcrumbs.items.length - 1].href = '';\n\n  return new Vue({\n    el: injectBreadcrumbEl,\n    router,\n    apolloProvider,\n    provide,\n    render(createElement) {\n      return createElement(BreadcrumbsComponent, {\n        class: injectBreadcrumbEl.className,\n      });\n    },\n  });\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('span',[_c('work-item-attribute',{staticClass:\"issuable-milestone gl-mr-3\",attrs:{\"anchor-id\":\"issuable-milestone\",\"title\":_vm.milestone.title,\"wrapper-component-class\":\"gl-text-sm !gl-text-subtle\",\"tooltip-text\":_vm.milestoneDate,\"tooltip-placement\":\"top\",\"is-link\":\"\",\"href\":_vm.milestoneLink},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('gl-icon',{attrs:{\"name\":\"milestone\",\"size\":12}})]},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!./issuable_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!./issuable_milestone.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\nimport {\n  getTimeRemainingInWords,\n  isInFuture,\n  isInPast,\n  isToday,\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  name: 'IssuableMilestone',\n  components: {\n    WorkItemAttribute,\n    GlIcon,\n  },\n  props: {\n    milestone: {\n      type: Object,\n      required: true,\n    },\n  },\n  computed: {\n    milestoneDate() {\n      if (this.milestone.dueDate) {\n        const { dueDate, startDate } = this.milestone;\n        const date = localeDateFormat.asDate.format(newDate(dueDate));\n        const remainingTime = this.milestoneRemainingTime(dueDate, startDate);\n\n        return `${date} (${remainingTime})`;\n      }\n\n      return __('Milestone');\n    },\n    milestoneLink() {\n      return this.milestone.webPath || this.milestone.webUrl;\n    },\n  },\n  methods: {\n    milestoneRemainingTime(dueDate, startDate) {\n      const due = newDate(dueDate);\n      const start = newDate(startDate);\n\n      if (dueDate && isInPast(due)) {\n        return __('past due');\n      }\n      if (dueDate && isToday(due)) {\n        return __('today');\n      }\n      if (startDate && isInFuture(start)) {\n        return __('upcoming');\n      }\n      if (dueDate) {\n        return getTimeRemainingInWords(due);\n      }\n\n      return '';\n    },\n  },\n};\n</script>\n\n<template>\n  <span>\n    <work-item-attribute\n      anchor-id=\"issuable-milestone\"\n      :title=\"milestone.title\"\n      wrapper-component-class=\"gl-text-sm !gl-text-subtle\"\n      :tooltip-text=\"milestoneDate\"\n      tooltip-placement=\"top\"\n      class=\"issuable-milestone gl-mr-3\"\n      is-link\n      :href=\"milestoneLink\"\n    >\n      <template #icon>\n        <gl-icon name=\"milestone\" :size=\"12\" />\n      </template>\n    </work-item-attribute>\n  </span>\n</template>\n","import { render, staticRenderFns } from \"./issuable_milestone.vue?vue&type=template&id=161e0062\"\nimport script from \"./issuable_milestone.vue?vue&type=script&lang=js\"\nexport * from \"./issuable_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","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\":\"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","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","import { extend } from '../../vue';\nimport { NAME_TR } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\n\n// --- Constants ---\n\nconst LIGHT = 'light';\nconst DARK = 'dark';\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n  variant: makeProp(PROP_TYPE_STRING)\n}, NAME_TR);\n\n// --- Main component ---\n\n// TODO:\n//   In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n//   to the child elements, so this can be converted to a functional component\n// @vue/component\nconst BTr = /*#__PURE__*/extend({\n  name: NAME_TR,\n  mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n  provide() {\n    return {\n      getBvTableTr: () => this\n    };\n  },\n  inject: {\n    getBvTableRowGroup: {\n      default: /* istanbul ignore next */() => () => ({})\n    }\n  },\n  inheritAttrs: false,\n  props,\n  computed: {\n    bvTableRowGroup() {\n      return this.getBvTableRowGroup();\n    },\n    // Sniffed by `<b-td>` / `<b-th>`\n    inTbody() {\n      return this.bvTableRowGroup.isTbody;\n    },\n    // Sniffed by `<b-td>` / `<b-th>`\n    inThead() {\n      return this.bvTableRowGroup.isThead;\n    },\n    // Sniffed by `<b-td>` / `<b-th>`\n    inTfoot() {\n      return this.bvTableRowGroup.isTfoot;\n    },\n    // Sniffed by `<b-td>` / `<b-th>`\n    isDark() {\n      return this.bvTableRowGroup.isDark;\n    },\n    // Sniffed by `<b-td>` / `<b-th>`\n    isStacked() {\n      return this.bvTableRowGroup.isStacked;\n    },\n    // Sniffed by `<b-td>` / `<b-th>`\n    isResponsive() {\n      return this.bvTableRowGroup.isResponsive;\n    },\n    // Sniffed by `<b-td>` / `<b-th>`\n    // Sticky headers are only supported in thead\n    isStickyHeader() {\n      return this.bvTableRowGroup.isStickyHeader;\n    },\n    // Sniffed by <b-tr> / `<b-td>` / `<b-th>`\n    // Needed to handle header background classes, due to lack of\n    // background color inheritance with Bootstrap v4 table CSS\n    hasStickyHeader() {\n      return !this.isStacked && this.bvTableRowGroup.hasStickyHeader;\n    },\n    // Sniffed by `<b-td>` / `<b-th>`\n    tableVariant() {\n      return this.bvTableRowGroup.tableVariant;\n    },\n    // Sniffed by `<b-td>` / `<b-th>`\n    headVariant() {\n      return this.inThead ? this.bvTableRowGroup.headVariant : null;\n    },\n    // Sniffed by `<b-td>` / `<b-th>`\n    footVariant() {\n      return this.inTfoot ? this.bvTableRowGroup.footVariant : null;\n    },\n    isRowDark() {\n      return this.headVariant === LIGHT || this.footVariant === LIGHT ? /* istanbul ignore next */false : this.headVariant === DARK || this.footVariant === DARK ? /* istanbul ignore next */true : this.isDark;\n    },\n    trClasses() {\n      const {\n        variant\n      } = this;\n      return [variant ? `${this.isRowDark ? 'bg' : 'table'}-${variant}` : null];\n    },\n    trAttrs() {\n      return {\n        role: 'row',\n        ...this.bvAttrs\n      };\n    }\n  },\n  render(h) {\n    return h('tr', {\n      class: this.trClasses,\n      attrs: this.trAttrs,\n      // Pass native listeners to child\n      on: this.bvListeners\n    }, this.normalizeSlot());\n  }\n});\n\nexport { BTr, props };\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","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\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemParticipants\"},\"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\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetParticipants\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"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\":406}};\n    doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n\\nquery workItemParticipants($fullPath: ID!, $iid: String!) {\\n  workspace: namespace(fullPath: $fullPath) {\\n    id\\n    workItem(iid: $iid) {\\n      id\\n      widgets {\\n        ... on WorkItemWidgetParticipants {\\n          type\\n          participants {\\n            nodes {\\n              ...User\\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/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[\"workItemParticipants\"] = oneQuery(doc, \"workItemParticipants\");\n        \n","\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\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemDevelopmentFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetDevelopment\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"willAutoCloseByMergeRequest\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"featureFlags\"},\"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\":\"active\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reference\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"relatedBranches\"},\"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\":\"comparePath\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"relatedMergeRequests\"},\"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\":\"MergeRequestFragment\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"closingMergeRequests\"},\"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\":\"fromMrDescription\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":558}};\n    doc.loc.source = {\"body\":\"#import \\\"~/work_items/graphql/merge_request.fragment.graphql\\\"\\n\\nfragment WorkItemDevelopmentFragment on WorkItemWidgetDevelopment {\\n  type\\n  willAutoCloseByMergeRequest\\n  featureFlags {\\n    nodes {\\n      id\\n      active\\n      name\\n      path\\n      reference\\n    }\\n  }\\n  relatedBranches {\\n    nodes {\\n      name\\n      comparePath\\n    }\\n  }\\n  relatedMergeRequests {\\n    nodes {\\n      ...MergeRequestFragment\\n    }\\n  }\\n  closingMergeRequests {\\n    nodes {\\n      id\\n      fromMrDescription\\n      mergeRequest {\\n        ...MergeRequestFragment\\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(\"~/work_items/graphql/merge_request.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[\"WorkItemDevelopmentFragment\"] = oneQuery(doc, \"WorkItemDevelopmentFragment\");\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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemDiscussionNote\"},\"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\":\"bodyHtml\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"system\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"internal\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"systemNoteIconName\"},\"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\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"adminNote\"},\"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\":\"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\":\"WorkItemNote\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":406}};\n    doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n#import \\\"ee_else_ce/work_items/graphql/notes/work_item_note.fragment.graphql\\\"\\n\\nfragment WorkItemDiscussionNote on Note {\\n  id\\n  bodyHtml\\n  system\\n  internal\\n  systemNoteIconName\\n  createdAt\\n  author {\\n    ...User\\n  }\\n  userPermissions {\\n    adminNote\\n  }\\n  discussion {\\n    id\\n    notes {\\n      nodes {\\n        ...WorkItemNote\\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(\"ee_else_ce/work_items/graphql/notes/work_item_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[\"WorkItemDiscussionNote\"] = oneQuery(doc, \"WorkItemDiscussionNote\");\n        \n","import searchProjectsQuery from './queries/search_projects.query.graphql';\n\nexport const hasNewIssueDropdown = () => ({\n  inject: ['fullPath'],\n  computed: {\n    newIssueDropdownQueryVariables() {\n      return {\n        fullPath: this.fullPath,\n      };\n    },\n  },\n  methods: {\n    extractProjects(data) {\n      return data?.group?.projects?.nodes;\n    },\n  },\n  searchProjectsQuery,\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","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","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","import uniqueId from 'lodash/uniqueId';\nimport { offset, autoPlacement, shift, size, autoUpdate, computePosition } from '@floating-ui/dom';\nimport { buttonCategoryOptions, dropdownVariantOptions, buttonSizeOptions, dropdownPlacements, dropdownAllowedAutoPlacements } from '../../../../utils/constants';\nimport { POSITION_ABSOLUTE, POSITION_FIXED, GL_DROPDOWN_CONTENTS_CLASS, GL_DROPDOWN_BEFORE_CLOSE, GL_DROPDOWN_SHOWN, GL_DROPDOWN_HIDDEN, ENTER, SPACE, ARROW_DOWN, GL_DROPDOWN_FOCUS_CONTENT } from '../constants';\nimport { logWarning, isElementFocusable, isElementTabbable } from '../../../../utils/utils';\nimport { OutsideDirective } from '../../../../directives/outside/outside';\nimport GlButton from '../../button/button';\nimport GlIcon from '../../icon/icon';\nimport { DEFAULT_OFFSET, FIXED_WIDTH_CLASS } from './constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst BASE_DROPDOWN_CLASS = 'gl-new-dropdown';\nvar script = {\n  name: 'BaseDropdown',\n  BASE_DROPDOWN_CLASS,\n  components: {\n    GlButton,\n    GlIcon\n  },\n  directives: {\n    Outside: OutsideDirective\n  },\n  props: {\n    toggleText: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    textSrOnly: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    block: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    category: {\n      type: String,\n      required: false,\n      default: buttonCategoryOptions.primary,\n      validator: value => Object.keys(buttonCategoryOptions).includes(value)\n    },\n    variant: {\n      type: String,\n      required: false,\n      default: dropdownVariantOptions.default,\n      validator: value => Object.keys(dropdownVariantOptions).includes(value)\n    },\n    size: {\n      type: String,\n      required: false,\n      default: 'medium',\n      validator: value => Object.keys(buttonSizeOptions).includes(value)\n    },\n    icon: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    disabled: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    loading: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    toggleClass: {\n      type: [String, Array, Object],\n      required: false,\n      default: null\n    },\n    noCaret: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    placement: {\n      type: String,\n      required: false,\n      default: 'bottom-start',\n      validator: value => {\n        if (['left', 'center', 'right'].includes(value)) {\n          logWarning(`GlDisclosureDropdown/GlCollapsibleListbox: \"${value}\" placement is deprecated.\n            Use ${dropdownPlacements[value]} instead.`);\n        }\n        return Object.keys(dropdownPlacements).includes(value);\n      }\n    },\n    // ARIA props\n    ariaHaspopup: {\n      type: [String, Boolean],\n      required: false,\n      default: false,\n      validator: value => {\n        return ['menu', 'listbox', 'tree', 'grid', 'dialog', true, false].includes(value);\n      }\n    },\n    /**\n     * Id that will be referenced by `aria-labelledby` attribute of the dropdown content`\n     */\n    toggleId: {\n      type: String,\n      required: true\n    },\n    /**\n     * The `aria-labelledby` attribute value for the  toggle `button`\n     */\n    ariaLabelledby: {\n      type: String,\n      required: false,\n      default: null\n    },\n    /**\n     * Custom value to be passed to the offset middleware.\n     * https://floating-ui.com/docs/offset\n     */\n    offset: {\n      type: [Number, Object],\n      required: false,\n      default: () => ({\n        mainAxis: DEFAULT_OFFSET\n      })\n    },\n    fluidWidth: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Strategy to be applied by computePosition. If this is set to fixed, the dropdown's position\n     * needs to be set to fixed in CSS as well.\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  data() {\n    return {\n      openedYet: false,\n      visible: false,\n      baseDropdownId: uniqueId('base-dropdown-')\n    };\n  },\n  computed: {\n    hasNoVisibleToggleText() {\n      var _this$toggleText;\n      return !((_this$toggleText = this.toggleText) !== null && _this$toggleText !== void 0 && _this$toggleText.length) || this.textSrOnly;\n    },\n    isIconOnly() {\n      return Boolean(this.icon && this.hasNoVisibleToggleText);\n    },\n    isEllipsisButton() {\n      return this.isIconOnly && this.icon === 'ellipsis_h';\n    },\n    isCaretOnly() {\n      return !this.noCaret && !this.icon && this.hasNoVisibleToggleText;\n    },\n    ariaAttributes() {\n      return {\n        'aria-haspopup': this.ariaHaspopup,\n        'aria-expanded': String(this.visible),\n        'aria-controls': this.baseDropdownId,\n        'aria-labelledby': this.toggleLabelledBy\n      };\n    },\n    toggleButtonClasses() {\n      return [this.toggleClass, {\n        'gl-new-dropdown-toggle': true,\n        'button-ellipsis-horizontal': this.isEllipsisButton,\n        'gl-new-dropdown-icon-only btn-icon': this.isIconOnly && !this.isEllipsisButton,\n        'gl-new-dropdown-toggle-no-caret': this.noCaret,\n        'gl-new-dropdown-caret-only btn-icon': this.isCaretOnly\n      }];\n    },\n    toggleButtonTextClasses() {\n      return this.block ? 'gl-w-full' : '';\n    },\n    toggleLabelledBy() {\n      return this.ariaLabelledby ? `${this.ariaLabelledby} ${this.toggleId}` : this.toggleId;\n    },\n    isDefaultToggle() {\n      return !this.$scopedSlots.toggle;\n    },\n    toggleOptions() {\n      if (this.isDefaultToggle) {\n        return {\n          is: GlButton,\n          icon: this.icon,\n          block: this.block,\n          buttonTextClasses: this.toggleButtonTextClasses,\n          category: this.category,\n          variant: this.variant,\n          size: this.size,\n          disabled: this.disabled,\n          loading: this.loading,\n          class: this.toggleButtonClasses,\n          ...this.ariaAttributes,\n          listeners: {\n            keydown: event => this.onKeydown(event),\n            click: event => this.toggle(event)\n          }\n        };\n      }\n      return {\n        is: 'div',\n        class: 'gl-new-dropdown-custom-toggle',\n        listeners: {\n          keydown: event => this.onKeydown(event),\n          click: event => this.toggle(event)\n        }\n      };\n    },\n    toggleListeners() {\n      return this.toggleOptions.listeners;\n    },\n    toggleAttributes() {\n      const {\n        listeners,\n        is,\n        ...attributes\n      } = this.toggleOptions;\n      return attributes;\n    },\n    toggleComponent() {\n      return this.toggleOptions.is;\n    },\n    toggleElement() {\n      var _this$$refs$toggle;\n      return this.$refs.toggle.$el || ((_this$$refs$toggle = this.$refs.toggle) === null || _this$$refs$toggle === void 0 ? void 0 : _this$$refs$toggle.firstElementChild);\n    },\n    panelClasses() {\n      return {\n        '!gl-block': this.visible,\n        [FIXED_WIDTH_CLASS]: !this.fluidWidth,\n        'gl-fixed': this.openedYet && this.isFixed,\n        'gl-absolute': this.openedYet && !this.isFixed\n      };\n    },\n    isFixed() {\n      return this.positioningStrategy === POSITION_FIXED;\n    },\n    floatingUIConfig() {\n      const placement = dropdownPlacements[this.placement];\n      const [, alignment] = placement.split('-');\n      return {\n        placement,\n        strategy: this.positioningStrategy,\n        middleware: [offset(this.offset), autoPlacement({\n          alignment,\n          allowedPlacements: dropdownAllowedAutoPlacements[this.placement]\n        }), shift(), size({\n          apply: _ref => {\n            var _this$nonScrollableCo;\n            let {\n              availableHeight,\n              elements\n            } = _ref;\n            const contentsEl = elements.floating.querySelector(`.${GL_DROPDOWN_CONTENTS_CLASS}`);\n            if (!contentsEl) {\n              return;\n            }\n            const contentsAvailableHeight = availableHeight - ((_this$nonScrollableCo = this.nonScrollableContentHeight) !== null && _this$nonScrollableCo !== void 0 ? _this$nonScrollableCo : 0) - DEFAULT_OFFSET;\n            Object.assign(contentsEl.style, {\n              maxHeight: `${Math.max(contentsAvailableHeight, 0)}px`\n            });\n          }\n        })]\n      };\n    }\n  },\n  watch: {\n    ariaAttributes: {\n      deep: true,\n      handler(ariaAttributes) {\n        if (this.$scopedSlots.toggle) {\n          Object.keys(ariaAttributes).forEach(key => {\n            this.toggleElement.setAttribute(key, ariaAttributes[key]);\n          });\n        }\n      }\n    }\n  },\n  mounted() {\n    this.checkToggleFocusable();\n  },\n  beforeDestroy() {\n    this.stopFloating();\n  },\n  methods: {\n    checkToggleFocusable() {\n      if (!isElementFocusable(this.toggleElement) && !isElementTabbable(this.toggleElement)) {\n        logWarning(`GlDisclosureDropdown/GlCollapsibleListbox: Toggle is missing a 'tabindex' and cannot be focused.\n          Use 'a' or 'button' element instead or make sure to add 'role=\"button\"' along with 'tabindex' otherwise.`, this.$el);\n      }\n    },\n    async startFloating() {\n      this.calculateNonScrollableAreaHeight();\n      this.observer = new MutationObserver(this.calculateNonScrollableAreaHeight);\n      this.observer.observe(this.$refs.content, {\n        attributes: false,\n        childList: true,\n        subtree: true\n      });\n      this.stopAutoUpdate = autoUpdate(this.toggleElement, this.$refs.content, async () => {\n        const {\n          x,\n          y\n        } = await computePosition(this.toggleElement, this.$refs.content, this.floatingUIConfig);\n\n        /**\n         * Due to the asynchronous nature of computePosition, it's technically possible for the\n         * component to have been destroyed by the time the promise resolves. In such case, we exit\n         * early to prevent a TypeError.\n         */\n        if (!this.$refs.content) return;\n        Object.assign(this.$refs.content.style, {\n          left: `${x}px`,\n          top: `${y}px`\n        });\n      });\n    },\n    stopFloating() {\n      var _this$observer, _this$stopAutoUpdate;\n      (_this$observer = this.observer) === null || _this$observer === void 0 ? void 0 : _this$observer.disconnect();\n      (_this$stopAutoUpdate = this.stopAutoUpdate) === null || _this$stopAutoUpdate === void 0 ? void 0 : _this$stopAutoUpdate.call(this);\n    },\n    async toggle(event) {\n      if (event && this.visible) {\n        let prevented = false;\n        this.$emit(GL_DROPDOWN_BEFORE_CLOSE, {\n          originalEvent: event,\n          preventDefault() {\n            prevented = true;\n          }\n        });\n        if (prevented) return false;\n      }\n      this.visible = !this.visible;\n      if (this.visible) {\n        // The dropdown needs to be actually visible before we compute its position with Floating UI.\n        await this.$nextTick();\n        this.openedYet = true;\n        /**\n         * We wait until the dropdown's position has been computed before emitting the `shown` event.\n         * This ensures that, if the parent component attempts to focus an inner element, the dropdown\n         * is already properly placed in the page. Otherwise, the page would scroll back to the top.\n         */\n        this.startFloating();\n        this.$emit(GL_DROPDOWN_SHOWN);\n      } else {\n        this.stopFloating();\n        this.$emit(GL_DROPDOWN_HIDDEN);\n      }\n\n      // this is to check whether `toggle` was prevented or not\n      return true;\n    },\n    open() {\n      if (this.visible) {\n        return;\n      }\n      this.toggle();\n    },\n    close(event) {\n      if (!this.visible) {\n        return;\n      }\n      this.toggle(event);\n    },\n    /**\n     * Closes the dropdown and returns the focus to the toggle unless it has has moved outside\n     * of the dropdown, meaning that the consumer needed to put some other element in focus.\n     *\n     * @param {KeyboardEvent?} event The keyboard event that caused the dropdown to close.\n     */\n    async closeAndFocus(event) {\n      if (!this.visible) {\n        return;\n      }\n      const hadFocusWithin = this.$el.contains(document.activeElement);\n      const hasToggled = await this.toggle(event);\n      if (!hadFocusWithin) {\n        return;\n      }\n      if (hasToggled) {\n        this.focusToggle();\n      }\n    },\n    focusToggle() {\n      this.toggleElement.focus();\n    },\n    onKeydown(event) {\n      const {\n        code,\n        target: {\n          tagName\n        }\n      } = event;\n      let toggleOnEnter = true;\n      let toggleOnSpace = true;\n      if (tagName === 'BUTTON') {\n        toggleOnEnter = false;\n        toggleOnSpace = false;\n      } else if (tagName === 'A') {\n        toggleOnEnter = false;\n      }\n      if (code === ENTER && toggleOnEnter || code === SPACE && toggleOnSpace) {\n        this.toggle(event);\n      }\n      if (code === ARROW_DOWN) {\n        this.$emit(GL_DROPDOWN_FOCUS_CONTENT, event);\n      }\n    },\n    calculateNonScrollableAreaHeight() {\n      var _this$$refs$content;\n      const scrollableArea = (_this$$refs$content = this.$refs.content) === null || _this$$refs$content === void 0 ? void 0 : _this$$refs$content.querySelector(`.${GL_DROPDOWN_CONTENTS_CLASS}`);\n      if (!scrollableArea) return;\n      const floatingElementBoundingBox = this.$refs.content.getBoundingClientRect();\n      const scrollableAreaBoundingBox = scrollableArea.getBoundingClientRect();\n      this.nonScrollableContentHeight = floatingElementBoundingBox.height - scrollableAreaBoundingBox.height;\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',{directives:[{name:\"outside\",rawName:\"v-outside.click.focusin\",value:(_vm.close),expression:\"close\",modifiers:{\"click\":true,\"focusin\":true}}],class:[_vm.$options.BASE_DROPDOWN_CLASS, { '!gl-block': _vm.block }]},[_c(_vm.toggleComponent,_vm._g(_vm._b({ref:\"toggle\",tag:\"component\",attrs:{\"id\":_vm.toggleId,\"data-testid\":\"base-dropdown-toggle\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.close.apply(null, arguments)}}},'component',_vm.toggleAttributes,false),_vm.toggleListeners),[_vm._t(\"toggle\",function(){return [_c('span',{staticClass:\"gl-new-dropdown-button-text\",class:{ 'gl-sr-only': _vm.textSrOnly }},[_vm._v(\"\\n        \"+_vm._s(_vm.toggleText)+\"\\n      \")]),_vm._v(\" \"),(!_vm.noCaret)?_c('gl-icon',{staticClass:\"gl-button-icon gl-new-dropdown-chevron\",attrs:{\"name\":\"chevron-down\"}}):_vm._e()]})],2),_vm._v(\" \"),_c('div',{ref:\"content\",staticClass:\"gl-new-dropdown-panel\",class:_vm.panelClasses,attrs:{\"id\":_vm.baseDropdownId,\"data-testid\":\"base-dropdown-menu\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.closeAndFocus.apply(null, arguments)}}},[_c('div',{staticClass:\"gl-new-dropdown-inner\"},[_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__;\nexport { BASE_DROPDOWN_CLASS };\n","const FIXED_WIDTH_CLASS = '!gl-w-31';\nconst DEFAULT_OFFSET = 4;\n\nexport { DEFAULT_OFFSET, FIXED_WIDTH_CLASS };\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","import $ from 'jquery';\n\nexport const canScroll = () => $(document).height() > $(window).height();\n\n/**\n * Checks if the entire page is scrolled down all the way to the bottom\n *  @returns {Boolean}\n */\nexport const isScrolledToBottom = () => {\n  // Use clientHeight to account for any horizontal scrollbar.\n  const { scrollHeight, scrollTop, clientHeight } = document.documentElement;\n\n  // scrollTop can be a float, so round up to next integer.\n  return Math.ceil(scrollTop + clientHeight) >= scrollHeight;\n};\n\n/**\n * Checks if page is scrolled to the top\n * @returns {Boolean}\n */\nexport const isScrolledToTop = () => $(document).scrollTop() === 0;\n\nexport const scrollDown = () => {\n  const $document = $(document);\n  $document.scrollTop($document.height());\n};\n\nexport const scrollUp = () => {\n  $(document).scrollTop(0);\n};\n","import { __ } from '~/locale';\n\nexport const RESOURCE_TYPE_ISSUE = 'issue';\nexport const RESOURCE_TYPE_MERGE_REQUEST = 'merge-request';\nexport const RESOURCE_TYPE_MILESTONE = 'milestone';\n\nexport const RESOURCE_TYPES = [\n  RESOURCE_TYPE_ISSUE,\n  RESOURCE_TYPE_MERGE_REQUEST,\n  RESOURCE_TYPE_MILESTONE,\n];\n\nexport const RESOURCE_OPTIONS = {\n  [RESOURCE_TYPE_ISSUE]: {\n    path: 'issues/new',\n    label: __('issue'),\n  },\n  [RESOURCE_TYPE_MERGE_REQUEST]: {\n    path: 'merge_requests/new',\n    label: __('merge request'),\n  },\n  [RESOURCE_TYPE_MILESTONE]: {\n    path: 'milestones/new',\n    label: __('milestone'),\n  },\n};\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","var baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\nfunction uniqWith(array, comparator) {\n  comparator = typeof comparator == 'function' ? comparator : undefined;\n  return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n}\n\nmodule.exports = uniqWith;\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\":\"getWorkItems\"},\"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\":\"sort\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemSort\"}},\"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\":\"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\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"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\":\"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\":\"not\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NegatedWorkItemFilterInput\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UnionedWorkItemFilterInput\"}},\"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\":\"beforeCursor\"}},\"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\":\"isGroup\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":true},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"excludeProjects\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"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\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItems\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"excludeProjects\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"excludeProjects\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeDescendants\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"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\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"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\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"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\":\"after\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"afterCursor\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"before\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"beforeCursor\"}}},{\"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\"}}}],\"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\":\"nodes\"},\"arguments\":[],\"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\":\"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\":\"closedAt\"},\"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\":\"iid\"},\"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\":\"reference\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"full\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"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\":\"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\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgets\"},\"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\":\"project\"},\"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\":\"isGroup\"}}}]}],\"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\":\"workItems\"},\"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\":\"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\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"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\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"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\":\"after\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"afterCursor\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"before\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"beforeCursor\"}}},{\"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\"}}}],\"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\":\"nodes\"},\"arguments\":[],\"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\":\"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\":\"closedAt\"},\"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\":\"iid\"},\"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\":\"reference\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"full\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"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\":\"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\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgets\"},\"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\":3266}};\n    doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/page_info.fragment.graphql\\\"\\n#import \\\"ee_else_ce/work_items/graphql/list/work_item_widgets.fragment.graphql\\\"\\n\\nquery getWorkItems(\\n  $fullPath: ID!\\n  $search: String\\n  $sort: WorkItemSort\\n  $state: IssuableState\\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  $types: [IssueType!]\\n  $in: [IssuableSearchableField!]\\n  $not: NegatedWorkItemFilterInput\\n  $or: UnionedWorkItemFilterInput\\n  $afterCursor: String\\n  $beforeCursor: String\\n  $firstPageSize: Int\\n  $lastPageSize: Int\\n  $isGroup: Boolean = true\\n  $excludeProjects: Boolean\\n) {\\n  group(fullPath: $fullPath) @include(if: $isGroup) {\\n    id\\n    name\\n    workItems(\\n      excludeProjects: $excludeProjects\\n      includeDescendants: true\\n      search: $search\\n      sort: $sort\\n      state: $state\\n      assigneeUsernames: $assigneeUsernames\\n      assigneeWildcardId: $assigneeWildcardId\\n      authorUsername: $authorUsername\\n      confidential: $confidential\\n      labelName: $labelName\\n      milestoneTitle: $milestoneTitle\\n      milestoneWildcardId: $milestoneWildcardId\\n      myReactionEmoji: $myReactionEmoji\\n      types: $types\\n      in: $in\\n      not: $not\\n      or: $or\\n      after: $afterCursor\\n      before: $beforeCursor\\n      first: $firstPageSize\\n      last: $lastPageSize\\n    ) {\\n      pageInfo {\\n        ...PageInfo\\n      }\\n      nodes {\\n        id\\n        author {\\n          id\\n          avatarUrl\\n          name\\n          username\\n          webUrl\\n          webPath\\n        }\\n        closedAt\\n        confidential\\n        createdAt\\n        iid\\n        namespace {\\n          id\\n          fullPath\\n        }\\n        reference(full: true)\\n        state\\n        title\\n        updatedAt\\n        webUrl\\n        widgets {\\n          type\\n          ...WorkItemWidgets\\n        }\\n        workItemType {\\n          id\\n          name\\n        }\\n      }\\n    }\\n  }\\n  project(fullPath: $fullPath) @skip(if: $isGroup) {\\n    id\\n    name\\n    workItems(\\n      search: $search\\n      sort: $sort\\n      state: $state\\n      assigneeUsernames: $assigneeUsernames\\n      assigneeWildcardId: $assigneeWildcardId\\n      authorUsername: $authorUsername\\n      confidential: $confidential\\n      labelName: $labelName\\n      milestoneTitle: $milestoneTitle\\n      milestoneWildcardId: $milestoneWildcardId\\n      myReactionEmoji: $myReactionEmoji\\n      types: $types\\n      in: $in\\n      not: $not\\n      or: $or\\n      after: $afterCursor\\n      before: $beforeCursor\\n      first: $firstPageSize\\n      last: $lastPageSize\\n    ) {\\n      pageInfo {\\n        ...PageInfo\\n      }\\n      nodes {\\n        id\\n        author {\\n          id\\n          avatarUrl\\n          name\\n          username\\n          webUrl\\n          webPath\\n        }\\n        closedAt\\n        confidential\\n        createdAt\\n        iid\\n        namespace {\\n          id\\n          fullPath\\n        }\\n        reference(full: true)\\n        state\\n        title\\n        updatedAt\\n        webUrl\\n        widgets {\\n          type\\n          ...WorkItemWidgets\\n        }\\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  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/list/work_item_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[\"getWorkItems\"] = oneQuery(doc, \"getWorkItems\");\n        \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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemSubscribe\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemSubscribeInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemSubscribe\"},\"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\":\"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\":\"WorkItemWidgetNotifications\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscribed\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":261}};\n    doc.loc.source = {\"body\":\"mutation workItemSubscribe($input: WorkItemSubscribeInput!) {\\n  workItemSubscribe(input: $input) {\\n    errors\\n    workItem {\\n      id\\n      widgets {\\n        ... on WorkItemWidgetNotifications {\\n          type\\n          subscribed\\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[\"workItemSubscribe\"] = oneQuery(doc, \"workItemSubscribe\");\n        \n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ContactFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CustomerRelationsContact\"}},\"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\":\"active\"},\"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\":193}};\n    doc.loc.source = {\"body\":\"fragment ContactFragment on CustomerRelationsContact {\\n  id\\n  firstName\\n  lastName\\n  email\\n  phone\\n  description\\n  active\\n  organization {\\n    id\\n    name\\n    description\\n    defaultRate\\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[\"ContactFragment\"] = oneQuery(doc, \"ContactFragment\");\n        \n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"uploadWorkItemDesign\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"files\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Upload\"}}}}},\"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\":\"designManagementUpload\"},\"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\":\"files\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"files\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"designs\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"DesignItem\"},\"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\":[]}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"skippedDesigns\"},\"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\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":455}};\n    doc.loc.source = {\"body\":\"#import \\\"./fragments/design.fragment.graphql\\\"\\n#import \\\"./fragments/version.fragment.graphql\\\"\\n\\nmutation uploadWorkItemDesign($files: [Upload!]!, $projectPath: ID!, $iid: ID!) {\\n  designManagementUpload(input: { projectPath: $projectPath, iid: $iid, files: $files }) {\\n    designs {\\n      ...DesignItem\\n      versions {\\n        nodes {\\n          ...VersionListItem\\n        }\\n      }\\n    }\\n    skippedDesigns {\\n      id\\n      filename\\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.fragment.graphql\").definitions));\ndoc.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[\"uploadWorkItemDesign\"] = oneQuery(doc, \"uploadWorkItemDesign\");\n        \n","import { extend } from '../../../vue';\nimport { PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_TABLE_CAPTION } from '../../../constants/slots';\nimport { htmlOrText } from '../../../utils/html';\nimport { makeProp } from '../../../utils/props';\n\n// --- Props ---\n\nconst props = {\n  caption: makeProp(PROP_TYPE_STRING),\n  captionHtml: makeProp(PROP_TYPE_STRING)\n  // `caption-top` is part of table-render mixin (styling)\n  // captionTop: makeProp(PROP_TYPE_BOOLEAN, false)\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst captionMixin = extend({\n  props,\n  computed: {\n    captionId() {\n      return this.isStacked ? this.safeId('_caption_') : null;\n    }\n  },\n  methods: {\n    renderCaption() {\n      const {\n        caption,\n        captionHtml\n      } = this;\n      const h = this.$createElement;\n      let $caption = h();\n      const hasCaptionSlot = this.hasNormalizedSlot(SLOT_NAME_TABLE_CAPTION);\n      if (hasCaptionSlot || caption || captionHtml) {\n        $caption = h('caption', {\n          attrs: {\n            id: this.captionId\n          },\n          domProps: hasCaptionSlot ? {} : htmlOrText(captionHtml, caption),\n          key: 'caption',\n          ref: 'caption'\n        }, this.normalizeSlot(SLOT_NAME_TABLE_CAPTION));\n      }\n      return $caption;\n    }\n  }\n});\n\nexport { captionMixin, props };\n","import { GlTooltipDirective } from '../../../directives/tooltip';\nimport GlClearIconButton from '../../shared_components/clear_icon_button/clear_icon_button';\nimport GlButton from '../button/button';\nimport GlDisclosureDropdown from '../new_dropdowns/disclosure/disclosure_dropdown';\nimport GlDisclosureDropdownItem from '../new_dropdowns/disclosure/disclosure_dropdown_item';\nimport GlFormInput from '../form/form_input/form_input';\nimport GlFormInputGroup from '../form/form_input_group/form_input_group';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n  name: 'GlSearchboxByClick',\n  components: {\n    GlClearIconButton,\n    GlButton,\n    GlFormInput,\n    GlDisclosureDropdown,\n    GlDisclosureDropdownItem,\n    GlFormInputGroup\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective\n  },\n  props: {\n    /**\n     * If provided, used as value of search input\n     */\n    value: {\n      required: false,\n      default: '',\n      // SearchBoxByClick could serve as a container for complex fields (see GlFilteredSearch)\n      // so we should not force any specific type for value here\n      validator: () => true\n    },\n    /**\n     * If provided, used as history items for this component\n     */\n    historyItems: {\n      type: Array,\n      required: false,\n      default: null\n    },\n    /**\n     * If provided, used as a placeholder for this component\n     */\n    placeholder: {\n      type: String,\n      required: false,\n      default: 'Search'\n    },\n    clearable: {\n      type: Boolean,\n      required: false,\n      default: true\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     * i18n for recent searches title within history dropdown\n     */\n    recentSearchesHeader: {\n      type: String,\n      required: false,\n      default: 'Recent searches'\n    },\n    /**\n     * i18n for clear button title\n     */\n    clearButtonTitle: {\n      type: String,\n      required: false,\n      default: 'Clear'\n    },\n    /**\n     * i18n for close button title within history dropdown\n     */\n    closeButtonTitle: {\n      type: String,\n      required: false,\n      default: 'Close'\n    },\n    /**\n     * i18n for recent searches clear text\n     */\n    clearRecentSearchesText: {\n      type: String,\n      required: false,\n      default: 'Clear recent searches'\n    },\n    noRecentSearchesText: {\n      type: String,\n      required: false,\n      default: \"You don't have any recent searches\"\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     * HTML attributes to add to the search button\n     */\n    searchButtonAttributes: {\n      type: Object,\n      required: false,\n      default: () => ({})\n    },\n    /**\n     * Display search button to perform a search.\n     *\n     * Note: it is required to ensure accessibility for WCAG 2.1 3.2.2: On Input.\n     * If the search button is hidden, a separate button should be provided for the same context.\n     */\n    showSearchButton: {\n      type: Boolean,\n      required: false,\n      default: true\n    }\n  },\n  data() {\n    return {\n      currentValue: null,\n      isFocused: false\n    };\n  },\n  computed: {\n    inputAttributes() {\n      const attributes = {\n        type: 'search',\n        placeholder: this.placeholder,\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.currentValue);\n    }\n  },\n  watch: {\n    value: {\n      handler(newValue) {\n        this.currentValue = newValue;\n      },\n      immediate: true\n    },\n    currentValue(newValue) {\n      if (newValue === this.value) return;\n      this.$emit('input', newValue);\n    }\n  },\n  methods: {\n    search(value) {\n      /**\n       * Emitted when search is submitted\n       * @property {*} value Search value\n       */\n      this.$emit('submit', value);\n    },\n    selectHistoryItem(item) {\n      this.currentValue = item;\n\n      /**\n       * Emitted when item from history is selected\n       * @property {*} item History item\n       */\n      this.$emit('history-item-selected', item);\n      setTimeout(() => {\n        document.activeElement.blur();\n      });\n    },\n    clearInput() {\n      this.currentValue = '';\n      /**\n       * Emitted when search is cleared\n       */\n      this.$emit('clear');\n      if (this.$refs.input) {\n        this.$refs.input.$el.focus();\n      }\n    },\n    emitClearHistory() {\n      /**\n       * Emitted when clear history button is clicked\n       */\n      this.$emit('clear-history');\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-form-input-group',{staticClass:\"gl-search-box-by-click\",class:{ 'gl-search-box-by-click-with-search-button': _vm.showSearchButton },scopedSlots:_vm._u([(_vm.historyItems)?{key:\"prepend\",fn:function(){return [_c('gl-disclosure-dropdown',{ref:\"historyDropdown\",staticClass:\"gl-search-box-by-click-history\",attrs:{\"icon\":\"history\",\"category\":\"tertiary\",\"toggle-text\":\"Toggle history\",\"text-sr-only\":\"\",\"fluid-width\":\"\",\"disabled\":_vm.disabled},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',{staticClass:\"gl-search-box-by-click-history-header gl-flex gl-min-h-8 gl-grow gl-items-center 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.recentSearchesHeader)+\"\\n        \")])]},proxy:true},(_vm.historyItems.length)?{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-border-t-solid\"},[_c('gl-button',{ref:\"clearHistory\",staticClass:\"!gl-justify-start\",attrs:{\"category\":\"tertiary\"},on:{\"click\":_vm.emitClearHistory}},[_vm._v(\"\\n            \"+_vm._s(_vm.clearRecentSearchesText)+\"\\n          \")])],1)]},proxy:true}:null],null,true)},[_vm._v(\" \"),(_vm.historyItems.length)?_vm._l((_vm.historyItems),function(item,idx){return _c('gl-disclosure-dropdown-item',{key:idx,staticClass:\"gl-search-box-by-click-history-item\",on:{\"action\":function($event){return _vm.selectHistoryItem(item)}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._t(\"history-item\",function(){return [_vm._v(_vm._s(item))]},{\"historyItem\":item})]},proxy:true}],null,true)})}):_c('div',{staticClass:\"gl-px-4 gl-py-2 gl-text-sm gl-text-subtle\"},[_vm._v(\"\\n        \"+_vm._s(_vm.noRecentSearchesText)+\"\\n      \")])],2)]},proxy:true}:null,(_vm.showSearchButton)?{key:\"append\",fn:function(){return [_c('gl-button',_vm._b({ref:\"searchButton\",staticClass:\"gl-search-box-by-click-search-button\",attrs:{\"category\":\"tertiary\",\"icon\":\"search\",\"disabled\":_vm.disabled,\"aria-label\":\"Search\",\"data-testid\":\"search-button\"},on:{\"click\":function($event){return _vm.search(_vm.currentValue)}}},'gl-button',_vm.searchButtonAttributes,false))]},proxy:true}:null],null,true)},[_vm._v(\" \"),_vm._t(\"input\",function(){return [_c('gl-form-input',_vm._b({ref:\"input\",staticClass:\"gl-search-box-by-click-input\",class:{ '!gl-rounded-base': !_vm.showSearchButton },attrs:{\"disabled\":_vm.disabled},on:{\"focus\":function($event){_vm.isFocused = true;},\"blur\":function($event){_vm.isFocused = false;}},nativeOn:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.search(_vm.currentValue)}},model:{value:(_vm.currentValue),callback:function ($$v) {_vm.currentValue=$$v;},expression:\"currentValue\"}},'gl-form-input',_vm.inputAttributes,false))]}),_vm._v(\" \"),(_vm.clearable && _vm.hasValue && !_vm.disabled)?_c('gl-clear-icon-button',{staticClass:\"gl-search-box-by-click-icon-button gl-search-box-by-click-clear-button gl-clear-icon-button\",attrs:{\"title\":_vm.clearButtonTitle,\"tooltip-container\":_vm.tooltipContainer,\"data-testid\":\"filtered-search-clear-button\"},on:{\"click\":_vm.clearInput}}):_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\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemUpdateParent\"},\"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\":\"WorkItemAncestors\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":211}};\n    doc.loc.source = {\"body\":\"#import \\\"./work_item_ancestors.fragment.graphql\\\"\\n\\nmutation workItemUpdateParent($input: WorkItemUpdateInput!) {\\n  workItemUpdate(input: $input) {\\n    workItem {\\n      ...WorkItemAncestors\\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_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[\"workItemUpdateParent\"] = oneQuery(doc, \"workItemUpdateParent\");\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","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n  let {\n    reference,\n    floating\n  } = _ref;\n  const sideAxis = getSideAxis(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const alignLength = getAxisLength(alignmentAxis);\n  const side = getSide(placement);\n  const isVertical = sideAxis === 'y';\n  const commonX = reference.x + reference.width / 2 - floating.width / 2;\n  const commonY = reference.y + reference.height / 2 - floating.height / 2;\n  const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n  let coords;\n  switch (side) {\n    case 'top':\n      coords = {\n        x: commonX,\n        y: reference.y - floating.height\n      };\n      break;\n    case 'bottom':\n      coords = {\n        x: commonX,\n        y: reference.y + reference.height\n      };\n      break;\n    case 'right':\n      coords = {\n        x: reference.x + reference.width,\n        y: commonY\n      };\n      break;\n    case 'left':\n      coords = {\n        x: reference.x - floating.width,\n        y: commonY\n      };\n      break;\n    default:\n      coords = {\n        x: reference.x,\n        y: reference.y\n      };\n  }\n  switch (getAlignment(placement)) {\n    case 'start':\n      coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n      break;\n    case 'end':\n      coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n      break;\n  }\n  return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n  const {\n    placement = 'bottom',\n    strategy = 'absolute',\n    middleware = [],\n    platform\n  } = config;\n  const validMiddleware = middleware.filter(Boolean);\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n  let rects = await platform.getElementRects({\n    reference,\n    floating,\n    strategy\n  });\n  let {\n    x,\n    y\n  } = computeCoordsFromPlacement(rects, placement, rtl);\n  let statefulPlacement = placement;\n  let middlewareData = {};\n  let resetCount = 0;\n  for (let i = 0; i < validMiddleware.length; i++) {\n    const {\n      name,\n      fn\n    } = validMiddleware[i];\n    const {\n      x: nextX,\n      y: nextY,\n      data,\n      reset\n    } = await fn({\n      x,\n      y,\n      initialPlacement: placement,\n      placement: statefulPlacement,\n      strategy,\n      middlewareData,\n      rects,\n      platform,\n      elements: {\n        reference,\n        floating\n      }\n    });\n    x = nextX != null ? nextX : x;\n    y = nextY != null ? nextY : y;\n    middlewareData = {\n      ...middlewareData,\n      [name]: {\n        ...middlewareData[name],\n        ...data\n      }\n    };\n    if (reset && resetCount <= 50) {\n      resetCount++;\n      if (typeof reset === 'object') {\n        if (reset.placement) {\n          statefulPlacement = reset.placement;\n        }\n        if (reset.rects) {\n          rects = reset.rects === true ? await platform.getElementRects({\n            reference,\n            floating,\n            strategy\n          }) : reset.rects;\n        }\n        ({\n          x,\n          y\n        } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n      }\n      i = -1;\n    }\n  }\n  return {\n    x,\n    y,\n    placement: statefulPlacement,\n    strategy,\n    middlewareData\n  };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n  var _await$platform$isEle;\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    x,\n    y,\n    platform,\n    rects,\n    elements,\n    strategy\n  } = state;\n  const {\n    boundary = 'clippingAncestors',\n    rootBoundary = 'viewport',\n    elementContext = 'floating',\n    altBoundary = false,\n    padding = 0\n  } = evaluate(options, state);\n  const paddingObject = getPaddingObject(padding);\n  const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n  const element = elements[altBoundary ? altContext : elementContext];\n  const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n    element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n    boundary,\n    rootBoundary,\n    strategy\n  }));\n  const rect = elementContext === 'floating' ? {\n    x,\n    y,\n    width: rects.floating.width,\n    height: rects.floating.height\n  } : rects.reference;\n  const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n  const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n    x: 1,\n    y: 1\n  } : {\n    x: 1,\n    y: 1\n  };\n  const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  }) : rect);\n  return {\n    top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n    bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n    left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n    right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n  };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n  name: 'arrow',\n  options,\n  async fn(state) {\n    const {\n      x,\n      y,\n      placement,\n      rects,\n      platform,\n      elements,\n      middlewareData\n    } = state;\n    // Since `element` is required, we don't Partial<> the type.\n    const {\n      element,\n      padding = 0\n    } = evaluate(options, state) || {};\n    if (element == null) {\n      return {};\n    }\n    const paddingObject = getPaddingObject(padding);\n    const coords = {\n      x,\n      y\n    };\n    const axis = getAlignmentAxis(placement);\n    const length = getAxisLength(axis);\n    const arrowDimensions = await platform.getDimensions(element);\n    const isYAxis = axis === 'y';\n    const minProp = isYAxis ? 'top' : 'left';\n    const maxProp = isYAxis ? 'bottom' : 'right';\n    const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n    const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n    const startDiff = coords[axis] - rects.reference[axis];\n    const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n    let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n    // DOM platform can return `window` as the `offsetParent`.\n    if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n      clientSize = elements.floating[clientProp] || rects.floating[length];\n    }\n    const centerToReference = endDiff / 2 - startDiff / 2;\n\n    // If the padding is large enough that it causes the arrow to no longer be\n    // centered, modify the padding so that it is centered.\n    const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n    const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n    const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n    // Make sure the arrow doesn't overflow the floating element if the center\n    // point is outside the floating element's bounds.\n    const min$1 = minPadding;\n    const max = clientSize - arrowDimensions[length] - maxPadding;\n    const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n    const offset = clamp(min$1, center, max);\n\n    // If the reference is small enough that the arrow's padding causes it to\n    // to point to nothing for an aligned placement, adjust the offset of the\n    // floating element itself. To ensure `shift()` continues to take action,\n    // a single reset is performed when this is true.\n    const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n    const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n    return {\n      [axis]: coords[axis] + alignmentOffset,\n      data: {\n        [axis]: offset,\n        centerOffset: center - offset - alignmentOffset,\n        ...(shouldAddOffset && {\n          alignmentOffset\n        })\n      },\n      reset: shouldAddOffset\n    };\n  }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n  const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n  return allowedPlacementsSortedByAlignment.filter(placement => {\n    if (alignment) {\n      return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n    }\n    return true;\n  });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'autoPlacement',\n    options,\n    async fn(state) {\n      var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n      const {\n        rects,\n        middlewareData,\n        placement,\n        platform,\n        elements\n      } = state;\n      const {\n        crossAxis = false,\n        alignment,\n        allowedPlacements = placements,\n        autoAlignment = true,\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n      const currentPlacement = placements$1[currentIndex];\n      if (currentPlacement == null) {\n        return {};\n      }\n      const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n      // Make `computeCoords` start from the right place.\n      if (placement !== currentPlacement) {\n        return {\n          reset: {\n            placement: placements$1[0]\n          }\n        };\n      }\n      const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n      const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n        placement: currentPlacement,\n        overflows: currentOverflows\n      }];\n      const nextPlacement = placements$1[currentIndex + 1];\n\n      // There are more placements to check.\n      if (nextPlacement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: nextPlacement\n          }\n        };\n      }\n      const placementsSortedByMostSpace = allOverflows.map(d => {\n        const alignment = getAlignment(d.placement);\n        return [d.placement, alignment && crossAxis ?\n        // Check along the mainAxis and main crossAxis side.\n        d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n        // Check only the mainAxis.\n        d.overflows[0], d.overflows];\n      }).sort((a, b) => a[1] - b[1]);\n      const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n      // Aligned placements should not check their opposite crossAxis\n      // side.\n      getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n      const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n      if (resetPlacement !== placement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: resetPlacement\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'flip',\n    options,\n    async fn(state) {\n      var _middlewareData$arrow, _middlewareData$flip;\n      const {\n        placement,\n        middlewareData,\n        rects,\n        initialPlacement,\n        platform,\n        elements\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = true,\n        fallbackPlacements: specifiedFallbackPlacements,\n        fallbackStrategy = 'bestFit',\n        fallbackAxisSideDirection = 'none',\n        flipAlignment = true,\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n\n      // If a reset by the arrow was caused due to an alignment offset being\n      // added, we should skip any logic now since `flip()` has already done its\n      // work.\n      // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n      if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      const side = getSide(placement);\n      const initialSideAxis = getSideAxis(initialPlacement);\n      const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n      const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n      const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n      const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n      if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n        fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n      }\n      const placements = [initialPlacement, ...fallbackPlacements];\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const overflows = [];\n      let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n      if (checkMainAxis) {\n        overflows.push(overflow[side]);\n      }\n      if (checkCrossAxis) {\n        const sides = getAlignmentSides(placement, rects, rtl);\n        overflows.push(overflow[sides[0]], overflow[sides[1]]);\n      }\n      overflowsData = [...overflowsData, {\n        placement,\n        overflows\n      }];\n\n      // One or more sides is overflowing.\n      if (!overflows.every(side => side <= 0)) {\n        var _middlewareData$flip2, _overflowsData$filter;\n        const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n        const nextPlacement = placements[nextIndex];\n        if (nextPlacement) {\n          // Try next placement and re-run the lifecycle.\n          return {\n            data: {\n              index: nextIndex,\n              overflows: overflowsData\n            },\n            reset: {\n              placement: nextPlacement\n            }\n          };\n        }\n\n        // First, find the candidates that fit on the mainAxis side of overflow,\n        // then find the placement that fits the best on the main crossAxis side.\n        let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n        // Otherwise fallback.\n        if (!resetPlacement) {\n          switch (fallbackStrategy) {\n            case 'bestFit':\n              {\n                var _overflowsData$filter2;\n                const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n                  if (hasFallbackAxisSideDirection) {\n                    const currentSideAxis = getSideAxis(d.placement);\n                    return currentSideAxis === initialSideAxis ||\n                    // Create a bias to the `y` side axis due to horizontal\n                    // reading directions favoring greater width.\n                    currentSideAxis === 'y';\n                  }\n                  return true;\n                }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n                if (placement) {\n                  resetPlacement = placement;\n                }\n                break;\n              }\n            case 'initialPlacement':\n              resetPlacement = initialPlacement;\n              break;\n          }\n        }\n        if (placement !== resetPlacement) {\n          return {\n            reset: {\n              placement: resetPlacement\n            }\n          };\n        }\n      }\n      return {};\n    }\n  };\n};\n\nfunction getSideOffsets(overflow, rect) {\n  return {\n    top: overflow.top - rect.height,\n    right: overflow.right - rect.width,\n    bottom: overflow.bottom - rect.height,\n    left: overflow.left - rect.width\n  };\n}\nfunction isAnySideFullyClipped(overflow) {\n  return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'hide',\n    options,\n    async fn(state) {\n      const {\n        rects\n      } = state;\n      const {\n        strategy = 'referenceHidden',\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      switch (strategy) {\n        case 'referenceHidden':\n          {\n            const overflow = await detectOverflow(state, {\n              ...detectOverflowOptions,\n              elementContext: 'reference'\n            });\n            const offsets = getSideOffsets(overflow, rects.reference);\n            return {\n              data: {\n                referenceHiddenOffsets: offsets,\n                referenceHidden: isAnySideFullyClipped(offsets)\n              }\n            };\n          }\n        case 'escaped':\n          {\n            const overflow = await detectOverflow(state, {\n              ...detectOverflowOptions,\n              altBoundary: true\n            });\n            const offsets = getSideOffsets(overflow, rects.floating);\n            return {\n              data: {\n                escapedOffsets: offsets,\n                escaped: isAnySideFullyClipped(offsets)\n              }\n            };\n          }\n        default:\n          {\n            return {};\n          }\n      }\n    }\n  };\n};\n\nfunction getBoundingRect(rects) {\n  const minX = min(...rects.map(rect => rect.left));\n  const minY = min(...rects.map(rect => rect.top));\n  const maxX = max(...rects.map(rect => rect.right));\n  const maxY = max(...rects.map(rect => rect.bottom));\n  return {\n    x: minX,\n    y: minY,\n    width: maxX - minX,\n    height: maxY - minY\n  };\n}\nfunction getRectsByLine(rects) {\n  const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n  const groups = [];\n  let prevRect = null;\n  for (let i = 0; i < sortedRects.length; i++) {\n    const rect = sortedRects[i];\n    if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n      groups.push([rect]);\n    } else {\n      groups[groups.length - 1].push(rect);\n    }\n    prevRect = rect;\n  }\n  return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'inline',\n    options,\n    async fn(state) {\n      const {\n        placement,\n        elements,\n        rects,\n        platform,\n        strategy\n      } = state;\n      // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n      // ClientRect's bounds, despite the event listener being triggered. A\n      // padding of 2 seems to handle this issue.\n      const {\n        padding = 2,\n        x,\n        y\n      } = evaluate(options, state);\n      const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n      const clientRects = getRectsByLine(nativeClientRects);\n      const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n      const paddingObject = getPaddingObject(padding);\n      function getBoundingClientRect() {\n        // There are two rects and they are disjoined.\n        if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n          // Find the first rect in which the point is fully inside.\n          return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n        }\n\n        // There are 2 or more connected rects.\n        if (clientRects.length >= 2) {\n          if (getSideAxis(placement) === 'y') {\n            const firstRect = clientRects[0];\n            const lastRect = clientRects[clientRects.length - 1];\n            const isTop = getSide(placement) === 'top';\n            const top = firstRect.top;\n            const bottom = lastRect.bottom;\n            const left = isTop ? firstRect.left : lastRect.left;\n            const right = isTop ? firstRect.right : lastRect.right;\n            const width = right - left;\n            const height = bottom - top;\n            return {\n              top,\n              bottom,\n              left,\n              right,\n              width,\n              height,\n              x: left,\n              y: top\n            };\n          }\n          const isLeftSide = getSide(placement) === 'left';\n          const maxRight = max(...clientRects.map(rect => rect.right));\n          const minLeft = min(...clientRects.map(rect => rect.left));\n          const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n          const top = measureRects[0].top;\n          const bottom = measureRects[measureRects.length - 1].bottom;\n          const left = minLeft;\n          const right = maxRight;\n          const width = right - left;\n          const height = bottom - top;\n          return {\n            top,\n            bottom,\n            left,\n            right,\n            width,\n            height,\n            x: left,\n            y: top\n          };\n        }\n        return fallback;\n      }\n      const resetRects = await platform.getElementRects({\n        reference: {\n          getBoundingClientRect\n        },\n        floating: elements.floating,\n        strategy\n      });\n      if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n        return {\n          reset: {\n            rects: resetRects\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n  const {\n    placement,\n    platform,\n    elements\n  } = state;\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n  const side = getSide(placement);\n  const alignment = getAlignment(placement);\n  const isVertical = getSideAxis(placement) === 'y';\n  const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n  const crossAxisMulti = rtl && isVertical ? -1 : 1;\n  const rawValue = evaluate(options, state);\n\n  // eslint-disable-next-line prefer-const\n  let {\n    mainAxis,\n    crossAxis,\n    alignmentAxis\n  } = typeof rawValue === 'number' ? {\n    mainAxis: rawValue,\n    crossAxis: 0,\n    alignmentAxis: null\n  } : {\n    mainAxis: rawValue.mainAxis || 0,\n    crossAxis: rawValue.crossAxis || 0,\n    alignmentAxis: rawValue.alignmentAxis\n  };\n  if (alignment && typeof alignmentAxis === 'number') {\n    crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n  }\n  return isVertical ? {\n    x: crossAxis * crossAxisMulti,\n    y: mainAxis * mainAxisMulti\n  } : {\n    x: mainAxis * mainAxisMulti,\n    y: crossAxis * crossAxisMulti\n  };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n  if (options === void 0) {\n    options = 0;\n  }\n  return {\n    name: 'offset',\n    options,\n    async fn(state) {\n      var _middlewareData$offse, _middlewareData$arrow;\n      const {\n        x,\n        y,\n        placement,\n        middlewareData\n      } = state;\n      const diffCoords = await convertValueToCoords(state, options);\n\n      // If the placement is the same and the arrow caused an alignment offset\n      // then we don't need to change the positioning coordinates.\n      if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      return {\n        x: x + diffCoords.x,\n        y: y + diffCoords.y,\n        data: {\n          ...diffCoords,\n          placement\n        }\n      };\n    }\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'shift',\n    options,\n    async fn(state) {\n      const {\n        x,\n        y,\n        placement\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = false,\n        limiter = {\n          fn: _ref => {\n            let {\n              x,\n              y\n            } = _ref;\n            return {\n              x,\n              y\n            };\n          }\n        },\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const crossAxis = getSideAxis(getSide(placement));\n      const mainAxis = getOppositeAxis(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      if (checkMainAxis) {\n        const minSide = mainAxis === 'y' ? 'top' : 'left';\n        const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n        const min = mainAxisCoord + overflow[minSide];\n        const max = mainAxisCoord - overflow[maxSide];\n        mainAxisCoord = clamp(min, mainAxisCoord, max);\n      }\n      if (checkCrossAxis) {\n        const minSide = crossAxis === 'y' ? 'top' : 'left';\n        const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n        const min = crossAxisCoord + overflow[minSide];\n        const max = crossAxisCoord - overflow[maxSide];\n        crossAxisCoord = clamp(min, crossAxisCoord, max);\n      }\n      const limitedCoords = limiter.fn({\n        ...state,\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      });\n      return {\n        ...limitedCoords,\n        data: {\n          x: limitedCoords.x - x,\n          y: limitedCoords.y - y,\n          enabled: {\n            [mainAxis]: checkMainAxis,\n            [crossAxis]: checkCrossAxis\n          }\n        }\n      };\n    }\n  };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    options,\n    fn(state) {\n      const {\n        x,\n        y,\n        placement,\n        rects,\n        middlewareData\n      } = state;\n      const {\n        offset = 0,\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = true\n      } = evaluate(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const crossAxis = getSideAxis(placement);\n      const mainAxis = getOppositeAxis(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      const rawOffset = evaluate(offset, state);\n      const computedOffset = typeof rawOffset === 'number' ? {\n        mainAxis: rawOffset,\n        crossAxis: 0\n      } : {\n        mainAxis: 0,\n        crossAxis: 0,\n        ...rawOffset\n      };\n      if (checkMainAxis) {\n        const len = mainAxis === 'y' ? 'height' : 'width';\n        const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n        const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n        if (mainAxisCoord < limitMin) {\n          mainAxisCoord = limitMin;\n        } else if (mainAxisCoord > limitMax) {\n          mainAxisCoord = limitMax;\n        }\n      }\n      if (checkCrossAxis) {\n        var _middlewareData$offse, _middlewareData$offse2;\n        const len = mainAxis === 'y' ? 'width' : 'height';\n        const isOriginSide = ['top', 'left'].includes(getSide(placement));\n        const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n        const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n        if (crossAxisCoord < limitMin) {\n          crossAxisCoord = limitMin;\n        } else if (crossAxisCoord > limitMax) {\n          crossAxisCoord = limitMax;\n        }\n      }\n      return {\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      };\n    }\n  };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'size',\n    options,\n    async fn(state) {\n      var _state$middlewareData, _state$middlewareData2;\n      const {\n        placement,\n        rects,\n        platform,\n        elements\n      } = state;\n      const {\n        apply = () => {},\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const side = getSide(placement);\n      const alignment = getAlignment(placement);\n      const isYAxis = getSideAxis(placement) === 'y';\n      const {\n        width,\n        height\n      } = rects.floating;\n      let heightSide;\n      let widthSide;\n      if (side === 'top' || side === 'bottom') {\n        heightSide = side;\n        widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n      } else {\n        widthSide = side;\n        heightSide = alignment === 'end' ? 'top' : 'bottom';\n      }\n      const maximumClippingHeight = height - overflow.top - overflow.bottom;\n      const maximumClippingWidth = width - overflow.left - overflow.right;\n      const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n      const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n      const noShift = !state.middlewareData.shift;\n      let availableHeight = overflowAvailableHeight;\n      let availableWidth = overflowAvailableWidth;\n      if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n        availableWidth = maximumClippingWidth;\n      }\n      if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n        availableHeight = maximumClippingHeight;\n      }\n      if (noShift && !alignment) {\n        const xMin = max(overflow.left, 0);\n        const xMax = max(overflow.right, 0);\n        const yMin = max(overflow.top, 0);\n        const yMax = max(overflow.bottom, 0);\n        if (isYAxis) {\n          availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n        } else {\n          availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n        }\n      }\n      await apply({\n        ...state,\n        availableWidth,\n        availableHeight\n      });\n      const nextDimensions = await platform.getDimensions(elements.floating);\n      if (width !== nextDimensions.width || height !== nextDimensions.height) {\n        return {\n          reset: {\n            rects: true\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\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 * 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","\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","\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 { extend } from '../../../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { identity } from '../../../utils/identity';\nimport { isBoolean } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { safeVueInstance } from '../../../utils/safe-vue-instance';\nimport { toString } from '../../../utils/string';\nimport { attrsMixin } from '../../../mixins/attrs';\n\n// Main `<table>` render mixin\n// Includes all main table styling options\n\n// --- Props ---\n\nconst props = {\n  bordered: makeProp(PROP_TYPE_BOOLEAN, false),\n  borderless: makeProp(PROP_TYPE_BOOLEAN, false),\n  captionTop: makeProp(PROP_TYPE_BOOLEAN, false),\n  dark: makeProp(PROP_TYPE_BOOLEAN, false),\n  fixed: makeProp(PROP_TYPE_BOOLEAN, false),\n  hover: makeProp(PROP_TYPE_BOOLEAN, false),\n  noBorderCollapse: makeProp(PROP_TYPE_BOOLEAN, false),\n  outlined: makeProp(PROP_TYPE_BOOLEAN, false),\n  responsive: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n  small: makeProp(PROP_TYPE_BOOLEAN, false),\n  // If a string, it is assumed to be the table `max-height` value\n  stickyHeader: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n  striped: makeProp(PROP_TYPE_BOOLEAN, false),\n  tableClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n  tableVariant: makeProp(PROP_TYPE_STRING)\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst tableRendererMixin = extend({\n  mixins: [attrsMixin],\n  provide() {\n    return {\n      getBvTable: () => this\n    };\n  },\n  // Don't place attributes on root element automatically,\n  // as table could be wrapped in responsive `<div>`\n  inheritAttrs: false,\n  props,\n  computed: {\n    isTableSimple() {\n      return false;\n    },\n    // Layout related computed props\n    isResponsive() {\n      const {\n        responsive\n      } = this;\n      return responsive === '' ? true : responsive;\n    },\n    isStickyHeader() {\n      let {\n        stickyHeader\n      } = this;\n      stickyHeader = stickyHeader === '' ? true : stickyHeader;\n      return this.isStacked ? false : stickyHeader;\n    },\n    wrapperClasses() {\n      const {\n        isResponsive\n      } = this;\n      return [this.isStickyHeader ? 'b-table-sticky-header' : '', isResponsive === true ? 'table-responsive' : isResponsive ? `table-responsive-${this.responsive}` : ''].filter(identity);\n    },\n    wrapperStyles() {\n      const {\n        isStickyHeader\n      } = this;\n      return isStickyHeader && !isBoolean(isStickyHeader) ? {\n        maxHeight: isStickyHeader\n      } : {};\n    },\n    tableClasses() {\n      let {\n        hover,\n        tableVariant,\n        selectableTableClasses,\n        stackedTableClasses,\n        tableClass,\n        computedBusy\n      } = safeVueInstance(this);\n      hover = this.isTableSimple ? hover : hover && this.computedItems.length > 0 && !computedBusy;\n      return [\n      // User supplied classes\n      tableClass,\n      // Styling classes\n      {\n        'table-striped': this.striped,\n        'table-hover': hover,\n        'table-dark': this.dark,\n        'table-bordered': this.bordered,\n        'table-borderless': this.borderless,\n        'table-sm': this.small,\n        // The following are b-table custom styles\n        'gl-border': this.outlined,\n        'b-table-fixed': this.fixed,\n        'b-table-caption-top': this.captionTop,\n        'b-table-no-border-collapse': this.noBorderCollapse\n      }, tableVariant ? `${this.dark ? 'bg' : 'table'}-${tableVariant}` : '',\n      // Stacked table classes\n      stackedTableClasses,\n      // Selectable classes\n      selectableTableClasses];\n    },\n    tableAttrs() {\n      const {\n        computedItems: items,\n        filteredItems,\n        computedFields: fields,\n        selectableTableAttrs,\n        computedBusy\n      } = safeVueInstance(this);\n      const ariaAttrs = this.isTableSimple ? {} : {\n        'aria-busy': toString(computedBusy),\n        'aria-colcount': toString(fields.length),\n        // Preserve user supplied `aria-describedby`, if provided\n        'aria-describedby': this.bvAttrs['aria-describedby'] || this.$refs.caption ? this.captionId : null\n      };\n      const rowCount = items && filteredItems && filteredItems.length > items.length ? toString(filteredItems.length) : null;\n      return {\n        // We set `aria-rowcount` before merging in `$attrs`,\n        // in case user has supplied their own\n        'aria-rowcount': rowCount,\n        // Merge in user supplied `$attrs` if any\n        ...this.bvAttrs,\n        // Now we can override any `$attrs` here\n        id: this.safeId(),\n        role: this.bvAttrs.role || 'table',\n        ...ariaAttrs,\n        ...selectableTableAttrs\n      };\n    }\n  },\n  render(h) {\n    const {\n      wrapperClasses,\n      renderCaption,\n      renderColgroup,\n      renderThead,\n      renderTbody,\n      renderTfoot\n    } = safeVueInstance(this);\n    const $content = [];\n    if (this.isTableSimple) {\n      $content.push(this.normalizeSlot());\n    } else {\n      // Build the `<caption>` (from caption mixin)\n      $content.push(renderCaption ? renderCaption() : null);\n\n      // Build the `<colgroup>`\n      $content.push(renderColgroup ? renderColgroup() : null);\n\n      // Build the `<thead>`\n      $content.push(renderThead ? renderThead() : null);\n\n      // Build the `<tbody>`\n      $content.push(renderTbody ? renderTbody() : null);\n\n      // Build the `<tfoot>`\n      $content.push(renderTfoot ? renderTfoot() : null);\n    }\n\n    // Assemble `<table>`\n    const $table = h('table', {\n      staticClass: 'table b-table',\n      class: this.tableClasses,\n      attrs: this.tableAttrs,\n      key: 'b-table'\n    }, $content.filter(identity));\n\n    // Add responsive/sticky wrapper if needed and return table\n    return wrapperClasses.length > 0 ? h('div', {\n      class: wrapperClasses,\n      style: this.wrapperStyles,\n      key: 'wrap'\n    }, [$table]) : $table;\n  }\n});\n\nexport { props, tableRendererMixin };\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\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgets\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidget\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"BaseWorkItemWidgets\"},\"directives\":[]},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetHealthStatus\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"},\"arguments\":[],\"directives\":[]}]}},{\"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\":\"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\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":392}};\n    doc.loc.source = {\"body\":\"#import \\\"~/work_items/graphql/list/base_work_item_widgets.fragment.graphql\\\"\\n\\nfragment WorkItemWidgets on WorkItemWidget {\\n  ...BaseWorkItemWidgets\\n  ... on WorkItemWidgetHealthStatus {\\n    type\\n    healthStatus\\n  }\\n  ... on WorkItemWidgetWeight {\\n    type\\n    weight\\n  }\\n  ... on WorkItemWidgetLinkedItems {\\n    linkedItems {\\n      nodes {\\n        linkId\\n        linkType\\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(\"~/work_items/graphql/list/base_work_item_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[\"WorkItemWidgets\"] = oneQuery(doc, \"WorkItemWidgets\");\n        \n","import isString from 'lodash/isString';\nimport Pikaday from 'pikaday';\nimport { defaultDateFormat, datepickerWidthOptionsMap } from '../../../utils/constants';\nimport { areDatesEqual } from '../../../utils/datetime_utility';\nimport GlButton from '../button/button';\nimport GlFormInput from '../form/form_input/form_input';\nimport GlIcon from '../icon/icon';\nimport { translate } from '../../../utils/i18n';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst pad = function (val) {\n  let len = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n  return `0${val}`.slice(-len);\n};\n\n/**\n * Used `onSelect` method in pickaday\n * @param {Date} date UTC format\n * @return {String} Date formated in yyyy-mm-dd\n */\nconst defaultDateFormatter = date => {\n  const day = pad(date.getDate());\n  const month = pad(date.getMonth() + 1);\n  const year = date.getFullYear();\n  return `${year}-${month}-${day}`;\n};\nconst isBefore = (compareTo, date) => compareTo && date && date.getTime() < compareTo.getTime();\nconst highlightPastDates = pikaday => {\n  const pikaButtons = pikaday.el.querySelectorAll('.pika-button');\n  const today = new Date();\n  pikaButtons.forEach(pikaButton => {\n    const {\n      pikaYear,\n      pikaMonth,\n      pikaDay\n    } = pikaButton.dataset;\n    const pikaButtonDate = new Date(pikaYear, pikaMonth, pikaDay);\n    if (isBefore(today, pikaButtonDate)) {\n      pikaButton.classList.add('is-past-date');\n    }\n  });\n};\nconst addAccessibleLabels = element => {\n  // Pikaday sets `role=\"heading\"`, which requires a corresponding\n  // `aria-level`. Ensure we have one.\n  const titleEl = element.querySelector('.pika-title[role=\"heading\"]');\n  if (titleEl) {\n    titleEl.setAttribute('aria-level', 3);\n  }\n\n  // Add aria-label to month & year select dropdowns\n  const monthEl = element.querySelector('select.pika-select-month');\n  if (monthEl) {\n    monthEl.setAttribute('aria-label', translate('GlDatepicker.monthLabel', 'Month'));\n  }\n  const yearEl = element.querySelector('select.pika-select-year');\n  if (yearEl) {\n    yearEl.setAttribute('aria-label', translate('GlDatepicker.yearLabel', 'Year'));\n  }\n};\nvar script = {\n  name: 'GlDatepicker',\n  components: {\n    GlFormInput,\n    GlIcon,\n    GlButton\n  },\n  props: {\n    /**\n     * Selector of element that triggers the datepicker. Defaults to the calendar icon. Pass `null` to trigger on input focus.\n     */\n    target: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    /**\n     * DOM node to render calendar into. Defaults to the datepicker container. Pass `null` to use Pikaday default.\n     */\n    container: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    value: {\n      type: Date,\n      required: false,\n      default: null\n    },\n    minDate: {\n      type: Date,\n      required: false,\n      default: null\n    },\n    maxDate: {\n      type: Date,\n      required: false,\n      default: null\n    },\n    startRange: {\n      type: Date,\n      required: false,\n      default: null\n    },\n    endRange: {\n      type: Date,\n      required: false,\n      default: null\n    },\n    /**\n     * Accepts a function that accepts a date as argument and returns true if the date is disabled.\n     */\n    disableDayFn: {\n      type: Function,\n      required: false,\n      default: null\n    },\n    firstDay: {\n      type: Number,\n      required: false,\n      default: 0\n    },\n    ariaLabel: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    placeholder: {\n      type: String,\n      required: false,\n      default: defaultDateFormat\n    },\n    /**\n     * Defaults to `off` when datepicker opens on focus, otherwise defaults to `null`.\n     */\n    autocomplete: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    disabled: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    displayField: {\n      type: Boolean,\n      required: false,\n      default: true\n    },\n    startOpened: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    /**\n     * Use this prop to set the initial date for the datepicker.\n     */\n    defaultDate: {\n      type: Date,\n      required: false,\n      default: null\n    },\n    i18n: {\n      type: Object,\n      required: false,\n      default: null\n    },\n    theme: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    showClearButton: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    inputId: {\n      type: String,\n      required: false,\n      default: null\n    },\n    inputLabel: {\n      type: String,\n      required: false,\n      default: 'Enter date'\n    },\n    inputName: {\n      type: String,\n      required: false,\n      default: null\n    },\n    /**\n     * Maximum width of the Datepicker\n     */\n    width: {\n      type: String,\n      required: false,\n      default: null,\n      validator: value => Object.keys(datepickerWidthOptionsMap).includes(value)\n    },\n    state: {\n      type: Boolean,\n      required: false,\n      default: null\n    }\n  },\n  data() {\n    return {\n      textInput: ''\n    };\n  },\n  computed: {\n    formattedDate() {\n      return 'calendar' in this ? this.calendar.toString() : '';\n    },\n    customTrigger() {\n      return isString(this.target) && this.target !== '';\n    },\n    triggerOnFocus() {\n      return this.target === null;\n    },\n    showDefaultField() {\n      return !this.customTrigger || this.triggerOnFocus;\n    },\n    renderClearButton() {\n      return this.showClearButton && this.textInput !== '' && !this.disabled;\n    },\n    inputAutocomplete() {\n      if (this.autocomplete !== '') {\n        return this.autocomplete;\n      }\n      if (this.triggerOnFocus) {\n        return 'off';\n      }\n      return null;\n    },\n    datepickerClasses() {\n      return ['gl-datepicker', 'gl-inline-block', 'gl-w-full',\n      // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility\n      `gl-form-input-${this.computedWidth}`];\n    },\n    computedWidth() {\n      if (this.width) {\n        return this.width;\n      }\n      return 'md';\n    }\n  },\n  watch: {\n    value(val) {\n      if (!areDatesEqual(val, this.calendar.getDate())) {\n        this.calendar.setDate(val, true);\n      }\n    },\n    minDate(minDate) {\n      this.calendar.setMinDate(minDate);\n    },\n    maxDate(maxDate) {\n      this.calendar.setMaxDate(maxDate);\n    },\n    startRange(startRange) {\n      this.calendar.setStartRange(startRange);\n    },\n    endRange(endRange) {\n      this.calendar.setEndRange(endRange);\n    }\n  },\n  mounted() {\n    const $parentEl = this.$parent.$el;\n    const openedEvent = this.opened.bind(this);\n    const drawEvent = this.draw.bind(this);\n    const pikadayConfig = {\n      field: this.$el.querySelector('input[type=\"text\"]'),\n      // `!gl-absolute` is needed because of this bug: https://github.com/Pikaday/Pikaday/issues/840\n      theme: `gl-datepicker-theme !gl-absolute ${this.theme}`,\n      defaultDate: this.defaultDate || this.value,\n      setDefaultDate: Boolean(this.value) || Boolean(this.defaultDate),\n      minDate: this.minDate,\n      maxDate: this.maxDate,\n      // Only supports default gitlab format YYYY-MM-DD. We have to decide if we want to support other formats.\n      format: defaultDateFormat,\n      parse: dateString => {\n        const parsedDate = Date.parse(dateString.replace(/-/g, '/'));\n        return Number.isNaN(parsedDate) ? new Date() : new Date(parsedDate);\n      },\n      disableDayFn: this.disableDayFn,\n      firstDay: this.firstDay,\n      ariaLabel: this.ariaLabel,\n      toString: date => defaultDateFormatter(date),\n      onSelect: this.selected.bind(this),\n      onClose: this.closed.bind(this),\n      onOpen: () => {\n        addAccessibleLabels(this.$el);\n        openedEvent();\n      },\n      onDraw: pikaday => {\n        highlightPastDates(pikaday);\n        drawEvent();\n      }\n    };\n\n    // Pass `null` as `target` prop to use the `field` as the trigger (open on focus)\n    if (!this.triggerOnFocus && !this.disabled) {\n      const trigger = this.customTrigger ? $parentEl.querySelector(this.target) : this.$refs.calendarTriggerBtn.$el;\n      pikadayConfig.trigger = trigger;\n\n      // Set `trigger` as the `field` if `field` element doesn't exist (not passed via the slot)\n      if (!pikadayConfig.field && this.customTrigger) {\n        pikadayConfig.field = trigger;\n      }\n    }\n\n    // Pass `null` as `container` prop to prevent passing the `container` option to Pikaday\n    if (this.container !== null) {\n      const container = this.container ? $parentEl.querySelector(this.container) : this.$el;\n      pikadayConfig.container = container;\n    }\n    if (this.i18n) {\n      pikadayConfig.i18n = this.i18n;\n    }\n    this.calendar = new Pikaday(pikadayConfig);\n    if (this.startOpened) {\n      this.calendar.show();\n    }\n  },\n  beforeDestroy() {\n    this.calendar.destroy();\n  },\n  methods: {\n    // is used to open datepicker programmatically\n    show() {\n      this.calendar.show();\n    },\n    selected(date) {\n      /**\n       * Emitted when a new date has been selected.\n       * @property {Date} date The selected date\n       */\n      this.$emit('input', date);\n    },\n    closed() {\n      /**\n       * Emitted when the datepicker is hidden.\n       */\n      this.$emit('close');\n    },\n    opened() {\n      /**\n       * Emitted when the datepicker becomes visible.\n       */\n      this.$emit('open');\n    },\n    cleared() {\n      this.textInput = '';\n      /**\n       * Emitted when the clear button is clicked.\n       */\n      this.$emit('clear');\n    },\n    draw() {\n      /**\n       * Emitted when the datepicker draws a new month.\n       */\n      this.$emit('monthChange');\n    },\n    onKeydown() {\n      if (this.textInput === '') {\n        const resetDate = this.minDate || null;\n        this.calendar.setDate(resetDate);\n        this.selected(resetDate);\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',{class:_vm.datepickerClasses},[(_vm.showDefaultField)?_c('div',{staticClass:\"gl-flex gl-items-start gl-gap-3\"},[_c('div',{staticClass:\"gl-relative gl-flex gl-grow\"},[_vm._t(\"default\",function(){return [_c('gl-form-input',{class:_vm.renderClearButton ? '!gl-pr-9' : '!gl-pr-7',attrs:{\"id\":_vm.inputId,\"name\":_vm.inputName,\"data-testid\":\"gl-datepicker-input\",\"value\":_vm.formattedDate,\"placeholder\":_vm.placeholder,\"autocomplete\":_vm.inputAutocomplete,\"disabled\":_vm.disabled,\"aria-label\":_vm.inputLabel,\"state\":_vm.state},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.onKeydown.apply(null, arguments)}},model:{value:(_vm.textInput),callback:function ($$v) {_vm.textInput=$$v;},expression:\"textInput\"}})]},{\"formattedDate\":_vm.formattedDate}),_vm._v(\" \"),_c('div',{staticClass:\"gl-datepicker-actions\"},[(_vm.renderClearButton)?_c('gl-button',{staticClass:\"gl-pointer-events-auto\",attrs:{\"data-testid\":\"clear-button\",\"aria-label\":\"Clear date\",\"category\":\"tertiary\",\"size\":\"small\",\"icon\":\"clear\"},on:{\"click\":_vm.cleared}}):_vm._e(),_vm._v(\" \"),(_vm.triggerOnFocus || _vm.disabled)?_c('span',{staticClass:\"gl-px-2\",class:_vm.disabled ? 'gl-text-gray-400' : 'gl-text-gray-500',attrs:{\"data-testid\":\"datepicker-calendar-icon\"}},[_c('gl-icon',{staticClass:\"gl-block\",attrs:{\"name\":\"calendar\",\"size\":16}})],1):_c('gl-button',{ref:\"calendarTriggerBtn\",staticClass:\"gl-pointer-events-auto\",attrs:{\"aria-label\":\"Open datepicker\",\"category\":\"tertiary\",\"size\":\"small\",\"icon\":\"calendar\"}})],1)],2),_vm._v(\" \"),_vm._t(\"after\")],2):_vm._t(\"default\",null,{\"formattedDate\":_vm.formattedDate})],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 { defaultDateFormatter, pad };\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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemUpdated\"},\"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\":\"workItemUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemId\"},\"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\":148}};\n    doc.loc.source = {\"body\":\"#import \\\"./work_item.fragment.graphql\\\"\\n\\nsubscription workItemUpdated($id: WorkItemID!) {\\n  workItemUpdated(workItemId: $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[\"workItemUpdated\"] = oneQuery(doc, \"workItemUpdated\");\n        \n","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","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","'use strict';\n// TODO: Remove from `core-js@4`\nvar DESCRIPTORS = require('../internals/descriptors');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\n// `Array.prototype.lastIndex` accessor\n// https://github.com/keithamus/proposal-array-last\nif (DESCRIPTORS) {\n  defineBuiltInAccessor(Array.prototype, 'lastItem', {\n    configurable: true,\n    get: function lastItem() {\n      var O = toObject(this);\n      var len = lengthOfArrayLike(O);\n      return len === 0 ? undefined : O[len - 1];\n    },\n    set: function lastItem(value) {\n      var O = toObject(this);\n      var len = lengthOfArrayLike(O);\n      return O[len === 0 ? 0 : len - 1] = value;\n    }\n  });\n\n  addToUnscopables('lastItem');\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","/*\n * NOTE:\n * Changes to this file should be kept in sync with\n * https://gitlab.com/gitlab-org/gitlab-chronic-duration/-/blob/master/lib/gitlab_chronic_duration.rb.\n */\n\n/*\n * This code is based on code from\n * https://gitlab.com/gitlab-org/gitlab-chronic-duration and is\n * distributed under the following license:\n *\n * MIT License\n *\n * Copyright (c) Henry Poydar\n *\n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the \"Software\"), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n */\n\nexport class DurationParseError extends Error {}\n\n// On average, there's a little over 4 weeks in month.\nconst FULL_WEEKS_PER_MONTH = 4;\n\nconst HOURS_PER_DAY = 24;\nconst DAYS_PER_MONTH = 30;\n\nconst FLOAT_MATCHER = /[0-9]*\\.?[0-9]+/g;\nconst DURATION_UNITS_LIST = ['seconds', 'minutes', 'hours', 'days', 'weeks', 'months', 'years'];\n\nconst MAPPINGS = {\n  seconds: 'seconds',\n  second: 'seconds',\n  secs: 'seconds',\n  sec: 'seconds',\n  s: 'seconds',\n  minutes: 'minutes',\n  minute: 'minutes',\n  mins: 'minutes',\n  min: 'minutes',\n  m: 'minutes',\n  hours: 'hours',\n  hour: 'hours',\n  hrs: 'hours',\n  hr: 'hours',\n  h: 'hours',\n  days: 'days',\n  day: 'days',\n  dy: 'days',\n  d: 'days',\n  weeks: 'weeks',\n  week: 'weeks',\n  wks: 'weeks',\n  wk: 'weeks',\n  w: 'weeks',\n  months: 'months',\n  mo: 'months',\n  mos: 'months',\n  month: 'months',\n  years: 'years',\n  year: 'years',\n  yrs: 'years',\n  yr: 'years',\n  y: 'years',\n};\n\nconst JOIN_WORDS = ['and', 'with', 'plus'];\n\nfunction convertToNumber(string) {\n  const f = parseFloat(string);\n  return f % 1 > 0 ? f : parseInt(string, 10);\n}\n\nfunction durationUnitsSecondsMultiplier(unit, opts) {\n  if (!DURATION_UNITS_LIST.includes(unit)) {\n    return 0;\n  }\n\n  const hoursPerDay = opts.hoursPerDay || HOURS_PER_DAY;\n  const daysPerMonth = opts.daysPerMonth || DAYS_PER_MONTH;\n  const daysPerWeek = Math.trunc(daysPerMonth / FULL_WEEKS_PER_MONTH);\n\n  switch (unit) {\n    case 'years':\n      return 31557600;\n    case 'months':\n      return 3600 * hoursPerDay * daysPerMonth;\n    case 'weeks':\n      return 3600 * hoursPerDay * daysPerWeek;\n    case 'days':\n      return 3600 * hoursPerDay;\n    case 'hours':\n      return 3600;\n    case 'minutes':\n      return 60;\n    case 'seconds':\n      return 1;\n    default:\n      return 0;\n  }\n}\n\nfunction calculateFromWords(string, opts) {\n  let val = 0;\n  const words = string.split(' ');\n  words.forEach((v, k) => {\n    if (v === '') {\n      return;\n    }\n    if (v.search(FLOAT_MATCHER) >= 0) {\n      val +=\n        convertToNumber(v) *\n        durationUnitsSecondsMultiplier(\n          words[parseInt(k, 10) + 1] || opts.defaultUnit || 'seconds',\n          opts,\n        );\n    }\n  });\n  return val;\n}\n\n// Parse 3:41:59 and return 3 hours 41 minutes 59 seconds\nfunction filterByType(string) {\n  const chronoUnitsList = DURATION_UNITS_LIST.filter((v) => v !== 'weeks');\n  if (\n    string\n      .replace(/ +/g, '')\n      .search(RegExp(`${FLOAT_MATCHER.source}(:${FLOAT_MATCHER.source})+`, 'g')) >= 0\n  ) {\n    const res = [];\n    string\n      .replace(/ +/g, '')\n      .split(':')\n      .reverse()\n      .forEach((v, k) => {\n        if (!chronoUnitsList[k]) {\n          return;\n        }\n        res.push(`${v} ${chronoUnitsList[k]}`);\n      });\n    return res.reverse().join(' ');\n  }\n  return string;\n}\n\n// Get rid of unknown words and map found\n// words to defined time units\nfunction filterThroughWhiteList(string, opts) {\n  const res = [];\n  string.split(' ').forEach((word) => {\n    if (word === '') {\n      return;\n    }\n    if (word.search(FLOAT_MATCHER) >= 0) {\n      res.push(word.trim());\n      return;\n    }\n    const strippedWord = word.trim().replace(/^,/g, '').replace(/,$/g, '');\n    if (MAPPINGS[strippedWord] !== undefined) {\n      res.push(MAPPINGS[strippedWord]);\n    } else if (!JOIN_WORDS.includes(strippedWord) && opts.raiseExceptions) {\n      throw new DurationParseError(\n        `An invalid word ${JSON.stringify(word)} was used in the string to be parsed.`,\n      );\n    }\n  });\n  // add '1' at front if string starts with something recognizable but not with a number, like 'day' or 'minute 30sec'\n  if (res.length > 0 && MAPPINGS[res[0]]) {\n    res.splice(0, 0, 1);\n  }\n  return res.join(' ');\n}\n\nfunction cleanup(string, opts) {\n  let res = string.toLowerCase();\n  /*\n   * TODO The Ruby implementation of this algorithm uses the Numerizer module,\n   * which converts strings like \"forty two\" to \"42\", but there is no\n   * JavaScript equivalent of Numerizer. Skip it for now until Numerizer is\n   * ported to JavaScript.\n   */\n  res = filterByType(res);\n  res = res\n    .replace(FLOAT_MATCHER, (n) => ` ${n} `)\n    .replace(/ +/g, ' ')\n    .trim();\n  return filterThroughWhiteList(res, opts);\n}\n\n// eslint-disable-next-line max-params\nfunction humanizeTimeUnit(number, unit, pluralize, keepZero) {\n  if (number === '0' && !keepZero) {\n    return null;\n  }\n  let res = number + unit;\n  // A poor man's pluralizer\n  if (number !== '1' && pluralize) {\n    res += 's';\n  }\n  return res;\n}\n\n// Given a string representation of elapsed time,\n// return an integer (or float, if fractions of a\n// second are input)\nexport function parseChronicDuration(string, opts = {}) {\n  const result = calculateFromWords(cleanup(string, opts), opts);\n  return !opts.keepZero && result === 0 ? null : result;\n}\n\n// Given an integer and an optional format,\n// returns a formatted string representing elapsed time\nexport function outputChronicDuration(seconds, opts = {}) {\n  const units = {\n    years: 0,\n    months: 0,\n    weeks: 0,\n    days: 0,\n    hours: 0,\n    minutes: 0,\n    seconds,\n  };\n\n  const hoursPerDay = opts.hoursPerDay || HOURS_PER_DAY;\n  const daysPerMonth = opts.daysPerMonth || DAYS_PER_MONTH;\n  const daysPerWeek = Math.trunc(daysPerMonth / FULL_WEEKS_PER_MONTH);\n\n  const decimalPlaces =\n    seconds % 1 !== 0 ? seconds.toString().split('.').reverse()[0].length : null;\n\n  const minute = 60;\n  const hour = 60 * minute;\n  const day = hoursPerDay * hour;\n  const month = daysPerMonth * day;\n  const year = 31557600;\n\n  if (units.seconds >= 31557600 && units.seconds % year < units.seconds % month) {\n    units.years = Math.trunc(units.seconds / year);\n    units.months = Math.trunc((units.seconds % year) / month);\n    units.days = Math.trunc(((units.seconds % year) % month) / day);\n    units.hours = Math.trunc((((units.seconds % year) % month) % day) / hour);\n    units.minutes = Math.trunc(((((units.seconds % year) % month) % day) % hour) / minute);\n    units.seconds = Math.trunc(((((units.seconds % year) % month) % day) % hour) % minute);\n  } else if (seconds >= 60) {\n    units.minutes = Math.trunc(seconds / 60);\n    units.seconds %= 60;\n    if (units.minutes >= 60) {\n      units.hours = Math.trunc(units.minutes / 60);\n      units.minutes = Math.trunc(units.minutes % 60);\n      if (!opts.limitToHours) {\n        if (units.hours >= hoursPerDay) {\n          units.days = Math.trunc(units.hours / hoursPerDay);\n          units.hours = Math.trunc(units.hours % hoursPerDay);\n          if (opts.weeks) {\n            if (units.days >= daysPerWeek) {\n              units.weeks = Math.trunc(units.days / daysPerWeek);\n              units.days = Math.trunc(units.days % daysPerWeek);\n              if (units.weeks >= FULL_WEEKS_PER_MONTH) {\n                units.months = Math.trunc(units.weeks / FULL_WEEKS_PER_MONTH);\n                units.weeks = Math.trunc(units.weeks % FULL_WEEKS_PER_MONTH);\n              }\n            }\n          } else if (units.days >= daysPerMonth) {\n            units.months = Math.trunc(units.days / daysPerMonth);\n            units.days = Math.trunc(units.days % daysPerMonth);\n          }\n        }\n      }\n    }\n  }\n\n  let joiner = opts.joiner || ' ';\n  let process = null;\n\n  let dividers;\n  switch (opts.format) {\n    case 'micro':\n      dividers = {\n        years: 'y',\n        months: 'mo',\n        weeks: 'w',\n        days: 'd',\n        hours: 'h',\n        minutes: 'm',\n        seconds: 's',\n      };\n      joiner = '';\n      break;\n    case 'short':\n      dividers = {\n        years: 'y',\n        months: 'mo',\n        weeks: 'w',\n        days: 'd',\n        hours: 'h',\n        minutes: 'm',\n        seconds: 's',\n      };\n      break;\n    case 'long':\n      dividers = {\n        /* eslint-disable @gitlab/require-i18n-strings */\n        years: ' year',\n        months: ' month',\n        weeks: ' week',\n        days: ' day',\n        hours: ' hour',\n        minutes: ' minute',\n        seconds: ' second',\n        /* eslint-enable @gitlab/require-i18n-strings */\n        pluralize: true,\n      };\n      break;\n    case 'chrono':\n      dividers = {\n        years: ':',\n        months: ':',\n        weeks: ':',\n        days: ':',\n        hours: ':',\n        minutes: ':',\n        seconds: ':',\n        keepZero: true,\n      };\n      process = (str) => {\n        // Pad zeros\n        // Get rid of lead off times if they are zero\n        // Get rid of lead off zero\n        // Get rid of trailing:\n        const divider = ':';\n        const processed = [];\n        str.split(divider).forEach((n) => {\n          if (n === '') {\n            return;\n          }\n          // add zeros only if n is an integer\n          if (n.search('\\\\.') >= 0) {\n            processed.push(\n              parseFloat(n)\n                .toFixed(decimalPlaces)\n                .padStart(3 + decimalPlaces, '0'),\n            );\n          } else {\n            processed.push(n.padStart(2, '0'));\n          }\n        });\n        return processed\n          .join(divider)\n          .replace(/^(00:)+/g, '')\n          .replace(/^0/g, '')\n          .replace(/:$/g, '');\n      };\n      joiner = '';\n      break;\n    default:\n      dividers = {\n        /* eslint-disable @gitlab/require-i18n-strings */\n        years: ' yr',\n        months: ' mo',\n        weeks: ' wk',\n        days: ' day',\n        hours: ' hr',\n        minutes: ' min',\n        seconds: ' sec',\n        /* eslint-enable @gitlab/require-i18n-strings */\n        pluralize: true,\n      };\n      break;\n  }\n\n  let result = [];\n  ['years', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds'].forEach((t) => {\n    if (t === 'weeks' && !opts.weeks) {\n      return;\n    }\n    let num = units[t];\n    if (t === 'seconds' && num % 0 !== 0) {\n      num = num.toFixed(decimalPlaces);\n    } else {\n      num = num.toString();\n    }\n    const keepZero = !dividers.keepZero && t === 'seconds' ? opts.keepZero : dividers.keepZero;\n    const humanized = humanizeTimeUnit(num, dividers[t], dividers.pluralize, keepZero);\n    if (humanized !== null) {\n      result.push(humanized);\n    }\n  });\n\n  if (opts.units) {\n    result = result.slice(0, opts.units);\n  }\n\n  result = result.join(joiner);\n\n  if (process) {\n    result = process(result);\n  }\n\n  return result.length === 0 ? null : result;\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\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"AwardEmojiFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AwardEmoji\"}},\"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\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":82}};\n    doc.loc.source = {\"body\":\"fragment AwardEmojiFragment on AwardEmoji {\\n  name\\n  user {\\n    id\\n    name\\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[\"AwardEmojiFragment\"] = oneQuery(doc, \"AwardEmojiFragment\");\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","var baseDifference = require('./_baseDifference'),\n    baseFlatten = require('./_baseFlatten'),\n    baseUniq = require('./_baseUniq');\n\n/**\n * The base implementation of methods like `_.xor`, without support for\n * 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 values.\n */\nfunction baseXor(arrays, iteratee, comparator) {\n  var length = arrays.length;\n  if (length < 2) {\n    return length ? baseUniq(arrays[0]) : [];\n  }\n  var index = -1,\n      result = Array(length);\n\n  while (++index < length) {\n    var array = arrays[index],\n        othIndex = -1;\n\n    while (++othIndex < length) {\n      if (othIndex != index) {\n        result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n      }\n    }\n  }\n  return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n}\n\nmodule.exports = baseXor;\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"currentUser\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"currentUser\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":100}};\n    doc.loc.source = {\"body\":\"#import \\\"../fragments/user.fragment.graphql\\\"\\n\\nquery currentUser {\\n  currentUser {\\n    ...User\\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));\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[\"currentUser\"] = oneQuery(doc, \"currentUser\");\n        \n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemBulkUpdate\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemBulkUpdateInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemBulkUpdate\"},\"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\":\"updatedWorkItemCount\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":133}};\n    doc.loc.source = {\"body\":\"mutation workItemBulkUpdate($input: WorkItemBulkUpdateInput!) {\\n  workItemBulkUpdate(input: $input) {\\n    updatedWorkItemCount\\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[\"workItemBulkUpdate\"] = oneQuery(doc, \"workItemBulkUpdate\");\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","(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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemNoteCreated\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"noteableId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NoteableID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemNoteCreated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"noteableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"noteableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemDiscussionNote\"},\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":201}};\n    doc.loc.source = {\"body\":\"#import \\\"./work_item_discussion_note.fragment.graphql\\\"\\n\\nsubscription workItemNoteCreated($noteableId: NoteableID) {\\n  workItemNoteCreated(noteableId: $noteableId) {\\n    ...WorkItemDiscussionNote\\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_discussion_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[\"workItemNoteCreated\"] = oneQuery(doc, \"workItemNoteCreated\");\n        \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"],"sourceRoot":""}