{"version":3,"file":"selectize.js","mappings":"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","sources":["webpack:///../../../../../node_modules/@selectize/selectize/dist/js/selectize.js","webpack:///../../../../../node_modules/@selectize/selectize/dist/css/selectize.css?59e3","webpack:///../../../../../node_modules/vue-style-loader/lib/listToStyles.js","webpack:///../../../../../node_modules/vue-style-loader/lib/addStylesClient.js","webpack:///external var \"jQuery\"","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand"],"sourcesContent":["/**\n * Selectize (v0.15.2)\n * https://selectize.dev\n *\n * Copyright (c) 2013-2015 Brian Reavis & contributors\n * Copyright (c) 2020-2023 Selectize Team & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis \n * @author Ris Adams \n */\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define(['jquery'], factory);\n } else if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = factory(require('jquery'));\n } else {\n root.Selectize = factory(root.jQuery);\n }\n}(this, function ($) {\n 'use strict';\nvar highlight = function ($element, pattern) {\n if (typeof pattern === 'string' && !pattern.length) return;\n var regex = (typeof pattern === 'string') ? new RegExp(pattern, 'i') : pattern;\n\n var highlight = function (node) {\n var skip = 0;\n if (node.nodeType === 3) {\n var pos = node.data.search(regex);\n if (pos >= 0 && node.data.length > 0) {\n var match = node.data.match(regex);\n var spannode = document.createElement('span');\n spannode.className = 'highlight';\n var middlebit = node.splitText(pos);\n var endbit = middlebit.splitText(match[0].length);\n var middleclone = middlebit.cloneNode(true);\n spannode.appendChild(middleclone);\n middlebit.parentNode.replaceChild(spannode, middlebit);\n skip = 1;\n }\n }\n else if (node.nodeType === 1 && node.childNodes && !/(script|style)/i.test(node.tagName) && (node.className !== 'highlight' || node.tagName !== 'SPAN')) {\n for (var i = 0; i < node.childNodes.length; ++i) {\n i += highlight(node.childNodes[i]);\n }\n }\n return skip;\n };\n\n return $element.each(function () {\n highlight(this);\n });\n};\n\n$.fn.removeHighlight = function () {\n return this.find(\"span.highlight\").each(function () {\n this.parentNode.firstChild.nodeName;\n var parent = this.parentNode;\n parent.replaceChild(this.firstChild, this);\n parent.normalize();\n }).end();\n};\n\nvar MicroEvent = function () { };\nMicroEvent.prototype = {\n on: function (event, fct) {\n this._events = this._events || {};\n this._events[event] = this._events[event] || [];\n this._events[event].push(fct);\n },\n off: function (event, fct) {\n var n = arguments.length;\n if (n === 0) return delete this._events;\n if (n === 1) return delete this._events[event];\n\n this._events = this._events || {};\n if (event in this._events === false) return;\n this._events[event].splice(this._events[event].indexOf(fct), 1);\n },\n trigger: function (event ) {\n const events = this._events = this._events || {};\n if (event in events === false) return;\n for (var i = 0; i < events[event].length; i++) {\n events[event][i].apply(this, Array.prototype.slice.call(arguments, 1));\n }\n }\n};\n\nMicroEvent.mixin = function (destObject) {\n var props = ['on', 'off', 'trigger'];\n for (var i = 0; i < props.length; i++) {\n destObject.prototype[props[i]] = MicroEvent.prototype[props[i]];\n }\n};\n\nvar MicroPlugin = {};\nMicroPlugin.mixin = function (Interface) {\n\n Interface.plugins = {};\n\n Interface.prototype.initializePlugins = function (plugins) {\n var i, n, key;\n var self = this;\n var queue = [];\n\n self.plugins = {\n names: [],\n settings: {},\n requested: {},\n loaded: {}\n };\n\n if (isArray(plugins)) {\n for (i = 0, n = plugins.length; i < n; i++) {\n if (typeof plugins[i] === 'string') {\n queue.push(plugins[i]);\n } else {\n self.plugins.settings[plugins[i].name] = plugins[i].options;\n queue.push(plugins[i].name);\n }\n }\n } else if (plugins) {\n for (key in plugins) {\n if (plugins.hasOwnProperty(key)) {\n self.plugins.settings[key] = plugins[key];\n queue.push(key);\n }\n }\n }\n\n while (queue.length) {\n self.require(queue.shift());\n }\n };\n\n\n Interface.prototype.loadPlugin = function (name) {\n var self = this;\n var plugins = self.plugins;\n var plugin = Interface.plugins[name];\n\n if (!Interface.plugins.hasOwnProperty(name)) {\n throw new Error('Unable to find \"' + name + '\" plugin');\n }\n\n plugins.requested[name] = true;\n plugins.loaded[name] = plugin.fn.apply(self, [self.plugins.settings[name] || {}]);\n plugins.names.push(name);\n };\n\n Interface.prototype.require = function (name) {\n var self = this;\n var plugins = self.plugins;\n\n if (!self.plugins.loaded.hasOwnProperty(name)) {\n if (plugins.requested[name]) {\n throw new Error('Plugin has circular dependency (\"' + name + '\")');\n }\n self.loadPlugin(name);\n }\n\n return plugins.loaded[name];\n };\n\n Interface.define = function (name, fn) {\n Interface.plugins[name] = {\n 'name': name,\n 'fn': fn\n };\n };\n};\n\nconst nanoid = (t = 21) => crypto.getRandomValues(new Uint8Array(t))\n .reduce(((t, e) =>\n t += (e &= 63) < 36 ? e.toString(36) :\n e < 62 ? (e - 26).toString(36).toUpperCase()\n : e > 62 ? \"-\" : \"_\"), \"\");\n\n\nvar Sifter = function (items, settings) {\n this.items = items;\n this.settings = settings || { diacritics: true };\n};\n\nSifter.prototype.tokenize = function (query, respect_word_boundaries) {\n query = trim(String(query || '').toLowerCase());\n if (!query || !query.length) return [];\n\n var i, n, regex, letter;\n var tokens = [];\n var words = query.split(/ +/);\n\n for (i = 0, n = words.length; i < n; i++) {\n regex = escape_regex(words[i]);\n if (this.settings.diacritics) {\n for (letter in DIACRITICS) {\n if (DIACRITICS.hasOwnProperty(letter)) {\n regex = regex.replace(new RegExp(letter, 'g'), DIACRITICS[letter]);\n }\n }\n }\n if (respect_word_boundaries) regex = \"\\\\b\" + regex\n tokens.push({\n string: words[i],\n regex: new RegExp(regex, 'i')\n });\n }\n\n return tokens;\n};\n\nSifter.prototype.iterator = function (object, callback) {\n var iterator;\n if (is_array(object)) {\n iterator = Array.prototype.forEach || function (callback) {\n for (var i = 0, n = this.length; i < n; i++) {\n callback(this[i], i, this);\n }\n };\n } else {\n iterator = function (callback) {\n for (var key in this) {\n if (this.hasOwnProperty(key)) {\n callback(this[key], key, this);\n }\n }\n };\n }\n\n iterator.apply(object, [callback]);\n};\n\nSifter.prototype.getScoreFunction = function (search, options) {\n var self, fields, tokens, token_count, nesting;\n\n self = this;\n search = self.prepareSearch(search, options);\n tokens = search.tokens;\n fields = search.options.fields;\n token_count = tokens.length;\n nesting = search.options.nesting;\n\n var scoreValue = function (value, token) {\n var score, pos;\n\n if (!value) return 0;\n value = String(value || '');\n pos = value.search(token.regex);\n if (pos === -1) return 0;\n score = token.string.length / value.length;\n if (pos === 0) score += 0.5;\n return score;\n };\n\n var scoreObject = (function () {\n var field_count = fields.length;\n if (!field_count) {\n return function () { return 0; };\n }\n if (field_count === 1) {\n return function (token, data) {\n return scoreValue(getattr(data, fields[0], nesting), token);\n };\n }\n return function (token, data) {\n for (var i = 0, sum = 0; i < field_count; i++) {\n sum += scoreValue(getattr(data, fields[i], nesting), token);\n }\n return sum / field_count;\n };\n })();\n\n if (!token_count) {\n return function () { return 0; };\n }\n if (token_count === 1) {\n return function (data) {\n return scoreObject(tokens[0], data);\n };\n }\n\n if (search.options.conjunction === 'and') {\n return function (data) {\n var score;\n for (var i = 0, sum = 0; i < token_count; i++) {\n score = scoreObject(tokens[i], data);\n if (score <= 0) return 0;\n sum += score;\n }\n return sum / token_count;\n };\n } else {\n return function (data) {\n for (var i = 0, sum = 0; i < token_count; i++) {\n sum += scoreObject(tokens[i], data);\n }\n return sum / token_count;\n };\n }\n};\n\nSifter.prototype.getSortFunction = function (search, options) {\n var i, n, self, field, fields, fields_count, multiplier, multipliers, get_field, implicit_score, sort;\n\n self = this;\n search = self.prepareSearch(search, options);\n sort = (!search.query && options.sort_empty) || options.sort;\n\n get_field = function (name, result) {\n if (name === '$score') return result.score;\n return getattr(self.items[result.id], name, options.nesting);\n };\n\n fields = [];\n if (sort) {\n for (i = 0, n = sort.length; i < n; i++) {\n if (search.query || sort[i].field !== '$score') {\n fields.push(sort[i]);\n }\n }\n }\n\n if (search.query) {\n implicit_score = true;\n for (i = 0, n = fields.length; i < n; i++) {\n if (fields[i].field === '$score') {\n implicit_score = false;\n break;\n }\n }\n if (implicit_score) {\n fields.unshift({ field: '$score', direction: 'desc' });\n }\n } else {\n for (i = 0, n = fields.length; i < n; i++) {\n if (fields[i].field === '$score') {\n fields.splice(i, 1);\n break;\n }\n }\n }\n\n multipliers = [];\n for (i = 0, n = fields.length; i < n; i++) {\n multipliers.push(fields[i].direction === 'desc' ? -1 : 1);\n }\n\n fields_count = fields.length;\n if (!fields_count) {\n return null;\n } else if (fields_count === 1) {\n field = fields[0].field;\n multiplier = multipliers[0];\n return function (a, b) {\n return multiplier * cmp(\n get_field(field, a),\n get_field(field, b)\n );\n };\n } else {\n return function (a, b) {\n var i, result, a_value, b_value, field;\n for (i = 0; i < fields_count; i++) {\n field = fields[i].field;\n result = multipliers[i] * cmp(\n get_field(field, a),\n get_field(field, b)\n );\n if (result) return result;\n }\n return 0;\n };\n }\n};\n\nSifter.prototype.prepareSearch = function (query, options) {\n if (typeof query === 'object') return query;\n\n options = extend({}, options);\n\n var option_fields = options.fields;\n var option_sort = options.sort;\n var option_sort_empty = options.sort_empty;\n\n if (option_fields && !is_array(option_fields)) options.fields = [option_fields];\n if (option_sort && !is_array(option_sort)) options.sort = [option_sort];\n if (option_sort_empty && !is_array(option_sort_empty)) options.sort_empty = [option_sort_empty];\n\n return {\n options: options,\n query: String(query || '').toLowerCase(),\n tokens: this.tokenize(query, options.respect_word_boundaries),\n total: 0,\n items: []\n };\n};\n\nSifter.prototype.search = function (query, options) {\n var self = this, value, score, search, calculateScore;\n var fn_sort;\n var fn_score;\n\n search = this.prepareSearch(query, options);\n options = search.options;\n query = search.query;\n\n fn_score = options.score || self.getScoreFunction(search);\n\n if (query.length) {\n self.iterator(self.items, function (item, id) {\n score = fn_score(item);\n if (options.filter === false || score > 0) {\n search.items.push({ 'score': score, 'id': id });\n }\n });\n } else {\n self.iterator(self.items, function (item, id) {\n search.items.push({ 'score': 1, 'id': id });\n });\n }\n\n fn_sort = self.getSortFunction(search, options);\n if (fn_sort) search.items.sort(fn_sort);\n\n search.total = search.items.length;\n if (typeof options.limit === 'number') {\n search.items = search.items.slice(0, options.limit);\n }\n\n return search;\n};\n\nvar cmp = function (a, b) {\n if (typeof a === 'number' && typeof b === 'number') {\n return a > b ? 1 : (a < b ? -1 : 0);\n }\n a = asciifold(String(a || ''));\n b = asciifold(String(b || ''));\n if (a > b) return 1;\n if (b > a) return -1;\n return 0;\n};\n\nvar extend = function (a, b) {\n var i, n, k, object;\n for (i = 1, n = arguments.length; i < n; i++) {\n object = arguments[i];\n if (!object) continue;\n for (k in object) {\n if (object.hasOwnProperty(k)) {\n a[k] = object[k];\n }\n }\n }\n return a;\n};\n\nvar getattr = function (obj, name, nesting) {\n if (!obj || !name) return;\n if (!nesting) return obj[name];\n var names = name.split(\".\");\n while (names.length && (obj = obj[names.shift()]));\n return obj;\n};\n\nvar trim = function (str) {\n return (str + '').replace(/^\\s+|\\s+$|/g, '');\n};\n\nvar escape_regex = function (str) {\n return (str + '').replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1');\n};\n\nvar is_array = Array.isArray || function (object) {\n return Object.prototype.toString.call(object) === '[object Array]';\n};\n\nvar DIACRITICS = {\n 'a': '[aḀḁĂăÂâǍǎȺⱥȦȧẠạÄäÀàÁáĀāÃãÅåąĄÃąĄ]',\n 'b': '[b␢βΒB฿𐌁ᛒ]',\n 'c': '[cĆćĈĉČčĊċC̄c̄ÇçḈḉȻȼƇƈɕᴄCc]',\n 'd': '[dĎďḊḋḐḑḌḍḒḓḎḏĐđD̦d̦ƉɖƊɗƋƌᵭᶁᶑȡᴅDdð]',\n 'e': '[eÉéÈèÊêḘḙĚěĔĕẼẽḚḛẺẻĖėËëĒēȨȩĘęᶒɆɇȄȅẾếỀềỄễỂểḜḝḖḗḔḕȆȇẸẹỆệⱸᴇEeɘǝƏƐε]',\n 'f': '[fƑƒḞḟ]',\n 'g': '[gɢ₲ǤǥĜĝĞğĢģƓɠĠġ]',\n 'h': '[hĤĥĦħḨḩẖẖḤḥḢḣɦʰǶƕ]',\n 'i': '[iÍíÌìĬĭÎîǏǐÏïḮḯĨĩĮįĪīỈỉȈȉȊȋỊịḬḭƗɨɨ̆ᵻᶖİiIıɪIi]',\n 'j': '[jȷĴĵɈɉʝɟʲ]',\n 'k': '[kƘƙꝀꝁḰḱǨǩḲḳḴḵκϰ₭]',\n 'l': '[lŁłĽľĻļĹĺḶḷḸḹḼḽḺḻĿŀȽƚⱠⱡⱢɫɬᶅɭȴʟLl]',\n 'n': '[nŃńǸǹŇňÑñṄṅŅņṆṇṊṋṈṉN̈n̈ƝɲȠƞᵰᶇɳȵɴNnŊŋ]',\n 'o': '[oØøÖöÓóÒòÔôǑǒŐőŎŏȮȯỌọƟɵƠơỎỏŌōÕõǪǫȌȍՕօ]',\n 'p': '[pṔṕṖṗⱣᵽƤƥᵱ]',\n 'q': '[qꝖꝗʠɊɋꝘꝙq̃]',\n 'r': '[rŔŕɌɍŘřŖŗṘṙȐȑȒȓṚṛⱤɽ]',\n 's': '[sŚśṠṡṢṣꞨꞩŜŝŠšŞşȘșS̈s̈]',\n 't': '[tŤťṪṫŢţṬṭƮʈȚțṰṱṮṯƬƭ]',\n 'u': '[uŬŭɄʉỤụÜüÚúÙùÛûǓǔŰűŬŭƯưỦủŪūŨũŲųȔȕ∪]',\n 'v': '[vṼṽṾṿƲʋꝞꝟⱱʋ]',\n 'w': '[wẂẃẀẁŴŵẄẅẆẇẈẉ]',\n 'x': '[xẌẍẊẋχ]',\n 'y': '[yÝýỲỳŶŷŸÿỸỹẎẏỴỵɎɏƳƴ]',\n 'z': '[zŹźẐẑŽžŻżẒẓẔẕƵƶ]'\n};\n\nvar asciifold = (function () {\n var i, n, k, chunk;\n var i18nChars = '';\n var lookup = {};\n for (k in DIACRITICS) {\n if (DIACRITICS.hasOwnProperty(k)) {\n chunk = DIACRITICS[k].substring(2, DIACRITICS[k].length - 1);\n i18nChars += chunk;\n for (i = 0, n = chunk.length; i < n; i++) {\n lookup[chunk.charAt(i)] = k;\n }\n }\n }\n var regexp = new RegExp('[' + i18nChars + ']', 'g');\n return function (str) {\n return str.replace(regexp, function (i18nChar) {\n return lookup[i18nChar];\n }).toLowerCase();\n };\n})();\n\nvar IS_MAC = uaDetect(\"macOS\", /Mac/);\nvar KEY_A = 65;\nvar KEY_COMMA = 188;\nvar KEY_RETURN = 13;\nvar KEY_ESC = 27;\nvar KEY_LEFT = 37;\nvar KEY_UP = 38;\nvar KEY_P = 80;\nvar KEY_RIGHT = 39;\nvar KEY_DOWN = 40;\nvar KEY_N = 78;\nvar KEY_BACKSPACE = 8;\nvar KEY_DELETE = 46;\nvar KEY_SHIFT = 16;\nvar KEY_CMD = IS_MAC ? 91 : 17;\nvar KEY_CTRL = IS_MAC ? 18 : 17;\nvar KEY_TAB = 9;\nvar TAG_SELECT = 1;\nvar TAG_INPUT = 2;\n\nvar SUPPORTS_VALIDITY_API = !uaDetect(\"Android\", /android/i) && !!document.createElement('input').validity;\n\nvar isset = function (object) {\n return typeof object !== 'undefined';\n};\n\nvar isArray = Array.isArray || function (vArg) {\n return Object.prototype.toString.call(vArg) === '[object Array]';\n}\n\nvar hash_key = function (value) {\n if (typeof value === 'undefined' || value === null) return null;\n if (typeof value === 'boolean') return value ? '1' : '0';\n return value + '';\n};\n\nvar escape_html = function (str) {\n return (str + '')\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"');\n};\n\nvar escape_replace = function (str) {\n return (str + '').replace(/\\$/g, '$$$$');\n};\n\nvar hook = {};\n\nhook.before = function (self, method, fn) {\n var original = self[method];\n self[method] = function () {\n fn.apply(self, arguments);\n return original.apply(self, arguments);\n };\n};\n\nhook.after = function (self, method, fn) {\n var original = self[method];\n self[method] = function () {\n var result = original.apply(self, arguments);\n fn.apply(self, arguments);\n return result;\n };\n};\n\nvar once = function (fn) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n fn.apply(this, arguments);\n };\n};\n\nvar debounce = function (fn, delay) {\n var timeout;\n return function () {\n var self = this;\n var args = arguments;\n window.clearTimeout(timeout);\n timeout = window.setTimeout(function () {\n fn.apply(self, args);\n }, delay);\n };\n};\n\nvar debounce_events = function (self, types, fn) {\n var type;\n var trigger = self.trigger;\n var event_args = {};\n\n self.trigger = function () {\n var type = arguments[0];\n if (types.indexOf(type) !== -1) {\n event_args[type] = arguments;\n } else {\n return trigger.apply(self, arguments);\n }\n };\n\n fn.apply(self, []);\n self.trigger = trigger;\n\n for (type in event_args) {\n if (event_args.hasOwnProperty(type)) {\n trigger.apply(self, event_args[type]);\n }\n }\n};\n\nvar watchChildEvent = function ($parent, event, selector, fn) {\n $parent.on(event, selector, function (e) {\n var child = e.target;\n while (child && child.parentNode !== $parent[0]) {\n child = child.parentNode;\n }\n e.currentTarget = child;\n return fn.apply(this, [e]);\n });\n};\n\nvar getInputSelection = function (input) {\n var result = {};\n if (input === undefined) {\n console.warn('WARN getInputSelection cannot locate input control');\n return result;\n }\n if ('selectionStart' in input) {\n result.start = input.selectionStart;\n result.length = input.selectionEnd - result.start;\n } else if (document.selection) {\n input.focus();\n var sel = document.selection.createRange();\n var selLen = document.selection.createRange().text.length;\n sel.moveStart('character', -input.value.length);\n result.start = sel.text.length - selLen;\n result.length = selLen;\n }\n return result;\n};\n\nvar transferStyles = function ($from, $to, properties) {\n var i, n, styles = {};\n if (properties) {\n for (i = 0, n = properties.length; i < n; i++) {\n styles[properties[i]] = $from.css(properties[i]);\n }\n } else {\n styles = $from.css();\n }\n $to.css(styles);\n};\n\nvar measureString = function (str, $parent) {\n if (!str) {\n return 0;\n }\n\n if (!Selectize.$testInput) {\n Selectize.$testInput = $('').css({\n position: 'absolute',\n width: 'auto',\n padding: 0,\n whiteSpace: 'pre'\n });\n\n $('
').css({\n position: 'absolute',\n width: 0,\n height: 0,\n overflow: 'hidden'\n }).attr({\n 'aria-hidden': true\n }).append(Selectize.$testInput).appendTo('body');\n }\n\n Selectize.$testInput.text(str);\n\n transferStyles($parent, Selectize.$testInput, [\n 'letterSpacing',\n 'fontSize',\n 'fontFamily',\n 'fontWeight',\n 'textTransform'\n ]);\n\n return Selectize.$testInput.width();\n};\n\nvar autoGrow = function ($input) {\n var currentWidth = null;\n\n var update = function (e, options) {\n var value, keyCode, printable, width;\n var placeholder, placeholderWidth;\n var shift, character, selection;\n e = e || window.event || {};\n options = options || {};\n\n if (e.metaKey || e.altKey) return;\n if (!options.force && $input.data('grow') === false) return;\n\n value = $input.val();\n if (e.type && e.type.toLowerCase() === 'keydown') {\n keyCode = e.keyCode;\n printable = (\n (keyCode >= 48 && keyCode <= 57) || \n (keyCode >= 65 && keyCode <= 90) || \n (keyCode >= 96 && keyCode <= 111) || \n (keyCode >= 186 && keyCode <= 222) || \n keyCode === 32 \n );\n\n if (keyCode === KEY_DELETE || keyCode === KEY_BACKSPACE) {\n selection = getInputSelection($input[0]);\n if (selection.length) {\n value = value.substring(0, selection.start) + value.substring(selection.start + selection.length);\n } else if (keyCode === KEY_BACKSPACE && selection.start) {\n value = value.substring(0, selection.start - 1) + value.substring(selection.start + 1);\n } else if (keyCode === KEY_DELETE && typeof selection.start !== 'undefined') {\n value = value.substring(0, selection.start) + value.substring(selection.start + 1);\n }\n } else if (printable) {\n shift = e.shiftKey;\n character = String.fromCharCode(e.keyCode);\n if (shift) character = character.toUpperCase();\n else character = character.toLowerCase();\n value += character;\n }\n }\n\n var width = $input.attr('readonly') ? 0 : 4;\n placeholder = $input.attr('placeholder');\n if (placeholder) {\n placeholderWidth = measureString(placeholder, $input) + width;\n } else {\n placeholderWidth = 0;\n }\n\n width = Math.max(measureString(value, $input), placeholderWidth) + width;\n if (width !== currentWidth) {\n currentWidth = width;\n $input.width(width);\n $input.triggerHandler('resize');\n }\n };\n\n $input.on('keydown keyup update blur', update);\n update();\n};\n\nvar domToString = function (d) {\n var tmp = document.createElement('div');\n\n tmp.appendChild(d.cloneNode(true));\n\n return tmp.innerHTML;\n};\n\nvar logError = function (message, options) {\n if (!options) options = {};\n var component = \"Selectize\";\n\n console.error(component + \": \" + message)\n\n if (options.explanation) {\n if (console.group) console.group();\n console.error(options.explanation);\n if (console.group) console.groupEnd();\n }\n};\n\nvar isJSON = function (data) {\n try {\n JSON.parse(data);\n } catch (e) {\n return false;\n }\n return true;\n};\n\nfunction uaDetect(platform, re) {\n if (navigator.userAgentData) {\n return platform === navigator.userAgentData.platform;\n }\n\n return re.test(navigator.userAgent);\n}\n\nvar Selectize = function($input, settings) {\n\tvar key, i, n, dir, input, self = this;\n\tinput = $input[0];\n\tinput.selectize = self;\n\n\tvar computedStyle = window.getComputedStyle && window.getComputedStyle(input, null);\n\tdir = computedStyle ? computedStyle.getPropertyValue('direction') : input.currentStyle && input.currentStyle.direction;\n dir = dir || $input.parents('[dir]:first').attr('dir') || '';\n\n self.settings = {};\n\n\t$.extend(self, {\n\t\torder : 0,\n\t\tsettings : settings,\n\t\t$input : $input,\n\t\ttabIndex : $input.attr('tabindex') || '',\n\t\ttagType : input.tagName.toLowerCase() === 'select' ? TAG_SELECT : TAG_INPUT,\n\t\trtl : /rtl/i.test(dir),\n\n\t\teventNS : '.selectize' + (++Selectize.count),\n\t\thighlightedValue : null,\n\t\tisBlurring : false,\n\t\tisOpen : false,\n\t\tisDisabled : false,\n\t\tisRequired : $input.is('[required]'),\n\t\tisInvalid : false,\n\t\tisLocked : false,\n\t\tisFocused : false,\n\t\tisInputHidden : false,\n\t\tisSetup : false,\n\t\tisShiftDown : false,\n\t\tisCmdDown : false,\n\t\tisCtrlDown : false,\n\t\tignoreFocus : false,\n\t\tignoreBlur : false,\n\t\tignoreHover : false,\n\t\thasOptions : false,\n\t\tcurrentResults : null,\n\t\tlastValue : '',\n\t\tlastValidValue : '',\n\t\tlastOpenTarget : false,\n\t\tcaretPos : 0,\n\t\tloading : 0,\n\t\tloadedSearches : {},\n isDropdownClosing: false,\n\n\t\t$activeOption : null,\n\t\t$activeItems : [],\n\n\t\toptgroups : {},\n\t\toptions : {},\n\t\tuserOptions : {},\n\t\titems : [],\n\t\trenderCache : {},\n\t\tonSearchChange : settings.loadThrottle === null ? self.onSearchChange : debounce(self.onSearchChange, settings.loadThrottle)\n\t});\n\n\tself.sifter = new Sifter(this.options, {diacritics: settings.diacritics});\n\n\tif (self.settings.options) {\n\t\tfor (i = 0, n = self.settings.options.length; i < n; i++) {\n\t\t\tself.registerOption(self.settings.options[i]);\n\t\t}\n\t\tdelete self.settings.options;\n }\n\n\tif (self.settings.optgroups) {\n\t\tfor (i = 0, n = self.settings.optgroups.length; i < n; i++) {\n\t\t\tself.registerOptionGroup(self.settings.optgroups[i]);\n\t\t}\n\t\tdelete self.settings.optgroups;\n\t}\n\n\tself.settings.mode = self.settings.mode || (self.settings.maxItems === 1 ? 'single' : 'multi');\n\tif (typeof self.settings.hideSelected !== 'boolean') {\n\t\tself.settings.hideSelected = self.settings.mode === 'multi';\n\t}\n\n\tself.initializePlugins(self.settings.plugins);\n\tself.setupCallbacks();\n\tself.setupTemplates();\n\tself.setup();\n};\n\nMicroEvent.mixin(Selectize);\nMicroPlugin.mixin(Selectize);\n\n$.extend(Selectize.prototype, {\n\n\tsetup: function() {\n\t\tvar self = this;\n\t\tvar settings = self.settings;\n\t\tvar eventNS = self.eventNS;\n\t\tvar $window = $(window);\n\t\tvar $document = $(document);\n\t\tvar $input = self.$input;\n\n\t\tvar $wrapper;\n\t\tvar $control;\n\t\tvar $control_input;\n\t\tvar $dropdown;\n\t\tvar $dropdown_content;\n\t\tvar $dropdown_parent;\n\t\tvar inputMode;\n\t\tvar timeout_blur;\n\t\tvar timeout_focus;\n\t\tvar classes;\n\t\tvar classes_plugins;\n\t\tvar inputId;\n var noArrowClass;\n\n\t\tinputMode = self.settings.mode;\n classes = $input.attr('class') || '';\n noArrowClass = settings.showArrow ? '' : ' no-arrow';\n\n $wrapper = $('
').addClass(settings.wrapperClass).addClass(classes + ' selectize-control').addClass(inputMode);\n\t\t$control = $('
').addClass(settings.inputClass + noArrowClass + ' selectize-input items').appendTo($wrapper);\n\t\t$control_input = $('').appendTo($control).attr('tabindex', $input.is(':disabled') ? '-1' : self.tabIndex);\n\t\t$dropdown_parent = $(settings.dropdownParent || $wrapper);\n\t\t$dropdown = $('
').addClass(settings.dropdownClass).addClass(inputMode + ' selectize-dropdown').hide().appendTo($dropdown_parent);\n\t\t$dropdown_content = $('
').addClass(settings.dropdownContentClass + ' selectize-dropdown-content').attr('tabindex', '-1').appendTo($dropdown);\n\n\t\tif(inputId = $input.attr('id')) {\n\t\t\t$control_input.attr('id', inputId + '-selectized');\n\t\t\t$(\"label[for='\"+inputId+\"']\").attr('for', inputId + '-selectized');\n\t\t}\n\n\t\tif(self.settings.copyClassesToDropdown) {\n\t\t\t$dropdown.addClass(classes);\n\t\t}\n\n\t\t$wrapper.css({\n\t\t\twidth: $input[0].style.width\n\t\t});\n\n\t\tif (self.plugins.names.length) {\n\t\t\tclasses_plugins = 'plugin-' + self.plugins.names.join(' plugin-');\n\t\t\t$wrapper.addClass(classes_plugins);\n\t\t\t$dropdown.addClass(classes_plugins);\n\t\t}\n\n\t\tif ((settings.maxItems === null || settings.maxItems > 1) && self.tagType === TAG_SELECT) {\n\t\t\t$input.attr('multiple', 'multiple');\n\t\t}\n\n\t\tif (self.settings.placeholder) {\n\t\t\t$control_input.attr('placeholder', settings.placeholder);\n\t\t}\n\n if (!self.settings.search) {\n $control_input.attr('readonly', true);\n\t $control_input.attr('inputmode', 'none');\n $control.css('cursor', 'pointer');\n }\n\n\t\tif (!self.settings.splitOn && self.settings.delimiter) {\n\t\t\tvar delimiterEscaped = self.settings.delimiter.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t\t\tself.settings.splitOn = new RegExp('\\\\s*' + delimiterEscaped + '+\\\\s*');\n\t\t}\n\n\t\tif ($input.attr('autocorrect')) {\n\t\t\t$control_input.attr('autocorrect', $input.attr('autocorrect'));\n\t\t}\n\n\t\tif ($input.attr('autocapitalize')) {\n\t\t\t$control_input.attr('autocapitalize', $input.attr('autocapitalize'));\n\t\t}\n\t\tif ($input.is('input')) {\n\t\t\t$control_input[0].type = $input[0].type;\n\t\t}\n\n\t\tself.$wrapper = $wrapper;\n\t\tself.$control = $control;\n\t\tself.$control_input = $control_input;\n\t\tself.$dropdown = $dropdown;\n\t\tself.$dropdown_content = $dropdown_content;\n\n\t\t$dropdown.on('mouseenter mousedown mouseup click', '[data-disabled]>[data-selectable]', function(e) { e.stopImmediatePropagation(); });\n\t\t$dropdown.on('mouseenter', '[data-selectable]', function() { return self.onOptionHover.apply(self, arguments); });\n\t\t$dropdown.on('mouseup click', '[data-selectable]', function() { return self.onOptionSelect.apply(self, arguments); });\n\t\twatchChildEvent($control, 'mouseup', '*:not(input)', function() { return self.onItemSelect.apply(self, arguments); });\n\t\tautoGrow($control_input);\n\n\t\t$control.on({\n\t\t\tmousedown : function() { return self.onMouseDown.apply(self, arguments); },\n\t\t\tclick : function() { return self.onClick.apply(self, arguments); }\n\t\t});\n\n\t\t$control_input.on({\n\t\t\tmousedown : function(e) {\n\t\t\t\tif (self.$control_input.val() !== '' || self.settings.openOnFocus) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t}\n\t\t\t},\n\t\t\tkeydown : function() { return self.onKeyDown.apply(self, arguments); },\n\t\t\tkeypress : function() { return self.onKeyPress.apply(self, arguments); },\n\t\t\tinput : function() { return self.onInput.apply(self, arguments); },\n\t\t\tresize : function() { self.positionDropdown.apply(self, []); },\n\t\t\tblur : function() { return self.onBlur.apply(self, arguments); },\n\t\t\tfocus : function() { return self.onFocus.apply(self, arguments); },\n\t\t\tpaste : function() { return self.onPaste.apply(self, arguments); }\n\t\t});\n\n\t\t$document.on('keydown' + eventNS, function(e) {\n\t\t\tself.isCmdDown = e[IS_MAC ? 'metaKey' : 'ctrlKey'];\n\t\t\tself.isCtrlDown = e[IS_MAC ? 'altKey' : 'ctrlKey'];\n\t\t\tself.isShiftDown = e.shiftKey;\n\t\t});\n\n\t\t$document.on('keyup' + eventNS, function(e) {\n\t\t\tif (e.keyCode === KEY_CTRL) self.isCtrlDown = false;\n\t\t\tif (e.keyCode === KEY_SHIFT) self.isShiftDown = false;\n\t\t\tif (e.keyCode === KEY_CMD) self.isCmdDown = false;\n\t\t});\n\n\t\t$document.on('mousedown' + eventNS, function(e) {\n\t\t\tif (self.isFocused) {\n\t\t\t\tif (\n\t\t\t\t\te.target === self.$dropdown[0] ||\n\t\t\t\t\tself.$dropdown.has(e.target).length)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (e.target !== self.$control[0]) {\n\t\t\t\t\tself.blur(e.target);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t$window.on(['scroll' + eventNS, 'resize' + eventNS].join(' '), function() {\n\t\t\tif (self.isOpen) {\n\t\t\t\tself.positionDropdown.apply(self, arguments);\n\t\t\t}\n\t\t});\n\t\t$window.on('mousemove' + eventNS, function() {\n self.ignoreHover = self.settings.ignoreHover;\n\t\t});\n\n var inputPlaceholder = $('
');\n\t\tvar inputChildren = $input.children().detach();\n\n $input.replaceWith(inputPlaceholder);\n inputPlaceholder.replaceWith($input);\n\n this.revertSettings = {\n\t\t\t$children : inputChildren,\n\t\t\ttabindex : $input.attr('tabindex')\n\t\t};\n\n\t\t$input.attr('tabindex', -1).hide().after(self.$wrapper);\n\n\t\tif (Array.isArray(settings.items)) {\n\t\t\tself.lastValidValue = settings.items;\n\t\t\tself.setValue(settings.items);\n\t\t\tdelete settings.items;\n\t\t}\n\n\t\tif (SUPPORTS_VALIDITY_API) {\n\t\t\t$input.on('invalid' + eventNS, function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.isInvalid = true;\n\t\t\t\tself.refreshState();\n\t\t\t});\n\t\t}\n\n\t\tself.updateOriginalInput();\n\t\tself.refreshItems();\n\t\tself.refreshState();\n\t\tself.updatePlaceholder();\n\t\tself.isSetup = true;\n\n\t\tif ($input.is(':disabled')) {\n\t\t\tself.disable();\n\t\t}\n\n\t\tself.on('change', this.onChange);\n\n\t\t$input.data('selectize', self);\n\t\t$input.addClass('selectized');\n\t\tself.trigger('initialize');\n\n\t\tif (settings.preload === true) {\n\t\t\tself.onSearchChange('');\n\t\t}\n\n\t},\n\n\tsetupTemplates: function() {\n\t\tvar self = this;\n\t\tvar field_label = self.settings.labelField;\n\t\tvar field_value = self.settings.valueField;\n\t\tvar field_optgroup = self.settings.optgroupLabelField;\n\n\t\tvar templates = {\n\t\t\t'optgroup': function(data) {\n\t\t\t\treturn '
' + data.html + '
';\n\t\t\t},\n\t\t\t'optgroup_header': function(data, escape) {\n\t\t\t\treturn '
' + escape(data[field_optgroup]) + '
';\n\t\t\t},\n\t\t\t'option': function(data, escape) {\n var classes = data.classes ? ' ' + data.classes : '';\n classes += data[field_value] === '' ? ' selectize-dropdown-emptyoptionlabel' : '';\n\n var styles = data.styles ? ' style=\"' + data.styles + '\"': '';\n\t\t\t\treturn '' + escape(data[field_label]) + '
';\n\t\t\t},\n\t\t\t'item': function(data, escape) {\n\t\t\t\treturn '
' + escape(data[field_label]) + '
';\n\t\t\t},\n\t\t\t'option_create': function(data, escape) {\n\t\t\t\treturn '
Add ' + escape(data.input) + '
';\n\t\t\t}\n\t\t};\n\n\t\tself.settings.render = $.extend({}, templates, self.settings.render);\n\t},\n\n\tsetupCallbacks: function() {\n\t\tvar key, fn, callbacks = {\n\t\t\t'initialize' : 'onInitialize',\n\t\t\t'change' : 'onChange',\n\t\t\t'item_add' : 'onItemAdd',\n\t\t\t'item_remove' : 'onItemRemove',\n\t\t\t'clear' : 'onClear',\n\t\t\t'option_add' : 'onOptionAdd',\n\t\t\t'option_remove' : 'onOptionRemove',\n\t\t\t'option_clear' : 'onOptionClear',\n\t\t\t'optgroup_add' : 'onOptionGroupAdd',\n\t\t\t'optgroup_remove' : 'onOptionGroupRemove',\n\t\t\t'optgroup_clear' : 'onOptionGroupClear',\n\t\t\t'dropdown_open' : 'onDropdownOpen',\n\t\t\t'dropdown_close' : 'onDropdownClose',\n\t\t\t'type' : 'onType',\n\t\t\t'load' : 'onLoad',\n\t\t\t'focus' : 'onFocus',\n\t\t\t'blur' : 'onBlur',\n\t\t\t'dropdown_item_activate' : 'onDropdownItemActivate',\n\t\t\t'dropdown_item_deactivate' : 'onDropdownItemDeactivate'\n\t\t};\n\n\t\tfor (key in callbacks) {\n\t\t\tif (callbacks.hasOwnProperty(key)) {\n\t\t\t\tfn = this.settings[callbacks[key]];\n\t\t\t\tif (fn) this.on(key, fn);\n\t\t\t}\n\t\t}\n\t},\n\n\tonClick: function(e) {\n\t\tvar self = this;\n\n if (self.isDropdownClosing) {\n return;\n }\n\n\t\tif (!self.isFocused || !self.isOpen) {\n\t\t\tself.focus();\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\n\tonMouseDown: function(e) {\n\t\tvar self = this;\n\t\tvar defaultPrevented = e.isDefaultPrevented();\n\t\tvar $target = $(e.target);\n\n\t\tif (!self.isFocused) {\n\t\t\tif (!defaultPrevented) {\n window.setTimeout(function () {\n if (!self.isOpen) {\n self.focus();\n }\n }, 0);\n\t\t\t}\n\t\t}\n\t\tif ($target !== self.$control_input[0] || self.$control_input.val() === '') {\n\t\t\tif (self.settings.mode === 'single') {\n\t\t\t\tself.isOpen ? self.close() : self.open();\n\t\t\t} else {\n\t\t\t\tif (!defaultPrevented) {\n\t\t\t\t\t\tself.setActiveItem(null);\n\t\t\t\t}\n\t\t\t\tif (!self.settings.openOnFocus) {\n\t\t\t\t\tif (self.isOpen && $target === self.lastOpenTarget) {\n\t\t\t\t\t\tself.close();\n\t\t\t\t\t\tself.lastOpenTarget = false;\n\t\t\t\t\t} else if (!self.isOpen) {\n\t\t\t\t\t\tself.refreshOptions();\n\t\t\t\t\t\tself.open();\n\t\t\t\t\t\tself.lastOpenTarget = $target;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.lastOpenTarget = $target;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t},\n\n\tonChange: function() {\n\t\tvar self = this;\n\t\tif (self.getValue() !== \"\") {\n\t\t\tself.lastValidValue = self.getValue();\n\t\t}\n\t\tthis.$input.trigger('input');\n\t\tthis.$input.trigger('change');\n\t},\n\n\tonPaste: function(e) {\n\t\tvar self = this;\n\n\t\tif (self.isFull() || self.isInputHidden || self.isLocked) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (self.settings.splitOn) {\n\n\t\t\tsetTimeout(function() {\n\t\t\t\tvar pastedText = self.$control_input.val();\n\t\t\t\tif(!pastedText.match(self.settings.splitOn)){ return }\n\n\t\t\t\tvar splitInput = pastedText\n\t\t\t\t\t.trim()\n\t\t\t\t\t.split(self.settings.splitOn);\n\t\t\t\tfor (var i = 0, n = splitInput.length; i < n; i++) {\n\t\t\t\t\tself.createItem(splitInput[i]);\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t}\n\t},\n\n\tonKeyPress: function(e) {\n\t\tif (this.isLocked) return e && e.preventDefault();\n\t\tvar character = String.fromCharCode(e.keyCode || e.which);\n\t\tif (this.settings.create && this.settings.mode === 'multi' && character === this.settings.delimiter) {\n\t\t\tthis.createItem();\n\t\t\te.preventDefault();\n\t\t\treturn false;\n\t\t}\n\t},\n\n\tonKeyDown: function(e) {\n\t\tvar isInput = e.target === this.$control_input[0];\n\t\tvar self = this;\n\n\t\tif (self.isLocked) {\n\t\t\tif (e.keyCode !== KEY_TAB) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tswitch (e.keyCode) {\n\t\t\tcase KEY_A:\n\t\t\t\tif (self.isCmdDown) {\n\t\t\t\t\tself.selectAll();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase KEY_ESC:\n\t\t\t\tif (self.isOpen) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tself.close();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tcase KEY_N:\n\t\t\t\tif (!e.ctrlKey || e.altKey) break;\n\t\t\tcase KEY_DOWN:\n\t\t\t\tif (!self.isOpen && self.hasOptions) {\n\t\t\t\t\tself.open();\n\t\t\t\t} else if (self.$activeOption) {\n\t\t\t\t\tself.ignoreHover = true;\n\t\t\t\t\tvar $next = self.getAdjacentOption(self.$activeOption, 1);\n\t\t\t\t\tif ($next.length) self.setActiveOption($next, true, true);\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t\treturn;\n\t\t\tcase KEY_P:\n\t\t\t\tif (!e.ctrlKey || e.altKey) break;\n\t\t\tcase KEY_UP:\n\t\t\t\tif (self.$activeOption) {\n\t\t\t\t\tself.ignoreHover = true;\n\t\t\t\t\tvar $prev = self.getAdjacentOption(self.$activeOption, -1);\n\t\t\t\t\tif ($prev.length) self.setActiveOption($prev, true, true);\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t\treturn;\n\t\t\tcase KEY_RETURN:\n\t\t\t\tif (self.isOpen && self.$activeOption) {\n\t\t\t\t\tself.onOptionSelect({currentTarget: self.$activeOption});\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tcase KEY_LEFT:\n\t\t\t\tself.advanceSelection(-1, e);\n\t\t\t\treturn;\n\t\t\tcase KEY_RIGHT:\n\t\t\t\tself.advanceSelection(1, e);\n\t\t\t\treturn;\n\t\t\tcase KEY_TAB:\n\t\t\t\tif (self.settings.selectOnTab && self.isOpen && self.$activeOption) {\n\t\t\t\t\tself.onOptionSelect({currentTarget: self.$activeOption});\n\n\t\t\t\t\tif (!self.isFull()) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (self.settings.create && self.createItem() && self.settings.showAddOptionOnCreate) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tcase KEY_BACKSPACE:\n\t\t\tcase KEY_DELETE:\n\t\t\t\tself.deleteSelection(e);\n\t\t\t\treturn;\n\t\t}\n\n\t\tif ((self.isFull() || self.isInputHidden) && !(IS_MAC ? e.metaKey : e.ctrlKey)) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\t},\n\n\tonInput: function(e) {\n\t\tvar self = this;\n\n\t\tvar value = self.$control_input.val() || '';\n\t\tif (self.lastValue !== value) {\n\t\t\tself.lastValue = value;\n\t\t\tself.onSearchChange(value);\n\t\t\tself.refreshOptions();\n\t\t\tself.trigger('type', value);\n\t\t}\n\t},\n\n\tonSearchChange: function(value) {\n\t\tvar self = this;\n\t\tvar fn = self.settings.load;\n\t\tif (!fn) return;\n\t\tif (self.loadedSearches.hasOwnProperty(value)) return;\n\t\tself.loadedSearches[value] = true;\n\t\tself.load(function(callback) {\n\t\t\tfn.apply(self, [value, callback]);\n\t\t});\n\t},\n\n\tonFocus: function(e) {\n\t\tvar self = this;\n\t\tvar wasFocused = self.isFocused;\n\n\t\tif (self.isDisabled) {\n\t\t\tself.blur();\n\t\t\te && e.preventDefault();\n\t\t\treturn false;\n\t\t}\n\n\t\tif (self.ignoreFocus) return;\n\t\tself.isFocused = true;\n\t\tif (self.settings.preload === 'focus') self.onSearchChange('');\n\n\t\tif (!wasFocused) self.trigger('focus');\n\n\t\tif (!self.$activeItems.length) {\n\t\t\tself.showInput();\n\t\t\tself.setActiveItem(null);\n\t\t\tself.refreshOptions(!!self.settings.openOnFocus);\n\t\t}\n\n\t\tself.refreshState();\n\t},\n\n\tonBlur: function(e, dest) {\n\t\tvar self = this;\n\n\t\tif (!self.isFocused) return;\n\t\tself.isFocused = false;\n\n\t\tif (self.ignoreFocus) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar deactivate = function() {\n\t\t\tself.close();\n\t\t\tself.setTextboxValue('');\n\t\t\tself.setActiveItem(null);\n\t\t\tself.setActiveOption(null);\n\t\t\tself.setCaret(self.items.length);\n\t\t\tself.refreshState();\n\n\t\t\tdest && dest.focus && dest.focus();\n\n\t\t\tself.isBlurring = false;\n\t\t\tself.ignoreFocus = false;\n\t\t\tself.trigger('blur');\n\t\t};\n\n\t\tself.isBlurring = true;\n\t\tself.ignoreFocus = true;\n\t\tif (self.settings.create && self.settings.createOnBlur) {\n\t\t\tself.createItem(null, false, deactivate);\n\t\t} else {\n\t\t\tdeactivate();\n\t\t}\n\t},\n\n\tonOptionHover: function(e) {\n\t\tif (this.ignoreHover) return;\n\t\tthis.setActiveOption(e.currentTarget, false);\n\t},\n\n\tonOptionSelect: function(e) {\n\t\tvar value, $target, $option, self = this;\n\n\t\tif (e.preventDefault) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\t$target = $(e.currentTarget);\n\t\tif ($target.hasClass('create')) {\n\t\t\tself.createItem(null, function() {\n\t\t\t\tif (self.settings.closeAfterSelect) {\n\t\t\t\t\tself.close();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tvalue = $target.attr('data-value');\n\t\t\tif (typeof value !== 'undefined') {\n\t\t\t\tself.lastQuery = null;\n\t\t\t\tself.setTextboxValue('');\n\t\t\t\tself.addItem(value);\n\t\t\t\tif (self.settings.closeAfterSelect) {\n\t\t\t\t\tself.close();\n\t\t\t\t} else if (!self.settings.hideSelected && e.type && /mouse/.test(e.type)) {\n\t\t\t\t\tself.setActiveOption(self.getOption(value));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tonItemSelect: function(e) {\n\t\tvar self = this;\n\n\t\tif (self.isLocked) return;\n\t\tif (self.settings.mode === 'multi') {\n\t\t\te.preventDefault();\n\t\t\tself.setActiveItem(e.currentTarget, e);\n\t\t}\n\t},\n\n\tload: function(fn) {\n\t\tvar self = this;\n\t\tvar $wrapper = self.$wrapper.addClass(self.settings.loadingClass);\n\n\t\tself.loading++;\n\t\tfn.apply(self, [function(results) {\n\t\t\tself.loading = Math.max(self.loading - 1, 0);\n\t\t\tif (results && results.length) {\n\t\t\t\tself.addOption(results);\n\t\t\t\tself.refreshOptions(self.isFocused && !self.isInputHidden);\n\t\t\t}\n\t\t\tif (!self.loading) {\n\t\t\t\t$wrapper.removeClass(self.settings.loadingClass);\n\t\t\t}\n\t\t\tself.trigger('load', results);\n\t\t}]);\n\t},\n\n\tgetTextboxValue: function() {\n\t\tvar $input = this.$control_input;\n\t\treturn $input.val();\n\t},\n\n\tsetTextboxValue: function(value) {\n\t\tvar $input = this.$control_input;\n\t\tvar changed = $input.val() !== value;\n\t\tif (changed) {\n\t\t\t$input.val(value).triggerHandler('update');\n\t\t\tthis.lastValue = value;\n\t\t}\n\t},\n\n\tgetValue: function() {\n\t\tif (this.tagType === TAG_SELECT && this.$input.attr('multiple')) {\n\t\t\treturn this.items;\n\t\t} else {\n\t\t\treturn this.items.join(this.settings.delimiter);\n\t\t}\n\t},\n\n\tsetValue: function(value, silent) {\n\t\tconst items = Array.isArray(value) ? value : [value];\n\t\tif (items.join('') === this.items.join('')) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar events = silent ? [] : ['change'];\n\n\t\tdebounce_events(this, events, function() {\n\t\t\tthis.clear(silent);\n\t\t\tthis.addItems(value, silent);\n\t\t});\n\t},\n\n\tsetMaxItems: function(value){\n\t\tif(value === 0) value = null; \n\t\tthis.settings.maxItems = value;\n\t\tthis.settings.mode = this.settings.mode || (this.settings.maxItems === 1 ? 'single' : 'multi');\n\t\tthis.refreshState();\n\t},\n\n\tsetActiveItem: function($item, e) {\n\t\tvar self = this;\n\t\tvar eventName;\n\t\tvar i, idx, begin, end, item, swap;\n\t\tvar $last;\n\n\t\tif (self.settings.mode === 'single') return;\n\t\t$item = $($item);\n\n\t\tif (!$item.length) {\n\t\t\t$(self.$activeItems).removeClass('active');\n\t\t\tself.$activeItems = [];\n\t\t\tif (self.isFocused) {\n\t\t\t\tself.showInput();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\teventName = e && e.type.toLowerCase();\n\n\t\tif (eventName === 'mousedown' && self.isShiftDown && self.$activeItems.length) {\n\t\t\t$last = self.$control.children('.active:last');\n\t\t\tbegin = Array.prototype.indexOf.apply(self.$control[0].childNodes, [$last[0]]);\n\t\t\tend = Array.prototype.indexOf.apply(self.$control[0].childNodes, [$item[0]]);\n\t\t\tif (begin > end) {\n\t\t\t\tswap = begin;\n\t\t\t\tbegin = end;\n\t\t\t\tend = swap;\n\t\t\t}\n\t\t\tfor (i = begin; i <= end; i++) {\n\t\t\t\titem = self.$control[0].childNodes[i];\n\t\t\t\tif (self.$activeItems.indexOf(item) === -1) {\n\t\t\t\t\t$(item).addClass('active');\n\t\t\t\t\tself.$activeItems.push(item);\n\t\t\t\t}\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t} else if ((eventName === 'mousedown' && self.isCtrlDown) || (eventName === 'keydown' && this.isShiftDown)) {\n\t\t\tif ($item.hasClass('active')) {\n\t\t\t\tidx = self.$activeItems.indexOf($item[0]);\n\t\t\t\tself.$activeItems.splice(idx, 1);\n\t\t\t\t$item.removeClass('active');\n\t\t\t} else {\n\t\t\t\tself.$activeItems.push($item.addClass('active')[0]);\n\t\t\t}\n\t\t} else {\n\t\t\t$(self.$activeItems).removeClass('active');\n\t\t\tself.$activeItems = [$item.addClass('active')[0]];\n\t\t}\n\n\t\tself.hideInput();\n\t\tif (!this.isFocused) {\n\t\t\tself.focus();\n\t\t}\n\t},\n\n\tsetActiveOption: function($option, scroll, animate) {\n\t\tvar height_menu, height_item, y;\n\t\tvar scroll_top, scroll_bottom;\n\t\tvar self = this;\n\n\t\tif (self.$activeOption) {\n\t\t\tself.$activeOption.removeClass('active');\n\t\t\tself.trigger('dropdown_item_deactivate', self.$activeOption.attr('data-value'));\n\t\t}\n\t\tself.$activeOption = null;\n\n\t\t$option = $($option);\n\t\tif (!$option.length) return;\n\n\t\tself.$activeOption = $option.addClass('active');\n\t\tif (self.isOpen) self.trigger('dropdown_item_activate', self.$activeOption.attr('data-value'));\n\n\t\tif (scroll || !isset(scroll)) {\n\n\t\t\theight_menu = self.$dropdown_content.height();\n\t\t\theight_item = self.$activeOption.outerHeight(true);\n\t\t\tscroll = self.$dropdown_content.scrollTop() || 0;\n\t\t\ty = self.$activeOption.offset().top - self.$dropdown_content.offset().top + scroll;\n\t\t\tscroll_top = y;\n\t\t\tscroll_bottom = y - height_menu + height_item;\n\n\t\t\tif (y + height_item > height_menu + scroll) {\n\t\t\t\tself.$dropdown_content.stop().animate({scrollTop: scroll_bottom}, animate ? self.settings.scrollDuration : 0);\n\t\t\t} else if (y < scroll) {\n\t\t\t\tself.$dropdown_content.stop().animate({scrollTop: scroll_top}, animate ? self.settings.scrollDuration : 0);\n\t\t\t}\n\n\t\t}\n\t},\n\n\tselectAll: function() {\n\t\tvar self = this;\n\t\tif (self.settings.mode === 'single') return;\n\n\t\tself.$activeItems = Array.prototype.slice.apply(self.$control.children(':not(input)').addClass('active'));\n\t\tif (self.$activeItems.length) {\n\t\t\tself.hideInput();\n\t\t\tself.close();\n\t\t}\n\t\tself.focus();\n\t},\n\n\thideInput: function() {\n\t\tvar self = this;\n\n\t\tself.setTextboxValue('');\n\t\tself.$control_input.css({opacity: 0, position: 'absolute', left: self.rtl ? 10000 : 0});\n\t\tself.isInputHidden = true;\n\t},\n\n\tshowInput: function() {\n\t\tthis.$control_input.css({opacity: 1, position: 'relative', left: 0});\n\t\tthis.isInputHidden = false;\n\t},\n\n\tfocus: function() {\n\t\tvar self = this;\n\t\tif (self.isDisabled) return self;\n\n\t\tself.ignoreFocus = true;\n\t\tself.$control_input[0].focus();\n\t\twindow.setTimeout(function() {\n\t\t\tself.ignoreFocus = false;\n\t\t\tself.onFocus();\n\t\t}, 0);\n\t\treturn self;\n\t},\n\n\tblur: function(dest) {\n\t\tthis.$control_input[0].blur();\n\t\tthis.onBlur(null, dest);\n\t\treturn this;\n\t},\n\n\tgetScoreFunction: function(query) {\n\t\treturn this.sifter.getScoreFunction(query, this.getSearchOptions());\n\t},\n\n\tgetSearchOptions: function() {\n\t\tvar settings = this.settings;\n\t\tvar sort = settings.sortField;\n\t\tif (typeof sort === 'string') {\n\t\t\tsort = [{field: sort}];\n\t\t}\n\n\t\treturn {\n\t\t\tfields : settings.searchField,\n\t\t\tconjunction : settings.searchConjunction,\n\t\t\tsort : sort,\n\t\t\tnesting : settings.nesting,\n filter : settings.filter,\n respect_word_boundaries : settings.respect_word_boundaries\n\t\t};\n\t},\n\n\tsearch: function(query) {\n\t\tvar i, value, score, result, calculateScore;\n\t\tvar self = this;\n\t\tvar settings = self.settings;\n\t\tvar options = this.getSearchOptions();\n\n\t\tif (settings.score) {\n\t\t\tcalculateScore = self.settings.score.apply(this, [query]);\n\t\t\tif (typeof calculateScore !== 'function') {\n\t\t\t\tthrow new Error('Selectize \"score\" setting must be a function that returns a function');\n\t\t\t}\n\t\t}\n\n if (query !== self.lastQuery) {\n if (settings.normalize) query = query.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n\t\t\tself.lastQuery = query;\n\t\t\tresult = self.sifter.search(query, $.extend(options, {score: calculateScore}));\n\t\t\tself.currentResults = result;\n\t\t} else {\n\t\t\tresult = $.extend(true, {}, self.currentResults);\n\t\t}\n\n\t\tif (settings.hideSelected) {\n\t\t\tfor (i = result.items.length - 1; i >= 0; i--) {\n\t\t\t\tif (self.items.indexOf(hash_key(result.items[i].id)) !== -1) {\n\t\t\t\t\tresult.items.splice(i, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t},\n\n\trefreshOptions: function(triggerDropdown) {\n\t\tvar i, j, k, n, groups, groups_order, option, option_html, optgroup, optgroups, html, html_children, has_create_option;\n\t\tvar $active, $active_before, $create;\n\n\t\tif (typeof triggerDropdown === 'undefined') {\n\t\t\ttriggerDropdown = true;\n\t\t}\n\n\t\tvar self = this;\n\t\tvar query = (self.$control_input.val()).trim();\n\t\tvar results = self.search(query);\n\t\tvar $dropdown_content = self.$dropdown_content;\n\t\tvar active_before = self.$activeOption && hash_key(self.$activeOption.attr('data-value'));\n\n\t\tn = results.items.length;\n\t\tif (typeof self.settings.maxOptions === 'number') {\n\t\t\tn = Math.min(n, self.settings.maxOptions);\n\t\t}\n\n\t\tgroups = {};\n\t\tgroups_order = [];\n\n\t\tfor (i = 0; i < n; i++) {\n\t\t\toption = self.options[results.items[i].id];\n\t\t\toption_html = self.render('option', option);\n\t\t\toptgroup = option[self.settings.optgroupField] || '';\n\t\t\toptgroups = Array.isArray(optgroup) ? optgroup : [optgroup];\n\n\t\t\tfor (j = 0, k = optgroups && optgroups.length; j < k; j++) {\n\t\t\t\toptgroup = optgroups[j];\n\t\t\t\tif (!self.optgroups.hasOwnProperty(optgroup) && typeof self.settings.optionGroupRegister === 'function') {\n\t\t\t\t\tvar regGroup;\n\t\t\t\t\tif (regGroup = self.settings.optionGroupRegister.apply(self, [optgroup])) {\n\t\t\t\t\t\tself.registerOptionGroup(regGroup);\n\t\t\t\t\t}\n\t\t\t\t}\n if (!self.optgroups.hasOwnProperty(optgroup)) {\n\t\t\t\t\toptgroup = '';\n\t\t\t\t}\n\t\t\t\tif (!groups.hasOwnProperty(optgroup)) {\n\t\t\t\t\tgroups[optgroup] = document.createDocumentFragment();\n\t\t\t\t\tgroups_order.push(optgroup);\n\t\t\t\t}\n\t\t\t\tgroups[optgroup].appendChild(option_html);\n\t\t\t}\n\t\t}\n\n\t\tif (this.settings.lockOptgroupOrder) {\n\t\t\tgroups_order.sort(function(a, b) {\n\t\t\t\tvar a_order = self.optgroups[a] && self.optgroups[a].$order || 0;\n\t\t\t\tvar b_order = self.optgroups[b] && self.optgroups[b].$order || 0;\n\t\t\t\treturn a_order - b_order;\n\t\t\t});\n\t\t}\n\n\t\thtml = document.createDocumentFragment();\n\t\tfor (i = 0, n = groups_order.length; i < n; i++) {\n\t\t\toptgroup = groups_order[i];\n\t\t\tif (self.optgroups.hasOwnProperty(optgroup) && groups[optgroup].childNodes.length) {\n\t\t\t\thtml_children = document.createDocumentFragment();\n\t\t\t\thtml_children.appendChild(self.render('optgroup_header', self.optgroups[optgroup]));\n\t\t\t\thtml_children.appendChild(groups[optgroup]);\n\n\t\t\t\thtml.appendChild(self.render('optgroup', $.extend({}, self.optgroups[optgroup], {\n\t\t\t\t\thtml: domToString(html_children),\n\t\t\t\t\tdom: html_children\n\t\t\t\t})));\n\t\t\t} else {\n\t\t\t\thtml.appendChild(groups[optgroup]);\n\t\t\t}\n\t\t}\n\n\t\t$dropdown_content.html(html);\n\n\t\tif (self.settings.highlight) {\n\t\t\t$dropdown_content.removeHighlight();\n\t\t\tif (results.query.length && results.tokens.length) {\n\t\t\t\tfor (i = 0, n = results.tokens.length; i < n; i++) {\n\t\t\t\t\thighlight($dropdown_content, results.tokens[i].regex);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!self.settings.hideSelected) {\n\t\t\tself.$dropdown.find('.selected').removeClass('selected');\n\n\t\t\tfor (i = 0, n = self.items.length; i < n; i++) {\n\t\t\t\tself.getOption(self.items[i]).addClass('selected');\n\t\t\t}\n\t\t}\n\n\t\tif (self.settings.dropdownSize.sizeType !== 'auto' && self.isOpen) {\n\t\t\tself.setupDropdownHeight();\n\t\t}\n\n\t\tself.positionDropdown();\n\n\t\thas_create_option = self.canCreate(query);\n\t\tif (has_create_option) {\n\t\t\tif(self.settings.showAddOptionOnCreate) {\n\t\t\t\t$dropdown_content.prepend(self.render('option_create', {input: query}));\n\t\t\t\t$create = $($dropdown_content[0].childNodes[0]);\n\t\t\t}\n\t\t}\n\n\t\tself.hasOptions = results.items.length > 0 || ( has_create_option && self.settings.showAddOptionOnCreate ) || self.settings.setFirstOptionActive;\n\n\t\tif (self.hasOptions) {\n \t\tif (results.items.length > 0) {\n\t\t\t$active_before = active_before && self.getOption(active_before);\n\t\t\tif (results.query !== \"\" && self.settings.setFirstOptionActive) {\n\t\t\t$active = $dropdown_content.find('[data-selectable]:first')\n\t\t\t} else if (results.query !== \"\" && $active_before && $active_before.length) {\n\t\t\t$active = $active_before;\n\t\t\t} else if (self.settings.mode === 'single' && self.items.length) {\n\t\t\t$active = self.getOption(self.items[0]);\n\t\t\t}\n\t\t\tif (!$active || !$active.length) {\n\t\t\tif ($create && !self.settings.addPrecedence) {\n\t\t\t\t$active = self.getAdjacentOption($create, 1);\n\t\t\t} else {\n\t\t\t\t$active = $dropdown_content.find('[data-selectable]:first');\n\t\t\t}\n\t\t\t}\n\t\t\t} else {\n\t\t\t\t$active = $create;\n\t\t\t}\n\t\t\tself.setActiveOption($active);\n\t\t\tif (triggerDropdown && !self.isOpen) { self.open(); }\n\t\t} else {\n\t\t\tself.setActiveOption(null);\n\t\t\tif (triggerDropdown && self.isOpen) { self.close(); }\n\t\t}\n\t},\n\n\taddOption: function(data) {\n\t\tvar i, n, value, self = this;\n\n\t\tif (Array.isArray(data)) {\n\t\t\tfor (i = 0, n = data.length; i < n; i++) {\n\t\t\t\tself.addOption(data[i]);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (value = self.registerOption(data)) {\n\t\t\tself.userOptions[value] = true;\n\t\t\tself.lastQuery = null;\n\t\t\tself.trigger('option_add', value, data);\n\t\t}\n\t},\n\n\tregisterOption: function(data) {\n\t\tvar key = hash_key(data[this.settings.valueField]);\n\t\tif (typeof key === 'undefined' || key === null || this.options.hasOwnProperty(key)) return false;\n\t\tdata.$order = data.$order || ++this.order;\n\t\tthis.options[key] = data;\n\t\treturn key;\n\t},\n\n\tregisterOptionGroup: function(data) {\n\t\tvar key = hash_key(data[this.settings.optgroupValueField]);\n\t\tif (!key) return false;\n\n\t\tdata.$order = data.$order || ++this.order;\n\t\tthis.optgroups[key] = data;\n\t\treturn key;\n\t},\n\n\taddOptionGroup: function(id, data) {\n\t\tdata[this.settings.optgroupValueField] = id;\n\t\tif (id = this.registerOptionGroup(data)) {\n\t\t\tthis.trigger('optgroup_add', id, data);\n\t\t}\n\t},\n\n\tremoveOptionGroup: function(id) {\n\t\tif (this.optgroups.hasOwnProperty(id)) {\n\t\t\tdelete this.optgroups[id];\n\t\t\tthis.renderCache = {};\n\t\t\tthis.trigger('optgroup_remove', id);\n\t\t}\n\t},\n\n\tclearOptionGroups: function() {\n\t\tthis.optgroups = {};\n\t\tthis.renderCache = {};\n\t\tthis.trigger('optgroup_clear');\n\t},\n\n\tupdateOption: function(value, data) {\n\t\tvar self = this;\n\t\tvar $item, $item_new;\n\t\tvar value_new, index_item, cache_items, cache_options, order_old;\n\n\t\tvalue = hash_key(value);\n\t\tvalue_new = hash_key(data[self.settings.valueField]);\n\n\t\tif (value === null) return;\n\t\tif (!self.options.hasOwnProperty(value)) return;\n\t\tif (typeof value_new !== 'string') throw new Error('Value must be set in option data');\n\n\t\torder_old = self.options[value].$order;\n\n\t\tif (value_new !== value) {\n\t\t\tdelete self.options[value];\n\t\t\tindex_item = self.items.indexOf(value);\n\t\t\tif (index_item !== -1) {\n\t\t\t\tself.items.splice(index_item, 1, value_new);\n\t\t\t}\n\t\t}\n\t\tdata.$order = data.$order || order_old;\n\t\tself.options[value_new] = data;\n\n\t\tcache_items = self.renderCache['item'];\n\t\tcache_options = self.renderCache['option'];\n\n\t\tif (cache_items) {\n\t\t\tdelete cache_items[value];\n\t\t\tdelete cache_items[value_new];\n\t\t}\n\t\tif (cache_options) {\n\t\t\tdelete cache_options[value];\n\t\t\tdelete cache_options[value_new];\n\t\t}\n\n\t\tif (self.items.indexOf(value_new) !== -1) {\n\t\t\t$item = self.getItem(value);\n\t\t\t$item_new = $(self.render('item', data));\n\t\t\tif ($item.hasClass('active')) $item_new.addClass('active');\n\t\t\t$item.replaceWith($item_new);\n\t\t}\n\n\t\tself.lastQuery = null;\n\n\t\tif (self.isOpen) {\n\t\t\tself.refreshOptions(false);\n\t\t}\n\t},\n\n\tremoveOption: function(value, silent) {\n\t\tvar self = this;\n\t\tvalue = hash_key(value);\n\n\t\tvar cache_items = self.renderCache['item'];\n\t\tvar cache_options = self.renderCache['option'];\n\t\tif (cache_items) delete cache_items[value];\n\t\tif (cache_options) delete cache_options[value];\n\n\t\tdelete self.userOptions[value];\n\t\tdelete self.options[value];\n\t\tself.lastQuery = null;\n\t\tself.trigger('option_remove', value);\n\t\tself.removeItem(value, silent);\n\t},\n\n\tclearOptions: function(silent) {\n\t\tvar self = this;\n\n\t\tself.loadedSearches = {};\n\t\tself.userOptions = {};\n\t\tself.renderCache = {};\n\t\tvar options = self.options;\n\t\t$.each(self.options, function(key, value) {\n\t\t\tif(self.items.indexOf(key) == -1) {\n\t\t\t\tdelete options[key];\n\t\t\t}\n\t\t});\n\t\tself.options = self.sifter.items = options;\n\t\tself.lastQuery = null;\n\t\tself.trigger('option_clear');\n\t\tself.clear(silent);\n\t},\n\n\tgetOption: function(value) {\n\t\treturn this.getElementWithValue(value, this.$dropdown_content.find('[data-selectable]'));\n\t},\n\n\tgetFirstOption: function() {\n\t\tvar $options = this.$dropdown.find('[data-selectable]');\n\t\treturn $options.length > 0 ? $options.eq(0) : $();\n\t},\n\n\tgetAdjacentOption: function($option, direction) {\n\t\tvar $options = this.$dropdown.find('[data-selectable]');\n\t\tvar index = $options.index($option) + direction;\n\n\t\treturn index >= 0 && index < $options.length ? $options.eq(index) : $();\n\t},\n\n\tgetElementWithValue: function(value, $els) {\n\t\tvalue = hash_key(value);\n\n\t\tif (typeof value !== 'undefined' && value !== null) {\n\t\t\tfor (var i = 0, n = $els.length; i < n; i++) {\n\t\t\t\tif ($els[i].getAttribute('data-value') === value) {\n\t\t\t\t\treturn $($els[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn $();\n\t},\n\n\tgetElementWithTextContent: function(textContent, ignoreCase ,$els) {\n\t\ttextContent = hash_key(textContent);\n\n\t\tif (typeof textContent !== 'undefined' && textContent !== null) {\n\t\t\tfor (var i = 0, n = $els.length; i < n; i++) {\n\t\t\t\tvar eleTextContent = $els[i].textContent\n\t\t\t\tif (ignoreCase == true) {\n\t\t\t\t\teleTextContent = (eleTextContent !== null) ? eleTextContent.toLowerCase() : null;\n\t\t\t\t\ttextContent = textContent.toLowerCase();\n\t\t\t\t}\n\t\t\t\tif (eleTextContent === textContent) {\n\t\t\t\t\treturn $($els[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn $();\n\t},\n\n\tgetItem: function(value) {\n\t\treturn this.getElementWithValue(value, this.$control.children());\n\t},\n\n\tgetFirstItemMatchedByTextContent: function(textContent, ignoreCase) {\n\t\tignoreCase = (ignoreCase !== null && ignoreCase === true) ? true : false;\n\t\treturn this.getElementWithTextContent(textContent, ignoreCase, this.$dropdown_content.find('[data-selectable]'));\n\t},\n\n\taddItems: function(values, silent) {\n\t\tthis.buffer = document.createDocumentFragment();\n\n\t\tvar childNodes = this.$control[0].childNodes;\n\t\tfor (var i = 0; i < childNodes.length; i++) {\n\t\t\tthis.buffer.appendChild(childNodes[i]);\n\t\t}\n\n\t\tvar items = Array.isArray(values) ? values : [values];\n\t\tfor (var i = 0, n = items.length; i < n; i++) {\n\t\t\tthis.isPending = (i < n - 1);\n\t\t\tthis.addItem(items[i], silent);\n\t\t}\n\n\t\tvar control = this.$control[0];\n\t\tcontrol.insertBefore(this.buffer, control.firstChild);\n\n\t\tthis.buffer = null;\n\t},\n\n\taddItem: function(value, silent) {\n\t\tvar events = silent ? [] : ['change'];\n\n\t\tdebounce_events(this, events, function() {\n\t\t\tvar $item, $option, $options;\n\t\t\tvar self = this;\n\t\t\tvar inputMode = self.settings.mode;\n\t\t\tvar i, active, value_next, wasFull;\n\t\t\tvalue = hash_key(value);\n\n\t\t\tif (self.items.indexOf(value) !== -1) {\n\t\t\t\tif (inputMode === 'single') self.close();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!self.options.hasOwnProperty(value)) return;\n\t\t\tif (inputMode === 'single') self.clear(silent);\n\t\t\tif (inputMode === 'multi' && self.isFull()) return;\n\n $item = $(self.render('item', self.options[value]));\n\t\t\twasFull = self.isFull();\n\t\t\tself.items.splice(self.caretPos, 0, value);\n self.insertAtCaret($item);\n\t\t\tif (!self.isPending || (!wasFull && self.isFull())) {\n\t\t\t\tself.refreshState();\n\t\t\t}\n\n\t\t\tif (self.isSetup) {\n\t\t\t\t$options = self.$dropdown_content.find('[data-selectable]');\n\n\t\t\t\tif (!self.isPending) {\n\t\t\t\t\t$option = self.getOption(value);\n\t\t\t\t\tvalue_next = self.getAdjacentOption($option, 1).attr('data-value');\n\t\t\t\t\tself.refreshOptions(self.isFocused && inputMode !== 'single');\n\t\t\t\t\tif (value_next) {\n\t\t\t\t\t\tself.setActiveOption(self.getOption(value_next));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!$options.length || self.isFull()) {\n\t\t\t\t\tself.close();\n\t\t\t\t} else if (!self.isPending) {\n\t\t\t\t\tself.positionDropdown();\n\t\t\t\t}\n\n\t\t\t\tself.updatePlaceholder();\n\t\t\t\tself.trigger('item_add', value, $item);\n\n\t\t\t\tif (!self.isPending) {\n\t\t\t\t\tself.updateOriginalInput({silent: silent});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tremoveItem: function(value, silent) {\n\t\tvar self = this;\n\t\tvar $item, i, idx;\n\n\t\t$item = (value instanceof $) ? value : self.getItem(value);\n\t\tvalue = hash_key($item.attr('data-value'));\n\t\ti = self.items.indexOf(value);\n\n\t\tif (i !== -1) {\n\t\t\tself.trigger('item_before_remove', value, $item);\n\t\t\t$item.remove();\n if ($item.hasClass('active')) {\n $item.removeClass('active');\n\t\t\t\tidx = self.$activeItems.indexOf($item[0]);\n\t\t\t\tself.$activeItems.splice(idx, 1);\n\t\t\t\t$item.removeClass('active');\n\t\t\t}\n\n\t\t\tself.items.splice(i, 1);\n\t\t\tself.lastQuery = null;\n\t\t\tif (!self.settings.persist && self.userOptions.hasOwnProperty(value)) {\n\t\t\t\tself.removeOption(value, silent);\n\t\t\t}\n\n\t\t\tif (i < self.caretPos) {\n\t\t\t\tself.setCaret(self.caretPos - 1);\n\t\t\t}\n\n\t\t\tself.refreshState();\n\t\t\tself.updatePlaceholder();\n\t\t\tself.updateOriginalInput({silent: silent});\n\t\t\tself.positionDropdown();\n\t\t\tself.trigger('item_remove', value, $item);\n\t\t}\n\t},\n\n\tcreateItem: function(input, triggerDropdown) {\n\t\tvar self = this;\n\t\tvar caret = self.caretPos;\n\t\tinput = input || (self.$control_input.val() || '').trim();\n\n\t\tvar callback = arguments[arguments.length - 1];\n\t\tif (typeof callback !== 'function') callback = function() {};\n\n\t\tif (typeof triggerDropdown !== 'boolean') {\n\t\t\ttriggerDropdown = true;\n\t\t}\n\n\t\tif (!self.canCreate(input)) {\n\t\t\tcallback();\n\t\t\treturn false;\n\t\t}\n\n\t\tself.lock();\n\n\t\tvar setup = (typeof self.settings.create === 'function') ? this.settings.create : function(input) {\n\t\t\tvar data = {};\n\t\t\tdata[self.settings.labelField] = input;\n\t\t\tvar key = input;\n\t\t\tif ( self.settings.formatValueToKey && typeof self.settings.formatValueToKey === 'function' ) {\n\t\t\t\tkey = self.settings.formatValueToKey.apply(this, [key]);\n\t\t\t\tif (key === null || typeof key === 'undefined' || typeof key === 'object' || typeof key === 'function') {\n\t\t\t\t\tthrow new Error('Selectize \"formatValueToKey\" setting must be a function that returns a value other than object or function.');\n\t\t\t\t}\n\t\t\t}\n\t\t\tdata[self.settings.valueField] = key;\n\t\t\treturn data;\n\t\t};\n\n\t\tvar create = once(function(data) {\n\t\t\tself.unlock();\n\n\t\t\tif (!data || typeof data !== 'object') return callback();\n\t\t\tvar value = hash_key(data[self.settings.valueField]);\n\t\t\tif (typeof value !== 'string') return callback();\n\n\t\t\tself.setTextboxValue('');\n\t\t\tself.addOption(data);\n\t\t\tself.setCaret(caret);\n\t\t\tself.addItem(value);\n\t\t\tself.refreshOptions(triggerDropdown && self.settings.mode !== 'single');\n\t\t\tcallback(data);\n\t\t});\n\n\t\tvar output = setup.apply(this, [input, create]);\n\t\tif (typeof output !== 'undefined') {\n\t\t\tcreate(output);\n\t\t}\n\n\t\treturn true;\n\t},\n\n\trefreshItems: function(silent) {\n\t\tthis.lastQuery = null;\n\n\t\tif (this.isSetup) {\n\t\t\tthis.addItem(this.items, silent);\n\t\t}\n\n\t\tthis.refreshState();\n\t\tthis.updateOriginalInput({silent: silent});\n\t},\n\n\trefreshState: function() {\n\t\tthis.refreshValidityState();\n\t\tthis.refreshClasses();\n\t},\n\n\trefreshValidityState: function() {\n\t\tif (!this.isRequired) return false;\n\n\t\tvar invalid = !this.items.length;\n\n\t\tthis.isInvalid = invalid;\n\t\tthis.$control_input.prop('required', invalid);\n\t\tthis.$input.prop('required', !invalid);\n\t},\n\n\trefreshClasses: function() {\n\t\tvar self = this;\n\t\tvar isFull = self.isFull();\n\t\tvar isLocked = self.isLocked;\n\n\t\tself.$wrapper\n\t\t\t.toggleClass('rtl', self.rtl);\n\n\t\tself.$control\n\t\t\t.toggleClass('focus', self.isFocused)\n\t\t\t.toggleClass('disabled', self.isDisabled)\n\t\t\t.toggleClass('required', self.isRequired)\n\t\t\t.toggleClass('invalid', self.isInvalid)\n\t\t\t.toggleClass('locked', isLocked)\n\t\t\t.toggleClass('full', isFull).toggleClass('not-full', !isFull)\n\t\t\t.toggleClass('input-active', self.isFocused && !self.isInputHidden)\n\t\t\t.toggleClass('dropdown-active', self.isOpen)\n\t\t\t.toggleClass('has-options', !$.isEmptyObject(self.options))\n\t\t\t.toggleClass('has-items', self.items.length > 0);\n\n\t\tself.$control_input.data('grow', !isFull && !isLocked);\n\t},\n\n\tisFull: function() {\n\t\treturn this.settings.maxItems !== null && this.items.length >= this.settings.maxItems;\n\t},\n\n\tupdateOriginalInput: function(opts) {\n\t\tvar i, n, existing, fresh, old, $options, label, value, values, self = this;\n\t\topts = opts || {};\n\n\t\tif (self.tagType === TAG_SELECT) {\n\t\t\t$options = self.$input.find('option');\n\t\t\texisting = [];\n\t\t\tfresh = [];\n\t\t\told = [];\n\t\t\tvalues = [];\n\n\t\t\t$options.get().forEach(function(option) {\n\t\t\t\texisting.push(option.value);\n\t\t\t});\n\n\t\t\tself.items.forEach(function(item) {\n\t\t\t\tlabel = self.options[item][self.settings.labelField] || '';\n\n\t\t\t\tvalues.push(item);\n\n\t\t\t\tif (existing.indexOf(item) != -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfresh.push('');\n\t\t\t});\n\n\t\t\told = existing.filter(function(value) {\n\t\t\t\treturn values.indexOf(value) < 0;\n\t\t\t}).map(function(value) {\n\t\t\t\treturn 'option[value=\"' + escape_html(value) + '\"]';\n\t\t\t});\n\n\t\t\tif (existing.length - old.length + fresh.length === 0 && !self.$input.attr('multiple')) {\n\t\t\t\tfresh.push('');\n\t\t\t}\n\n\t\t\tself.$input.find(old.join(', ')).remove();\n\t\t\tself.$input.append(fresh.join(''));\n\t\t} else {\n\t\t\tself.$input.val(self.getValue());\n\t\t\tself.$input.attr('value',self.$input.val());\n\t\t}\n\n\t\tif (self.isSetup) {\n\t\t\tif (!opts.silent) {\n\t\t\t\tself.trigger('change', self.$input.val());\n\t\t\t}\n\t\t}\n\t},\n\n\tupdatePlaceholder: function() {\n\t\tif (!this.settings.placeholder) return;\n\t\tvar $input = this.$control_input;\n\n\t\tif (this.items.length) {\n\t\t\t$input.removeAttr('placeholder');\n\t\t} else {\n\t\t\t$input.attr('placeholder', this.settings.placeholder);\n\t\t}\n\t\t$input.triggerHandler('update', {force: true});\n\t},\n\n\topen: function() {\n\t\tvar self = this;\n\n\t\tif (\n self.isLocked ||\n self.isOpen ||\n (self.settings.mode === \"multi\" && self.isFull())\n )\n return;\n\t\tself.focus();\n\t\tself.isOpen = true;\n\t\tself.refreshState();\n\t\tself.$dropdown.css({ visibility: 'hidden', display: 'block' });\n\t\tself.setupDropdownHeight();\n self.positionDropdown();\n\t\tself.$dropdown.css({visibility: 'visible'});\n\t\tself.trigger('dropdown_open', self.$dropdown);\n\t},\n\n\tclose: function() {\n\t\tvar self = this;\n\t\tvar trigger = self.isOpen;\n\n\t\tif (self.settings.mode === 'single' && self.items.length) {\n\t\t\tself.hideInput();\n\n\t\t\tif (self.isBlurring) {\n\t\t\t\tself.$control_input[0].blur(); \n\t\t\t}\n\t\t}\n\n\t\tself.isOpen = false;\n\t\tself.$dropdown.hide();\n\t\tself.setActiveOption(null);\n\t\tself.refreshState();\n\n\t\tif (trigger) self.trigger('dropdown_close', self.$dropdown);\n\t},\n\n\tpositionDropdown: function() {\n\t\tvar $control = this.$control;\n\t\tvar offset = this.settings.dropdownParent === 'body' ? $control.offset() : $control.position();\n\t\toffset.top += $control.outerHeight(true);\n\t\tvar w = this.$wrapper[0].style.width !== 'fit-content' ? this.settings.dropdownParent === 'body' ? 'max-content' : '100%' : 'max-content';\n\t\tif (this.settings.minWidth && this.settings.minWidth > w)\n\t\t{\n\t\t\tw = this.settings.minWidth;\n\t\t}\n\n if (this.settings.dropdownParent !== 'body' && w === 'max-content' && $control.outerWidth(true) >= this.$dropdown.outerWidth(true)) {\n w = '100%';\n }\n\n this.$dropdown.css({\n\t\t\twidth : w,\n minWidth : $control.outerWidth(true),\n\t\t\ttop : offset.top,\n\t\t\tleft : offset.left\n\t\t});\n\t},\n\n setupDropdownHeight: function () {\n if (typeof this.settings.dropdownSize === 'object' && this.settings.dropdownSize.sizeType !== 'auto') {\n var height = this.settings.dropdownSize.sizeValue;\n\n if (this.settings.dropdownSize.sizeType === 'numberItems') {\n var $items = this.$dropdown_content.find('*').not('.optgroup, .highlight').not(this.settings.ignoreOnDropwdownHeight);\n var totalHeight = 0;\n var marginTop = 0;\n var marginBottom = 0;\n var separatorHeight = 0;\n\n\n for (var i = 0; i < height; i++) {\n var $item = $($items[i]);\n\n if ($item.length === 0) {\n break;\n }\n\n totalHeight += $item.outerHeight(true);\n if (typeof $item.data('selectable') == 'undefined') {\n if ($item.hasClass('optgroup-header')) {\n var styles = window.getComputedStyle($item.parent()[0], ':before');\n\n if (styles) {\n marginTop = styles.marginTop ? Number(styles.marginTop.replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n marginBottom = styles.marginBottom ? Number(styles.marginBottom.replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n separatorHeight = styles.borderTopWidth ? Number(styles.borderTopWidth.replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n }\n }\n height++;\n }\n\n }\n\n var paddingTop = this.$dropdown_content.css('padding-top') ? Number(this.$dropdown_content.css('padding-top').replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n var paddingBottom = this.$dropdown_content.css('padding-bottom') ? Number(this.$dropdown_content.css('padding-bottom').replace(/\\W*(\\w)\\w*/g, '$1')) : 0;\n\n height = (totalHeight + paddingTop + paddingBottom + marginTop + marginBottom + separatorHeight) + 'px';\n } else if (this.settings.dropdownSize.sizeType !== 'fixedHeight') {\n console.warn('Selectize.js - Value of \"sizeType\" must be \"fixedHeight\" or \"numberItems');\n return;\n }\n\n this.$dropdown_content.css({ height: height, maxHeight: 'none' });\n }\n },\n\n\tclear: function(silent) {\n\t\tvar self = this;\n\n\t\tif (!self.items.length) return;\n\t\tself.$control.children(':not(input)').remove();\n\t\tself.items = [];\n\t\tself.lastQuery = null;\n\t\tself.setCaret(0);\n\t\tself.setActiveItem(null);\n\t\tself.updatePlaceholder();\n\t\tself.updateOriginalInput({silent: silent});\n\t\tself.refreshState();\n\t\tself.showInput();\n\t\tself.trigger('clear');\n\t},\n\n\tinsertAtCaret: function($el) {\n\t\tvar caret = Math.min(this.caretPos, this.items.length);\n var el = $el[0];\n\t\tvar target = this.buffer || this.$control[0];\n\n\t\tif (caret === 0) {\n\t\t\ttarget.insertBefore(el, target.firstChild);\n\t\t} else {\n\t\t\ttarget.insertBefore(el, target.childNodes[caret]);\n\t\t}\n\n\t\tthis.setCaret(caret + 1);\n\t},\n\n\tdeleteSelection: function(e) {\n\t\tvar i, n, direction, selection, values, caret, option_select, $option_select, $tail;\n\t\tvar self = this;\n\n\t\tdirection = (e && e.keyCode === KEY_BACKSPACE) ? -1 : 1;\n\t\tselection = getInputSelection(self.$control_input[0]);\n\n\t\tif (self.$activeOption && !self.settings.hideSelected) {\n\t\t\tif (typeof self.settings.deselectBehavior === 'string' && self.settings.deselectBehavior === 'top') {\n\t\t\t\toption_select = self.getFirstOption().attr('data-value');\n\t\t\t} else {\n\t\t\t\toption_select = self.getAdjacentOption(self.$activeOption, -1).attr('data-value');\n\t\t\t}\n\t\t}\n\n\t\tvalues = [];\n\n\t\tif (self.$activeItems.length) {\n\t\t\t$tail = self.$control.children('.active:' + (direction > 0 ? 'last' : 'first'));\n\t\t\tcaret = self.$control.children(':not(input)').index($tail);\n\t\t\tif (direction > 0) { caret++; }\n\n\t\t\tfor (i = 0, n = self.$activeItems.length; i < n; i++) {\n\t\t\t\tvalues.push($(self.$activeItems[i]).attr('data-value'));\n\t\t\t}\n\t\t\tif (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t} else if ((self.isFocused || self.settings.mode === 'single') && self.items.length) {\n\t\t\tif (direction < 0 && selection.start === 0 && selection.length === 0) {\n\t\t\t\tvalues.push(self.items[self.caretPos - 1]);\n\t\t\t} else if (direction > 0 && selection.start === self.$control_input.val().length) {\n\t\t\t\tvalues.push(self.items[self.caretPos]);\n\t\t\t}\n\t\t}\n\n\t\tif (!values.length || (typeof self.settings.onDelete === 'function' && self.settings.onDelete.apply(self, [values]) === false)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (typeof caret !== 'undefined') {\n\t\t\tself.setCaret(caret);\n\t\t}\n\t\twhile (values.length) {\n\t\t\tself.removeItem(values.pop());\n\t\t}\n\n\t\tself.showInput();\n\t\tself.positionDropdown();\n\t\tself.refreshOptions(true);\n\n\t\tif (option_select) {\n\t\t\t$option_select = self.getOption(option_select);\n\t\t\tif ($option_select.length) {\n\t\t\t\tself.setActiveOption($option_select);\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\tadvanceSelection: function(direction, e) {\n\t\tvar tail, selection, idx, valueLength, cursorAtEdge, $tail;\n\t\tvar self = this;\n\n\t\tif (direction === 0) return;\n\t\tif (self.rtl) direction *= -1;\n\n\t\ttail = direction > 0 ? 'last' : 'first';\n\t\tselection = getInputSelection(self.$control_input[0]);\n\n\t\tif (self.isFocused && !self.isInputHidden) {\n\t\t\tvalueLength = self.$control_input.val().length;\n\t\t\tcursorAtEdge = direction < 0\n\t\t\t\t? selection.start === 0 && selection.length === 0\n\t\t\t\t: selection.start === valueLength;\n\n\t\t\tif (cursorAtEdge && !valueLength) {\n\t\t\t\tself.advanceCaret(direction, e);\n\t\t\t}\n\t\t} else {\n\t\t\t$tail = self.$control.children('.active:' + tail);\n\t\t\tif ($tail.length) {\n\t\t\t\tidx = self.$control.children(':not(input)').index($tail);\n\t\t\t\tself.setActiveItem(null);\n\t\t\t\tself.setCaret(direction > 0 ? idx + 1 : idx);\n\t\t\t}\n\t\t}\n\t},\n\n\tadvanceCaret: function(direction, e) {\n\t\tvar self = this, fn, $adj;\n\n\t\tif (direction === 0) return;\n\n\t\tfn = direction > 0 ? 'next' : 'prev';\n\t\tif (self.isShiftDown) {\n\t\t\t$adj = self.$control_input[fn]();\n\t\t\tif ($adj.length) {\n\t\t\t\tself.hideInput();\n\t\t\t\tself.setActiveItem($adj);\n\t\t\t\te && e.preventDefault();\n\t\t\t}\n\t\t} else {\n\t\t\tself.setCaret(self.caretPos + direction);\n\t\t}\n\t},\n\n\tsetCaret: function(i) {\n\t\tvar self = this;\n\n\t\tif (self.settings.mode === 'single') {\n\t\t\ti = self.items.length;\n\t\t} else {\n\t\t\ti = Math.max(0, Math.min(self.items.length, i));\n\t\t}\n\n\t\tif(!self.isPending) {\n\t\t\tvar j, n, fn, $children, $child;\n\t\t\t$children = self.$control.children(':not(input)');\n\t\t\tfor (j = 0, n = $children.length; j < n; j++) {\n\t\t\t\t$child = $($children[j]).detach();\n\t\t\t\tif (j < i) {\n\t\t\t\t\tself.$control_input.before($child);\n\t\t\t\t} else {\n\t\t\t\t\tself.$control.append($child);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tself.caretPos = i;\n\t},\n\n\tlock: function() {\n\t\tthis.close();\n\t\tthis.isLocked = true;\n\t\tthis.refreshState();\n\t},\n\n\tunlock: function() {\n\t\tthis.isLocked = false;\n\t\tthis.refreshState();\n\t},\n\n\tdisable: function() {\n\t\tvar self = this;\n\t\tself.$input.prop('disabled', true);\n\t\tself.$control_input.prop('disabled', true).prop('tabindex', -1);\n\t\tself.isDisabled = true;\n\t\tself.lock();\n\t},\n\n\tenable: function() {\n\t\tvar self = this;\n\t\tself.$input.prop('disabled', false);\n\t\tself.$control_input.prop('disabled', false).prop('tabindex', self.tabIndex);\n\t\tself.isDisabled = false;\n\t\tself.unlock();\n\t},\n\n\tdestroy: function() {\n\t\tvar self = this;\n\t\tvar eventNS = self.eventNS;\n\t\tvar revertSettings = self.revertSettings;\n\n\t\tself.trigger('destroy');\n\t\tself.off();\n\t\tself.$wrapper.remove();\n\t\tself.$dropdown.remove();\n\n\t\tself.$input\n\t\t\t.html('')\n\t\t\t.append(revertSettings.$children)\n\t\t\t.removeAttr('tabindex')\n\t\t\t.removeClass('selectized')\n\t\t\t.attr({tabindex: revertSettings.tabindex})\n\t\t\t.show();\n\n\t\tself.$control_input.removeData('grow');\n\t\tself.$input.removeData('selectize');\n\n\t\tif (--Selectize.count == 0 && Selectize.$testInput) {\n\t\t\tSelectize.$testInput.remove();\n\t\t\tSelectize.$testInput = undefined;\n\t\t}\n\n\t\t$(window).off(eventNS);\n\t\t$(document).off(eventNS);\n\t\t$(document.body).off(eventNS);\n\n\t\tdelete self.$input[0].selectize;\n\t},\n\n\trender: function(templateName, data) {\n\t\tvar value, id, label;\n\t\tvar html = '';\n\t\tvar cache = false;\n\t\tvar self = this;\n\t\tvar regex_tag = /^[\\t \\r\\n]*<([a-z][a-z0-9\\-_]*(?:\\:[a-z][a-z0-9\\-_]*)?)/i;\n\n\t\tif (templateName === 'option' || templateName === 'item') {\n\t\t\tvalue = hash_key(data[self.settings.valueField]);\n\t\t\tcache = !!value;\n\t\t}\n\n\t\tif (cache) {\n\t\t\tif (!isset(self.renderCache[templateName])) {\n\t\t\t\tself.renderCache[templateName] = {};\n\t\t\t}\n\t\t\tif (self.renderCache[templateName].hasOwnProperty(value)) {\n\t\t\t\treturn self.renderCache[templateName][value];\n\t\t\t}\n\t\t}\n\n\t\thtml = $(self.settings.render[templateName].apply(this, [data, escape_html]));\n\n\t\tif (templateName === 'option' || templateName === 'option_create') {\n\t\t\tif (!data[self.settings.disabledField]) {\n\t\t\t\thtml.attr('data-selectable', '');\n\t\t\t}\n\t\t}\n\t\telse if (templateName === 'optgroup') {\n\t\t\tid = data[self.settings.optgroupValueField] || '';\n\t\t\thtml.attr('data-group', id);\n\t\t\tif(data[self.settings.disabledField]) {\n\t\t\t\thtml.attr('data-disabled', '');\n\t\t\t}\n\t\t}\n\t\tif (templateName === 'option' || templateName === 'item') {\n\t\t\thtml.attr('data-value', value || '');\n\t\t}\n\n\t\tif (cache) {\n\t\t\tself.renderCache[templateName][value] = html[0];\n\t\t}\n\n\t\treturn html[0];\n\t},\n\n\tclearCache: function(templateName) {\n\t\tvar self = this;\n\t\tif (typeof templateName === 'undefined') {\n\t\t\tself.renderCache = {};\n\t\t} else {\n\t\t\tdelete self.renderCache[templateName];\n\t\t}\n\t},\n\n\tcanCreate: function(input) {\n\t\tvar self = this;\n\t\tif (!self.settings.create) return false;\n\t\tvar filter = self.settings.createFilter;\n\t\treturn input.length\n\t\t\t&& (typeof filter !== 'function' || filter.apply(self, [input]))\n\t\t\t&& (typeof filter !== 'string' || new RegExp(filter).test(input))\n\t\t\t&& (!(filter instanceof RegExp) || filter.test(input));\n\t}\n});\n\nSelectize.count = 0;\nSelectize.defaults = {\n options: [],\n optgroups: [],\n\n plugins: [],\n delimiter: ',',\n splitOn: null, \n persist: true,\n diacritics: true,\n create: false,\n showAddOptionOnCreate: true,\n createOnBlur: false,\n createFilter: null,\n highlight: true,\n openOnFocus: true,\n maxOptions: 1000,\n maxItems: null,\n hideSelected: null,\n addPrecedence: false,\n selectOnTab: true,\n preload: false,\n allowEmptyOption: false,\n showEmptyOptionInDropdown: false,\n emptyOptionLabel: '--',\n setFirstOptionActive: false,\n closeAfterSelect: false,\n closeDropdownThreshold: 250, \n\n scrollDuration: 60,\n deselectBehavior: 'previous', \n loadThrottle: 300,\n loadingClass: 'loading',\n\n dataAttr: 'data-data',\n optgroupField: 'optgroup',\n valueField: 'value',\n labelField: 'text',\n disabledField: 'disabled',\n optgroupLabelField: 'label',\n optgroupValueField: 'value',\n lockOptgroupOrder: false,\n\n sortField: '$order',\n searchField: ['text'],\n searchConjunction: 'and',\n respect_word_boundaries: false, \n normalize: true,\n\n mode: null,\n wrapperClass: '',\n inputClass: '',\n dropdownClass: '',\n dropdownContentClass: '',\n\n dropdownParent: null,\n\n copyClassesToDropdown: true,\n dropdownSize: {\n sizeType: 'auto',\n sizeValue: 'auto',\n },\n\n ignoreOnDropwdownHeight: 'img, i',\n search: true,\n showArrow: true,\n\n render: {\n }\n};\n\n$.fn.selectize = function (settings_user) {\n var defaults = $.fn.selectize.defaults;\n var settings = $.extend({}, defaults, settings_user);\n var attr_data = settings.dataAttr;\n var field_label = settings.labelField;\n var field_value = settings.valueField;\n var field_disabled = settings.disabledField;\n var field_optgroup = settings.optgroupField;\n var field_optgroup_label = settings.optgroupLabelField;\n var field_optgroup_value = settings.optgroupValueField;\n\n var init_textbox = function ($input, settings_element) {\n var i, n, values, option;\n\n var data_raw = $input.attr(attr_data);\n\n if (!data_raw) {\n var value = ($input.val() || '').trim();\n if (!settings.allowEmptyOption && !value.length) return;\n values = value.split(settings.delimiter);\n for (i = 0, n = values.length; i < n; i++) {\n option = {};\n option[field_label] = values[i];\n option[field_value] = values[i];\n settings_element.options.push(option);\n }\n settings_element.items = values;\n } else {\n settings_element.options = JSON.parse(data_raw);\n for (i = 0, n = settings_element.options.length; i < n; i++) {\n settings_element.items.push(settings_element.options[i][field_value]);\n }\n }\n };\n\n var init_select = function ($input, settings_element) {\n var i, n, tagName, $children, order = 0;\n var options = settings_element.options;\n var optionsMap = {};\n\n var readData = function ($el) {\n var data = attr_data && $el.attr(attr_data);\n var allData = $el.data();\n var obj = {};\n\n if (typeof data === 'string' && data.length) {\n if (isJSON(data)) {\n Object.assign(obj, JSON.parse(data))\n } else {\n obj[data] = data;\n }\n }\n\n\n Object.assign(obj, allData);\n\n return obj || null;\n };\n\n var addOption = function ($option, group) {\n $option = $($option);\n\n var value = hash_key($option.val());\n if (!value && !settings.allowEmptyOption) return;\n\n if (optionsMap.hasOwnProperty(value)) {\n if (group) {\n var arr = optionsMap[value][field_optgroup];\n if (!arr) {\n optionsMap[value][field_optgroup] = group;\n } else if (!Array.isArray(arr)) {\n optionsMap[value][field_optgroup] = [arr, group];\n } else {\n arr.push(group);\n }\n }\n return;\n }\n\n var option = readData($option) || {};\n option[field_label] = option[field_label] || $option.text();\n option[field_value] = option[field_value] || value;\n option[field_disabled] = option[field_disabled] || $option.prop('disabled');\n option[field_optgroup] = option[field_optgroup] || group;\n option.styles = $option.attr('style') || '';\n option.classes = $option.attr('class') || '';\n\n optionsMap[value] = option;\n options.push(option);\n\n if ($option.is(':selected')) {\n settings_element.items.push(value);\n }\n };\n\n var addGroup = function ($optgroup) {\n var i, n, id, optgroup, $options;\n\n $optgroup = $($optgroup);\n id = $optgroup.attr('label');\n\n if (id) {\n optgroup = readData($optgroup) || {};\n optgroup[field_optgroup_label] = id;\n optgroup[field_optgroup_value] = id;\n optgroup[field_disabled] = $optgroup.prop('disabled');\n settings_element.optgroups.push(optgroup);\n }\n\n $options = $('option', $optgroup);\n for (i = 0, n = $options.length; i < n; i++) {\n addOption($options[i], id);\n }\n };\n\n settings_element.maxItems = $input.attr('multiple') ? null : 1;\n\n $children = $input.children();\n for (i = 0, n = $children.length; i < n; i++) {\n tagName = $children[i].tagName.toLowerCase();\n if (tagName === 'optgroup') {\n addGroup($children[i]);\n } else if (tagName === 'option') {\n addOption($children[i]);\n }\n }\n };\n\n return this.each(function () {\n if (this.selectize) return;\n\n var instance;\n var $input = $(this);\n var tag_name = this.tagName.toLowerCase();\n var placeholder = $input.attr('placeholder') || $input.attr('data-placeholder');\n if (!placeholder && !settings.allowEmptyOption) {\n placeholder = $input.children('option[value=\"\"]').text();\n }\n if (settings.allowEmptyOption && settings.showEmptyOptionInDropdown && !$input.children('option[value=\"\"]').length) {\n var input_html = $input.html();\n var label = escape_html(settings.emptyOptionLabel || '--');\n $input.html('' + input_html);\n }\n\n var settings_element = {\n 'placeholder': placeholder,\n 'options': [],\n 'optgroups': [],\n 'items': []\n };\n\n if (tag_name === 'select') {\n init_select($input, settings_element);\n } else {\n init_textbox($input, settings_element);\n }\n\n instance = new Selectize($input, $.extend(true, {}, defaults, settings_element, settings_user));\n instance.settings_user = settings_user;\n });\n};\n\n$.fn.selectize.defaults = Selectize.defaults;\n$.fn.selectize.support = {\n validity: SUPPORTS_VALIDITY_API\n};\n\nSelectize.define(\"auto_position\", function () {\n var self = this;\n\n const POSITION = {\n top: 'top',\n bottom: 'bottom',\n };\n\n self.positionDropdown = (function () {\n return function () {\n const $control = this.$control;\n const offset = this.settings.dropdownParent === 'body' ? $control.offset() : $control.position();\n offset.top += $control.outerHeight(true);\n\n const dropdownHeight = this.$dropdown.prop('scrollHeight') + 5; \n const controlPosTop = this.$control.get(0).getBoundingClientRect().top;\n const wrapperHeight = this.$wrapper.height();\n const controlPosBottom = self.$control.get(0).getBoundingClientRect().bottom\n const position =\n controlPosTop + dropdownHeight + wrapperHeight > window.innerHeight &&\n controlPosBottom - dropdownHeight - wrapperHeight >= 0 ?\n POSITION.top :\n POSITION.bottom;\n let w = this.$wrapper[0].style.width !== 'fit-content' ? this.settings.dropdownParent === 'body' ? 'max-content' : '100%' : 'max-content';\n const styles = {\n width: w,\n minWidth : $control.outerWidth(true),\n left: offset.left\n };\n\n if (position === POSITION.top) {\n const styleToAdd = { bottom: offset.top, top: 'unset' };\n\n if (this.settings.dropdownParent === 'body') {\n styleToAdd.top = offset.top - this.$dropdown.outerHeight(true) - $control.outerHeight(true);\n styleToAdd.bottom = 'unset';\n }\n Object.assign(styles, styleToAdd);\n this.$dropdown.addClass('selectize-position-top');\n this.$control.addClass('selectize-position-top');\n } else {\n Object.assign(styles, { top: offset.top, bottom: 'unset' });\n this.$dropdown.removeClass('selectize-position-top');\n this.$control.removeClass('selectize-position-top');\n }\n\n if (this.settings.dropdownParent !== 'body' && w === 'max-content' && $control.outerWidth(true) >= this.$dropdown.outerWidth(true)) {\n w = '100%';\n }\n\n this.$dropdown.css(styles);\n };\n }());\n});\n\nSelectize.define('auto_select_on_type', function(options) {\n\tvar self = this;\n\n\tself.onBlur = (function() {\n\t\tvar originalBlur = self.onBlur;\n\t\treturn function(e) {\n\t\t\tvar $matchedItem = self.getFirstItemMatchedByTextContent(self.lastValue, true);\n\t\t\tif (typeof $matchedItem.attr('data-value') !== 'undefined' && self.getValue() !== $matchedItem.attr('data-value'))\n\t\t\t{\n\t\t\t\tself.setValue($matchedItem.attr('data-value'));\n\t\t\t}\n\t\t\treturn originalBlur.apply(this, arguments);\n\t\t}\n\t}());\n});\n\nSelectize.define(\"autofill_disable\", function (options) {\n var self = this;\n\n self.setup = (function () {\n var original = self.setup;\n return function () {\n original.apply(self, arguments);\n\n self.$control_input.attr({ name: nanoid(21), autocomplete: nanoid(21) });\n };\n })();\n});\n\nSelectize.define(\"clear_button\", function (options) {\n var self = this;\n\n options = $.extend(\n {\n title: \"Clear\",\n className: \"clear\",\n label: \"×\",\n html: function (data) {\n return (\n ' ' + data.label + ''\n );\n },\n },\n options\n );\n\n self.setup = (function () {\n var original = self.setup;\n return function () {\n original.apply(self, arguments);\n self.$button_clear = $(options.html(options));\n\n if (self.settings.mode === \"single\") self.$wrapper.addClass(\"single\");\n\n self.$wrapper.append(self.$button_clear);\n\n if (self.getValue() === \"\" || self.getValue().length === 0) {\n self.$wrapper.find(\".\" + options.className).css(\"display\", \"none\");\n }\n\n self.on(\"change\", function () {\n if (self.getValue() === \"\" || self.getValue().length === 0) {\n self.$wrapper.find(\".\" + options.className).css(\"display\", \"none\");\n } else {\n self.$wrapper.find(\".\" + options.className).css(\"display\", \"\");\n }\n });\n\n self.$wrapper.on(\"click\", \".\" + options.className, function (e) {\n e.preventDefault();\n e.stopImmediatePropagation();\n e.stopPropagation();\n\n if (self.isLocked) return;\n\n self.clear();\n self.$wrapper.find(\".\" + options.className).css(\"display\", \"none\");\n });\n };\n })();\n});\n\nSelectize.define('drag_drop', function(options) {\n\tif (!$.fn.sortable) throw new Error('The \"drag_drop\" plugin requires jQuery UI \"sortable\".');\n\tif (this.settings.mode !== 'multi') return;\n\tvar self = this;\n\n\tself.lock = (function() {\n\t\tvar original = self.lock;\n\t\treturn function() {\n\t\t\tvar sortable = self.$control.data('sortable');\n\t\t\tif (sortable) sortable.disable();\n\t\t\treturn original.apply(self, arguments);\n\t\t};\n\t})();\n\n\tself.unlock = (function() {\n\t\tvar original = self.unlock;\n\t\treturn function() {\n\t\t\tvar sortable = self.$control.data('sortable');\n\t\t\tif (sortable) sortable.enable();\n\t\t\treturn original.apply(self, arguments);\n\t\t};\n\t})();\n\n\tself.setup = (function() {\n\t\tvar original = self.setup;\n\t\treturn function() {\n\t\t\toriginal.apply(this, arguments);\n\n\t\t\tvar $control = self.$control.sortable({\n\t\t\t\titems: '[data-value]',\n\t\t\t\tforcePlaceholderSize: true,\n\t\t\t\tdisabled: self.isLocked,\n\t\t\t\tstart: function(e, ui) {\n\t\t\t\t\tui.placeholder.css('width', ui.helper.css('width'));\n\t\t\t\t\t$control.addClass('dragging');\n\t\t\t\t},\n\t\t\t\tstop: function() {\n\t\t\t\t\t$control.removeClass('dragging');\n\t\t\t\t\tvar active = self.$activeItems ? self.$activeItems.slice() : null;\n\t\t\t\t\tvar values = [];\n\t\t\t\t\t$control.children('[data-value]').each(function() {\n\t\t\t\t\t\tvalues.push($(this).attr('data-value'));\n\t\t\t\t\t});\n\t\t\t\t\tself.isFocused = false;\n\t\t\t\t\tself.setValue(values);\n\t\t\t\t\tself.isFocused = true;\n\t\t\t\t\tself.setActiveItem(active);\n\t\t\t\t\tself.positionDropdown();\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t})();\n\n});\n\nSelectize.define('dropdown_header', function(options) {\n\tvar self = this;\n\n\toptions = $.extend({\n\t\ttitle : 'Untitled',\n\t\theaderClass : 'selectize-dropdown-header',\n\t\ttitleRowClass : 'selectize-dropdown-header-title',\n\t\tlabelClass : 'selectize-dropdown-header-label',\n\t\tcloseClass : 'selectize-dropdown-header-close',\n\n\t\thtml: function(data) {\n\t\t\treturn (\n\t\t\t\t'
' +\n\t\t\t\t\t'
' +\n\t\t\t\t\t\t'' + data.title + '' +\n\t\t\t\t\t\t'×' +\n\t\t\t\t\t'
' +\n\t\t\t\t'
'\n\t\t\t);\n\t\t}\n\t}, options);\n\n\tself.setup = (function() {\n\t\tvar original = self.setup;\n\t\treturn function() {\n\t\t\toriginal.apply(self, arguments);\n\t\t\tself.$dropdown_header = $(options.html(options));\n self.$dropdown.prepend(self.$dropdown_header);\n self.$dropdown_header.find('.' + options.closeClass).on('click', function () {\n self.close();\n });\n\t\t};\n\t})();\n\n});\n\nSelectize.define('optgroup_columns', function(options) {\n\tvar self = this;\n\n\toptions = $.extend({\n\t\tequalizeWidth : true,\n\t\tequalizeHeight : true\n\t}, options);\n\n\tthis.getAdjacentOption = function($option, direction) {\n\t\tvar $options = $option.closest('[data-group]').find('[data-selectable]');\n\t\tvar index = $options.index($option) + direction;\n\n\t\treturn index >= 0 && index < $options.length ? $options.eq(index) : $();\n\t};\n\n\tthis.onKeyDown = (function() {\n\t\tvar original = self.onKeyDown;\n\t\treturn function(e) {\n\t\t\tvar index, $option, $options, $optgroup;\n\n\t\t\tif (this.isOpen && (e.keyCode === KEY_LEFT || e.keyCode === KEY_RIGHT)) {\n\t\t\t\tself.ignoreHover = true;\n\t\t\t\t$optgroup = this.$activeOption.closest('[data-group]');\n\t\t\t\tindex = $optgroup.find('[data-selectable]').index(this.$activeOption);\n\n\t\t\t\tif(e.keyCode === KEY_LEFT) {\n\t\t\t\t\t$optgroup = $optgroup.prev('[data-group]');\n\t\t\t\t} else {\n\t\t\t\t\t$optgroup = $optgroup.next('[data-group]');\n\t\t\t\t}\n\n\t\t\t\t$options = $optgroup.find('[data-selectable]');\n\t\t\t\t$option = $options.eq(Math.min($options.length - 1, index));\n\t\t\t\tif ($option.length) {\n\t\t\t\t\tthis.setActiveOption($option);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treturn original.apply(this, arguments);\n\t\t};\n\t})();\n\n\tvar getScrollbarWidth = function() {\n\t\tvar div;\n\t\tvar width = getScrollbarWidth.width;\n\t\tvar doc = document;\n\n\t\tif (typeof width === 'undefined') {\n\t\t\tdiv = doc.createElement('div');\n\t\t\tdiv.innerHTML = '
';\n\t\t\tdiv = div.firstChild;\n\t\t\tdoc.body.appendChild(div);\n\t\t\twidth = getScrollbarWidth.width = div.offsetWidth - div.clientWidth;\n\t\t\tdoc.body.removeChild(div);\n\t\t}\n\t\treturn width;\n\t};\n\n\tvar equalizeSizes = function() {\n\t\tvar i, n, height_max, width, width_last, width_parent, $optgroups;\n\n\t\t$optgroups = $('[data-group]', self.$dropdown_content);\n\t\tn = $optgroups.length;\n\t\tif (!n || !self.$dropdown_content.width()) return;\n\n\t\tif (options.equalizeHeight) {\n\t\t\theight_max = 0;\n\t\t\tfor (i = 0; i < n; i++) {\n\t\t\t\theight_max = Math.max(height_max, $optgroups.eq(i).height());\n\t\t\t}\n\t\t\t$optgroups.css({height: height_max});\n\t\t}\n\n\t\tif (options.equalizeWidth) {\n\t\t\twidth_parent = self.$dropdown_content.innerWidth() - getScrollbarWidth();\n\t\t\twidth = Math.round(width_parent / n);\n\t\t\t$optgroups.css({width: width});\n\t\t\tif (n > 1) {\n\t\t\t\twidth_last = width_parent - width * (n - 1);\n\t\t\t\t$optgroups.eq(n - 1).css({width: width_last});\n\t\t\t}\n\t\t}\n\t};\n\n\tif (options.equalizeHeight || options.equalizeWidth) {\n\t\thook.after(this, 'positionDropdown', equalizeSizes);\n\t\thook.after(this, 'refreshOptions', equalizeSizes);\n\t}\n\n\n});\n\nSelectize.define('read-only', function(options){\n\tvar self = this;\n\tthis.setup = (function() {\n\t\tvar original = self.setup;\n\t\treturn function() {\n\t\t\toriginal.apply(this, arguments);\n\t\t\tif(this.$dropdown.hasClass(\"read-only\"))this.$control_input.attr('readonly', 'readonly');\n\t\t};\n\t})();\n\tthis.readonly = (function() {\n\t\treturn function(state) {\n\t\t\tif(state){\n\t\t\t\tthis.$control_input.attr('readonly', 'readonly');\n\t\t\t\tthis.$dropdown.addClass(\"read-only\")\n\t\t\t}\n\t\t\telse{\n\t\t\t\tthis.$control_input.removeAttr('readonly');\n\t\t\t\tthis.$dropdown.removeClass(\"read-only\")\n\t\t\t}\n\t\t};\n\t})();\n});\n\nSelectize.define('remove_button', function (options) {\n if (this.settings.mode === 'single') return;\n\n\toptions = $.extend({\n\t\t\tlabel : '×',\n\t\t\ttitle : 'Remove',\n\t\t\tclassName : 'remove',\n\t\t\tappend : true\n\t\t}, options);\n\n\t\tvar multiClose = function(thisRef, options) {\n\n\t\t\tvar self = thisRef;\n\t\t\tvar html = '' + options.label + '';\n\n\t\t\tvar append = function(html_container, html_element) {\n\t\t\t\tvar pos = html_container.search(/(<\\/[^>]+>\\s*)$/);\n\t\t\t\treturn html_container.substring(0, pos) + html_element + html_container.substring(pos);\n\t\t\t};\n\n\t\t\tthisRef.setup = (function() {\n\t\t\t\tvar original = self.setup;\n\t\t\t\treturn function() {\n\t\t\t\t\tif (options.append) {\n\t\t\t\t\t\tvar render_item = self.settings.render.item;\n\t\t\t\t\t\tself.settings.render.item = function(data) {\n\t\t\t\t\t\t\treturn append(render_item.apply(thisRef, arguments), html);\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\toriginal.apply(thisRef, arguments);\n\n\t\t\t\t\tthisRef.$control.on('click', '.' + options.className, function(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tif (self.isLocked) return;\n\n\t\t\t\t\t\tvar $item = $(e.currentTarget).parent();\n\t\t\t\t\t\tself.setActiveItem($item);\n\t\t\t\t\t\tif (self.deleteSelection()) {\n\t\t\t\t\t\t\tself.setCaret(self.items.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\n\t\t\t\t};\n\t\t\t})();\n\t\t};\n\n multiClose(this, options);\n});\n\nSelectize.define('restore_on_backspace', function(options) {\n\tvar self = this;\n\n\toptions.text = options.text || function(option) {\n\t\treturn option[this.settings.labelField];\n\t};\n\n\tthis.onKeyDown = (function() {\n\t\tvar original = self.onKeyDown;\n\t\treturn function(e) {\n\t\t\tvar index, option;\n\t\t\tif (e.keyCode === KEY_BACKSPACE && this.$control_input.val() === '' && !this.$activeItems.length) {\n\t\t\t\tindex = this.caretPos - 1;\n\t\t\t\tif (index >= 0 && index < this.items.length) {\n\t\t\t\t\toption = this.options[this.items[index]];\n\t\t\t\t\tif (this.deleteSelection(e)) {\n\t\t\t\t\t\tthis.setTextboxValue(options.text.apply(this, [option]));\n\t\t\t\t\t\tthis.refreshOptions(true);\n\t\t\t\t\t}\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn original.apply(this, arguments);\n\t\t};\n\t})();\n});\n\nSelectize.define('select_on_focus', function(options) {\n\tvar self = this;\n\n\tself.on('focus', function() {\n\t\tvar originalFocus = self.onFocus;\n\t\treturn function(e) {\n\t\t\tvar value = self.getItem(self.getValue()).text();\n\t\t\tself.clear();\n\t\t\tself.setTextboxValue(value);\n\t\t\tself.$control_input.select();\n\t\t\tsetTimeout( function () {\n\t\t\t\tif (self.settings.selectOnTab) {\n\t\t\t\t\tself.setActiveOption(self.getFirstItemMatchedByTextContent(value));\n\t\t\t\t}\n\t\t\t\tself.settings.score = null;\n\t\t\t},0);\n\t\t\treturn originalFocus.apply(this, arguments);\n\t\t};\n\t}());\n\n\tself.onBlur = (function() {\n\t\tvar originalBlur = self.onBlur;\n\t\treturn function(e) {\n\t\t\tif (self.getValue() === \"\" && self.lastValidValue !== self.getValue()) {\n\t\t\t\tself.setValue(self.lastValidValue);\n\t\t\t}\n\t\t\tsetTimeout( function () {\n\t\t\t\tself.settings.score = function() {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\treturn 1;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}, 0 );\n\t\t\treturn originalBlur.apply(this, arguments);\n\t\t}\n\t}());\n\tself.settings.score = function() {\n\t\treturn function() { return 1; };\n\t};\n\n});\n\nSelectize.define('tag_limit', function (options) {\n const self = this\n options.tagLimit = options.tagLimit\n this.onBlur = (function (e) {\n const original = self.onBlur\n\n return function (e) {\n original.apply(this, e);\n if (!e)\n return\n const $control = this.$control\n const $items = $control.find('.item')\n const limit = options.tagLimit\n if (limit === undefined || $items.length <= limit)\n return\n\n $items.toArray().forEach(function(item, index) {\n if (index < limit)\n return\n $(item).hide()\n });\n\n $control.append('' + ($items.length - limit) + '')\n };\n })()\n\n this.onFocus = (function (e) {\n const original = self.onFocus\n\n return function (e) {\n original.apply(this, e);\n if (!e)\n return\n const $control = this.$control\n const $items = $control.find('.item')\n $items.show()\n $control.find('span').remove()\n\n };\n })()\n});\n\n return Selectize;\n}));\n","// style-loader: Adds some css to the DOM by adding a