{"version":3,"sources":["webpack:////build/source/node_modules/lodash/head.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/filtered_search/filtered_search_suggestion_list.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/filtered_search/filtered_search_token_segment.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/filtered_search/filtered_search_utils.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/filtered_search/filtered_search_suggestion.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/filtered_search/filtered_search_token.js","webpack:////build/source/node_modules/lodash/first.js"],"names":["module","exports","array","length","undefined","__vue_script__","name","inject","filteredSearchSuggestionListInstance","this","props","initialValue","required","validator","default","data","activeIdx","registeredItems","computed","findIndex","item","valuesMatch","value","initialActiveIdx","termsAsTokens","initialActiveItem","suggestionsListClass","watch","methods","firstValue","secondValue","toLowerCase","push","idx","indexOf","splice","stepItem","direction","endIdx","index","activeItem","render","_h","$createElement","_self","_c","class","listClasses","_t","staticRenderFns","isVNodeEmpty","vnode","_vnode$type2","_vnode$type2$toString","type","toString","call","isVue3Fragment","Array","isArray","children","every","_vnode$type","_vnode$type$toString","isVue3Comment","components","Portal","GlFilteredSearchSuggestionList","GlFilteredSearchSuggestion","inheritAttrs","active","Boolean","isTerm","label","String","multiSelect","options","optionTextField","customInputKeydownHandler","Function","searchInputAttributes","Object","isLastToken","currentValue","cursorPosition","includes","viewOnly","fallbackValue","some","_ref","_this$options","find","o","inputValue","nonMultipleValue","matchingOption","$emit","_this$options2","slot","vnodes","isSlotNotEmpty","$slots","suggestions","_this$options$","option","getMatchingOptionForInputValue","loose","hasTermSuggestion","defaultOption","op","immediate","newValue","activate","deactivate","hasUnclosedQuote","split","firstWord","otherWords","filter","w","arr","e","button","preventDefault","_this$options3","arguments","$nextTick","input","$refs","focus","scrollIntoView","block","inline","alignSuggestions","setSelectionRange","_this$matchingOption","suggestedValue","formattedSuggestedValue","key","getValue","handlers","ArrowLeft","selectionStart","ArrowRight","selectionEnd","Backspace","Enter","applySuggestion","Escape","suggestionsHandlers","ArrowDown","nextItem","Down","ArrowUp","prevItem","Up","hasOptionsOrSuggestions","assign","keys","v","_vm","_g","_b","staticClass","attrs","containerAttributes","mousedown","emitIfInactive","submitValue","_v","directives","rawName","expression","ref","domProps","_i","on","handleInputKeydown","handleBlur","$event","$$a","$$el","target","$$c","checked","$$i","concat","slice","_q","composing","_uid","portalName","defaultSuggestedValue","_l","icon","component","tag","_s","_e","TERM_TOKEN_TYPE","INTENT_ACTIVATE_PREVIOUS","TOKEN_CLOSE_SELECTOR","isEmptyTerm","token","trim","normalizeTokens","tokens","result","forEach","assertValidTokens","needDenormalization","t","id","stepIndexAndWrap","step","start","tokenToOption","title","optionComponent","tokenIdCounter","getTokenId","tokenId","ensureTokenId","createTerm","denormalizeTokens","inputTokens","reduce","trimmedText","strToken","match","text","query","termTokenDefinition","splitOnQuotes","str","queue","waitingForMatchingQuote","quoteContent","part","shift","firstPart","secondPart","unshift","wrapTokenInQuotes","quote","GlDropdownItem","window","requestAnimationFrame","_this$$refs$item","_this$$refs$item$$el","$el","register","unregister","__vue_component__","isActive","nativeOn","emitValue","apply","$attrs","DEFAULT_OPERATORS","description","__v_skip","GlToken","GlFilteredSearchTokenSegment","availableTokens","config","multiSelectValues","operator","showFriendlyText","dataSegmentInputAttributes","activeSegment","tokenValue","intendedCursorPosition","operators","_this$tokenValue$data","tokenEmpty","isSegmentActive","map","stopMousedownOnCloseButton","close","destroyByClose","segments","SEGMENT_TITLE","SEGMENT_DATA","SEGMENT_OPERATOR","deep","oldValue","tokenIsActive","activateSegment","segment","newType","newTokenConfig","isCompatible","dataType","evt","_ref2","potentialValue","_ref3","startsWith","$options","activateDataSegment","event","closest","availableTokensWithSelf","replaceToken","activateNextOperatorSegment","scopedSlots","_u","fn","getAdditionalSegmentClasses","handleOperatorKeydown","replaceWithTermIfEmpty","activatePreviousTitleSegment","activateNextDataSegment","operatorDescription","proxy","model","callback","$$v","$set","handleComplete","activatePreviousOperatorSegment","scope","eventListeners","listeners","cssClasses"],"mappings":"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","file":"55.b3ecf2db.chunk.js","sourcesContent":["/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n  return (array && array.length) ? array[0] : undefined;\n}\n\nmodule.exports = head;\n","import { stepIndexAndWrap } from './filtered_search_utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst DEFER_TO_INITIAL_VALUE = -1;\nconst NO_ACTIVE_ITEM = -2;\nvar script = {\n  name: 'GlFilteredSearchSuggestionList',\n  inject: ['suggestionsListClass', 'termsAsTokens'],\n  provide() {\n    return {\n      filteredSearchSuggestionListInstance: this\n    };\n  },\n  props: {\n    /**\n     * Value to be initially selected in list.\n     */\n    initialValue: {\n      required: false,\n      validator: () => true,\n      default: null\n    }\n  },\n  data() {\n    return {\n      activeIdx: DEFER_TO_INITIAL_VALUE,\n      registeredItems: []\n    };\n  },\n  computed: {\n    initialActiveIdx() {\n      return this.registeredItems.findIndex(item => this.valuesMatch(item.value, this.initialValue));\n    },\n    initialActiveItem() {\n      return this.registeredItems[this.initialActiveIdx];\n    },\n    activeItem() {\n      if (!this.termsAsTokens() && this.activeIdx === NO_ACTIVE_ITEM) return null;\n      if (this.activeIdx === DEFER_TO_INITIAL_VALUE) return this.initialActiveItem;\n      return this.registeredItems[this.activeIdx];\n    },\n    listClasses() {\n      return [this.suggestionsListClass(), 'dropdown-menu gl-filtered-search-suggestion-list'];\n    }\n  },\n  watch: {\n    initialValue() {\n      this.activeIdx = DEFER_TO_INITIAL_VALUE;\n    }\n  },\n  methods: {\n    valuesMatch(firstValue, secondValue) {\n      if (firstValue == null || secondValue == null) return false;\n      return typeof firstValue === 'string' && typeof secondValue === 'string' ? firstValue.toLowerCase() === secondValue.toLowerCase() : firstValue === secondValue;\n    },\n    register(item) {\n      this.registeredItems.push(item);\n    },\n    unregister(item) {\n      const idx = this.registeredItems.indexOf(item);\n      if (idx !== -1) {\n        this.registeredItems.splice(idx, 1);\n        if (idx === this.activeIdx) {\n          this.activeIdx = DEFER_TO_INITIAL_VALUE;\n        }\n      }\n    },\n    nextItem() {\n      if (this.termsAsTokens()) {\n        this.stepItem(1);\n      } else {\n        this.stepItem(1, this.registeredItems.length - 1);\n      }\n    },\n    prevItem() {\n      if (this.termsAsTokens()) {\n        this.stepItem(-1);\n      } else {\n        this.stepItem(-1, 0);\n      }\n    },\n    stepItem(direction, endIdx) {\n      if (!this.termsAsTokens() && (this.activeIdx === endIdx || this.activeIdx === DEFER_TO_INITIAL_VALUE && this.initialActiveIdx === endIdx)) {\n        // The user wants to move past the end of the list, so ensure nothing is selected.\n        this.activeIdx = NO_ACTIVE_ITEM;\n      } else {\n        const index = this.activeIdx === DEFER_TO_INITIAL_VALUE ?\n        // Currently active item is set by initialValue (i.e., text input matching),\n        // so step relative to that.\n        this.initialActiveIdx :\n        // Otherwise, step relative to the explicitly (via up/down arrows) activated item.\n        this.activeIdx;\n        this.activeIdx = stepIndexAndWrap(index, direction, this.registeredItems.length);\n      }\n    },\n    getValue() {\n      return this.activeItem ? this.activeItem.value : null;\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{class:_vm.listClasses},[_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n","import last from 'lodash/last';\nimport { Portal } from 'portal-vue';\nimport { LEFT_MOUSE_BUTTON } from '../../../utils/constants';\nimport GlFilteredSearchSuggestion from './filtered_search_suggestion';\nimport GlFilteredSearchSuggestionList from './filtered_search_suggestion_list';\nimport { TERM_TOKEN_TYPE, splitOnQuotes, match, wrapTokenInQuotes } from './filtered_search_utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n// We need some helpers to ensure @vue/compat compatibility\n// @vue/compat will render comment nodes for v-if and comments in HTML\n// Also it makes use of fragments - both comments and nodes are Symbols.\n// In Vue3 all of them (Comment, Fragment) are exposed as named exports on vue module\n// However we want to maintain compatibility with Vue2, so taking this hacky approach\n// relying on Symbol.toString()\n\n// I'm keeping this directly here instead of helper to increase probability of\n// fixing ASAP and because I don't want this helper to be reused\n// FIXME: replace with Symbols when we will switch to Vue3\n\nconst isVue3Comment = vnode => {\n  var _vnode$type, _vnode$type$toString;\n  return (vnode === null || vnode === void 0 ? void 0 : (_vnode$type = vnode.type) === null || _vnode$type === void 0 ? void 0 : (_vnode$type$toString = _vnode$type.toString) === null || _vnode$type$toString === void 0 ? void 0 : _vnode$type$toString.call(_vnode$type)) === 'Symbol(Comment)';\n};\nconst isVue3Fragment = vnode => {\n  var _vnode$type2, _vnode$type2$toString;\n  return (vnode === null || vnode === void 0 ? void 0 : (_vnode$type2 = vnode.type) === null || _vnode$type2 === void 0 ? void 0 : (_vnode$type2$toString = _vnode$type2.toString) === null || _vnode$type2$toString === void 0 ? void 0 : _vnode$type2$toString.call(_vnode$type2)) === 'Symbol(Fragment)';\n};\nconst isVNodeEmpty = vnode => {\n  if (isVue3Fragment(vnode)) {\n    // vnode.children might be an array or single node in edge cases\n    return Array.isArray(vnode.children) ?\n    // eslint-disable-next-line unicorn/no-array-callback-reference\n    vnode.children.every(isVNodeEmpty) : isVNodeEmpty(vnode.children);\n  }\n  if (isVue3Comment(vnode)) {\n    return true;\n  }\n  return false;\n};\nconst isSlotNotEmpty = slot => {\n  if (!slot) {\n    return false;\n  }\n  const vnodes = typeof slot === 'function' ? slot() : slot;\n  // eslint-disable-next-line unicorn/no-array-callback-reference\n  return !(Array.isArray(vnodes) ? vnodes.every(isVNodeEmpty) : isVNodeEmpty(vnodes));\n};\nvar script = {\n  name: 'GlFilteredSearchTokenSegment',\n  components: {\n    Portal,\n    GlFilteredSearchSuggestionList,\n    GlFilteredSearchSuggestion\n  },\n  inject: ['portalName', 'alignSuggestions', 'termsAsTokens'],\n  inheritAttrs: false,\n  props: {\n    /**\n     * If this token segment is currently being edited.\n     */\n    active: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    isTerm: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    label: {\n      type: String,\n      required: false,\n      default: 'Search'\n    },\n    multiSelect: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    options: {\n      type: Array,\n      required: false,\n      default: () => null\n    },\n    optionTextField: {\n      type: String,\n      required: false,\n      default: 'title'\n    },\n    customInputKeydownHandler: {\n      type: Function,\n      required: false,\n      default: () => () => false\n    },\n    /**\n     * Current term value\n     */\n    value: {\n      required: true,\n      validator: () => true\n    },\n    /**\n     * HTML attributes to add to the search input\n     */\n    searchInputAttributes: {\n      type: Object,\n      required: false,\n      default: () => ({})\n    },\n    /**\n     * If this is the last token\n     */\n    isLastToken: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    currentValue: {\n      type: Array,\n      required: false,\n      default: () => []\n    },\n    cursorPosition: {\n      type: String,\n      required: false,\n      default: 'end',\n      validator: value => ['start', 'end'].includes(value)\n    },\n    viewOnly: {\n      type: Boolean,\n      required: false,\n      default: false\n    }\n  },\n  data() {\n    return {\n      fallbackValue: this.value\n    };\n  },\n  computed: {\n    hasTermSuggestion() {\n      if (!this.termsAsTokens()) return false;\n      if (!this.options) return false;\n      return this.options.some(_ref => {\n        let {\n          value\n        } = _ref;\n        return value === TERM_TOKEN_TYPE;\n      });\n    },\n    matchingOption() {\n      var _this$options;\n      return (_this$options = this.options) === null || _this$options === void 0 ? void 0 : _this$options.find(o => o.value === this.value);\n    },\n    nonMultipleValue() {\n      return Array.isArray(this.value) ? last(this.value) : this.value;\n    },\n    inputValue: {\n      get() {\n        if (this.isTerm) {\n          return this.nonMultipleValue;\n        }\n        return this.matchingOption ? this.matchingOption[this.optionTextField] : this.nonMultipleValue;\n      },\n      set(inputValue) {\n        /**\n         * Emitted when this token segment's value changes.\n         *\n         * @type {object} option The current option.\n         */\n        this.$emit('input', inputValue);\n      }\n    },\n    hasOptionsOrSuggestions() {\n      var _this$options2;\n      // eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots\n      return ((_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.length) || isSlotNotEmpty(this.$slots.suggestions);\n    },\n    defaultSuggestedValue() {\n      var _this$options$;\n      if (!this.options) {\n        return this.nonMultipleValue;\n      }\n      if (this.value) {\n        const option = this.getMatchingOptionForInputValue(this.inputValue) || this.getMatchingOptionForInputValue(this.inputValue, {\n          loose: true\n        });\n        if (option) return option.value;\n        if (this.hasTermSuggestion) return TERM_TOKEN_TYPE;\n        return null;\n      }\n      const defaultOption = this.options.find(op => op.default);\n      if (defaultOption) {\n        return defaultOption.value;\n      }\n      return this.isTerm ? undefined : (_this$options$ = this.options[0]) === null || _this$options$ === void 0 ? void 0 : _this$options$.value;\n    },\n    containerAttributes() {\n      return this.isLastToken && !this.active && this.currentValue.length > 1 && this.searchInputAttributes;\n    }\n  },\n  watch: {\n    active: {\n      immediate: true,\n      handler(newValue) {\n        if (newValue) {\n          this.activate();\n        } else {\n          this.deactivate();\n        }\n      }\n    },\n    inputValue(newValue) {\n      if (this.termsAsTokens()) return;\n      if (this.multiSelect) return;\n\n      /**\n       * This is a temporary workaround to implement the same behaviour\n       * implemented in https://gitlab.com/gitlab-org/gitlab-ui/-/issues/2381\n       * for tokens with `terms-as-tokens=false` and `multi-select=false`.\n       *\n       * We're aiming to remove this temporary fix when\n       * https://gitlab.com/groups/gitlab-org/-/epics/15948 gets completed, as\n       * that refactoring will use the `@input` handler on the GlFilteredSearch\n       * component to handle tokens instead of doing workarounds.\n       */\n      if (typeof newValue !== 'string') return;\n      const hasUnclosedQuote = newValue.split('\"').length % 2 === 0;\n      if (newValue.indexOf(' ') === -1 || hasUnclosedQuote) {\n        return;\n      }\n      const [firstWord, ...otherWords] = splitOnQuotes(newValue).filter((w, idx, arr) => Boolean(w) || idx === arr.length - 1);\n      this.$emit('input', firstWord);\n      if (otherWords.length) {\n        /**\n         * Emitted when Space appears in token segment value\n         * @property {array|string} newStrings New strings to be converted into term tokens\n         */\n        this.$emit('split', otherWords);\n      }\n    }\n  },\n  methods: {\n    emitIfInactive(e) {\n      if (e.button === LEFT_MOUSE_BUTTON && !this.active) {\n        /**\n         * Emitted on mousedown event on the main component.\n         */\n        this.$emit('activate');\n        e.preventDefault();\n      }\n    },\n    getMatchingOptionForInputValue(inputValue) {\n      var _this$options3;\n      let {\n        loose\n      } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        loose: false\n      };\n      return (_this$options3 = this.options) === null || _this$options3 === void 0 ? void 0 : _this$options3.find(option => loose ? match(option[this.optionTextField], inputValue) : option[this.optionTextField] === inputValue);\n    },\n    activate() {\n      this.fallbackValue = this.value;\n      this.$nextTick(() => {\n        const {\n          input\n        } = this.$refs;\n        if (input) {\n          input.focus();\n          input.scrollIntoView({\n            block: 'nearest',\n            inline: 'end'\n          });\n          this.alignSuggestions(input);\n          if (this.cursorPosition === 'start') {\n            input === null || input === void 0 ? void 0 : input.setSelectionRange(0, 0);\n          }\n        }\n      });\n    },\n    deactivate() {\n      var _this$matchingOption;\n      if (!this.options || this.isTerm) {\n        return;\n      }\n      if (((_this$matchingOption = this.matchingOption) === null || _this$matchingOption === void 0 ? void 0 : _this$matchingOption.value) !== this.value) {\n        this.$emit('input', this.fallbackValue);\n      }\n    },\n    applySuggestion(suggestedValue) {\n      const formattedSuggestedValue = this.termsAsTokens() ? suggestedValue : wrapTokenInQuotes(suggestedValue);\n\n      /**\n       * Emitted when autocomplete entry is selected.\n       *\n       * @type {string} value The selected value.\n       */\n      this.$emit('select', formattedSuggestedValue);\n      if (!this.multiSelect) {\n        this.$emit('input', formattedSuggestedValue === TERM_TOKEN_TYPE ? this.inputValue : formattedSuggestedValue);\n        this.$emit('complete', formattedSuggestedValue);\n      }\n    },\n    handleInputKeydown(e) {\n      const {\n        key\n      } = e;\n      const {\n        suggestions,\n        input\n      } = this.$refs;\n      const suggestedValue = suggestions === null || suggestions === void 0 ? void 0 : suggestions.getValue();\n      const handlers = {\n        ArrowLeft: () => {\n          if (input.selectionStart === 0) {\n            e.preventDefault();\n            this.$emit('previous');\n          }\n        },\n        ArrowRight: () => {\n          if (input.selectionEnd === this.inputValue.length) {\n            e.preventDefault();\n            this.$emit('next');\n          }\n        },\n        Backspace: () => {\n          if (this.inputValue === '') {\n            e.preventDefault();\n            /**\n             * Emitted when Backspace is pressed and the value is empty\n             */\n            this.$emit('backspace');\n          }\n        },\n        Enter: () => {\n          e.preventDefault();\n          if (suggestedValue != null) {\n            this.applySuggestion(suggestedValue);\n          } else {\n            /**\n             * Emitted when Enter is pressed and no suggestion is selected\n             */\n            this.$emit('submit');\n          }\n        },\n        ':': () => {\n          if (suggestedValue != null) {\n            e.preventDefault();\n            this.applySuggestion(suggestedValue);\n          }\n        },\n        Escape: () => {\n          e.preventDefault();\n          /**\n           * Emitted when suggestion is selected from the suggestion list\n           */\n          this.$emit('complete');\n        }\n      };\n      const suggestionsHandlers = {\n        ArrowDown: () => suggestions.nextItem(),\n        Down: () => suggestions.nextItem(),\n        ArrowUp: () => suggestions.prevItem(),\n        Up: () => suggestions.prevItem()\n      };\n      if (this.hasOptionsOrSuggestions) {\n        Object.assign(handlers, suggestionsHandlers);\n      }\n      if (Object.keys(handlers).includes(key)) {\n        handlers[key]();\n        return;\n      }\n      this.customInputKeydownHandler(e, {\n        suggestedValue,\n        inputValue: this.inputValue,\n        applySuggestion: v => this.applySuggestion(v)\n      });\n    },\n    handleBlur() {\n      if (this.multiSelect) {\n        this.$emit('complete');\n      } else if (this.active) {\n        /**\n         * Emitted when this term token will lose its focus.\n         */\n        this.$emit('deactivate');\n      }\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._g(_vm._b({staticClass:\"gl-filtered-search-token-segment\",class:{\n    'gl-filtered-search-token-segment-active': _vm.active,\n    '!gl-cursor-text': _vm.viewOnly,\n  },attrs:{\"data-testid\":\"filtered-search-token-segment\"}},'div',_vm.containerAttributes,false),_vm.viewOnly ? {} : { mousedown: _vm.emitIfInactive }),[(_vm.active)?[_vm._t(\"before-input\",null,null,{ submitValue: _vm.applySuggestion }),_vm._v(\" \"),(((_vm.searchInputAttributes).type)==='checkbox')?_c('input',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputValue),expression:\"inputValue\"}],ref:\"input\",staticClass:\"gl-filtered-search-token-segment-input\",attrs:{\"data-testid\":\"filtered-search-token-segment-input\",\"aria-label\":_vm.label,\"readonly\":_vm.viewOnly,\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.inputValue)?_vm._i(_vm.inputValue,null)>-1:(_vm.inputValue)},on:{\"keydown\":_vm.handleInputKeydown,\"blur\":_vm.handleBlur,\"change\":function($event){var $$a=_vm.inputValue,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.inputValue=$$a.concat([$$v]));}else {$$i>-1&&(_vm.inputValue=$$a.slice(0,$$i).concat($$a.slice($$i+1)));}}else {_vm.inputValue=$$c;}}}},'input',_vm.searchInputAttributes,false)):(((_vm.searchInputAttributes).type)==='radio')?_c('input',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputValue),expression:\"inputValue\"}],ref:\"input\",staticClass:\"gl-filtered-search-token-segment-input\",attrs:{\"data-testid\":\"filtered-search-token-segment-input\",\"aria-label\":_vm.label,\"readonly\":_vm.viewOnly,\"type\":\"radio\"},domProps:{\"checked\":_vm._q(_vm.inputValue,null)},on:{\"keydown\":_vm.handleInputKeydown,\"blur\":_vm.handleBlur,\"change\":function($event){_vm.inputValue=null;}}},'input',_vm.searchInputAttributes,false)):_c('input',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputValue),expression:\"inputValue\"}],ref:\"input\",staticClass:\"gl-filtered-search-token-segment-input\",attrs:{\"data-testid\":\"filtered-search-token-segment-input\",\"aria-label\":_vm.label,\"readonly\":_vm.viewOnly,\"type\":(_vm.searchInputAttributes).type},domProps:{\"value\":(_vm.inputValue)},on:{\"keydown\":_vm.handleInputKeydown,\"blur\":_vm.handleBlur,\"input\":function($event){if($event.target.composing){ return; }_vm.inputValue=$event.target.value;}}},'input',_vm.searchInputAttributes,false)),_vm._v(\" \"),_c('portal',{key:(\"operator-\" + _vm._uid),attrs:{\"to\":_vm.portalName}},[(_vm.hasOptionsOrSuggestions)?_c('gl-filtered-search-suggestion-list',{key:(\"operator-\" + _vm._uid),ref:\"suggestions\",attrs:{\"initial-value\":_vm.defaultSuggestedValue},on:{\"suggestion\":_vm.applySuggestion}},[(_vm.options)?_vm._l((_vm.options),function(option,idx){return _c('gl-filtered-search-suggestion',{key:((option.value) + \"-\" + idx),attrs:{\"value\":option.value,\"icon-name\":option.icon}},[_vm._t(\"option\",function(){return [(option.component)?[_c(option.component,{tag:\"component\",attrs:{\"option\":option}})]:[_vm._v(\"\\n                \"+_vm._s(option[_vm.optionTextField])+\"\\n              \")]]},null,{ option: option })],2)}):_vm._t(\"suggestions\")],2):_vm._e()],1)]:_vm._t(\"view\",function(){return [_vm._v(_vm._s(_vm.inputValue))]},null,{ label: _vm.label, inputValue: _vm.inputValue })],2)};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n","import first from 'lodash/first';\nimport last from 'lodash/last';\nimport isString from 'lodash/isString';\nimport { modulo } from '../../../utils/number_utils';\n\nconst TERM_TOKEN_TYPE = 'filtered-search-term';\nconst INTENT_ACTIVATE_PREVIOUS = 'intent-activate-previous';\nconst TOKEN_CLOSE_SELECTOR = '.gl-token-close';\nfunction isEmptyTerm(token) {\n  return token.type === TERM_TOKEN_TYPE && token.value.data.trim() === '';\n}\nfunction normalizeTokens(tokens) {\n  const result = [];\n  tokens.forEach(token => {\n    if (isEmptyTerm(token)) {\n      return;\n    }\n    if (token.type !== TERM_TOKEN_TYPE) {\n      result.push({\n        ...token\n      });\n    } else if (result.length > 0 && typeof result[result.length - 1] === 'string') {\n      result[result.length - 1] += ` ${token.value.data}`;\n    } else {\n      result.push(token.value.data);\n    }\n  });\n  return result;\n}\nfunction assertValidTokens(tokens) {\n  if (!Array.isArray(tokens) && !typeof tokens === 'string') {\n    throw new TypeError('Either string or array of tokens is expected');\n  }\n}\nfunction needDenormalization(tokens) {\n  if (typeof tokens === 'string') {\n    return true;\n  }\n  assertValidTokens(tokens);\n  return tokens.some(t => typeof t === 'string' || !t.id);\n}\n\n/**\n * Given an initial index, step size and array length, returns an index that is\n * within the array bounds (unless step is 0; see † below).\n *\n * The step can be any positive or negative integer, including zero.\n *\n * An out-of-bounds index is considered 'uninitialised', and is handled\n * specially. For instance, the 'next' index of 'uninitialised' is the first\n * index:\n *\n *     stepIndexAndWrap(-1, 1, 5) === 0\n *\n * The 'previous' index of 'uninitialised' is the last index:\n *\n *     stepIndexAndWrap(-1, -1, 5) === 4\n *\n * †: If step is 0, the index is returned as-is, which may be out-of-bounds.\n *\n * @param {number} index The initial index.\n * @param {number} step The amount to step by (positive or negative).\n * @param {number} length The length of the array.\n * @returns {number}\n */\nfunction stepIndexAndWrap(index, step, length) {\n  if (step === 0) return index;\n  let start;\n  const indexInRange = index >= 0 && index < length;\n  if (indexInRange) {\n    // Step from the valid index.\n    start = index;\n  } else if (step > 0) {\n    // Step forwards from the beginning of the array.\n    start = -1;\n  } else {\n    // Step backwards from the end of the array.\n    start = length;\n  }\n  return modulo(start + step, length);\n}\n\n/**\n * Transforms a given token definition to an option definition.\n *\n * @param {Object} token A token definition (see GlFilteredSearch's\n *     availableTokens prop).\n * @returns {Object} A option definition (see GlFilteredSearchTokenSegment's\n *     options prop).\n */\nfunction tokenToOption(_ref) {\n  let {\n    icon,\n    title,\n    type,\n    optionComponent\n  } = _ref;\n  return {\n    icon,\n    title,\n    value: type,\n    component: optionComponent\n  };\n}\nlet tokenIdCounter = 0;\nconst getTokenId = () => {\n  const tokenId = `token-${tokenIdCounter}`;\n  tokenIdCounter += 1;\n  return tokenId;\n};\n/**\n * Ensure the given token has an `id` property, which `GlFilteredSearch` relies\n * on as a unique key for the token.\n *\n * If the given token does not have an `id`, it returns a shallow copy of the\n * token with an `id`. Otherwise, it returns the given token.\n *\n * @param {object} token The token to check.\n * @returns {object} A token with an `id`.\n */\nfunction ensureTokenId(token) {\n  if (!token.id) {\n    return {\n      ...token,\n      id: getTokenId()\n    };\n  }\n  return token;\n}\nfunction createTerm() {\n  let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n  return {\n    id: getTokenId(),\n    type: TERM_TOKEN_TYPE,\n    value: {\n      data\n    }\n  };\n}\nfunction denormalizeTokens(inputTokens) {\n  let termsAsTokens = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  assertValidTokens(inputTokens);\n  const tokens = Array.isArray(inputTokens) ? inputTokens : [inputTokens];\n  return tokens.reduce((result, t) => {\n    if (typeof t === 'string') {\n      if (termsAsTokens) {\n        const trimmedText = t.trim();\n        if (trimmedText) result.push(createTerm(trimmedText));\n      } else {\n        const stringTokens = t.split(' ').filter(Boolean);\n        stringTokens.forEach(strToken => result.push(createTerm(strToken)));\n      }\n    } else {\n      result.push(ensureTokenId(t));\n    }\n    return result;\n  }, []);\n}\n\n/**\n * Returns `true` if `text` contains `query` (case insensitive).\n *\n * This is used in `filter` and `find` array methods for token segment options.\n *\n * @param {string} text The string to look within.\n * @param {string} query The string to find inside the text.\n * @returns {boolean}\n */\nfunction match(text, query) {\n  return text.toLowerCase().includes(query.toLowerCase());\n}\nconst termTokenDefinition = {\n  type: TERM_TOKEN_TYPE,\n  icon: 'title',\n  title: 'Search for this text'\n};\nfunction splitOnQuotes(str) {\n  if (first(str) === \"'\" && last(str) === \"'\") {\n    return [str];\n  }\n  if (first(str) === '\"' && last(str) === '\"') {\n    return [str];\n  }\n  const queue = str.split(' ');\n  const result = [];\n  let waitingForMatchingQuote = false;\n  let quoteContent = '';\n  while (queue.length) {\n    const part = queue.shift();\n    const quoteIndex = part.indexOf('\"');\n    if (quoteIndex === -1) {\n      if (waitingForMatchingQuote) {\n        quoteContent += ` ${part}`;\n      } else {\n        result.push(part);\n      }\n    } else {\n      const [firstPart, secondPart] = part.split('\"', 2);\n      if (waitingForMatchingQuote) {\n        waitingForMatchingQuote = false;\n        quoteContent += ` ${firstPart}\"`;\n        result.push(quoteContent);\n        quoteContent = '';\n        if (secondPart.length) {\n          queue.unshift(secondPart);\n        }\n      } else {\n        waitingForMatchingQuote = true;\n        if (firstPart.length) {\n          result.push(firstPart);\n        }\n        quoteContent = `\"${secondPart}`;\n      }\n    }\n  }\n  return result;\n}\n\n/**\n *  wraps the incoming token in double quotes.\n *  Eg. Foo Bar becomes \"Foo Bar\"\n *\n *  1. token must have space.\n *  2. token should not already have a quote around it.\n */\nfunction wrapTokenInQuotes(token) {\n  if (!isString(token)) {\n    return token;\n  }\n  if (!token.includes(' ')) {\n    return token;\n  }\n  const quotes = [\"'\", '\"'];\n\n  // If the token starts and ends with a quote, eg. \"Foo Bar\", then return the original token.\n  if (quotes.some(quote => first(token) === quote && last(token) === quote)) {\n    return token;\n  }\n  return `\"${token}\"`;\n}\n\nexport { INTENT_ACTIVATE_PREVIOUS, TERM_TOKEN_TYPE, TOKEN_CLOSE_SELECTOR, createTerm, denormalizeTokens, ensureTokenId, isEmptyTerm, match, needDenormalization, normalizeTokens, splitOnQuotes, stepIndexAndWrap, termTokenDefinition, tokenToOption, wrapTokenInQuotes };\n","import GlDropdownItem from '../dropdown/dropdown_item';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n  name: 'GlFilteredSearchSuggestion',\n  components: {\n    GlDropdownItem\n  },\n  inject: ['filteredSearchSuggestionListInstance'],\n  inheritAttrs: false,\n  props: {\n    /**\n     * Value that will be emitted if this suggestion is selected.\n     */\n    value: {\n      required: true,\n      validator: () => true\n    }\n  },\n  computed: {\n    isActive() {\n      return this.filteredSearchSuggestionListInstance.activeItem === this;\n    }\n  },\n  watch: {\n    isActive(newValue) {\n      if (newValue) {\n        window.requestAnimationFrame(() => {\n          var _this$$refs$item, _this$$refs$item$$el;\n          (_this$$refs$item = this.$refs.item) === null || _this$$refs$item === void 0 ? void 0 : (_this$$refs$item$$el = _this$$refs$item.$el) === null || _this$$refs$item$$el === void 0 ? void 0 : _this$$refs$item$$el.scrollIntoView({\n            block: 'nearest',\n            inline: 'end'\n          });\n        });\n      }\n    }\n  },\n  created() {\n    this.filteredSearchSuggestionListInstance.register(this);\n  },\n  beforeDestroy() {\n    this.filteredSearchSuggestionListInstance.unregister(this);\n  },\n  methods: {\n    emitValue() {\n      // We use href argument for gl-dropdown-item to use <a> instead of <button>\n      // due to https://bugs.webkit.org/show_bug.cgi?id=22261\n      this.filteredSearchSuggestionListInstance.$emit('suggestion', this.value);\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-dropdown-item',_vm._b({ref:\"item\",staticClass:\"gl-filtered-search-suggestion\",class:{ 'gl-filtered-search-suggestion-active': _vm.isActive },attrs:{\"data-testid\":\"filtered-search-suggestion\",\"tabindex\":\"-1\",\"href\":\"#\"},nativeOn:{\"mousedown\":function($event){$event.preventDefault();return _vm.emitValue.apply(null, arguments)}}},'gl-dropdown-item',_vm.$attrs,false),[_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n","import cloneDeep from 'lodash/cloneDeep';\nimport isEqual from 'lodash/isEqual';\nimport GlToken from '../token/token';\nimport { stopEvent } from '../../../utils/utils';\nimport GlFilteredSearchTokenSegment from './filtered_search_token_segment';\nimport { tokenToOption, createTerm, TOKEN_CLOSE_SELECTOR } from './filtered_search_utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst SEGMENT_TITLE = 'TYPE';\nconst SEGMENT_OPERATOR = 'OPERATOR';\nconst SEGMENT_DATA = 'DATA';\nconst DEFAULT_OPERATORS = [{\n  value: '=',\n  description: 'is',\n  default: true\n}, {\n  value: '!=',\n  description: 'is not'\n}];\nvar script = {\n  name: 'GlFilteredSearchToken',\n  // FIXME: temporary workaround to ensure compatibility with @vue/compat\n  __v_skip: true,\n  components: {\n    GlToken,\n    GlFilteredSearchTokenSegment\n  },\n  inheritAttrs: false,\n  props: {\n    availableTokens: {\n      type: Array,\n      required: false,\n      default: () => []\n    },\n    /**\n     * Token configuration with available operators and options.\n     */\n    config: {\n      type: Object,\n      required: false,\n      default: () => ({})\n    },\n    /**\n     * Determines if the token is being edited or not.\n     */\n    active: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    multiSelectValues: {\n      type: Array,\n      required: false,\n      default: () => []\n    },\n    /**\n     * Current token value.\n     */\n    value: {\n      type: Object,\n      required: false,\n      default: () => ({\n        operator: '',\n        data: ''\n      })\n    },\n    /**\n     * Display operators' descriptions instead of their values (e.g., \"is\" instead of \"=\").\n     */\n    showFriendlyText: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    cursorPosition: {\n      type: String,\n      required: false,\n      default: 'end',\n      validator: value => ['start', 'end'].includes(value)\n    },\n    viewOnly: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    dataSegmentInputAttributes: {\n      type: Object,\n      required: false,\n      default: () => ({})\n    }\n  },\n  data() {\n    return {\n      activeSegment: null,\n      tokenValue: cloneDeep(this.value),\n      intendedCursorPosition: this.cursorPosition\n    };\n  },\n  computed: {\n    operators() {\n      return this.config.operators || DEFAULT_OPERATORS;\n    },\n    tokenEmpty() {\n      var _this$tokenValue$data;\n      return ((_this$tokenValue$data = this.tokenValue.data) === null || _this$tokenValue$data === void 0 ? void 0 : _this$tokenValue$data.length) === 0;\n    },\n    hasDataOrDataSegmentIsCurrentlyActive() {\n      const hasData = !this.tokenEmpty;\n      return hasData || this.isSegmentActive(SEGMENT_DATA);\n    },\n    availableTokensWithSelf() {\n      return [this.config, ...this.availableTokens.filter(token => token !== this.config)].map(\n      // eslint-disable-next-line unicorn/no-array-callback-reference\n      tokenToOption);\n    },\n    operatorDescription() {\n      const operator = this.operators.find(op => op.value === this.tokenValue.operator);\n      return this.showFriendlyText ? operator === null || operator === void 0 ? void 0 : operator.description : operator === null || operator === void 0 ? void 0 : operator.value;\n    },\n    eventListeners() {\n      return this.viewOnly ? {} : {\n        mousedown: this.stopMousedownOnCloseButton,\n        close: this.destroyByClose\n      };\n    }\n  },\n  segments: {\n    SEGMENT_TITLE,\n    SEGMENT_DATA,\n    SEGMENT_OPERATOR\n  },\n  watch: {\n    tokenValue: {\n      deep: true,\n      handler(newValue) {\n        /**\n         * Emitted when the token changes its value.\n         *\n         * @event input\n         * @type {object} dataObj Object containing the update value.\n         */\n        this.$emit('input', newValue);\n      }\n    },\n    value: {\n      handler(newValue, oldValue) {\n        if (isEqual(newValue === null || newValue === void 0 ? void 0 : newValue.data, oldValue === null || oldValue === void 0 ? void 0 : oldValue.data) && (newValue === null || newValue === void 0 ? void 0 : newValue.operator) === (oldValue === null || oldValue === void 0 ? void 0 : oldValue.operator)) {\n          return;\n        }\n        this.tokenValue = cloneDeep(newValue);\n      }\n    },\n    active: {\n      immediate: true,\n      handler(tokenIsActive) {\n        if (tokenIsActive) {\n          this.intendedCursorPosition = this.cursorPosition;\n          if (!this.activeSegment) {\n            this.activateSegment(this.tokenEmpty ? SEGMENT_OPERATOR : SEGMENT_DATA);\n          }\n        } else {\n          this.activeSegment = null;\n\n          // restore multi select values if we have them\n          // otherwise destroy the token\n          if (this.config.multiSelect) {\n            this.$emit('input', {\n              ...this.tokenValue,\n              data: this.multiSelectValues || ''\n            });\n          }\n          if (this.tokenEmpty && this.multiSelectValues.length === 0) {\n            /**\n             * Emitted when token is about to be destroyed.\n             *\n             * @event destroy\n             */\n            this.$emit('destroy');\n          }\n        }\n      }\n    }\n  },\n  created() {\n    if (!('operator' in this.tokenValue)) {\n      if (this.operators.length === 1) {\n        const operator = this.operators[0].value;\n        this.$emit('input', {\n          ...this.tokenValue,\n          operator\n        });\n        this.activeSegment = SEGMENT_DATA;\n      } else {\n        this.$emit('input', {\n          ...this.tokenValue,\n          operator: ''\n        });\n      }\n    }\n  },\n  methods: {\n    activateSegment(segment) {\n      if (this.viewOnly) return;\n      this.activeSegment = segment;\n      if (!this.active) {\n        /**\n         * Emitted when this term token is clicked.\n         *\n         * @event activate\n         */\n        this.$emit('activate');\n      }\n    },\n    getAdditionalSegmentClasses(segment) {\n      if (this.viewOnly) {\n        return 'gl-cursor-text';\n      }\n      return {\n        'gl-cursor-pointer': !this.isSegmentActive(segment)\n      };\n    },\n    isSegmentActive(segment) {\n      return this.active && this.activeSegment === segment;\n    },\n    replaceWithTermIfEmpty() {\n      if (this.tokenValue.operator === '' && this.tokenEmpty) {\n        /**\n         * Emitted when this token is converted to another type\n         * @property {object} token Replacement token configuration\n         */\n        this.$emit('replace', createTerm(this.config.title));\n      }\n    },\n    replaceToken(newType) {\n      const newTokenConfig = this.availableTokens.find(_ref => {\n        let {\n          type\n        } = _ref;\n        return type === newType;\n      });\n      if (newTokenConfig === this.config) {\n        this.$nextTick(() => {\n          /**\n           * Emitted when this term token will lose its focus.\n           *\n           * @event deactivate\n           */\n          this.$emit('deactivate');\n        });\n        return;\n      }\n      if (newTokenConfig) {\n        const isCompatible = this.config.dataType && this.config.dataType === newTokenConfig.dataType;\n        this.$emit('replace', {\n          type: newTokenConfig.type,\n          value: isCompatible ? this.tokenValue : {\n            data: ''\n          }\n        });\n      }\n    },\n    handleOperatorKeydown(evt, _ref2) {\n      let {\n        inputValue,\n        suggestedValue,\n        applySuggestion\n      } = _ref2;\n      const {\n        key\n      } = evt;\n      if (key === ' ' || key === 'Spacebar') {\n        applySuggestion(suggestedValue);\n        return;\n      }\n      const potentialValue = `${inputValue}${key}`;\n      if (key.length === 1 && !this.operators.find(_ref3 => {\n        let {\n          value\n        } = _ref3;\n        return value.startsWith(potentialValue);\n      })) {\n        if (this.tokenEmpty) {\n          applySuggestion(suggestedValue);\n        } else {\n          evt.preventDefault();\n        }\n      }\n    },\n    activateDataSegment() {\n      if (this.config.multiSelect) {\n        this.$emit('input', {\n          ...this.tokenValue,\n          data: ''\n        });\n      }\n      this.activateSegment(this.$options.segments.SEGMENT_DATA);\n    },\n    activatePreviousOperatorSegment() {\n      this.activateSegment(this.$options.segments.SEGMENT_OPERATOR);\n      this.intendedCursorPosition = 'end';\n    },\n    activatePreviousTitleSegment() {\n      this.activateSegment(this.$options.segments.SEGMENT_TITLE);\n      this.intendedCursorPosition = 'end';\n    },\n    activateNextDataSegment() {\n      this.activateDataSegment();\n      this.intendedCursorPosition = 'start';\n    },\n    activateNextOperatorSegment() {\n      this.activateSegment(this.$options.segments.SEGMENT_OPERATOR);\n      this.intendedCursorPosition = 'start';\n    },\n    handleComplete(value) {\n      /**\n       * Emitted when the token entry has been completed.\n       *\n       * @event complete\n       */\n      this.$emit('complete', value);\n    },\n    stopMousedownOnCloseButton(event) {\n      if (event.target.closest(TOKEN_CLOSE_SELECTOR)) {\n        stopEvent(event);\n      }\n    },\n    destroyByClose() {\n      this.$emit('destroy');\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-filtered-search-token\",class:{\n    'gl-filtered-search-token-active': _vm.active,\n    'gl-filtered-search-token-hover': !_vm.viewOnly,\n    'gl-cursor-default': _vm.viewOnly,\n  },attrs:{\"data-testid\":\"filtered-search-token\"}},[_c('gl-filtered-search-token-segment',{key:\"title-segment\",attrs:{\"value\":_vm.config.title,\"active\":_vm.isSegmentActive(_vm.$options.segments.SEGMENT_TITLE),\"cursor-position\":_vm.intendedCursorPosition,\"options\":_vm.availableTokensWithSelf,\"view-only\":_vm.viewOnly},on:{\"activate\":function($event){return _vm.activateSegment(_vm.$options.segments.SEGMENT_TITLE)},\"deactivate\":function($event){return _vm.$emit('deactivate')},\"complete\":_vm.replaceToken,\"backspace\":function($event){return _vm.$emit('destroy')},\"submit\":function($event){return _vm.$emit('submit')},\"previous\":function($event){return _vm.$emit('previous')},\"next\":_vm.activateNextOperatorSegment},scopedSlots:_vm._u([{key:\"view\",fn:function(ref){\n  var inputValue = ref.inputValue;\nreturn [_c('gl-token',{staticClass:\"gl-filtered-search-token-type\",class:_vm.getAdditionalSegmentClasses(_vm.$options.segments.SEGMENT_TITLE),attrs:{\"view-only\":\"\"}},[_vm._v(\"\\n        \"+_vm._s(inputValue)+\"\\n      \")])]}}])}),_vm._v(\" \"),_c('gl-filtered-search-token-segment',{key:\"operator-segment\",attrs:{\"active\":_vm.isSegmentActive(_vm.$options.segments.SEGMENT_OPERATOR),\"cursor-position\":_vm.intendedCursorPosition,\"options\":_vm.operators,\"option-text-field\":\"value\",\"custom-input-keydown-handler\":_vm.handleOperatorKeydown,\"view-only\":_vm.viewOnly},on:{\"activate\":function($event){return _vm.activateSegment(_vm.$options.segments.SEGMENT_OPERATOR)},\"backspace\":_vm.replaceWithTermIfEmpty,\"complete\":function($event){return _vm.activateSegment(_vm.$options.segments.SEGMENT_DATA)},\"deactivate\":function($event){return _vm.$emit('deactivate')},\"previous\":_vm.activatePreviousTitleSegment,\"next\":_vm.activateNextDataSegment},scopedSlots:_vm._u([{key:\"view\",fn:function(){return [_c('gl-token',{staticClass:\"gl-filtered-search-token-operator\",class:_vm.getAdditionalSegmentClasses(_vm.$options.segments.SEGMENT_OPERATOR),attrs:{\"variant\":\"search-value\",\"view-only\":\"\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.operatorDescription)+\"\\n      \")])]},proxy:true},{key:\"option\",fn:function(ref){\n  var option = ref.option;\nreturn [_c('div',{staticClass:\"gl-flex\"},[_vm._v(\"\\n        \"+_vm._s(_vm.showFriendlyText ? option.description : option.value)+\"\\n        \"),(option.description)?_c('span',{staticClass:\"gl-filtered-search-token-operator-description\"},[_vm._v(\"\\n          \"+_vm._s(_vm.showFriendlyText ? option.value : option.description)+\"\\n        \")]):_vm._e()])]}}]),model:{value:(_vm.tokenValue.operator),callback:function ($$v) {_vm.$set(_vm.tokenValue, \"operator\", $$v);},expression:\"tokenValue.operator\"}}),_vm._v(\" \"),(_vm.hasDataOrDataSegmentIsCurrentlyActive)?_c('gl-filtered-search-token-segment',{key:\"data-segment\",attrs:{\"active\":_vm.isSegmentActive(_vm.$options.segments.SEGMENT_DATA),\"cursor-position\":_vm.intendedCursorPosition,\"multi-select\":_vm.config.multiSelect,\"options\":_vm.config.options,\"view-only\":_vm.viewOnly,\"search-input-attributes\":_vm.dataSegmentInputAttributes},on:{\"activate\":_vm.activateDataSegment,\"backspace\":function($event){return _vm.activateSegment(_vm.$options.segments.SEGMENT_OPERATOR)},\"complete\":_vm.handleComplete,\"select\":function($event){return _vm.$emit('select', $event)},\"submit\":function($event){return _vm.$emit('submit')},\"deactivate\":function($event){return _vm.$emit('deactivate')},\"split\":function($event){return _vm.$emit('split', $event)},\"previous\":_vm.activatePreviousOperatorSegment,\"next\":function($event){return _vm.$emit('next')}},scopedSlots:_vm._u([{key:\"before-input\",fn:function(scope){return [_vm._t(\"before-data-segment-input\",null,null,scope)]}},{key:\"suggestions\",fn:function(){return [_vm._t(\"suggestions\")]},proxy:true},{key:\"view\",fn:function(ref){\n  var inputValue = ref.inputValue;\nreturn [_vm._t(\"view-token\",function(){return [_c('gl-token',_vm._g({staticClass:\"gl-filtered-search-token-data\",class:_vm.getAdditionalSegmentClasses(_vm.$options.segments.SEGMENT_DATA),attrs:{\"variant\":\"search-value\",\"view-only\":_vm.viewOnly}},_vm.eventListeners),[_c('span',{staticClass:\"gl-filtered-search-token-data-content\"},[_vm._t(\"view\",function(){return [_vm._v(_vm._s(inputValue))]},null,{ inputValue: inputValue })],2)])]},null,{\n          inputValue: inputValue,\n          listeners: _vm.eventListeners,\n          cssClasses: Object.assign({}, {'gl-filtered-search-token-data': true},\n            _vm.getAdditionalSegmentClasses(_vm.$options.segments.SEGMENT_DATA)),\n        })]}}],null,true),model:{value:(_vm.tokenValue.data),callback:function ($$v) {_vm.$set(_vm.tokenValue, \"data\", $$v);},expression:\"tokenValue.data\"}}):_vm._e()],1)};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n","module.exports = require('./head');\n"],"sourceRoot":""}