{"version":3,"sources":["webpack:///./super_sidebar/components/super_sidebar_toggle.vue","webpack:///./super_sidebar/components/super_sidebar_toggle.vue?d6e1","webpack:///super_sidebar/components/super_sidebar_toggle.vue","webpack:///./super_sidebar/components/super_sidebar_toggle.vue?074e","webpack:////build/source/node_modules/@gitlab/ui/dist/components/shared_components/clear_icon_button/clear_icon_button.js","webpack:////build/source/node_modules/lodash/clamp.js","webpack:////build/source/node_modules/lodash/_baseClamp.js","webpack:////build/source/node_modules/@gitlab/ui/dist/directives/outside/outside.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/constants.js","webpack:///./super_sidebar/super_sidebar_collapsed_state_manager.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/search_box_by_type/search_box_by_type.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"],"names":["components","GlButton","directives","GlTooltip","GlTooltipDirective","mixins","Tracking","mixin","props","type","String","required","default","i18n","primaryNavigationSidebar","__","tooltipCollapse","placement","container","title","tooltipExpand","data","sidebarState","computed","isTypeCollapse","isTypeExpand","tooltip","$options","ariaExpanded","mounted","$root","$on","onTooltipShow","beforeUnmount","$off","methods","toggle","track","label","property","toggleSuperSidebarCollapsed","focusOtherToggle","_this","$nextTick","document","querySelector","JS_TOGGLE_EXPAND_CLASS","focus","bvEvent","target","$el","isCollapsed","isPeek","isHoverPeek","preventDefault","component","_c","this","_self","name","rawName","value","expression","attrs","on","__vue_script__","tooltipContainer","validator","HTMLElement","__vue_component__","render","_h","$createElement","_g","modifiers","staticClass","$listeners","staticRenderFns","undefined","baseClamp","toNumber","module","exports","number","lower","upper","callbacks","Map","activeEventTypes","Set","lastMousedown","globalListener","event","forEach","_ref","element","callback","eventTypes","originalEvent","contains","includes","e","onMousedown","OutsideDirective","bind","el","bindings","_ref3","arg","modifiersList","Object","keys","length","parseBinding","has","set","eventType","addEventListener","capture","add","startListening","unbind","entry","get","eventTypesToUnbind","delete","values","every","_ref2","removeEventListener","GL_DROPDOWN_SHOWN","GL_DROPDOWN_HIDDEN","GL_DROPDOWN_BEFORE_CLOSE","GL_DROPDOWN_FOCUS_CONTENT","ARROW_DOWN","ARROW_UP","END","ENTER","HOME","SPACE","POSITION_ABSOLUTE","POSITION_FIXED","GL_DROPDOWN_CONTENTS_CLASS","findPage","classList","isDesktopBreakpoint","bp","windowWidth","breakpoints","xl","collapsed","saveCookie","isPeekable","hasPeeked","wasHoverPeek","setCookie","expires","initSuperSidebarCollapsedState","forceDesktopExpandedSidebar","getCookie","bindSuperSidebarCollapsedEvents","previousWindowWidth","window","innerWidth","_debounce","newWindowWidth","collapsedBeforeResize","collapsedAfterResize","GlClearIconButton","GlIcon","GlFormInput","GlLoadingIcon","inheritAttrs","model","prop","borderless","Boolean","clearButtonTitle","disabled","isLoading","attributes","placeholder","$attrs","input","onInput","focusin","onFocusin","focusout","onFocusout","hasValue","_this$$refs$input","_this$$refs$clearButt","$refs","clearButton","focusInput","$emit","relatedTarget","isInputOrClearButton","_vm","_v","_b","ref","class","inputAttributes","inputListeners","showClearButton","_e","$event","stopPropagation","clearInput","apply","arguments","BASE_DROPDOWN_CLASS","Outside","toggleText","textSrOnly","block","category","primary","variant","size","icon","loading","toggleClass","Array","noCaret","ariaHaspopup","toggleId","ariaLabelledby","offset","Number","mainAxis","fluidWidth","positioningStrategy","strategy","openedYet","visible","baseDropdownId","_this$toggleText","hasNoVisibleToggleText","isIconOnly","toggleLabelledBy","isEllipsisButton","isCaretOnly","$scopedSlots","isDefaultToggle","is","buttonTextClasses","toggleButtonTextClasses","toggleButtonClasses","ariaAttributes","listeners","keydown","onKeydown","click","toggleOptions","_this$$refs$toggle","firstElementChild","isFixed","alignment","split","middleware","allowedPlacements","dropdownArrow","_this$nonScrollableCo","availableHeight","elements","contentsEl","floating","contentsAvailableHeight","nonScrollableContentHeight","assign","style","maxHeight","Math","max","watch","deep","key","toggleElement","setAttribute","checkToggleFocusable","stopFloating","actualPlacement","offsetConfigs","top","staticSide","rotation","bottom","left","right","calculateNonScrollableAreaHeight","observer","MutationObserver","observe","content","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","call","prevented","startFloating","hadFocusWithin","activeElement","hasToggled","focusToggle","code","tagName","toggleOnEnter","toggleOnSpace","_this$$refs$content","scrollableArea","floatingElementBoundingBox","scrollableAreaBoundingBox","height","toggleComponent","tag","indexOf","_k","keyCode","close","toggleAttributes","toggleListeners","_t","_s","panelClasses","closeAndFocus"],"mappings":"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","file":"commons-pages.groups.new-pages.import.gitlab_projects.new-pages.import.manifest.new-pages.projects.n-44c6c18e.d69cc974.chunk.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.tooltip),expression:\"tooltip\"}],attrs:{\"aria-controls\":\"super-sidebar\",\"aria-expanded\":_vm.ariaExpanded,\"aria-label\":_vm.$options.i18n.primaryNavigationSidebar,\"icon\":\"sidebar\",\"category\":\"tertiary\"},on:{\"click\":_vm.toggle}})\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!./super_sidebar_toggle.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!./super_sidebar_toggle.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./super_sidebar_toggle.vue?vue&type=template&id=34f472e6\"\nimport script from \"./super_sidebar_toggle.vue?vue&type=script&lang=js\"\nexport * from \"./super_sidebar_toggle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { GlTooltipDirective } from '../../../directives/tooltip';\nimport GlButton from '../../base/button/button';\nimport { translate } from '../../../utils/i18n';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'ClearIconButton',\n components: {\n GlButton\n },\n directives: {\n GlTooltip: GlTooltipDirective\n },\n props: {\n title: {\n type: String,\n required: false,\n default: () => translate('ClearIconButton.title', 'Clear')\n },\n tooltipContainer: {\n required: false,\n default: false,\n validator: value => value === false || typeof value === 'string' || value instanceof HTMLElement\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-button',_vm._g({directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",value:({ container: _vm.tooltipContainer }),expression:\"{ container: tooltipContainer }\",modifiers:{\"hover\":true}}],staticClass:\"gl-clear-icon-button\",attrs:{\"variant\":\"default\",\"category\":\"tertiary\",\"size\":\"small\",\"name\":\"clear\",\"icon\":\"clear\",\"title\":_vm.title,\"aria-label\":_vm.title}},_vm.$listeners))};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","var 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","/**\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","// 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 { GlBreakpointInstance as bp, breakpoints } from '@gitlab/ui/dist/utils';\nimport { debounce } from 'lodash';\nimport { setCookie, getCookie } from '~/lib/utils/common_utils';\nimport Tracking from '~/tracking';\nimport { sidebarState } from './constants';\n\nexport const SIDEBAR_COLLAPSED_CLASS = 'page-with-super-sidebar-collapsed';\nexport const SIDEBAR_COLLAPSED_COOKIE = 'super_sidebar_collapsed';\nexport const SIDEBAR_COLLAPSED_COOKIE_EXPIRATION = 365 * 10;\nexport const SIDEBAR_TRANSITION_DURATION = 200;\n\nexport const findPage = () => document.querySelector('.page-with-super-sidebar');\nexport const findSidebar = () => document.querySelector('.super-sidebar');\n\nexport const isCollapsed = () => findPage().classList.contains(SIDEBAR_COLLAPSED_CLASS);\n\n// See documentation: https://design.gitlab.com/patterns/navigation#left-sidebar\n// NOTE: at 1200px nav sidebar should not overlap the content\n// https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/24555#note_134136110\nexport const isDesktopBreakpoint = () => bp.windowWidth() >= breakpoints.xl;\n\nexport const getCollapsedCookie = () => getCookie(SIDEBAR_COLLAPSED_COOKIE) === 'true';\n\nexport const toggleSuperSidebarCollapsed = (collapsed, saveCookie) => {\n findPage().classList.toggle(SIDEBAR_COLLAPSED_CLASS, collapsed);\n\n sidebarState.isPeek = false;\n sidebarState.isPeekable = collapsed;\n sidebarState.hasPeeked = false;\n sidebarState.isHoverPeek = false;\n sidebarState.wasHoverPeek = false;\n sidebarState.isCollapsed = collapsed;\n\n if (saveCookie && isDesktopBreakpoint()) {\n setCookie(SIDEBAR_COLLAPSED_COOKIE, collapsed, {\n expires: SIDEBAR_COLLAPSED_COOKIE_EXPIRATION,\n });\n }\n};\n\nexport const initSuperSidebarCollapsedState = (forceDesktopExpandedSidebar = false) => {\n let collapsed = true;\n if (isDesktopBreakpoint()) {\n collapsed = forceDesktopExpandedSidebar ? false : getCollapsedCookie();\n }\n toggleSuperSidebarCollapsed(collapsed, false);\n};\n\nexport const bindSuperSidebarCollapsedEvents = (forceDesktopExpandedSidebar = false) => {\n let previousWindowWidth = window.innerWidth;\n\n const callback = debounce(() => {\n const newWindowWidth = window.innerWidth;\n const widthChanged = previousWindowWidth !== newWindowWidth;\n\n if (widthChanged) {\n const collapsedBeforeResize = sidebarState.isCollapsed;\n initSuperSidebarCollapsedState(forceDesktopExpandedSidebar);\n const collapsedAfterResize = sidebarState.isCollapsed;\n if (!collapsedBeforeResize && collapsedAfterResize) {\n Tracking.event(undefined, 'nav_hide', {\n label: 'browser_resize',\n property: 'nav_sidebar',\n });\n }\n }\n previousWindowWidth = newWindowWidth;\n }, 100);\n\n window.addEventListener('resize', callback);\n\n return () => window.removeEventListener('resize', callback);\n};\n","import GlClearIconButton from '../../shared_components/clear_icon_button/clear_icon_button';\nimport GlFormInput from '../form/form_input/form_input';\nimport GlIcon from '../icon/icon';\nimport GlLoadingIcon from '../loading_icon/loading_icon';\nimport { translate } from '../../../utils/i18n';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlSearchBoxByType',\n components: {\n GlClearIconButton,\n GlIcon,\n GlFormInput,\n GlLoadingIcon\n },\n inheritAttrs: false,\n model: {\n prop: 'value',\n event: 'input'\n },\n props: {\n /**\n * If provided, used as value of search input\n */\n value: {\n type: String,\n required: false,\n default: ''\n },\n borderless: {\n type: Boolean,\n required: false,\n default: false\n },\n clearButtonTitle: {\n type: String,\n required: false,\n default: () => translate('GlSearchBoxByType.clearButtonTitle', 'Clear')\n },\n /**\n * If provided and true, disables the input and controls\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Puts search box into loading state, rendering spinner\n */\n isLoading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Container for tooltip. Valid values: DOM node, selector string or `false` for default\n */\n tooltipContainer: {\n required: false,\n default: false,\n validator: value => value === false || typeof value === 'string' || value instanceof HTMLElement\n }\n },\n computed: {\n inputAttributes() {\n const attributes = {\n type: 'search',\n placeholder: translate('GlSearchBoxByType.input.placeholder', 'Search'),\n ...this.$attrs\n };\n if (!attributes['aria-label']) {\n attributes['aria-label'] = attributes.placeholder;\n }\n return attributes;\n },\n hasValue() {\n return Boolean(this.value.length);\n },\n inputListeners() {\n return {\n ...this.$listeners,\n input: this.onInput,\n focusin: this.onFocusin,\n focusout: this.onFocusout\n };\n },\n showClearButton() {\n return this.hasValue && !this.disabled;\n }\n },\n methods: {\n isInputOrClearButton(element) {\n var _this$$refs$input, _this$$refs$clearButt;\n return element === ((_this$$refs$input = this.$refs.input) === null || _this$$refs$input === void 0 ? void 0 : _this$$refs$input.$el) || element === ((_this$$refs$clearButt = this.$refs.clearButton) === null || _this$$refs$clearButt === void 0 ? void 0 : _this$$refs$clearButt.$el);\n },\n clearInput() {\n this.onInput('');\n this.focusInput();\n },\n focusInput() {\n this.$refs.input.$el.focus();\n },\n onInput(value) {\n this.$emit('input', value);\n },\n onFocusout(event) {\n const {\n relatedTarget\n } = event;\n if (this.isInputOrClearButton(relatedTarget)) {\n return;\n }\n this.$emit('focusout', event);\n },\n onFocusin(event) {\n const {\n relatedTarget\n } = event;\n if (this.isInputOrClearButton(relatedTarget)) {\n return;\n }\n this.$emit('focusin', event);\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-search-box-by-type\"},[_c('gl-icon',{staticClass:\"gl-search-box-by-type-search-icon\",attrs:{\"name\":\"search\",\"variant\":\"subtle\"}}),_vm._v(\" \"),_c('gl-form-input',_vm._g(_vm._b({ref:\"input\",class:{\n 'gl-search-box-by-type-input': !_vm.borderless,\n 'gl-search-box-by-type-input-borderless': _vm.borderless,\n },attrs:{\"value\":_vm.value,\"disabled\":_vm.disabled}},'gl-form-input',_vm.inputAttributes,false),_vm.inputListeners)),_vm._v(\" \"),(_vm.isLoading || _vm.showClearButton)?_c('div',{staticClass:\"gl-search-box-by-type-right-icons\"},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"gl-search-box-by-type-loading-icon\"}):_vm._e(),_vm._v(\" \"),(_vm.showClearButton)?_c('gl-clear-icon-button',{ref:\"clearButton\",staticClass:\"gl-search-box-by-type-clear gl-clear-icon-button\",attrs:{\"title\":_vm.clearButtonTitle,\"tooltip-container\":_vm.tooltipContainer},on:{\"click\":function($event){$event.stopPropagation();return _vm.clearInput.apply(null, arguments)},\"focusin\":_vm.onFocusin,\"focusout\":_vm.onFocusout}}):_vm._e()],1):_vm._e()],1)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","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"],"sourceRoot":""}