{"version":3,"sources":["webpack:///./src/components/lookups/suppliers.vue","webpack:///src/components/lookups/suppliers.vue","webpack:///./src/components/lookups/suppliers.vue?67f9","webpack:///./src/components/lookups/suppliers.vue?a5ef","webpack:///../../../src/components/VCombobox/VCombobox.ts"],"names":["_c","_self","attrs","_vm","is_loading","model","callback","selected_item","expression","component","staticRenderFns","extend","name","props","delimiters","type","Array","default","returnObject","Boolean","data","editingIndex","computed","this","multiple","selectedItems","length","internalSearch","toString","options","hasSlot","call","isFocused","hasDisplayedItems","$slots","hideNoData","methods","val","delimiter","find","d","endsWith","slice","updateTags","updateMenuDimensions","input","genInput","on","paste","onPaste","item","index","chip","genChipSelection","componentOptions","listeners","dblclick","getText","selectedIndex","onChipInput","e","preventDefault","getMenuIndex","$nextTick","updateSelf","keyCode","ctrlKey","home","end","includes","onKeyDown","left","$refs","selectionStart","enter","onEnterDown","changeSelectedIndex","stopPropagation","onTabDown","updateEditing","selectItem","toLocaleLowerCase","internalValue","value","setValue","undefined","findIndex","Object","assign","splice","push","searchIsDirty","isUsingSlot","$scopedSlots","selection","hasChips","updateCombobox","menuIndex","itemToSelect","event","$emit","pastedItemText","clipboardData","getData","findExistingIndex","clearableCallback"],"mappings":"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","file":"js/chunk-cd8bd57c.baf3a661.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-combobox',{attrs:{\"outlined\":\"\",\"items\":_vm.items,\"label\":_vm.title,\"multiple\":_vm.multiple,\"item-text\":_vm.combineText,\"return-object\":\"\",\"loading\":_vm.is_loading,\"clearable\":\"\",\"hide-details\":\"\"},model:{value:(_vm.selected_item),callback:function ($$v) {_vm.selected_item=$$v},expression:\"selected_item\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./suppliers.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./suppliers.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./suppliers.vue?vue&type=template&id=8410fa28\"\nimport script from \"./suppliers.vue?vue&type=script&lang=js\"\nexport * from \"./suppliers.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","// Styles\nimport '../VAutocomplete/VAutocomplete.sass'\n\n// Extensions\nimport VSelect from '../VSelect/VSelect'\nimport VAutocomplete from '../VAutocomplete/VAutocomplete'\n\n// Utils\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n/* @vue/component */\nexport default VAutocomplete.extend({\n name: 'v-combobox',\n\n props: {\n delimiters: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n returnObject: {\n type: Boolean,\n default: true,\n },\n },\n\n data: () => ({\n editingIndex: -1,\n }),\n\n computed: {\n computedCounterValue (): number {\n return this.multiple\n ? this.selectedItems.length\n : (this.internalSearch || '').toString().length\n },\n hasSlot (): boolean {\n return VSelect.options.computed.hasSlot.call(this) || this.multiple\n },\n isAnyValueAllowed (): boolean {\n return true\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems ||\n (!!this.$slots['no-data'] && !this.hideNoData)\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null\n },\n },\n\n methods: {\n onInternalSearchChanged (val: any) {\n if (\n val &&\n this.multiple &&\n this.delimiters.length\n ) {\n const delimiter = this.delimiters.find(d => val.endsWith(d))\n if (delimiter != null) {\n this.internalSearch = val.slice(0, val.length - delimiter.length)\n this.updateTags()\n }\n }\n\n this.updateMenuDimensions()\n },\n genInput () {\n const input = VAutocomplete.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n input.data!.on!.paste = this.onPaste\n\n return input\n },\n genChipSelection (item: object, index: number) {\n const chip = VSelect.options.methods.genChipSelection.call(this, item, index)\n\n // Allow user to update an existing value\n if (this.multiple) {\n chip.componentOptions!.listeners! = {\n ...chip.componentOptions!.listeners!,\n dblclick: () => {\n this.editingIndex = index\n this.internalSearch = this.getText(item)\n this.selectedIndex = -1\n },\n }\n }\n\n return chip\n },\n onChipInput (item: object) {\n VSelect.options.methods.onChipInput.call(this, item)\n\n this.editingIndex = -1\n },\n // Requires a manual definition\n // to overwrite removal in v-autocomplete\n onEnterDown (e: Event) {\n e.preventDefault()\n // If has menu index, let v-select-list handle\n if (this.getMenuIndex() > -1) return\n\n this.$nextTick(this.updateSelf)\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // If user is at selection index of 0\n // create a new tag\n if (this.multiple &&\n keyCode === keyCodes.left &&\n this.$refs.input.selectionStart === 0\n ) {\n this.updateSelf()\n } else if (keyCode === keyCodes.enter) {\n this.onEnterDown(e)\n }\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: KeyboardEvent) {\n // When adding tags, if searching and\n // there is not a filtered options,\n // add the value to the tags list\n if (this.multiple &&\n this.internalSearch &&\n this.getMenuIndex() === -1\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n return this.updateTags()\n }\n\n VAutocomplete.options.methods.onTabDown.call(this, e)\n },\n selectItem (item: object) {\n // Currently only supports items:\n if (this.editingIndex > -1) {\n this.updateEditing()\n } else {\n VAutocomplete.options.methods.selectItem.call(this, item)\n\n // if selected item contains search value,\n // remove the search string\n if (\n this.internalSearch &&\n this.multiple &&\n this.getText(item).toLocaleLowerCase().includes(this.internalSearch.toLocaleLowerCase())\n ) {\n this.internalSearch = null\n }\n }\n },\n setSelectedItems () {\n if (this.internalValue == null ||\n this.internalValue === ''\n ) {\n this.selectedItems = []\n } else {\n this.selectedItems = this.multiple ? this.internalValue : [this.internalValue]\n }\n },\n setValue (value?: any) {\n VSelect.options.methods.setValue.call(this, value === undefined ? this.internalSearch : value)\n },\n updateEditing () {\n const value = this.internalValue.slice()\n const index = this.selectedItems.findIndex(item =>\n this.getText(item) === this.internalSearch)\n\n // If user enters a duplicate text on chip edit,\n // don't add it, move it to the end of the list\n if (index > -1) {\n const item = typeof value[index] === 'object'\n ? Object.assign({}, value[index])\n : value[index]\n\n value.splice(index, 1)\n value.push(item)\n } else {\n value[this.editingIndex] = this.internalSearch\n }\n\n this.setValue(value)\n this.editingIndex = -1\n this.internalSearch = null\n },\n updateCombobox () {\n // If search is not dirty, do nothing\n if (!this.searchIsDirty) return\n\n // The internal search is not matching\n // the internal value, update the input\n if (this.internalSearch !== this.getText(this.internalValue)) this.setValue()\n\n // Reset search if using slot to avoid a double input\n const isUsingSlot = Boolean(this.$scopedSlots.selection) || this.hasChips\n if (isUsingSlot) this.internalSearch = null\n },\n updateSelf () {\n this.multiple ? this.updateTags() : this.updateCombobox()\n },\n updateTags () {\n const menuIndex = this.getMenuIndex()\n\n // If the user is not searching\n // and no menu item is selected\n // or if the search is empty\n // do nothing\n if ((menuIndex < 0 && !this.searchIsDirty) ||\n !this.internalSearch) return\n\n if (this.editingIndex > -1) {\n return this.updateEditing()\n }\n\n const index = this.selectedItems.findIndex(item =>\n this.internalSearch === this.getText(item))\n\n // If the duplicate item is an object,\n // copy it, so that it can be added again later\n const itemToSelect = index > -1 && typeof this.selectedItems[index] === 'object'\n ? Object.assign({}, this.selectedItems[index])\n : this.internalSearch\n\n // If it already exists, do nothing\n // this might need to change to bring\n // the duplicated item to the last entered\n if (index > -1) {\n const internalValue = this.internalValue.slice()\n internalValue.splice(index, 1)\n\n this.setValue(internalValue)\n }\n\n // If menu index is greater than 1\n // the selection is handled elsewhere\n // TODO: find out where\n if (menuIndex > -1) return (this.internalSearch = null)\n\n this.selectItem(itemToSelect)\n\n this.internalSearch = null\n },\n onPaste (event: ClipboardEvent) {\n this.$emit('paste', event)\n if (!this.multiple || this.searchIsDirty) return\n\n const pastedItemText = event.clipboardData?.getData('text/vnd.vuetify.autocomplete.item+plain')\n if (pastedItemText && this.findExistingIndex(pastedItemText as any) === -1) {\n event.preventDefault()\n VSelect.options.methods.selectItem.call(this, pastedItemText as any)\n }\n },\n clearableCallback () {\n this.editingIndex = -1\n\n VAutocomplete.options.methods.clearableCallback.call(this)\n },\n },\n})\n"],"sourceRoot":""}