{"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":""}