{"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","webpack:///src/views/components/extra-components/autocomplete/Autocomplete.vue","webpack:///./src/views/components/extra-components/autocomplete/Autocomplete.vue?80bb","webpack:///./src/views/components/extra-components/autocomplete/Autocomplete.vue?569d","webpack:///./src/views/components/extra-components/autocomplete/Autocomplete.vue?09bc"],"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","autocomplete","modes","input","String","Object","fromPath","obj","path","split","reduce","o","hasKeyCode","arr","event","has","some","code","keyCode","Array","isArray","array","_finally","body","finalizer","result","e","then","_catch","recover","_invokeIgnored","_empty","_await","value","direct","Promise","resolve","_async","isNaN","apply","arguments","reject","slice","_invoke","_awaitIgnored","VueSimpleSuggest","render","_vm","_h","$createElement","_c","_self","staticClass","class","styles","vueSimpleSuggest","designed","destyled","focus","isInFocus","on","$event","_k","isTabbed","ref","inputWrapper","attrs","listId","listShown","removeList","_t","_b","defaultInput","domProps","text","$attrs","_v","suggestions","hoverList","$scopedSlots","query","_e","_l","suggestion","index","getId","suggestItem","selected","isSelected","hover","isHovered","target","suggestionClick","_s","displayProperty","setText","staticRenderFns","name","inheritAttrs","model","prop","props","type","default","controls","defaultControls","minLength","Number","maxSuggestions","displayAttribute","valueAttribute","list","Function","Boolean","preventSubmit","filterByQuery","filter","el","toLowerCase","indexOf","debounce","nullableSelect","mode","validator","watch","current","old","options","$parent","$forceUpdate","$nextTick","$emit","immediate","hovered","inputElement","canSend","timeoutInstance","isPlainSuggestion","isClicking","isOverList","isFalseFocus","controlScheme","_uid","computed","$slots","componentInstance","inputIsComponent","findIndex","valueProperty","assign","$refs","querySelector","setInputAriaAttributes","prepareEventHandlers","methods","item","isEqual","stopPropagation","preventDefault","setAttribute","enable","binder","keyEventsList","click","showSuggestions","keydown","moveSelection","onAutocomplete","keyup","onListKeyUp","eventsList","blur","onBlur","onFocus","onInput","listenerBinder","form","$el","closest","onSubmit","slot","vNode","tag","context","children","slots","map","s","every","isScopedSlotEmpty","bind","find","attr","display","getPropertyByAttribute","JSON","stringify","process","console","warn","error","elem","elemId","hoveredIndex","textLength","miscSlotsAreEmpty","_this","research","showList","isMovingDown","direction","listEdge","hoversBetweenEdges","ctrlKey","shiftKey","isTrusted","inputEvent","clearTimeout","setTimeout","_this2","textBeforeRequest","getSuggestions","newList","$set","clearSuggestions","_this3","listIsRequest","_this3$list","splice","simpleSuggestionList","chosen","callback","$$v","expression","getList","onSuggestSelect","scopedSlots","_u","fn","_ref","loading","scope","description","boldenSuggestion","_ref2","_typeof","data","log","suggest","suggestComponent","texts","t","replace","join","inputValue","url","concat","fetch","response","ok","json","shift","fields","forEach","part","j","push","id","catch","components","Prism","component"],"mappings":"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","file":"js/chunk-6e5b0ef8.ecbd9754.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 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 if (arr.length <= 0) return false;\n\n const has = arr => arr.some(code => code === event.keyCode);\n if (Array.isArray(arr[0])) {\n return arr.some(array => has(array));\n } else {\n return has(arr);\n }\n}\n\nfunction _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 }\n return finalizer();\n}function _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 _invokeIgnored(body) {\n var result = body();if (result && result.then) {\n return result.then(_empty);\n }\n}function _await(value, then, direct) {\n if (direct) {\n return then ? then(value) : value;\n }value = Promise.resolve(value);return then ? value.then(then) : value;\n}const _async = function () {\n try {\n if (isNaN.apply(null, {})) {\n return function (f) {\n return function () {\n try {\n return Promise.resolve(f.apply(this, arguments));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n };\n }\n } catch (e) {}return function (f) {\n // Pre-ES5.1 JavaScript runtimes don't accept array-likes in Function.apply\n return function () {\n try {\n return Promise.resolve(f.apply(this, Array.prototype.slice.call(arguments)));\n } catch (e) {\n return Promise.reject(e);\n }\n };\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 _awaitIgnored(value, direct) {\n if (!direct) {\n return Promise.resolve(value).then(_empty);\n }\n}function _empty() {}\nvar 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 (!('button' in $event) && _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 }, on: { \"mouseenter\": function ($event) {\n _vm.hoverList(true);\n }, \"mouseleave\": function ($event) {\n _vm.hoverList(false);\n } } }, [!!this.$scopedSlots['misc-item-above'] ? _c('li', [_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 _vm.hover(suggestion, $event.target);\n }, \"mouseleave\": function ($event) {\n _vm.hover(undefined);\n }, \"click\": function ($event) {\n _vm.suggestionClick(suggestion, $event);\n } } }, [_vm._t(\"suggestion-item\", [_c('span', [_vm._v(_vm._s(_vm.displayProperty(suggestion)))])], { autocomplete: function () {\n return _vm.setText(_vm.displayProperty(suggestion));\n }, suggestion: suggestion, query: _vm.text })], 2);\n }), _vm._v(\" \"), !!this.$scopedSlots['misc-item-below'] ? _c('li', [_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 preventSubmit: {\n type: Boolean,\n default: true\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 },\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 this.text = current;\n } else if (current) {\n this.text = this.displayProperty(current);\n }\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 isOverList: 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 return this.suggestions.findIndex(el => this.hovered && this.valueProperty(this.hovered) == this.valueProperty(el));\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() {\n this.inputElement = this.$refs['inputSlot'].querySelector('input');\n\n this.setInputAriaAttributes();\n this.prepareEventHandlers(true);\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 onSubmit(e) {\n if (this.preventSubmit && e.key === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n }\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: $event => (this.moveSelection($event), this.onAutocomplete($event)),\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 if (this.preventSubmit === true) {\n let form = this.$el.closest('form');\n if (form) {\n form[listenerBinder]('keydown', this.onSubmit);\n }\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 /**\n * @deprecated remove on the next release\n */\n autocompleteText(text) {\n this.setText(text);\n },\n setText(text) {\n this.$nextTick(() => {\n this.$emit('input', text);\n this.inputElement.value = text;\n this.text = 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.setText(this.displayProperty(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 hoverList(isOverList) {\n this.isOverList = isOverList;\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 var _this = this;\n\n return _invoke(function () {\n if (_this.suggestions.length === 0 && _this.minLength === _this.textLength) {\n return _awaitIgnored(_this.research());\n }\n }, function () {\n _this.showList();\n });\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 this.showSuggestions();\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 onListKeyUp(e) {\n const select = this.controlScheme.select,\n hideList = this.controlScheme.hideList;\n\n if (hasKeyCode([select, hideList], e)) {\n e.preventDefault();\n if (this.listShown) {\n if (hasKeyCode(select, e)) {\n this.select(this.hovered);\n }\n\n this.hideList();\n } else if (hasKeyCode(select, e)) {\n this.research();\n }\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.setText(this.displayProperty(this.suggestions[0]));\n }\n },\n suggestionClick(suggestion, e) {\n this.$emit('suggestion-click', suggestion, e);\n this.select(suggestion);\n\n /// Ensure, that all needed flags are off before finishing the click.\n this.isClicking = this.isOverList = false;\n\n this.$nextTick(() => {\n this.hideList();\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.isOverList && !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 this.$nextTick(() => {\n this.inputElement.focus();\n });\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 this.isFalseFocus = false;\n\n // Show list only if the item has not been clicked\n if (!this.isClicking) {\n this.showSuggestions();\n }\n },\n onInput(inputEvent) {\n const value = !inputEvent.target ? inputEvent : inputEvent.target.value;\n\n if (this.text === value) {\n return;\n }\n\n this.text = value;\n this.$emit('input', this.text);\n\n if (this.hovered) this.hover(null);\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 var _this2 = this;\n\n return _finally(function () {\n return _catch(function () {\n return _invokeIgnored(function () {\n if (_this2.canSend) {\n _this2.canSend = false;\n // @TODO: fix when promises will be cancelable (never :D)\n let textBeforeRequest = _this2.text;\n return _await(_this2.getSuggestions(_this2.text), function (newList) {\n if (textBeforeRequest === _this2.text) {\n _this2.$set(_this2, 'suggestions', newList);\n }\n });\n }\n });\n }, function (e) {\n _this2.clearSuggestions();\n throw e;\n });\n }, function () {\n _this2.canSend = true;\n\n if (_this2.suggestions.length === 0 && _this2.miscSlotsAreEmpty()) {\n _this2.hideList();\n } else {\n _this2.showList();\n }\n\n return _this2.suggestions;\n });\n }),\n getSuggestions: _async(function (value) {\n var _this3 = this;\n\n value = value || '';\n\n if (value.length < _this3.minLength) {\n if (_this3.listShown) {\n _this3.hideList();\n return [];\n }\n\n return _this3.suggestions;\n }\n\n _this3.selected = null;\n\n // Start request if can\n if (_this3.listIsRequest) {\n _this3.$emit('request-start', value);\n\n if (_this3.suggestions.length > 0 || !_this3.miscSlotsAreEmpty()) {\n _this3.showList();\n }\n }\n\n let result = [];\n return _finally(function () {\n return _catch(function () {\n return _invoke(function () {\n if (_this3.listIsRequest) {\n return _await(_this3.list(value), function (_this3$list) {\n result = _this3$list || [];\n });\n } else {\n result = _this3.list;\n }\n }, function () {\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 _this3.isPlainSuggestion = typeof result[0] !== 'object' || Array.isArray(result[0]);\n\n if (_this3.filterByQuery) {\n result = result.filter(el => _this3.filter(el, value));\n }\n\n if (_this3.listIsRequest) {\n _this3.$emit('request-done', result);\n }\n });\n }, function (e) {\n if (_this3.listIsRequest) {\n _this3.$emit('request-failed', e);\n } else {\n throw e;\n }\n });\n }, function () {\n if (_this3.maxSuggestions) {\n result.splice(_this3.maxSuggestions);\n }\n\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 render(){var _vm=this,_c=_vm._self._c;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 }}
\r\n\r\n \r\n<template>\r\n <vue-simple-suggest\r\n v-model="chosen"\r\n :list="simpleSuggestionList"\r\n :filter-by-query="true">\r\n <!-- Filter by input text to only show the matching results -->\r\n </vue-simple-suggest>\r\n\r\n <p class="mt-4">Chosen element: {{ chosen }}</p>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n data() {\r\n return {\r\n chosen: '',\r\n }\r\n },\r\n methods: {\r\n simpleSuggestionList() {\r\n return [\r\n 'Vue.js',\r\n 'React.js',\r\n 'Angular.js'\r\n ]\r\n },\r\n }\r\n}\r\n</script>\r\n\r\n<style lang="scss">\r\n@import "@/assets/scss/vuexy/extraComponents/autocomplete.scss";\r\n</style>\r\n \r\nSelected element ({{ typeof selected }}):
\r\n\r\n \r\n<template>\r\n <vue-simple-suggest\r\n pattern="\\w+"\r\n v-model="model"\r\n :list="getList"\r\n :max-suggestions="10"\r\n :min-length="3"\r\n :debounce="200"\r\n :filter-by-query="false"\r\n :prevent-submit="true"\r\n :controls="{\r\n selectionUp: [38, 33],\r\n selectionDown: [40, 34],\r\n select: [13, 36],\r\n hideList: [27, 35]\r\n }"\r\n :mode="mode"\r\n :nullable-select="true"\r\n ref="suggestComponent"\r\n placeholder="Search information..."\r\n value-attribute="id"\r\n display-attribute="text"\r\n @select="onSuggestSelect">\r\n\r\n <div class="g">\r\n <input type="text">\r\n </div>\r\n\r\n <template slot="misc-item-above" slot-scope="{ suggestions, query }">\r\n <div class="misc-item">\r\n <span>You're searching for '{{ \"\\{\\{ query \\}\\}\" }}'.</span>\r\n </div>\r\n\r\n <template v-if="suggestions.length > 0">\r\n <div class="misc-item">\r\n <span>{{ \"\\{\\{ suggestions.length \\}\\}\" }} suggestions are shown...</span>\r\n </div>\r\n <hr>\r\n </template>\r\n\r\n <div class="misc-item" v-else-if="!loading">\r\n <span>No results</span>\r\n </div>\r\n </template>\r\n\r\n <div slot="suggestion-item" slot-scope="scope" :title="scope.suggestion.description">\r\n <div class="text">\r\n <span v-html="boldenSuggestion(scope)"></span>\r\n </div>\r\n </div>\r\n\r\n <div class="misc-item" slot="misc-item-below" slot-scope="{ suggestions }" v-if="loading">\r\n <span>Loading...</span>\r\n </div>\r\n </vue-simple-suggest>\r\n\r\n <p class="mt-3">Selected element ({{ \"\\{\\{ typeof selected \\}\\}\" }}): <pre class="selected hljs"><span v-html="selected"></span></pre></p>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n data() {\r\n return {\r\n model: null,\r\n }\r\n },\r\n methods: {\r\n getList (inputValue) {\r\n return new Promise((resolve, reject) => {\r\n let url = `https://en.wikipedia.org/w/api.php?origin=*&action=opensearch&namespace=*&search=${inputValue}&limit=10&namespace=0&format=json`\r\n fetch(url).then(response => {\r\n if (!response.ok) {\r\n reject()\r\n }\r\n response.json().then(json => {\r\n json.shift();\r\n let result = []\r\n const fields = ['text', 'description', 'link']\r\n json.forEach((part, i) => {\r\n part.forEach((el, j) => {\r\n if (!result[j]) {\r\n result.push({\r\n id: j+1\r\n })\r\n }\r\n result[j][fields[i]] = el\r\n })\r\n })\r\n resolve(result)\r\n // resolve([...(json.items || [])])\r\n }).catch(e => {\r\n reject(e)\r\n })\r\n }).catch(error => {\r\n this.loading = false\r\n reject(error)\r\n })\r\n })\r\n },\r\n onSuggestSelect (suggest) {\r\n this.selected = suggest\r\n },\r\n boldenSuggestion(scope) {\r\n if (!scope) return scope;\r\n const { suggestion, query } = scope;\r\n let result = this.$refs.suggestComponent.displayProperty(suggestion);\r\n if (!query) return result;\r\n const texts = query.split(/[\\s-_/\\\\|.]/gm).filter(t => !!t) || [''];\r\n return result.replace(new RegExp('(.*?)(' + texts.join('|') + ')(.*?)','gi'), '$1<b>$2</b>$3');\r\n },\r\n }\r\n}\r\n</script>\r\n \r\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:
\r\n\r\n