{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es6.regexp.constructor.js","webpack:///./node_modules/vue-simple-suggest/dist/es6.js","webpack:///./src/views/components/extra-components/autocomplete/Autocomplete.vue?b6f9","webpack:///src/views/components/extra-components/autocomplete/Autocomplete.vue","webpack:///./src/views/components/extra-components/autocomplete/Autocomplete.vue?acaa","webpack:///./src/views/components/extra-components/autocomplete/Autocomplete.vue","webpack:///./src/views/components/extra-components/autocomplete/Autocomplete.vue?233d"],"names":["global","inheritIfRequired","dP","f","gOPN","isRegExp","$flags","$RegExp","RegExp","Base","proto","prototype","re1","re2","CORRECT_NEW","p","tiRE","this","piRE","fiU","undefined","constructor","source","call","proxy","key","configurable","get","set","it","keys","i","length","selectionUp","selectionDown","select","hideList","showList","autocomplete","modes","input","String","Object","fromPath","obj","path","split","reduce","o","hasKeyCode","arr","event","hasKeyCodeByCode","keyCode","has","some","code","Array","isArray","array","_await","value","then","direct","Promise","resolve","_async","args","arguments","apply","e","reject","_empty","_awaitIgnored","_invoke","body","result","_invokeIgnored","_catch","recover","_finally","finalizer","VueSimpleSuggest","render","_vm","_h","$createElement","_c","_self","staticClass","class","styles","vueSimpleSuggest","designed","destyled","focus","isInFocus","on","$event","type","indexOf","_k","isTabbed","ref","inputWrapper","attrs","listId","listShown","removeList","_t","_b","defaultInput","domProps","text","$attrs","_v","suggestions","$scopedSlots","miscItemAbove","_e","_l","suggestion","index","getId","suggestItem","selected","isSelected","hover","isHovered","target","suggestionClick","_s","displayProperty","autocompleteText","miscItemBelow","staticRenderFns","name","inheritAttrs","model","prop","props","default","controls","defaultControls","minLength","Number","maxSuggestions","displayAttribute","valueAttribute","list","Function","Boolean","filterByQuery","filter","el","toLowerCase","debounce","nullableSelect","mode","validator","preventHide","watch","current","old","options","$parent","$forceUpdate","$nextTick","$emit","immediate","updateTextOutside","hovered","inputElement","canSend","timeoutInstance","isPlainSuggestion","isClicking","isFalseFocus","controlScheme","_uid","computed","$slots","componentInstance","inputIsComponent","valueProperty","assign","mounted","_this","$refs","querySelector","setInputAriaAttributes","prepareEventHandlers","console","error","methods","item","isEqual","setAttribute","enable","binder","keyEventsList","click","showSuggestions","keydown","onKeyDown","keyup","onListKeyUp","eventsList","blur","onBlur","onFocus","onInput","listenerBinder","slot","vNode","tag","context","children","slots","map","s","every","isScopedSlotEmpty","bind","find","attr","display","getPropertyByAttribute","JSON","stringify","process","warn","setText","elem","elemId","hoveredIndex","textLength","miscSlotsAreEmpty","_this2","research","preventDefault","isMovingDown","direction","listEdge","hoversBetweenEdges","onShowList","moveSelection","onAutocomplete","ctrlKey","shiftKey","setTimeout","isTrusted","inputEvent","clearTimeout","_this3","textBeforeRequest","getSuggestions","newList","$set","clearSuggestions","_this4","listIsRequest","nextIsPlainSuggestion","_this4$list","splice","simpleSuggestionList","callback","$$v","chosen","expression","getList","onSuggestSelect","scopedSlots","_u","fn","query","loading","scope","description","boldenSuggestion","data","log","suggest","replace","inputValue","fetch","response","ok","json","part","j","id","catch","components","Prism","component"],"mappings":"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","file":"js/chunk-70867a32.d218e2fb.js","sourcesContent":["var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","const defaultControls = {\n selectionUp: [38],\n selectionDown: [40],\n select: [13],\n hideList: [27],\n showList: [40],\n autocomplete: [32, 13]\n};\n\nconst modes = {\n input: String,\n select: Object\n};\n\nfunction fromPath(obj, path) {\n return path.split('.').reduce((o, i) => o === Object(o) ? o[i] : o, obj);\n}\n\nfunction hasKeyCode(arr, event) {\n return hasKeyCodeByCode(arr, event.keyCode);\n}\n\nfunction hasKeyCodeByCode(arr, keyCode) {\n if (arr.length <= 0) return false;\n\n const has = arr => arr.some(code => code === keyCode);\n if (Array.isArray(arr[0])) {\n return arr.some(array => has(array));\n } else {\n return has(arr);\n }\n}\n\nfunction _await(value, then, direct) {\n if (direct) {\n return then ? then(value) : value;\n }if (!value || !value.then) {\n value = Promise.resolve(value);\n }return then ? value.then(then) : value;\n}function _async(f) {\n return function () {\n for (var args = [], i = 0; i < arguments.length; i++) {\n args[i] = arguments[i];\n }try {\n return Promise.resolve(f.apply(this, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n}function _empty() {}function _awaitIgnored(value, direct) {\n if (!direct) {\n return value && value.then ? value.then(_empty) : Promise.resolve();\n }\n}function _invoke(body, then) {\n var result = body();if (result && result.then) {\n return result.then(then);\n }return then(result);\n}function _invokeIgnored(body) {\n var result = body();if (result && result.then) {\n return result.then(_empty);\n }\n}\nfunction _catch(body, recover) {\n try {\n var result = body();\n } catch (e) {\n return recover(e);\n }if (result && result.then) {\n return result.then(void 0, recover);\n }return result;\n}function _finally(body, finalizer) {\n try {\n var result = body();\n } catch (e) {\n return finalizer();\n }if (result && result.then) {\n return result.then(finalizer, finalizer);\n }return finalizer();\n}var VueSimpleSuggest = {\n render: function () {\n var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"vue-simple-suggest\", class: [_vm.styles.vueSimpleSuggest, { designed: !_vm.destyled, focus: _vm.isInFocus }], on: { \"keydown\": function ($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"tab\", 9, $event.key, \"Tab\")) {\n return null;\n }_vm.isTabbed = true;\n } } }, [_c('div', { ref: \"inputSlot\", staticClass: \"input-wrapper\", class: _vm.styles.inputWrapper, attrs: { \"role\": \"combobox\", \"aria-haspopup\": \"listbox\", \"aria-owns\": _vm.listId, \"aria-expanded\": !!_vm.listShown && !_vm.removeList ? 'true' : 'false' } }, [_vm._t(\"default\", [_c('input', _vm._b({ staticClass: \"default-input\", class: _vm.styles.defaultInput, domProps: { \"value\": _vm.text || '' } }, 'input', _vm.$attrs, false))])], 2), _vm._v(\" \"), _c('transition', { attrs: { \"name\": \"vue-simple-suggest\" } }, [!!_vm.listShown && !_vm.removeList ? _c('ul', { staticClass: \"suggestions\", class: _vm.styles.suggestions, attrs: { \"id\": _vm.listId, \"role\": \"listbox\", \"aria-labelledby\": _vm.listId } }, [!!this.$scopedSlots['misc-item-above'] ? _c('li', { class: _vm.styles.miscItemAbove }, [_vm._t(\"misc-item-above\", null, { \"suggestions\": _vm.suggestions, \"query\": _vm.text })], 2) : _vm._e(), _vm._v(\" \"), _vm._l(_vm.suggestions, function (suggestion, index) {\n return _c('li', { key: _vm.getId(suggestion, index), staticClass: \"suggest-item\", class: [_vm.styles.suggestItem, {\n selected: _vm.isSelected(suggestion),\n hover: _vm.isHovered(suggestion)\n }], attrs: { \"role\": \"option\", \"aria-selected\": _vm.isHovered(suggestion) || _vm.isSelected(suggestion) ? 'true' : 'false', \"id\": _vm.getId(suggestion, index) }, on: { \"mouseenter\": function ($event) {\n return _vm.hover(suggestion, $event.target);\n }, \"mouseleave\": function ($event) {\n return _vm.hover(undefined);\n }, \"click\": function ($event) {\n return _vm.suggestionClick(suggestion, $event);\n } } }, [_vm._t(\"suggestion-item\", [_c('span', [_vm._v(_vm._s(_vm.displayProperty(suggestion)))])], { \"autocomplete\": function () {\n return _vm.autocompleteText(suggestion);\n }, \"suggestion\": suggestion, \"query\": _vm.text })], 2);\n }), _vm._v(\" \"), !!this.$scopedSlots['misc-item-below'] ? _c('li', { class: _vm.styles.miscItemBelow }, [_vm._t(\"misc-item-below\", null, { \"suggestions\": _vm.suggestions, \"query\": _vm.text })], 2) : _vm._e()], 2) : _vm._e()])], 1);\n },\n staticRenderFns: [],\n name: 'vue-simple-suggest',\n inheritAttrs: false,\n model: {\n prop: 'value',\n event: 'input'\n },\n props: {\n styles: {\n type: Object,\n default: () => ({})\n },\n controls: {\n type: Object,\n default: () => defaultControls\n },\n minLength: {\n type: Number,\n default: 1\n },\n maxSuggestions: {\n type: Number,\n default: 10\n },\n displayAttribute: {\n type: String,\n default: 'title'\n },\n valueAttribute: {\n type: String,\n default: 'id'\n },\n list: {\n type: [Function, Array],\n default: () => []\n },\n removeList: {\n type: Boolean,\n default: false\n },\n destyled: {\n type: Boolean,\n default: false\n },\n filterByQuery: {\n type: Boolean,\n default: false\n },\n filter: {\n type: Function,\n default(el, value) {\n return value ? ~this.displayProperty(el).toLowerCase().indexOf(value.toLowerCase()) : true;\n }\n },\n debounce: {\n type: Number,\n default: 0\n },\n nullableSelect: {\n type: Boolean,\n default: false\n },\n value: {},\n mode: {\n type: String,\n default: 'input',\n validator: value => !!~Object.keys(modes).indexOf(value.toLowerCase())\n },\n preventHide: {\n type: Boolean,\n default: false\n }\n },\n // Handle run-time mode changes (now working):\n watch: {\n mode: {\n handler(current, old) {\n this.constructor.options.model.event = current;\n\n // Can be null if the component is root\n this.$parent && this.$parent.$forceUpdate();\n\n this.$nextTick(() => {\n if (current === 'input') {\n this.$emit('input', this.text);\n } else {\n this.$emit('select', this.selected);\n }\n });\n },\n immediate: true\n },\n value: {\n handler(current) {\n if (typeof current !== 'string') {\n current = this.displayProperty(current);\n }\n this.updateTextOutside(current);\n },\n immediate: true\n }\n },\n //\n data() {\n return {\n selected: null,\n hovered: null,\n suggestions: [],\n listShown: false,\n inputElement: null,\n canSend: true,\n timeoutInstance: null,\n text: this.value,\n isPlainSuggestion: false,\n isClicking: false,\n isInFocus: false,\n isFalseFocus: false,\n isTabbed: false,\n controlScheme: {},\n listId: `${this._uid}-suggestions`\n };\n },\n computed: {\n listIsRequest() {\n return typeof this.list === 'function';\n },\n inputIsComponent() {\n return this.$slots.default && this.$slots.default.length > 0 && !!this.$slots.default[0].componentInstance;\n },\n input() {\n return this.inputIsComponent ? this.$slots.default[0].componentInstance : this.inputElement;\n },\n on() {\n return this.inputIsComponent ? '$on' : 'addEventListener';\n },\n off() {\n return this.inputIsComponent ? '$off' : 'removeEventListener';\n },\n hoveredIndex() {\n for (let i = 0; i < this.suggestions.length; i++) {\n const el = this.suggestions[i];\n if (this.hovered && this.valueProperty(this.hovered) == this.valueProperty(el)) {\n return i;\n }\n }\n return -1;\n },\n textLength() {\n return this.text && this.text.length || this.inputElement.value.length || 0;\n },\n isSelectedUpToDate() {\n return !!this.selected && this.displayProperty(this.selected) === this.text;\n }\n },\n created() {\n this.controlScheme = Object.assign({}, defaultControls, this.controls);\n },\n mounted: _async(function () {\n const _this = this;\n\n return _await(_this.$slots.default, function () {\n\n _this.$nextTick(() => {\n _this.inputElement = _this.$refs['inputSlot'].querySelector('input');\n\n if (_this.inputElement) {\n _this.setInputAriaAttributes();\n _this.prepareEventHandlers(true);\n } else {\n console.error('No input element found');\n }\n });\n });\n }),\n\n beforeDestroy() {\n this.prepareEventHandlers(false);\n },\n methods: {\n isEqual(suggestion, item) {\n return item && this.valueProperty(suggestion) == this.valueProperty(item);\n },\n isSelected(suggestion) {\n return this.isEqual(suggestion, this.selected);\n },\n isHovered(suggestion) {\n return this.isEqual(suggestion, this.hovered);\n },\n setInputAriaAttributes() {\n this.inputElement.setAttribute('aria-activedescendant', '');\n this.inputElement.setAttribute('aria-autocomplete', 'list');\n this.inputElement.setAttribute('aria-controls', this.listId);\n },\n prepareEventHandlers(enable) {\n const binder = this[enable ? 'on' : 'off'];\n const keyEventsList = {\n click: this.showSuggestions,\n keydown: this.onKeyDown,\n keyup: this.onListKeyUp\n };\n const eventsList = Object.assign({\n blur: this.onBlur,\n focus: this.onFocus,\n input: this.onInput\n }, keyEventsList);\n\n for (const event in eventsList) {\n this.input[binder](event, eventsList[event]);\n }\n\n const listenerBinder = enable ? 'addEventListener' : 'removeEventListener';\n\n for (const event in keyEventsList) {\n this.inputElement[listenerBinder](event, keyEventsList[event]);\n }\n },\n isScopedSlotEmpty(slot) {\n if (slot) {\n const vNode = slot(this);\n return !(Array.isArray(vNode) || vNode && (vNode.tag || vNode.context || vNode.text || vNode.children));\n }\n\n return true;\n },\n miscSlotsAreEmpty() {\n const slots = ['misc-item-above', 'misc-item-below'].map(s => this.$scopedSlots[s]);\n\n if (slots.every(s => !!s)) {\n return slots.every(this.isScopedSlotEmpty.bind(this));\n }\n\n const slot = slots.find(s => !!s);\n\n return this.isScopedSlotEmpty.call(this, slot);\n },\n getPropertyByAttribute(obj, attr) {\n return this.isPlainSuggestion ? obj : typeof obj !== undefined ? fromPath(obj, attr) : obj;\n },\n displayProperty(obj) {\n if (this.isPlainSuggestion) {\n return obj;\n }\n\n let display = this.getPropertyByAttribute(obj, this.displayAttribute);\n\n if (typeof display === 'undefined') {\n display = JSON.stringify(obj);\n\n if (process && ~process.env.NODE_ENV.indexOf('dev')) {\n console.warn('[vue-simple-suggest]: Please, provide `display-attribute` as a key or a dotted path for a property from your object.');\n }\n }\n\n return String(display || '');\n },\n valueProperty(obj) {\n if (this.isPlainSuggestion) {\n return obj;\n }\n\n const value = this.getPropertyByAttribute(obj, this.valueAttribute);\n\n if (typeof value === 'undefined') {\n console.error(`[vue-simple-suggest]: Please, check if you passed 'value-attribute' (default is 'id') and 'display-attribute' (default is 'title') props correctly.\n Your list objects should always contain a unique identifier.`);\n }\n\n return value;\n },\n\n autocompleteText(suggestion) {\n this.setText(this.displayProperty(suggestion));\n },\n setText(text) {\n this.$nextTick(() => {\n this.inputElement.value = text;\n this.text = text;\n this.$emit('input', text);\n });\n },\n select(item) {\n if (this.selected !== item || this.nullableSelect && !item) {\n this.selected = item;\n this.$emit('select', item);\n\n if (item) {\n this.autocompleteText(item);\n }\n }\n\n this.hover(null);\n },\n hover(item, elem) {\n const elemId = !!item ? this.getId(item, this.hoveredIndex) : '';\n\n this.inputElement.setAttribute('aria-activedescendant', elemId);\n\n if (item && item !== this.hovered) {\n this.$emit('hover', item, elem);\n }\n\n this.hovered = item;\n },\n hideList() {\n if (this.listShown) {\n this.listShown = false;\n this.hover(null);\n this.$emit('hide-list');\n }\n },\n showList() {\n if (!this.listShown) {\n if (this.textLength >= this.minLength && (this.suggestions.length > 0 || !this.miscSlotsAreEmpty())) {\n this.listShown = true;\n this.$emit('show-list');\n }\n }\n },\n showSuggestions: _async(function () {\n const _this2 = this;\n\n return _invoke(function () {\n if (_this2.suggestions.length === 0 && _this2.minLength <= _this2.textLength) {\n // try show misc slots while researching\n _this2.showList();\n return _awaitIgnored(_this2.research());\n }\n }, function () {\n\n _this2.showList();\n });\n }),\n\n onShowList(e) {\n if (hasKeyCode(this.controlScheme.showList, e)) {\n this.showSuggestions();\n }\n },\n moveSelection(e) {\n if (!this.listShown || !this.suggestions.length) return;\n if (hasKeyCode([this.controlScheme.selectionUp, this.controlScheme.selectionDown], e)) {\n e.preventDefault();\n\n const isMovingDown = hasKeyCode(this.controlScheme.selectionDown, e);\n const direction = isMovingDown * 2 - 1;\n const listEdge = isMovingDown ? 0 : this.suggestions.length - 1;\n const hoversBetweenEdges = isMovingDown ? this.hoveredIndex < this.suggestions.length - 1 : this.hoveredIndex > 0;\n\n let item = null;\n\n if (!this.hovered) {\n item = this.selected || this.suggestions[listEdge];\n } else if (hoversBetweenEdges) {\n item = this.suggestions[this.hoveredIndex + direction];\n } else /* if hovers on edge */{\n item = this.suggestions[listEdge];\n }\n this.hover(item);\n }\n },\n onKeyDown(e) {\n const select = this.controlScheme.select,\n hideList = this.controlScheme.hideList;\n\n // prevent form submit on keydown if Enter key registered in the keyup list\n if (e.key === 'Enter' && this.listShown && hasKeyCodeByCode([select, hideList], 13)) {\n e.preventDefault();\n }\n\n if (e.key === 'Tab' && this.hovered) {\n this.select(this.hovered);\n }\n\n this.onShowList(e);\n this.moveSelection(e);\n this.onAutocomplete(e);\n },\n onListKeyUp(e) {\n const select = this.controlScheme.select,\n hideList = this.controlScheme.hideList;\n\n if (this.listShown && hasKeyCode([select, hideList], e)) {\n e.preventDefault();\n if (hasKeyCode(select, e)) {\n this.select(this.hovered);\n }\n\n this.hideList();\n }\n },\n onAutocomplete(e) {\n if (hasKeyCode(this.controlScheme.autocomplete, e) && (e.ctrlKey || e.shiftKey) && this.suggestions.length > 0 && this.suggestions[0] && this.listShown) {\n e.preventDefault();\n this.hover(this.suggestions[0]);\n this.autocompleteText(this.suggestions[0]);\n }\n },\n suggestionClick(suggestion, e) {\n this.$emit('suggestion-click', suggestion, e);\n this.select(suggestion);\n\n if (!this.preventHide) this.hideList();\n\n if (this.isClicking) {\n setTimeout(() => {\n this.inputElement.focus();\n\n /// Ensure, that all needed flags are off before finishing the click.\n this.isClicking = false;\n }, 0);\n }\n },\n onBlur(e) {\n if (this.isInFocus) {\n\n /// Clicking starts here, because input's blur occurs before the suggestionClick\n /// and exactly when the user clicks the mouse button or taps the screen.\n this.isClicking = this.hovered && !this.isTabbed;\n\n if (!this.isClicking) {\n this.isInFocus = false;\n this.hideList();\n\n this.$emit('blur', e);\n } else if (e && e.isTrusted && !this.isTabbed) {\n this.isFalseFocus = true;\n }\n } else {\n this.inputElement.blur();\n console.error(`This should never happen!\n If you encountered this error, please make sure that your input component emits 'focus' events properly.\n For more info see https://github.com/KazanExpress/vue-simple-suggest#custom-input.\n\n If your 'vue-simple-suggest' setup does not include a custom input component - please,\n report to https://github.com/KazanExpress/vue-simple-suggest/issues/new`);\n }\n\n this.isTabbed = false;\n },\n onFocus(e) {\n this.isInFocus = true;\n\n // Only emit, if it was a native input focus\n if (e && !this.isFalseFocus) {\n this.$emit('focus', e);\n }\n\n // Show list only if the item has not been clicked (isFalseFocus indicates that click was made earlier)\n if (!this.isClicking && !this.isFalseFocus) {\n this.showSuggestions();\n }\n\n this.isFalseFocus = false;\n },\n onInput(inputEvent) {\n const value = !inputEvent.target ? inputEvent : inputEvent.target.value;\n\n this.updateTextOutside(value);\n this.$emit('input', value);\n },\n updateTextOutside(value) {\n if (this.text === value) {\n return;\n }\n\n this.text = value;\n if (this.hovered) this.hover(null);\n\n if (this.text.length < this.minLength) {\n this.hideList();\n return;\n }\n\n if (this.debounce) {\n clearTimeout(this.timeoutInstance);\n this.timeoutInstance = setTimeout(this.research, this.debounce);\n } else {\n this.research();\n }\n },\n research: _async(function () {\n const _this3 = this;\n\n return _finally(function () {\n return _catch(function () {\n return _invokeIgnored(function () {\n if (_this3.canSend) {\n _this3.canSend = false;\n // @TODO: fix when promises will be cancelable (never :D)\n let textBeforeRequest = _this3.text;\n return _await(_this3.getSuggestions(_this3.text), function (newList) {\n if (textBeforeRequest === _this3.text) {\n _this3.$set(_this3, 'suggestions', newList);\n }\n });\n }\n });\n }, function (e) {\n _this3.clearSuggestions();\n throw e;\n });\n }, function () {\n _this3.canSend = true;\n\n if (_this3.suggestions.length === 0 && _this3.miscSlotsAreEmpty()) {\n _this3.hideList();\n } else if (_this3.isInFocus) {\n _this3.showList();\n }\n\n return _this3.suggestions;\n });\n }),\n getSuggestions: _async(function (value) {\n const _this4 = this;\n\n value = value || '';\n\n if (value.length < _this4.minLength) {\n return [];\n }\n\n _this4.selected = null;\n\n // Start request if can\n if (_this4.listIsRequest) {\n _this4.$emit('request-start', value);\n }\n\n let nextIsPlainSuggestion = false;\n let result = [];\n return _finally(function () {\n return _catch(function () {\n return _invoke(function () {\n if (_this4.listIsRequest) {\n return _await(_this4.list(value), function (_this4$list) {\n result = _this4$list || [];\n });\n } else {\n result = _this4.list;\n }\n }, function () {\n\n // IFF the result is not an array (just in case!) - make it an array\n if (!Array.isArray(result)) {\n result = [result];\n }\n\n nextIsPlainSuggestion = typeof result[0] !== 'object' && typeof result[0] !== 'undefined' || Array.isArray(result[0]);\n\n if (_this4.filterByQuery) {\n result = result.filter(el => _this4.filter(el, value));\n }\n\n if (_this4.listIsRequest) {\n _this4.$emit('request-done', result);\n }\n });\n }, function (e) {\n if (_this4.listIsRequest) {\n _this4.$emit('request-failed', e);\n } else {\n throw e;\n }\n });\n }, function () {\n if (_this4.maxSuggestions) {\n result.splice(_this4.maxSuggestions);\n }\n\n _this4.isPlainSuggestion = nextIsPlainSuggestion;\n return result;\n });\n }),\n\n clearSuggestions() {\n this.suggestions.splice(0);\n },\n getId(value, i) {\n return `${this.listId}-suggestion-${this.isPlainSuggestion ? i : this.valueProperty(value) || i}`;\n }\n }\n};\n\nexport default VueSimpleSuggest;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"page-autocomplete-demo\"}},[_c('vx-card',{attrs:{\"title\":\"Basic Autocomplete\",\"code-toggler\":\"\"}},[_c('vue-simple-suggest',{attrs:{\"list\":_vm.simpleSuggestionList,\"filter-by-query\":true},model:{value:(_vm.chosen),callback:function ($$v) {_vm.chosen=$$v},expression:\"chosen\"}}),_c('p',{staticClass:\"mt-4\"},[_vm._v(\"Chosen element: \"+_vm._s(_vm.chosen))]),_c('template',{slot:\"codeContainer\"},[_vm._v(\"\\n\\n Chosen element: \"+_vm._s(_vm.chosen)+\" Selected element (\"+_vm._s(\"\\{\\{ typeof selected \\}\\}\")+\"):
\\n \\n\\n
Chosen element: {{ chosen }}
\n\n \n<template>\n <vue-simple-suggest\n v-model="chosen"\n :list="simpleSuggestionList"\n :filter-by-query="true">\n <!-- Filter by input text to only show the matching results -->\n </vue-simple-suggest>\n\n <p class="mt-4">Chosen element: {{ chosen }}</p>\n</template>\n\n<script>\nexport default {\n data() {\n return {\n chosen: '',\n }\n },\n methods: {\n simpleSuggestionList() {\n return [\n 'Vue.js',\n 'React.js',\n 'Angular.js'\n ]\n },\n }\n}\n</script>\n\n<style lang="scss">\n@import "@/assets/scss/vuexy/extraComponents/autocomplete.scss";\n</style>\n \nSelected element ({{ typeof selected }}):
\n\n \n<template>\n <vue-simple-suggest\n pattern="\\w+"\n v-model="model"\n :list="getList"\n :max-suggestions="10"\n :min-length="3"\n :debounce="200"\n :filter-by-query="false"\n :prevent-submit="true"\n :controls="{\n selectionUp: [38, 33],\n selectionDown: [40, 34],\n select: [13, 36],\n hideList: [27, 35]\n }"\n :mode="mode"\n :nullable-select="true"\n ref="suggestComponent"\n placeholder="Search information..."\n value-attribute="id"\n display-attribute="text"\n @select="onSuggestSelect">\n\n <div class="g">\n <input type="text">\n </div>\n\n <template slot="misc-item-above" slot-scope="{ suggestions, query }">\n <div class="misc-item">\n <span>You're searching for '{{ \"\\{\\{ query \\}\\}\" }}'.</span>\n </div>\n\n <template v-if="suggestions.length > 0">\n <div class="misc-item">\n <span>{{ \"\\{\\{ suggestions.length \\}\\}\" }} suggestions are shown...</span>\n </div>\n <hr>\n </template>\n\n <div class="misc-item" v-else-if="!loading">\n <span>No results</span>\n </div>\n </template>\n\n <div slot="suggestion-item" slot-scope="scope" :title="scope.suggestion.description">\n <div class="text">\n <span v-html="boldenSuggestion(scope)"></span>\n </div>\n </div>\n\n <div class="misc-item" slot="misc-item-below" slot-scope="{ suggestions }" v-if="loading">\n <span>Loading...</span>\n </div>\n </vue-simple-suggest>\n\n <p class="mt-3">Selected element ({{ \"\\{\\{ typeof selected \\}\\}\" }}): <pre class="selected hljs"><span v-html="selected"></span></pre></p>\n</template>\n\n<script>\nexport default {\n data() {\n return {\n model: null,\n }\n },\n methods: {\n getList (inputValue) {\n return new Promise((resolve, reject) => {\n let url = `https://en.wikipedia.org/w/api.php?origin=*&action=opensearch&namespace=*&search=${inputValue}&limit=10&namespace=0&format=json`\n fetch(url).then(response => {\n if (!response.ok) {\n reject()\n }\n response.json().then(json => {\n json.shift();\n let result = []\n const fields = ['text', 'description', 'link']\n json.forEach((part, i) => {\n part.forEach((el, j) => {\n if (!result[j]) {\n result.push({\n id: j+1\n })\n }\n result[j][fields[i]] = el\n })\n })\n resolve(result)\n // resolve([...(json.items || [])])\n }).catch(e => {\n reject(e)\n })\n }).catch(error => {\n this.loading = false\n reject(error)\n })\n })\n },\n onSuggestSelect (suggest) {\n this.selected = suggest\n },\n boldenSuggestion(scope) {\n if (!scope) return scope;\n const { suggestion, query } = scope;\n let result = this.$refs.suggestComponent.displayProperty(suggestion);\n if (!query) return result;\n const texts = query.split(/[\\s-_/\\\\|.]/gm).filter(t => !!t) || [''];\n return result.replace(new RegExp('(.*?)(' + texts.join('|') + ')(.*?)','gi'), '$1<b>$2</b>$3');\n },\n }\n}\n</script>\n \n
Determines the event, that triggers v-model
. Can be one of 'input'
(default) or 'select'
.
For example, if 'input'
is chosen - then v-model will update the value each time an input
event is fired, setting the input's string.
Same is for 'select'
- v-model changes only when something is selected from the list, setting the selected value (string, object or whatever) to its argument.
A proper use-case for it being when one wants to use the component only for selection binding and custom input for text binding:
\n\n