{"version":3,"sources":["webpack:///./vue_shared/components/page_heading.vue","webpack:///./vue_shared/components/page_heading.vue?c7cd","webpack:///vue_shared/components/page_heading.vue","webpack:///./vue_shared/components/page_heading.vue?a70f","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/@gitlab/ui/dist/components/base/new_dropdowns/listbox/utils.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/form-radio/form-radio-group.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/form/form_radio_group/form_radio_group.js","webpack:////build/source/node_modules/lodash/isNil.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/form/form_radio/form_radio.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/constants.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/dropdown/dropdown_section_header.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_search_input.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_group.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/utilities/intersection_observer/intersection_observer.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","webpack:///./projects/compare/constants.js","webpack:///./projects/compare/components/revision_card.vue","webpack:///./projects/compare/components/repo_dropdown.vue?5834","webpack:///projects/compare/components/repo_dropdown.vue","webpack:///./projects/compare/components/repo_dropdown.vue?60c2","webpack:///./projects/compare/components/repo_dropdown.vue","webpack:///projects/compare/components/revision_dropdown.vue","webpack:///./projects/compare/components/revision_dropdown.vue?30f4","webpack:///./projects/compare/components/revision_card.vue?f3ae","webpack:///projects/compare/components/revision_card.vue","webpack:///./projects/compare/components/revision_dropdown.vue?45ea","webpack:///./projects/compare/components/revision_dropdown.vue","webpack:///./projects/compare/components/revision_card.vue?5b37","webpack:///./projects/compare/components/app.vue?7ac5","webpack:///projects/compare/components/app.vue","webpack:///./projects/compare/components/app.vue?9d5a","webpack:///./projects/compare/components/app.vue","webpack:///./projects/compare/index.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_item.js"],"names":["props","heading","type","String","required","default","inlineActions","Boolean","component","_vm","this","_c","_self","staticClass","attrs","_t","_v","$scopedSlots","_e","_s","actions","class","description","__vue_script__","name","components","GlButton","directives","GlTooltip","title","tooltipContainer","validator","value","HTMLElement","__vue_component__","render","_h","$createElement","_g","rawName","container","expression","modifiers","$listeners","staticRenderFns","undefined","baseClamp","toNumber","module","exports","number","lower","upper","isOption","item","isGroup","options","arguments","length","Array","isArray","every","hasNoDuplicates","array","Set","size","flattenedOptions","items","flatMap","itemsValidator","isAllOptionsOrAllGroups","map","_ref","hasUniqueValues","filter","_ref2","text","hasUniqueGroups","BFormRadioGroup","mixins","getBvRadioGroup","computed","isRadioGroup","model","GlFormRadio","SafeHtml","inheritAttrs","methods","e","$emit","_b","on","onInput","onChange","$attrs","_l","option","idx","key","disabled","callbacks","Map","activeEventTypes","lastMousedown","globalListener","event","forEach","element","callback","eventTypes","originalEvent","contains","target","includes","onMousedown","OutsideDirective","bind","el","bindings","_ref3","arg","modifiersList","Object","keys","parseBinding","has","set","eventType","document","addEventListener","capture","add","startListening","unbind","entry","get","eventTypesToUnbind","delete","values","removeEventListener","BFormRadio","prop","checked","Number","$event","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","id","tag","variant","BDropdownHeader","functional","h","data","children","role","ref","GlClearIconButton","GlIcon","placeholder","input","focusInput","$refs","focus","domProps","inputListeners","stopPropagation","clearInput","apply","textSrOnly","nameId","GROUP_TOP_BORDER_CLASSES","HEADER_ITEMS_BORDER_CLASSES","events","GlBaseDropdown","GlListboxItem","GlListboxGroup","GlSearchBoxByType","GlListboxSearchInput","GlLoadingIcon","GlIntersectionObserver","selected","multiple","toggleText","headerText","category","primary","icon","loading","toggleClass","noCaret","placement","isCheckCentered","toggleAriaLabelledBy","listAriaLabelledBy","searchable","searching","infiniteScroll","totalItems","infiniteScrollLoading","noResultsText","searchPlaceholder","resetButtonLabel","showSelectAllButtonLabel","block","dropdownOffset","fluidWidth","positioningStrategy","strategy","startOpened","srOnlyResultsLabel","Function","selectedValues","toggleId","listboxId","nextFocusedItemIndex","searchStr","topBoundaryVisible","bottomBoundaryVisible","hasItems","listboxTag","_this$flattenedOption","find","findIndex","sort","showNoResultsText","showSelectAllButton","toggle","toggleClasses","hasSelection","push","footer","watch","immediate","newSelected","$nextTick","observeScroll","searchHasOptions","open","_this$scrollObserver","scrollObserver","disconnect","baseDropdown","close","groupClasses","index","_this$selectedIndices","focusSearchInput","focusItem","selectedIndices","getFocusableListItemElements","code","elements","stop","isSearchInput","matches","indexOf","focusNextItem","onSelect","_this$$refs$list","list","querySelectorAll","from","offset","currentIndex","nextIndex","_elements$index","searchBox","isSelected","onMultiSelect","onSingleSelect","some","closeAndFocus","selectedValue","searchTerm","_this$scrollObserver2","rootMargin","root","threshold","observer","IntersectionObserver","entries","_entry$target","$__visibilityProp","isIntersecting","topBoundary","bottomBoundary","observe","listboxToggleText","toggleButtonClasses","_d","$options","onShow","onHide","scopedSlots","_u","fn","proxy","headerId","onResetButtonClicked","onSelectAllButtonClicked","search","_k","keyCode","preventDefault","onKeydown","$$v","listboxClasses","itemTag","hasHeader","isHighlighted","isFocused","listboxItemMoreItemsAriaAttributes","onIntersectionObserverAppear","hasFooter","getObserver","$_gl_intersectionHandler","$el","$_gl_intersectionObserver","unobserve","GlFormInput","borderless","clearButtonTitle","isLoading","attributes","focusin","onFocusin","focusout","onFocusout","hasValue","_this$$refs$input","_this$$refs$clearButt","clearButton","relatedTarget","isInputOrClearButton","inputAttributes","showClearButton","BASE_DROPDOWN_CLASS","Outside","ariaHaspopup","ariaLabelledby","mainAxis","openedYet","visible","baseDropdownId","_this$toggleText","hasNoVisibleToggleText","isIconOnly","toggleLabelledBy","isEllipsisButton","isCaretOnly","isDefaultToggle","is","buttonTextClasses","toggleButtonTextClasses","ariaAttributes","listeners","keydown","click","toggleOptions","_this$$refs$toggle","firstElementChild","isFixed","alignment","split","middleware","allowedPlacements","dropdownArrow","_this$nonScrollableCo","availableHeight","contentsEl","floating","querySelector","contentsAvailableHeight","nonScrollableContentHeight","assign","style","maxHeight","Math","max","deep","toggleElement","setAttribute","checkToggleFocusable","stopFloating","actualPlacement","offsetConfigs","top","staticSide","rotation","bottom","left","right","calculateNonScrollableAreaHeight","MutationObserver","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","call","prevented","startFloating","hadFocusWithin","activeElement","hasToggled","focusToggle","tagName","toggleOnEnter","toggleOnSpace","_this$$refs$content","scrollableArea","floatingElementBoundingBox","scrollableAreaBoundingBox","height","toggleComponent","toggleAttributes","toggleListeners","panelClasses","COMPARE_OPTIONS","s__","I18N","subtitle","source","__","swap","swapRevisions","compare","optionsLabel","viewMr","openMr","COMPARE_REVISIONS_DOCS_URL","DOCS_URL_IN_EE_DIR","GlCollapsibleListbox","paramsName","projects","selectedProject","selectedProjectId","disableRepoDropdown","filteredRepos","lowerCaseSearchTerm","toLowerCase","project","inputName","emitTargetProject","projectId","direction","onSearch","EMPTY_DROPDOWN_TEXT","GlDropdown","GlDropdownItem","GlDropdownSectionHeader","refsProjectPath","paramsBranch","branches","tags","selectedRevision","getDefaultBranch","hasBranches","_this$branches","hasTags","_this$tags","newRefsProjectPath","oldRefsProjectPath","fetchBranchesAndTags","_debounce","searchBranchesAndTags","newBranch","setSelectedRevision","mounted","_this","axios","params","then","Branches","Tags","catch","createAlert","message","reset","_this2","finally","onClick","revision","onSearchEnter","RepoDropdown","RevisionDropdown","trim","branch","revisionText","csrf","RevisionCard","GlFormRadioGroup","GlFormGroup","GlLink","GlSprintf","PageHeading","GlTooltipDirective","projectCompareIndexPath","sourceProjectRefsPath","targetProjectRefsPath","paramsFrom","paramsTo","projectMergeRequestPath","createMrPath","sourceProject","targetProject","straight","to","isStraight","onSubmit","form","submit","onSelectProject","refsPath","joinPaths","gon","relative_url_root","onSelectRevision","onSwapRevision","i18n","compareOptions","docsLink","token","init","getElementById","projectsFrom","dataset","Vue","CompareApp","createElement","parseBoolean","JSON","parse","toggleSelection","checkedClasses"],"mappings":"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","file":"commons-pages.projects.compare.index-pages.projects.compare.rapid_diffs-pages.projects.compare.show.e3920a5c.chunk.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"gl-my-5 gl-flex gl-flex-wrap gl-items-center gl-justify-between gl-gap-y-3\"},[_c('div',{staticClass:\"gl-flex gl-w-full gl-flex-wrap gl-justify-between gl-gap-x-5 gl-gap-y-3 md:gl-flex-nowrap\"},[_c('h1',{staticClass:\"gl-heading-1 !gl-m-0\",attrs:{\"data-testid\":\"page-heading\"}},[_vm._t(\"heading\"),_vm._v(\" \"),(!_vm.$scopedSlots.heading)?[_vm._v(_vm._s(_vm.heading))]:_vm._e()],2),_vm._v(\" \"),(_vm.$scopedSlots.actions)?_c('div',{staticClass:\"page-heading-actions gl-flex gl-shrink-0 gl-flex-wrap gl-items-center gl-gap-3 md:gl-mt-1 lg:gl-mt-2\",class:{ 'gl-w-full sm:gl-w-auto': !_vm.inlineActions, 'gl-w-auto': _vm.inlineActions },attrs:{\"data-testid\":\"page-heading-actions\"}},[_vm._t(\"actions\")],2):_vm._e()]),_vm._v(\" \"),(_vm.$scopedSlots.description)?_c('div',{staticClass:\"gl-w-full gl-text-subtle\",attrs:{\"data-testid\":\"page-heading-description\"}},[_vm._t(\"description\")],2):_vm._e()])])\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!./page_heading.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!./page_heading.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./page_heading.vue?vue&type=template&id=be825e8e\"\nimport script from \"./page_heading.vue?vue&type=script&lang=js\"\nexport * from \"./page_heading.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","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 { extend } from '../../vue';\nimport { NAME_FORM_RADIO_GROUP } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { props as props$1, formRadioCheckGroupMixin } from '../../mixins/form-radio-check-group';\n\n// --- Props ---\n\nconst props = makePropsConfigurable(props$1, NAME_FORM_RADIO_GROUP);\n\n// --- Main component ---\n\n// @vue/component\nconst BFormRadioGroup = /*#__PURE__*/extend({\n name: NAME_FORM_RADIO_GROUP,\n mixins: [formRadioCheckGroupMixin],\n provide() {\n return {\n getBvRadioGroup: () => this\n };\n },\n props,\n computed: {\n isRadioGroup() {\n return true;\n }\n }\n});\n\nexport { BFormRadioGroup, props };\n","import { formOptionsMixin } from '../../../../vendor/bootstrap-vue/src/mixins/form-options';\nimport { BFormRadioGroup } from '../../../../vendor/bootstrap-vue/src/components/form-radio/form-radio-group';\nimport { SafeHtmlDirective } from '../../../../directives/safe_html/safe_html';\nimport GlFormRadio from '../form_radio/form_radio';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst {\n model\n} = BFormRadioGroup.options;\nvar script = {\n name: 'GlFormRadioGroup',\n components: {\n BFormRadioGroup,\n GlFormRadio\n },\n directives: {\n SafeHtml: SafeHtmlDirective\n },\n mixins: [formOptionsMixin],\n inheritAttrs: false,\n model,\n methods: {\n onInput(e) {\n /**\n * Emitted when the selected value is changed.\n *\n * @event input\n */\n this.$emit('input', e);\n },\n onChange(e) {\n /**\n * Emitted when the selected value is changed.\n *\n * @event change\n */\n this.$emit('change', e);\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-radio-group',_vm._g(_vm._b({staticClass:\"gl-form-checkbox-group\",attrs:{\"stacked\":\"\"},on:{\"input\":_vm.onInput,\"change\":_vm.onChange}},'b-form-radio-group',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"first\"),_vm._v(\" \"),_vm._l((_vm.formOptions),function(option,idx){return _c('gl-form-radio',{key:idx,attrs:{\"value\":option.value,\"disabled\":option.disabled}},[(option.html)?_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(option.html),expression:\"option.html\"}]}):_c('span',[_vm._v(_vm._s(option.text))])])}),_vm._v(\" \"),_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","/**\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","import { BFormRadio } from '../../../../vendor/bootstrap-vue/src/components/form-radio/form-radio';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst {\n model\n} = BFormRadio.options;\nvar script = {\n name: 'GlFormRadio',\n components: {\n BFormRadio\n },\n inheritAttrs: false,\n model: {\n prop: model.prop,\n event: model.event\n },\n props: {\n /**\n * Whether the radio is checked\n */\n checked: {\n type: [String, Number, Boolean, Object],\n required: false,\n default: false\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-radio',_vm._b({staticClass:\"gl-form-radio\",attrs:{\"checked\":_vm.checked},on:{\"input\":function($event){return _vm.$emit('input', $event)},\"change\":function($event){return _vm.$emit('change', $event)}}},'b-form-radio',_vm.$attrs,false),[_vm._t(\"default\"),_vm._v(\" \"),(_vm.$scopedSlots.help)?_c('p',{staticClass:\"help-text\"},[_vm._t(\"help\")],2):_vm._e()],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","// 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 { extend, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_HEADER } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { isTag } from '../../utils/dom';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'header'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_HEADER);\n\n// --- Main component ---\n\n// @vue/component\nconst BDropdownHeader = /*#__PURE__*/extend({\n name: NAME_DROPDOWN_HEADER,\n functional: true,\n props,\n render(h, _ref) {\n let {\n props,\n data,\n children\n } = _ref;\n const {\n tag,\n variant\n } = props;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(tag, {\n staticClass: 'dropdown-header',\n class: {\n [`text-${variant}`]: variant\n },\n attrs: {\n ...(data.attrs || {}),\n id: props.id || null,\n role: isTag(tag, 'header') ? null : 'heading'\n },\n ref: 'header'\n }, children)]);\n }\n});\n\nexport { BDropdownHeader, props };\n","import { BDropdownHeader } from '../../../vendor/bootstrap-vue/src/components/dropdown/dropdown-header';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlDropdownHeader',\n components: {\n BDropdownHeader\n },\n inheritAttrs: false\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-dropdown-header',_vm._g(_vm._b({staticClass:\"gl-dropdown-section-header\"},'b-dropdown-header',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import GlClearIconButton from '../../../shared_components/clear_icon_button/clear_icon_button';\nimport GlIcon from '../../icon/icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlListboxSearchInput',\n components: {\n GlClearIconButton,\n GlIcon\n },\n model: {\n prop: 'value',\n event: 'input'\n },\n props: {\n /**\n * If provided, used as value of search input\n */\n value: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Search input placeholder text and aria-label\n */\n placeholder: {\n type: String,\n required: false,\n default: 'Search'\n }\n },\n computed: {\n hasValue() {\n return Boolean(this.value.length);\n },\n inputListeners() {\n return {\n ...this.$listeners,\n input: event => {\n this.$emit('input', event.target.value);\n }\n };\n }\n },\n methods: {\n clearInput() {\n this.$emit('input', '');\n this.focusInput();\n },\n focusInput() {\n this.$refs.input.focus();\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-listbox-search\"},[_c('gl-icon',{staticClass:\"gl-listbox-search-icon\",attrs:{\"name\":\"search-sm\",\"size\":12}}),_vm._v(\" \"),_c('input',_vm._g({ref:\"input\",staticClass:\"gl-listbox-search-input\",attrs:{\"type\":\"search\",\"aria-label\":_vm.placeholder,\"placeholder\":_vm.placeholder},domProps:{\"value\":_vm.value}},_vm.inputListeners)),_vm._v(\" \"),(_vm.hasValue)?_c('gl-clear-icon-button',{staticClass:\"gl-listbox-search-clear-button\",on:{\"click\":function($event){$event.stopPropagation();return _vm.clearInput.apply(null, arguments)}}}):_vm._e()],1)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import uniqueId from 'lodash/uniqueId';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlListboxGroup',\n props: {\n name: {\n type: String,\n required: true\n },\n textSrOnly: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n created() {\n this.nameId = uniqueId('gl-listbox-group-');\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"gl-mb-0 gl-pl-0\",attrs:{\"role\":\"group\",\"aria-labelledby\":_vm.nameId}},[_c('li',{staticClass:\"gl-pb-2 gl-pl-4 gl-pt-3 gl-text-sm gl-font-bold gl-text-strong\",class:{ 'gl-sr-only': _vm.textSrOnly },attrs:{\"id\":_vm.nameId,\"role\":\"presentation\"}},[_vm._t(\"group-label\",function(){return [_vm._v(_vm._s(_vm.name))]})],2),_vm._v(\" \"),_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import clamp from 'lodash/clamp';\nimport uniqueId from 'lodash/uniqueId';\nimport isNil from 'lodash/isNil';\nimport { stopEvent } from '../../../../utils/utils';\nimport { GL_DROPDOWN_SHOWN, GL_DROPDOWN_HIDDEN, POSITION_ABSOLUTE, POSITION_FIXED, GL_DROPDOWN_CONTENTS_CLASS, HOME, END, ARROW_UP, ARROW_DOWN, ENTER } from '../constants';\nimport { buttonCategoryOptions, dropdownVariantOptions, buttonSizeOptions, dropdownPlacements } from '../../../../utils/constants';\nimport GlButton from '../../button/button';\nimport GlLoadingIcon from '../../loading_icon/loading_icon';\nimport GlIntersectionObserver from '../../../utilities/intersection_observer/intersection_observer';\nimport GlSearchBoxByType from '../../search_box_by_type/search_box_by_type';\nimport GlBaseDropdown from '../base_dropdown/base_dropdown';\nimport { translatePlural } from '../../../../utils/i18n';\nimport GlListboxItem from './listbox_item';\nimport GlListboxSearchInput from './listbox_search_input';\nimport GlListboxGroup from './listbox_group';\nimport { itemsValidator, isOption, flattenedOptions } from './utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst ITEM_SELECTOR = '[role=\"option\"]';\nconst HEADER_ITEMS_BORDER_CLASSES = ['gl-border-b-1', 'gl-border-b-solid', 'gl-border-b-dropdown-divider'];\nconst GROUP_TOP_BORDER_CLASSES = ['gl-border-t-1', 'gl-border-t-solid', 'gl-border-t-dropdown-divider', 'gl-pt-1', 'gl-mt-2'];\nconst SEARCH_INPUT_SELECTOR = '.gl-listbox-search-input';\nvar script = {\n name: 'GlCollapsibleListbox',\n HEADER_ITEMS_BORDER_CLASSES,\n events: {\n GL_DROPDOWN_SHOWN,\n GL_DROPDOWN_HIDDEN\n },\n components: {\n GlBaseDropdown,\n GlListboxItem,\n GlListboxGroup,\n GlButton,\n GlSearchBoxByType,\n GlListboxSearchInput,\n GlLoadingIcon,\n GlIntersectionObserver\n },\n model: {\n prop: 'selected',\n event: 'select'\n },\n props: {\n /**\n * Items to display in the dropdown\n */\n items: {\n type: Array,\n required: false,\n default: () => [],\n validator: itemsValidator\n },\n /**\n * Array of selected items values for multi-select and selected item value for single-select\n */\n selected: {\n type: [Array, String, Number],\n required: false,\n default: () => []\n },\n /**\n * Allow multi-selection\n */\n multiple: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Toggle button text\n */\n toggleText: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Toggle text to be read by screen readers only\n */\n textSrOnly: {\n type: Boolean,\n required: false,\n default: false\n },\n /** The header text */\n headerText: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Styling option - dropdown's toggle category\n */\n category: {\n type: String,\n required: false,\n default: buttonCategoryOptions.primary,\n validator: value => value in buttonCategoryOptions\n },\n /**\n * Styling option - dropdown's toggle variant\n */\n variant: {\n type: String,\n required: false,\n default: dropdownVariantOptions.default,\n validator: value => value in dropdownVariantOptions\n },\n /**\n * The size of the dropdown toggle\n */\n size: {\n type: String,\n required: false,\n default: 'medium',\n validator: value => value in buttonSizeOptions\n },\n /**\n * Icon name that will be rendered in the toggle button\n */\n icon: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Set to \"true\" to disable the dropdown\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Set to \"true\" when dropdown content (items) is loading\n * It will render a small loader in the dropdown toggle and make it disabled\n */\n loading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Additional CSS classes to customize toggle appearance\n */\n toggleClass: {\n type: [String, Array, Object],\n required: false,\n default: null\n },\n /**\n * Set to \"true\" to hide the caret\n */\n noCaret: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Align listbox menu with respect to the toggle button\n */\n placement: {\n type: String,\n required: false,\n default: 'bottom-start',\n validator: value => Object.keys(dropdownPlacements).includes(value)\n },\n /**\n * Center selected item checkmark\n */\n isCheckCentered: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * The `aria-labelledby` attribute value for the toggle button\n * Provide the string of ids seperated by space\n */\n toggleAriaLabelledBy: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The `aria-labelledby` attribute value for the list of options\n * Provide the string of ids seperated by space\n */\n listAriaLabelledBy: {\n type: String,\n required: false,\n default: null\n },\n /**\n * Enable search\n */\n searchable: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Set to \"true\" when items search is in progress.\n * It will display loading icon below the search input\n */\n searching: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Enables infinite scroll.\n * When set to `true`, the `@bottom-reached` event will be fired when\n * the bottom of the listbox is scrolled to.\n * Does not support groups.\n */\n infiniteScroll: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * This prop is used for infinite scroll.\n * It represents the total number of items that exist,\n * even if they have not yet been loaded.\n * Do not set this prop if the total number of items is unknown.\n */\n totalItems: {\n type: Number,\n required: false,\n default: null\n },\n /**\n * This prop is used for infinite scroll.\n * Set to `true` when more items are being loaded.\n */\n infiniteScrollLoading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Message to be displayed when filtering produced no results\n */\n noResultsText: {\n type: String,\n required: false,\n default: 'No results found'\n },\n /**\n * Search input placeholder text and aria-label\n */\n searchPlaceholder: {\n type: String,\n required: false,\n default: 'Search'\n },\n /**\n * The reset button's label, to be rendered in the header. If this is omitted, the button is not\n * rendered.\n * The reset button requires a header to be set, so this prop should be used in conjunction with\n * headerText.\n */\n resetButtonLabel: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * The select all button's label, to be rendered in the header. If this is omitted, the button is not\n * rendered.\n * The select all button requires a header to be set, so this prop should be used in conjunction with\n * headerText.\n */\n showSelectAllButtonLabel: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Render the toggle button as a block element\n */\n block: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Custom offset to be applied to Floating UI's offset middleware.\n * https://floating-ui.com/docs/offset\n */\n dropdownOffset: {\n type: [Number, Object],\n required: false,\n default: undefined\n },\n /**\n * Lets the dropdown extend to match its content's width, up to a maximum width\n * defined by the `$gl-new-dropdown-max-width` variable.\n */\n fluidWidth: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Strategy to be applied by computePosition. If the dropdown's container is too short for it to\n * fit in, setting this to fixed will let it position itself above its container.\n * https://floating-ui.com/docs/computePosition#strategy\n */\n positioningStrategy: {\n type: String,\n required: false,\n default: POSITION_ABSOLUTE,\n validator: strategy => [POSITION_ABSOLUTE, POSITION_FIXED].includes(strategy)\n },\n /**\n * Opens dropdown on render\n */\n startOpened: {\n type: Boolean,\n required: false,\n default: false\n },\n srOnlyResultsLabel: {\n type: Function,\n required: false,\n default: translatePlural('GlCollapsibleListbox.srOnlyResultsLabel', '%d result', '%d results')\n }\n },\n data() {\n return {\n selectedValues: [],\n toggleId: uniqueId('dropdown-toggle-btn-'),\n listboxId: uniqueId('listbox-'),\n nextFocusedItemIndex: null,\n searchStr: '',\n topBoundaryVisible: true,\n bottomBoundaryVisible: true\n };\n },\n computed: {\n listboxTag() {\n if (!this.hasItems || isOption(this.items[0])) return 'ul';\n return 'div';\n },\n listboxClasses() {\n return {\n 'top-scrim-visible': !this.topBoundaryVisible,\n 'bottom-scrim-visible': !this.bottomBoundaryVisible,\n [GL_DROPDOWN_CONTENTS_CLASS]: true\n };\n },\n itemTag() {\n return this.listboxTag === 'ul' ? 'li' : 'div';\n },\n flattenedOptions() {\n return flattenedOptions(this.items);\n },\n searchHasOptions() {\n return this.flattenedOptions.length > 0 && this.searchStr;\n },\n hasItems() {\n return this.items.length > 0;\n },\n listboxToggleText() {\n if (!this.toggleText) {\n if (!this.multiple && this.selectedValues.length) {\n var _this$flattenedOption;\n return (_this$flattenedOption = this.flattenedOptions.find(_ref => {\n let {\n value\n } = _ref;\n return value === this.selectedValues[0];\n })) === null || _this$flattenedOption === void 0 ? void 0 : _this$flattenedOption.text;\n }\n return '';\n }\n return this.toggleText;\n },\n selectedIndices() {\n return this.selectedValues.map(selected => this.flattenedOptions.findIndex(_ref2 => {\n let {\n value\n } = _ref2;\n return value === selected;\n })).sort();\n },\n showList() {\n return this.flattenedOptions.length && !this.searching;\n },\n showNoResultsText() {\n return !this.flattenedOptions.length && !this.searching;\n },\n announceSRSearchResults() {\n return this.searchable && !this.showNoResultsText;\n },\n headerId() {\n return this.headerText && uniqueId('listbox-header-');\n },\n showResetButton() {\n if (!this.resetButtonLabel) {\n return false;\n }\n\n /**\n * if dropdown has no items\n * reset all should be hidden\n */\n if (!this.hasItems) {\n return false;\n }\n\n // hide if no selection\n if (!this.selected || this.selected.length === 0) {\n return false;\n }\n\n // only show reset button if show all button is not there\n return !this.showSelectAllButton;\n },\n showSelectAllButton() {\n if (!this.showSelectAllButtonLabel) {\n return false;\n }\n if (!this.multiple) {\n return false;\n }\n\n /**\n * if dropdown has no items\n * select all should be hidden\n */\n if (!this.hasItems) {\n return false;\n }\n return this.selected.length !== this.flattenedOptions.length;\n },\n showIntersectionObserver() {\n return this.infiniteScroll && !this.infiniteScrollLoading && !this.loading && !this.searching;\n },\n hasCustomToggle() {\n return Boolean(this.$scopedSlots.toggle);\n },\n hasSelection() {\n return Boolean(this.selectedValues.length);\n },\n toggleButtonClasses() {\n const toggleClasses = [this.toggleClass];\n if (!this.hasSelection) {\n toggleClasses.push('!gl-text-subtle');\n }\n return toggleClasses;\n },\n hasHeader() {\n return this.headerText || this.searchable;\n },\n hasFooter() {\n return Boolean(this.$scopedSlots.footer);\n }\n },\n watch: {\n selected: {\n immediate: true,\n handler(newSelected) {\n if (Array.isArray(newSelected)) {\n if (process.env.NODE_ENV !== 'production' && !this.multiple && newSelected.length) {\n throw new Error('To allow multi-selection, please, set \"multiple\" property to \"true\"');\n }\n this.selectedValues = [...newSelected];\n } else {\n this.selectedValues = isNil(newSelected) ? [] : [newSelected];\n }\n }\n },\n items: {\n handler() {\n this.$nextTick(() => {\n /* Every time the list of items changes (on search),\n * the observed elements are recreated, thus we need to start obesrving them again */\n this.observeScroll();\n\n /**\n * Every time the list of items changes, and there is a search string,\n * we want to visually highlight the first item\n */\n if (this.searchHasOptions) {\n this.nextFocusedItemIndex = 0;\n } else {\n this.nextFocusedItemIndex = null;\n }\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 // eslint-disable-next-line no-console\n console.warn('When using grouped options infinite scroll can only be used on the last group.');\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\n /**\n * If the search string is not empty, highlight the first item\n */\n if (this.searchHasOptions) {\n this.nextFocusedItemIndex = 0;\n }\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 if (!this.searchHasOptions) {\n this.nextFocusedItemIndex = null;\n }\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 if (code === ENTER && isSearchInput) {\n if (this.searchHasOptions && elements.length > 0) {\n this.onSelect(this.flattenedOptions[0], true);\n }\n stop = true;\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 isHighlighted(item) {\n return this.nextFocusedItemIndex === this.flattenedOptions.indexOf(item);\n },\n isSelected(item) {\n return this.selectedValues.some(value => value === item.value);\n },\n isFocused(item) {\n return this.nextFocusedItemIndex === this.flattenedOptions.indexOf(item);\n },\n onSingleSelect(value, isSelected) {\n if (isSelected) {\n /**\n * Emitted when selection is changed\n *\n * @event select\n */\n this.$emit('select', value);\n }\n this.closeAndFocus();\n },\n onMultiSelect(value, isSelected) {\n if (isSelected) {\n this.$emit('select', [...this.selectedValues, value]);\n } else {\n this.$emit('select', this.selectedValues.filter(selectedValue => selectedValue !== value));\n }\n },\n search(searchTerm) {\n /**\n * Emitted when the search query string is changed\n *\n * @event search\n * @type {string}\n */\n this.$emit('search', searchTerm);\n },\n onResetButtonClicked() {\n /**\n * Emitted when the reset button is clicked\n *\n * @event reset\n */\n this.$emit('reset');\n },\n onSelectAllButtonClicked() {\n /**\n * Emitted when the select all button is clicked\n *\n * @event select-all\n */\n this.$emit('select-all');\n },\n closeAndFocus() {\n this.$refs.baseDropdown.closeAndFocus();\n },\n onIntersectionObserverAppear() {\n /**\n * Emitted when bottom of listbox has been scrolled to.\n * Used for infinite scroll.\n *\n * @event bottom-reached\n */\n this.$emit('bottom-reached');\n },\n listboxItemMoreItemsAriaAttributes(index) {\n if (this.totalItems === null) {\n return {};\n }\n return {\n 'aria-setsize': this.totalItems,\n 'aria-posinset': index + 1\n };\n },\n observeScroll() {\n var _this$scrollObserver2;\n const root = this.$refs.list;\n const options = {\n rootMargin: '8px',\n root,\n threshold: 1.0\n };\n (_this$scrollObserver2 = this.scrollObserver) === null || _this$scrollObserver2 === void 0 ? void 0 : _this$scrollObserver2.disconnect();\n const observer = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n var _entry$target;\n this[(_entry$target = entry.target) === null || _entry$target === void 0 ? void 0 : _entry$target.$__visibilityProp] = entry.isIntersecting;\n });\n }, options);\n const topBoundary = this.$refs['top-boundary'];\n const bottomBoundary = this.$refs['bottom-boundary'];\n if (topBoundary) {\n topBoundary.$__visibilityProp = 'topBoundaryVisible';\n observer.observe(topBoundary);\n }\n if (bottomBoundary) {\n bottomBoundary.$__visibilityProp = 'bottomBoundaryVisible';\n observer.observe(bottomBoundary);\n }\n this.scrollObserver = observer;\n },\n isOption\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-base-dropdown',{ref:\"baseDropdown\",attrs:{\"aria-haspopup\":\"listbox\",\"aria-labelledby\":_vm.toggleAriaLabelledBy,\"block\":_vm.block,\"toggle-id\":_vm.toggleId,\"toggle-text\":_vm.listboxToggleText,\"toggle-class\":_vm.toggleButtonClasses,\"text-sr-only\":_vm.textSrOnly,\"category\":_vm.category,\"variant\":_vm.variant,\"size\":_vm.size,\"icon\":_vm.icon,\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"no-caret\":_vm.noCaret,\"placement\":_vm.placement,\"offset\":_vm.dropdownOffset,\"fluid-width\":_vm.fluidWidth,\"positioning-strategy\":_vm.positioningStrategy},on:_vm._d({},[_vm.$options.events.GL_DROPDOWN_SHOWN,_vm.onShow,_vm.$options.events.GL_DROPDOWN_HIDDEN,_vm.onHide]),scopedSlots:_vm._u([(_vm.hasCustomToggle)?{key:\"toggle\",fn:function(){return [_vm._t(\"toggle\")]},proxy:true}:null],null,true)},[_vm._v(\" \"),(_vm.headerText)?_c('div',{staticClass:\"gl-flex gl-min-h-8 gl-items-center !gl-p-4\",class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('div',{staticClass:\"gl-grow gl-pr-2 gl-text-sm gl-font-bold gl-text-strong\",attrs:{\"id\":_vm.headerId,\"data-testid\":\"listbox-header-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.headerText)+\"\\n \")]),_vm._v(\" \"),(_vm.showResetButton)?_c('gl-button',{staticClass:\"!gl-m-0 !gl-w-auto gl-max-w-1/2 gl-flex-shrink-0 gl-text-ellipsis !gl-px-2 !gl-text-sm focus:!gl-focus-inset\",attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"data-testid\":\"listbox-reset-button\"},on:{\"click\":_vm.onResetButtonClicked}},[_vm._v(\"\\n \"+_vm._s(_vm.resetButtonLabel)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showSelectAllButton)?_c('gl-button',{staticClass:\"!gl-m-0 !gl-w-auto gl-max-w-1/2 gl-flex-shrink-0 gl-text-ellipsis !gl-px-2 !gl-text-sm focus:!gl-focus-inset\",attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"data-testid\":\"listbox-select-all-button\"},on:{\"click\":_vm.onSelectAllButtonClicked}},[_vm._v(\"\\n \"+_vm._s(_vm.showSelectAllButtonLabel)+\"\\n \")]):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.searchable)?_c('div',{class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('gl-listbox-search-input',{ref:\"searchBox\",class:{ 'gl-listbox-topmost': !_vm.headerText },attrs:{\"data-testid\":\"listbox-search-input\",\"placeholder\":_vm.searchPlaceholder},on:{\"input\":_vm.search,\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();},_vm.onKeydown]},model:{value:(_vm.searchStr),callback:function ($$v) {_vm.searchStr=$$v;},expression:\"searchStr\"}}),_vm._v(\" \"),(_vm.searching)?_c('gl-loading-icon',{staticClass:\"gl-my-3\",attrs:{\"data-testid\":\"listbox-search-loader\",\"size\":\"md\"}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.showList)?_c(_vm.listboxTag,{ref:\"list\",tag:\"component\",staticClass:\"gl-new-dropdown-contents gl-new-dropdown-contents-with-scrim-overlay\",class:_vm.listboxClasses,attrs:{\"id\":_vm.listboxId,\"aria-labelledby\":_vm.listAriaLabelledBy || _vm.headerId || _vm.toggleId,\"role\":\"listbox\",\"tabindex\":\"0\"},on:{\"keydown\":_vm.onKeydown}},[_c(_vm.itemTag,{tag:\"component\",staticClass:\"top-scrim-wrapper\",attrs:{\"aria-hidden\":\"true\",\"data-testid\":\"top-scrim\"}},[_c('div',{staticClass:\"top-scrim\",class:{ 'top-scrim-light': !_vm.hasHeader, 'top-scrim-dark': _vm.hasHeader }})]),_vm._v(\" \"),_c(_vm.itemTag,{ref:\"top-boundary\",tag:\"component\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_vm._l((_vm.items),function(item,index){return [(_vm.isOption(item))?[_c('gl-listbox-item',_vm._b({key:item.value,attrs:{\"data-testid\":(\"listbox-item-\" + (item.value)),\"is-highlighted\":_vm.isHighlighted(item),\"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-highlighted\":_vm.isHighlighted(option),\"is-selected\":_vm.isSelected(option),\"is-focused\":_vm.isFocused(option),\"is-check-centered\":_vm.isCheckCentered},on:{\"select\":function($event){return _vm.onSelect(option, $event)}}},[_vm._t(\"list-item\",function(){return [_vm._v(\"\\n \"+_vm._s(option.text)+\"\\n \")]},{\"item\":option})],2)})],2)]]}),_vm._v(\" \"),(_vm.infiniteScrollLoading)?_c(_vm.itemTag,{tag:\"component\"},[_c('gl-loading-icon',{staticClass:\"gl-my-3\",attrs:{\"data-testid\":\"listbox-infinite-scroll-loader\",\"size\":\"md\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.showIntersectionObserver)?_c('gl-intersection-observer',{on:{\"appear\":_vm.onIntersectionObserverAppear}}):_vm._e(),_vm._v(\" \"),_c(_vm.itemTag,{ref:\"bottom-boundary\",tag:\"component\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c(_vm.itemTag,{tag:\"component\",staticClass:\"bottom-scrim-wrapper\",attrs:{\"aria-hidden\":\"true\",\"data-testid\":\"bottom-scrim\"}},[_c('div',{staticClass:\"bottom-scrim\",class:{ '!gl-rounded-none': _vm.hasFooter }})])],2):_vm._e(),_vm._v(\" \"),(_vm.announceSRSearchResults)?_c('span',{staticClass:\"gl-sr-only\",attrs:{\"data-testid\":\"listbox-number-of-results\",\"aria-live\":\"assertive\"}},[_vm._t(\"search-summary-sr-only\",function(){return [_vm._v(\"\\n \"+_vm._s(_vm.srOnlyResultsLabel(_vm.flattenedOptions.length))+\"\\n \")]})],2):(_vm.showNoResultsText)?_c('div',{staticClass:\"gl-py-3 gl-pl-7 gl-pr-5 gl-text-base gl-text-subtle\",attrs:{\"aria-live\":\"assertive\",\"data-testid\":\"listbox-no-results-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.noResultsText)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_vm._t(\"footer\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\nexport { ITEM_SELECTOR, SEARCH_INPUT_SELECTOR };\n","import memoize from 'lodash/memoize';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst getObserver = memoize(options => new IntersectionObserver(entries => {\n entries.forEach(entry => {\n entry.target.$_gl_intersectionHandler(entry);\n });\n}, options || {}));\nvar script = {\n name: 'GlIntersectionObserver',\n props: {\n /**\n * Extra options to pass directly to the intersection observer API.\n */\n options: {\n type: Object,\n required: false,\n default: null\n }\n },\n mounted() {\n const observer = getObserver(this.options);\n this.$el.$_gl_intersectionHandler = entry => {\n /**\n * Emitted when the element's visibility changes\n */\n this.$emit('update', entry);\n if (entry.isIntersecting) {\n /**\n * Emitted when the element appears on the page\n */\n this.$emit('appear');\n } else {\n /**\n * Emitted when the element disappears from the page\n */\n this.$emit('disappear');\n }\n };\n this.$el.$_gl_intersectionObserver = observer;\n observer.observe(this.$el);\n },\n destroyed() {\n this.$el.$_gl_intersectionObserver.unobserve(this.$el);\n delete this.$el.$_gl_intersectionHandler;\n delete this.$el.$_gl_intersectionObserver;\n },\n // Expose getObserver method for tests\n getObserver\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","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","import { __, s__ } from '~/locale';\nimport { DOCS_URL_IN_EE_DIR } from 'jh_else_ce/lib/utils/url_utility';\n\nexport const COMPARE_OPTIONS_INPUT_NAME = 'straight';\nexport const COMPARE_OPTIONS = [\n { value: false, text: s__('CompareRevisions|Only incoming changes from source') },\n { value: true, text: s__('CompareRevisions|Include changes to target since source was created') },\n];\n\nexport const I18N = {\n title: s__('CompareRevisions|Compare revisions'),\n subtitle: s__(\n 'CompareRevisions|Changes are shown as if the %{boldStart}source%{boldEnd} revision was being merged into the %{boldStart}target%{boldEnd} revision. %{linkStart}Learn more about comparing revisions.%{linkEnd}',\n ),\n source: __('Source'),\n swap: s__('CompareRevisions|Swap'),\n target: __('Target'),\n swapRevisions: s__('CompareRevisions|Swap revisions'),\n compare: s__('CompareRevisions|Compare'),\n optionsLabel: s__('CompareRevisions|Show changes'),\n viewMr: s__('CompareRevisions|View open merge request'),\n openMr: s__('CompareRevisions|Create merge request'),\n};\n\nexport const COMPARE_REVISIONS_DOCS_URL = `${DOCS_URL_IN_EE_DIR}/user/project/repository/branches/#compare-branches`;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"revision-card gl-min-w-0 gl-basis-1/2\"},[_c('h2',{staticClass:\"gl-mt-0 gl-text-base\"},[_vm._v(\"\\n \"+_vm._s(_vm.revisionText)+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-flex-col gl-gap-3 sm:gl-flex-row\"},[_c('repo-dropdown',_vm._g({staticClass:\"gl-min-w-0 gl-max-w-full gl-basis-1/2\",attrs:{\"params-name\":_vm.paramsName,\"projects\":_vm.projects,\"selected-project\":_vm.selectedProject}},_vm.$listeners)),_vm._v(\" \"),_c('revision-dropdown',_vm._g({staticClass:\"gl-min-w-0 gl-max-w-full gl-basis-1/2\",attrs:{\"refs-project-path\":_vm.refsProjectPath,\"params-name\":_vm.paramsName,\"params-branch\":_vm.paramsBranch}},_vm.$listeners))],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!./repo_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!./repo_dropdown.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./repo_dropdown.vue?vue&type=template&id=2e210f13\"\nimport script from \"./repo_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./repo_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('div',[_c('input',{attrs:{\"type\":\"hidden\",\"name\":_vm.inputName},domProps:{\"value\":_vm.selectedProjectId}}),_vm._v(\" \"),_c('gl-collapsible-listbox',{staticClass:\"gl-font-monospace\",attrs:{\"toggle-text\":_vm.selectedProject.name,\"header-text\":_vm.s__(`CompareRevisions|Select target project`),\"toggle-class\":\"gl-min-w-0\",\"disabled\":_vm.disableRepoDropdown,\"items\":_vm.filteredRepos,\"block\":\"\",\"searchable\":\"\"},on:{\"select\":_vm.emitTargetProject,\"search\":_vm.onSearch},model:{value:(_vm.selectedProjectId),callback:function ($$v) {_vm.selectedProjectId=$$v},expression:\"selectedProjectId\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./revision_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!./revision_dropdown.vue?vue&type=script&lang=js\"","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!./revision_card.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!./revision_card.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./revision_dropdown.vue?vue&type=template&id=6d6144c2\"\nimport script from \"./revision_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./revision_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('div',{class:`js-compare-${_vm.paramsName}-dropdown`},[_c('input',{attrs:{\"type\":\"hidden\",\"name\":_vm.paramsName},domProps:{\"value\":_vm.selectedRevision}}),_vm._v(\" \"),_c('gl-dropdown',{staticClass:\"gl-w-full gl-font-monospace\",attrs:{\"toggle-class\":\"form-control compare-dropdown-toggle gl-min-w-0\",\"text\":_vm.selectedRevision,\"header-text\":_vm.s__('CompareRevisions|Select Git revision'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('gl-search-box-by-type',{attrs:{\"placeholder\":_vm.s__('CompareRevisions|Filter by Git revision')},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.onSearchEnter.apply(null, arguments)}},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"searchTerm\"}})]},proxy:true}])},[_vm._v(\" \"),(_vm.hasBranches)?_c('gl-dropdown-section-header',[_vm._v(\"\\n \"+_vm._s(_vm.s__('CompareRevisions|Branches'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.branches),function(branch){return _c('gl-dropdown-item',{key:`branch-${branch}`,attrs:{\"is-check-item\":\"\",\"is-checked\":_vm.selectedRevision === branch,\"data-testid\":\"branches-dropdown-item\"},on:{\"click\":function($event){return _vm.onClick(branch)}}},[_vm._v(\"\\n \"+_vm._s(branch)+\"\\n \")])}),_vm._v(\" \"),(_vm.hasTags)?_c('gl-dropdown-section-header',[_vm._v(\"\\n \"+_vm._s(_vm.s__('CompareRevisions|Tags'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.tags),function(tag){return _c('gl-dropdown-item',{key:`tag-${tag}`,attrs:{\"is-check-item\":\"\",\"is-checked\":_vm.selectedRevision === tag,\"data-testid\":\"tags-dropdown-item\"},on:{\"click\":function($event){return _vm.onClick(tag)}}},[_vm._v(\"\\n \"+_vm._s(tag)+\"\\n \")])})],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./revision_card.vue?vue&type=template&id=ec1be9b6\"\nimport script from \"./revision_card.vue?vue&type=script&lang=js\"\nexport * from \"./revision_card.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--14-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app.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!./app.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./app.vue?vue&type=template&id=0fce191d\"\nimport script from \"./app.vue?vue&type=script&lang=js\"\nexport * from \"./app.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{ref:\"form\",staticClass:\"js-signature-container\",attrs:{\"method\":\"POST\",\"action\":_vm.projectCompareIndexPath}},[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"authenticity_token\"},domProps:{\"value\":_vm.$options.csrf.token}}),_vm._v(\" \"),_c('page-heading',{attrs:{\"heading\":_vm.$options.i18n.title},scopedSlots:_vm._u([{key:\"description\",fn:function(){return [_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.subtitle},scopedSlots:_vm._u([{key:\"bold\",fn:function({ content }){return [_c('strong',[_vm._v(_vm._s(content))])]}},{key:\"link\",fn:function({ content }){return [_c('gl-link',{attrs:{\"target\":\"_blank\",\"href\":_vm.$options.docsLink,\"data-testid\":\"help-link\"}},[_vm._v(_vm._s(content))])]}}])})]},proxy:true}])}),_vm._v(\" \"),_c('div',{staticClass:\"compare-revision-cards gl-items-center lg:gl-flex lg:gl-flex-row\"},[_c('revision-card',{attrs:{\"data-testid\":\"sourceRevisionCard\",\"refs-project-path\":_vm.to.refsProjectPath,\"revision-text\":_vm.$options.i18n.source,\"params-name\":\"to\",\"params-branch\":_vm.to.revision,\"projects\":_vm.to.projects,\"selected-project\":_vm.to.selectedProject},on:{\"selectProject\":_vm.onSelectProject,\"selectRevision\":_vm.onSelectRevision}}),_vm._v(\" \"),_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.$options.i18n.swapRevisions),expression:\"$options.i18n.swapRevisions\"}],staticClass:\"gl-mx-3 gl-hidden gl-self-end md:gl-flex\",attrs:{\"aria-label\":_vm.$options.i18n.swap,\"data-testid\":\"swapRevisionsButton\",\"category\":\"tertiary\"},on:{\"click\":_vm.onSwapRevision}},[_c('gl-icon',{attrs:{\"name\":\"substitute\"}})],1),_vm._v(\" \"),_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.$options.i18n.swapRevisions),expression:\"$options.i18n.swapRevisions\"}],staticClass:\"gl-my-5 gl-flex gl-self-end md:gl-hidden\",on:{\"click\":_vm.onSwapRevision}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.swap)+\"\\n \")]),_vm._v(\" \"),_c('revision-card',{attrs:{\"data-testid\":\"targetRevisionCard\",\"refs-project-path\":_vm.from.refsProjectPath,\"revision-text\":_vm.$options.i18n.target,\"params-name\":\"from\",\"params-branch\":_vm.from.revision,\"projects\":_vm.from.projects,\"selected-project\":_vm.from.selectedProject},on:{\"selectProject\":_vm.onSelectProject,\"selectRevision\":_vm.onSelectRevision}})],1),_vm._v(\" \"),_c('gl-form-group',{staticClass:\"gl-mt-4\",attrs:{\"label\":_vm.$options.i18n.optionsLabel}},[_c('gl-form-radio-group',{attrs:{\"options\":_vm.$options.compareOptions,\"name\":_vm.$options.inputName,\"required\":\"\"},model:{value:(_vm.isStraight),callback:function ($$v) {_vm.isStraight=$$v},expression:\"isStraight\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-gap-3 gl-pb-4\"},[_c('gl-button',{attrs:{\"category\":\"primary\",\"variant\":\"confirm\",\"data-testid\":\"compare-button\"},on:{\"click\":_vm.onSubmit}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.compare)+\"\\n \")]),_vm._v(\" \"),(_vm.projectMergeRequestPath)?_c('gl-button',{attrs:{\"href\":_vm.projectMergeRequestPath,\"data-testid\":\"projectMrButton\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.viewMr)+\"\\n \")]):(_vm.createMrPath)?_c('gl-button',{attrs:{\"href\":_vm.createMrPath,\"data-testid\":\"createMrButton\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.openMr)+\"\\n \")]):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport CompareApp from './components/app.vue';\n\nexport default function init() {\n const el = document.getElementById('js-compare-selector');\n\n const {\n sourceProjectRefsPath,\n targetProjectRefsPath,\n paramsFrom,\n paramsTo,\n straight,\n projectCompareIndexPath,\n projectMergeRequestPath,\n createMrPath,\n sourceProject,\n targetProject,\n projectsFrom,\n } = el.dataset;\n\n return new Vue({\n el,\n components: {\n CompareApp,\n },\n render(createElement) {\n return createElement(CompareApp, {\n props: {\n sourceProjectRefsPath,\n targetProjectRefsPath,\n paramsFrom,\n paramsTo,\n straight: parseBoolean(straight),\n projectCompareIndexPath,\n projectMergeRequestPath,\n createMrPath,\n sourceProject: JSON.parse(sourceProject),\n targetProject: JSON.parse(targetProject),\n projects: JSON.parse(projectsFrom),\n },\n });\n },\n });\n}\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 isHighlighted: {\n type: Boolean,\n default: false,\n required: false\n }\n },\n computed: {\n checkedClasses() {\n if (this.isCheckCentered) {\n return '';\n }\n return 'gl-mt-3 gl-self-start';\n }\n },\n methods: {\n toggleSelection() {\n this.$emit('select', !this.isSelected);\n },\n onKeydown(event) {\n const {\n code\n } = event;\n if (code === ENTER || code === SPACE) {\n stopEvent(event);\n this.toggleSelection();\n }\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{class:['gl-new-dropdown-item', { 'gl-new-dropdown-item-highlighted': _vm.isHighlighted }],attrs:{\"role\":\"option\",\"tabindex\":_vm.isFocused ? 0 : -1,\"aria-selected\":_vm.isSelected},on:{\"click\":_vm.toggleSelection,\"keydown\":_vm.onKeydown}},[_c('span',{staticClass:\"gl-new-dropdown-item-content\"},[_c('gl-icon',{class:[\n 'gl-new-dropdown-item-check-icon',\n { 'gl-invisible': !_vm.isSelected },\n _vm.checkedClasses ],attrs:{\"name\":\"mobile-issue-close\",\"data-testid\":\"dropdown-item-checkbox\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-new-dropdown-item-text-wrapper\"},[_vm._t(\"default\")],2)],1)])};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n"],"sourceRoot":""}