{"version":3,"sources":["webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/utils.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/isNil.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_compareMultiple.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_baseOrderBy.js","webpack:///./search/store/constants.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/fuzzaldrin-plus/lib/scorer.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_compareAscending.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_createCompounder.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/orderBy.js","webpack:///./lib/utils/highlight.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_deburrLetter.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/words.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_asciiWords.js","webpack:///./super_sidebar/components/nav_item.vue","webpack:///./super_sidebar/event_hub.js","webpack:///./super_sidebar/components/nav_item_link.vue?ce4d","webpack:///super_sidebar/components/nav_item_link.vue","webpack:///./super_sidebar/components/nav_item_link.vue?517e","webpack:///./super_sidebar/components/nav_item_link.vue","webpack:///./super_sidebar/components/nav_item_router_link.vue?a35d","webpack:///super_sidebar/components/nav_item_router_link.vue","webpack:///./super_sidebar/components/nav_item_router_link.vue?c4ec","webpack:///./super_sidebar/components/nav_item_router_link.vue","webpack:///./super_sidebar/components/nav_item.vue?5d1e","webpack:///super_sidebar/components/nav_item.vue","webpack:///./super_sidebar/components/nav_item.vue?15d7","webpack:////build/gitlab/src/gitlab-foss/node_modules/fuzzaldrin-plus/lib/fuzzaldrin.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_createSet.js","webpack:///./super_sidebar/utils.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_baseMap.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/components/base/collapse/collapse.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/components/base/animated_icon/animated_chevron_right_down_icon.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_item.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_search_input.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_group.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_baseUniq.js","webpack:///./search/store/utils.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/fuzzaldrin-plus/lib/query.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/components/utilities/intersection_observer/intersection_observer.js","webpack:///./vue_shared/global_search/constants.js","webpack:///./super_sidebar/components/menu_section.vue","webpack:///super_sidebar/components/flyout_menu.vue","webpack:///./super_sidebar/components/flyout_menu.vue?b788","webpack:///./super_sidebar/components/flyout_menu.vue?b430","webpack:///./super_sidebar/components/flyout_menu.vue?a21e","webpack:///./super_sidebar/components/flyout_menu.vue","webpack:///./super_sidebar/components/menu_section.vue?9dc0","webpack:///super_sidebar/components/menu_section.vue","webpack:///./super_sidebar/components/menu_section.vue?2c69","webpack:///./super_sidebar/components/flyout_menu.vue?3478","webpack:////build/gitlab/src/gitlab-foss/node_modules/fuzzaldrin-plus/lib/pathScorer.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_hasUnicodeWord.js","webpack:///./search/sidebar/constants/index.js","webpack:///./lib/utils/css_utils.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_unicodeWords.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/deburr.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/fuzzaldrin-plus/lib/matcher.js","webpack:///./vue_shared/mixins/gl_feature_flags_mixin.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_baseSortBy.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/kebabCase.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/fuzzaldrin-plus/lib/filter.js"],"names":["isOption","item","Boolean","value","isGroup","options","arguments","length","undefined","Array","isArray","every","hasNoDuplicates","array","Set","size","flattenedOptions","items","flatMap","itemsValidator","isAllOptionsOrAllGroups","map","_ref","hasUniqueValues","filter","_ref2","text","hasUniqueGroups","module","exports","compareAscending","object","other","orders","index","objCriteria","criteria","othCriteria","ordersLength","result","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","identity","collection","iteratees","iteratee","key","MAX_FREQUENT_ITEMS","MAX_FREQUENCY","GROUPS_LOCAL_STORAGE_KEY","PROJECTS_LOCAL_STORAGE_KEY","SIDEBAR_PARAMS","STATE_FILTER_PARAM","CONFIDENTAL_FILTER_PARAM","LANGUAGE_FILTER_PARAM","LABEL_FILTER_PARAM","INCLUDE_ARCHIVED_FILTER_PARAM","INCLUDE_FORKED_FILTER_PARAM","SOURCE_BRANCH_PARAM","NOT_SOURCE_BRANCH_PARAM","AUTHOR_PARAM","NOT_AUTHOR_PARAM","REGEX_PARAM","NUMBER_FORMATING_OPTIONS","notation","compactDisplay","ICON_MAP","blobs","issues","_window$gon","window","gon","features","workItemScopeFrontend","epics","merge_requests","commits","notes","milestones","users","projects","wiki_blobs","snippet_titles","SUBITEMS_FILTER","issue","order","icon","label","s__","epic","task","objective","key_result","SCOPE_NAVIGATION_MAP","_window$gon2","ZOEKT_SEARCH_TYPE","ADVANCED_SEARCH_TYPE","BASIC_SEARCH_TYPE","SEARCH_LEVEL_GLOBAL","SEARCH_LEVEL_PROJECT","SEARCH_LEVEL_GROUP","LS_REGEX_HANDLE","SEARCH_WINDOW_TITLE","AcronymResult","computeScore","emptyAcronymResult","isAcronymFullWord","isMatch","isSeparator","isWordEnd","isWordStart","scoreAcronyms","scoreCharacter","scoreConsecutives","scoreExact","scoreExactMatch","scorePattern","scorePosition","scoreSize","score","string","query","preparedQuery","string_lw","allowErrors","core_lw","core_up","toLowerCase","Math","ceil","subject","query_lw","query_up","i","j","m","n","qj_lw","qj_up","si","charCodeAt","subject_lw","acro","acro_score","align","csc_diag","csc_row","csc_score","csc_should_rebuild","miss_budget","miss_left","pos","record_miss","score_diag","score_row","score_up","si_lw","start","sz","count","indexOf","charCodes","max","curr_s","prev_s","len","next_s","c","sc","abs","quality","sameCase","end","bonus","posBonus","startOfWord","k","mi","nj","pos2","this","fullWord","sepCount","sumPos","nbAcronymInQuery","call","isSymbol","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","arrayReduce","deburr","words","reApos","RegExp","callback","replace","baseOrderBy","guard","highlight","match","matchPrefix","matchSuffix","sanitize","toString","ALLOWED_TAGS","sanitizedValue","occurrences","fuzzaldrinPlus","split","character","includes","join","deburrLetter","basePropertyOf","asciiWords","hasUnicodeWord","unicodeWords","pattern","reAsciiWord","createEventHub","props","type","Object","required","computed","isActive","is_active","linkProps","href","link","ariaCurrent","computedLinkClasses","NAV_ITEM_LINK_ACTIVE_CLASS","_vm","_c","_self","_b","class","on","$event","$emit","_t","to","methods","attrs","$options","scopedSlots","_u","fn","navigate","i18n","pin","pinItem","unpin","unpinItem","name","components","GlAvatar","GlButton","GlIcon","GlBadge","NavItemLink","NavItemRouterLink","directives","GlTooltip","GlTooltipDirective","inject","pinnedItemIds","default","ids","panelSupportsPins","panelType","isInPinnedSection","isStatic","linkClasses","isSubitem","isFlyout","asyncCount","data","isMouseIn","canClickPinButton","pillData","pill_count_field","formatAsyncCount","pill_count","hasPill","Number","isFinite","isPinnable","isPinned","id","trackingProps","_this$item$id","extraData","JSON","stringify","title","CLICK_PINNED_MENU_ITEM_ACTION","CLICK_MENU_ITEM_ACTION","TRACKING_UNKNOWN_ID","TRACKING_UNKNOWN_PANEL","qaSubMenuItem","_this$item$data_metho","$attrs","data_method","link_classes","navItemLinkComponent","hasAvatar","entity_id","hasEndSpace","avatarShape","avatar_shape","pinAriaLabel","sprintf","unpinAriaLabel","activeIndicatorStyle","style","width","borderRadius","marginRight","transform","mounted","$el","scrollIntoView","behavior","block","inline","eventHub","$on","updatePillValue","destroyed","$off","pinAdd","pinRemove","togglePointerEvents","itemId","staticClass","tag","_v","_e","avatar","_s","subtitle","rawName","expression","modifiers","Query","defaultPathSeparator","matcher","parseOptions","pathScorer","preparedQueryCache","scorer","process","platform","candidates","usePathScoring","_results","_i","push","apply","wrap","prepareQuery","useExtensionBonus","pathSeparator","optCharRegEx","noop","setToArray","createSet","values","sortItemsByFrequencyAndLastAccess","sort","itemA","itemB","frequency","lastAccessedOn","getTopFrequentItems","maxCount","frequentItems","FREQUENT_ITEMS","ELIGIBLE_FREQUENCY","slice","updateItemAccess","contextItem","namespace","trackVisitsPath","now","Date","shouldUpdate","FIFTEEN_MINUTES_IN_MS","axios","url","method","catch","e","Sentry","trackContextAccess","username","context","AccessorUtilities","canUseLocalStorage","storageKey","storedRawItems","localStorage","getItem","storedItems","parse","existingItemIndex","findIndex","cachedItem","newItem","MAX_COUNT","pop","setItem","isValidNumber","numberToMetricPrefix","baseEach","isArrayLike","__vue_script__","model","prop","event","visible","String","show","transitioning","collapse","close","css","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","watch","newValue","oldValue","emitState","$nextTick","reflow","el","nodeType","Node","ELEMENT_NODE","offsetHeight","height","requestAnimationFrame","scrollHeight","display","getBoundingClientRect","__vue_component__","render","_h","$createElement","_g","enter","afterEnter","leave","afterLeave","transitionProps","$listeners","classObject","slotScope","staticRenderFns","extends","iconStateClass","iconVariantClass","ariaLabel","isSelected","isFocused","isCheckCentered","isHighlighted","code","toggleSelection","onKeydown","checkedClasses","GlClearIconButton","placeholder","input","target","focusInput","$refs","focus","ref","domProps","inputListeners","stopPropagation","clearInput","textSrOnly","nameId","GROUP_TOP_BORDER_CLASSES","HEADER_ITEMS_BORDER_CLASSES","events","GL_DROPDOWN_SHOWN","GL_DROPDOWN_HIDDEN","GlBaseDropdown","GlListboxItem","GlListboxGroup","GlSearchBoxByType","GlListboxSearchInput","GlLoadingIcon","GlIntersectionObserver","validator","selected","multiple","toggleText","headerText","category","primary","variant","disabled","loading","toggleClass","noCaret","placement","keys","toggleAriaLabelledBy","listAriaLabelledBy","searchable","searching","infiniteScroll","totalItems","infiniteScrollLoading","noResultsText","searchPlaceholder","resetButtonLabel","showSelectAllButtonLabel","dropdownOffset","fluidWidth","positioningStrategy","strategy","startOpened","srOnlyResultsLabel","Function","selectedValues","toggleId","listboxId","nextFocusedItemIndex","searchStr","topBoundaryVisible","bottomBoundaryVisible","hasItems","listboxTag","_this$flattenedOption","find","showNoResultsText","showSelectAllButton","$scopedSlots","toggle","toggleClasses","hasSelection","footer","immediate","newSelected","observeScroll","searchHasOptions","open","_this$scrollObserver","scrollObserver","disconnect","baseDropdown","groupClasses","_this$selectedIndices","focusSearchInput","focusItem","selectedIndices","getFocusableListItemElements","elements","stop","isSearchInput","matches","focusNextItem","onSelect","_this$$refs$list","list","querySelectorAll","from","offset","currentIndex","nextIndex","_elements$index","searchBox","onMultiSelect","onSingleSelect","some","closeAndFocus","selectedValue","searchTerm","_this$scrollObserver2","rootMargin","root","threshold","observer","IntersectionObserver","entries","forEach","entry","_entry$target","$__visibilityProp","isIntersecting","topBoundary","bottomBoundary","observe","listboxToggleText","toggleButtonClasses","_d","onShow","onHide","proxy","headerId","onResetButtonClicked","onSelectAllButtonClicked","search","_k","keyCode","preventDefault","$$v","listboxClasses","itemTag","hasHeader","_l","listboxItemMoreItemsAriaAttributes","option","onIntersectionObserverAppear","hasFooter","SetCache","arrayIncludes","arrayIncludesWith","cacheHas","comparator","isCommon","seen","set","outer","seenIndex","extractKeys","keyList","fromEntries","loadDataFromLS","removeItem","setDataToLS","setFrequentItemToLS","itemData","obj","currentFrequency","min","lastUsed","getTime","a","b","mergeById","inflatedData","storedData","d","isSidebarDirty","currentQuery","urlQuery","param","userAddedParam","userChangedExistingParam","_isEqual","formatSearchResultCount","countNumber","parseInt","formatNumber","getAggregationsUrl","currentUrl","URL","location","pathname","joinPaths","sortLanguages","state","_state$query","queriedLanguages","queriedLanguagesSet","_orderBy","has","prepareSearchAggregations","aggregationData","buckets","LABEL_AGREGATION_NAME","addCountOverLimit","injectRegexSearch","urlObject","getBaseURL","queryObject","queryToObject","project_id","group_id","_isEmpty","objectToQuery","scopeCrawler","navigation","parentScope","active","scope","sub_items","subItemScope","skipBlobESCount","itemScope","_state$query2","_state$query3","_window$gon$features","zoektMultimatchFrontend","zoektAvailable","SCOPE_BLOB","buildDocumentTitle","prevTitle","document","startsWith","trim","coreChars","countDir","getCharCodes","getExtension","opt_char_re","truncatedUpperCase","_arg","_ref1","core","depth","ext","str","upper","_len","toUpperCase","getObserver","$_gl_intersectionHandler","$_gl_intersectionObserver","unobserve","AUTOCOMPLETE_ERROR_MESSAGE","NO_SEARCH_RESULTS","ALL_GITLAB","__","PLACES","COMMAND_PALETTE","DESCRIBE_LABEL_FILTER","DESCRIBE_LABEL_FILTER_INPUT","SEARCH_DESCRIBED_BY_DEFAULT","SEARCH_DESCRIBED_BY_WITH_RESULTS","SEARCH_DESCRIBED_BY_UPDATED","SEARCH_RESULTS_LOADING","MIN_SEARCH_TERM","MSG_ISSUES_ASSIGNED_TO_ME","MSG_ISSUES_IVE_CREATED","MSG_MR_ASSIGNED_TO_ME","MSG_MR_IM_REVIEWER","MSG_MR_IVE_CREATED","MSG_MR_IM_WORKING_ON","MSG_IN_ALL_GITLAB","GROUPS_CATEGORY","PROJECTS_CATEGORY","USERS_CATEGORY","ISSUES_CATEGORY","MERGE_REQUEST_CATEGORY","RECENT_EPICS_CATEGORY","IN_THIS_PROJECT_CATEGORY","SETTINGS_CATEGORY","HELP_CATEGORY","SEARCH_RESULTS_ORDER","SEARCH_LABELS","DROPDOWN_HEADER","AGGREGATIONS_ERROR_MESSAGE","NO_LABELS_FOUND","COMMAND_PALETTE_TIP","COMMAND_PALETTE_TYPE_PAGES","COMMAND_PALETTE_TYPE_FILES","COMMAND_PALETTE_SEARCH_SCOPE_HEADER","COMMAND_PALETTE_PAGES_SCOPE_HEADER","COMMAND_PALETTE_USERS_SCOPE_HEADER","COMMAND_PALETTE_PROJECTS_SCOPE_HEADER","COMMAND_PALETTE_FILES_SCOPE_HEADER","COMMAND_PALETTE_PAGES_CHAR","COMMAND_PALETTE_USERS_CHAR","COMMAND_PALETTE_PROJECTS_CHAR","COMMAND_PALETTE_FILES_CHAR","I18N","NavItem","targetId","currentMouseX","flyoutX","flyoutY","flyoutHeight","hoverTimeoutId","showSVG","targetRect","cleanupFunction","topSVGPoints","x","y","top","bottomSVGPoints","bottom","flyoutStyle","padding","created","querySelector","addEventListener","onMouseMove","_this","flyout","sidebar","autoUpdate","computePosition","middleware","mainAxis","alignmentAxis","flip","shift","then","assign","left","clientHeight","sidebarRect","beforeUnmount","_this$$options$cleanu","_this$$options","clearTimeout","beforeDestroy","removeEventListener","startHoverTimeout","_this2","setTimeout","stopHoverTimeout","clientX","locals","itemTitle","GlCollapse","GlAnimatedChevronRightDownIcon","FlyoutMenu","expanded","separated","hasFlyout","isExpanded","isMouseOverSection","isMouseOverFlyout","keepFlyoutClosed","navItems","buttonProps","_kebabCase","isMouseOver","newIsExpanded","handlePointerover","pointerType","handlePointerleave","staticStyle","subItem","getExtensionScore","scorePath","fullPathScore","alpha","basePathScore","basePos","extAdjust","fileLength","lastIndexOf","path","substr","candidate","startPos","endPos","maxDepth","matched","reHasUnicodeWord","test","SCOPE_ISSUES","SCOPE_MERGE_REQUESTS","SCOPE_PROJECTS","SCOPE_NOTES","SCOPE_COMMITS","SCOPE_MILESTONES","SCOPE_WIKI_BLOBS","LABEL_DEFAULT_CLASSES","NAV_LINK_DEFAULT_CLASSES","NAV_LINK_COUNT_DEFAULT_CLASSES","TRACKING_ACTION_CLICK","TRACKING_LABEL_APPLY","TRACKING_LABEL_RESET","ARCHIVED_TRACKING_NAMESPACE","ARCHIVED_TRACKING_LABEL_CHECKBOX","ARCHIVED_TRACKING_LABEL_CHECKBOX_LABEL","SEARCH_TYPE_ADVANCED","SEARCH_TYPE_ZOEKT","ANY_OPTION","name_with_namespace","GROUP_DATA","queryParam","fullName","PROJECT_DATA","EVENT_CLICK_ZOEKT_INCLUDE_FORKS_ON_SEARCH_RESULTS_PAGE","EVENT_SELECT_SOURCE_BRANCH_FILTER_ON_MERGE_REQUEST_PAGE","LANGUAGE_DEFAULT_ITEM_LENGTH","LANGUAGE_MAX_ITEM_LENGTH","FIRST_DROPDOWN_INDEX","SEARCH_BOX_INDEX","SEARCH_INPUT_DESCRIPTION","SEARCH_RESULTS_DESCRIPTION","LABEL_FILTER_HEADER","SOURCE_BRANCH_ENDPOINT_PATH","AUTHOR_ENDPOINT_PATH","CONFIDENTIAL_FILTERS","ANY","CONFIDENTIAL","NOT_CONFIDENTIAL","STATE_FILTERS","OPEN","CLOSED","MERGED","loadCSSFile","Promise","resolve","linkElement","createElement","rel","media","onload","head","appendChild","getCssVariable","variable","getComputedStyle","documentElement","getPropertyValue","getCssClassDimensions","className","body","remove","getSystemColorScheme","user_color_mode","GL_SYSTEM","matchMedia","PREFERS_DARK","GL_DARK","GL_LIGHT","handleColorSchemeChange","onEvent","listenSystemColorSchemeChange","removeListenerSystemColorSchemeChange","isNarrowScreenMediaQuery","computedStyles","largeBreakpointSize","isNarrowScreen","isNarrowScreenAddListener","handlerFn","isNarrowScreenRemoveListener","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","reOptMod","rsModifier","rsSeq","rsEmoji","reUnicodeWord","reLatin","reComboMark","basenameMatch","computeMatch","mergeMatches","baseMatches","matchIndex","matchPos","matchPositions","output","strPos","tagClass","tagClose","tagOpen","substring","ai","bj","out","backtrack","move","trace","reverse","glFeatures","comparer","kebabCase","createCompounder","word","pluckCandidates","sortCandidates","bKey","maxInners","maxResults","scoreProvider","scoredCandidates","spotLeft"],"mappings":"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","file":"commons-pages.search.show-super_sidebar.09c5c921.chunk.js","sourcesContent":["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","/**\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","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","import { s__ } from '~/locale';\nimport {\n CONFIDENTAL_FILTER_PARAM,\n INCLUDE_ARCHIVED_FILTER_PARAM,\n LABEL_FILTER_PARAM,\n INCLUDE_FORKED_FILTER_PARAM,\n LANGUAGE_FILTER_PARAM,\n SOURCE_BRANCH_PARAM,\n NOT_SOURCE_BRANCH_PARAM,\n STATE_FILTER_PARAM,\n AUTHOR_PARAM,\n NOT_AUTHOR_PARAM,\n} from '~/search/sidebar/constants';\n\nexport const MAX_FREQUENT_ITEMS = 5;\n\nexport const MAX_FREQUENCY = 5;\n\nexport const GROUPS_LOCAL_STORAGE_KEY = 'global-search-frequent-groups';\n\nexport const PROJECTS_LOCAL_STORAGE_KEY = 'global-search-frequent-projects';\n\nexport const SIDEBAR_PARAMS = [\n STATE_FILTER_PARAM,\n CONFIDENTAL_FILTER_PARAM,\n LANGUAGE_FILTER_PARAM,\n LABEL_FILTER_PARAM,\n INCLUDE_ARCHIVED_FILTER_PARAM,\n INCLUDE_FORKED_FILTER_PARAM,\n SOURCE_BRANCH_PARAM,\n NOT_SOURCE_BRANCH_PARAM,\n AUTHOR_PARAM,\n NOT_AUTHOR_PARAM,\n];\n\nexport const REGEX_PARAM = 'regex';\n\nexport const NUMBER_FORMATING_OPTIONS = { notation: 'compact', compactDisplay: 'short' };\n\nexport const ICON_MAP = {\n blobs: 'code',\n issues: window.gon?.features?.workItemScopeFrontend ? 'work' : 'issues',\n epics: 'epic',\n merge_requests: 'merge-request',\n commits: 'commit',\n notes: 'comments',\n milestones: 'milestone',\n users: 'users',\n projects: 'project',\n wiki_blobs: 'book',\n snippet_titles: 'snippet',\n};\n\nexport const SUBITEMS_FILTER = {\n issue: { order: 1, icon: 'issue-type-issue', label: s__('GlobalSearch|Issues') },\n epic: { order: 2, icon: 'issue-type-epic', label: s__('GlobalSearch|Epics') },\n task: { order: 3, icon: 'issue-type-task', label: s__('GlobalSearch|Tasks') },\n objective: { order: 4, icon: 'issue-type-objective', label: s__('GlobalSearch|Objectives') },\n key_result: { order: 5, icon: 'issue-type-keyresult', label: s__('GlobalSearch|Key results') },\n};\n\nexport const SCOPE_NAVIGATION_MAP = {\n blobs: s__('GlobalSearch|Code'),\n issues: window.gon?.features?.workItemScopeFrontend\n ? s__('GlobalSearch|Work items')\n : s__('GlobalSearch|Issues'),\n epics: s__('GlobalSearch|Epics'),\n merge_requests: s__('GlobalSearch|Merge request'),\n commits: s__('GlobalSearch|Commits'),\n notes: s__('GlobalSearch|Comments'),\n milestones: s__('GlobalSearch|Milestones'),\n users: s__('GlobalSearch|Users'),\n projects: s__('GlobalSearch|Projects'),\n wiki_blobs: s__('GlobalSearch|Wiki'),\n snippet_titles: s__('GlobalSearch|Snippets'),\n};\n\nexport const ZOEKT_SEARCH_TYPE = 'zoekt';\nexport const ADVANCED_SEARCH_TYPE = 'advanced';\nexport const BASIC_SEARCH_TYPE = 'basic';\n\nexport const SEARCH_LEVEL_GLOBAL = 'global';\nexport const SEARCH_LEVEL_PROJECT = 'project';\nexport const SEARCH_LEVEL_GROUP = 'group';\n\nexport const LS_REGEX_HANDLE = `${REGEX_PARAM}_advanced_search`;\nexport const SEARCH_WINDOW_TITLE = `${s__('GlobalSearch|Search')} · GitLab`;\n","(function() {\n var AcronymResult, computeScore, emptyAcronymResult, isAcronymFullWord, isMatch, isSeparator, isWordEnd, isWordStart, miss_coeff, pos_bonus, scoreAcronyms, scoreCharacter, scoreConsecutives, scoreExact, scoreExactMatch, scorePattern, scorePosition, scoreSize, tau_size, wm;\n\n wm = 150;\n\n pos_bonus = 20;\n\n tau_size = 150;\n\n miss_coeff = 0.75;\n\n exports.score = function(string, query, options) {\n var allowErrors, preparedQuery, score, string_lw;\n preparedQuery = options.preparedQuery, allowErrors = options.allowErrors;\n if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n return 0;\n }\n string_lw = string.toLowerCase();\n score = computeScore(string, string_lw, preparedQuery);\n return Math.ceil(score);\n };\n\n exports.isMatch = isMatch = function(subject, query_lw, query_up) {\n var i, j, m, n, qj_lw, qj_up, si;\n m = subject.length;\n n = query_lw.length;\n if (!m || n > m) {\n return false;\n }\n i = -1;\n j = -1;\n while (++j < n) {\n qj_lw = query_lw.charCodeAt(j);\n qj_up = query_up.charCodeAt(j);\n while (++i < m) {\n si = subject.charCodeAt(i);\n if (si === qj_lw || si === qj_up) {\n break;\n }\n }\n if (i === m) {\n return false;\n }\n }\n return true;\n };\n\n exports.computeScore = computeScore = function(subject, subject_lw, preparedQuery) {\n var acro, acro_score, align, csc_diag, csc_row, csc_score, csc_should_rebuild, i, j, m, miss_budget, miss_left, n, pos, query, query_lw, record_miss, score, score_diag, score_row, score_up, si_lw, start, sz;\n query = preparedQuery.query;\n query_lw = preparedQuery.query_lw;\n m = subject.length;\n n = query.length;\n acro = scoreAcronyms(subject, subject_lw, query, query_lw);\n acro_score = acro.score;\n if (acro.count === n) {\n return scoreExact(n, m, acro_score, acro.pos);\n }\n pos = subject_lw.indexOf(query_lw);\n if (pos > -1) {\n return scoreExactMatch(subject, subject_lw, query, query_lw, pos, n, m);\n }\n score_row = new Array(n);\n csc_row = new Array(n);\n sz = scoreSize(n, m);\n miss_budget = Math.ceil(miss_coeff * n) + 5;\n miss_left = miss_budget;\n csc_should_rebuild = true;\n j = -1;\n while (++j < n) {\n score_row[j] = 0;\n csc_row[j] = 0;\n }\n i = -1;\n while (++i < m) {\n si_lw = subject_lw[i];\n if (!si_lw.charCodeAt(0) in preparedQuery.charCodes) {\n if (csc_should_rebuild) {\n j = -1;\n while (++j < n) {\n csc_row[j] = 0;\n }\n csc_should_rebuild = false;\n }\n continue;\n }\n score = 0;\n score_diag = 0;\n csc_diag = 0;\n record_miss = true;\n csc_should_rebuild = true;\n j = -1;\n while (++j < n) {\n score_up = score_row[j];\n if (score_up > score) {\n score = score_up;\n }\n csc_score = 0;\n if (query_lw[j] === si_lw) {\n start = isWordStart(i, subject, subject_lw);\n csc_score = csc_diag > 0 ? csc_diag : scoreConsecutives(subject, subject_lw, query, query_lw, i, j, start);\n align = score_diag + scoreCharacter(i, j, start, acro_score, csc_score);\n if (align > score) {\n score = align;\n miss_left = miss_budget;\n } else {\n if (record_miss && --miss_left <= 0) {\n return Math.max(score, score_row[n - 1]) * sz;\n }\n record_miss = false;\n }\n }\n score_diag = score_up;\n csc_diag = csc_row[j];\n csc_row[j] = csc_score;\n score_row[j] = score;\n }\n }\n score = score_row[n - 1];\n return score * sz;\n };\n\n exports.isWordStart = isWordStart = function(pos, subject, subject_lw) {\n var curr_s, prev_s;\n if (pos === 0) {\n return true;\n }\n curr_s = subject[pos];\n prev_s = subject[pos - 1];\n return isSeparator(prev_s) || (curr_s !== subject_lw[pos] && prev_s === subject_lw[pos - 1]);\n };\n\n exports.isWordEnd = isWordEnd = function(pos, subject, subject_lw, len) {\n var curr_s, next_s;\n if (pos === len - 1) {\n return true;\n }\n curr_s = subject[pos];\n next_s = subject[pos + 1];\n return isSeparator(next_s) || (curr_s === subject_lw[pos] && next_s !== subject_lw[pos + 1]);\n };\n\n isSeparator = function(c) {\n return c === ' ' || c === '.' || c === '-' || c === '_' || c === '/' || c === '\\\\';\n };\n\n scorePosition = function(pos) {\n var sc;\n if (pos < pos_bonus) {\n sc = pos_bonus - pos;\n return 100 + sc * sc;\n } else {\n return Math.max(100 + pos_bonus - pos, 0);\n }\n };\n\n exports.scoreSize = scoreSize = function(n, m) {\n return tau_size / (tau_size + Math.abs(m - n));\n };\n\n scoreExact = function(n, m, quality, pos) {\n return 2 * n * (wm * quality + scorePosition(pos)) * scoreSize(n, m);\n };\n\n exports.scorePattern = scorePattern = function(count, len, sameCase, start, end) {\n var bonus, sz;\n sz = count;\n bonus = 6;\n if (sameCase === count) {\n bonus += 2;\n }\n if (start) {\n bonus += 3;\n }\n if (end) {\n bonus += 1;\n }\n if (count === len) {\n if (start) {\n if (sameCase === len) {\n sz += 2;\n } else {\n sz += 1;\n }\n }\n if (end) {\n bonus += 1;\n }\n }\n return sameCase + sz * (sz + bonus);\n };\n\n exports.scoreCharacter = scoreCharacter = function(i, j, start, acro_score, csc_score) {\n var posBonus;\n posBonus = scorePosition(i);\n if (start) {\n return posBonus + wm * ((acro_score > csc_score ? acro_score : csc_score) + 10);\n }\n return posBonus + wm * csc_score;\n };\n\n exports.scoreConsecutives = scoreConsecutives = function(subject, subject_lw, query, query_lw, i, j, startOfWord) {\n var k, m, mi, n, nj, sameCase, sz;\n m = subject.length;\n n = query.length;\n mi = m - i;\n nj = n - j;\n k = mi < nj ? mi : nj;\n sameCase = 0;\n sz = 0;\n if (query[j] === subject[i]) {\n sameCase++;\n }\n while (++sz < k && query_lw[++j] === subject_lw[++i]) {\n if (query[j] === subject[i]) {\n sameCase++;\n }\n }\n if (sz < k) {\n i--;\n }\n if (sz === 1) {\n return 1 + 2 * sameCase;\n }\n return scorePattern(sz, n, sameCase, startOfWord, isWordEnd(i, subject, subject_lw, m));\n };\n\n exports.scoreExactMatch = scoreExactMatch = function(subject, subject_lw, query, query_lw, pos, n, m) {\n var end, i, pos2, sameCase, start;\n start = isWordStart(pos, subject, subject_lw);\n if (!start) {\n pos2 = subject_lw.indexOf(query_lw, pos + 1);\n if (pos2 > -1) {\n start = isWordStart(pos2, subject, subject_lw);\n if (start) {\n pos = pos2;\n }\n }\n }\n i = -1;\n sameCase = 0;\n while (++i < n) {\n if (query[pos + i] === subject[i]) {\n sameCase++;\n }\n }\n end = isWordEnd(pos + n - 1, subject, subject_lw, m);\n return scoreExact(n, m, scorePattern(n, n, sameCase, start, end), pos);\n };\n\n AcronymResult = (function() {\n function AcronymResult(score, pos, count) {\n this.score = score;\n this.pos = pos;\n this.count = count;\n }\n\n return AcronymResult;\n\n })();\n\n emptyAcronymResult = new AcronymResult(0, 0.1, 0);\n\n exports.scoreAcronyms = scoreAcronyms = function(subject, subject_lw, query, query_lw) {\n var count, fullWord, i, j, m, n, qj_lw, sameCase, score, sepCount, sumPos;\n m = subject.length;\n n = query.length;\n if (!(m > 1 && n > 1)) {\n return emptyAcronymResult;\n }\n count = 0;\n sepCount = 0;\n sumPos = 0;\n sameCase = 0;\n i = -1;\n j = -1;\n while (++j < n) {\n qj_lw = query_lw[j];\n if (isSeparator(qj_lw)) {\n i = subject_lw.indexOf(qj_lw, i + 1);\n if (i > -1) {\n sepCount++;\n continue;\n } else {\n break;\n }\n }\n while (++i < m) {\n if (qj_lw === subject_lw[i] && isWordStart(i, subject, subject_lw)) {\n if (query[j] === subject[i]) {\n sameCase++;\n }\n sumPos += i;\n count++;\n break;\n }\n }\n if (i === m) {\n break;\n }\n }\n if (count < 2) {\n return emptyAcronymResult;\n }\n fullWord = count === n ? isAcronymFullWord(subject, subject_lw, query, count) : false;\n score = scorePattern(count, n, sameCase, true, fullWord);\n return new AcronymResult(score, sumPos / count, count + sepCount);\n };\n\n isAcronymFullWord = function(subject, subject_lw, query, nbAcronymInQuery) {\n var count, i, m, n;\n m = subject.length;\n n = query.length;\n count = 0;\n if (m > 12 * n) {\n return false;\n }\n i = -1;\n while (++i < m) {\n if (isWordStart(i, subject, subject_lw) && ++count > nbAcronymInQuery) {\n return false;\n }\n }\n return true;\n };\n\n}).call(this);\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var baseOrderBy = require('./_baseOrderBy'),\n isArray = require('./isArray');\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nmodule.exports = orderBy;\n","import fuzzaldrinPlus from 'fuzzaldrin-plus';\nimport { sanitize } from '~/lib/dompurify';\n\n/**\n * Wraps substring matches with HTML `` elements.\n * Inputs are sanitized before highlighting, so this\n * filter is safe to use with `v-html` (as long as `matchPrefix`\n * and `matchSuffix` are not being dynamically generated).\n *\n * Note that this function can't be used inside `v-html` as a filter\n * (Vue filters cannot be used inside `v-html`).\n *\n * @param {String} string The string to highlight\n * @param {String} match The substring match to highlight in the string\n * @param {String} matchPrefix The string to insert at the beginning of a match\n * @param {String} matchSuffix The string to insert at the end of a match\n */\n// eslint-disable-next-line max-params\nexport default function highlight(string, match = '', matchPrefix = '', matchSuffix = '') {\n if (!string) {\n return '';\n }\n\n if (!match) {\n return sanitize(string.toString(), { ALLOWED_TAGS: [] });\n }\n\n const sanitizedValue = sanitize(string.toString(), { ALLOWED_TAGS: [] });\n\n // occurrences is an array of character indices that should be\n // highlighted in the original string, i.e. [3, 4, 5, 7]\n const occurrences = fuzzaldrinPlus.match(sanitizedValue, match.toString());\n\n return sanitizedValue\n .split('')\n .map((character, i) => {\n if (occurrences.includes(i)) {\n return `${matchPrefix}${character}${matchSuffix}`;\n }\n\n return character;\n })\n .join('');\n}\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"show-on-focus-or-hover--context hide-on-focus-or-hover--context transition-opacity-on-hover--context gl-relative\",attrs:{\"data-testid\":\"nav-item\"},on:{\"mouseenter\":function($event){_vm.isMouseIn = true},\"mouseleave\":function($event){_vm.isMouseIn = false}}},[_c(_vm.navItemLinkComponent,_vm._b({tag:\"component\",staticClass:\"super-sidebar-nav-item show-on-focus-or-hover--control hide-on-focus-or-hover--control gl-relative gl-mb-1 gl-flex gl-min-h-7 gl-items-center gl-gap-3 gl-py-2 !gl-text-default !gl-no-underline focus:gl-focus\",class:_vm.computedLinkClasses,attrs:{\"data-testid\":\"nav-item-link\",\"aria-label\":_vm.item.title},on:{\"nav-link-click\":function($event){return _vm.$emit('nav-link-click')}},scopedSlots:_vm._u([{key:\"default\",fn:function({ isActive }){return [_c('div',{staticClass:\"active-indicator gl-absolute gl-bottom-2 gl-left-2 gl-top-2 gl-transition-all gl-duration-slow\",class:[isActive ? 'gl-opacity-10' : 'gl-opacity-0'],style:(_vm.activeIndicatorStyle),attrs:{\"aria-hidden\":\"true\",\"data-testid\":\"active-indicator\"}}),_vm._v(\" \"),(!_vm.isFlyout)?_c('div',{staticClass:\"gl-flex gl-w-6 gl-shrink-0\",class:{ 'gl-self-start': _vm.hasAvatar }},[_vm._t(\"icon\",function(){return [(_vm.item.icon)?_c('gl-icon',{staticClass:\"super-sidebar-nav-item-icon gl-m-auto\",attrs:{\"name\":_vm.item.icon}}):(_vm.isInPinnedSection)?_c('gl-icon',{staticClass:\"js-draggable-icon show-on-focus-or-hover--target super-sidebar-mix-blend-mode gl-m-auto gl-cursor-grab\",attrs:{\"name\":\"grip\",\"variant\":\"subtle\"}}):(_vm.hasAvatar)?_c('gl-avatar',{attrs:{\"size\":24,\"shape\":_vm.avatarShape,\"entity-name\":_vm.item.title,\"entity-id\":_vm.item.entity_id,\"src\":_vm.item.avatar}}):_vm._e()]})],2):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-grow gl-text-default gl-break-anywhere\",class:{ 'gl-w-max': _vm.isFlyout },attrs:{\"data-testid\":\"nav-item-link-label\"}},[_vm._v(\"\\n \"+_vm._s(_vm.item.title)+\"\\n \"),(_vm.item.subtitle)?_c('div',{staticClass:\"gl-truncate-end gl-text-sm gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(_vm.item.subtitle)+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_vm._t(\"actions\"),_vm._v(\" \"),(_vm.hasEndSpace)?_c('span',{staticClass:\"gl-flex gl-min-w-6 gl-items-start gl-justify-end\"},[(_vm.hasPill)?_c('gl-badge',{class:{\n 'hide-on-focus-or-hover--target transition-opacity-on-hover--target': _vm.isPinnable,\n },attrs:{\"variant\":\"neutral\"}},[_vm._v(\"\\n \"+_vm._s(_vm.pillData)+\"\\n \")]):_vm._e()],1):_vm._e()]}}],null,true)},'component',_vm.linkProps,false)),_vm._v(\" \"),(_vm.isPinnable)?[(_vm.isPinned)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.noninteractive.right.viewport\",value:(_vm.$options.i18n.unpinItem),expression:\"$options.i18n.unpinItem\",modifiers:{\"noninteractive\":true,\"right\":true,\"viewport\":true}}],staticClass:\"show-on-focus-or-hover--target transition-opacity-on-hover--target always-animate gl-absolute gl-right-3 gl-top-1/2 -gl-translate-y-1/2\",class:{ 'gl-pointer-events-none': !_vm.canClickPinButton },attrs:{\"aria-label\":_vm.unpinAriaLabel,\"category\":\"tertiary\",\"data-testid\":\"nav-item-unpin\",\"icon\":\"thumbtack-solid\",\"size\":\"small\"},on:{\"click\":_vm.pinRemove,\"transitionend\":_vm.togglePointerEvents}}):_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.noninteractive.right.viewport\",value:(_vm.$options.i18n.pinItem),expression:\"$options.i18n.pinItem\",modifiers:{\"noninteractive\":true,\"right\":true,\"viewport\":true}}],staticClass:\"show-on-focus-or-hover--target transition-opacity-on-hover--target always-animate gl-absolute gl-right-3 gl-top-1/2 -gl-translate-y-1/2\",class:{ 'gl-pointer-events-none': !_vm.canClickPinButton },attrs:{\"aria-label\":_vm.pinAriaLabel,\"category\":\"tertiary\",\"data-testid\":\"nav-item-pin\",\"icon\":\"thumbtack\",\"size\":\"small\"},on:{\"click\":_vm.pinAdd,\"transitionend\":_vm.togglePointerEvents}})]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import createEventHub from '~/helpers/event_hub_factory';\n\nexport default createEventHub();\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/babel-loader/lib/index.js??ref--14-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./nav_item_link.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!./nav_item_link.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./nav_item_link.vue?vue&type=template&id=8a397898\"\nimport script from \"./nav_item_link.vue?vue&type=script&lang=js\"\nexport * from \"./nav_item_link.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('a',_vm._b({class:_vm.computedLinkClasses,on:{\"click\":function($event){return _vm.$emit('nav-link-click')}}},'a',_vm.linkProps,false),[_vm._t(\"default\",null,{\"isActive\":_vm.isActive})],2)\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!./nav_item_router_link.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!./nav_item_router_link.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./nav_item_router_link.vue?vue&type=template&id=0b7fb30e\"\nimport script from \"./nav_item_router_link.vue?vue&type=script&lang=js\"\nexport * from \"./nav_item_router_link.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('router-link',_vm._b({attrs:{\"active-class\":_vm.$options.NAV_ITEM_LINK_ACTIVE_CLASS,\"custom\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ href, navigate, isActive }){return [_c('a',{attrs:{\"href\":href,\"aria-current\":_vm.ariaCurrent(isActive)},on:{\"click\":navigate}},[_vm._t(\"default\",null,{\"isActive\":isActive})],2)]}}],null,true)},'router-link',_vm.linkProps,false))\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!./nav_item.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!./nav_item.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./nav_item.vue?vue&type=template&id=3ee67c54\"\nimport script from \"./nav_item.vue?vue&type=script&lang=js\"\nexport * from \"./nav_item.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","(function() {\n var Query, defaultPathSeparator, filter, matcher, parseOptions, pathScorer, preparedQueryCache, scorer;\n\n filter = require('./filter');\n\n matcher = require('./matcher');\n\n scorer = require('./scorer');\n\n pathScorer = require('./pathScorer');\n\n Query = require('./query');\n\n preparedQueryCache = null;\n\n defaultPathSeparator = (typeof process !== \"undefined\" && process !== null ? process.platform : void 0) === \"win32\" ? '\\\\' : '/';\n\n module.exports = {\n filter: function(candidates, query, options) {\n if (options == null) {\n options = {};\n }\n if (!((query != null ? query.length : void 0) && (candidates != null ? candidates.length : void 0))) {\n return [];\n }\n options = parseOptions(options, query);\n return filter(candidates, query, options);\n },\n score: function(string, query, options) {\n if (options == null) {\n options = {};\n }\n if (!((string != null ? string.length : void 0) && (query != null ? query.length : void 0))) {\n return 0;\n }\n options = parseOptions(options, query);\n if (options.usePathScoring) {\n return pathScorer.score(string, query, options);\n } else {\n return scorer.score(string, query, options);\n }\n },\n match: function(string, query, options) {\n var _i, _ref, _results;\n if (options == null) {\n options = {};\n }\n if (!string) {\n return [];\n }\n if (!query) {\n return [];\n }\n if (string === query) {\n return (function() {\n _results = [];\n for (var _i = 0, _ref = string.length; 0 <= _ref ? _i < _ref : _i > _ref; 0 <= _ref ? _i++ : _i--){ _results.push(_i); }\n return _results;\n }).apply(this);\n }\n options = parseOptions(options, query);\n return matcher.match(string, query, options);\n },\n wrap: function(string, query, options) {\n if (options == null) {\n options = {};\n }\n if (!string) {\n return [];\n }\n if (!query) {\n return [];\n }\n options = parseOptions(options, query);\n return matcher.wrap(string, query, options);\n },\n prepareQuery: function(query, options) {\n if (options == null) {\n options = {};\n }\n options = parseOptions(options, query);\n return options.preparedQuery;\n }\n };\n\n parseOptions = function(options, query) {\n if (options.allowErrors == null) {\n options.allowErrors = false;\n }\n if (options.usePathScoring == null) {\n options.usePathScoring = true;\n }\n if (options.useExtensionBonus == null) {\n options.useExtensionBonus = false;\n }\n if (options.pathSeparator == null) {\n options.pathSeparator = defaultPathSeparator;\n }\n if (options.optCharRegEx == null) {\n options.optCharRegEx = null;\n }\n if (options.wrap == null) {\n options.wrap = null;\n }\n if (options.preparedQuery == null) {\n options.preparedQuery = preparedQueryCache && preparedQueryCache.query === query ? preparedQueryCache : (preparedQueryCache = new Query(query, options));\n }\n return options;\n };\n\n}).call(this);\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","import * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport AccessorUtilities from '~/lib/utils/accessor';\nimport { FREQUENT_ITEMS, FIFTEEN_MINUTES_IN_MS } from '~/super_sidebar/constants';\nimport axios from '~/lib/utils/axios_utils';\nimport { numberToMetricPrefix } from '~/lib/utils/number_utils';\n\n/**\n * This takes an array of project or groups that were stored in the local storage, to be shown in\n * the context switcher, and sorts them by frequency and last access date.\n * In the resulting array, the most popular item (highest frequency and most recent access date) is\n * placed at the first index, while the least popular is at the last index.\n *\n * @param {Array} items The projects or groups stored in the local storage\n * @returns The items, sorted by frequency and last access date\n */\nconst sortItemsByFrequencyAndLastAccess = (items) =>\n items.sort((itemA, itemB) => {\n // Sort all frequent items in decending order of frequency\n // and then by lastAccessedOn with recent most first\n if (itemA.frequency !== itemB.frequency) {\n return itemB.frequency - itemA.frequency;\n }\n if (itemA.lastAccessedOn !== itemB.lastAccessedOn) {\n return itemB.lastAccessedOn - itemA.lastAccessedOn;\n }\n\n return 0;\n });\n\n/**\n * Returns the most frequently visited items.\n *\n * @param {Array} items - A list of items retrieved from the local storage\n * @param {Number} maxCount - The maximum number of items to be returned\n * @returns {Array}\n */\nexport const getTopFrequentItems = (items, maxCount) => {\n if (!Array.isArray(items)) return [];\n\n const frequentItems = items.filter((item) => item.frequency >= FREQUENT_ITEMS.ELIGIBLE_FREQUENCY);\n sortItemsByFrequencyAndLastAccess(frequentItems);\n\n return frequentItems.slice(0, maxCount);\n};\n\n/**\n * This tracks projects' and groups' visits in order to suggest a list of frequently visited\n * entities to the user. The suggestion logic is implemented server-side and computed items can be\n * retrieved through the GraphQL API.\n * To persist a visit in the DB, an AJAX request needs to be triggered by the client. To avoid making\n * the request on every visited page, we also keep track of the visits in the local storage so that\n * the request is only sent once every 15 minutes per namespace per user.\n *\n * @param {object} item The project/group item being tracked.\n * @param {string} namespace A string indicating whether the tracked entity is a project or a group.\n * @param {string} trackVisitsPath The API endpoint to track visits server-side.\n * @returns {void}\n */\nconst updateItemAccess = (\n contextItem,\n { lastAccessedOn, frequency = 0 } = {},\n namespace,\n trackVisitsPath,\n // eslint-disable-next-line max-params\n) => {\n const now = Date.now();\n const neverAccessed = !lastAccessedOn;\n const shouldUpdate = neverAccessed || Math.abs(now - lastAccessedOn) / FIFTEEN_MINUTES_IN_MS > 1;\n\n if (shouldUpdate) {\n axios({\n url: trackVisitsPath,\n method: 'POST',\n data: {\n type: namespace,\n id: contextItem.id,\n },\n }).catch((e) => {\n Sentry.captureException(e);\n });\n }\n\n return {\n ...contextItem,\n frequency: shouldUpdate ? frequency + 1 : frequency,\n lastAccessedOn: shouldUpdate ? now : lastAccessedOn,\n };\n};\n\nexport const trackContextAccess = (username, context, trackVisitsPath) => {\n if (!AccessorUtilities.canUseLocalStorage()) {\n return false;\n }\n\n const storageKey = `${username}/frequent-${context.namespace}`;\n const storedRawItems = localStorage.getItem(storageKey);\n const storedItems = storedRawItems ? JSON.parse(storedRawItems) : [];\n const existingItemIndex = storedItems.findIndex(\n (cachedItem) => cachedItem.id === context.item.id,\n );\n\n if (existingItemIndex > -1) {\n storedItems[existingItemIndex] = updateItemAccess(\n context.item,\n storedItems[existingItemIndex],\n context.namespace,\n trackVisitsPath,\n );\n } else {\n const newItem = updateItemAccess(\n context.item,\n storedItems[existingItemIndex],\n context.namespace,\n trackVisitsPath,\n );\n if (storedItems.length === FREQUENT_ITEMS.MAX_COUNT) {\n sortItemsByFrequencyAndLastAccess(storedItems);\n storedItems.pop();\n }\n storedItems.push(newItem);\n }\n\n return localStorage.setItem(storageKey, JSON.stringify(storedItems));\n};\n\nexport const ariaCurrent = (isActive) => (isActive ? 'page' : null);\n\nconst isValidNumber = (count) => {\n return typeof count === 'number';\n};\n\nexport const formatAsyncCount = (count) => {\n return isValidNumber(count) ? numberToMetricPrefix(count) : null;\n};\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\n\nvar script = {\n name: 'GlCollapse',\n model: {\n prop: 'visible',\n event: 'input'\n },\n props: {\n visible: {\n type: Boolean,\n default: false,\n required: false\n },\n tag: {\n type: String,\n required: false,\n default: 'div'\n }\n },\n data() {\n return {\n show: this.visible,\n transitioning: false\n };\n },\n computed: {\n classObject() {\n const {\n transitioning\n } = this;\n return {\n collapse: !transitioning,\n show: this.show && !transitioning\n };\n },\n slotScope() {\n return {\n visible: this.show,\n close: () => {\n this.show = false;\n }\n };\n },\n transitionProps() {\n return {\n ...this.$attrs,\n css: true,\n enterClass: '',\n enterActiveClass: 'collapsing',\n enterToClass: 'collapse show',\n leaveClass: 'collapse show',\n leaveActiveClass: 'collapsing',\n leaveToClass: 'collapse'\n };\n }\n },\n watch: {\n visible(newValue) {\n if (newValue !== this.show) {\n this.show = newValue;\n }\n },\n show(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.emitState();\n }\n }\n },\n mounted() {\n this.$nextTick(() => {\n this.emitState();\n });\n },\n beforeDestroy() {\n // Trigger state emit if needed\n this.show = false;\n },\n methods: {\n reflow(el) {\n // Requesting an elements offsetHeight will trigger a reflow of the element content\n // Without forcing a reflow, the browser optimize the operation and cause animation to fail\n return Boolean(el && el.nodeType === Node.ELEMENT_NODE) && el.offsetHeight;\n },\n emitState() {\n const {\n show\n } = this;\n this.$emit('input', show);\n },\n enter(el) {\n this.transitioning = true;\n el.style.height = 0;\n // In a `debounceByAnimationFrame()` for `appear` to work\n window.requestAnimationFrame(() => {\n this.reflow(el);\n el.style.height = `${el.scrollHeight}px`;\n });\n },\n afterEnter(el) {\n this.transitioning = false;\n this.$emit('shown');\n el.style.height = '';\n },\n leave(el) {\n this.transitioning = true;\n el.style.height = 'auto';\n el.style.display = 'block';\n el.style.height = `${el.getBoundingClientRect().height}px`;\n this.reflow(el);\n el.style.height = 0;\n },\n afterLeave(el) {\n this.transitioning = false;\n this.$emit('hidden');\n el.style.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('transition',_vm._g(_vm._b({attrs:{\"visible\":_vm.visible},on:{\"enter\":_vm.enter,\"after-enter\":_vm.afterEnter,\"leave\":_vm.leave,\"afterLeave\":_vm.afterLeave}},'transition',_vm.transitionProps,false),_vm.$listeners),[_c(_vm.tag,{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],tag:\"component\",class:_vm.classObject},[_vm._t(\"default\",null,null,_vm.slotScope)],2)],1)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import GlBaseAnimatedIcon from './base_animated_icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlAnimatedChevronRightDownIcon',\n extends: GlBaseAnimatedIcon\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('svg',{class:[_vm.iconStateClass, _vm.iconVariantClass],attrs:{\"aria-label\":_vm.ariaLabel,\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{staticClass:\"gl-animated-chevron-right-down-arrow\",attrs:{\"d\":\"M6.75 4.75L10 8L6.75 11.25\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})])};\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 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","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","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","import { isEqual, orderBy, isEmpty } from 'lodash';\nimport AccessorUtilities from '~/lib/utils/accessor';\nimport { formatNumber } from '~/locale';\nimport { joinPaths, queryToObject, objectToQuery, getBaseURL } from '~/lib/utils/url_utility';\nimport {\n LABEL_AGREGATION_NAME,\n LANGUAGE_FILTER_PARAM,\n SCOPE_BLOB,\n} from '~/search/sidebar/constants';\nimport {\n MAX_FREQUENT_ITEMS,\n MAX_FREQUENCY,\n SIDEBAR_PARAMS,\n NUMBER_FORMATING_OPTIONS,\n REGEX_PARAM,\n LS_REGEX_HANDLE,\n SEARCH_WINDOW_TITLE,\n} from './constants';\n\nfunction extractKeys(object, keyList) {\n return Object.fromEntries(keyList.map((key) => [key, object[key]]));\n}\n\nexport const loadDataFromLS = (key) => {\n if (!AccessorUtilities.canUseLocalStorage()) {\n return null;\n }\n\n try {\n return JSON.parse(localStorage.getItem(key)) || null;\n } catch {\n // The LS got in a bad state, let's wipe it\n localStorage.removeItem(key);\n return null;\n }\n};\n\nexport const setDataToLS = (key, value) => {\n if (!AccessorUtilities.canUseLocalStorage()) {\n return null;\n }\n\n try {\n localStorage.setItem(key, JSON.stringify(value));\n return value;\n } catch {\n // The LS got in a bad state, let's wipe it\n localStorage.removeItem(key);\n return null;\n }\n};\n\nexport const setFrequentItemToLS = (key, data, itemData) => {\n if (!AccessorUtilities.canUseLocalStorage()) {\n return [];\n }\n\n const keyList = [\n 'id',\n 'avatar_url',\n 'name',\n 'full_name',\n 'name_with_namespace',\n 'frequency',\n 'lastUsed',\n ];\n\n try {\n const frequentItems = data[key].map((obj) => extractKeys(obj, keyList));\n const item = extractKeys(itemData, keyList);\n const existingItemIndex = frequentItems.findIndex((i) => i.id === item.id);\n\n if (existingItemIndex >= 0) {\n // Up the frequency (Max 5)\n const currentFrequency = frequentItems[existingItemIndex].frequency;\n frequentItems[existingItemIndex].frequency = Math.min(currentFrequency + 1, MAX_FREQUENCY);\n frequentItems[existingItemIndex].lastUsed = new Date().getTime();\n } else {\n // Only store a max of 5 items\n if (frequentItems.length >= MAX_FREQUENT_ITEMS) {\n frequentItems.pop();\n }\n\n frequentItems.push({ ...item, frequency: 1, lastUsed: new Date().getTime() });\n }\n\n // Sort by frequency and lastUsed\n frequentItems.sort((a, b) => {\n if (a.frequency > b.frequency) {\n return -1;\n }\n if (a.frequency < b.frequency) {\n return 1;\n }\n return b.lastUsed - a.lastUsed;\n });\n\n // Note we do not need to commit a mutation here as immediately after this we refresh the page to\n // update the search results.\n localStorage.setItem(key, JSON.stringify(frequentItems));\n return frequentItems;\n } catch {\n // The LS got in a bad state, let's wipe it\n localStorage.removeItem(key);\n return [];\n }\n};\n\nexport const mergeById = (inflatedData, storedData) => {\n return inflatedData.map((data) => {\n const stored = storedData?.find((d) => d.id === data.id) || {};\n return { ...stored, ...data };\n });\n};\n\nexport const isSidebarDirty = (currentQuery, urlQuery) => {\n return SIDEBAR_PARAMS.some((param) => {\n const userAddedParam = !urlQuery[param] && currentQuery[param];\n const userChangedExistingParam = urlQuery[param] && urlQuery[param] !== currentQuery[param];\n\n if (Array.isArray(currentQuery[param]) || Array.isArray(urlQuery[param])) {\n return !isEqual(currentQuery[param], urlQuery[param]);\n }\n\n return userAddedParam || userChangedExistingParam;\n });\n};\n\nexport const formatSearchResultCount = (count) => {\n if (!count) {\n return '0';\n }\n\n const countNumber = typeof count === 'string' ? parseInt(count.replace(/,/g, ''), 10) : count;\n return formatNumber(countNumber, NUMBER_FORMATING_OPTIONS);\n};\n\nexport const getAggregationsUrl = () => {\n const currentUrl = new URL(window.location.href);\n currentUrl.pathname = joinPaths('/search', 'aggregations');\n return currentUrl.toString();\n};\n\nconst sortLanguages = (state, entries) => {\n const queriedLanguages = state.query?.[LANGUAGE_FILTER_PARAM] || [];\n\n if (!Array.isArray(queriedLanguages) || !queriedLanguages.length) {\n return entries;\n }\n\n const queriedLanguagesSet = new Set(queriedLanguages);\n\n return orderBy(entries, [({ key }) => queriedLanguagesSet.has(key), 'count'], ['desc', 'desc']);\n};\n\nconst getUniqueNamesOnly = (items) => {\n return items.filter(\n (item, index, array) => index === array.findIndex((obj) => obj.title === item.title),\n );\n};\n\nexport const prepareSearchAggregations = (state, aggregationData) =>\n aggregationData.map((item) => {\n if (item?.name === LANGUAGE_FILTER_PARAM) {\n return {\n ...item,\n buckets: sortLanguages(state, item.buckets),\n };\n }\n\n if (item?.name === LABEL_AGREGATION_NAME) {\n return {\n ...item,\n buckets: getUniqueNamesOnly(item.buckets),\n };\n }\n\n return item;\n });\n\nexport const addCountOverLimit = (count = '') => {\n return count.includes('+') ? '+' : '';\n};\n\n/** @param { string } link */\nexport const injectRegexSearch = (link) => {\n const urlObject = new URL(link, getBaseURL());\n const queryObject = queryToObject(urlObject.search);\n if (loadDataFromLS(LS_REGEX_HANDLE) && (queryObject.project_id || queryObject.group_id)) {\n queryObject[REGEX_PARAM] = true;\n }\n if (isEmpty(queryObject)) {\n return urlObject.pathname;\n }\n return `${urlObject.pathname}?${objectToQuery(queryObject)}`;\n};\n\nexport const scopeCrawler = (navigation, parentScope = null) => {\n for (const value of Object.values(navigation)) {\n if (value.active) {\n return parentScope || value.scope;\n }\n\n if (value.sub_items) {\n const subItemScope = scopeCrawler(value.sub_items, value.scope);\n if (subItemScope) {\n return subItemScope;\n }\n }\n }\n\n return null;\n};\n\nexport const skipBlobESCount = (state, itemScope) =>\n !(\n (state.query?.group_id || state.query?.project_id) &&\n window.gon.features?.zoektMultimatchFrontend &&\n state.zoektAvailable &&\n itemScope === SCOPE_BLOB\n );\n\nexport const buildDocumentTitle = (title) => {\n const prevTitle = document.title;\n\n if (prevTitle.includes(SEARCH_WINDOW_TITLE)) {\n if (prevTitle.startsWith(SEARCH_WINDOW_TITLE)) {\n return `${title} · ${SEARCH_WINDOW_TITLE}`;\n }\n\n if (prevTitle.trim().startsWith(` · ${SEARCH_WINDOW_TITLE}`.trim())) {\n return `${title} · ${SEARCH_WINDOW_TITLE}`;\n }\n\n const pattern = new RegExp(`^.*?(?= · ${SEARCH_WINDOW_TITLE})`);\n return prevTitle.replace(pattern, title);\n }\n // If pattern not found, return the original\n return title;\n};\n","(function() {\n var Query, coreChars, countDir, getCharCodes, getExtension, opt_char_re, truncatedUpperCase, _ref;\n\n _ref = require(\"./pathScorer\"), countDir = _ref.countDir, getExtension = _ref.getExtension;\n\n module.exports = Query = (function() {\n function Query(query, _arg) {\n var optCharRegEx, pathSeparator, _ref1;\n _ref1 = _arg != null ? _arg : {}, optCharRegEx = _ref1.optCharRegEx, pathSeparator = _ref1.pathSeparator;\n if (!(query && query.length)) {\n return null;\n }\n this.query = query;\n this.query_lw = query.toLowerCase();\n this.core = coreChars(query, optCharRegEx);\n this.core_lw = this.core.toLowerCase();\n this.core_up = truncatedUpperCase(this.core);\n this.depth = countDir(query, query.length, pathSeparator);\n this.ext = getExtension(this.query_lw);\n this.charCodes = getCharCodes(this.query_lw);\n }\n\n return Query;\n\n })();\n\n opt_char_re = /[ _\\-:\\/\\\\]/g;\n\n coreChars = function(query, optCharRegEx) {\n if (optCharRegEx == null) {\n optCharRegEx = opt_char_re;\n }\n return query.replace(optCharRegEx, '');\n };\n\n truncatedUpperCase = function(str) {\n var char, upper, _i, _len;\n upper = \"\";\n for (_i = 0, _len = str.length; _i < _len; _i++) {\n char = str[_i];\n upper += char.toUpperCase()[0];\n }\n return upper;\n };\n\n getCharCodes = function(str) {\n var charCodes, i, len;\n len = str.length;\n i = -1;\n charCodes = [];\n while (++i < len) {\n charCodes[str.charCodeAt(i)] = true;\n }\n return charCodes;\n };\n\n}).call(this);\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 { s__, __ } from '~/locale';\n\nexport const AUTOCOMPLETE_ERROR_MESSAGE = s__(\n 'GlobalSearch|There was an error fetching search autocomplete suggestions.',\n);\n\nexport const NO_SEARCH_RESULTS = s__(\n 'GlobalSearch|No results found. Edit your search and try again.',\n);\n\nexport const ALL_GITLAB = __('All GitLab');\nexport const PLACES = s__('GlobalSearch|Places');\n\nexport const COMMAND_PALETTE = s__('GlobalSearch|Command palette');\nexport const DESCRIBE_LABEL_FILTER = s__('GlobalSearch|List of filtered labels.');\nexport const DESCRIBE_LABEL_FILTER_INPUT = s__('GlobalSearch|Type to filter labels.');\nexport const SEARCH_DESCRIBED_BY_DEFAULT = s__(\n 'GlobalSearch|%{count} default results provided. Use the up and down arrow keys to navigate search results list.',\n);\nexport const SEARCH_DESCRIBED_BY_WITH_RESULTS = s__(\n 'GlobalSearch|Type for new suggestions to appear below.',\n);\nexport const SEARCH_DESCRIBED_BY_UPDATED = s__(\n 'GlobalSearch|Results updated. %{count} results available. Use the up and down arrow keys to navigate search results list, or ENTER to submit.',\n);\nexport const SEARCH_RESULTS_LOADING = s__('GlobalSearch|Search results are loading');\nexport const SEARCH_RESULTS_SCOPE = s__('GlobalSearch|in %{scope}');\nexport const MIN_SEARCH_TERM = s__(\n 'GlobalSearch|The search term must be at least 3 characters long.',\n);\nexport const MSG_ISSUES_ASSIGNED_TO_ME = s__('GlobalSearch|Issues assigned to me');\n\nexport const MSG_ISSUES_IVE_CREATED = s__(\"GlobalSearch|Issues I've created\");\n\nexport const MSG_MR_ASSIGNED_TO_ME = s__('GlobalSearch|Merge requests assigned to me');\n\nexport const MSG_MR_IM_REVIEWER = s__(\"GlobalSearch|Merge requests that I'm a reviewer\");\n\nexport const MSG_MR_IVE_CREATED = s__(\"GlobalSearch|Merge requests I've created\");\n\nexport const MSG_MR_IM_WORKING_ON = s__(\"GlobalSearch|Merge requests I'm working on\");\n\nexport const MSG_IN_ALL_GITLAB = s__('GlobalSearch|all GitLab');\n\nexport const GROUPS_CATEGORY = s__('GlobalSearch|Groups');\n\nexport const PROJECTS_CATEGORY = s__('GlobalSearch|Projects');\n\nexport const USERS_CATEGORY = s__('GlobalSearch|Users');\n\nexport const ISSUES_CATEGORY = s__('GlobalSearch|Recent issues');\n\nexport const MERGE_REQUEST_CATEGORY = s__('GlobalSearch|Recent merge requests');\n\nexport const RECENT_EPICS_CATEGORY = s__('GlobalSearch|Recent epics');\n\nexport const IN_THIS_PROJECT_CATEGORY = s__('GlobalSearch|In this project');\n\nexport const SETTINGS_CATEGORY = s__('GlobalSearch|Settings');\n\nexport const HELP_CATEGORY = s__('GlobalSearch|Help');\n\nexport const SEARCH_RESULTS_ORDER = [\n MERGE_REQUEST_CATEGORY,\n ISSUES_CATEGORY,\n RECENT_EPICS_CATEGORY,\n GROUPS_CATEGORY,\n PROJECTS_CATEGORY,\n USERS_CATEGORY,\n IN_THIS_PROJECT_CATEGORY,\n SETTINGS_CATEGORY,\n HELP_CATEGORY,\n];\nexport const SEARCH_LABELS = s__('GlobalSearch|Search labels');\n\nexport const DROPDOWN_HEADER = s__('GlobalSearch|Labels');\n\nexport const AGGREGATIONS_ERROR_MESSAGE = s__('GlobalSearch|Fetching aggregations error.');\n\nexport const NO_LABELS_FOUND = s__('GlobalSearch|No labels found');\n\nexport const COMMAND_PALETTE_TIP = s__('GlobalSearch|Tip:');\n\nexport const COMMAND_PALETTE_TYPE_PAGES = s__('GlobalSearch|Pages or actions');\n\nexport const COMMAND_PALETTE_TYPE_FILES = s__('GlobalSearch|Files');\n\nexport const COMMAND_PALETTE_SEARCH_SCOPE_HEADER = s__(\n 'GlobalSearch|Search for `%{searchTerm}` in...',\n);\n\nexport const COMMAND_PALETTE_PAGES_SCOPE_HEADER = s__(\n 'GlobalSearch|Search for `%{searchTerm}` pages in...',\n);\n\nexport const COMMAND_PALETTE_USERS_SCOPE_HEADER = s__(\n 'GlobalSearch|Search for `%{searchTerm}` users in...',\n);\n\nexport const COMMAND_PALETTE_PROJECTS_SCOPE_HEADER = s__(\n 'GlobalSearch|Search for `%{searchTerm}` projects in...',\n);\n\nexport const COMMAND_PALETTE_FILES_SCOPE_HEADER = s__(\n 'GlobalSearch|Search for `%{searchTerm}` files in...',\n);\n\nexport const COMMAND_PALETTE_PAGES_CHAR = '>';\nexport const COMMAND_PALETTE_USERS_CHAR = '@';\nexport const COMMAND_PALETTE_PROJECTS_CHAR = ':';\nexport const COMMAND_PALETTE_FILES_CHAR = '~';\n\nexport const I18N = {\n SEARCH_DESCRIBED_BY_DEFAULT,\n SEARCH_RESULTS_LOADING,\n SEARCH_DESCRIBED_BY_UPDATED,\n SEARCH_LABELS,\n DROPDOWN_HEADER,\n AGGREGATIONS_ERROR_MESSAGE,\n NO_LABELS_FOUND,\n DESCRIBE_LABEL_FILTER,\n DESCRIBE_LABEL_FILTER_INPUT,\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.tag,{tag:\"component\"},[(_vm.separated)?_c('hr',{staticClass:\"gl-mx-4 gl-my-2\",attrs:{\"aria-hidden\":\"true\"}}):_vm._e(),_vm._v(\" \"),_c('button',_vm._b({staticClass:\"super-sidebar-nav-item gl-relative gl-mb-2 gl-flex gl-min-h-7 gl-w-full gl-appearance-none gl-items-center gl-gap-3 gl-rounded-base gl-border-0 gl-bg-transparent gl-px-3 gl-py-2 gl-text-left !gl-text-default !gl-no-underline focus:gl-focus\",class:_vm.computedLinkClasses,attrs:{\"id\":`menu-section-button-${_vm.itemId}`,\"data-testid\":\"menu-section-button\",\"data-qa-section-name\":_vm.item.title},on:{\"click\":function($event){_vm.isExpanded = !_vm.isExpanded},\"pointerover\":_vm.handlePointerover,\"pointerleave\":_vm.handlePointerleave}},'button',_vm.buttonProps,false),[_c('span',{staticClass:\"gl-absolute gl-bottom-2 gl-left-2 gl-top-2 gl-transition-all gl-duration-slow\",class:[_vm.isActive ? 'active-indicator gl-bg-blue-500' : 'gl-bg-transparent'],staticStyle:{\"width\":\"3px\",\"border-radius\":\"3px\",\"margin-right\":\"1px\"},attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-flex gl-w-6 gl-shrink-0\"},[_vm._t(\"icon\",function(){return [(_vm.item.icon)?_c('gl-icon',{staticClass:\"super-sidebar-nav-item-icon gl-m-auto\",attrs:{\"name\":_vm.item.icon}}):_vm._e()]})],2),_vm._v(\" \"),_c('span',{staticClass:\"gl-truncate-end gl-grow gl-text-default\"},[_vm._v(\"\\n \"+_vm._s(_vm.item.title)+\"\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"gl-text-right gl-text-subtle\"},[_c('gl-animated-chevron-right-down-icon',{attrs:{\"is-on\":_vm.isExpanded}})],1)]),_vm._v(\" \"),(_vm.hasFlyout && _vm.isMouseOver && !_vm.isExpanded && !_vm.keepFlyoutClosed && _vm.navItems.length > 0)?_c('flyout-menu',{attrs:{\"target-id\":`menu-section-button-${_vm.itemId}`,\"items\":_vm.navItems,\"async-count\":_vm.asyncCount},on:{\"mouseover\":function($event){_vm.isMouseOverFlyout = true},\"mouseleave\":function($event){_vm.isMouseOverFlyout = false},\"pin-add\":(itemId, itemTitle) => _vm.$emit('pin-add', itemId, itemTitle),\"pin-remove\":(itemId, itemTitle) => _vm.$emit('pin-remove', itemId, itemTitle),\"nav-link-click\":function($event){return _vm.$emit('nav-link-click')}}}):_vm._e(),_vm._v(\" \"),_c('gl-collapse',{staticClass:\"gl-m-0 gl-list-none gl-p-0 gl-duration-medium gl-ease-ease\",attrs:{\"id\":_vm.itemId,\"data-testid\":\"menu-section\",\"data-qa-section-name\":_vm.item.title},model:{value:(_vm.isExpanded),callback:function ($$v) {_vm.isExpanded=$$v},expression:\"isExpanded\"}},[_vm._t(\"default\",function(){return [_c('ul',{staticClass:\"gl-m-0 gl-list-none gl-p-0\",attrs:{\"aria-label\":_vm.item.title}},_vm._l((_vm.navItems),function(subItem){return _c('nav-item',{key:`${_vm.item.title}-${subItem.title}`,attrs:{\"item\":subItem,\"async-count\":_vm.asyncCount},on:{\"pin-add\":(itemId, itemTitle) => _vm.$emit('pin-add', itemId, itemTitle),\"pin-remove\":(itemId, itemTitle) => _vm.$emit('pin-remove', itemId, itemTitle)}})}),1)]})],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./flyout_menu.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!./flyout_menu.vue?vue&type=script&lang=js\"","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--21-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./flyout_menu.vue?vue&type=style&index=0&id=9534917c&prod&scoped=true&lang=css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./flyout_menu.vue?vue&type=template&id=9534917c&scoped=true\"\nimport script from \"./flyout_menu.vue?vue&type=script&lang=js\"\nexport * from \"./flyout_menu.vue?vue&type=script&lang=js\"\nimport style0 from \"./flyout_menu.vue?vue&type=style&index=0&id=9534917c&prod&scoped=true&lang=css\"\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 \"9534917c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-fixed gl-z-9999 -gl-mx-1 gl-max-h-full gl-overflow-y-auto\",style:(_vm.flyoutStyle),attrs:{\"id\":`${_vm.targetId}-flyout`},on:{\"mouseover\":function($event){return _vm.$emit('mouseover')},\"mouseleave\":function($event){return _vm.$emit('mouseleave')}}},[_c('ul',{staticClass:\"gl-min-w-20 gl-max-w-34 gl-list-none gl-rounded-base gl-border-1 gl-border-solid gl-border-default gl-bg-overlap gl-p-2 gl-pb-1 gl-shadow-md\",on:{\"mouseenter\":function($event){_vm.showSVG = false}}},_vm._l((_vm.items),function(item){return _c('nav-item',{key:item.id,attrs:{\"item\":item,\"is-flyout\":true,\"async-count\":_vm.asyncCount},on:{\"pin-add\":(itemId, itemTitle) => _vm.$emit('pin-add', itemId, itemTitle),\"pin-remove\":(itemId, itemTitle) => _vm.$emit('pin-remove', itemId, itemTitle),\"nav-link-click\":function($event){return _vm.$emit('nav-link-click')}}})}),1),_vm._v(\" \"),(_vm.targetRect && _vm.showSVG)?_c('svg',{style:({\n top: _vm.flyoutY + 'px',\n }),attrs:{\"width\":_vm.flyoutX,\"height\":_vm.flyoutHeight,\"viewBox\":\"0 0 100 100\",\"preserveAspectRatio\":\"none\"}},[_c('polygon',{ref:\"topSVG\",attrs:{\"points\":_vm.topSVGPoints,\"fill\":\"transparent\"},on:{\"mouseenter\":_vm.startHoverTimeout,\"mouseleave\":_vm.stopHoverTimeout}}),_vm._v(\" \"),_c('polygon',{ref:\"bottomSVG\",attrs:{\"points\":_vm.bottomSVGPoints,\"fill\":\"transparent\"},on:{\"mouseenter\":_vm.startHoverTimeout,\"mouseleave\":_vm.stopHoverTimeout}})]):_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!./menu_section.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!./menu_section.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./menu_section.vue?vue&type=template&id=140e9cb0\"\nimport script from \"./menu_section.vue?vue&type=script&lang=js\"\nexport * from \"./menu_section.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","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\\nsvg[data-v-9534917c] {\\n pointer-events: none;\\n\\n position: fixed;\\n right: 0;\\n}\\nsvg polygon[data-v-9534917c],\\nsvg rect[data-v-9534917c] {\\n pointer-events: auto;\\n}\\n\", \"\"]);\n\n","(function() {\n var computeScore, countDir, file_coeff, getExtension, getExtensionScore, isMatch, scorePath, scoreSize, tau_depth, _ref;\n\n _ref = require('./scorer'), isMatch = _ref.isMatch, computeScore = _ref.computeScore, scoreSize = _ref.scoreSize;\n\n tau_depth = 20;\n\n file_coeff = 2.5;\n\n exports.score = function(string, query, options) {\n var allowErrors, preparedQuery, score, string_lw;\n preparedQuery = options.preparedQuery, allowErrors = options.allowErrors;\n if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n return 0;\n }\n string_lw = string.toLowerCase();\n score = computeScore(string, string_lw, preparedQuery);\n score = scorePath(string, string_lw, score, options);\n return Math.ceil(score);\n };\n\n scorePath = function(subject, subject_lw, fullPathScore, options) {\n var alpha, basePathScore, basePos, depth, end, extAdjust, fileLength, pathSeparator, preparedQuery, useExtensionBonus;\n if (fullPathScore === 0) {\n return 0;\n }\n preparedQuery = options.preparedQuery, useExtensionBonus = options.useExtensionBonus, pathSeparator = options.pathSeparator;\n end = subject.length - 1;\n while (subject[end] === pathSeparator) {\n end--;\n }\n basePos = subject.lastIndexOf(pathSeparator, end);\n fileLength = end - basePos;\n extAdjust = 1.0;\n if (useExtensionBonus) {\n extAdjust += getExtensionScore(subject_lw, preparedQuery.ext, basePos, end, 2);\n fullPathScore *= extAdjust;\n }\n if (basePos === -1) {\n return fullPathScore;\n }\n depth = preparedQuery.depth;\n while (basePos > -1 && depth-- > 0) {\n basePos = subject.lastIndexOf(pathSeparator, basePos - 1);\n }\n basePathScore = basePos === -1 ? fullPathScore : extAdjust * computeScore(subject.slice(basePos + 1, end + 1), subject_lw.slice(basePos + 1, end + 1), preparedQuery);\n alpha = 0.5 * tau_depth / (tau_depth + countDir(subject, end + 1, pathSeparator));\n return alpha * basePathScore + (1 - alpha) * fullPathScore * scoreSize(0, file_coeff * fileLength);\n };\n\n exports.countDir = countDir = function(path, end, pathSeparator) {\n var count, i;\n if (end < 1) {\n return 0;\n }\n count = 0;\n i = -1;\n while (++i < end && path[i] === pathSeparator) {\n continue;\n }\n while (++i < end) {\n if (path[i] === pathSeparator) {\n count++;\n while (++i < end && path[i] === pathSeparator) {\n continue;\n }\n }\n }\n return count;\n };\n\n exports.getExtension = getExtension = function(str) {\n var pos;\n pos = str.lastIndexOf(\".\");\n if (pos < 0) {\n return \"\";\n } else {\n return str.substr(pos + 1);\n }\n };\n\n getExtensionScore = function(candidate, ext, startPos, endPos, maxDepth) {\n var m, matched, n, pos;\n if (!ext.length) {\n return 0;\n }\n pos = candidate.lastIndexOf(\".\", endPos);\n if (!(pos > startPos)) {\n return 0;\n }\n n = ext.length;\n m = endPos - pos;\n if (m < n) {\n n = m;\n m = ext.length;\n }\n pos++;\n matched = -1;\n while (++matched < n) {\n if (candidate[pos + matched] !== ext[matched]) {\n break;\n }\n }\n if (matched === 0 && maxDepth > 0) {\n return 0.9 * getExtensionScore(candidate, ext, startPos, pos - 2, maxDepth - 1);\n }\n return matched / m;\n };\n\n}).call(this);\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","import { __ } from '~/locale';\n\nexport const SCOPE_ISSUES = 'issues';\nexport const SCOPE_MERGE_REQUESTS = 'merge_requests';\nexport const SCOPE_BLOB = 'blobs';\nexport const SCOPE_PROJECTS = 'projects';\nexport const SCOPE_NOTES = 'notes';\nexport const SCOPE_COMMITS = 'commits';\nexport const SCOPE_MILESTONES = 'milestones';\nexport const SCOPE_WIKI_BLOBS = 'wiki_blobs';\nexport const SCOPE_EPICS = 'epics';\nexport const SCOPE_USERS = 'users';\n\nexport const LABEL_DEFAULT_CLASSES = [\n 'gl-flex',\n 'gl-flex-row',\n 'gl-flex-nowrap',\n 'gl-text-default',\n];\nexport const NAV_LINK_DEFAULT_CLASSES = [...LABEL_DEFAULT_CLASSES, 'gl-justify-between'];\nexport const NAV_LINK_COUNT_DEFAULT_CLASSES = ['gl-text-sm', 'gl-font-normal'];\n\nexport const TRACKING_ACTION_CLICK = 'search:filters:click';\nexport const TRACKING_LABEL_APPLY = 'Apply Filters';\nexport const TRACKING_LABEL_RESET = 'Reset Filters';\n\nexport const ARCHIVED_TRACKING_NAMESPACE = 'search:archived:select';\nexport const ARCHIVED_TRACKING_LABEL_CHECKBOX = 'checkbox';\nexport const ARCHIVED_TRACKING_LABEL_CHECKBOX_LABEL = 'Include archived';\n\nexport const SEARCH_TYPE_BASIC = 'basic';\nexport const SEARCH_TYPE_ADVANCED = 'advanced';\nexport const SEARCH_TYPE_ZOEKT = 'zoekt';\n\nexport const SEARCH_ICON = 'search';\nexport const USER_ICON = 'user';\n\nexport const ANY_OPTION = {\n id: null,\n name: __('Any'),\n name_with_namespace: __('Any'),\n};\n\nexport const GROUP_DATA = {\n headerText: __('Filter results by group'),\n queryParam: 'group_id',\n name: 'name',\n fullName: 'full_name',\n};\n\nexport const PROJECT_DATA = {\n headerText: __('Filter results by project'),\n queryParam: 'project_id',\n name: 'name',\n fullName: 'name_with_namespace',\n};\n\nexport const EVENT_CLICK_ZOEKT_INCLUDE_FORKS_ON_SEARCH_RESULTS_PAGE =\n 'click_zoekt_include_forks_on_search_results_page';\n\nexport const EVENT_SELECT_SOURCE_BRANCH_FILTER_ON_MERGE_REQUEST_PAGE =\n 'select_source_branch_filter_on_merge_request_page';\n\nexport const EVENT_SELECT_AUTHOR_FILTER_ON_MERGE_REQUEST_PAGE =\n 'event_select_author_filter_on_merge_request_page';\n\nexport const LANGUAGE_DEFAULT_ITEM_LENGTH = 10;\nexport const LANGUAGE_MAX_ITEM_LENGTH = 100;\n\nexport const INCLUDE_ARCHIVED_FILTER_PARAM = 'include_archived';\nexport const CONFIDENTAL_FILTER_PARAM = 'confidential';\nexport const LABEL_FILTER_PARAM = 'label_name';\nexport const INCLUDE_FORKED_FILTER_PARAM = 'include_forked';\nexport const LANGUAGE_FILTER_PARAM = 'language';\nexport const SOURCE_BRANCH_PARAM = 'source_branch';\nexport const NOT_SOURCE_BRANCH_PARAM = 'not[source_branch]';\nexport const AUTHOR_PARAM = 'author_username';\nexport const NOT_AUTHOR_PARAM = 'not[author_username]';\n\nexport const FIRST_DROPDOWN_INDEX = 0;\nexport const SEARCH_BOX_INDEX = 0;\nexport const SEARCH_INPUT_DESCRIPTION = 'label-search-input-description';\nexport const SEARCH_RESULTS_DESCRIPTION = 'label-search-results-description';\nexport const LABEL_FILTER_HEADER = __('Labels');\nexport const LABEL_AGREGATION_NAME = 'labels';\n\nexport const SOURCE_BRANCH_ENDPOINT_PATH = '/-/autocomplete/merge_request_source_branches.json';\nexport const AUTHOR_ENDPOINT_PATH = '/-/autocomplete/users.json';\n\nexport const CONFIDENTIAL_FILTERS = {\n ANY: {\n label: __('Any'),\n value: null,\n },\n CONFIDENTIAL: {\n label: __('Confidential'),\n value: 'yes',\n },\n NOT_CONFIDENTIAL: {\n label: __('Not confidential'),\n value: 'no',\n },\n};\n\nexport const STATE_FILTER_PARAM = 'state';\nexport const STATE_FILTERS = {\n ANY: {\n label: __('Any'),\n value: null,\n },\n OPEN: {\n label: __('Open'),\n value: 'opened',\n },\n CLOSED: {\n label: __('Closed'),\n value: 'closed',\n },\n MERGED: {\n label: __('Merged'),\n value: 'merged',\n },\n};\n","import { GL_DARK, GL_LIGHT, GL_SYSTEM } from '~/constants';\nimport { PREFERS_DARK } from './constants';\n\nexport function loadCSSFile(path) {\n return new Promise((resolve) => {\n if (!path) resolve();\n\n if (document.querySelector(`link[href=\"${path}\"]`)) {\n resolve();\n } else {\n const linkElement = document.createElement('link');\n linkElement.type = 'text/css';\n linkElement.rel = 'stylesheet';\n // eslint-disable-next-line @gitlab/require-i18n-strings\n linkElement.media = 'screen,print';\n linkElement.onload = () => {\n resolve();\n };\n linkElement.href = path;\n\n document.head.appendChild(linkElement);\n }\n });\n}\n\nexport function getCssVariable(variable) {\n return getComputedStyle(document.documentElement).getPropertyValue(variable).trim();\n}\n\n/**\n * Return the measured width and height of a temporary element with the given\n * CSS classes.\n *\n * Multiple classes can be given by separating them with spaces.\n *\n * Since this forces a layout calculation, do not call this frequently or in\n * loops.\n *\n * Finally, this assumes the styles for the given classes are loaded.\n *\n * @param {string} className CSS class(es) to apply to a temporary element and\n * measure.\n * @returns {{ width: number, height: number }} Measured width and height in\n * CSS pixels.\n */\nexport function getCssClassDimensions(className) {\n const el = document.createElement('div');\n el.className = className;\n document.body.appendChild(el);\n const { width, height } = el.getBoundingClientRect();\n el.remove();\n return { width, height };\n}\n\n/**\n * Returns string name of current color scheme based on user preferences.\n * In the case user preference is automatic (gl-system), it will return scheme based on media query.\n *\n * @returns {string} current color scheme (gl-light, gl-dark)\n */\nexport function getSystemColorScheme() {\n if (gon.user_color_mode === GL_SYSTEM) {\n if (window.matchMedia && window.matchMedia(PREFERS_DARK).matches) {\n return GL_DARK;\n }\n return GL_LIGHT;\n }\n return gon.user_color_mode;\n}\n\n/**\n * Handles media query change event and triggers the provided callback.\n *\n * @param {function} onEvent function to be called on system color scheme change\n * @param {MediaQueryListEvent} event the event object from the media query change\n */\nfunction handleColorSchemeChange(onEvent, event) {\n onEvent(event.matches ? GL_DARK : GL_LIGHT);\n}\n\n/**\n * Subscribes for media query change of system color scheme.\n * On change triggers function passed in.\n *\n * @param {function} onEvent function to be called on system color scheme change\n * @returns {void}\n */\nexport function listenSystemColorSchemeChange(onEvent) {\n window\n .matchMedia(PREFERS_DARK)\n .addEventListener('change', (event) => handleColorSchemeChange(onEvent, event));\n}\n\n/**\n * Destroys event subscribtion for media query change of system color scheme.\n *\n * @param {function} onEvent function to be called on system color scheme change\n * @returns {void}\n */\nexport function removeListenerSystemColorSchemeChange(onEvent) {\n window\n .matchMedia(PREFERS_DARK)\n .removeEventListener('change', (event) => handleColorSchemeChange(onEvent, event));\n}\n\nfunction isNarrowScreenMediaQuery() {\n const computedStyles = getComputedStyle(document.body);\n const largeBreakpointSize = parseInt(computedStyles.getPropertyValue('--breakpoint-lg'), 10);\n return window.matchMedia(`(max-width: ${largeBreakpointSize - 1}px)`);\n}\n\nexport function isNarrowScreen() {\n return isNarrowScreenMediaQuery().matches;\n}\n\nexport function isNarrowScreenAddListener(handlerFn) {\n isNarrowScreenMediaQuery().addEventListener('change', handlerFn);\n}\n\nexport function isNarrowScreenRemoveListener(handlerFn) {\n isNarrowScreenMediaQuery().removeEventListener('change', handlerFn);\n}\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","(function() {\n var basenameMatch, computeMatch, isMatch, isWordStart, match, mergeMatches, scoreAcronyms, scoreCharacter, scoreConsecutives, _ref;\n\n _ref = require('./scorer'), isMatch = _ref.isMatch, isWordStart = _ref.isWordStart, scoreConsecutives = _ref.scoreConsecutives, scoreCharacter = _ref.scoreCharacter, scoreAcronyms = _ref.scoreAcronyms;\n\n exports.match = match = function(string, query, options) {\n var allowErrors, baseMatches, matches, pathSeparator, preparedQuery, string_lw;\n allowErrors = options.allowErrors, preparedQuery = options.preparedQuery, pathSeparator = options.pathSeparator;\n if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n return [];\n }\n string_lw = string.toLowerCase();\n matches = computeMatch(string, string_lw, preparedQuery);\n if (matches.length === 0) {\n return matches;\n }\n if (string.indexOf(pathSeparator) > -1) {\n baseMatches = basenameMatch(string, string_lw, preparedQuery, pathSeparator);\n matches = mergeMatches(matches, baseMatches);\n }\n return matches;\n };\n\n exports.wrap = function(string, query, options) {\n var matchIndex, matchPos, matchPositions, output, strPos, tagClass, tagClose, tagOpen, _ref1;\n if ((options.wrap != null)) {\n _ref1 = options.wrap, tagClass = _ref1.tagClass, tagOpen = _ref1.tagOpen, tagClose = _ref1.tagClose;\n }\n if (tagClass == null) {\n tagClass = 'highlight';\n }\n if (tagOpen == null) {\n tagOpen = '';\n }\n if (tagClose == null) {\n tagClose = '';\n }\n if (string === query) {\n return tagOpen + string + tagClose;\n }\n matchPositions = match(string, query, options);\n if (matchPositions.length === 0) {\n return string;\n }\n output = '';\n matchIndex = -1;\n strPos = 0;\n while (++matchIndex < matchPositions.length) {\n matchPos = matchPositions[matchIndex];\n if (matchPos > strPos) {\n output += string.substring(strPos, matchPos);\n strPos = matchPos;\n }\n while (++matchIndex < matchPositions.length) {\n if (matchPositions[matchIndex] === matchPos + 1) {\n matchPos++;\n } else {\n matchIndex--;\n break;\n }\n }\n matchPos++;\n if (matchPos > strPos) {\n output += tagOpen;\n output += string.substring(strPos, matchPos);\n output += tagClose;\n strPos = matchPos;\n }\n }\n if (strPos <= string.length - 1) {\n output += string.substring(strPos);\n }\n return output;\n };\n\n basenameMatch = function(subject, subject_lw, preparedQuery, pathSeparator) {\n var basePos, depth, end;\n end = subject.length - 1;\n while (subject[end] === pathSeparator) {\n end--;\n }\n basePos = subject.lastIndexOf(pathSeparator, end);\n if (basePos === -1) {\n return [];\n }\n depth = preparedQuery.depth;\n while (depth-- > 0) {\n basePos = subject.lastIndexOf(pathSeparator, basePos - 1);\n if (basePos === -1) {\n return [];\n }\n }\n basePos++;\n end++;\n return computeMatch(subject.slice(basePos, end), subject_lw.slice(basePos, end), preparedQuery, basePos);\n };\n\n mergeMatches = function(a, b) {\n var ai, bj, i, j, m, n, out;\n m = a.length;\n n = b.length;\n if (n === 0) {\n return a.slice();\n }\n if (m === 0) {\n return b.slice();\n }\n i = -1;\n j = 0;\n bj = b[j];\n out = [];\n while (++i < m) {\n ai = a[i];\n while (bj <= ai && ++j < n) {\n if (bj < ai) {\n out.push(bj);\n }\n bj = b[j];\n }\n out.push(ai);\n }\n while (j < n) {\n out.push(b[j++]);\n }\n return out;\n };\n\n computeMatch = function(subject, subject_lw, preparedQuery, offset) {\n var DIAGONAL, LEFT, STOP, UP, acro_score, align, backtrack, csc_diag, csc_row, csc_score, i, j, m, matches, move, n, pos, query, query_lw, score, score_diag, score_row, score_up, si_lw, start, trace;\n if (offset == null) {\n offset = 0;\n }\n query = preparedQuery.query;\n query_lw = preparedQuery.query_lw;\n m = subject.length;\n n = query.length;\n acro_score = scoreAcronyms(subject, subject_lw, query, query_lw).score;\n score_row = new Array(n);\n csc_row = new Array(n);\n STOP = 0;\n UP = 1;\n LEFT = 2;\n DIAGONAL = 3;\n trace = new Array(m * n);\n pos = -1;\n j = -1;\n while (++j < n) {\n score_row[j] = 0;\n csc_row[j] = 0;\n }\n i = -1;\n while (++i < m) {\n score = 0;\n score_up = 0;\n csc_diag = 0;\n si_lw = subject_lw[i];\n j = -1;\n while (++j < n) {\n csc_score = 0;\n align = 0;\n score_diag = score_up;\n if (query_lw[j] === si_lw) {\n start = isWordStart(i, subject, subject_lw);\n csc_score = csc_diag > 0 ? csc_diag : scoreConsecutives(subject, subject_lw, query, query_lw, i, j, start);\n align = score_diag + scoreCharacter(i, j, start, acro_score, csc_score);\n }\n score_up = score_row[j];\n csc_diag = csc_row[j];\n if (score > score_up) {\n move = LEFT;\n } else {\n score = score_up;\n move = UP;\n }\n if (align > score) {\n score = align;\n move = DIAGONAL;\n } else {\n csc_score = 0;\n }\n score_row[j] = score;\n csc_row[j] = csc_score;\n trace[++pos] = score > 0 ? move : STOP;\n }\n }\n i = m - 1;\n j = n - 1;\n pos = i * n + j;\n backtrack = true;\n matches = [];\n while (backtrack && i >= 0 && j >= 0) {\n switch (trace[pos]) {\n case UP:\n i--;\n pos -= n;\n break;\n case LEFT:\n j--;\n pos--;\n break;\n case DIAGONAL:\n matches.push(i + offset);\n j--;\n i--;\n pos -= n + 1;\n break;\n default:\n backtrack = false;\n }\n }\n matches.reverse();\n return matches;\n };\n\n}).call(this);\n","export default () => ({\n inject: {\n glFeatures: {\n from: 'glFeatures',\n default: () => ({}),\n },\n },\n});\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nmodule.exports = kebabCase;\n","(function() {\n var Query, pathScorer, pluckCandidates, scorer, sortCandidates;\n\n scorer = require('./scorer');\n\n pathScorer = require('./pathScorer');\n\n Query = require('./query');\n\n pluckCandidates = function(a) {\n return a.candidate;\n };\n\n sortCandidates = function(a, b) {\n return b.score - a.score;\n };\n\n module.exports = function(candidates, query, options) {\n var bKey, candidate, key, maxInners, maxResults, score, scoreProvider, scoredCandidates, spotLeft, string, usePathScoring, _i, _len;\n scoredCandidates = [];\n key = options.key, maxResults = options.maxResults, maxInners = options.maxInners, usePathScoring = options.usePathScoring;\n spotLeft = (maxInners != null) && maxInners > 0 ? maxInners : candidates.length + 1;\n bKey = key != null;\n scoreProvider = usePathScoring ? pathScorer : scorer;\n for (_i = 0, _len = candidates.length; _i < _len; _i++) {\n candidate = candidates[_i];\n string = bKey ? candidate[key] : candidate;\n if (!string) {\n continue;\n }\n score = scoreProvider.score(string, query, options);\n if (score > 0) {\n scoredCandidates.push({\n candidate: candidate,\n score: score\n });\n if (!--spotLeft) {\n break;\n }\n }\n }\n scoredCandidates.sort(sortCandidates);\n candidates = scoredCandidates.map(pluckCandidates);\n if (maxResults != null) {\n candidates = candidates.slice(0, maxResults);\n }\n return candidates;\n };\n\n}).call(this);\n"],"sourceRoot":""}