{"version":3,"sources":["webpack:////build/source/node_modules/lodash/fp/fill.js","webpack:////build/source/node_modules/lodash/toLength.js","webpack:///./vue_shared/components/filtered_search_bar/tokens/base_token.vue","webpack:///./vue_shared/components/filtered_search_bar/tokens/base_token.vue?9c7d","webpack:///vue_shared/components/filtered_search_bar/tokens/base_token.vue","webpack:///./vue_shared/components/filtered_search_bar/tokens/base_token.vue?71c7","webpack:////build/source/node_modules/lodash/clone.js","webpack:////build/source/node_modules/lodash/_createFlow.js","webpack:////build/source/node_modules/lodash/fp/flowRight.js","webpack:////build/source/node_modules/lodash/fp/filter.js","webpack:///./graphql_shared/queries/users_autocomplete.query.graphql","webpack:////build/source/node_modules/lodash/fill.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/dropdown/dropdown_section_header.js","webpack:////build/source/node_modules/lodash/fp/compose.js","webpack:////build/source/node_modules/lodash/_baseFill.js","webpack:////build/source/node_modules/lodash/compact.js","webpack:////build/source/node_modules/lodash/_baseFilter.js","webpack:////build/source/node_modules/lodash/flowRight.js","webpack:///./vue_shared/components/filtered_search_bar/tokens/user_token.vue","webpack:///./vue_shared/components/filtered_search_bar/tokens/user_token.vue?ef0a","webpack:///vue_shared/components/filtered_search_bar/tokens/user_token.vue","webpack:///./vue_shared/components/filtered_search_bar/tokens/user_token.vue?bb66","webpack:////build/source/node_modules/@gitlab/ui/dist/components/utilities/intersperse/intersperse.js","webpack:////build/source/node_modules/lodash/filter.js"],"names":["func","convert","placeholder","module","exports","baseClamp","toInteger","value","components","GlFilteredSearchToken","GlFilteredSearchSuggestion","GlDropdownDivider","GlDropdownSectionHeader","GlDropdownText","GlLoadingIcon","props","config","type","Object","required","active","Boolean","suggestionsLoading","default","suggestions","Array","getActiveTokenValue","Function","data","find","defaultSuggestions","preloadedSuggestions","valueIdentifier","token","id","searchBy","String","undefined","appliedTokens","_getRecentlyUsedSugge","hasFetched","searchKey","selectedTokens","recentSuggestions","recentSuggestionsStorageKey","getRecentlyUsedSuggestions","computed","isRecentSuggestionsEnabled","suggestionsEnabled","suggestionsDisabled","recentTokenIds","map","preloadedTokenIds","activeTokenValue","multiSelectEnabled","isArray","_last","availableDefaultSuggestions","OPERATOR_NOT","OPERATOR_OR","includes","operator","filter","suggestion","FILTERS_NONE_ANY","availableSuggestions","_this","tokenValue","applyMaxSuggestions","showDefaultSuggestions","length","showNoMatchesText","showRecentSuggestions","showPreloadedSuggestions","showAvailableSuggestions","searchTerm","multiSelect","OPERATORS_TO_GROUP","validatedConfig","watch","immediate","handler","_this2","flat","forEach","item","search","$emit","loading","deep","newValue","concat","methods","handleInput","_debounce","startsWith","endsWith","stripQuotes","slice","DEBOUNCE_DELAY","handleTokenValueSelected","selectedValue","index","indexOf","splice","push","setTokenValueToRecentlyUsed","maxSuggestions","component","_vm","this","_c","_self","_g","_b","attrs","on","scopedSlots","_u","key","fn","viewTokenProps","_t","_l","_v","_s","text","_e","__","proxy","$attrs","$listeners","baseClone","LodashWrapper","flatRest","getData","getFuncName","isLaziable","fromRight","funcs","prereq","prototype","thru","reverse","TypeError","wrapper","funcName","apply","args","arguments","plant","result","call","doc","loc","source","definitionRefs","findOperation","name","i","definitions","element","def","refs","Set","collectFragmentReferences","node","kind","add","selectionSet","selections","selection","variableDefinitions","operationName","newDoc","hasOwnProperty","opRefs","allRefs","newRefs","refName","size","prevRefs","has","childRef","op","oneQuery","baseFill","isIterateeCall","array","start","end","tag","variant","BDropdownHeader","functional","h","_ref","children","role","staticClass","class","ref","__vue_script__","inheritAttrs","__vue_component__","render","_h","$createElement","staticRenderFns","toLength","resIndex","baseEach","collection","predicate","flowRight","createFlow","BaseToken","GlAvatar","GlIcon","GlIntersperse","users","initialUsers","allUsers","defaultUsers","OPTIONS_NONE_ANY","preloadedUsers","namespace","isProject","WORKSPACE_PROJECT","WORKSPACE_GROUP","fetchUsersQuery","fetchUsers","fetchUsersBySearchTerm","getActiveUser","user","getUsername","toLowerCase","getAvatarUrl","avatarUrl","avatar_url","username","displayNameFor","_this$getActiveUser","avatarFor","$apollo","query","usersAutocompleteQuery","variables","fullPath","then","_data$_this2$namespac","autocompleteUsers","_this3","fetchPath","res","_compact","catch","createAlert","message","finally","inputValue","filterEmptyNodesVue2","vNode","trim","Fragment","filterEmptyNodes","version","reduce","acc","insertAfterSecondLastItem","replaceSecondLastItem","separator","lastSeparator","createElement","context","slots","items","addLastSeparator","filterAndSeparate","arrayFilter","baseFilter","baseIteratee"],"mappings":"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","file":"179.260c8817.chunk.js","sourcesContent":["var convert = require('./convert'),\n func = convert('fill', require('../fill'));\n\nfunc.placeholder = require('./placeholder');\nmodule.exports = func;\n","var baseClamp = require('./_baseClamp'),\n toInteger = require('./toInteger');\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\nfunction toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n}\n\nmodule.exports = toLength;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-filtered-search-token',_vm._g(_vm._b({attrs:{\"config\":_vm.validatedConfig,\"value\":_vm.value,\"active\":_vm.active,\"multi-select-values\":_vm.selectedTokens},on:{\"input\":_vm.handleInput,\"select\":_vm.handleTokenValueSelected},scopedSlots:_vm._u([{key:\"view-token\",fn:function(viewTokenProps){return [_vm._t(\"view-token\",null,{\"viewTokenProps\":/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */ {\n ...viewTokenProps,\n activeTokenValue: _vm.activeTokenValue,\n selectedTokens: _vm.selectedTokens,\n } /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */})]}},{key:\"view\",fn:function(viewTokenProps){return [_vm._t(\"view\",null,{\"viewTokenProps\":/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */ {\n ...viewTokenProps,\n activeTokenValue: _vm.activeTokenValue,\n selectedTokens: _vm.selectedTokens,\n } /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */})]}},(_vm.suggestionsEnabled)?{key:\"suggestions\",fn:function(){return [(_vm.showDefaultSuggestions)?[_vm._l((_vm.availableDefaultSuggestions),function(token){return _c('gl-filtered-search-suggestion',{key:token.value,attrs:{\"value\":token.value}},[_vm._v(\"\\n \"+_vm._s(token.text)+\"\\n \")])}),_vm._v(\" \"),_c('gl-dropdown-divider')]:_vm._e(),_vm._v(\" \"),(_vm.showRecentSuggestions)?[_c('gl-dropdown-section-header',[_vm._v(_vm._s(_vm.__('Recently used')))]),_vm._v(\" \"),_vm._t(\"suggestions-list\",null,{\"suggestions\":_vm.recentSuggestions,\"selections\":_vm.selectedTokens}),_vm._v(\" \"),_c('gl-dropdown-divider')]:_vm._e(),_vm._v(\" \"),(_vm.showPreloadedSuggestions)?_vm._t(\"suggestions-list\",null,{\"suggestions\":_vm.preloadedSuggestions,\"selections\":_vm.selectedTokens}):_vm._e(),_vm._v(\" \"),(_vm.suggestionsLoading)?_c('gl-loading-icon',{attrs:{\"size\":\"sm\"}}):(_vm.showAvailableSuggestions)?[_vm._t(\"suggestions-list\",null,{\"suggestions\":_vm.availableSuggestions,\"selections\":_vm.selectedTokens})]:(_vm.showNoMatchesText)?_c('gl-dropdown-text',[_vm._v(\"\\n \"+_vm._s(_vm.__('No matches found'))+\"\\n \")]):(_vm.hasFetched)?_c('gl-dropdown-text',[_vm._v(_vm._s(_vm.__('No suggestions found')))]):_vm._e(),_vm._v(\" \"),_vm._t(\"footer\")]},proxy:true}:null],null,true)},'gl-filtered-search-token',_vm.$attrs,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./base_token.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./base_token.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlFilteredSearchToken,\n GlFilteredSearchSuggestion,\n GlDropdownDivider,\n GlDropdownSectionHeader,\n GlDropdownText,\n GlLoadingIcon,\n} from '@gitlab/ui';\nimport { debounce, last } from 'lodash';\n\nimport { stripQuotes } from '~/lib/utils/text_utility';\nimport {\n DEBOUNCE_DELAY,\n FILTERS_NONE_ANY,\n OPERATOR_NOT,\n OPERATOR_OR,\n OPERATORS_TO_GROUP,\n} from '../constants';\nimport { getRecentlyUsedSuggestions, setTokenValueToRecentlyUsed } from '../filtered_search_utils';\n\nexport default {\n components: {\n GlFilteredSearchToken,\n GlFilteredSearchSuggestion,\n GlDropdownDivider,\n GlDropdownSectionHeader,\n GlDropdownText,\n GlLoadingIcon,\n },\n props: {\n config: {\n type: Object,\n required: true,\n },\n value: {\n type: Object,\n required: true,\n },\n active: {\n type: Boolean,\n required: true,\n },\n suggestionsLoading: {\n type: Boolean,\n required: false,\n default: false,\n },\n suggestions: {\n type: Array,\n required: false,\n default: () => [],\n },\n getActiveTokenValue: {\n type: Function,\n required: false,\n default: (suggestions, data) => suggestions.find(({ value }) => value === data),\n },\n defaultSuggestions: {\n type: Array,\n required: false,\n default: () => [],\n },\n preloadedSuggestions: {\n type: Array,\n required: false,\n default: () => [],\n },\n valueIdentifier: {\n type: Function,\n required: false,\n default: (token) => token.id,\n },\n searchBy: {\n type: String,\n required: false,\n default: undefined,\n },\n appliedTokens: {\n type: Array,\n required: false,\n default: () => [],\n },\n },\n data() {\n return {\n hasFetched: false, // use this to avoid flash of `No suggestions found` before fetching\n searchKey: '',\n selectedTokens: [],\n recentSuggestions: this.config.recentSuggestionsStorageKey\n ? getRecentlyUsedSuggestions(\n this.config.recentSuggestionsStorageKey,\n this.appliedTokens,\n this.valueIdentifier,\n ) ?? []\n : [],\n };\n },\n computed: {\n isRecentSuggestionsEnabled() {\n return Boolean(this.config.recentSuggestionsStorageKey);\n },\n suggestionsEnabled() {\n return !this.config.suggestionsDisabled;\n },\n recentTokenIds() {\n return this.recentSuggestions.map(this.valueIdentifier);\n },\n preloadedTokenIds() {\n return this.preloadedSuggestions.map(this.valueIdentifier);\n },\n activeTokenValue() {\n const data =\n this.multiSelectEnabled && Array.isArray(this.value.data)\n ? last(this.value.data)\n : this.value.data;\n return this.getActiveTokenValue(this.suggestions, data);\n },\n availableDefaultSuggestions() {\n if ([OPERATOR_NOT, OPERATOR_OR].includes(this.value.operator)) {\n return this.defaultSuggestions.filter(\n (suggestion) => !FILTERS_NONE_ANY.includes(suggestion.value),\n );\n }\n return this.defaultSuggestions;\n },\n /**\n * Return all the suggestions when searchKey is present\n * otherwise return only the suggestions which aren't\n * present in \"Recently used\"\n */\n availableSuggestions() {\n const suggestions = this.searchKey\n ? this.suggestions\n : this.suggestions.filter(\n (tokenValue) =>\n !this.recentTokenIds.includes(this.valueIdentifier(tokenValue)) &&\n !this.preloadedTokenIds.includes(this.valueIdentifier(tokenValue)),\n );\n\n return this.applyMaxSuggestions(suggestions);\n },\n showDefaultSuggestions() {\n return this.availableDefaultSuggestions.length > 0;\n },\n showNoMatchesText() {\n return this.searchKey && !this.availableSuggestions.length;\n },\n showRecentSuggestions() {\n return (\n this.isRecentSuggestionsEnabled && this.recentSuggestions.length > 0 && !this.searchKey\n );\n },\n showPreloadedSuggestions() {\n return this.preloadedSuggestions.length > 0 && !this.searchKey;\n },\n showAvailableSuggestions() {\n return this.availableSuggestions.length > 0;\n },\n searchTerm() {\n return this.searchBy && this.activeTokenValue\n ? this.activeTokenValue[this.searchBy]\n : undefined;\n },\n multiSelectEnabled() {\n return this.config.multiSelect && OPERATORS_TO_GROUP.includes(this.value.operator);\n },\n validatedConfig() {\n if (this.config.multiSelect && !this.multiSelectEnabled) {\n return {\n ...this.config,\n multiSelect: false,\n };\n }\n return this.config;\n },\n },\n watch: {\n active: {\n immediate: true,\n handler(active) {\n if (!active && !this.suggestions.length) {\n // data could be a string or an array of strings\n const selectedItems = [this.value.data].flat();\n selectedItems.forEach((item) => {\n const search = this.searchTerm ? this.searchTerm : item;\n this.$emit('fetch-suggestions', search);\n });\n }\n },\n },\n suggestionsLoading: {\n handler(loading) {\n if (loading) {\n this.hasFetched = true;\n }\n },\n },\n value: {\n deep: true,\n immediate: true,\n handler(newValue) {\n const { data } = newValue;\n\n if (!this.multiSelectEnabled) {\n return;\n }\n\n // don't add empty values to selectedUsernames\n if (!data) {\n return;\n }\n\n if (Array.isArray(data)) {\n this.selectedTokens = data;\n // !active so we don't add strings while searching, e.g. r, ro, roo\n // !includes so we don't add the same usernames (if @input is emitted twice)\n } else if (!this.active && !this.selectedTokens.includes(data)) {\n this.selectedTokens = this.selectedTokens.concat(data);\n }\n },\n },\n },\n methods: {\n handleInput: debounce(function debouncedSearch({ data, operator }) {\n // in multiSelect mode, data could be an array\n if (Array.isArray(data)) return;\n\n // Prevent fetching suggestions when data or operator is not present\n if (data || operator) {\n this.searchKey = data;\n\n if (!this.activeTokenValue) {\n let search = this.searchTerm ? this.searchTerm : data;\n\n if (search.startsWith('\"') && search.endsWith('\"')) {\n search = stripQuotes(search);\n } else if (search.startsWith('\"')) {\n search = search.slice(1, search.length);\n }\n\n this.$emit('fetch-suggestions', search);\n }\n }\n }, DEBOUNCE_DELAY),\n handleTokenValueSelected(selectedValue) {\n if (this.multiSelectEnabled) {\n const index = this.selectedTokens.indexOf(selectedValue);\n if (index > -1) {\n this.selectedTokens.splice(index, 1);\n } else {\n this.selectedTokens.push(selectedValue);\n }\n\n // need to clear search\n this.$emit('input', { ...this.value, data: '' });\n }\n\n const activeTokenValue = this.getActiveTokenValue(this.suggestions, selectedValue);\n // Make sure that;\n // 1. Recently used values feature is enabled\n // 2. User has actually selected a value\n // 3. Selected value is not part of preloaded list.\n if (\n this.isRecentSuggestionsEnabled &&\n activeTokenValue &&\n !this.preloadedTokenIds.includes(this.valueIdentifier(activeTokenValue))\n ) {\n setTokenValueToRecentlyUsed(this.config.recentSuggestionsStorageKey, activeTokenValue);\n }\n },\n applyMaxSuggestions(suggestions) {\n const { maxSuggestions } = this.config;\n if (!maxSuggestions || maxSuggestions <= 0) return suggestions;\n\n return suggestions.slice(0, maxSuggestions);\n },\n },\n};\n</script>\n\n<template>\n <gl-filtered-search-token\n :config=\"validatedConfig\"\n :value=\"value\"\n :active=\"active\"\n :multi-select-values=\"selectedTokens\"\n v-bind=\"$attrs\"\n v-on=\"$listeners\"\n @input=\"handleInput\"\n @select=\"handleTokenValueSelected\"\n >\n <template #view-token=\"viewTokenProps\">\n <slot\n name=\"view-token\"\n :view-token-props=\"/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */ {\n ...viewTokenProps,\n activeTokenValue,\n selectedTokens,\n } /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */\"\n ></slot>\n </template>\n <template #view=\"viewTokenProps\">\n <slot\n name=\"view\"\n :view-token-props=\"/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */ {\n ...viewTokenProps,\n activeTokenValue,\n selectedTokens,\n } /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */\"\n ></slot>\n </template>\n <template v-if=\"suggestionsEnabled\" #suggestions>\n <template v-if=\"showDefaultSuggestions\">\n <gl-filtered-search-suggestion\n v-for=\"token in availableDefaultSuggestions\"\n :key=\"token.value\"\n :value=\"token.value\"\n >\n {{ token.text }}\n </gl-filtered-search-suggestion>\n <gl-dropdown-divider />\n </template>\n <template v-if=\"showRecentSuggestions\">\n <gl-dropdown-section-header>{{ __('Recently used') }}</gl-dropdown-section-header>\n <slot\n name=\"suggestions-list\"\n :suggestions=\"recentSuggestions\"\n :selections=\"selectedTokens\"\n ></slot>\n <gl-dropdown-divider />\n </template>\n <slot\n v-if=\"showPreloadedSuggestions\"\n name=\"suggestions-list\"\n :suggestions=\"preloadedSuggestions\"\n :selections=\"selectedTokens\"\n ></slot>\n <gl-loading-icon v-if=\"suggestionsLoading\" size=\"sm\" />\n <template v-else-if=\"showAvailableSuggestions\">\n <slot\n name=\"suggestions-list\"\n :suggestions=\"availableSuggestions\"\n :selections=\"selectedTokens\"\n ></slot>\n </template>\n <gl-dropdown-text v-else-if=\"showNoMatchesText\">\n {{ __('No matches found') }}\n </gl-dropdown-text>\n <gl-dropdown-text v-else-if=\"hasFetched\">{{ __('No suggestions found') }}</gl-dropdown-text>\n <slot name=\"footer\"></slot>\n </template>\n </gl-filtered-search-token>\n</template>\n","import { render, staticRenderFns } from \"./base_token.vue?vue&type=template&id=bd574ef6\"\nimport script from \"./base_token.vue?vue&type=script&lang=js\"\nexport * from \"./base_token.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 baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = clone;\n","var LodashWrapper = require('./_LodashWrapper'),\n flatRest = require('./_flatRest'),\n getData = require('./_getData'),\n getFuncName = require('./_getFuncName'),\n isArray = require('./isArray'),\n isLaziable = require('./_isLaziable');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\nfunction createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n}\n\nmodule.exports = createFlow;\n","var convert = require('./convert'),\n func = convert('flowRight', require('../flowRight'));\n\nfunc.placeholder = require('./placeholder');\nmodule.exports = func;\n","var convert = require('./convert'),\n func = convert('filter', require('../filter'));\n\nfunc.placeholder = require('./placeholder');\nmodule.exports = func;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"usersAutocomplete\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":false},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"skip\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"autocompleteUsers\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"username\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"include\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"autocompleteUsers\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"username\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":419}};\n doc.loc.source = {\"body\":\"query usersAutocomplete($fullPath: ID!, $search: String, $isProject: Boolean = false) {\\n group(fullPath: $fullPath) @skip(if: $isProject) {\\n id\\n autocompleteUsers(search: $search) {\\n id\\n avatarUrl\\n name\\n username\\n }\\n }\\n project(fullPath: $fullPath) @include(if: $isProject) {\\n id\\n autocompleteUsers(search: $search) {\\n id\\n avatarUrl\\n name\\n username\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"usersAutocomplete\"] = oneQuery(doc, \"usersAutocomplete\");\n \n","var baseFill = require('./_baseFill'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\nfunction fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n}\n\nmodule.exports = fill;\n","import { extend, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_HEADER } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { isTag } from '../../utils/dom';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'header'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_HEADER);\n\n// --- Main component ---\n\n// @vue/component\nconst BDropdownHeader = /*#__PURE__*/extend({\n name: NAME_DROPDOWN_HEADER,\n functional: true,\n props,\n render(h, _ref) {\n let {\n props,\n data,\n children\n } = _ref;\n const {\n tag,\n variant\n } = props;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(tag, {\n staticClass: 'dropdown-header',\n class: {\n [`text-${variant}`]: variant\n },\n attrs: {\n ...(data.attrs || {}),\n id: props.id || null,\n role: isTag(tag, 'header') ? null : 'heading'\n },\n ref: 'header'\n }, children)]);\n }\n});\n\nexport { BDropdownHeader, props };\n","import { BDropdownHeader } from '../../../vendor/bootstrap-vue/src/components/dropdown/dropdown-header';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlDropdownHeader',\n components: {\n BDropdownHeader\n },\n inheritAttrs: false\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-dropdown-header',_vm._g(_vm._b({staticClass:\"gl-dropdown-section-header\"},'b-dropdown-header',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","module.exports = require('./flowRight');\n","var toInteger = require('./toInteger'),\n toLength = require('./toLength');\n\n/**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\nfunction baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n}\n\nmodule.exports = baseFill;\n","/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = compact;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n","var createFlow = require('./_createFlow');\n\n/**\n * This method is like `_.flow` except that it creates a function that\n * invokes the given functions from right to left.\n *\n * @static\n * @since 3.0.0\n * @memberOf _\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flow\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flowRight([square, _.add]);\n * addSquare(1, 2);\n * // => 9\n */\nvar flowRight = createFlow(true);\n\nmodule.exports = flowRight;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('base-token',_vm._g(_vm._b({attrs:{\"config\":_vm.config,\"value\":_vm.value,\"active\":_vm.active,\"suggestions-loading\":_vm.loading,\"suggestions\":_vm.users,\"get-active-token-value\":_vm.getActiveUser,\"default-suggestions\":_vm.defaultUsers,\"preloaded-suggestions\":_vm.preloadedUsers,\"value-identifier\":_vm.getUsername},on:{\"fetch-suggestions\":_vm.fetchUsers},scopedSlots:_vm._u([{key:\"view\",fn:function({ viewTokenProps: { inputValue, activeTokenValue, selectedTokens } }){return [(selectedTokens.length > 0)?_c('gl-intersperse',{attrs:{\"separator\":\",\"}},_vm._l((selectedTokens),function(username,index){return _c('span',{key:username,class:{ 'gl-ml-2': index > 0 }},[_c('gl-avatar',{staticClass:\"gl-mr-1\",attrs:{\"size\":16,\"src\":_vm.avatarFor(username)}}),_vm._v(_vm._s(_vm.displayNameFor(username)))],1)}),0):[(activeTokenValue)?_c('gl-avatar',{staticClass:\"gl-mr-2\",attrs:{\"size\":16,\"src\":_vm.getAvatarUrl(activeTokenValue)}}):_vm._e(),_vm._v(\"\\n \"+_vm._s(activeTokenValue ? activeTokenValue.name : inputValue)+\"\\n \")]]}},{key:\"suggestions-list\",fn:function({ suggestions, selections = [] }){return _vm._l((suggestions),function(user){return _c('gl-filtered-search-suggestion',{key:_vm.getUsername(user),attrs:{\"value\":_vm.getUsername(user)}},[_c('div',{staticClass:\"gl-flex gl-items-center\",class:{ 'gl-pl-6': !selections.includes(_vm.getUsername(user)) }},[(selections.includes(_vm.getUsername(user)))?_c('gl-icon',{staticClass:\"gl-mr-3 gl-shrink-0\",attrs:{\"name\":\"check\",\"variant\":\"subtle\"}}):_vm._e(),_vm._v(\" \"),_c('gl-avatar',{attrs:{\"size\":32,\"src\":_vm.getAvatarUrl(user)}}),_vm._v(\" \"),_c('div',[_c('div',[_vm._v(_vm._s(user.name))]),_vm._v(\" \"),_c('div',[_vm._v(\"@\"+_vm._s(_vm.getUsername(user)))])])],1)])})}}])},'base-token',_vm.$attrs,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_token.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_token.vue?vue&type=script&lang=js\"","<script>\nimport { GlAvatar, GlIcon, GlIntersperse, GlFilteredSearchSuggestion } from '@gitlab/ui';\nimport { compact } from 'lodash';\nimport { createAlert } from '~/alert';\nimport { __ } from '~/locale';\n\nimport { WORKSPACE_GROUP, WORKSPACE_PROJECT } from '~/issues/constants';\nimport usersAutocompleteQuery from '~/graphql_shared/queries/users_autocomplete.query.graphql';\nimport { OPTIONS_NONE_ANY } from '../constants';\n\nimport BaseToken from './base_token.vue';\n\nexport default {\n components: {\n BaseToken,\n GlAvatar,\n GlIcon,\n GlIntersperse,\n GlFilteredSearchSuggestion,\n },\n props: {\n config: {\n type: Object,\n required: true,\n },\n value: {\n type: Object,\n required: true,\n },\n active: {\n type: Boolean,\n required: true,\n },\n },\n data() {\n return {\n // current users visible in list\n users: this.config.initialUsers || [],\n allUsers: this.config.initialUsers || [],\n loading: false,\n };\n },\n computed: {\n defaultUsers() {\n return this.config.defaultUsers || OPTIONS_NONE_ANY;\n },\n preloadedUsers() {\n return this.config.preloadedUsers || [];\n },\n namespace() {\n return this.config.isProject ? WORKSPACE_PROJECT : WORKSPACE_GROUP;\n },\n fetchUsersQuery() {\n return this.config.fetchUsers ? this.config.fetchUsers : this.fetchUsersBySearchTerm;\n },\n },\n methods: {\n getActiveUser(users, data) {\n return users.find((user) => this.getUsername(user).toLowerCase() === data.toLowerCase());\n },\n getAvatarUrl(user) {\n return user?.avatarUrl || user?.avatar_url;\n },\n getUsername(user) {\n return user.username;\n },\n displayNameFor(username) {\n return this.getActiveUser(this.allUsers, username)?.name || username;\n },\n avatarFor(username) {\n const user = this.getActiveUser(this.allUsers, username);\n return this.getAvatarUrl(user);\n },\n fetchUsersBySearchTerm(search) {\n return this.$apollo\n .query({\n query: usersAutocompleteQuery,\n variables: { fullPath: this.config.fullPath, search, isProject: this.config.isProject },\n })\n .then(({ data }) => data[this.namespace]?.autocompleteUsers);\n },\n fetchUsers(searchTerm) {\n this.loading = true;\n const fetchPromise = this.config.fetchPath\n ? this.config.fetchUsers(this.config.fetchPath, searchTerm)\n : this.fetchUsersQuery(searchTerm);\n\n fetchPromise\n .then((res) => {\n // We'd want to avoid doing this check but\n // users.json and /groups/:id/members & /projects/:id/users\n // return response differently\n\n // TODO: rm when completed https://gitlab.com/gitlab-org/gitlab/-/issues/345756\n this.users = Array.isArray(res) ? compact(res) : compact(res.data);\n this.allUsers = this.allUsers.concat(this.users);\n })\n .catch(() =>\n createAlert({\n message: __('There was a problem fetching users.'),\n }),\n )\n .finally(() => {\n this.loading = false;\n });\n },\n },\n};\n</script>\n\n<template>\n <base-token\n :config=\"config\"\n :value=\"value\"\n :active=\"active\"\n :suggestions-loading=\"loading\"\n :suggestions=\"users\"\n :get-active-token-value=\"getActiveUser\"\n :default-suggestions=\"defaultUsers\"\n :preloaded-suggestions=\"preloadedUsers\"\n :value-identifier=\"getUsername\"\n v-bind=\"$attrs\"\n @fetch-suggestions=\"fetchUsers\"\n v-on=\"$listeners\"\n >\n <template #view=\"{ viewTokenProps: { inputValue, activeTokenValue, selectedTokens } }\">\n <gl-intersperse v-if=\"selectedTokens.length > 0\" separator=\",\">\n <span\n v-for=\"(username, index) in selectedTokens\"\n :key=\"username\"\n :class=\"{ 'gl-ml-2': index > 0 }\"\n ><gl-avatar :size=\"16\" :src=\"avatarFor(username)\" class=\"gl-mr-1\" />{{\n displayNameFor(username)\n }}</span\n >\n </gl-intersperse>\n <template v-else>\n <gl-avatar\n v-if=\"activeTokenValue\"\n :size=\"16\"\n :src=\"getAvatarUrl(activeTokenValue)\"\n class=\"gl-mr-2\"\n />\n {{ activeTokenValue ? activeTokenValue.name : inputValue }}\n </template>\n </template>\n <template #suggestions-list=\"{ suggestions, selections = [] }\">\n <gl-filtered-search-suggestion\n v-for=\"user in suggestions\"\n :key=\"getUsername(user)\"\n :value=\"getUsername(user)\"\n >\n <div\n class=\"gl-flex gl-items-center\"\n :class=\"{ 'gl-pl-6': !selections.includes(getUsername(user)) }\"\n >\n <gl-icon\n v-if=\"selections.includes(getUsername(user))\"\n name=\"check\"\n class=\"gl-mr-3 gl-shrink-0\"\n variant=\"subtle\"\n />\n <gl-avatar :size=\"32\" :src=\"getAvatarUrl(user)\" />\n <div>\n <div>{{ user.name }}</div>\n <div>@{{ getUsername(user) }}</div>\n </div>\n </div>\n </gl-filtered-search-suggestion>\n </template>\n </base-token>\n</template>\n","import { render, staticRenderFns } from \"./user_token.vue?vue&type=template&id=d60c2376\"\nimport script from \"./user_token.vue?vue&type=script&lang=js\"\nexport * from \"./user_token.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\nimport compose from 'lodash/fp/compose';\nimport fill from 'lodash/fp/fill';\nimport filter from 'lodash/fp/filter';\nimport { insert, intersperse } from '../../../utils/data_utils';\nimport { isVnodeEmpty } from '../../../utils/is_slot_empty';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst filterEmptyNodesVue2 = filter(vNode => typeof vNode.tag === 'string' || vNode.text.trim() !== '');\nconst {\n Fragment\n} = Vue;\nconst filterEmptyNodesVue3 = vNode => {\n return vNode.reduce((acc, node) => {\n if (Fragment && node.type === Fragment && Array.isArray(node.children)) {\n acc.push(...node.children);\n } else {\n acc.push(node);\n }\n return acc;\n }, []).filter(node => !isVnodeEmpty(node));\n};\nconst filterEmptyNodes = Vue.version.startsWith('3') ? filterEmptyNodesVue3 : filterEmptyNodesVue2;\nconst insertAfterSecondLastItem = insert(-1);\nconst replaceSecondLastItem = fill(-2, -1);\n\n// handles the addition of the lastSeparator in these two cases:\n// item1, item2, item3 => item1, item2, and item3\n// item1, item2 => item1 and item2\nconst addLastSeparator = lastSeparator => items => {\n if (!lastSeparator) {\n return items;\n }\n return items.length > 3 ? insertAfterSecondLastItem(lastSeparator, items) : replaceSecondLastItem(lastSeparator, items);\n};\nvar script = {\n name: 'GlIntersperse',\n functional: true,\n props: {\n separator: {\n type: String,\n default: ', ',\n required: false\n },\n lastSeparator: {\n type: String,\n default: '',\n required: false\n }\n },\n render(createElement, context) {\n const {\n props: {\n separator,\n lastSeparator\n },\n slots,\n data\n } = context;\n const filterAndSeparate = compose(addLastSeparator(lastSeparator), intersperse(separator), filterEmptyNodes);\n return createElement('span', data, filterAndSeparate(slots().default));\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\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__ = undefined;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n {},\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n"],"sourceRoot":""}