{"version":3,"sources":["webpack:////home/git/gitlab/node_modules/@gitlab/ui/dist/components/shared_components/clear_icon_button/clear_icon_button.js","webpack:////home/git/gitlab/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/utils.js","webpack:////home/git/gitlab/node_modules/@gitlab/ui/dist/utils/i18n.js","webpack:////home/git/gitlab/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_item.js","webpack:////home/git/gitlab/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_search_input.js","webpack:////home/git/gitlab/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_group.js","webpack:////home/git/gitlab/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox.js","webpack:////home/git/gitlab/node_modules/@gitlab/ui/dist/components/base/search_box_by_type/search_box_by_type.js"],"names":["__vue_script__","name","components","GlButton","directives","GlTooltip","props","title","type","String","required","default","tooltipContainer","validator","value","HTMLElement","__vue_component__","render","_h","this","$createElement","_self","_c","_g","rawName","container","expression","modifiers","staticClass","attrs","$listeners","staticRenderFns","undefined","isOption","item","Boolean","isGroup","options","arguments","length","Array","isArray","every","hasNoDuplicates","array","Set","size","flattenedOptions","items","flatMap","itemsValidator","isAllOptionsOrAllGroups","map","_ref","hasUniqueValues","filter","_ref2","text","hasUniqueGroups","translate","key","defaultValue","_i18n$key","GlIcon","isSelected","isFocused","isCheckCentered","computed","methods","$emit","event","code","toggleSelection","_vm","on","onKeydown","class","checkedClasses","_v","_t","GlClearIconButton","model","prop","placeholder","input","target","focusInput","$refs","focus","ref","domProps","inputListeners","$event","stopPropagation","clearInput","apply","_e","textSrOnly","nameId","_s","GROUP_TOP_BORDER_CLASSES","HEADER_ITEMS_BORDER_CLASSES","events","GL_DROPDOWN_SHOWN","GL_DROPDOWN_HIDDEN","GlBaseDropdown","GlListboxItem","GlListboxGroup","GlSearchBoxByType","GlListboxSearchInput","GlLoadingIcon","GlIntersectionObserver","selected","Number","multiple","toggleText","headerText","category","primary","variant","icon","disabled","loading","toggleClass","Object","noCaret","placement","keys","includes","toggleAriaLabelledBy","listAriaLabelledBy","searchable","searching","infiniteScroll","totalItems","infiniteScrollLoading","noResultsText","searchPlaceholder","resetButtonLabel","showSelectAllButtonLabel","block","dropdownOffset","fluidWidth","positioningStrategy","strategy","startOpened","srOnlyResultsLabel","Function","count","fn","data","selectedValues","toggleId","listboxId","nextFocusedItemIndex","searchStr","topBoundaryVisible","bottomBoundaryVisible","hasItems","listboxTag","_this$flattenedOption","find","findIndex","sort","showNoResultsText","showSelectAllButton","$scopedSlots","toggle","toggleClasses","hasSelection","push","footer","watch","immediate","newSelected","$nextTick","observeScroll","open","_this$scrollObserver","scrollObserver","disconnect","baseDropdown","close","groupClasses","index","_this$selectedIndices","focusSearchInput","focusItem","selectedIndices","getFocusableListItemElements","elements","stop","isSearchInput","matches","indexOf","focusNextItem","_this$$refs$list","list","querySelectorAll","from","offset","currentIndex","nextIndex","_elements$index","searchBox","onMultiSelect","onSingleSelect","some","closeAndFocus","selectedValue","searchTerm","_this$scrollObserver2","rootMargin","root","threshold","observer","IntersectionObserver","entries","forEach","entry","_entry$target","$__visibilityProp","isIntersecting","topBoundary","bottomBoundary","observe","listboxToggleText","toggleButtonClasses","_d","$options","onShow","onHide","scopedSlots","_u","proxy","headerId","onResetButtonClicked","onSelectAllButtonClicked","search","_k","keyCode","preventDefault","callback","$$v","tag","listboxClasses","itemTag","hasHeader","_l","_b","onSelect","listboxItemMoreItemsAriaAttributes","option","onIntersectionObserverAppear","hasFooter","GlFormInput","inheritAttrs","borderless","clearButtonTitle","isLoading","attributes","$attrs","onInput","focusin","onFocusin","focusout","onFocusout","hasValue","element","_this$$refs$input","_this$$refs$clearButt","$el","clearButton","relatedTarget","isInputOrClearButton","inputAttributes","showClearButton"],"mappings":"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","file":"72.065fc06f.chunk.js","sourcesContent":["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","import isNumber from 'lodash/isNumber';\nimport isString from 'lodash/isString';\n\nconst isOption = item => Boolean(item) && (isString(item.value) || isNumber(item.value));\n\n// eslint-disable-next-line unicorn/no-array-callback-reference\nconst isGroup = function () {\n let {\n options\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Array.isArray(options) && options.every(isOption);\n};\nconst hasNoDuplicates = array => array.length === new Set(array).size;\nconst flattenedOptions = items => items.flatMap(item => isOption(item) ? item : item.options);\n\n// eslint-disable-next-line unicorn/no-array-callback-reference\nconst isAllOptionsOrAllGroups = items => items.every(isOption) || items.every(isGroup);\nconst hasUniqueValues = items => hasNoDuplicates(flattenedOptions(items).map(_ref => {\n let {\n value\n } = _ref;\n return value;\n}));\n\n// eslint-disable-next-line unicorn/no-array-callback-reference\nconst hasUniqueGroups = items => hasNoDuplicates(items.filter(isGroup).map(_ref2 => {\n let {\n text\n } = _ref2;\n return text;\n}));\nconst itemsValidator = items => isAllOptionsOrAllGroups(items) && hasUniqueValues(items) && hasUniqueGroups(items);\n\nexport { flattenedOptions, isOption, itemsValidator };\n","import { i18n } from '../config';\n\n/**\n * Mark a label as translatable.\n *\n * @param {string} key Translation key to be leveraged by the consumer to provide a generic translation at configuration time.\n * @param {string} defaultValue A fallback value to be relied on if the consumer doesn't have translation capabilities.\n * @returns {string} The translated label.\n */\nconst translate = (key, defaultValue) => {\n var _i18n$key;\n return (_i18n$key = i18n[key]) !== null && _i18n$key !== void 0 ? _i18n$key : defaultValue;\n};\n\nexport { translate };\n","import GlIcon from '../../icon/icon';\nimport { ENTER, SPACE } from '../constants';\nimport { stopEvent } from '../../../../utils/utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlListboxItem',\n components: {\n GlIcon\n },\n props: {\n isSelected: {\n type: Boolean,\n default: false,\n required: false\n },\n isFocused: {\n type: Boolean,\n default: false,\n required: false\n },\n isCheckCentered: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n computed: {\n checkedClasses() {\n if (this.isCheckCentered) {\n return '';\n }\n return 'gl-mt-3 gl-align-self-start';\n }\n },\n methods: {\n toggleSelection() {\n this.$emit('select', !this.isSelected);\n },\n onKeydown(event) {\n const {\n code\n } = event;\n if (code === ENTER || code === SPACE) {\n stopEvent(event);\n this.toggleSelection();\n }\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"gl-new-dropdown-item\",attrs:{\"role\":\"option\",\"tabindex\":_vm.isFocused ? 0 : -1,\"aria-selected\":_vm.isSelected},on:{\"click\":_vm.toggleSelection,\"keydown\":_vm.onKeydown}},[_c('span',{staticClass:\"gl-new-dropdown-item-content\"},[_c('gl-icon',{class:[\n 'gl-new-dropdown-item-check-icon',\n { 'gl-visibility-hidden': !_vm.isSelected },\n _vm.checkedClasses ],attrs:{\"name\":\"mobile-issue-close\",\"data-testid\":\"dropdown-item-checkbox\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-new-dropdown-item-text-wrapper\"},[_vm._t(\"default\")],2)],1)])};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import GlClearIconButton from '../../../shared_components/clear_icon_button/clear_icon_button';\nimport GlIcon from '../../icon/icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlListboxSearchInput',\n components: {\n GlClearIconButton,\n GlIcon\n },\n model: {\n prop: 'value',\n event: 'input'\n },\n props: {\n /**\n * If provided, used as value of search input\n */\n value: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Search input placeholder text and aria-label\n */\n placeholder: {\n type: String,\n required: false,\n default: 'Search'\n }\n },\n computed: {\n hasValue() {\n return Boolean(this.value.length);\n },\n inputListeners() {\n return {\n ...this.$listeners,\n input: event => {\n this.$emit('input', event.target.value);\n }\n };\n }\n },\n methods: {\n clearInput() {\n this.$emit('input', '');\n this.focusInput();\n },\n focusInput() {\n this.$refs.input.focus();\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-listbox-search\"},[_c('gl-icon',{staticClass:\"gl-listbox-search-icon\",attrs:{\"name\":\"search-sm\",\"size\":12}}),_vm._v(\" \"),_c('input',_vm._g({ref:\"input\",staticClass:\"gl-listbox-search-input\",attrs:{\"type\":\"search\",\"aria-label\":_vm.placeholder,\"placeholder\":_vm.placeholder},domProps:{\"value\":_vm.value}},_vm.inputListeners)),_vm._v(\" \"),(_vm.hasValue)?_c('gl-clear-icon-button',{staticClass:\"gl-listbox-search-clear-button\",on:{\"click\":function($event){$event.stopPropagation();return _vm.clearInput.apply(null, arguments)}}}):_vm._e()],1)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import uniqueId from 'lodash/uniqueId';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlListboxGroup',\n props: {\n name: {\n type: String,\n required: true\n },\n textSrOnly: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n created() {\n this.nameId = uniqueId('gl-listbox-group-');\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"gl-mb-0 gl-pl-0\",attrs:{\"role\":\"group\",\"aria-labelledby\":_vm.nameId}},[_c('li',{staticClass:\"gl-pl-4 gl-pt-3 gl-pb-2 gl-font-sm gl-font-weight-bold\",class:{ 'gl-sr-only': _vm.textSrOnly },attrs:{\"id\":_vm.nameId,\"role\":\"presentation\"}},[_vm._t(\"group-label\",function(){return [_vm._v(_vm._s(_vm.name))]})],2),_vm._v(\" \"),_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import clamp from 'lodash/clamp';\nimport uniqueId from 'lodash/uniqueId';\nimport isNil from 'lodash/isNil';\nimport { stopEvent } from '../../../../utils/utils';\nimport { GL_DROPDOWN_SHOWN, GL_DROPDOWN_HIDDEN, POSITION_ABSOLUTE, POSITION_FIXED, GL_DROPDOWN_CONTENTS_CLASS, HOME, END, ARROW_UP, ARROW_DOWN } from '../constants';\nimport { buttonCategoryOptions, dropdownVariantOptions, buttonSizeOptions, dropdownPlacements } from '../../../../utils/constants';\nimport GlButton from '../../button/button';\nimport GlLoadingIcon from '../../loading_icon/loading_icon';\nimport GlIntersectionObserver from '../../../utilities/intersection_observer/intersection_observer';\nimport GlSearchBoxByType from '../../search_box_by_type/search_box_by_type';\nimport GlBaseDropdown from '../base_dropdown/base_dropdown';\nimport { translate } from '../../../../utils/i18n';\nimport GlListboxItem from './listbox_item';\nimport GlListboxSearchInput from './listbox_search_input';\nimport GlListboxGroup from './listbox_group';\nimport { itemsValidator, isOption, flattenedOptions } from './utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst ITEM_SELECTOR = '[role=\"option\"]';\nconst HEADER_ITEMS_BORDER_CLASSES = ['gl-border-b-1', 'gl-border-b-solid', 'gl-border-b-gray-200'];\nconst GROUP_TOP_BORDER_CLASSES = ['gl-border-t', 'gl-border-t-gray-200', 'gl-pt-1', 'gl-mt-2'];\nconst SEARCH_INPUT_SELECTOR = '.gl-listbox-search-input';\nvar script = {\n name: 'GlCollapsibleListbox',\n HEADER_ITEMS_BORDER_CLASSES,\n events: {\n GL_DROPDOWN_SHOWN,\n GL_DROPDOWN_HIDDEN\n },\n components: {\n GlBaseDropdown,\n GlListboxItem,\n GlListboxGroup,\n GlButton,\n GlSearchBoxByType,\n GlListboxSearchInput,\n GlLoadingIcon,\n GlIntersectionObserver\n },\n model: {\n prop: 'selected',\n event: 'select'\n },\n props: {\n /**\n * Items to display in the dropdown\n */\n items: {\n type: Array,\n required: false,\n default: () => [],\n validator: itemsValidator\n },\n /**\n * Array of selected items values for multi-select and selected item value for single-select\n */\n selected: {\n type: [Array, String, Number],\n required: false,\n default: () => []\n },\n /**\n * Allow multi-selection\n */\n multiple: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Toggle button text\n */\n toggleText: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Toggle text to be read by screen readers only\n */\n textSrOnly: {\n type: Boolean,\n required: false,\n default: false\n },\n /** The header text */\n headerText: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Styling option - dropdown's toggle category\n */\n category: {\n type: String,\n required: false,\n default: buttonCategoryOptions.primary,\n validator: value => value in buttonCategoryOptions\n },\n /**\n * Styling option - dropdown's toggle variant\n */\n variant: {\n type: String,\n required: false,\n default: dropdownVariantOptions.default,\n validator: value => value in dropdownVariantOptions\n },\n /**\n * The size of the dropdown toggle\n */\n size: {\n type: String,\n required: false,\n default: 'medium',\n validator: value => value in buttonSizeOptions\n },\n /**\n * Icon name that will be rendered in the toggle button\n */\n icon: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Set to \"true\" to disable the dropdown\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Set to \"true\" when dropdown content (items) is loading\n * It will render a small loader in the dropdown toggle and make it disabled\n */\n loading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Additional CSS classes to customize toggle appearance\n */\n toggleClass: {\n type: [String, Array, Object],\n required: false,\n default: null\n },\n /**\n * Set to \"true\" to hide the caret\n */\n noCaret: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Align listbox menu with respect to the toggle button\n */\n placement: {\n type: String,\n required: false,\n default: 'left',\n validator: value => Object.keys(dropdownPlacements).includes(value)\n },\n /**\n * Center selected item checkmark\n */\n isCheckCentered: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * The `aria-labelledby` attribute value for the toggle button\n * Provide the string of ids seperated by space\n */\n toggleAriaLabelledBy: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The `aria-labelledby` attribute value for the list of options\n * Provide the string of ids seperated by space\n */\n listAriaLabelledBy: {\n type: String,\n required: false,\n default: null\n },\n /**\n * Enable search\n */\n searchable: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Set to \"true\" when items search is in progress.\n * It will display loading icon below the search input\n */\n searching: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Enables infinite scroll.\n * When set to `true`, the `@bottom-reached` event will be fired when\n * the bottom of the listbox is scrolled to.\n * Does not support groups.\n */\n infiniteScroll: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * This prop is used for infinite scroll.\n * It represents the total number of items that exist,\n * even if they have not yet been loaded.\n * Do not set this prop if the total number of items is unknown.\n */\n totalItems: {\n type: Number,\n required: false,\n default: null\n },\n /**\n * This prop is used for infinite scroll.\n * Set to `true` when more items are being loaded.\n */\n infiniteScrollLoading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Message to be displayed when filtering produced no results\n */\n noResultsText: {\n type: String,\n required: false,\n default: 'No results found'\n },\n /**\n * Search input placeholder text and aria-label\n */\n searchPlaceholder: {\n type: String,\n required: false,\n default: 'Search'\n },\n /**\n * The reset button's label, to be rendered in the header. If this is omitted, the button is not\n * rendered.\n * The reset button requires a header to be set, so this prop should be used in conjunction with\n * headerText.\n */\n resetButtonLabel: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * The select all button's label, to be rendered in the header. If this is omitted, the button is not\n * rendered.\n * The select all button requires a header to be set, so this prop should be used in conjunction with\n * headerText.\n */\n showSelectAllButtonLabel: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Render the toggle button as a block element\n */\n block: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Custom offset to be applied to Floating UI's offset middleware.\n * https://floating-ui.com/docs/offset\n */\n dropdownOffset: {\n type: [Number, Object],\n required: false,\n default: undefined\n },\n /**\n * Lets the dropdown extend to match its content's width, up to a maximum width\n * defined by the `$gl-new-dropdown-max-width` variable.\n */\n fluidWidth: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Strategy to be applied by computePosition. If the dropdown's container is too short for it to\n * fit in, setting this to fixed will let it position itself above its container.\n * https://floating-ui.com/docs/computePosition#strategy\n */\n positioningStrategy: {\n type: String,\n required: false,\n default: POSITION_ABSOLUTE,\n validator: strategy => [POSITION_ABSOLUTE, POSITION_FIXED].includes(strategy)\n },\n /**\n * Opens dropdown on render\n */\n startOpened: {\n type: Boolean,\n required: false,\n default: false\n },\n srOnlyResultsLabel: {\n type: Function,\n required: false,\n default: count => {\n const fn = translate('GlCollapsibleListbox.srOnlyResultsLabel', 'Results count');\n if (typeof fn === 'function') {\n return fn(count);\n }\n return `${count} result${count > 1 ? 's' : ''}`;\n }\n }\n },\n data() {\n return {\n selectedValues: [],\n toggleId: uniqueId('dropdown-toggle-btn-'),\n listboxId: uniqueId('listbox-'),\n nextFocusedItemIndex: null,\n searchStr: '',\n topBoundaryVisible: true,\n bottomBoundaryVisible: true\n };\n },\n computed: {\n listboxTag() {\n if (!this.hasItems || isOption(this.items[0])) return 'ul';\n return 'div';\n },\n listboxClasses() {\n return {\n 'top-scrim-visible': !this.topBoundaryVisible,\n 'bottom-scrim-visible': !this.bottomBoundaryVisible,\n [GL_DROPDOWN_CONTENTS_CLASS]: true\n };\n },\n itemTag() {\n return this.listboxTag === 'ul' ? 'li' : 'div';\n },\n flattenedOptions() {\n return flattenedOptions(this.items);\n },\n hasItems() {\n return this.items.length > 0;\n },\n listboxToggleText() {\n if (!this.toggleText) {\n if (!this.multiple && this.selectedValues.length) {\n var _this$flattenedOption;\n return (_this$flattenedOption = this.flattenedOptions.find(_ref => {\n let {\n value\n } = _ref;\n return value === this.selectedValues[0];\n })) === null || _this$flattenedOption === void 0 ? void 0 : _this$flattenedOption.text;\n }\n return '';\n }\n return this.toggleText;\n },\n selectedIndices() {\n return this.selectedValues.map(selected => this.flattenedOptions.findIndex(_ref2 => {\n let {\n value\n } = _ref2;\n return value === selected;\n })).sort();\n },\n showList() {\n return this.flattenedOptions.length && !this.searching;\n },\n showNoResultsText() {\n return !this.flattenedOptions.length && !this.searching;\n },\n announceSRSearchResults() {\n return this.searchable && !this.showNoResultsText;\n },\n headerId() {\n return this.headerText && uniqueId('listbox-header-');\n },\n showResetButton() {\n if (!this.resetButtonLabel) {\n return false;\n }\n\n /**\n * if dropdown has no items\n * reset all should be hidden\n */\n if (!this.hasItems) {\n return false;\n }\n\n // hide if no selection\n if (!this.selected || this.selected.length === 0) {\n return false;\n }\n\n // only show reset button if show all button is not there\n return !this.showSelectAllButton;\n },\n showSelectAllButton() {\n if (!this.showSelectAllButtonLabel) {\n return false;\n }\n if (!this.multiple) {\n return false;\n }\n\n /**\n * if dropdown has no items\n * select all should be hidden\n */\n if (!this.hasItems) {\n return false;\n }\n return this.selected.length !== this.flattenedOptions.length;\n },\n showIntersectionObserver() {\n return this.infiniteScroll && !this.infiniteScrollLoading && !this.loading && !this.searching;\n },\n hasCustomToggle() {\n return Boolean(this.$scopedSlots.toggle);\n },\n hasSelection() {\n return Boolean(this.selectedValues.length);\n },\n toggleButtonClasses() {\n const toggleClasses = [this.toggleClass];\n if (!this.hasSelection) {\n toggleClasses.push('gl-text-gray-500!');\n }\n return toggleClasses;\n },\n hasHeader() {\n return this.headerText || this.searchable;\n },\n hasFooter() {\n return Boolean(this.$scopedSlots.footer);\n }\n },\n watch: {\n selected: {\n immediate: true,\n handler(newSelected) {\n if (Array.isArray(newSelected)) {\n if (process.env.NODE_ENV !== 'production' && !this.multiple && newSelected.length) {\n throw new Error('To allow multi-selection, please, set \"multiple\" property to \"true\"');\n }\n this.selectedValues = [...newSelected];\n } else {\n this.selectedValues = isNil(newSelected) ? [] : [newSelected];\n }\n }\n },\n items: {\n handler() {\n this.$nextTick(() => {\n /* Every time the list of items changes (on search),\n * the observed elements are recreated, thus we need to start obesrving them again */\n this.observeScroll();\n });\n }\n },\n ...(process.env.NODE_ENV !== 'production' ? {\n resetButtonLabel: {\n immediate: true,\n handler(newResetButtonLabel) {\n if (newResetButtonLabel && !this.headerText) {\n throw new Error('The reset button cannot be rendered without a header. Either provide a header via the headerText prop, or do not provide the resetButtonLabel prop.');\n }\n }\n },\n showSelectAllButtonLabel: {\n immediate: true,\n handler(showSelectAllButtonLabel) {\n if (showSelectAllButtonLabel && !this.headerText) {\n throw new Error('The select all button cannot be rendered without a header. Either provide a header via the headerText prop, or do not provide the showSelectAllButtonLabel prop.');\n }\n }\n },\n infiniteScroll: {\n immediate: true,\n handler(newValue) {\n if (newValue && this.items.some(item => !isOption(item))) {\n throw new Error('Infinite scroll does not support groups. Please set the \"infiniteScroll\" prop to \"false\"');\n }\n }\n }\n } : {})\n },\n mounted() {\n if (this.startOpened) {\n this.open();\n }\n this.observeScroll();\n },\n beforeDestroy() {\n var _this$scrollObserver;\n (_this$scrollObserver = this.scrollObserver) === null || _this$scrollObserver === void 0 ? void 0 : _this$scrollObserver.disconnect();\n },\n methods: {\n open() {\n this.$refs.baseDropdown.open();\n },\n close() {\n this.$refs.baseDropdown.close();\n },\n groupClasses(index) {\n return index === 0 ? null : GROUP_TOP_BORDER_CLASSES;\n },\n onShow() {\n if (this.searchable) {\n this.focusSearchInput();\n } else {\n var _this$selectedIndices;\n this.focusItem((_this$selectedIndices = this.selectedIndices[0]) !== null && _this$selectedIndices !== void 0 ? _this$selectedIndices : 0, this.getFocusableListItemElements());\n }\n /**\n * Emitted when dropdown is shown\n *\n * @event shown\n */\n this.$emit(GL_DROPDOWN_SHOWN);\n },\n onHide() {\n /**\n * Emitted when dropdown is hidden\n *\n * @event hidden\n */\n this.$emit(GL_DROPDOWN_HIDDEN);\n this.nextFocusedItemIndex = null;\n },\n onKeydown(event) {\n const {\n code,\n target\n } = event;\n const elements = this.getFocusableListItemElements();\n if (elements.length < 1) return;\n let stop = true;\n const isSearchInput = target.matches(SEARCH_INPUT_SELECTOR);\n if (code === HOME) {\n if (isSearchInput) {\n return;\n }\n this.focusItem(0, elements);\n } else if (code === END) {\n if (isSearchInput) {\n return;\n }\n this.focusItem(elements.length - 1, elements);\n } else if (code === ARROW_UP) {\n if (isSearchInput) {\n return;\n }\n if (this.searchable && elements.indexOf(target) === 0) {\n this.focusSearchInput();\n } else {\n this.focusNextItem(event, elements, -1);\n }\n } else if (code === ARROW_DOWN) {\n if (isSearchInput) {\n this.focusItem(0, elements);\n } else {\n this.focusNextItem(event, elements, 1);\n }\n } else {\n stop = false;\n }\n if (stop) {\n stopEvent(event);\n }\n },\n getFocusableListItemElements() {\n var _this$$refs$list;\n const items = (_this$$refs$list = this.$refs.list) === null || _this$$refs$list === void 0 ? void 0 : _this$$refs$list.querySelectorAll(ITEM_SELECTOR);\n return Array.from(items || []);\n },\n focusNextItem(event, elements, offset) {\n const {\n target\n } = event;\n const currentIndex = elements.indexOf(target);\n const nextIndex = clamp(currentIndex + offset, 0, elements.length - 1);\n this.focusItem(nextIndex, elements);\n },\n focusItem(index, elements) {\n var _elements$index;\n this.nextFocusedItemIndex = index;\n (_elements$index = elements[index]) === null || _elements$index === void 0 ? void 0 : _elements$index.focus();\n },\n focusSearchInput() {\n this.$refs.searchBox.focusInput();\n },\n onSelect(item, isSelected) {\n if (this.multiple) {\n this.onMultiSelect(item.value, isSelected);\n } else {\n this.onSingleSelect(item.value, isSelected);\n }\n },\n isSelected(item) {\n return this.selectedValues.some(value => value === item.value);\n },\n isFocused(item) {\n return this.nextFocusedItemIndex === this.flattenedOptions.indexOf(item);\n },\n onSingleSelect(value, isSelected) {\n if (isSelected) {\n /**\n * Emitted when selection is changed\n *\n * @event select\n */\n this.$emit('select', value);\n }\n this.closeAndFocus();\n },\n onMultiSelect(value, isSelected) {\n if (isSelected) {\n this.$emit('select', [...this.selectedValues, value]);\n } else {\n this.$emit('select', this.selectedValues.filter(selectedValue => selectedValue !== value));\n }\n },\n search(searchTerm) {\n /**\n * Emitted when the search query string is changed\n *\n * @event search\n * @type {string}\n */\n this.$emit('search', searchTerm);\n },\n onResetButtonClicked() {\n /**\n * Emitted when the reset button is clicked\n *\n * @event reset\n */\n this.$emit('reset');\n },\n onSelectAllButtonClicked() {\n /**\n * Emitted when the select all button is clicked\n *\n * @event select-all\n */\n this.$emit('select-all');\n },\n closeAndFocus() {\n this.$refs.baseDropdown.closeAndFocus();\n },\n onIntersectionObserverAppear() {\n /**\n * Emitted when bottom of listbox has been scrolled to.\n * Used for infinite scroll.\n *\n * @event bottom-reached\n */\n this.$emit('bottom-reached');\n },\n listboxItemMoreItemsAriaAttributes(index) {\n if (this.totalItems === null) {\n return {};\n }\n return {\n 'aria-setsize': this.totalItems,\n 'aria-posinset': index + 1\n };\n },\n observeScroll() {\n var _this$scrollObserver2;\n const root = this.$refs.list;\n const options = {\n rootMargin: '8px',\n root,\n threshold: 1.0\n };\n (_this$scrollObserver2 = this.scrollObserver) === null || _this$scrollObserver2 === void 0 ? void 0 : _this$scrollObserver2.disconnect();\n const observer = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n var _entry$target;\n this[(_entry$target = entry.target) === null || _entry$target === void 0 ? void 0 : _entry$target.$__visibilityProp] = entry.isIntersecting;\n });\n }, options);\n const topBoundary = this.$refs['top-boundary'];\n const bottomBoundary = this.$refs['bottom-boundary'];\n if (topBoundary) {\n topBoundary.$__visibilityProp = 'topBoundaryVisible';\n observer.observe(topBoundary);\n }\n if (bottomBoundary) {\n bottomBoundary.$__visibilityProp = 'bottomBoundaryVisible';\n observer.observe(bottomBoundary);\n }\n this.scrollObserver = observer;\n },\n isOption\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-base-dropdown',{ref:\"baseDropdown\",attrs:{\"aria-haspopup\":\"listbox\",\"aria-labelledby\":_vm.toggleAriaLabelledBy,\"block\":_vm.block,\"toggle-id\":_vm.toggleId,\"toggle-text\":_vm.listboxToggleText,\"toggle-class\":_vm.toggleButtonClasses,\"text-sr-only\":_vm.textSrOnly,\"category\":_vm.category,\"variant\":_vm.variant,\"size\":_vm.size,\"icon\":_vm.icon,\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"no-caret\":_vm.noCaret,\"placement\":_vm.placement,\"offset\":_vm.dropdownOffset,\"fluid-width\":_vm.fluidWidth,\"positioning-strategy\":_vm.positioningStrategy},on:_vm._d({},[_vm.$options.events.GL_DROPDOWN_SHOWN,_vm.onShow,_vm.$options.events.GL_DROPDOWN_HIDDEN,_vm.onHide]),scopedSlots:_vm._u([(_vm.hasCustomToggle)?{key:\"toggle\",fn:function(){return [_vm._t(\"toggle\")]},proxy:true}:null],null,true)},[_vm._v(\" \"),(_vm.headerText)?_c('div',{staticClass:\"gl-display-flex gl-align-items-center gl-p-4! gl-min-h-8\",class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('div',{staticClass:\"gl-flex-grow-1 gl-font-weight-bold gl-font-sm gl-pr-2\",attrs:{\"id\":_vm.headerId,\"data-testid\":\"listbox-header-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.headerText)+\"\\n \")]),_vm._v(\" \"),(_vm.showResetButton)?_c('gl-button',{staticClass:\"gl-focus-inset-border-2-blue-400! gl-flex-shrink-0 gl-font-sm! gl-px-2! gl-py-2! gl-w-auto! gl-m-0! gl-max-w-50p gl-text-overflow-ellipsis\",attrs:{\"category\":\"tertiary\",\"data-testid\":\"listbox-reset-button\"},on:{\"click\":_vm.onResetButtonClicked}},[_vm._v(\"\\n \"+_vm._s(_vm.resetButtonLabel)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showSelectAllButton)?_c('gl-button',{staticClass:\"gl-focus-inset-border-2-blue-400! gl-flex-shrink-0 gl-font-sm! gl-px-2! gl-py-2! gl-w-auto! gl-m-0! gl-max-w-50p gl-text-overflow-ellipsis\",attrs:{\"category\":\"tertiary\",\"data-testid\":\"listbox-select-all-button\"},on:{\"click\":_vm.onSelectAllButtonClicked}},[_vm._v(\"\\n \"+_vm._s(_vm.showSelectAllButtonLabel)+\"\\n \")]):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.searchable)?_c('div',{class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('gl-listbox-search-input',{ref:\"searchBox\",class:{ 'gl-listbox-topmost': !_vm.headerText },attrs:{\"data-testid\":\"listbox-search-input\",\"placeholder\":_vm.searchPlaceholder},on:{\"input\":_vm.search,\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();},_vm.onKeydown]},model:{value:(_vm.searchStr),callback:function ($$v) {_vm.searchStr=$$v;},expression:\"searchStr\"}}),_vm._v(\" \"),(_vm.searching)?_c('gl-loading-icon',{staticClass:\"gl-my-3\",attrs:{\"data-testid\":\"listbox-search-loader\",\"size\":\"md\"}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.showList)?_c(_vm.listboxTag,{ref:\"list\",tag:\"component\",staticClass:\"gl-new-dropdown-contents gl-new-dropdown-contents-with-scrim-overlay\",class:_vm.listboxClasses,attrs:{\"id\":_vm.listboxId,\"aria-labelledby\":_vm.listAriaLabelledBy || _vm.headerId || _vm.toggleId,\"role\":\"listbox\",\"tabindex\":\"0\"},on:{\"keydown\":_vm.onKeydown}},[_c(_vm.itemTag,{tag:\"component\",staticClass:\"top-scrim-wrapper\",attrs:{\"aria-hidden\":\"true\",\"data-testid\":\"top-scrim\"}},[_c('div',{staticClass:\"top-scrim\",class:{ 'top-scrim-light': !_vm.hasHeader, 'top-scrim-dark': _vm.hasHeader }})]),_vm._v(\" \"),_c(_vm.itemTag,{ref:\"top-boundary\",tag:\"component\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_vm._l((_vm.items),function(item,index){return [(_vm.isOption(item))?[_c('gl-listbox-item',_vm._b({key:item.value,attrs:{\"data-testid\":(\"listbox-item-\" + (item.value)),\"is-selected\":_vm.isSelected(item),\"is-focused\":_vm.isFocused(item),\"is-check-centered\":_vm.isCheckCentered},on:{\"select\":function($event){return _vm.onSelect(item, $event)}}},'gl-listbox-item',_vm.listboxItemMoreItemsAriaAttributes(index),false),[_vm._t(\"list-item\",function(){return [_vm._v(\"\\n \"+_vm._s(item.text)+\"\\n \")]},{\"item\":item})],2)]:[_c('gl-listbox-group',{key:item.text,class:_vm.groupClasses(index),attrs:{\"name\":item.text,\"text-sr-only\":item.textSrOnly},scopedSlots:_vm._u([(_vm.$scopedSlots['group-label'])?{key:\"group-label\",fn:function(){return [_vm._t(\"group-label\",null,{\"group\":item})]},proxy:true}:null],null,true)},[_vm._v(\" \"),_vm._l((item.options),function(option){return _c('gl-listbox-item',{key:option.value,attrs:{\"data-testid\":(\"listbox-item-\" + (option.value)),\"is-selected\":_vm.isSelected(option),\"is-focused\":_vm.isFocused(option),\"is-check-centered\":_vm.isCheckCentered},on:{\"select\":function($event){return _vm.onSelect(option, $event)}}},[_vm._t(\"list-item\",function(){return [_vm._v(\"\\n \"+_vm._s(option.text)+\"\\n \")]},{\"item\":option})],2)})],2)]]}),_vm._v(\" \"),(_vm.infiniteScrollLoading)?_c(_vm.itemTag,{tag:\"component\"},[_c('gl-loading-icon',{staticClass:\"gl-my-3\",attrs:{\"data-testid\":\"listbox-infinite-scroll-loader\",\"size\":\"md\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.showIntersectionObserver)?_c('gl-intersection-observer',{on:{\"appear\":_vm.onIntersectionObserverAppear}}):_vm._e(),_vm._v(\" \"),_c(_vm.itemTag,{ref:\"bottom-boundary\",tag:\"component\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c(_vm.itemTag,{tag:\"component\",staticClass:\"bottom-scrim-wrapper\",attrs:{\"aria-hidden\":\"true\",\"data-testid\":\"bottom-scrim\"}},[_c('div',{staticClass:\"bottom-scrim\",class:{ 'gl-rounded-0!': _vm.hasFooter }})])],2):_vm._e(),_vm._v(\" \"),(_vm.announceSRSearchResults)?_c('span',{staticClass:\"gl-sr-only\",attrs:{\"data-testid\":\"listbox-number-of-results\",\"aria-live\":\"assertive\"}},[_vm._t(\"search-summary-sr-only\",function(){return [_vm._v(\"\\n \"+_vm._s(_vm.srOnlyResultsLabel(_vm.flattenedOptions.length))+\"\\n \")]})],2):(_vm.showNoResultsText)?_c('div',{staticClass:\"gl-pl-7 gl-pr-5 gl-py-3 gl-font-base gl-text-gray-600\",attrs:{\"aria-live\":\"assertive\",\"data-testid\":\"listbox-no-results-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.noResultsText)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_vm._t(\"footer\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\nexport { ITEM_SELECTOR, SEARCH_INPUT_SELECTOR };\n","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\"}}),_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"],"sourceRoot":""}