{"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 }} •\n <timeago-tooltip\n :time=\"suggestion.createdAt\"\n tooltip-placement=\"bottom\"\n class=\"gl-cursor-help\"\n />\n {{ __('by') }}\n <gl-link :href=\"suggestion.author.webUrl\">\n <user-avatar-image\n :img-src=\"suggestion.author.avatarUrl\"\n :size=\"16\"\n css-classes=\"mr-0 float-none\"\n tooltip-placement=\"bottom\"\n class=\"gl-inline-block\"\n >\n <span class=\"gl-block gl-font-bold\">{{ __('Author') }}</span> {{ suggestion.author.name }}\n <span class=\"gl-text-tertiary\">@{{ suggestion.author.username }}</span>\n </user-avatar-image>\n </gl-link>\n <template v-if=\"hasUpdated\">\n • {{ __('updated') }}\n <timeago-tooltip\n :time=\"suggestion.updatedAt\"\n tooltip-placement=\"bottom\"\n class=\"gl-cursor-help\"\n />\n </template>\n <span class=\"suggestion-counts\">\n <span\n v-for=\"{ count, icon, tooltipTitle, id } in counts\"\n :key=\"id\"\n v-gl-tooltip.bottom\n :title=\"tooltipTitle\"\n class=\"gl-ml-3 gl-cursor-help gl-text-subtle\"\n >\n <gl-icon :name=\"icon\" /> {{ count }}\n </span>\n </span>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./title_suggestions_item.vue?vue&type=template&id=1705e171\"\nimport script from \"./title_suggestions_item.vue?vue&type=script&lang=js\"\nexport * from \"./title_suggestions_item.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"suggestion-item\"},[_c('div',{staticClass:\"gl-flex gl-items-center\"},[(_vm.suggestion.confidential)?_c('gl-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom\",modifiers:{\"bottom\":true}}],staticClass:\"gl-mr-2 gl-cursor-help gl-text-orange-500\",attrs:{\"title\":_vm.__('Confidential'),\"name\":\"eye-slash\"}}):_vm._e(),_vm._v(\" \"),_c('gl-link',{staticClass:\"suggestion str-truncated-100 gl-font-bold !gl-text-default\",attrs:{\"href\":_vm.suggestion.webUrl,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(_vm.suggestion.title)+\"\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"suggestion-footer gl-text-subtle\"},[_c('span',{ref:\"state\"},[_c('gl-icon',{staticClass:\"gl-cursor-help\",class:_vm.stateIconClass,attrs:{\"name\":_vm.stateIconName}})],1),_vm._v(\" \"),_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.state,\"placement\":\"bottom\"}},[_c('span',{staticClass:\"gl-block\"},[_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(\" \"+_vm._s(_vm.stateTitle)+\" \")]),_vm._v(\"\\n \"+_vm._s(_vm.timeFormatted(_vm.closedOrCreatedDate))+\"\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"gl-text-tertiary\"},[_vm._v(_vm._s(_vm.tooltipTitle(_vm.closedOrCreatedDate)))])]),_vm._v(\"\\n #\"+_vm._s(_vm.suggestion.iid)+\" •\\n \"),_c('timeago-tooltip',{staticClass:\"gl-cursor-help\",attrs:{\"time\":_vm.suggestion.createdAt,\"tooltip-placement\":\"bottom\"}}),_vm._v(\"\\n \"+_vm._s(_vm.__('by'))+\"\\n \"),_c('gl-link',{attrs:{\"href\":_vm.suggestion.author.webUrl}},[_c('user-avatar-image',{staticClass:\"gl-inline-block\",attrs:{\"img-src\":_vm.suggestion.author.avatarUrl,\"size\":16,\"css-classes\":\"mr-0 float-none\",\"tooltip-placement\":\"bottom\"}},[_c('span',{staticClass:\"gl-block gl-font-bold\"},[_vm._v(_vm._s(_vm.__('Author')))]),_vm._v(\" \"+_vm._s(_vm.suggestion.author.name)+\"\\n \"),_c('span',{staticClass:\"gl-text-tertiary\"},[_vm._v(\"@\"+_vm._s(_vm.suggestion.author.username))])])],1),_vm._v(\" \"),(_vm.hasUpdated)?[_vm._v(\"\\n • \"+_vm._s(_vm.__('updated'))+\"\\n \"),_c('timeago-tooltip',{staticClass:\"gl-cursor-help\",attrs:{\"time\":_vm.suggestion.updatedAt,\"tooltip-placement\":\"bottom\"}})]:_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"suggestion-counts\"},_vm._l((_vm.counts),function({ count, icon, tooltipTitle, id }){return _c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.bottom\",modifiers:{\"bottom\":true}}],key:id,staticClass:\"gl-ml-3 gl-cursor-help gl-text-subtle\",attrs:{\"title\":tooltipTitle}},[_c('gl-icon',{attrs:{\"name\":icon}}),_vm._v(\" \"+_vm._s(count)+\"\\n \")],1)}),0)],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./title_suggestions.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./title_suggestions.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport query from '../queries/issues.query.graphql';\nimport TitleSuggestionsItem from './title_suggestions_item.vue';\n\nexport default {\n components: {\n HelpIcon,\n TitleSuggestionsItem,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n projectPath: {\n type: String,\n required: true,\n },\n search: {\n type: String,\n required: true,\n },\n helpText: {\n type: String,\n required: false,\n default: '',\n },\n title: {\n type: String,\n required: false,\n default: '',\n },\n },\n apollo: {\n issues: {\n query,\n debounce: 1000,\n skip() {\n return this.isSearchEmpty;\n },\n update: (data) => data?.project?.issues?.edges.map(({ node }) => node) ?? [],\n variables() {\n return {\n fullPath: this.projectPath,\n search: this.search,\n };\n },\n },\n },\n data() {\n return {\n issues: [],\n loading: 0,\n };\n },\n computed: {\n isSearchEmpty() {\n return !this.search.length;\n },\n showSuggestions() {\n return !this.isSearchEmpty && this.issues.length && !this.loading;\n },\n helpIconTitle() {\n return this.helpText || this.$options.helpText;\n },\n suggestionsTitle() {\n return this.title || __('Similar issues');\n },\n },\n watch: {\n search() {\n if (this.isSearchEmpty) {\n this.issues = [];\n }\n },\n },\n helpText: __(\n 'These existing issues have a similar title. It might be better to comment there instead of creating another similar issue.',\n ),\n};\n</script>\n\n<template>\n <div v-show=\"showSuggestions\" class=\"form-group\">\n <div v-once class=\"gl-pb-3\">\n {{ suggestionsTitle }}\n <help-icon v-gl-tooltip.bottom :title=\"helpIconTitle\" :aria-label=\"helpIconTitle\" />\n </div>\n <ul class=\"gl-m-0 gl-list-none gl-p-0\">\n <li\n v-for=\"(suggestion, index) in issues\"\n :key=\"suggestion.id\"\n :class=\"{\n 'gl-mb-3': index !== issues.length - 1,\n }\"\n >\n <title-suggestions-item :suggestion=\"suggestion\" />\n </li>\n </ul>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./title_suggestions.vue?vue&type=template&id=334f59ca\"\nimport script from \"./title_suggestions.vue?vue&type=script&lang=js\"\nexport * from \"./title_suggestions.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","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, ' ');\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\">✓</template>\n {{ taskStatus }}\n <template v-if=\"updatedAt\">·</template>\n </template>\n\n <template v-if=\"updatedAt\">\n <gl-sprintf v-if=\"!hasUpdatedBy\" :message=\"__('Edited %{timeago}')\">\n <template #timeago>\n <time-ago-tooltip :time=\"updatedAt\" tooltip-placement=\"bottom\" />\n </template>\n </gl-sprintf>\n <gl-sprintf v-else :message=\"__('Edited %{timeago} by %{author}')\">\n <template #timeago>\n <time-ago-tooltip :time=\"updatedAt\" tooltip-placement=\"bottom\" />\n </template>\n <template #author>\n <gl-link :href=\"updatedByPath\" class=\"gl-text-subtle hover:gl-text-subtle\">\n {{ updatedByName }}\n </gl-link>\n </template>\n </gl-sprintf>\n </template>\n </small>\n</template>\n","import { render, staticRenderFns } from \"./edited.vue?vue&type=template&id=57541c0a\"\nimport script from \"./edited.vue?vue&type=script&lang=js\"\nexport * from \"./edited.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","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\">·</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 ·\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\">·</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":""}