{"version":3,"sources":["../../../src/components/VAutocomplete/VAutocomplete.js"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport '../../stylus/components/_autocompletes.styl'\n\n// Extensions\nimport VSelect, { defaultMenuProps as VSelectMenuProps } from '../VSelect/VSelect'\nimport VTextField from '../VTextField/VTextField'\n\n// Utils\nimport { keyCodes } from '../../util/helpers'\n\nconst defaultMenuProps = {\n  ...VSelectMenuProps,\n  offsetY: true,\n  offsetOverflow: true,\n  transition: false\n}\n\n/* @vue/component */\nexport default VSelect.extend({\n  name: 'v-autocomplete',\n\n  props: {\n    allowOverflow: {\n      type: Boolean,\n      default: true\n    },\n    browserAutocomplete: {\n      type: String,\n      default: 'off'\n    },\n    filter: {\n      type: Function,\n      default: (item, queryText, itemText) => {\n        return itemText.toLocaleLowerCase().indexOf(queryText.toLocaleLowerCase()) > -1\n      }\n    },\n    hideNoData: Boolean,\n    noFilter: Boolean,\n    searchInput: {\n      default: undefined\n    },\n    menuProps: {\n      type: VSelect.options.props.menuProps.type,\n      default: () => defaultMenuProps\n    },\n    autoSelectFirst: {\n      type: Boolean,\n      default: false\n    }\n  },\n\n  data: vm => ({\n    attrsInput: null,\n    lazySearch: vm.searchInput\n  }),\n\n  computed: {\n    classes () {\n      return Object.assign({}, VSelect.options.computed.classes.call(this), {\n        'v-autocomplete': true,\n        'v-autocomplete--is-selecting-index': this.selectedIndex > -1\n      })\n    },\n    computedItems () {\n      return this.filteredItems\n    },\n    selectedValues () {\n      return this.selectedItems.map(item => this.getValue(item))\n    },\n    hasDisplayedItems () {\n      return this.hideSelected\n        ? this.filteredItems.some(item => !this.hasItem(item))\n        : this.filteredItems.length > 0\n    },\n    /**\n     * The range of the current input text\n     *\n     * @return {Number}\n     */\n    currentRange () {\n      if (this.selectedItem == null) return 0\n\n      return this.getText(this.selectedItem).toString().length\n    },\n    filteredItems () {\n      if (!this.isSearching || this.noFilter || this.internalSearch == null) return this.allItems\n\n      return this.allItems.filter(item => this.filter(item, this.internalSearch.toString(), this.getText(item).toString()))\n    },\n    internalSearch: {\n      get () {\n        return this.lazySearch\n      },\n      set (val) {\n        this.lazySearch = val\n\n        this.$emit('update:searchInput', val)\n      }\n    },\n    isAnyValueAllowed () {\n      return false\n    },\n    isDirty () {\n      return this.searchIsDirty || this.selectedItems.length > 0\n    },\n    isSearching () {\n      if (this.multiple) return this.searchIsDirty\n\n      return (\n        this.searchIsDirty &&\n        this.internalSearch !== this.getText(this.selectedItem)\n      )\n    },\n    menuCanShow () {\n      if (!this.isFocused) return false\n\n      return this.hasDisplayedItems || !this.hideNoData\n    },\n    $_menuProps () {\n      const props = VSelect.options.computed.$_menuProps.call(this)\n      props.contentClass = `v-autocomplete__content ${props.contentClass || ''}`.trim()\n      return {\n        ...defaultMenuProps,\n        ...props\n      }\n    },\n    searchIsDirty () {\n      return this.internalSearch != null &&\n        this.internalSearch !== ''\n    },\n    selectedItem () {\n      if (this.multiple) return null\n\n      return this.selectedItems.find(i => {\n        return this.valueComparator(this.getValue(i), this.getValue(this.internalValue))\n      })\n    },\n    listData () {\n      const data = VSelect.options.computed.listData.call(this)\n\n      Object.assign(data.props, {\n        items: this.virtualizedItems,\n        noFilter: (\n          this.noFilter ||\n          !this.isSearching ||\n          !this.filteredItems.length\n        ),\n        searchInput: this.internalSearch\n      })\n\n      return data\n    }\n  },\n\n  watch: {\n    filteredItems (val) {\n      this.onFilteredItemsChanged(val)\n    },\n    internalValue () {\n      this.setSearch()\n    },\n    isFocused (val) {\n      if (val) {\n        this.$refs.input &&\n          this.$refs.input.select()\n      } else {\n        this.updateSelf()\n      }\n    },\n    isMenuActive (val) {\n      if (val || !this.hasSlot) return\n\n      this.lazySearch = null\n    },\n    items (val, oldVal) {\n      // If we are focused, the menu\n      // is not active, hide no data is enabled,\n      // and items change\n      // User is probably async loading\n      // items, try to activate the menu\n      if (\n        !(oldVal && oldVal.length) &&\n        this.hideNoData &&\n        this.isFocused &&\n        !this.isMenuActive &&\n        val.length\n      ) this.activateMenu()\n    },\n    searchInput (val) {\n      this.lazySearch = val\n    },\n    internalSearch (val) {\n      this.onInternalSearchChanged(val)\n    },\n    itemText () {\n      this.updateSelf()\n    }\n  },\n\n  created () {\n    this.setSearch()\n  },\n\n  methods: {\n    onFilteredItemsChanged (val) {\n      this.setMenuIndex(-1)\n\n      this.$nextTick(() => {\n        this.setMenuIndex(val.length > 0 && (val.length === 1 || this.autoSelectFirst) ? 0 : -1)\n      })\n    },\n    onInternalSearchChanged (val) {\n      this.updateMenuDimensions()\n    },\n    updateMenuDimensions () {\n      if (this.isMenuActive &&\n        this.$refs.menu\n      ) {\n        this.$refs.menu.updateDimensions()\n      }\n    },\n    changeSelectedIndex (keyCode) {\n      // Do not allow changing of selectedIndex\n      // when search is dirty\n      if (this.searchIsDirty) return\n\n      if (![\n        keyCodes.backspace,\n        keyCodes.left,\n        keyCodes.right,\n        keyCodes.delete\n      ].includes(keyCode)) return\n\n      const indexes = this.selectedItems.length - 1\n\n      if (keyCode === keyCodes.left) {\n        this.selectedIndex = this.selectedIndex === -1\n          ? indexes\n          : this.selectedIndex - 1\n      } else if (keyCode === keyCodes.right) {\n        this.selectedIndex = this.selectedIndex >= indexes\n          ? -1\n          : this.selectedIndex + 1\n      } else if (this.selectedIndex === -1) {\n        this.selectedIndex = indexes\n        return\n      }\n\n      const currentItem = this.selectedItems[this.selectedIndex]\n\n      if ([\n        keyCodes.backspace,\n        keyCodes.delete\n      ].includes(keyCode) &&\n        !this.getDisabled(currentItem)\n      ) {\n        const newIndex = this.selectedIndex === indexes\n          ? this.selectedIndex - 1\n          : this.selectedItems[this.selectedIndex + 1]\n            ? this.selectedIndex\n            : -1\n\n        if (newIndex === -1) {\n          this.setValue(this.multiple ? [] : undefined)\n        } else {\n          this.selectItem(currentItem)\n        }\n\n        this.selectedIndex = newIndex\n      }\n    },\n    clearableCallback () {\n      this.internalSearch = undefined\n\n      VSelect.options.methods.clearableCallback.call(this)\n    },\n    genInput () {\n      const input = VTextField.options.methods.genInput.call(this)\n\n      input.data.attrs.role = 'combobox'\n      input.data.domProps.value = this.internalSearch\n\n      return input\n    },\n    genSelections () {\n      return this.hasSlot || this.multiple\n        ? VSelect.options.methods.genSelections.call(this)\n        : []\n    },\n    onClick () {\n      if (this.isDisabled) return\n\n      this.selectedIndex > -1\n        ? (this.selectedIndex = -1)\n        : this.onFocus()\n\n      this.activateMenu()\n    },\n    onEnterDown () {\n      // Avoid invoking this method\n      // will cause updateSelf to\n      // be called emptying search\n    },\n    onInput (e) {\n      if (this.selectedIndex > -1) return\n\n      // If typing and menu is not currently active\n      if (e.target.value) {\n        this.activateMenu()\n        if (!this.isAnyValueAllowed) this.setMenuIndex(0)\n      }\n\n      this.mask && this.resetSelections(e.target)\n      this.internalSearch = e.target.value\n      this.badInput = e.target.validity && e.target.validity.badInput\n    },\n    onKeyDown (e) {\n      const keyCode = e.keyCode\n\n      VSelect.options.methods.onKeyDown.call(this, e)\n\n      // The ordering is important here\n      // allows new value to be updated\n      // and then moves the index to the\n      // proper location\n      this.changeSelectedIndex(keyCode)\n    },\n    onTabDown (e) {\n      VSelect.options.methods.onTabDown.call(this, e)\n      this.updateSelf()\n    },\n    setSelectedItems () {\n      VSelect.options.methods.setSelectedItems.call(this)\n\n      // #4273 Don't replace if searching\n      // #4403 Don't replace if focused\n      if (!this.isFocused) this.setSearch()\n    },\n    setSearch () {\n      // Wait for nextTick so selectedItem\n      // has had time to update\n      this.$nextTick(() => {\n        this.internalSearch = (\n          this.multiple &&\n          this.internalSearch &&\n          this.isMenuActive\n        )\n          ? this.internalSearch\n          : (\n            !this.selectedItems.length ||\n            this.multiple ||\n            this.hasSlot\n          )\n            ? null\n            : this.getText(this.selectedItem)\n      })\n    },\n    updateSelf () {\n      this.updateAutocomplete()\n    },\n    updateAutocomplete () {\n      if (!this.searchIsDirty &&\n        !this.internalValue\n      ) return\n\n      if (!this.valueComparator(\n        this.internalSearch,\n        this.getValue(this.internalValue)\n      )) {\n        this.setSearch()\n      }\n    },\n    hasItem (item) {\n      return this.selectedValues.indexOf(this.getValue(item)) > -1\n    }\n  }\n})\n"],"sourceRoot":""}