{"version":3,"sources":["webpack:///./sidebar/components/labels/labels_select_widget/label_item.vue","webpack:///./sidebar/components/labels/labels_select_widget/label_item.vue?8ba5","webpack:///sidebar/components/labels/labels_select_widget/label_item.vue","webpack:///./sidebar/components/labels/labels_select_widget/label_item.vue?1f7e","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_footer.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_footer.vue?15fa","webpack:///sidebar/components/labels/labels_select_widget/dropdown_footer.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_footer.vue?85ba","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_header.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_header.vue?c429","webpack:///sidebar/components/labels/labels_select_widget/dropdown_header.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_header.vue?135b","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/issuable_labels.subscription.graphql","webpack:///./sidebar/components/labels/labels_select_widget/labels_select_root.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents_labels_view.vue?9ca6","webpack:///sidebar/components/labels/labels_select_widget/dropdown_contents_labels_view.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents_labels_view.vue?1e44","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents_labels_view.vue","webpack:///./sidebar/components/labels/labels_select_widget/utils.js","webpack:///sidebar/components/labels/labels_select_widget/dropdown_contents.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents.vue?f68a","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents.vue?fcbc","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents.vue","webpack:///./sidebar/components/labels/labels_select_widget/embedded_labels_list.vue?8b9d","webpack:///sidebar/components/labels/labels_select_widget/embedded_labels_list.vue","webpack:///./sidebar/components/labels/labels_select_widget/embedded_labels_list.vue?5075","webpack:///./sidebar/components/labels/labels_select_widget/embedded_labels_list.vue","webpack:///./sidebar/components/labels/labels_select_widget/labels_select_root.vue?d5a3","webpack:///sidebar/components/labels/labels_select_widget/labels_select_root.vue","webpack:///./sidebar/components/labels/labels_select_widget/labels_select_root.vue?3d0f","webpack:///./sidebar/components/sidebar_editable_item.vue","webpack:///./sidebar/components/sidebar_editable_item.vue?0348","webpack:///sidebar/components/sidebar_editable_item.vue","webpack:///./sidebar/components/sidebar_editable_item.vue?6457","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_value.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_value.vue?1090","webpack:///sidebar/components/labels/labels_select_widget/dropdown_value.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_value.vue?9943"],"names":["props","label","type","Object","required","component","_c","this","_self","staticClass","style","color","attrs","_v","_s","title","components","GlDropdownItem","inject","footerCreateLabelTitle","String","footerManageLabelTitle","default","computed","showManageLabelsItem","labelsManagePath","_vm","allowLabelCreate","nativeOn","$event","stopPropagation","$emit","_e","GlButton","GlSearchBoxByType","labelsCreateTitle","labelsListTitle","showDropdownContentsCreateView","Boolean","labelsFetchInProgress","searchKey","isStandalone","dropdownTitle","methods","focusInput","_this$$refs$searchInp","$refs","searchInput","__","on","ref","indexOf","_k","keyCode","key","doc","loc","source","names","definitions","concat","filter","def","kind","name","value","definitionRefs","findOperation","i","length","element","forEach","refs","Set","collectFragmentReferences","node","add","selectionSet","selections","selection","variableDefinitions","module","exports","operationName","newDoc","hasOwnProperty","opRefs","allRefs","newRefs","refName","size","prevRefs","has","childRef","op","push","oneQuery","GlLoadingIcon","GlIntersectionObserver","LabelItem","model","prop","allowMultiselect","localSelectedLabels","Array","fullPath","workspaceType","data","labels","isVisible","apollo","query","workspaceLabelsQueries","variables","searchTerm","skip","update","_data$workspace","workspace","nodes","error","createAlert","message","$apollo","queries","loading","localSelectedLabelsIds","map","getIdFromGraphQLId","id","visibleLabels","fuzzaldrinPlus","showNoMatchingResultsMessage","shouldHighlightFirstItem","isLabelSelected","includes","scrollIntoViewIfNeeded","highlightedLabel","labelsListContainer","querySelector","container","getBoundingClientRect","bottom","scrollTop","top","updateSelectedLabels","handleLabelClick","onDropdownAppear","selectFirstItem","handleFocus","event","index","_event$target$parentN","target","classList","contains","remove","parentNode","nextElementSibling","focus","_l","directives","rawName","expression","isDropdownVariantSidebar","variant","VARIANT_SIDEBAR","isDropdownVariantStandalone","VARIANT_STANDALONE","isDropdownVariantEmbedded","VARIANT_EMBEDDED","DropdownContentsLabelsView","DropdownContentsCreateView","DropdownHeader","DropdownFooter","GlDropdown","GlLink","toggleAttrs","selectedLabels","dropdownButtonText","attrWorkspacePath","labelCreateType","isDirty","dropdownContentsView","buttonText","sprintf","s__","firstLabelName","remainingLabelCount","showDropdownFooter","isSidebar","watch","handler","deep","newVal","dropdown","show","hide","setLabels","created","debouncedSearchKeyUpdate","_debounce","setSearchKey","DEFAULT_DEBOUNCE_AND_THROTTLE_MS","beforeDestroy","cancel","toggleDropdownContentsCreateView","toggleDropdownContent","_this$$refs$dropdown","$_popper","scheduleUpdate","handleDropdownHide","setFocus","header","hideDropdown","showDropdown","clearSearch","handleNewLabel","scopedSlots","_u","fn","preventDefault","apply","arguments","proxy","tag","callback","$$v","GlLabel","disabled","allowLabelRemove","supportsLockOnMerge","labelsFilterBasePath","labelsFilterParam","sortedSelectedLabels","_sortBy","isScopedLabel","buildFilterUrl","basePath","filterParam","encodeURIComponent","scopedLabel","allowScopedLabels","isLabelLocked","lock_on_merge","showCloseButton","removeLabel","labelId","description","DropdownValue","DropdownContents","EmbeddedLabelsList","SidebarEditableItem","mixins","glFeatureFlagsMixin","allowLabelEdit","iid","showEmbeddedLabelsList","issuableType","issuableSupportsLockOnMerge","contentIsOnViewport","issuable","labelsSelectInProgress","oldIid","sidebarExpandedOnClick","isLoading","issuableLabelIds","issuableLabels","_this$issuable","issuableId","_this$issuable2","isRealtimeEnabled","glFeatures","realtimeLabels","isLabelListEnabled","isLockOnMergeSupported","_this$issuable3","labelShortcutDescription","shouldDisableShortcuts","ISSUABLE_CHANGE_LABEL","labelShortcutKey","keysFor","labelTooltip","sanitize","issuableLabelsQueries","issuableQuery","queryVariables","TYPE_TEST_CASE","types","subscribeToMore","document","issuableLabelsSubscription","updateQuery","_","subscriptionData","issuableLabelsUpdated","oldVal","mounted","addEventListener","handleCollapsedValueClick","removeEventListener","handleDropdownClose","getUpdateVariables","collapseEditableItem","_this$$refs$editable","editable","collapse","_this","toggle","dropdownContents","DEBOUNCE_DROPDOWN_DELAY","labelIds","currentIid","updateVariables","projectPath","TYPE_ISSUE","TYPE_MERGE_REQUEST","operationMode","mutationOperationMode","replace","TYPE_EPIC","groupPath","addLabelIds","removeLabelIds","inputVariables","_this2","mutate","mutation","input","then","_data$updateIssuableL","_data$updateIssuableL2","_data$updateIssuableL3","updateIssuableLabels","errors","Error","catch","captureError","finally","getRemoveVariables","removeVariables","handleLabelRemove","class","_t","edit","i18n","unassigned","GlTooltip","GlTooltipDirective","canUpdate","isClassicSidebar","buttonId","initialLoading","tracking","property","canEdit","shouldShowConfirmationPopover","editTooltip","editAriaLabel","editKeyshortcuts","editButtonText","editTooltipText","editAriaLabelText","editKeyshortcutsText","destroyed","window","collapseWhenOffClick","collapseOnEscape","$el","expand","emitEvent","currentTarget","modifiers","GlIcon","disableLabels","labelsList","labelsString","slice","join","labelFilterUrl","lockOnMerge","handleCollapsedClick"],"mappings":"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","file":"42.49187b26.chunk.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-flex gl-break-anywhere\"},[_c('span',{staticClass:\"dropdown-label-box gl-top-0 gl-mr-3 gl-shrink-0\",style:({ 'background-color': _vm.label.color }),attrs:{\"data-testid\":\"label-color-box\"}}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.label.title))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./label_item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./label_item.vue?vue&type=script&lang=js\"","<script>\nexport default {\n props: {\n label: {\n type: Object,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-flex gl-break-anywhere\">\n <span\n class=\"dropdown-label-box gl-top-0 gl-mr-3 gl-shrink-0\"\n :style=\"{ 'background-color': label.color }\"\n data-testid=\"label-color-box\"\n ></span>\n <span>{{ label.title }}</span>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./label_item.vue?vue&type=template&id=486db2f8\"\nimport script from \"./label_item.vue?vue&type=script&lang=js\"\nexport * from \"./label_item.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"data-testid\":\"dropdown-footer\"}},[(_vm.allowLabelCreate)?_c('gl-dropdown-item',{attrs:{\"data-testid\":\"create-label-button\"},nativeOn:{\"!click\":function($event){$event.stopPropagation();return _vm.$emit('toggleDropdownContentsCreateView')}}},[_vm._v(\"\\n \"+_vm._s(_vm.footerCreateLabelTitle)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showManageLabelsItem)?_c('gl-dropdown-item',{attrs:{\"data-testid\":\"manage-labels-button\",\"href\":_vm.labelsManagePath},nativeOn:{\"!click\":function($event){$event.stopPropagation();}}},[_vm._v(\"\\n \"+_vm._s(_vm.footerManageLabelTitle)+\"\\n \")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_footer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_footer.vue?vue&type=script&lang=js\"","<script>\nimport { GlDropdownItem } from '@gitlab/ui';\n\nexport default {\n components: {\n GlDropdownItem,\n },\n inject: ['allowLabelCreate', 'labelsManagePath'],\n props: {\n footerCreateLabelTitle: {\n type: String,\n required: true,\n },\n footerManageLabelTitle: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n showManageLabelsItem() {\n return this.footerManageLabelTitle && this.labelsManagePath;\n },\n },\n};\n</script>\n\n<template>\n <div data-testid=\"dropdown-footer\">\n <gl-dropdown-item\n v-if=\"allowLabelCreate\"\n data-testid=\"create-label-button\"\n @click.capture.native.stop=\"$emit('toggleDropdownContentsCreateView')\"\n >\n {{ footerCreateLabelTitle }}\n </gl-dropdown-item>\n <gl-dropdown-item\n v-if=\"showManageLabelsItem\"\n data-testid=\"manage-labels-button\"\n :href=\"labelsManagePath\"\n @click.capture.native.stop\n >\n {{ footerManageLabelTitle }}\n </gl-dropdown-item>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_footer.vue?vue&type=template&id=77bef9ca\"\nimport script from \"./dropdown_footer.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_footer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"data-testid\":\"dropdown-header\"}},[(!_vm.isStandalone)?_c('div',{staticClass:\"dropdown-title gl-mb-0 gl-flex gl-items-center gl-pb-4 gl-pt-2\",attrs:{\"data-testid\":\"dropdown-header-title\"}},[(_vm.showDropdownContentsCreateView)?_c('gl-button',{staticClass:\"js-btn-back dropdown-header-button !gl-p-0\",attrs:{\"aria-label\":_vm.__('Go back'),\"variant\":\"link\",\"size\":\"small\",\"icon\":\"arrow-left\",\"data-testid\":\"go-back-button\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('toggleDropdownContentsCreateView')}}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"gl-grow\"},[_vm._v(_vm._s(_vm.dropdownTitle))]),_vm._v(\" \"),_c('gl-button',{staticClass:\"dropdown-header-button !gl-p-0\",attrs:{\"aria-label\":_vm.__('Close'),\"variant\":\"link\",\"size\":\"small\",\"icon\":\"close\",\"data-testid\":\"close-labels-dropdown-button\"},on:{\"click\":function($event){return _vm.$emit('closeDropdown')}}})],1):_vm._e(),_vm._v(\" \"),(!_vm.showDropdownContentsCreateView)?_c('gl-search-box-by-type',{ref:\"searchInput\",attrs:{\"value\":_vm.searchKey,\"placeholder\":_vm.__('Search labels'),\"disabled\":_vm.labelsFetchInProgress,\"data-testid\":\"dropdown-input-field\"},on:{\"input\":function($event){return _vm.$emit('input', $event)},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.$emit('searchEnter', $event)}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_header.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_header.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlSearchBoxByType } from '@gitlab/ui';\n\nexport default {\n components: {\n GlButton,\n GlSearchBoxByType,\n },\n props: {\n labelsCreateTitle: {\n type: String,\n required: true,\n },\n labelsListTitle: {\n type: String,\n required: true,\n },\n showDropdownContentsCreateView: {\n type: Boolean,\n required: true,\n },\n labelsFetchInProgress: {\n type: Boolean,\n required: false,\n default: false,\n },\n searchKey: {\n type: String,\n required: true,\n },\n isStandalone: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n dropdownTitle() {\n return this.showDropdownContentsCreateView ? this.labelsCreateTitle : this.labelsListTitle;\n },\n },\n methods: {\n focusInput() {\n this.$refs.searchInput?.focusInput();\n },\n },\n};\n</script>\n\n<template>\n <div data-testid=\"dropdown-header\">\n <div\n v-if=\"!isStandalone\"\n class=\"dropdown-title gl-mb-0 gl-flex gl-items-center gl-pb-4 gl-pt-2\"\n data-testid=\"dropdown-header-title\"\n >\n <gl-button\n v-if=\"showDropdownContentsCreateView\"\n :aria-label=\"__('Go back')\"\n variant=\"link\"\n size=\"small\"\n class=\"js-btn-back dropdown-header-button !gl-p-0\"\n icon=\"arrow-left\"\n data-testid=\"go-back-button\"\n @click.stop=\"$emit('toggleDropdownContentsCreateView')\"\n />\n <span class=\"gl-grow\">{{ dropdownTitle }}</span>\n <gl-button\n :aria-label=\"__('Close')\"\n variant=\"link\"\n size=\"small\"\n class=\"dropdown-header-button !gl-p-0\"\n icon=\"close\"\n data-testid=\"close-labels-dropdown-button\"\n @click=\"$emit('closeDropdown')\"\n />\n </div>\n <gl-search-box-by-type\n v-if=\"!showDropdownContentsCreateView\"\n ref=\"searchInput\"\n :value=\"searchKey\"\n :placeholder=\"__('Search labels')\"\n :disabled=\"labelsFetchInProgress\"\n data-testid=\"dropdown-input-field\"\n @input=\"$emit('input', $event)\"\n @keydown.enter=\"$emit('searchEnter', $event)\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_header.vue?vue&type=template&id=97abd698\"\nimport script from \"./dropdown_header.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_header.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableLabelsUpdatedEE\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableLabelsUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Epic\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":495}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/label.fragment.graphql\\\"\\n\\nsubscription issuableLabelsUpdatedEE($issuableId: IssuableID!) {\\n issuableLabelsUpdated(issuableId: $issuableId) {\\n ... on Issue {\\n id\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n }\\n ... on MergeRequest {\\n id\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n }\\n ... on Epic {\\n id\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/label.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"issuableLabelsUpdatedEE\"] = oneQuery(doc, \"issuableLabelsUpdatedEE\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"labels-select-wrapper gl-relative\",class:{\n 'is-standalone': _vm.isDropdownVariantStandalone(_vm.variant),\n 'is-embedded': _vm.isDropdownVariantEmbedded(_vm.variant),\n },attrs:{\"data-testid\":\"sidebar-labels\"}},[(_vm.isDropdownVariantSidebar(_vm.variant))?[_c('sidebar-editable-item',{ref:\"editable\",attrs:{\"title\":_vm.__('Labels'),\"edit-tooltip\":_vm.labelTooltip,\"edit-aria-label\":_vm.labelShortcutDescription,\"edit-keyshortcuts\":_vm.labelShortcutKey,\"loading\":_vm.isLoading,\"can-edit\":_vm.allowLabelEdit},on:{\"open\":function($event){_vm.oldIid = null}},scopedSlots:_vm._u([{key:\"collapsed\",fn:function(){return [_c('dropdown-value',{staticClass:\"gl-pt-2\",attrs:{\"disable-labels\":_vm.labelsSelectInProgress,\"selected-labels\":_vm.issuableLabels,\"allow-label-remove\":_vm.allowLabelRemove,\"supports-lock-on-merge\":_vm.isLockOnMergeSupported,\"labels-filter-base-path\":_vm.labelsFilterBasePath,\"labels-filter-param\":_vm.labelsFilterParam},on:{\"onLabelRemove\":_vm.handleLabelRemove,\"onCollapsedValueClick\":_vm.handleCollapsedValueClick}},[_vm._t(\"default\")],2)]},proxy:true},{key:\"default\",fn:function({ edit }){return [_c('dropdown-value',{staticClass:\"gl-mb-2\",attrs:{\"disable-labels\":_vm.labelsSelectInProgress,\"selected-labels\":_vm.issuableLabels,\"allow-label-remove\":_vm.allowLabelRemove,\"supports-lock-on-merge\":_vm.isLockOnMergeSupported,\"labels-filter-base-path\":_vm.labelsFilterBasePath,\"labels-filter-param\":_vm.labelsFilterParam},on:{\"onLabelRemove\":_vm.handleLabelRemove}},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('dropdown-contents',{ref:\"dropdownContents\",staticClass:\"gl-mt-3 gl-w-full\",attrs:{\"dropdown-button-text\":_vm.dropdownButtonText,\"allow-multiselect\":_vm.allowMultiselect,\"labels-list-title\":_vm.labelsListTitle,\"footer-create-label-title\":_vm.footerCreateLabelTitle,\"footer-manage-label-title\":_vm.footerManageLabelTitle,\"labels-create-title\":_vm.labelsCreateTitle,\"selected-labels\":_vm.issuableLabels,\"variant\":_vm.variant,\"is-visible\":edit,\"full-path\":_vm.fullPath,\"workspace-type\":_vm.workspaceType,\"attr-workspace-path\":_vm.attrWorkspacePath,\"label-create-type\":_vm.labelCreateType},on:{\"setLabels\":_vm.handleDropdownClose,\"closeDropdown\":_vm.collapseEditableItem}})]}}],null,true)})]:[_c('dropdown-contents',{ref:\"dropdownContents\",staticClass:\"issuable-form-select-holder\",attrs:{\"dropdown-button-text\":_vm.dropdownButtonText,\"allow-multiselect\":_vm.allowMultiselect,\"labels-list-title\":_vm.labelsListTitle,\"footer-create-label-title\":_vm.footerCreateLabelTitle,\"footer-manage-label-title\":_vm.footerManageLabelTitle,\"labels-create-title\":_vm.labelsCreateTitle,\"selected-labels\":_vm.issuableLabels,\"variant\":_vm.variant,\"full-path\":_vm.fullPath,\"workspace-type\":_vm.workspaceType,\"attr-workspace-path\":_vm.attrWorkspacePath,\"label-create-type\":_vm.labelCreateType},on:{\"setLabels\":_vm.handleDropdownClose}}),_vm._v(\" \"),(_vm.isLabelListEnabled)?_c('embedded-labels-list',{attrs:{\"disabled\":_vm.labelsSelectInProgress,\"selected-labels\":_vm.issuableLabels,\"allow-label-remove\":_vm.allowLabelRemove,\"supports-lock-on-merge\":_vm.isLockOnMergeSupported,\"labels-filter-base-path\":_vm.labelsFilterBasePath,\"labels-filter-param\":_vm.labelsFilterParam},on:{\"onLabelRemove\":_vm.handleLabelRemove}}):_vm._e()]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_contents_labels_view.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_contents_labels_view.vue?vue&type=script&lang=js\"","<script>\nimport { GlDropdownItem, GlLoadingIcon, GlIntersectionObserver } from '@gitlab/ui';\nimport fuzzaldrinPlus from 'fuzzaldrin-plus';\nimport { createAlert } from '~/alert';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { __ } from '~/locale';\nimport { workspaceLabelsQueries } from '../../../queries/constants';\nimport LabelItem from './label_item.vue';\n\nexport default {\n components: {\n GlDropdownItem,\n GlLoadingIcon,\n GlIntersectionObserver,\n LabelItem,\n },\n model: {\n prop: 'localSelectedLabels',\n },\n props: {\n allowMultiselect: {\n type: Boolean,\n required: true,\n },\n localSelectedLabels: {\n type: Array,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n searchKey: {\n type: String,\n required: true,\n },\n workspaceType: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n labels: [],\n isVisible: false,\n };\n },\n apollo: {\n labels: {\n query() {\n return workspaceLabelsQueries[this.workspaceType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n searchTerm: this.searchKey,\n };\n },\n skip() {\n return this.searchKey.length === 1 || !this.isVisible;\n },\n update: (data) => data.workspace?.labels?.nodes || [],\n error() {\n createAlert({ message: __('Error fetching labels.') });\n },\n },\n },\n computed: {\n labelsFetchInProgress() {\n return this.$apollo.queries.labels.loading;\n },\n localSelectedLabelsIds() {\n return this.localSelectedLabels.map((label) => getIdFromGraphQLId(label.id));\n },\n visibleLabels() {\n if (this.searchKey) {\n return fuzzaldrinPlus.filter(this.labels, this.searchKey, {\n key: ['title'],\n });\n }\n return this.labels;\n },\n showNoMatchingResultsMessage() {\n return Boolean(this.searchKey) && this.visibleLabels.length === 0;\n },\n shouldHighlightFirstItem() {\n return this.searchKey !== '' && this.visibleLabels.length > 0;\n },\n },\n methods: {\n isLabelSelected(label) {\n return this.localSelectedLabelsIds.includes(getIdFromGraphQLId(label.id));\n },\n /**\n * This method scrolls item from dropdown into\n * the view if it is off the viewable area of the\n * container.\n */\n scrollIntoViewIfNeeded() {\n const highlightedLabel = this.$refs.labelsListContainer.querySelector('.is-focused');\n\n if (highlightedLabel) {\n const container = this.$refs.labelsListContainer.getBoundingClientRect();\n const label = highlightedLabel.getBoundingClientRect();\n\n if (label.bottom > container.bottom) {\n this.$refs.labelsListContainer.scrollTop += label.bottom - container.bottom;\n } else if (label.top < container.top) {\n this.$refs.labelsListContainer.scrollTop -= container.top - label.top;\n }\n }\n },\n updateSelectedLabels(label) {\n let labels;\n if (this.isLabelSelected(label)) {\n labels = this.localSelectedLabels.filter(\n ({ id }) => id !== getIdFromGraphQLId(label.id) && id !== label.id,\n );\n } else {\n labels = [...this.localSelectedLabels, label];\n }\n this.$emit('input', labels);\n },\n handleLabelClick(label) {\n this.updateSelectedLabels(label);\n if (!this.allowMultiselect) {\n this.$emit('closeDropdown', this.localSelectedLabels);\n }\n },\n onDropdownAppear() {\n this.isVisible = true;\n },\n selectFirstItem() {\n if (this.shouldHighlightFirstItem) {\n this.handleLabelClick(this.visibleLabels[0]);\n }\n },\n handleFocus(event, index) {\n if (index === 0 && event.target.classList.contains('is-focused')) {\n event.target.classList.remove('is-focused');\n\n // Focus next element (if available) as the first item was already focused.\n if (event.target.parentNode?.nextElementSibling?.querySelector('button')) {\n event.target.parentNode.nextElementSibling.querySelector('button').focus();\n }\n }\n },\n },\n};\n</script>\n\n<template>\n <gl-intersection-observer @appear=\"onDropdownAppear\">\n <div class=\"js-labels-list\">\n <div ref=\"labelsListContainer\" data-testid=\"dropdown-content\">\n <gl-loading-icon\n v-if=\"labelsFetchInProgress\"\n class=\"labels-fetch-loading gl-mb-3 gl-h-full gl-w-full gl-items-center\"\n size=\"sm\"\n />\n <template v-else>\n <gl-dropdown-item\n v-for=\"(label, index) in visibleLabels\"\n :key=\"label.id\"\n :is-checked=\"isLabelSelected(label)\"\n is-check-item\n :active=\"shouldHighlightFirstItem && index === 0\"\n active-class=\"is-focused\"\n data-testid=\"labels-list\"\n @focus.capture.native=\"handleFocus($event, index)\"\n @click.capture.native.stop=\"handleLabelClick(label)\"\n >\n <label-item :label=\"label\" />\n </gl-dropdown-item>\n <gl-dropdown-item\n v-show=\"showNoMatchingResultsMessage\"\n class=\"gl-p-3 gl-text-center\"\n data-testid=\"no-results\"\n >\n {{ __('No matching results') }}\n </gl-dropdown-item>\n </template>\n </div>\n </div>\n </gl-intersection-observer>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_contents_labels_view.vue?vue&type=template&id=c7ae369c\"\nimport script from \"./dropdown_contents_labels_view.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_contents_labels_view.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-intersection-observer',{on:{\"appear\":_vm.onDropdownAppear}},[_c('div',{staticClass:\"js-labels-list\"},[_c('div',{ref:\"labelsListContainer\",attrs:{\"data-testid\":\"dropdown-content\"}},[(_vm.labelsFetchInProgress)?_c('gl-loading-icon',{staticClass:\"labels-fetch-loading gl-mb-3 gl-h-full gl-w-full gl-items-center\",attrs:{\"size\":\"sm\"}}):[_vm._l((_vm.visibleLabels),function(label,index){return _c('gl-dropdown-item',{key:label.id,attrs:{\"is-checked\":_vm.isLabelSelected(label),\"is-check-item\":\"\",\"active\":_vm.shouldHighlightFirstItem && index === 0,\"active-class\":\"is-focused\",\"data-testid\":\"labels-list\"},nativeOn:{\"!focus\":function($event){return _vm.handleFocus($event, index)},\"!click\":function($event){$event.stopPropagation();return _vm.handleLabelClick(label)}}},[_c('label-item',{attrs:{\"label\":label}})],1)}),_vm._v(\" \"),_c('gl-dropdown-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNoMatchingResultsMessage),expression:\"showNoMatchingResultsMessage\"}],staticClass:\"gl-p-3 gl-text-center\",attrs:{\"data-testid\":\"no-results\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('No matching results'))+\"\\n \")])]],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { VARIANT_EMBEDDED, VARIANT_SIDEBAR, VARIANT_STANDALONE } from './constants';\n\n/**\n * Returns boolean representing whether dropdown variant\n * is `sidebar`\n * @param {string} variant\n */\nexport const isDropdownVariantSidebar = (variant) => variant === VARIANT_SIDEBAR;\n\n/**\n * Returns boolean representing whether dropdown variant\n * is `standalone`\n * @param {string} variant\n */\nexport const isDropdownVariantStandalone = (variant) => variant === VARIANT_STANDALONE;\n\n/**\n * Returns boolean representing whether dropdown variant\n * is `embedded`\n * @param {string} variant\n */\nexport const isDropdownVariantEmbedded = (variant) => variant === VARIANT_EMBEDDED;\n","<script>\nimport { GlButton, GlDropdown, GlDropdownItem, GlLink } from '@gitlab/ui';\nimport { debounce } from 'lodash';\nimport { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';\nimport { __, s__, sprintf } from '~/locale';\nimport DropdownContentsCreateView from './dropdown_contents_create_view.vue';\nimport DropdownContentsLabelsView from './dropdown_contents_labels_view.vue';\nimport DropdownFooter from './dropdown_footer.vue';\nimport DropdownHeader from './dropdown_header.vue';\nimport { isDropdownVariantStandalone, isDropdownVariantSidebar } from './utils';\n\nexport default {\n components: {\n DropdownContentsLabelsView,\n DropdownContentsCreateView,\n DropdownHeader,\n DropdownFooter,\n GlButton,\n GlDropdown,\n GlDropdownItem,\n GlLink,\n },\n inject: {\n toggleAttrs: {\n default: () => ({}),\n },\n },\n props: {\n labelsCreateTitle: {\n type: String,\n required: true,\n },\n selectedLabels: {\n type: Array,\n required: true,\n },\n allowMultiselect: {\n type: Boolean,\n required: true,\n },\n labelsListTitle: {\n type: String,\n required: true,\n },\n dropdownButtonText: {\n type: String,\n required: true,\n },\n footerCreateLabelTitle: {\n type: String,\n required: true,\n },\n footerManageLabelTitle: {\n type: String,\n required: true,\n },\n variant: {\n type: String,\n required: true,\n },\n isVisible: {\n type: Boolean,\n required: false,\n default: false,\n },\n fullPath: {\n type: String,\n required: true,\n },\n workspaceType: {\n type: String,\n required: true,\n },\n attrWorkspacePath: {\n type: String,\n required: true,\n },\n labelCreateType: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n showDropdownContentsCreateView: false,\n localSelectedLabels: [...this.selectedLabels],\n isDirty: false,\n searchKey: '',\n };\n },\n computed: {\n dropdownContentsView() {\n if (this.showDropdownContentsCreateView) {\n return 'dropdown-contents-create-view';\n }\n return 'dropdown-contents-labels-view';\n },\n dropdownTitle() {\n return this.showDropdownContentsCreateView ? this.labelsCreateTitle : this.labelsListTitle;\n },\n buttonText() {\n if (!this.localSelectedLabels.length) {\n return this.dropdownButtonText || __('Label');\n }\n if (this.localSelectedLabels.length > 1) {\n return sprintf(s__('LabelSelect|%{firstLabelName} +%{remainingLabelCount} more'), {\n firstLabelName: this.localSelectedLabels[0].title,\n remainingLabelCount: this.localSelectedLabels.length - 1,\n });\n }\n return this.localSelectedLabels[0].title;\n },\n showDropdownFooter() {\n return !this.showDropdownContentsCreateView && !this.isStandalone;\n },\n isStandalone() {\n return isDropdownVariantStandalone(this.variant);\n },\n isSidebar() {\n return isDropdownVariantSidebar(this.variant);\n },\n },\n watch: {\n localSelectedLabels: {\n handler() {\n this.isDirty = true;\n },\n deep: true,\n },\n isVisible(newVal) {\n if (newVal) {\n this.$refs.dropdown.show();\n this.isDirty = false;\n this.localSelectedLabels = this.selectedLabels;\n } else {\n this.$refs.dropdown.hide();\n this.setLabels();\n }\n },\n selectedLabels(newVal) {\n if (!this.isDirty || !this.isSidebar) {\n this.localSelectedLabels = newVal;\n }\n },\n },\n created() {\n this.debouncedSearchKeyUpdate = debounce(this.setSearchKey, DEFAULT_DEBOUNCE_AND_THROTTLE_MS);\n },\n beforeDestroy() {\n this.debouncedSearchKeyUpdate.cancel();\n },\n methods: {\n toggleDropdownContentsCreateView() {\n this.showDropdownContentsCreateView = !this.showDropdownContentsCreateView;\n },\n toggleDropdownContent() {\n this.toggleDropdownContentsCreateView();\n // Required to recalculate dropdown position as its size changes\n if (this.$refs.dropdown?.$refs.dropdown) {\n this.$refs.dropdown.$refs.dropdown.$_popper.scheduleUpdate();\n }\n },\n setLabels() {\n if (!this.isDirty) {\n return;\n }\n this.$emit('setLabels', this.localSelectedLabels);\n },\n handleDropdownHide() {\n this.$emit('closeDropdown');\n if (!this.isSidebar) {\n this.setLabels();\n }\n },\n setSearchKey(value) {\n this.searchKey = value;\n },\n setFocus() {\n this.$refs.header.focusInput();\n },\n hideDropdown() {\n this.$refs.dropdown.hide();\n },\n showDropdown() {\n this.$refs.dropdown.show();\n },\n clearSearch() {\n if (!this.allowMultiselect || this.isStandalone) {\n return;\n }\n this.searchKey = '';\n this.setFocus();\n },\n selectFirstItem() {\n this.$refs.dropdownContentsView.selectFirstItem();\n },\n handleNewLabel(label) {\n this.localSelectedLabels = [...this.localSelectedLabels, label];\n this.toggleDropdownContent();\n this.clearSearch();\n },\n },\n};\n</script>\n\n<template>\n <gl-dropdown\n ref=\"dropdown\"\n :text=\"buttonText\"\n block\n data-testid=\"labels-select-dropdown-contents\"\n :toggle-attrs=\"toggleAttrs\"\n @hide=\"handleDropdownHide\"\n @shown=\"setFocus\"\n >\n <template #header>\n <dropdown-header\n ref=\"header\"\n :search-key=\"searchKey\"\n :labels-create-title=\"labelsCreateTitle\"\n :labels-list-title=\"labelsListTitle\"\n :show-dropdown-contents-create-view=\"showDropdownContentsCreateView\"\n :is-standalone=\"isStandalone\"\n @toggleDropdownContentsCreateView=\"toggleDropdownContent\"\n @closeDropdown=\"hideDropdown\"\n @input=\"debouncedSearchKeyUpdate\"\n @searchEnter.prevent=\"selectFirstItem\"\n />\n </template>\n <template #default>\n <component\n :is=\"dropdownContentsView\"\n ref=\"dropdownContentsView\"\n v-model=\"localSelectedLabels\"\n :search-key=\"searchKey\"\n :allow-multiselect=\"allowMultiselect\"\n :full-path=\"fullPath\"\n :workspace-type=\"workspaceType\"\n :attr-workspace-path=\"attrWorkspacePath\"\n :label-create-type=\"labelCreateType\"\n @hideCreateView=\"toggleDropdownContent\"\n @labelCreated=\"handleNewLabel\"\n @input=\"clearSearch\"\n />\n </template>\n <template #footer>\n <dropdown-footer\n v-if=\"showDropdownFooter\"\n :footer-create-label-title=\"footerCreateLabelTitle\"\n :footer-manage-label-title=\"footerManageLabelTitle\"\n @toggleDropdownContentsCreateView=\"toggleDropdownContent\"\n />\n </template>\n </gl-dropdown>\n</template>\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_contents.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_contents.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./dropdown_contents.vue?vue&type=template&id=bc30b3ca\"\nimport script from \"./dropdown_contents.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_contents.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-dropdown',{ref:\"dropdown\",attrs:{\"text\":_vm.buttonText,\"block\":\"\",\"data-testid\":\"labels-select-dropdown-contents\",\"toggle-attrs\":_vm.toggleAttrs},on:{\"hide\":_vm.handleDropdownHide,\"shown\":_vm.setFocus},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('dropdown-header',{ref:\"header\",attrs:{\"search-key\":_vm.searchKey,\"labels-create-title\":_vm.labelsCreateTitle,\"labels-list-title\":_vm.labelsListTitle,\"show-dropdown-contents-create-view\":_vm.showDropdownContentsCreateView,\"is-standalone\":_vm.isStandalone},on:{\"toggleDropdownContentsCreateView\":_vm.toggleDropdownContent,\"closeDropdown\":_vm.hideDropdown,\"input\":_vm.debouncedSearchKeyUpdate,\"searchEnter\":function($event){$event.preventDefault();return _vm.selectFirstItem.apply(null, arguments)}}})]},proxy:true},{key:\"default\",fn:function(){return [_c(_vm.dropdownContentsView,{ref:\"dropdownContentsView\",tag:\"component\",attrs:{\"search-key\":_vm.searchKey,\"allow-multiselect\":_vm.allowMultiselect,\"full-path\":_vm.fullPath,\"workspace-type\":_vm.workspaceType,\"attr-workspace-path\":_vm.attrWorkspacePath,\"label-create-type\":_vm.labelCreateType},on:{\"hideCreateView\":_vm.toggleDropdownContent,\"labelCreated\":_vm.handleNewLabel,\"input\":_vm.clearSearch},model:{value:(_vm.localSelectedLabels),callback:function ($$v) {_vm.localSelectedLabels=$$v},expression:\"localSelectedLabels\"}})]},proxy:true},{key:\"footer\",fn:function(){return [(_vm.showDropdownFooter)?_c('dropdown-footer',{attrs:{\"footer-create-label-title\":_vm.footerCreateLabelTitle,\"footer-manage-label-title\":_vm.footerManageLabelTitle},on:{\"toggleDropdownContentsCreateView\":_vm.toggleDropdownContent}}):_vm._e()]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./embedded_labels_list.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./embedded_labels_list.vue?vue&type=script&lang=js\"","<script>\nimport { GlLabel } from '@gitlab/ui';\nimport { sortBy } from 'lodash';\nimport { isScopedLabel } from '~/lib/utils/common_utils';\n\nexport default {\n components: {\n GlLabel,\n },\n inject: ['allowScopedLabels'],\n props: {\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n selectedLabels: {\n type: Array,\n required: true,\n },\n allowLabelRemove: {\n type: Boolean,\n required: true,\n },\n supportsLockOnMerge: {\n type: Boolean,\n required: false,\n default: false,\n },\n labelsFilterBasePath: {\n type: String,\n required: true,\n },\n labelsFilterParam: {\n type: String,\n required: true,\n },\n },\n computed: {\n sortedSelectedLabels() {\n return sortBy(this.selectedLabels, (label) => isScopedLabel(label));\n },\n },\n methods: {\n buildFilterUrl({ title }) {\n const { labelsFilterBasePath: basePath, labelsFilterParam: filterParam } = this;\n\n return `${basePath}?${filterParam}[]=${encodeURIComponent(title)}`;\n },\n scopedLabel(label) {\n return this.allowScopedLabels && isScopedLabel(label);\n },\n isLabelLocked(label) {\n // These particular labels were initialized from HAML data, so the attributes are\n // in snake case instead of camel case\n return label.lock_on_merge && this.supportsLockOnMerge;\n },\n showCloseButton(label) {\n return this.allowLabelRemove && !this.isLabelLocked(label);\n },\n removeLabel(labelId) {\n this.$emit('onLabelRemove', labelId);\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-mt-3\" data-testid=\"embedded-labels-list\">\n <gl-label\n v-for=\"label in sortedSelectedLabels\"\n :key=\"label.id\"\n class=\"gl-mb-2 gl-mr-2\"\n :data-qa-label-name=\"label.title\"\n :title=\"label.title\"\n :description=\"label.description\"\n :background-color=\"label.color\"\n :target=\"buildFilterUrl(label)\"\n :scoped=\"scopedLabel(label)\"\n :show-close-button=\"showCloseButton(label)\"\n :disabled=\"disabled\"\n tooltip-placement=\"top\"\n @close=\"removeLabel(label.id)\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./embedded_labels_list.vue?vue&type=template&id=4cf671a6\"\nimport script from \"./embedded_labels_list.vue?vue&type=script&lang=js\"\nexport * from \"./embedded_labels_list.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-mt-3\",attrs:{\"data-testid\":\"embedded-labels-list\"}},_vm._l((_vm.sortedSelectedLabels),function(label){return _c('gl-label',{key:label.id,staticClass:\"gl-mb-2 gl-mr-2\",attrs:{\"data-qa-label-name\":label.title,\"title\":label.title,\"description\":label.description,\"background-color\":label.color,\"target\":_vm.buildFilterUrl(label),\"scoped\":_vm.scopedLabel(label),\"show-close-button\":_vm.showCloseButton(label),\"disabled\":_vm.disabled,\"tooltip-placement\":\"top\"},on:{\"close\":function($event){return _vm.removeLabel(label.id)}}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./labels_select_root.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./labels_select_root.vue?vue&type=script&lang=js\"","<script>\nimport { debounce } from 'lodash';\nimport issuableLabelsSubscription from 'ee_else_ce/sidebar/queries/issuable_labels.subscription.graphql';\nimport { mutationOperationMode, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { createAlert } from '~/alert';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { TYPE_EPIC, TYPE_ISSUE, TYPE_MERGE_REQUEST, TYPE_TEST_CASE } from '~/issues/constants';\n\nimport { __ } from '~/locale';\nimport { keysFor, ISSUABLE_CHANGE_LABEL } from '~/behaviors/shortcuts/keybindings';\nimport { shouldDisableShortcuts } from '~/behaviors/shortcuts/shortcuts_toggle';\nimport { sanitize } from '~/lib/dompurify';\nimport { issuableLabelsQueries } from '../../../queries/constants';\nimport SidebarEditableItem from '../../sidebar_editable_item.vue';\nimport { DEBOUNCE_DROPDOWN_DELAY, VARIANT_SIDEBAR } from './constants';\nimport DropdownContents from './dropdown_contents.vue';\nimport DropdownValue from './dropdown_value.vue';\nimport EmbeddedLabelsList from './embedded_labels_list.vue';\nimport {\n isDropdownVariantSidebar,\n isDropdownVariantStandalone,\n isDropdownVariantEmbedded,\n} from './utils';\n\nexport default {\n components: {\n DropdownValue,\n DropdownContents,\n EmbeddedLabelsList,\n SidebarEditableItem,\n },\n mixins: [glFeatureFlagsMixin()],\n inject: {\n allowLabelEdit: {\n default: false,\n },\n },\n props: {\n iid: {\n type: String,\n required: false,\n default: '',\n },\n fullPath: {\n type: String,\n required: true,\n },\n allowLabelRemove: {\n type: Boolean,\n required: false,\n default: false,\n },\n allowMultiselect: {\n type: Boolean,\n required: false,\n default: false,\n },\n showEmbeddedLabelsList: {\n type: Boolean,\n required: false,\n default: false,\n },\n variant: {\n type: String,\n required: false,\n default: VARIANT_SIDEBAR,\n },\n labelsFilterBasePath: {\n type: String,\n required: false,\n default: '',\n },\n labelsFilterParam: {\n type: String,\n required: false,\n default: 'label_name',\n },\n dropdownButtonText: {\n type: String,\n required: false,\n default: __('Label'),\n },\n labelsListTitle: {\n type: String,\n required: false,\n default: __('Select labels'),\n },\n labelsCreateTitle: {\n type: String,\n required: false,\n default: __('Create group label'),\n },\n footerCreateLabelTitle: {\n type: String,\n required: false,\n default: __('Create group label'),\n },\n footerManageLabelTitle: {\n type: String,\n required: false,\n default: __('Manage group labels'),\n },\n issuableType: {\n type: String,\n required: true,\n },\n issuableSupportsLockOnMerge: {\n type: Boolean,\n required: false,\n default: false,\n },\n workspaceType: {\n type: String,\n required: true,\n },\n attrWorkspacePath: {\n type: String,\n required: true,\n },\n labelCreateType: {\n type: String,\n required: true,\n },\n selectedLabels: {\n type: Array,\n required: false,\n default: () => [],\n },\n },\n data() {\n return {\n contentIsOnViewport: true,\n issuable: null,\n labelsSelectInProgress: false,\n oldIid: null,\n sidebarExpandedOnClick: false,\n };\n },\n computed: {\n isLoading() {\n return this.labelsSelectInProgress || this.$apollo.queries.issuable.loading;\n },\n issuableLabelIds() {\n return this.issuableLabels.map((label) => label.id);\n },\n issuableLabels() {\n if (this.iid !== '') {\n return this.issuable?.labels.nodes || [];\n }\n\n return this.selectedLabels || [];\n },\n issuableId() {\n return this.issuable?.id;\n },\n isRealtimeEnabled() {\n return this.glFeatures.realtimeLabels;\n },\n isLabelListEnabled() {\n return this.showEmbeddedLabelsList && isDropdownVariantEmbedded(this.variant);\n },\n isLockOnMergeSupported() {\n return this.issuableSupportsLockOnMerge || this.issuable?.supportsLockOnMerge;\n },\n labelShortcutDescription() {\n return shouldDisableShortcuts() ? null : ISSUABLE_CHANGE_LABEL.description;\n },\n labelShortcutKey() {\n return shouldDisableShortcuts() ? null : keysFor(ISSUABLE_CHANGE_LABEL)[0];\n },\n labelTooltip() {\n const description = this.labelShortcutDescription;\n const key = this.labelShortcutKey;\n return shouldDisableShortcuts()\n ? null\n : sanitize(`${description} <kbd class=\"flat gl-ml-1\" aria-hidden=true>${key}</kbd>`);\n },\n },\n apollo: {\n issuable: {\n query() {\n return issuableLabelsQueries[this.issuableType].issuableQuery;\n },\n skip() {\n return !isDropdownVariantSidebar(this.variant) || !this.iid;\n },\n variables() {\n const queryVariables = {\n iid: this.iid,\n fullPath: this.fullPath,\n };\n\n if (this.issuableType === TYPE_TEST_CASE) {\n queryVariables.types = ['TEST_CASE'];\n }\n\n return queryVariables;\n },\n update(data) {\n return data.workspace?.issuable;\n },\n error() {\n createAlert({ message: __('Error fetching labels.') });\n },\n subscribeToMore: {\n document() {\n return issuableLabelsSubscription;\n },\n variables() {\n return {\n issuableId: this.issuableId,\n };\n },\n skip() {\n return !this.issuableId || !this.isDropdownVariantSidebar;\n },\n updateQuery(\n _,\n {\n subscriptionData: {\n data: { issuableLabelsUpdated },\n },\n },\n ) {\n if (issuableLabelsUpdated) {\n const {\n id,\n labels: { nodes },\n } = issuableLabelsUpdated;\n this.$emit('updateSelectedLabels', { id, labels: nodes });\n }\n },\n },\n },\n },\n watch: {\n iid(_, oldVal) {\n this.oldIid = oldVal;\n },\n },\n mounted() {\n document.addEventListener('toggleSidebarRevealLabelsDropdown', this.handleCollapsedValueClick);\n },\n beforeDestroy() {\n document.removeEventListener(\n 'toggleSidebarRevealLabelsDropdown',\n this.handleCollapsedValueClick,\n );\n },\n methods: {\n handleDropdownClose(labels) {\n if (this.iid !== '') {\n this.updateSelectedLabels(this.getUpdateVariables(labels));\n } else {\n this.$emit('updateSelectedLabels', { labels });\n }\n\n this.collapseEditableItem();\n },\n collapseEditableItem() {\n this.$refs.editable?.collapse();\n if (this.sidebarExpandedOnClick) {\n this.sidebarExpandedOnClick = false;\n this.$emit('toggleCollapse');\n }\n },\n handleCollapsedValueClick() {\n this.sidebarExpandedOnClick = true;\n this.$emit('toggleCollapse');\n debounce(() => {\n this.$refs.editable.toggle();\n this.$refs.dropdownContents.showDropdown();\n }, DEBOUNCE_DROPDOWN_DELAY)();\n },\n getUpdateVariables(labels) {\n let labelIds = [];\n\n labelIds = labels.map(({ id }) => id);\n const currentIid = this.oldIid || this.iid;\n\n const updateVariables = {\n iid: currentIid,\n projectPath: this.fullPath,\n labelIds,\n };\n\n switch (this.issuableType) {\n case TYPE_ISSUE:\n case TYPE_TEST_CASE:\n return updateVariables;\n case TYPE_MERGE_REQUEST:\n return {\n ...updateVariables,\n operationMode: mutationOperationMode.replace,\n };\n case TYPE_EPIC:\n return {\n iid: currentIid,\n groupPath: this.fullPath,\n addLabelIds: labelIds.map((id) => getIdFromGraphQLId(id)),\n removeLabelIds: this.issuableLabelIds\n .filter((id) => !labelIds.includes(id))\n .map((id) => getIdFromGraphQLId(id)),\n };\n default:\n return {};\n }\n },\n updateSelectedLabels(inputVariables) {\n this.labelsSelectInProgress = true;\n\n this.$apollo\n .mutate({\n mutation: issuableLabelsQueries[this.issuableType].mutation,\n variables: { input: inputVariables },\n })\n .then(({ data }) => {\n if (data.updateIssuableLabels?.errors?.length) {\n throw new Error();\n }\n\n this.$emit('updateSelectedLabels', {\n id: data.updateIssuableLabels?.issuable?.id,\n labels: data.updateIssuableLabels?.issuable?.labels?.nodes,\n });\n })\n .catch((error) =>\n createAlert({\n message: __('An error occurred while updating labels.'),\n captureError: true,\n error,\n }),\n )\n .finally(() => {\n this.labelsSelectInProgress = false;\n });\n },\n getRemoveVariables(labelId) {\n const removeVariables = {\n iid: this.iid,\n projectPath: this.fullPath,\n };\n\n switch (this.issuableType) {\n case TYPE_ISSUE:\n case TYPE_TEST_CASE:\n return {\n ...removeVariables,\n removeLabelIds: [labelId],\n };\n case TYPE_MERGE_REQUEST:\n return {\n ...removeVariables,\n labelIds: [labelId],\n operationMode: mutationOperationMode.remove,\n };\n case TYPE_EPIC:\n return {\n iid: this.iid,\n removeLabelIds: [getIdFromGraphQLId(labelId)],\n groupPath: this.fullPath,\n };\n default:\n return {};\n }\n },\n handleLabelRemove(labelId) {\n if (this.iid !== '') {\n this.updateSelectedLabels(this.getRemoveVariables(labelId));\n }\n\n this.$emit('onLabelRemove', labelId);\n },\n isDropdownVariantSidebar,\n isDropdownVariantStandalone,\n isDropdownVariantEmbedded,\n },\n};\n</script>\n\n<template>\n <div\n class=\"labels-select-wrapper gl-relative\"\n :class=\"{\n 'is-standalone': isDropdownVariantStandalone(variant),\n 'is-embedded': isDropdownVariantEmbedded(variant),\n }\"\n data-testid=\"sidebar-labels\"\n >\n <template v-if=\"isDropdownVariantSidebar(variant)\">\n <sidebar-editable-item\n ref=\"editable\"\n :title=\"__('Labels')\"\n :edit-tooltip=\"labelTooltip\"\n :edit-aria-label=\"labelShortcutDescription\"\n :edit-keyshortcuts=\"labelShortcutKey\"\n :loading=\"isLoading\"\n :can-edit=\"allowLabelEdit\"\n @open=\"oldIid = null\"\n >\n <template #collapsed>\n <dropdown-value\n :disable-labels=\"labelsSelectInProgress\"\n :selected-labels=\"issuableLabels\"\n :allow-label-remove=\"allowLabelRemove\"\n :supports-lock-on-merge=\"isLockOnMergeSupported\"\n :labels-filter-base-path=\"labelsFilterBasePath\"\n :labels-filter-param=\"labelsFilterParam\"\n class=\"gl-pt-2\"\n @onLabelRemove=\"handleLabelRemove\"\n @onCollapsedValueClick=\"handleCollapsedValueClick\"\n >\n <slot></slot>\n </dropdown-value>\n </template>\n <template #default=\"{ edit }\">\n <dropdown-value\n :disable-labels=\"labelsSelectInProgress\"\n :selected-labels=\"issuableLabels\"\n :allow-label-remove=\"allowLabelRemove\"\n :supports-lock-on-merge=\"isLockOnMergeSupported\"\n :labels-filter-base-path=\"labelsFilterBasePath\"\n :labels-filter-param=\"labelsFilterParam\"\n class=\"gl-mb-2\"\n @onLabelRemove=\"handleLabelRemove\"\n >\n <slot></slot>\n </dropdown-value>\n <dropdown-contents\n ref=\"dropdownContents\"\n class=\"gl-mt-3 gl-w-full\"\n :dropdown-button-text=\"dropdownButtonText\"\n :allow-multiselect=\"allowMultiselect\"\n :labels-list-title=\"labelsListTitle\"\n :footer-create-label-title=\"footerCreateLabelTitle\"\n :footer-manage-label-title=\"footerManageLabelTitle\"\n :labels-create-title=\"labelsCreateTitle\"\n :selected-labels=\"issuableLabels\"\n :variant=\"variant\"\n :is-visible=\"edit\"\n :full-path=\"fullPath\"\n :workspace-type=\"workspaceType\"\n :attr-workspace-path=\"attrWorkspacePath\"\n :label-create-type=\"labelCreateType\"\n @setLabels=\"handleDropdownClose\"\n @closeDropdown=\"collapseEditableItem\"\n />\n </template>\n </sidebar-editable-item>\n </template>\n <template v-else>\n <dropdown-contents\n ref=\"dropdownContents\"\n class=\"issuable-form-select-holder\"\n :dropdown-button-text=\"dropdownButtonText\"\n :allow-multiselect=\"allowMultiselect\"\n :labels-list-title=\"labelsListTitle\"\n :footer-create-label-title=\"footerCreateLabelTitle\"\n :footer-manage-label-title=\"footerManageLabelTitle\"\n :labels-create-title=\"labelsCreateTitle\"\n :selected-labels=\"issuableLabels\"\n :variant=\"variant\"\n :full-path=\"fullPath\"\n :workspace-type=\"workspaceType\"\n :attr-workspace-path=\"attrWorkspacePath\"\n :label-create-type=\"labelCreateType\"\n @setLabels=\"handleDropdownClose\"\n />\n <embedded-labels-list\n v-if=\"isLabelListEnabled\"\n :disabled=\"labelsSelectInProgress\"\n :selected-labels=\"issuableLabels\"\n :allow-label-remove=\"allowLabelRemove\"\n :supports-lock-on-merge=\"isLockOnMergeSupported\"\n :labels-filter-base-path=\"labelsFilterBasePath\"\n :labels-filter-param=\"labelsFilterParam\"\n @onLabelRemove=\"handleLabelRemove\"\n />\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./labels_select_root.vue?vue&type=template&id=7c2f1289\"\nimport script from \"./labels_select_root.vue?vue&type=script&lang=js\"\nexport * from \"./labels_select_root.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"gl-flex gl-items-center gl-font-bold gl-leading-20 gl-text-default\",on:{\"click\":function($event){if($event.target !== $event.currentTarget)return null;return _vm.collapse.apply(null, arguments)}}},[_c('span',{staticClass:\"hide-collapsed\",attrs:{\"data-testid\":\"title\"},on:{\"click\":_vm.collapse}},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")]),_vm._v(\" \"),_vm._t(\"title-extra\"),_vm._v(\" \"),(_vm.loading || _vm.initialLoading)?_c('gl-loading-icon',{staticClass:\"hide-collapsed gl-ml-2\",attrs:{\"size\":\"sm\",\"inline\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.loading && _vm.isClassicSidebar)?_c('gl-loading-icon',{staticClass:\"hide-expanded gl-mx-auto gl-my-0\",attrs:{\"size\":\"sm\",\"inline\":\"\"}}):_vm._e(),_vm._v(\" \"),_vm._t(\"collapsed-right\"),_vm._v(\" \"),(_vm.canUpdate && !_vm.initialLoading && _vm.canEdit)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.html\",modifiers:{\"viewport\":true,\"html\":true}}],staticClass:\"hide-collapsed shortcut-sidebar-dropdown-toggle -gl-mr-2 gl-ml-auto\",attrs:{\"id\":_vm.buttonId,\"category\":\"tertiary\",\"size\":\"small\",\"title\":_vm.editTooltipText,\"aria-label\":_vm.editAriaLabelText,\"aria-keyshortcuts\":_vm.editKeyshortcutsText,\"data-testid\":\"edit-button\",\"data-track-action\":_vm.tracking.event,\"data-track-label\":_vm.tracking.label,\"data-track-property\":_vm.tracking.property},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.toggle.apply(null, arguments)},\"click\":_vm.toggle}},[_vm._v(\"\\n \"+_vm._s(_vm.editButtonText)+\"\\n \")]):_vm._e()],2),_vm._v(\" \"),(!_vm.initialLoading)?[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.edit),expression:\"!edit\"}],attrs:{\"data-testid\":\"collapsed-content\"}},[_vm._t(\"collapsed\",function(){return [_vm._v(_vm._s(_vm.__('None')))]})],2),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.edit),expression:\"edit\"}],class:{ 'gl-mt-3': !_vm.isClassicSidebar },attrs:{\"data-testid\":\"expanded-content\"}},[_vm._t(\"default\",null,{\"edit\":_vm.edit,\"toggle\":_vm.toggle})],2)]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_editable_item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_editable_item.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n i18n: {\n unassigned: __('Unassigned'),\n },\n components: { GlButton, GlLoadingIcon },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n inject: {\n canUpdate: {},\n isClassicSidebar: {\n default: false,\n },\n },\n props: {\n buttonId: {\n type: String,\n required: false,\n default: '',\n },\n title: {\n type: String,\n required: false,\n default: '',\n },\n loading: {\n type: Boolean,\n required: false,\n default: false,\n },\n initialLoading: {\n type: Boolean,\n required: false,\n default: false,\n },\n isDirty: {\n type: Boolean,\n required: false,\n default: false,\n },\n tracking: {\n type: Object,\n required: false,\n default: () => ({\n event: null,\n label: null,\n property: null,\n }),\n },\n canEdit: {\n type: Boolean,\n required: false,\n default: true,\n },\n shouldShowConfirmationPopover: {\n type: Boolean,\n required: false,\n default: false,\n },\n editTooltip: {\n type: String,\n required: false,\n default: '',\n },\n editAriaLabel: {\n type: String,\n required: false,\n default: '',\n },\n editKeyshortcuts: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n edit: false,\n };\n },\n computed: {\n editButtonText() {\n return this.isDirty ? __('Apply') : __('Edit');\n },\n editTooltipText() {\n return this.isDirty ? '' : this.editTooltip;\n },\n editAriaLabelText() {\n return this.isDirty ? this.editButtonText : this.editAriaLabel;\n },\n editKeyshortcutsText() {\n return this.isDirty ? __('Escape') : this.editKeyshortcuts;\n },\n },\n destroyed() {\n window.removeEventListener('click', this.collapseWhenOffClick);\n window.removeEventListener('keyup', this.collapseOnEscape);\n },\n methods: {\n collapseWhenOffClick({ target }) {\n if (!this.$el.contains(target)) {\n this.collapse();\n }\n },\n collapseOnEscape({ key }) {\n if (key === 'Escape') {\n this.collapse();\n }\n },\n expand() {\n if (this.edit) {\n return;\n }\n\n if (this.canEdit && this.canUpdate) {\n this.edit = true;\n }\n this.$emit('open');\n window.addEventListener('click', this.collapseWhenOffClick);\n window.addEventListener('keyup', this.collapseOnEscape);\n },\n collapse({ emitEvent = true } = {}) {\n if (!this.edit) {\n return;\n }\n\n this.edit = false;\n if (emitEvent) {\n this.$emit('close');\n }\n window.removeEventListener('click', this.collapseWhenOffClick);\n window.removeEventListener('keyup', this.collapseOnEscape);\n },\n toggle({ emitEvent = true } = {}) {\n if (this.shouldShowConfirmationPopover) {\n this.$emit('edit-confirm');\n return;\n }\n\n if (this.edit) {\n this.collapse({ emitEvent });\n } else {\n this.expand();\n }\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div\n class=\"gl-flex gl-items-center gl-font-bold gl-leading-20 gl-text-default\"\n @click.self=\"collapse\"\n >\n <span class=\"hide-collapsed\" data-testid=\"title\" @click=\"collapse\">\n {{ title }}\n </span>\n <slot name=\"title-extra\"></slot>\n <gl-loading-icon\n v-if=\"loading || initialLoading\"\n size=\"sm\"\n inline\n class=\"hide-collapsed gl-ml-2\"\n />\n <gl-loading-icon\n v-if=\"loading && isClassicSidebar\"\n size=\"sm\"\n inline\n class=\"hide-expanded gl-mx-auto gl-my-0\"\n />\n <slot name=\"collapsed-right\"></slot>\n <gl-button\n v-if=\"canUpdate && !initialLoading && canEdit\"\n :id=\"buttonId\"\n v-gl-tooltip.viewport.html\n category=\"tertiary\"\n size=\"small\"\n class=\"hide-collapsed shortcut-sidebar-dropdown-toggle -gl-mr-2 gl-ml-auto\"\n :title=\"editTooltipText\"\n :aria-label=\"editAriaLabelText\"\n :aria-keyshortcuts=\"editKeyshortcutsText\"\n data-testid=\"edit-button\"\n :data-track-action=\"tracking.event\"\n :data-track-label=\"tracking.label\"\n :data-track-property=\"tracking.property\"\n @keyup.esc=\"toggle\"\n @click=\"toggle\"\n >\n {{ editButtonText }}\n </gl-button>\n </div>\n <template v-if=\"!initialLoading\">\n <div v-show=\"!edit\" data-testid=\"collapsed-content\">\n <slot name=\"collapsed\">{{ __('None') }}</slot>\n </div>\n <div v-show=\"edit\" data-testid=\"expanded-content\" :class=\"{ 'gl-mt-3': !isClassicSidebar }\">\n <slot :edit=\"edit\" :toggle=\"toggle\"></slot>\n </div>\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_editable_item.vue?vue&type=template&id=6046ea02\"\nimport script from \"./sidebar_editable_item.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_editable_item.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"value issuable-show-labels js-value\",class:{\n 'has-labels': _vm.selectedLabels.length,\n },attrs:{\"data-testid\":\"value-wrapper\"}},[_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.labelsList},on:{\"click\":_vm.handleCollapsedClick}},[_c('gl-icon',{attrs:{\"name\":\"labels\"}}),_vm._v(\" \"),_c('span',{staticClass:\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\"},[_vm._v(_vm._s(_vm.selectedLabels.length))])],1),_vm._v(\" \"),(!_vm.selectedLabels.length)?_c('span',{staticClass:\"hide-collapsed gl-text-subtle\",attrs:{\"data-testid\":\"empty-placeholder\"}},[_vm._t(\"default\")],2):_vm._l((_vm.sortedSelectedLabels),function(label){return _c('gl-label',{key:label.id,staticClass:\"hide-collapsed\",attrs:{\"data-testid\":\"selected-label-content\",\"data-qa-label-name\":label.title,\"title\":label.title,\"description\":label.description,\"background-color\":label.color,\"target\":_vm.labelFilterUrl(label),\"scoped\":_vm.scopedLabel(label),\"show-close-button\":_vm.showCloseButton(label),\"disabled\":_vm.disableLabels,\"tooltip-placement\":\"top\"},on:{\"close\":function($event){return _vm.removeLabel(label.id)}}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_value.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropdown_value.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlLabel, GlTooltipDirective } from '@gitlab/ui';\nimport { sortBy } from 'lodash';\nimport { isScopedLabel } from '~/lib/utils/common_utils';\nimport { s__, sprintf } from '~/locale';\n\nexport default {\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlIcon,\n GlLabel,\n },\n inject: ['allowScopedLabels'],\n props: {\n disableLabels: {\n type: Boolean,\n required: false,\n default: false,\n },\n selectedLabels: {\n type: Array,\n required: true,\n },\n allowLabelRemove: {\n type: Boolean,\n required: true,\n },\n supportsLockOnMerge: {\n type: Boolean,\n required: false,\n default: false,\n },\n labelsFilterBasePath: {\n type: String,\n required: true,\n },\n labelsFilterParam: {\n type: String,\n required: true,\n },\n },\n computed: {\n sortedSelectedLabels() {\n return sortBy(this.selectedLabels, (label) => (isScopedLabel(label) ? 0 : 1));\n },\n labelsList() {\n const labelsString = this.selectedLabels.length\n ? this.selectedLabels\n .slice(0, 5)\n .map((label) => label.title)\n .join(', ')\n : s__('LabelSelect|Labels');\n\n if (this.selectedLabels.length > 5) {\n return sprintf(s__('LabelSelect|%{labelsString}, and %{remainingLabelCount} more'), {\n labelsString,\n remainingLabelCount: this.selectedLabels.length - 5,\n });\n }\n\n return labelsString;\n },\n },\n methods: {\n labelFilterUrl(label) {\n return `${this.labelsFilterBasePath}?${this.labelsFilterParam}[]=${encodeURIComponent(\n label.title,\n )}`;\n },\n scopedLabel(label) {\n return this.allowScopedLabels && isScopedLabel(label);\n },\n isLabelLocked(label) {\n return label.lockOnMerge && this.supportsLockOnMerge;\n },\n showCloseButton(label) {\n return this.allowLabelRemove && !this.isLabelLocked(label);\n },\n removeLabel(labelId) {\n this.$emit('onLabelRemove', labelId);\n },\n handleCollapsedClick() {\n this.$emit('onCollapsedValueClick');\n },\n },\n};\n</script>\n\n<template>\n <div\n :class=\"{\n 'has-labels': selectedLabels.length,\n }\"\n class=\"value issuable-show-labels js-value\"\n data-testid=\"value-wrapper\"\n >\n <div\n v-gl-tooltip.left.viewport\n :title=\"labelsList\"\n class=\"sidebar-collapsed-icon\"\n @click=\"handleCollapsedClick\"\n >\n <gl-icon name=\"labels\" />\n <span class=\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\">{{\n selectedLabels.length\n }}</span>\n </div>\n <span\n v-if=\"!selectedLabels.length\"\n class=\"hide-collapsed gl-text-subtle\"\n data-testid=\"empty-placeholder\"\n >\n <slot></slot>\n </span>\n <template v-else>\n <gl-label\n v-for=\"label in sortedSelectedLabels\"\n :key=\"label.id\"\n class=\"hide-collapsed\"\n data-testid=\"selected-label-content\"\n :data-qa-label-name=\"label.title\"\n :title=\"label.title\"\n :description=\"label.description\"\n :background-color=\"label.color\"\n :target=\"labelFilterUrl(label)\"\n :scoped=\"scopedLabel(label)\"\n :show-close-button=\"showCloseButton(label)\"\n :disabled=\"disableLabels\"\n tooltip-placement=\"top\"\n @close=\"removeLabel(label.id)\"\n />\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_value.vue?vue&type=template&id=029da1af\"\nimport script from \"./dropdown_value.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_value.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}