{"version":3,"sources":["webpack:////build/source/node_modules/lodash/clamp.js","webpack:////build/source/node_modules/lodash/_baseClamp.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/utils.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/constants.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown.js","webpack:///./milestones/components/promote_milestone_modal.vue?c23b","webpack:///milestones/components/promote_milestone_modal.vue","webpack:///./milestones/components/promote_milestone_modal.vue?d681","webpack:///./milestones/components/promote_milestone_modal.vue","webpack:///./milestones/event_hub.js","webpack:///./milestones/components/delete_milestone_modal.vue?dcb3","webpack:///milestones/components/delete_milestone_modal.vue","webpack:///./milestones/components/delete_milestone_modal.vue?ff7d","webpack:///./milestones/components/delete_milestone_modal.vue","webpack:///./milestones/components/more_actions_dropdown.vue?b8de","webpack:///milestones/components/more_actions_dropdown.vue","webpack:///./milestones/components/more_actions_dropdown.vue?ff85","webpack:///./milestones/components/more_actions_dropdown.vue","webpack:///./milestones/init_more_actions_dropdown.js","webpack:////build/source/node_modules/@gitlab/ui/dist/directives/outside/outside.js","webpack:///./lib/utils/http_status.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/constants.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.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:///./pages/projects/milestones/index/index.js"],"names":["baseClamp","toNumber","module","exports","number","lower","upper","undefined","isItem","item","Boolean","_item$text","text","length","Array","isArray","items","itemValidator","isGroup","group","every","itemsValidator","hasOnlyListItemsVue2","defaultSlot","nodes","tags","filter","vNode","tag","_vNode$componentOptio","componentOptions","includes","isValidSlotTagVue2","hasOnlyListItemsVue3","fragment","find","node","children","trim","_vNode$type","type","name","isValidSlotTagVue3","hasOnlyListItems","version","startsWith","DISCLOSURE_DROPDOWN_ITEM_NAME","DISCLOSURE_DROPDOWN_GROUP_NAME","DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS","top","bottom","DROPDOWN_SELECTOR","ITEM_SELECTOR","__vue_script__","events","GL_DROPDOWN_SHOWN","GL_DROPDOWN_HIDDEN","GL_DROPDOWN_BEFORE_CLOSE","GL_DROPDOWN_FOCUS_CONTENT","components","GlBaseDropdown","GlDisclosureDropdownItem","GlDisclosureDropdownGroup","props","required","default","validator","toggleText","String","textSrOnly","category","primary","value","variant","size","icon","disabled","loading","toggleId","toggleClass","Object","noCaret","placement","keys","toggleAriaLabelledBy","listAriaLabelledBy","block","dropdownOffset","Number","fluidWidth","autoClose","positioningStrategy","strategy","startOpened","data","disclosureId","nextFocusedItemIndex","computed","_this$items","this","$scopedSlots","$slots","toggle","open","methods","$refs","baseDropdown","close","$emit","event","code","elements","getFocusableListItemElements","stop","focusItem","focusNextItem","handleAutoClose","_this$$refs$content","content","querySelectorAll","from","offset","target","currentIndex","indexOf","nextIndex","index","_elements$index","focus","closeAndFocus","action","window","requestAnimationFrame","e","closest","$el","uniqueItemId","GL_DROPDOWN_CONTENTS_CLASS","__vue_component__","render","_vm","_h","$createElement","_c","_self","ref","staticClass","attrs","disclosureArrow","on","_d","$options","onShow","onHide","onBeforeClose","onKeydown","scopedSlots","_u","key","fn","_t","proxy","_v","disclosureTag","class","_l","handleAction","groupItem","staticRenderFns","GlModal","visible","milestoneTitle","promoteUrl","groupName","title","sprintf","s__","onSubmit","_this","axios","post","params","format","then","response","visitUrl","url","catch","error","createAlert","message","finally","onClose","primaryAction","attributes","cancelAction","__","_s","createEventHub","GlSprintf","issueCount","mergeRequestCount","milestoneId","milestoneUrl","issuesWithCount","n__","mergeRequestsWithCount","eventHub","delete","successful","request","responseURL","status","HTTP_STATUS_NOT_FOUND","primaryProps","cancelProps","GlButton","GlIcon","GlDisclosureDropdown","PromoteMilestoneModal","DeleteMilestoneModal","directives","GlTooltip","GlTooltipDirective","inject","isDropdownVisible","isPromotionModalVisible","isDeleteModalVisible","isPromoteModalVisible","widthClasses","hasUrl","editUrl","closeUrl","reopenUrl","copiedToClipboard","i18n","editItem","edit","href","extraAttrs","promoteItem","promote","closeItem","isDetailPage","rel","reopenItem","reopen","deleteItem","copyIdItem","copyTitle","id","$toast","show","itemprop","showDropdownTooltip","actionsLabel","showTestIdIfNotDetailPage","hasEditOptions","showDropdown","hideDropdown","setDeleteModalVisibility","visibility","setPromoteModalVisibility","rawName","expression","isActive","_e","$event","showDelete","InitMoreActionsDropdown","containers","document","forEach","el","dataset","Vue","provide","parseBoolean","createElement","MoreActionsDropdown","callbacks","Map","activeEventTypes","Set","lastMousedown","globalListener","_ref","element","callback","eventTypes","originalEvent","contains","onMousedown","OutsideDirective","bind","bindings","_ref3","arg","modifiers","modifiersList","parseBinding","has","set","eventType","addEventListener","capture","add","startListening","unbind","entry","get","eventTypesToUnbind","values","_ref2","removeEventListener","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_CONFLICT","HTTP_STATUS_GONE","HTTP_STATUS_PAYLOAD_TOO_LARGE","HTTP_STATUS_UNPROCESSABLE_ENTITY","HTTP_STATUS_TOO_MANY_REQUESTS","HTTP_STATUS_INTERNAL_SERVER_ERROR","successCodes","ARROW_DOWN","ARROW_UP","END","ENTER","HOME","SPACE","POSITION_ABSOLUTE","POSITION_FIXED","ITEM_CLASS","BLink","_this$item","_this$item2","to","isLink","is","listeners","click","_item$action","call","_this$item3","_this$item3$extraAttr","_this$item4","_this$item4$extraAttr","_this$item5","_this$item$wrapperCla","_this$item6","wrapperClass","itemVariant","keydown","isCustomContent","MouseEvent","bubbles","cancelable","_this$$refs$item","dispatchEvent","_g","classes","listIndex","wrapperListeners","itemComponent","_b","componentIndex","BORDER_CLASSES","bordered","borderPosition","_this$group","showHeader","nameId","borderClass","groupLabeledBy","BASE_DROPDOWN_CLASS","Outside","ariaHaspopup","ariaLabelledby","mainAxis","openedYet","baseDropdownId","_this$toggleText","hasNoVisibleToggleText","isIconOnly","toggleLabelledBy","isEllipsisButton","isCaretOnly","isDefaultToggle","buttonTextClasses","toggleButtonTextClasses","toggleButtonClasses","ariaAttributes","toggleOptions","_this$$refs$toggle","firstElementChild","isFixed","alignment","split","middleware","allowedPlacements","dropdownArrow","apply","_this$nonScrollableCo","availableHeight","contentsEl","floating","querySelector","contentsAvailableHeight","nonScrollableContentHeight","assign","style","maxHeight","Math","max","watch","deep","toggleElement","setAttribute","checkToggleFocusable","stopFloating","actualPlacement","offsetConfigs","staticSide","rotation","left","right","calculateNonScrollableAreaHeight","observer","MutationObserver","observe","childList","subtree","stopAutoUpdate","async","result","floatingUIConfig","x","y","middlewareData","getArrowOffsets","arrow","arrowX","arrowY","toggleRect","getBoundingClientRect","contentRect","clampedArrowX","width","min","transform","_this$observer","_this$stopAutoUpdate","disconnect","prevented","$nextTick","startFloating","hadFocusWithin","activeElement","hasToggled","focusToggle","tagName","toggleOnEnter","toggleOnSpace","scrollableArea","floatingElementBoundingBox","scrollableAreaBoundingBox","height","toggleComponent","_k","keyCode","stopPropagation","preventDefault","arguments","toggleAttributes","toggleListeners","panelClasses"],"mappings":"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","file":"pages.projects.milestones.index.5fc70723.chunk.js","sourcesContent":["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 * 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 Vue from 'vue';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport { DISCLOSURE_DROPDOWN_ITEM_NAME, DISCLOSURE_DROPDOWN_GROUP_NAME } from './constants';\n\nconst itemValidator = item => {\n var _item$text;\n return (item === null || item === void 0 ? void 0 : (_item$text = item.text) === null || _item$text === void 0 ? void 0 : _item$text.length) > 0 && !Array.isArray(item === null || item === void 0 ? void 0 : item.items);\n};\nconst isItem = item => Boolean(item) && itemValidator(item);\nconst isGroup = group => Boolean(group) && Array.isArray(group.items) && Boolean(group.items.length) &&\n// eslint-disable-next-line unicorn/no-array-callback-reference\ngroup.items.every(isItem);\n\n// eslint-disable-next-line unicorn/no-array-callback-reference\nconst itemsValidator = items => items.every(isItem) || items.every(isGroup);\nconst isListItem = tag => ['gl-disclosure-dropdown-group', 'gl-disclosure-dropdown-item', 'li'].includes(tag);\nconst isValidSlotTagVue2 = vNode => {\n var _vNode$componentOptio;\n return Boolean(vNode) && isListItem(((_vNode$componentOptio = vNode.componentOptions) === null || _vNode$componentOptio === void 0 ? void 0 : _vNode$componentOptio.tag) || vNode.tag);\n};\nconst isValidSlotTagVue3 = vNode => {\n var _vNode$type;\n return [DISCLOSURE_DROPDOWN_ITEM_NAME, DISCLOSURE_DROPDOWN_GROUP_NAME].includes((_vNode$type = vNode.type) === null || _vNode$type === void 0 ? void 0 : _vNode$type.name) || vNode.type === 'li';\n};\nconst hasOnlyListItemsVue2 = defaultSlot => {\n const nodes = defaultSlot();\n if (!Array.isArray(nodes)) {\n return false;\n }\n const tags = nodes.filter(vNode => vNode.tag);\n return tags.length && tags.every(tag => isValidSlotTagVue2(tag));\n};\nconst hasOnlyListItemsVue3 = defaultSlot => {\n const nodes = defaultSlot();\n const fragment = nodes.find(node => Array.isArray(node.children) && node.children.length);\n const targetNodes = fragment ? fragment.children : nodes;\n return targetNodes\n // Remove empty text vNodes\n .filter(vNode => !isString(vNode.text) || vNode.text.trim().length > 0).every(vNode => isValidSlotTagVue3(vNode));\n};\nconst hasOnlyListItems = defaultSlot => {\n if (!isFunction(defaultSlot)) {\n return false;\n }\n if (Vue.version.startsWith('3')) {\n return hasOnlyListItemsVue3(defaultSlot);\n }\n return hasOnlyListItemsVue2(defaultSlot);\n};\n\nexport { hasOnlyListItems, isGroup, isItem, itemsValidator };\n","const DISCLOSURE_DROPDOWN_ITEM_NAME = 'GlDisclosureDropdownItem';\nconst DISCLOSURE_DROPDOWN_GROUP_NAME = 'GlDisclosureDropdownGroup';\nconst DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS = {\n top: 'top',\n bottom: 'bottom'\n};\n\nexport { DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS, DISCLOSURE_DROPDOWN_GROUP_NAME, DISCLOSURE_DROPDOWN_ITEM_NAME };\n","import clamp from 'lodash/clamp';\nimport uniqueId from 'lodash/uniqueId';\nimport { stopEvent, filterVisible } from '../../../../utils/utils';\nimport { GL_DROPDOWN_SHOWN, GL_DROPDOWN_HIDDEN, GL_DROPDOWN_BEFORE_CLOSE, GL_DROPDOWN_FOCUS_CONTENT, POSITION_ABSOLUTE, POSITION_FIXED, HOME, END, ARROW_UP, ARROW_DOWN, ENTER, SPACE, GL_DROPDOWN_CONTENTS_CLASS } from '../constants';\nimport { buttonCategoryOptions, dropdownVariantOptions, buttonSizeOptions, dropdownPlacements } from '../../../../utils/constants';\nimport GlBaseDropdown, { BASE_DROPDOWN_CLASS } from '../base_dropdown/base_dropdown';\nimport GlDisclosureDropdownItem, { ITEM_CLASS } from './disclosure_dropdown_item';\nimport GlDisclosureDropdownGroup from './disclosure_dropdown_group';\nimport { itemsValidator, hasOnlyListItems, isItem } from './utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst DROPDOWN_SELECTOR = `.${BASE_DROPDOWN_CLASS}`;\nconst ITEM_SELECTOR = `.${ITEM_CLASS}`;\nvar script = {\n name: 'GlDisclosureDropdown',\n events: {\n GL_DROPDOWN_SHOWN,\n GL_DROPDOWN_HIDDEN,\n GL_DROPDOWN_BEFORE_CLOSE,\n GL_DROPDOWN_FOCUS_CONTENT\n },\n components: {\n GlBaseDropdown,\n GlDisclosureDropdownItem,\n GlDisclosureDropdownGroup\n },\n props: {\n /**\n * Items to display in the dropdown\n */\n items: {\n type: Array,\n required: false,\n default: () => [],\n validator: itemsValidator\n },\n /**\n * Toggle button text\n */\n toggleText: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Toggle text to be read by screen readers only\n */\n textSrOnly: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Styling option - dropdown's toggle category\n */\n category: {\n type: String,\n required: false,\n default: buttonCategoryOptions.primary,\n validator: value => value in buttonCategoryOptions\n },\n /**\n * Styling option - dropdown's toggle variant\n */\n variant: {\n type: String,\n required: false,\n default: dropdownVariantOptions.default,\n validator: value => value in dropdownVariantOptions\n },\n /**\n * The size of the dropdown toggle\n */\n size: {\n type: String,\n required: false,\n default: 'medium',\n validator: value => value in buttonSizeOptions\n },\n /**\n * Icon name that will be rendered in the toggle button\n */\n icon: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Set to \"true\" to disable the dropdown\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Set to \"true\" when dropdown content (items) is loading\n * It will render a small loader in the dropdown toggle and make it disabled\n */\n loading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Custom toggle id.\n * For instance, it can be referenced by tooltip or popover\n */\n toggleId: {\n type: String,\n required: false,\n default: () => uniqueId('dropdown-toggle-btn-')\n },\n /**\n * Additional CSS classes to customize toggle appearance\n */\n toggleClass: {\n type: [String, Array, Object],\n required: false,\n default: null\n },\n /**\n * Set to \"true\" to hide the caret\n */\n noCaret: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Align disclosure dropdown with respect to the toggle button\n */\n placement: {\n type: String,\n required: false,\n default: 'bottom-start',\n validator: value => Object.keys(dropdownPlacements).includes(value)\n },\n /**\n * The `aria-labelledby` attribute value for the toggle button\n * Provide the string of ids seperated by space\n */\n toggleAriaLabelledBy: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The `aria-labelledby` attribute value for the list of options\n * Provide the string of ids seperated by space\n */\n listAriaLabelledBy: {\n type: String,\n required: false,\n default: null\n },\n /**\n * Render the toggle button as a block element\n */\n block: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Custom offset to be applied to Floating UI's offset middleware.\n * https://floating-ui.com/docs/offset\n */\n dropdownOffset: {\n type: [Number, Object],\n required: false,\n default: undefined\n },\n /**\n * Lets the dropdown extend to match its content's width, up to a maximum width\n * defined by the `$gl-new-dropdown-max-width` variable.\n */\n fluidWidth: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Close the dropdown on item click (action)\n */\n autoClose: {\n type: Boolean,\n required: false,\n default: true\n },\n /**\n * Strategy to be applied by computePosition. If the dropdown's container is too short for it to\n * fit in, setting this to fixed will let it position itself above its container.\n * https://floating-ui.com/docs/computePosition#strategy\n */\n positioningStrategy: {\n type: String,\n required: false,\n default: POSITION_ABSOLUTE,\n validator: strategy => [POSITION_ABSOLUTE, POSITION_FIXED].includes(strategy)\n },\n /**\n * Opens dropdown on render\n */\n startOpened: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n data() {\n return {\n disclosureId: uniqueId('disclosure-'),\n nextFocusedItemIndex: null\n };\n },\n computed: {\n disclosureTag() {\n var _this$items;\n if ((_this$items = this.items) !== null && _this$items !== void 0 && _this$items.length ||\n // eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots\n hasOnlyListItems(this.$scopedSlots.default || this.$slots.default)) {\n return 'ul';\n }\n return 'div';\n },\n hasCustomToggle() {\n return Boolean(this.$scopedSlots.toggle);\n }\n },\n mounted() {\n if (this.startOpened) {\n this.open();\n }\n },\n methods: {\n open() {\n this.$refs.baseDropdown.open();\n },\n close() {\n this.$refs.baseDropdown.close();\n },\n onShow() {\n /**\n * Emitted when dropdown is shown\n *\n * @event shown\n */\n this.$emit(GL_DROPDOWN_SHOWN);\n },\n onBeforeClose(event) {\n /**\n * Emitted when dropdown is about to be closed\n *\n * @event beforeClose\n */\n this.$emit(GL_DROPDOWN_BEFORE_CLOSE, event);\n },\n onHide() {\n /**\n * Emitted when dropdown is hidden\n *\n * @event hidden\n */\n this.$emit(GL_DROPDOWN_HIDDEN);\n this.nextFocusedItemIndex = null;\n },\n onKeydown(event) {\n const {\n code\n } = event;\n const elements = this.getFocusableListItemElements();\n if (elements.length < 1) return;\n let stop = true;\n if (code === HOME) {\n this.focusItem(0, elements);\n } else if (code === END) {\n this.focusItem(elements.length - 1, elements);\n } else if (code === ARROW_UP) {\n this.focusNextItem(event, elements, -1);\n } else if (code === ARROW_DOWN) {\n this.focusNextItem(event, elements, 1);\n } else if (code === ENTER || code === SPACE) {\n this.handleAutoClose(event);\n } else {\n stop = false;\n }\n if (stop) {\n stopEvent(event);\n }\n },\n getFocusableListItemElements() {\n var _this$$refs$content;\n const items = (_this$$refs$content = this.$refs.content) === null || _this$$refs$content === void 0 ? void 0 : _this$$refs$content.querySelectorAll(ITEM_SELECTOR);\n return filterVisible(Array.from(items || []));\n },\n focusNextItem(event, elements, offset) {\n const {\n target\n } = event;\n const currentIndex = elements.indexOf(target);\n const nextIndex = clamp(currentIndex + offset, 0, elements.length - 1);\n this.focusItem(nextIndex, elements);\n },\n focusItem(index, elements) {\n var _elements$index;\n this.nextFocusedItemIndex = index;\n (_elements$index = elements[index]) === null || _elements$index === void 0 ? void 0 : _elements$index.focus();\n },\n closeAndFocus() {\n this.$refs.baseDropdown.closeAndFocus();\n },\n handleAction(action) {\n // See https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/4376 for\n // detailed explanation why we need requestAnimationFrame\n window.requestAnimationFrame(() => {\n /**\n * Emitted when one of disclosure dropdown items is clicked\n *\n * @event action\n */\n this.$emit('action', action);\n });\n },\n handleAutoClose(e) {\n if (this.autoClose && e.target.closest(ITEM_SELECTOR) && e.target.closest(DROPDOWN_SELECTOR) === this.$refs.baseDropdown.$el) {\n this.closeAndFocus();\n }\n },\n uniqueItemId() {\n return uniqueId(`disclosure-item-`);\n },\n isItem\n },\n GL_DROPDOWN_CONTENTS_CLASS\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-base-dropdown',{ref:\"baseDropdown\",staticClass:\"gl-disclosure-dropdown\",attrs:{\"aria-labelledby\":_vm.toggleAriaLabelledBy,\"arrow-element\":_vm.$refs.disclosureArrow,\"toggle-id\":_vm.toggleId,\"toggle-text\":_vm.toggleText,\"toggle-class\":_vm.toggleClass,\"text-sr-only\":_vm.textSrOnly,\"category\":_vm.category,\"variant\":_vm.variant,\"size\":_vm.size,\"icon\":_vm.icon,\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"no-caret\":_vm.noCaret,\"placement\":_vm.placement,\"block\":_vm.block,\"offset\":_vm.dropdownOffset,\"fluid-width\":_vm.fluidWidth,\"positioning-strategy\":_vm.positioningStrategy},on:_vm._d({},[_vm.$options.events.GL_DROPDOWN_SHOWN,_vm.onShow,_vm.$options.events.GL_DROPDOWN_HIDDEN,_vm.onHide,_vm.$options.events.GL_DROPDOWN_BEFORE_CLOSE,_vm.onBeforeClose,_vm.$options.events.GL_DROPDOWN_FOCUS_CONTENT,_vm.onKeydown]),scopedSlots:_vm._u([(_vm.hasCustomToggle)?{key:\"toggle\",fn:function(){return [_vm._t(\"toggle\")]},proxy:true}:null],null,true)},[_vm._v(\" \"),_vm._t(\"header\"),_vm._v(\" \"),_c(_vm.disclosureTag,{ref:\"content\",tag:\"component\",class:_vm.$options.GL_DROPDOWN_CONTENTS_CLASS,attrs:{\"id\":_vm.disclosureId,\"aria-labelledby\":_vm.listAriaLabelledBy || _vm.toggleId,\"data-testid\":\"disclosure-content\",\"tabindex\":\"-1\"},on:{\"keydown\":_vm.onKeydown,\"click\":_vm.handleAutoClose}},[_vm._t(\"default\",function(){return [_vm._l((_vm.items),function(item,index){return [(_vm.isItem(item))?[_c('gl-disclosure-dropdown-item',{key:_vm.uniqueItemId(),attrs:{\"item\":item},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([('list-item' in _vm.$scopedSlots)?{key:\"list-item\",fn:function(){return [_vm._t(\"list-item\",null,{\"item\":item})]},proxy:true}:null],null,true)})]:[_c('gl-disclosure-dropdown-group',{key:item.name,attrs:{\"bordered\":index !== 0,\"group\":item},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([(_vm.$scopedSlots['group-label'])?{key:\"group-label\",fn:function(){return [_vm._t(\"group-label\",null,{\"group\":item})]},proxy:true}:null,(_vm.$scopedSlots['list-item'])?{key:\"default\",fn:function(){return _vm._l((item.items),function(groupItem){return _c('gl-disclosure-dropdown-item',{key:_vm.uniqueItemId(),attrs:{\"item\":groupItem},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._t(\"list-item\",null,{\"item\":groupItem})]},proxy:true}],null,true)})})},proxy:true}:null],null,true)})]]})]})],2),_vm._v(\" \"),_vm._t(\"footer\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\nexport { DROPDOWN_SELECTOR, ITEM_SELECTOR };\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/babel-loader/lib/index.js??ref--14-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./promote_milestone_modal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/babel-loader/lib/index.js??ref--14-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./promote_milestone_modal.vue?vue&type=script&lang=js\"","\n\n \n {{ text }}\n {{ s__('Milestones|This action cannot be reversed.') }}\n \n\n","import { render, staticRenderFns } from \"./promote_milestone_modal.vue?vue&type=template&id=adf39f1c\"\nimport script from \"./promote_milestone_modal.vue?vue&type=script&lang=js\"\nexport * from \"./promote_milestone_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:{\"visible\":_vm.visible,\"modal-id\":\"promote-milestone-modal\",\"title\":_vm.title,\"action-primary\":_vm.$options.primaryAction,\"action-cancel\":_vm.$options.cancelAction},on:{\"primary\":_vm.onSubmit,\"hide\":_vm.onClose}},[_c('p',[_vm._v(_vm._s(_vm.text))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.s__('Milestones|This action cannot be reversed.')))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import createEventHub from '~/helpers/event_hub_factory';\n\nexport default createEventHub();\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/babel-loader/lib/index.js??ref--14-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete_milestone_modal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/babel-loader/lib/index.js??ref--14-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete_milestone_modal.vue?vue&type=script&lang=js\"","\n\n\n \n \n \n {{ milestoneTitle }}\n \n \n \n\n","import { render, staticRenderFns } from \"./delete_milestone_modal.vue?vue&type=template&id=268082fa\"\nimport script from \"./delete_milestone_modal.vue?vue&type=script&lang=js\"\nexport * from \"./delete_milestone_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:{\"visible\":_vm.visible,\"modal-id\":\"delete-milestone-modal\",\"title\":_vm.title,\"action-primary\":_vm.$options.primaryProps,\"action-cancel\":_vm.$options.cancelProps},on:{\"primary\":_vm.onSubmit,\"hide\":_vm.onClose}},[_c('gl-sprintf',{attrs:{\"message\":_vm.text},scopedSlots:_vm._u([{key:\"milestoneTitle\",fn:function(){return [_c('strong',[_vm._v(_vm._s(_vm.milestoneTitle))])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/babel-loader/lib/index.js??ref--14-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./more_actions_dropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/babel-loader/lib/index.js??ref--14-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./more_actions_dropdown.vue?vue&type=script&lang=js\"","\n\n\n \n \n \n \n {{ $options.i18n.actionsLabel }}\n \n \n \n \n \n\n \n \n\n \n\n \n\n \n \n \n\n \n \n \n\n \n\n \n \n\n","import { render, staticRenderFns } from \"./more_actions_dropdown.vue?vue&type=template&id=4fa3661e\"\nimport script from \"./more_actions_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./more_actions_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-disclosure-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.showDropdownTooltip),expression:\"showDropdownTooltip\"}],staticClass:\"gl-relative gl-w-full sm:gl-w-auto\",class:_vm.widthClasses,attrs:{\"category\":\"tertiary\",\"icon\":\"ellipsis_v\",\"placement\":\"bottom-end\",\"block\":\"\",\"no-caret\":\"\",\"toggle-text\":_vm.$options.i18n.actionsLabel,\"text-sr-only\":\"\",\"size\":_vm.size,\"data-testid\":_vm.showTestIdIfNotDetailPage},on:{\"shown\":_vm.showDropdown,\"hidden\":_vm.hideDropdown},scopedSlots:_vm._u([(_vm.isDetailPage)?{key:\"toggle\",fn:function(){return [_c('div',{staticClass:\"gl-min-h-7\"},[_c('gl-button',{staticClass:\"gl-new-dropdown-toggle gl-absolute gl-left-0 gl-top-0 gl-w-full sm:gl-w-auto md:!gl-hidden\",attrs:{\"button-text-classes\":\"gl-w-full\",\"category\":\"secondary\",\"aria-label\":_vm.$options.i18n.actionsLabel,\"title\":_vm.$options.i18n.actionsLabel}},[_c('span',{staticClass:\"gl-new-dropdown-button-text\"},[_vm._v(_vm._s(_vm.$options.i18n.actionsLabel))]),_vm._v(\" \"),_c('gl-icon',{staticClass:\"dropdown-chevron\",attrs:{\"name\":\"chevron-down\"}})],1),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-new-dropdown-toggle gl-new-dropdown-icon-only gl-new-dropdown-toggle-no-caret gl-hidden md:!gl-flex\",attrs:{\"category\":\"tertiary\",\"icon\":\"ellipsis_v\",\"aria-label\":_vm.$options.i18n.actionsLabel,\"title\":_vm.$options.i18n.actionsLabel,\"data-testid\":\"milestone-more-actions-dropdown-toggle\"}})],1)]},proxy:true}:null],null,true)},[_vm._v(\" \"),(_vm.isActive && _vm.closeUrl)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.closeItem}}):(_vm.reopenUrl)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.reopenItem}}):_vm._e(),_vm._v(\" \"),(_vm.editUrl)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.editItem}}):_vm._e(),_vm._v(\" \"),(_vm.promoteUrl)?_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.promoteItem},on:{\"action\":function($event){return _vm.setPromoteModalVisibility(true)}}}):_vm._e(),_vm._v(\" \"),_c('gl-disclosure-dropdown-group',{class:{ '!gl-border-t-dropdown': _vm.hasEditOptions },attrs:{\"bordered\":_vm.hasEditOptions}},[_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.copyIdItem,\"data-clipboard-text\":_vm.id}})],1),_vm._v(\" \"),(_vm.showDelete)?_c('gl-disclosure-dropdown-group',{staticClass:\"!gl-border-t-dropdown\",attrs:{\"bordered\":\"\"}},[_c('gl-disclosure-dropdown-item',{attrs:{\"item\":_vm.deleteItem},on:{\"action\":function($event){return _vm.setDeleteModalVisibility(true)}}})],1):_vm._e(),_vm._v(\" \"),_c('promote-milestone-modal',{attrs:{\"visible\":_vm.isPromoteModalVisible,\"milestone-title\":_vm.title,\"promote-url\":_vm.promoteUrl,\"group-name\":_vm.groupName},on:{\"promotionModalVisible\":_vm.setPromoteModalVisibility}}),_vm._v(\" \"),_c('delete-milestone-modal',{attrs:{\"visible\":_vm.isDeleteModalVisible,\"issue-count\":_vm.issueCount,\"merge-request-count\":_vm.mergeRequestCount,\"milestone-id\":_vm.id,\"milestone-title\":_vm.title,\"milestone-url\":_vm.milestoneUrl},on:{\"deleteModalVisible\":_vm.setDeleteModalVisibility}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport MoreActionsDropdown from '~/milestones/components/more_actions_dropdown.vue';\n\nexport default function InitMoreActionsDropdown() {\n const containers = document.querySelectorAll('.js-vue-milestone-actions');\n\n if (!containers.length) {\n return false;\n }\n\n return containers.forEach((el) => {\n const {\n id,\n title,\n isActive,\n showDelete,\n isDetailPage,\n milestoneUrl,\n editUrl,\n closeUrl,\n reopenUrl,\n promoteUrl,\n groupName,\n issueCount,\n mergeRequestCount,\n size,\n } = el.dataset;\n\n return new Vue({\n el,\n name: 'MoreActionsDropdownRoot',\n provide: {\n id: Number(id),\n title,\n isActive: parseBoolean(isActive),\n showDelete: parseBoolean(showDelete),\n isDetailPage: parseBoolean(isDetailPage),\n milestoneUrl,\n editUrl,\n closeUrl,\n reopenUrl,\n promoteUrl,\n groupName,\n issueCount: Number(issueCount),\n mergeRequestCount: Number(mergeRequestCount),\n size: size || 'medium',\n },\n render: (createElement) => createElement(MoreActionsDropdown),\n });\n });\n}\n","/**\n * Map }>\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}\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","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","// 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","import { BLink } from '../../../../vendor/bootstrap-vue/src/components/link/link';\nimport { ENTER, SPACE } from '../constants';\nimport { stopEvent } from '../../../../utils/utils';\nimport { dropdownItemVariantOptions } from '../../../../utils/constants';\nimport { isItem } from './utils';\nimport { DISCLOSURE_DROPDOWN_ITEM_NAME } from './constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst ITEM_CLASS = 'gl-new-dropdown-item';\nvar script = {\n name: DISCLOSURE_DROPDOWN_ITEM_NAME,\n ITEM_CLASS,\n components: {\n BLink\n },\n props: {\n item: {\n type: Object,\n required: false,\n default: null,\n validator: isItem\n },\n /**\n * The variant of the dropdown item.\n */\n variant: {\n type: String,\n default: null,\n validator(value) {\n return dropdownItemVariantOptions[value] !== undefined;\n },\n required: false\n }\n },\n computed: {\n isLink() {\n var _this$item, _this$item2;\n return typeof ((_this$item = this.item) === null || _this$item === void 0 ? void 0 : _this$item.href) === 'string' || typeof ((_this$item2 = this.item) === null || _this$item2 === void 0 ? void 0 : _this$item2.to) === 'string';\n },\n isCustomContent() {\n return Boolean(this.$scopedSlots.default);\n },\n itemComponent() {\n const {\n item\n } = this;\n if (this.isLink) return {\n is: BLink,\n attrs: {\n href: item.href,\n to: item.to,\n ...item.extraAttrs\n },\n listeners: {\n click: this.action\n }\n };\n return {\n is: 'button',\n attrs: {\n ...(item === null || item === void 0 ? void 0 : item.extraAttrs),\n type: 'button'\n },\n listeners: {\n click: () => {\n var _item$action;\n item === null || item === void 0 ? void 0 : (_item$action = item.action) === null || _item$action === void 0 ? void 0 : _item$action.call(undefined, item);\n this.action();\n }\n }\n };\n },\n listIndex() {\n var _this$item3, _this$item3$extraAttr;\n return (_this$item3 = this.item) !== null && _this$item3 !== void 0 && (_this$item3$extraAttr = _this$item3.extraAttrs) !== null && _this$item3$extraAttr !== void 0 && _this$item3$extraAttr.disabled ? null : 0;\n },\n componentIndex() {\n var _this$item4, _this$item4$extraAttr;\n return (_this$item4 = this.item) !== null && _this$item4 !== void 0 && (_this$item4$extraAttr = _this$item4.extraAttrs) !== null && _this$item4$extraAttr !== void 0 && _this$item4$extraAttr.disabled ? null : -1;\n },\n itemVariant() {\n var _this$item5;\n return this.variant || ((_this$item5 = this.item) === null || _this$item5 === void 0 ? void 0 : _this$item5.variant);\n },\n classes() {\n var _this$item$wrapperCla, _this$item6;\n return [this.$options.ITEM_CLASS, (_this$item$wrapperCla = (_this$item6 = this.item) === null || _this$item6 === void 0 ? void 0 : _this$item6.wrapperClass) !== null && _this$item$wrapperCla !== void 0 ? _this$item$wrapperCla : '',\n // This isn't a Tailwind class, so this lint rule isn't relevant.\n // It just so happens this class has the same prefix `gl-`.\n this.itemVariant && this.itemVariant !== 'default' ?\n // eslint-disable-next-line @gitlab/tailwind-no-interpolation\n `gl-new-dropdown-item-${this.itemVariant}` : ''];\n },\n wrapperListeners() {\n const listeners = {\n keydown: this.onKeydown\n };\n if (this.isCustomContent) {\n listeners.click = this.action;\n }\n return listeners;\n }\n },\n methods: {\n onKeydown(event) {\n const {\n code\n } = event;\n if (code === ENTER || code === SPACE) {\n if (this.isCustomContent) {\n this.action();\n } else {\n stopEvent(event);\n /** Instead of simply navigating or calling the action, we want\n * the `a/button` to be the target of the event as it might have additional attributes.\n * E.g. `a` might have `target` attribute.\n */\n const e = new MouseEvent('click', {\n bubbles: true,\n cancelable: true\n });\n if (this.isLink) {\n this.$refs.item.$el.dispatchEvent(e);\n } else {\n var _this$$refs$item;\n (_this$$refs$item = this.$refs.item) === null || _this$$refs$item === void 0 ? void 0 : _this$$refs$item.dispatchEvent(e);\n }\n }\n }\n },\n action() {\n this.$emit('action', this.item);\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',_vm._g({class:_vm.classes,attrs:{\"tabindex\":_vm.listIndex,\"data-testid\":\"disclosure-dropdown-item\"}},_vm.wrapperListeners),[_vm._t(\"default\",function(){return [_c(_vm.itemComponent.is,_vm._g(_vm._b({ref:\"item\",tag:\"component\",staticClass:\"gl-new-dropdown-item-content\",attrs:{\"tabindex\":_vm.componentIndex}},'component',_vm.itemComponent.attrs,false),_vm.itemComponent.listeners),[_c('span',{staticClass:\"gl-new-dropdown-item-text-wrapper\"},[_vm._t(\"list-item\",function(){return [_vm._v(\"\\n \"+_vm._s(_vm.item.text)+\"\\n \")]})],2)])]})],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\nexport { ITEM_CLASS };\n","import uniqueId from 'lodash/uniqueId';\nimport GlDisclosureDropdownItem from './disclosure_dropdown_item';\nimport { isGroup } from './utils';\nimport { DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS, DISCLOSURE_DROPDOWN_GROUP_NAME } from './constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst BORDER_CLASSES = {\n [DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.top]: 'gl-border-t gl-border-t-dropdown-divider gl-pt-2 gl-mt-2',\n [DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.bottom]: 'gl-border-b gl-border-b-dropdown-divider gl-pb-2 gl-mb-2'\n};\nvar script = {\n name: DISCLOSURE_DROPDOWN_GROUP_NAME,\n components: {\n GlDisclosureDropdownItem\n },\n props: {\n /**\n * Group of items\n */\n group: {\n type: Object,\n required: false,\n default: null,\n validator: isGroup\n },\n /**\n * If 'true', will set top border for the group\n * to separate from other groups. You can control\n * the border position using the `borderPosition`\n * property.\n */\n bordered: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Controls the position of the group's border. Valid\n * values are 'top' and 'bottom'.\n */\n borderPosition: {\n type: String,\n required: false,\n default: DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.top,\n validator: value => Object.keys(DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS).includes(value)\n }\n },\n computed: {\n borderClass() {\n return this.bordered ? BORDER_CLASSES[this.borderPosition] : null;\n },\n showHeader() {\n var _this$group;\n return this.$scopedSlots['group-label'] || ((_this$group = this.group) === null || _this$group === void 0 ? void 0 : _this$group.name);\n },\n groupLabeledBy() {\n return this.showHeader ? this.nameId : null;\n }\n },\n created() {\n this.nameId = uniqueId('gl-disclosure-dropdown-group-');\n },\n methods: {\n handleAction(action) {\n this.$emit('action', action);\n },\n uniqueItemId() {\n return uniqueId(`disclosure-item-`);\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{class:_vm.borderClass},[(_vm.showHeader)?_c('div',{staticClass:\"gl-py-2 gl-pl-4 gl-text-sm gl-font-bold gl-text-strong\",attrs:{\"id\":_vm.nameId}},[_vm._t(\"group-label\",function(){return [_vm._v(_vm._s(_vm.group.name))]})],2):_vm._e(),_vm._v(\" \"),_c('ul',{staticClass:\"gl-mb-0 gl-list-none gl-pl-0\",attrs:{\"aria-labelledby\":_vm.groupLabeledBy}},[_vm._t(\"default\",function(){return _vm._l((_vm.group.items),function(item){return _c('gl-disclosure-dropdown-item',{key:_vm.uniqueItemId(),attrs:{\"item\":item},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._t(\"list-item\",null,{\"item\":item})]},proxy:true}],null,true)})})})],2)])};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\nexport { BORDER_CLASSES };\n","import uniqueId from 'lodash/uniqueId';\nimport { offset, autoPlacement, shift, arrow, 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, ARROW_X_MINIMUM } 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(), arrow({\n element: this.$refs.dropdownArrow\n }), 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) return;\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 getArrowOffsets(actualPlacement) {\n // Try to extract the base direction (top, bottom, left, right) from the placement\n const direction = actualPlacement === null || actualPlacement === void 0 ? void 0 : actualPlacement.split('-')[0];\n const offsetConfigs = {\n top: {\n staticSide: 'bottom',\n rotation: '225deg'\n },\n bottom: {\n staticSide: 'top',\n rotation: '45deg'\n },\n left: {\n staticSide: 'right',\n rotation: '135deg'\n },\n right: {\n staticSide: 'left',\n rotation: '315deg'\n }\n };\n return offsetConfigs[direction] || offsetConfigs.bottom;\n },\n async startFloating() {\n this.calculateNonScrollableAreaHeight();\n this.observer = new MutationObserver(this.calculateNonScrollableAreaHeight);\n this.observer.observe(this.$refs.content, {\n childList: true,\n subtree: true\n });\n this.stopAutoUpdate = autoUpdate(this.toggleElement, this.$refs.content, async () => {\n const result = 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 const {\n x,\n y,\n middlewareData,\n placement\n } = result;\n\n // Get offsets based on actual placement, not requested placement\n const {\n rotation,\n staticSide\n } = this.getArrowOffsets(placement);\n\n // Assign dropdown window position\n Object.assign(this.$refs.content.style, {\n left: `${x}px`,\n top: `${y}px`\n });\n\n // Assign arrow position\n if (middlewareData && middlewareData.arrow) {\n const {\n x: arrowX,\n y: arrowY\n } = middlewareData.arrow;\n\n /**\n * Clamp arrow X position to a minimum of 24px from the edge of the dropdown.\n * This prevents wide toggles from pushing the arrow to the very edge of the dropdown.\n */\n const toggleRect = this.toggleElement.getBoundingClientRect();\n const contentRect = this.$refs.content.getBoundingClientRect();\n const clampedArrowX = toggleRect.width > contentRect.width ? Math.min(Math.max(arrowX, ARROW_X_MINIMUM), contentRect.width - ARROW_X_MINIMUM) : arrowX;\n Object.assign(this.$refs.dropdownArrow.style, {\n left: arrowX != null ? `${clampedArrowX}px` : '',\n top: arrowY != null ? `${arrowY}px` : '',\n right: '',\n bottom: '',\n [staticSide]: '-4px',\n transform: `rotate(${rotation})`\n });\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',{ref:\"dropdownArrow\",staticClass:\"gl-new-dropdown-arrow\"}),_vm._v(\" \"),_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 = 8;\nconst ARROW_X_MINIMUM = 24;\n\nexport { ARROW_X_MINIMUM, DEFAULT_OFFSET, FIXED_WIDTH_CLASS };\n","import InitMoreActionsDropdown from '~/milestones/init_more_actions_dropdown';\n\nInitMoreActionsDropdown();\n"],"sourceRoot":""}
{{ text }}
{{ s__('Milestones|This action cannot be reversed.') }}