{ "version": 3, "sources": ["../../../../node_modules/tom-select/src/contrib/microevent.ts", "../../../../node_modules/tom-select/src/contrib/microplugin.ts", "../../../../node_modules/@orchidjs/unicode-variants/lib/regex.ts", "../../../../node_modules/@orchidjs/unicode-variants/lib/strings.ts", "../../../../node_modules/@orchidjs/unicode-variants/lib/index.ts", "../../../../node_modules/@orchidjs/sifter/lib/utils.ts", "../../../../node_modules/@orchidjs/sifter/lib/sifter.ts", "../../../../node_modules/tom-select/src/utils.ts", "../../../../node_modules/tom-select/src/vanilla.ts", "../../../../node_modules/tom-select/src/contrib/highlight.ts", "../../../../node_modules/tom-select/src/constants.ts", "../../../../node_modules/tom-select/src/defaults.ts", "../../../../node_modules/tom-select/src/getSettings.ts", "../../../../node_modules/tom-select/src/tom-select.ts", "../../../../node_modules/tom-select/src/utils.ts", "../../../../node_modules/tom-select/src/plugins/change_listener/plugin.ts", "../../../../node_modules/tom-select/src/utils.ts", "../../../../node_modules/tom-select/src/vanilla.ts", "../../../../node_modules/tom-select/src/plugins/checkbox_options/plugin.ts", "../../../../node_modules/tom-select/src/vanilla.ts", "../../../../node_modules/tom-select/src/plugins/clear_button/plugin.ts", "../../../../node_modules/tom-select/src/utils.ts", "../../../../node_modules/tom-select/src/vanilla.ts", "../../../../node_modules/tom-select/src/plugins/drag_drop/plugin.ts", "../../../../node_modules/tom-select/src/utils.ts", "../../../../node_modules/tom-select/src/vanilla.ts", "../../../../node_modules/tom-select/src/plugins/dropdown_header/plugin.ts", "../../../../node_modules/tom-select/src/utils.ts", "../../../../node_modules/tom-select/src/vanilla.ts", "../../../../node_modules/tom-select/src/plugins/caret_position/plugin.ts", "../../../../node_modules/tom-select/src/constants.ts", "../../../../node_modules/tom-select/src/utils.ts", "../../../../node_modules/tom-select/src/vanilla.ts", "../../../../node_modules/tom-select/src/plugins/dropdown_input/plugin.ts", "../../../../node_modules/tom-select/src/utils.ts", "../../../../node_modules/tom-select/src/plugins/input_autogrow/plugin.ts", "../../../../node_modules/tom-select/src/plugins/no_backspace_delete/plugin.ts", "../../../../node_modules/tom-select/src/plugins/no_active_items/plugin.ts", "../../../../node_modules/tom-select/src/constants.ts", "../../../../node_modules/tom-select/src/vanilla.ts", "../../../../node_modules/tom-select/src/plugins/optgroup_columns/plugin.ts", "../../../../node_modules/tom-select/src/utils.ts", "../../../../node_modules/tom-select/src/vanilla.ts", "../../../../node_modules/tom-select/src/plugins/remove_button/plugin.ts", "../../../../node_modules/tom-select/src/plugins/restore_on_backspace/plugin.ts", "../../../../node_modules/tom-select/src/utils.ts", "../../../../node_modules/tom-select/src/vanilla.ts", "../../../../node_modules/tom-select/src/plugins/virtual_scroll/plugin.ts", "../../../../node_modules/tom-select/src/tom-select.complete.ts", "../../../javascript/common/select_utils.js", "../../../javascript/pages/listmap.js"], "sourcesContent": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, "\nimport type TomSelect from './tom-select.ts';\nimport { TomLoadCallback } from './types/index.ts';\n\n\n/**\n * Converts a scalar to its best string representation\n * for hash keys and HTML attribute values.\n *\n * Transformations:\n * 'str' -> 'str'\n * null -> ''\n * undefined -> ''\n * true -> '1'\n * false -> '0'\n * 0 -> '0'\n * 1 -> '1'\n *\n */\nexport const hash_key = (value:undefined|null|boolean|string|number):string|null => {\n\tif (typeof value === 'undefined' || value === null) return null;\n\treturn get_hash(value);\n};\n\nexport const get_hash = (value:boolean|string|number):string => {\n\tif (typeof value === 'boolean') return value ? '1' : '0';\n\treturn value + '';\n};\n\n/**\n * Escapes a string for use within HTML.\n *\n */\nexport const escape_html = (str:string):string => {\n\treturn (str + '')\n\t\t.replace(/&/g, '&')\n\t\t.replace(//g, '>')\n\t\t.replace(/\"/g, '"');\n};\n\n\n/**\n * use setTimeout if timeout > 0 \n */\nexport const timeout = (fn:()=>void,timeout:number): number | null => {\n\tif( timeout > 0 ){\n\t\treturn window.setTimeout(fn,timeout);\n\t}\n\n\tfn.call(null);\n\treturn null;\n}\n\n/**\n * Debounce the user provided load function\n *\n */\nexport const loadDebounce = (fn:(value:string,callback:TomLoadCallback) => void,delay:number) => {\n\tvar timeout: null|ReturnType;\n\treturn function(this:TomSelect, value:string,callback:TomLoadCallback) {\n\t\tvar self = this;\n\n\t\tif( timeout ){\n\t\t\tself.loading = Math.max(self.loading - 1, 0);\n\t\t\tclearTimeout(timeout);\n\t\t}\n\t\ttimeout = setTimeout(function() {\n\t\t\ttimeout = null;\n\t\t\tself.loadedSearches[value] = true;\n\t\t\tfn.call(self, value, callback);\n\n\t\t}, delay);\n\t};\n};\n\n\n/**\n * Debounce all fired events types listed in `types`\n * while executing the provided `fn`.\n *\n */\nexport const debounce_events = ( self:TomSelect, types:string[], fn:() => void ) => {\n\tvar type:string;\n\tvar trigger = self.trigger;\n\tvar event_args:{ [key: string]: any } = {};\n\n\t// override trigger method\n\tself.trigger = function(){\n\t\tvar type = arguments[0];\n\t\tif (types.indexOf(type) !== -1) {\n\t\t\tevent_args[type] = arguments;\n\t\t} else {\n\t\t\treturn trigger.apply(self, arguments);\n\t\t}\n\t};\n\n\t// invoke provided function\n\tfn.apply(self, []);\n\tself.trigger = trigger;\n\n\t// trigger queued events\n\tfor( type of types ){\n\t\tif( type in event_args ){\n\t\t\ttrigger.apply(self, event_args[type]);\n\t\t}\n\t}\n};\n\n\n/**\n * Determines the current selection within a text input control.\n * Returns an object containing:\n * - start\n * - length\n *\n * Note: \"selectionStart, selectionEnd ... apply only to inputs of types text, search, URL, tel and password\"\n * \t- https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n */\nexport const getSelection = (input:HTMLInputElement):{ start: number; length: number } => {\n\treturn {\n\t\tstart\t: input.selectionStart || 0,\n\t\tlength\t: (input.selectionEnd||0) - (input.selectionStart||0),\n\t};\n};\n\n\n/**\n * Prevent default\n *\n */\nexport const preventDefault = (evt?:Event, stop:boolean=false):void => {\n\tif( evt ){\n\t\tevt.preventDefault();\n\t\tif( stop ){\n\t\t\tevt.stopPropagation();\n\t\t}\n\t}\n}\n\n\n/**\n * Add event helper\n *\n */\nexport const addEvent = (target:EventTarget, type:string, callback:EventListenerOrEventListenerObject, options?:object):void => {\n\ttarget.addEventListener(type,callback,options);\n};\n\n\n/**\n * Return true if the requested key is down\n * Will return false if more than one control character is pressed ( when [ctrl+shift+a] != [ctrl+a] )\n * The current evt may not always set ( eg calling advanceSelection() )\n *\n */\nexport const isKeyDown = ( key_name:keyof (KeyboardEvent|MouseEvent), evt?:KeyboardEvent|MouseEvent ) => {\n\n\tif( !evt ){\n\t\treturn false;\n\t}\n\n\tif( !evt[key_name] ){\n\t\treturn false;\n\t}\n\n\tvar count = (evt.altKey?1:0) + (evt.ctrlKey?1:0) + (evt.shiftKey?1:0) + (evt.metaKey?1:0);\n\n\tif( count === 1 ){\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n\n/**\n * Get the id of an element\n * If the id attribute is not set, set the attribute with the given id\n *\n */\nexport const getId = (el:Element,id:string) => {\n\tconst existing_id = el.getAttribute('id');\n\tif( existing_id ){\n\t\treturn existing_id;\n\t}\n\n\tel.setAttribute('id',id);\n\treturn id;\n};\n\n\n/**\n * Returns a string with backslashes added before characters that need to be escaped.\n */\nexport const addSlashes = (str:string):string => {\n\treturn str.replace(/[\\\\\"']/g, '\\\\$&');\n};\n\n/**\n *\n */\nexport const append = ( parent:Element|DocumentFragment, node: string|Node|null|undefined ):void =>{\n\tif( node ) parent.append(node);\n};\n\n/**\n * Iterates over arrays and hashes.\n *\n * ```\n * iterate(this.items, function(item, id) {\n * // invoked for each item\n * });\n * ```\n *\n */\nexport const iterate = (object:[]|{[key:string]:any}, callback:(value:any,key:any)=>any) => {\n\n\tif ( Array.isArray(object)) {\n\t\tobject.forEach(callback);\n\n\t}else{\n\n\t\tfor (var key in object) {\n\t\t\tif (object.hasOwnProperty(key)) {\n\t\t\t\tcallback(object[key], key);\n\t\t\t}\n\t\t}\n\t}\n};\n", "/**\n * Plugin: \"change_listener\" (Tom Select)\n * Copyright (c) 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 */\n\nimport type TomSelect from '../../tom-select.ts';\nimport { addEvent } from '../../utils.ts';\n\nexport default function(this:TomSelect) {\n\taddEvent(this.input,'change',()=>{\n\t\tthis.sync();\n\t});\n};\n", "\nimport type TomSelect from './tom-select.ts';\nimport { TomLoadCallback } from './types/index.ts';\n\n\n/**\n * Converts a scalar to its best string representation\n * for hash keys and HTML attribute values.\n *\n * Transformations:\n * 'str' -> 'str'\n * null -> ''\n * undefined -> ''\n * true -> '1'\n * false -> '0'\n * 0 -> '0'\n * 1 -> '1'\n *\n */\nexport const hash_key = (value:undefined|null|boolean|string|number):string|null => {\n\tif (typeof value === 'undefined' || value === null) return null;\n\treturn get_hash(value);\n};\n\nexport const get_hash = (value:boolean|string|number):string => {\n\tif (typeof value === 'boolean') return value ? '1' : '0';\n\treturn value + '';\n};\n\n/**\n * Escapes a string for use within HTML.\n *\n */\nexport const escape_html = (str:string):string => {\n\treturn (str + '')\n\t\t.replace(/&/g, '&')\n\t\t.replace(//g, '>')\n\t\t.replace(/\"/g, '"');\n};\n\n\n/**\n * use setTimeout if timeout > 0 \n */\nexport const timeout = (fn:()=>void,timeout:number): number | null => {\n\tif( timeout > 0 ){\n\t\treturn window.setTimeout(fn,timeout);\n\t}\n\n\tfn.call(null);\n\treturn null;\n}\n\n/**\n * Debounce the user provided load function\n *\n */\nexport const loadDebounce = (fn:(value:string,callback:TomLoadCallback) => void,delay:number) => {\n\tvar timeout: null|ReturnType;\n\treturn function(this:TomSelect, value:string,callback:TomLoadCallback) {\n\t\tvar self = this;\n\n\t\tif( timeout ){\n\t\t\tself.loading = Math.max(self.loading - 1, 0);\n\t\t\tclearTimeout(timeout);\n\t\t}\n\t\ttimeout = setTimeout(function() {\n\t\t\ttimeout = null;\n\t\t\tself.loadedSearches[value] = true;\n\t\t\tfn.call(self, value, callback);\n\n\t\t}, delay);\n\t};\n};\n\n\n/**\n * Debounce all fired events types listed in `types`\n * while executing the provided `fn`.\n *\n */\nexport const debounce_events = ( self:TomSelect, types:string[], fn:() => void ) => {\n\tvar type:string;\n\tvar trigger = self.trigger;\n\tvar event_args:{ [key: string]: any } = {};\n\n\t// override trigger method\n\tself.trigger = function(){\n\t\tvar type = arguments[0];\n\t\tif (types.indexOf(type) !== -1) {\n\t\t\tevent_args[type] = arguments;\n\t\t} else {\n\t\t\treturn trigger.apply(self, arguments);\n\t\t}\n\t};\n\n\t// invoke provided function\n\tfn.apply(self, []);\n\tself.trigger = trigger;\n\n\t// trigger queued events\n\tfor( type of types ){\n\t\tif( type in event_args ){\n\t\t\ttrigger.apply(self, event_args[type]);\n\t\t}\n\t}\n};\n\n\n/**\n * Determines the current selection within a text input control.\n * Returns an object containing:\n * - start\n * - length\n *\n * Note: \"selectionStart, selectionEnd ... apply only to inputs of types text, search, URL, tel and password\"\n * \t- https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n */\nexport const getSelection = (input:HTMLInputElement):{ start: number; length: number } => {\n\treturn {\n\t\tstart\t: input.selectionStart || 0,\n\t\tlength\t: (input.selectionEnd||0) - (input.selectionStart||0),\n\t};\n};\n\n\n/**\n * Prevent default\n *\n */\nexport const preventDefault = (evt?:Event, stop:boolean=false):void => {\n\tif( evt ){\n\t\tevt.preventDefault();\n\t\tif( stop ){\n\t\t\tevt.stopPropagation();\n\t\t}\n\t}\n}\n\n\n/**\n * Add event helper\n *\n */\nexport const addEvent = (target:EventTarget, type:string, callback:EventListenerOrEventListenerObject, options?:object):void => {\n\ttarget.addEventListener(type,callback,options);\n};\n\n\n/**\n * Return true if the requested key is down\n * Will return false if more than one control character is pressed ( when [ctrl+shift+a] != [ctrl+a] )\n * The current evt may not always set ( eg calling advanceSelection() )\n *\n */\nexport const isKeyDown = ( key_name:keyof (KeyboardEvent|MouseEvent), evt?:KeyboardEvent|MouseEvent ) => {\n\n\tif( !evt ){\n\t\treturn false;\n\t}\n\n\tif( !evt[key_name] ){\n\t\treturn false;\n\t}\n\n\tvar count = (evt.altKey?1:0) + (evt.ctrlKey?1:0) + (evt.shiftKey?1:0) + (evt.metaKey?1:0);\n\n\tif( count === 1 ){\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n\n/**\n * Get the id of an element\n * If the id attribute is not set, set the attribute with the given id\n *\n */\nexport const getId = (el:Element,id:string) => {\n\tconst existing_id = el.getAttribute('id');\n\tif( existing_id ){\n\t\treturn existing_id;\n\t}\n\n\tel.setAttribute('id',id);\n\treturn id;\n};\n\n\n/**\n * Returns a string with backslashes added before characters that need to be escaped.\n */\nexport const addSlashes = (str:string):string => {\n\treturn str.replace(/[\\\\\"']/g, '\\\\$&');\n};\n\n/**\n *\n */\nexport const append = ( parent:Element|DocumentFragment, node: string|Node|null|undefined ):void =>{\n\tif( node ) parent.append(node);\n};\n\n/**\n * Iterates over arrays and hashes.\n *\n * ```\n * iterate(this.items, function(item, id) {\n * // invoked for each item\n * });\n * ```\n *\n */\nexport const iterate = (object:[]|{[key:string]:any}, callback:(value:any,key:any)=>any) => {\n\n\tif ( Array.isArray(object)) {\n\t\tobject.forEach(callback);\n\n\t}else{\n\n\t\tfor (var key in object) {\n\t\t\tif (object.hasOwnProperty(key)) {\n\t\t\t\tcallback(object[key], key);\n\t\t\t}\n\t\t}\n\t}\n};\n", "\nimport { iterate } from './utils.ts';\n\n/**\n * Return a dom element from either a dom query string, jQuery object, a dom element or html string\n * https://stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro/35385518#35385518\n *\n * param query should be {}\n */\nexport const getDom = ( query:any ):HTMLElement => {\n\n\tif( query.jquery ){\n\t\treturn query[0];\n\t}\n\n\tif( query instanceof HTMLElement ){\n\t\treturn query;\n\t}\n\n\tif( isHtmlString(query) ){\n\t\tvar tpl = document.createElement('template');\n\t\ttpl.innerHTML = query.trim(); // Never return a text node of whitespace as the result\n\t\treturn tpl.content.firstChild as HTMLElement;\n\t}\n\n\treturn document.querySelector(query);\n};\n\nexport const isHtmlString = (arg:any): boolean => {\n\tif( typeof arg === 'string' && arg.indexOf('<') > -1 ){\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport const escapeQuery = (query:string):string => {\n\treturn query.replace(/['\"\\\\]/g, '\\\\$&');\n}\n\n/**\n * Dispatch an event\n *\n */\nexport const triggerEvent = ( dom_el:HTMLElement, event_name:string ):void => {\n\tvar event = document.createEvent('HTMLEvents');\n\tevent.initEvent(event_name, true, false);\n\tdom_el.dispatchEvent(event)\n};\n\n/**\n * Apply CSS rules to a dom element\n *\n */\nexport const applyCSS = ( dom_el:HTMLElement, css:{ [key: string]: string|number }):void => {\n\tObject.assign(dom_el.style, css);\n}\n\n\n/**\n * Add css classes\n *\n */\nexport const addClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n\tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map( cls => {\n\t\t\tel.classList.add( cls );\n\t\t});\n\t});\n}\n\n/**\n * Remove css classes\n *\n */\n export const removeClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n \tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map(cls => {\n\t \t\tel.classList.remove( cls );\n\t\t});\n \t});\n }\n\n\n/**\n * Return arguments\n *\n */\nexport const classesArray = (args:string[]|string[][]):string[] => {\n\tvar classes:string[] = [];\n\titerate( args, (_classes) =>{\n\t\tif( typeof _classes === 'string' ){\n\t\t\t_classes = _classes.trim().split(/[\\t\\n\\f\\r\\s]/);\n\t\t}\n\t\tif( Array.isArray(_classes) ){\n\t\t\tclasses = classes.concat(_classes);\n\t\t}\n\t});\n\n\treturn classes.filter(Boolean);\n}\n\n\n/**\n * Create an array from arg if it's not already an array\n *\n */\nexport const castAsArray = (arg:any):Array => {\n\tif( !Array.isArray(arg) ){\n \t\targ = [arg];\n \t}\n\treturn arg;\n}\n\n\n/**\n * Get the closest node to the evt.target matching the selector\n * Stops at wrapper\n *\n */\nexport const parentMatch = ( target:null|HTMLElement, selector:string, wrapper?:HTMLElement ):HTMLElement|void => {\n\n\tif( wrapper && !wrapper.contains(target) ){\n\t\treturn;\n\t}\n\n\twhile( target && target.matches ){\n\n\t\tif( target.matches(selector) ){\n\t\t\treturn target;\n\t\t}\n\n\t\ttarget = target.parentNode as HTMLElement;\n\t}\n}\n\n\n/**\n * Get the first or last item from an array\n *\n * > 0 - right (last)\n * <= 0 - left (first)\n *\n */\nexport const getTail = ( list:Array|NodeList, direction:number=0 ):any => {\n\n\tif( direction > 0 ){\n\t\treturn list[list.length-1];\n\t}\n\n\treturn list[0];\n}\n\n/**\n * Return true if an object is empty\n *\n */\nexport const isEmptyObject = (obj:object):boolean => {\n\treturn (Object.keys(obj).length === 0);\n}\n\n\n/**\n * Get the index of an element amongst sibling nodes of the same type\n *\n */\nexport const nodeIndex = ( el:null|Element, amongst?:string ):number => {\n\tif (!el) return -1;\n\n\tamongst = amongst || el.nodeName;\n\n\tvar i = 0;\n\twhile( el = el.previousElementSibling ){\n\n\t\tif( el.matches(amongst) ){\n\t\t\ti++;\n\t\t}\n\t}\n\treturn i;\n}\n\n\n/**\n * Set attributes of an element\n *\n */\nexport const setAttr = (el:Element,attrs:{ [key: string]: null|string|number }) => {\n\titerate( attrs,(val,attr) => {\n\t\tif( val == null ){\n\t\t\tel.removeAttribute(attr as string);\n\t\t}else{\n\t\t\tel.setAttribute(attr as string, ''+val);\n\t\t}\n\t});\n}\n\n\n/**\n * Replace a node\n */\nexport const replaceNode = ( existing:Node, replacement:Node ) => {\n\tif( existing.parentNode ) existing.parentNode.replaceChild(replacement, existing);\n}\n", "/**\n * Plugin: \"checkbox_options\" (Tom Select)\n * Copyright (c) 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 */\n\nimport type TomSelect from '../../tom-select.ts';\nimport { TomTemplate } from '../../types/index.ts';\nimport { preventDefault, hash_key } from '../../utils.ts';\nimport { getDom } from '../../vanilla.ts';\nimport { CBOptions } from './types.ts';\n\n\nexport default function(this:TomSelect, userOptions:CBOptions) {\n\tvar self = this;\n\tvar orig_onOptionSelect = self.onOptionSelect;\n\n\tself.settings.hideSelected = false;\n\n\tconst cbOptions : CBOptions = Object.assign({\n\t\t// so that the user may add different ones as well\n\t\tclassName : \"tomselect-checkbox\",\n\n\t\t// the following default to the historic plugin's values\n\t\tcheckedClassNames : undefined,\n\t\tuncheckedClassNames : undefined,\n\t}, userOptions);\n\n\n\tvar UpdateChecked = function(checkbox:HTMLInputElement, toCheck : boolean) {\n\t\tif( toCheck ){\n\t\t\tcheckbox.checked = true;\n\t\t\tif (cbOptions.uncheckedClassNames) {\n\t\t\t\tcheckbox.classList.remove(...cbOptions.uncheckedClassNames);\n\t\t\t}\n\t\t\tif (cbOptions.checkedClassNames) {\n\t\t\t\tcheckbox.classList.add(...cbOptions.checkedClassNames);\n\t\t\t}\n\t\t}else{\n\t\t\tcheckbox.checked = false;\n\t\t\tif (cbOptions.checkedClassNames) {\n\t\t\t\tcheckbox.classList.remove(...cbOptions.checkedClassNames);\n\t\t\t}\n\t\t\tif (cbOptions.uncheckedClassNames) {\n\t\t\t\tcheckbox.classList.add(...cbOptions.uncheckedClassNames);\n\t\t\t}\n\t\t}\n\t}\n\n\t// update the checkbox for an option\n\tvar UpdateCheckbox = function(option:HTMLElement){\n\t\tsetTimeout(()=>{\n\t\t\tvar checkbox = option.querySelector('input.' + cbOptions.className);\n\t\t\tif( checkbox instanceof HTMLInputElement ){\n\t\t\t\tUpdateChecked(checkbox, option.classList.contains('selected'));\n\t\t\t}\n\t\t},1);\n\t};\n\n\t// add checkbox to option template\n\tself.hook('after','setupTemplates',() => {\n\n\t\tvar orig_render_option = self.settings.render.option;\n\n\t\tself.settings.render.option = ((data, escape_html) => {\n\t\t\tvar rendered = getDom(orig_render_option.call(self, data, escape_html));\n\t\t\tvar checkbox = document.createElement('input');\n\t\t\tif (cbOptions.className) {\n\t\t\t\tcheckbox.classList.add(cbOptions.className);\n\t\t\t}\n\t\t\tcheckbox.addEventListener('click',function(evt){\n\t\t\t\tpreventDefault(evt);\n\t\t\t});\n\n\t\t\tcheckbox.type = 'checkbox';\n\t\t\tconst hashed = hash_key(data[self.settings.valueField]);\n\n\t\t\tUpdateChecked(checkbox, !!(hashed && self.items.indexOf(hashed) > -1) );\n\n\t\t\trendered.prepend(checkbox);\n\t\t\treturn rendered;\n\t\t}) satisfies TomTemplate;\n\t});\n\n\t// uncheck when item removed\n\tself.on('item_remove',(value:string) => {\n\t\tvar option = self.getOption(value);\n\n\t\tif( option ){ // if dropdown hasn't been opened yet, the option won't exist\n\t\t\toption.classList.remove('selected'); // selected class won't be removed yet\n\t\t\tUpdateCheckbox(option);\n\t\t}\n\t});\n\n\t// check when item added\n\tself.on('item_add',(value:string) => {\n\t\tvar option = self.getOption(value);\n\n\t\tif( option ){ // if dropdown hasn't been opened yet, the option won't exist\n\t\t\tUpdateCheckbox(option);\n\t\t}\n\t});\n\n\n\t// remove items when selected option is clicked\n\tself.hook('instead','onOptionSelect',( evt:KeyboardEvent, option:HTMLElement )=>{\n\n\t\tif( option.classList.contains('selected') ){\n\t\t\toption.classList.remove('selected')\n\t\t\tself.removeItem(option.dataset.value);\n\t\t\tself.refreshOptions();\n\t\t\tpreventDefault(evt,true);\n\t\t\treturn;\n }\n\n\t\torig_onOptionSelect.call(self, evt, option);\n\n\t\tUpdateCheckbox(option);\n\t});\n\n};\n", "\nimport { iterate } from './utils.ts';\n\n/**\n * Return a dom element from either a dom query string, jQuery object, a dom element or html string\n * https://stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro/35385518#35385518\n *\n * param query should be {}\n */\nexport const getDom = ( query:any ):HTMLElement => {\n\n\tif( query.jquery ){\n\t\treturn query[0];\n\t}\n\n\tif( query instanceof HTMLElement ){\n\t\treturn query;\n\t}\n\n\tif( isHtmlString(query) ){\n\t\tvar tpl = document.createElement('template');\n\t\ttpl.innerHTML = query.trim(); // Never return a text node of whitespace as the result\n\t\treturn tpl.content.firstChild as HTMLElement;\n\t}\n\n\treturn document.querySelector(query);\n};\n\nexport const isHtmlString = (arg:any): boolean => {\n\tif( typeof arg === 'string' && arg.indexOf('<') > -1 ){\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport const escapeQuery = (query:string):string => {\n\treturn query.replace(/['\"\\\\]/g, '\\\\$&');\n}\n\n/**\n * Dispatch an event\n *\n */\nexport const triggerEvent = ( dom_el:HTMLElement, event_name:string ):void => {\n\tvar event = document.createEvent('HTMLEvents');\n\tevent.initEvent(event_name, true, false);\n\tdom_el.dispatchEvent(event)\n};\n\n/**\n * Apply CSS rules to a dom element\n *\n */\nexport const applyCSS = ( dom_el:HTMLElement, css:{ [key: string]: string|number }):void => {\n\tObject.assign(dom_el.style, css);\n}\n\n\n/**\n * Add css classes\n *\n */\nexport const addClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n\tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map( cls => {\n\t\t\tel.classList.add( cls );\n\t\t});\n\t});\n}\n\n/**\n * Remove css classes\n *\n */\n export const removeClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n \tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map(cls => {\n\t \t\tel.classList.remove( cls );\n\t\t});\n \t});\n }\n\n\n/**\n * Return arguments\n *\n */\nexport const classesArray = (args:string[]|string[][]):string[] => {\n\tvar classes:string[] = [];\n\titerate( args, (_classes) =>{\n\t\tif( typeof _classes === 'string' ){\n\t\t\t_classes = _classes.trim().split(/[\\t\\n\\f\\r\\s]/);\n\t\t}\n\t\tif( Array.isArray(_classes) ){\n\t\t\tclasses = classes.concat(_classes);\n\t\t}\n\t});\n\n\treturn classes.filter(Boolean);\n}\n\n\n/**\n * Create an array from arg if it's not already an array\n *\n */\nexport const castAsArray = (arg:any):Array => {\n\tif( !Array.isArray(arg) ){\n \t\targ = [arg];\n \t}\n\treturn arg;\n}\n\n\n/**\n * Get the closest node to the evt.target matching the selector\n * Stops at wrapper\n *\n */\nexport const parentMatch = ( target:null|HTMLElement, selector:string, wrapper?:HTMLElement ):HTMLElement|void => {\n\n\tif( wrapper && !wrapper.contains(target) ){\n\t\treturn;\n\t}\n\n\twhile( target && target.matches ){\n\n\t\tif( target.matches(selector) ){\n\t\t\treturn target;\n\t\t}\n\n\t\ttarget = target.parentNode as HTMLElement;\n\t}\n}\n\n\n/**\n * Get the first or last item from an array\n *\n * > 0 - right (last)\n * <= 0 - left (first)\n *\n */\nexport const getTail = ( list:Array|NodeList, direction:number=0 ):any => {\n\n\tif( direction > 0 ){\n\t\treturn list[list.length-1];\n\t}\n\n\treturn list[0];\n}\n\n/**\n * Return true if an object is empty\n *\n */\nexport const isEmptyObject = (obj:object):boolean => {\n\treturn (Object.keys(obj).length === 0);\n}\n\n\n/**\n * Get the index of an element amongst sibling nodes of the same type\n *\n */\nexport const nodeIndex = ( el:null|Element, amongst?:string ):number => {\n\tif (!el) return -1;\n\n\tamongst = amongst || el.nodeName;\n\n\tvar i = 0;\n\twhile( el = el.previousElementSibling ){\n\n\t\tif( el.matches(amongst) ){\n\t\t\ti++;\n\t\t}\n\t}\n\treturn i;\n}\n\n\n/**\n * Set attributes of an element\n *\n */\nexport const setAttr = (el:Element,attrs:{ [key: string]: null|string|number }) => {\n\titerate( attrs,(val,attr) => {\n\t\tif( val == null ){\n\t\t\tel.removeAttribute(attr as string);\n\t\t}else{\n\t\t\tel.setAttribute(attr as string, ''+val);\n\t\t}\n\t});\n}\n\n\n/**\n * Replace a node\n */\nexport const replaceNode = ( existing:Node, replacement:Node ) => {\n\tif( existing.parentNode ) existing.parentNode.replaceChild(replacement, existing);\n}\n", "/**\n * Plugin: \"dropdown_header\" (Tom Select)\n * Copyright (c) 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 */\n\nimport type TomSelect from '../../tom-select.ts';\nimport { getDom } from '../../vanilla.ts';\nimport { CBOptions } from './types.ts';\n\nexport default function(this:TomSelect, userOptions:CBOptions) {\n\tconst self = this;\n\n\tconst options = Object.assign({\n\t\tclassName: 'clear-button',\n\t\ttitle: 'Clear All',\n\t\thtml: (data:CBOptions) => {\n\t\t\treturn `
`;\n\t\t}\n\t}, userOptions);\n\n\tself.on('initialize',()=>{\n\t\tvar button = getDom(options.html(options));\n\t\tbutton.addEventListener('click',(evt)=>{\n\n\t\t\tif( self.isLocked ) return;\n\n\t\t\tself.clear();\n\n\t\t\tif( self.settings.mode === 'single' && self.settings.allowEmptyOption ){\n\t\t\t\tself.addItem('');\n\t\t\t}\n\n\t\t\tevt.preventDefault();\n\t\t\tevt.stopPropagation();\n\t\t});\n\t\tself.control.appendChild(button);\n\t});\n\n};\n", "\nimport type TomSelect from './tom-select.ts';\nimport { TomLoadCallback } from './types/index.ts';\n\n\n/**\n * Converts a scalar to its best string representation\n * for hash keys and HTML attribute values.\n *\n * Transformations:\n * 'str' -> 'str'\n * null -> ''\n * undefined -> ''\n * true -> '1'\n * false -> '0'\n * 0 -> '0'\n * 1 -> '1'\n *\n */\nexport const hash_key = (value:undefined|null|boolean|string|number):string|null => {\n\tif (typeof value === 'undefined' || value === null) return null;\n\treturn get_hash(value);\n};\n\nexport const get_hash = (value:boolean|string|number):string => {\n\tif (typeof value === 'boolean') return value ? '1' : '0';\n\treturn value + '';\n};\n\n/**\n * Escapes a string for use within HTML.\n *\n */\nexport const escape_html = (str:string):string => {\n\treturn (str + '')\n\t\t.replace(/&/g, '&')\n\t\t.replace(//g, '>')\n\t\t.replace(/\"/g, '"');\n};\n\n\n/**\n * use setTimeout if timeout > 0 \n */\nexport const timeout = (fn:()=>void,timeout:number): number | null => {\n\tif( timeout > 0 ){\n\t\treturn window.setTimeout(fn,timeout);\n\t}\n\n\tfn.call(null);\n\treturn null;\n}\n\n/**\n * Debounce the user provided load function\n *\n */\nexport const loadDebounce = (fn:(value:string,callback:TomLoadCallback) => void,delay:number) => {\n\tvar timeout: null|ReturnType;\n\treturn function(this:TomSelect, value:string,callback:TomLoadCallback) {\n\t\tvar self = this;\n\n\t\tif( timeout ){\n\t\t\tself.loading = Math.max(self.loading - 1, 0);\n\t\t\tclearTimeout(timeout);\n\t\t}\n\t\ttimeout = setTimeout(function() {\n\t\t\ttimeout = null;\n\t\t\tself.loadedSearches[value] = true;\n\t\t\tfn.call(self, value, callback);\n\n\t\t}, delay);\n\t};\n};\n\n\n/**\n * Debounce all fired events types listed in `types`\n * while executing the provided `fn`.\n *\n */\nexport const debounce_events = ( self:TomSelect, types:string[], fn:() => void ) => {\n\tvar type:string;\n\tvar trigger = self.trigger;\n\tvar event_args:{ [key: string]: any } = {};\n\n\t// override trigger method\n\tself.trigger = function(){\n\t\tvar type = arguments[0];\n\t\tif (types.indexOf(type) !== -1) {\n\t\t\tevent_args[type] = arguments;\n\t\t} else {\n\t\t\treturn trigger.apply(self, arguments);\n\t\t}\n\t};\n\n\t// invoke provided function\n\tfn.apply(self, []);\n\tself.trigger = trigger;\n\n\t// trigger queued events\n\tfor( type of types ){\n\t\tif( type in event_args ){\n\t\t\ttrigger.apply(self, event_args[type]);\n\t\t}\n\t}\n};\n\n\n/**\n * Determines the current selection within a text input control.\n * Returns an object containing:\n * - start\n * - length\n *\n * Note: \"selectionStart, selectionEnd ... apply only to inputs of types text, search, URL, tel and password\"\n * \t- https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n */\nexport const getSelection = (input:HTMLInputElement):{ start: number; length: number } => {\n\treturn {\n\t\tstart\t: input.selectionStart || 0,\n\t\tlength\t: (input.selectionEnd||0) - (input.selectionStart||0),\n\t};\n};\n\n\n/**\n * Prevent default\n *\n */\nexport const preventDefault = (evt?:Event, stop:boolean=false):void => {\n\tif( evt ){\n\t\tevt.preventDefault();\n\t\tif( stop ){\n\t\t\tevt.stopPropagation();\n\t\t}\n\t}\n}\n\n\n/**\n * Add event helper\n *\n */\nexport const addEvent = (target:EventTarget, type:string, callback:EventListenerOrEventListenerObject, options?:object):void => {\n\ttarget.addEventListener(type,callback,options);\n};\n\n\n/**\n * Return true if the requested key is down\n * Will return false if more than one control character is pressed ( when [ctrl+shift+a] != [ctrl+a] )\n * The current evt may not always set ( eg calling advanceSelection() )\n *\n */\nexport const isKeyDown = ( key_name:keyof (KeyboardEvent|MouseEvent), evt?:KeyboardEvent|MouseEvent ) => {\n\n\tif( !evt ){\n\t\treturn false;\n\t}\n\n\tif( !evt[key_name] ){\n\t\treturn false;\n\t}\n\n\tvar count = (evt.altKey?1:0) + (evt.ctrlKey?1:0) + (evt.shiftKey?1:0) + (evt.metaKey?1:0);\n\n\tif( count === 1 ){\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n\n/**\n * Get the id of an element\n * If the id attribute is not set, set the attribute with the given id\n *\n */\nexport const getId = (el:Element,id:string) => {\n\tconst existing_id = el.getAttribute('id');\n\tif( existing_id ){\n\t\treturn existing_id;\n\t}\n\n\tel.setAttribute('id',id);\n\treturn id;\n};\n\n\n/**\n * Returns a string with backslashes added before characters that need to be escaped.\n */\nexport const addSlashes = (str:string):string => {\n\treturn str.replace(/[\\\\\"']/g, '\\\\$&');\n};\n\n/**\n *\n */\nexport const append = ( parent:Element|DocumentFragment, node: string|Node|null|undefined ):void =>{\n\tif( node ) parent.append(node);\n};\n\n/**\n * Iterates over arrays and hashes.\n *\n * ```\n * iterate(this.items, function(item, id) {\n * // invoked for each item\n * });\n * ```\n *\n */\nexport const iterate = (object:[]|{[key:string]:any}, callback:(value:any,key:any)=>any) => {\n\n\tif ( Array.isArray(object)) {\n\t\tobject.forEach(callback);\n\n\t}else{\n\n\t\tfor (var key in object) {\n\t\t\tif (object.hasOwnProperty(key)) {\n\t\t\t\tcallback(object[key], key);\n\t\t\t}\n\t\t}\n\t}\n};\n", "\nimport { iterate } from './utils.ts';\n\n/**\n * Return a dom element from either a dom query string, jQuery object, a dom element or html string\n * https://stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro/35385518#35385518\n *\n * param query should be {}\n */\nexport const getDom = ( query:any ):HTMLElement => {\n\n\tif( query.jquery ){\n\t\treturn query[0];\n\t}\n\n\tif( query instanceof HTMLElement ){\n\t\treturn query;\n\t}\n\n\tif( isHtmlString(query) ){\n\t\tvar tpl = document.createElement('template');\n\t\ttpl.innerHTML = query.trim(); // Never return a text node of whitespace as the result\n\t\treturn tpl.content.firstChild as HTMLElement;\n\t}\n\n\treturn document.querySelector(query);\n};\n\nexport const isHtmlString = (arg:any): boolean => {\n\tif( typeof arg === 'string' && arg.indexOf('<') > -1 ){\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport const escapeQuery = (query:string):string => {\n\treturn query.replace(/['\"\\\\]/g, '\\\\$&');\n}\n\n/**\n * Dispatch an event\n *\n */\nexport const triggerEvent = ( dom_el:HTMLElement, event_name:string ):void => {\n\tvar event = document.createEvent('HTMLEvents');\n\tevent.initEvent(event_name, true, false);\n\tdom_el.dispatchEvent(event)\n};\n\n/**\n * Apply CSS rules to a dom element\n *\n */\nexport const applyCSS = ( dom_el:HTMLElement, css:{ [key: string]: string|number }):void => {\n\tObject.assign(dom_el.style, css);\n}\n\n\n/**\n * Add css classes\n *\n */\nexport const addClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n\tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map( cls => {\n\t\t\tel.classList.add( cls );\n\t\t});\n\t});\n}\n\n/**\n * Remove css classes\n *\n */\n export const removeClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n \tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map(cls => {\n\t \t\tel.classList.remove( cls );\n\t\t});\n \t});\n }\n\n\n/**\n * Return arguments\n *\n */\nexport const classesArray = (args:string[]|string[][]):string[] => {\n\tvar classes:string[] = [];\n\titerate( args, (_classes) =>{\n\t\tif( typeof _classes === 'string' ){\n\t\t\t_classes = _classes.trim().split(/[\\t\\n\\f\\r\\s]/);\n\t\t}\n\t\tif( Array.isArray(_classes) ){\n\t\t\tclasses = classes.concat(_classes);\n\t\t}\n\t});\n\n\treturn classes.filter(Boolean);\n}\n\n\n/**\n * Create an array from arg if it's not already an array\n *\n */\nexport const castAsArray = (arg:any):Array => {\n\tif( !Array.isArray(arg) ){\n \t\targ = [arg];\n \t}\n\treturn arg;\n}\n\n\n/**\n * Get the closest node to the evt.target matching the selector\n * Stops at wrapper\n *\n */\nexport const parentMatch = ( target:null|HTMLElement, selector:string, wrapper?:HTMLElement ):HTMLElement|void => {\n\n\tif( wrapper && !wrapper.contains(target) ){\n\t\treturn;\n\t}\n\n\twhile( target && target.matches ){\n\n\t\tif( target.matches(selector) ){\n\t\t\treturn target;\n\t\t}\n\n\t\ttarget = target.parentNode as HTMLElement;\n\t}\n}\n\n\n/**\n * Get the first or last item from an array\n *\n * > 0 - right (last)\n * <= 0 - left (first)\n *\n */\nexport const getTail = ( list:Array|NodeList, direction:number=0 ):any => {\n\n\tif( direction > 0 ){\n\t\treturn list[list.length-1];\n\t}\n\n\treturn list[0];\n}\n\n/**\n * Return true if an object is empty\n *\n */\nexport const isEmptyObject = (obj:object):boolean => {\n\treturn (Object.keys(obj).length === 0);\n}\n\n\n/**\n * Get the index of an element amongst sibling nodes of the same type\n *\n */\nexport const nodeIndex = ( el:null|Element, amongst?:string ):number => {\n\tif (!el) return -1;\n\n\tamongst = amongst || el.nodeName;\n\n\tvar i = 0;\n\twhile( el = el.previousElementSibling ){\n\n\t\tif( el.matches(amongst) ){\n\t\t\ti++;\n\t\t}\n\t}\n\treturn i;\n}\n\n\n/**\n * Set attributes of an element\n *\n */\nexport const setAttr = (el:Element,attrs:{ [key: string]: null|string|number }) => {\n\titerate( attrs,(val,attr) => {\n\t\tif( val == null ){\n\t\t\tel.removeAttribute(attr as string);\n\t\t}else{\n\t\t\tel.setAttribute(attr as string, ''+val);\n\t\t}\n\t});\n}\n\n\n/**\n * Replace a node\n */\nexport const replaceNode = ( existing:Node, replacement:Node ) => {\n\tif( existing.parentNode ) existing.parentNode.replaceChild(replacement, existing);\n}\n", "/**\n * Plugin: \"drag_drop\" (Tom Select)\n * Copyright (c) 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 */\n\nimport type TomSelect from '../../tom-select.ts';\nimport { TomOption, TomItem } from '../../types/index.ts';\nimport { escape_html, preventDefault, addEvent } from '../../utils.ts';\nimport { getDom, setAttr } from '../../vanilla.ts';\n\n\nconst insertAfter = (referenceNode:Element, newNode:Element) => {\n\treferenceNode.parentNode?.insertBefore(newNode, referenceNode.nextSibling);\n}\n\nconst insertBefore = (referenceNode:Element, newNode:Element) => {\n\treferenceNode.parentNode?.insertBefore(newNode, referenceNode);\n}\n\nconst isBefore = (referenceNode:Element|undefined|null, newNode:Element|undefined|null) =>{\n\t\n\tdo{\n\t\tnewNode = newNode?.previousElementSibling;\n\n\t\tif( referenceNode == newNode ){\n\t\t\treturn true;\n\t\t}\n\n\t}while( newNode && newNode.previousElementSibling );\n\n\treturn false;\n}\n\nexport default function(this:TomSelect) {\n\tvar self = this;\n\tif (self.settings.mode !== 'multi') return;\n\n\tvar orig_lock\t\t= self.lock;\n\tvar orig_unlock\t\t= self.unlock;\n\tlet sortable = true;\n\t\tlet drag_item:TomItem|undefined;\n\n\n\t/**\n\t * Add draggable attribute to item\n\t */\n\tself.hook('after','setupTemplates',() => {\n\n\t\tvar orig_render_item = self.settings.render.item;\n\n\t\tself.settings.render.item = (data:TomOption, escape:typeof escape_html) => {\n\t\t\tconst item = getDom(orig_render_item.call(self, data, escape)) as TomItem;\n\t\t\tsetAttr(item,{'draggable':'true'});\n\n\n\t\t\t// prevent doc_mousedown (see tom-select.ts)\n\t\t\tconst mousedown = (evt:Event) => {\n\t\t\t\tif( !sortable ) preventDefault(evt);\n\t\t\t\tevt.stopPropagation();\n\t\t\t}\n\n\t\t\tconst dragStart = (evt:Event) => {\n\t\t\t\tdrag_item = item;\n\t\t\t\t\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\titem.classList.add('ts-dragging');\n\t\t\t\t}, 0);\n\t\t\t\t\n\t\t\t}\n\n\t\t\tconst dragOver = (evt:Event) =>{\n\t\t\t\tevt.preventDefault();\n\t\t\t\titem.classList.add('ts-drag-over');\n\t\t\t\tmoveitem(item,drag_item);\n\t\t\t}\n\n\t\t\tconst dragLeave = () => {\n\t\t\t\titem.classList.remove('ts-drag-over');\n\t\t\t}\n\n\t\t\tconst moveitem = (targetitem:TomItem, dragitem:TomItem|undefined) => {\n\t\t\t\tif( dragitem === undefined ) return;\n\t\t\t\t\n\t\t\t\tif( isBefore(dragitem,item) ){\n\t\t\t\t\tinsertAfter(targetitem,dragitem);\n\t\t\t\t}else{\n\t\t\t\t\tinsertBefore(targetitem,dragitem);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst dragend = () => {\n\t\t\t\tdocument.querySelectorAll('.ts-drag-over').forEach(el=> el.classList.remove('ts-drag-over'));\n\t\t\t\tdrag_item?.classList.remove('ts-dragging');\n\t\t\t\tdrag_item = undefined;\n\n\t\t\t\tvar values:string[] = [];\n\t\t\t\tself.control.querySelectorAll(`[data-value]`).forEach((el:Element)=> {\n\t\t\t\t\tif( (el).dataset.value ){\n\t\t\t\t\t\tlet value = (el).dataset.value;\n\t\t\t\t\t\tif( value ){\n\t\t\t\t\t\t\tvalues.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tself.setValue(values);\n\t\t\t}\t\n\n\n\t\t\taddEvent(item,'mousedown', mousedown);\n\t\t\taddEvent(item,'dragstart', dragStart);\n\t\t\taddEvent(item,'dragenter', dragOver)\n\t\t\taddEvent(item,'dragover', dragOver);\n\t\t\taddEvent(item,'dragleave', dragLeave);\n\t\t\taddEvent(item,'dragend', dragend);\n\t\t\t\t\n\t\t\treturn item;\n\t\t}\t\n\t});\n\n\n\n\tself.hook('instead','lock',()=>{\n\t\tsortable = false;\n\t\treturn orig_lock.call(self);\n\t});\n\n\tself.hook('instead','unlock',()=>{\n\t\tsortable = true;\n\t\treturn orig_unlock.call(self);\n\t});\n\n};\n", "\nimport type TomSelect from './tom-select.ts';\nimport { TomLoadCallback } from './types/index.ts';\n\n\n/**\n * Converts a scalar to its best string representation\n * for hash keys and HTML attribute values.\n *\n * Transformations:\n * 'str' -> 'str'\n * null -> ''\n * undefined -> ''\n * true -> '1'\n * false -> '0'\n * 0 -> '0'\n * 1 -> '1'\n *\n */\nexport const hash_key = (value:undefined|null|boolean|string|number):string|null => {\n\tif (typeof value === 'undefined' || value === null) return null;\n\treturn get_hash(value);\n};\n\nexport const get_hash = (value:boolean|string|number):string => {\n\tif (typeof value === 'boolean') return value ? '1' : '0';\n\treturn value + '';\n};\n\n/**\n * Escapes a string for use within HTML.\n *\n */\nexport const escape_html = (str:string):string => {\n\treturn (str + '')\n\t\t.replace(/&/g, '&')\n\t\t.replace(//g, '>')\n\t\t.replace(/\"/g, '"');\n};\n\n\n/**\n * use setTimeout if timeout > 0 \n */\nexport const timeout = (fn:()=>void,timeout:number): number | null => {\n\tif( timeout > 0 ){\n\t\treturn window.setTimeout(fn,timeout);\n\t}\n\n\tfn.call(null);\n\treturn null;\n}\n\n/**\n * Debounce the user provided load function\n *\n */\nexport const loadDebounce = (fn:(value:string,callback:TomLoadCallback) => void,delay:number) => {\n\tvar timeout: null|ReturnType;\n\treturn function(this:TomSelect, value:string,callback:TomLoadCallback) {\n\t\tvar self = this;\n\n\t\tif( timeout ){\n\t\t\tself.loading = Math.max(self.loading - 1, 0);\n\t\t\tclearTimeout(timeout);\n\t\t}\n\t\ttimeout = setTimeout(function() {\n\t\t\ttimeout = null;\n\t\t\tself.loadedSearches[value] = true;\n\t\t\tfn.call(self, value, callback);\n\n\t\t}, delay);\n\t};\n};\n\n\n/**\n * Debounce all fired events types listed in `types`\n * while executing the provided `fn`.\n *\n */\nexport const debounce_events = ( self:TomSelect, types:string[], fn:() => void ) => {\n\tvar type:string;\n\tvar trigger = self.trigger;\n\tvar event_args:{ [key: string]: any } = {};\n\n\t// override trigger method\n\tself.trigger = function(){\n\t\tvar type = arguments[0];\n\t\tif (types.indexOf(type) !== -1) {\n\t\t\tevent_args[type] = arguments;\n\t\t} else {\n\t\t\treturn trigger.apply(self, arguments);\n\t\t}\n\t};\n\n\t// invoke provided function\n\tfn.apply(self, []);\n\tself.trigger = trigger;\n\n\t// trigger queued events\n\tfor( type of types ){\n\t\tif( type in event_args ){\n\t\t\ttrigger.apply(self, event_args[type]);\n\t\t}\n\t}\n};\n\n\n/**\n * Determines the current selection within a text input control.\n * Returns an object containing:\n * - start\n * - length\n *\n * Note: \"selectionStart, selectionEnd ... apply only to inputs of types text, search, URL, tel and password\"\n * \t- https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n */\nexport const getSelection = (input:HTMLInputElement):{ start: number; length: number } => {\n\treturn {\n\t\tstart\t: input.selectionStart || 0,\n\t\tlength\t: (input.selectionEnd||0) - (input.selectionStart||0),\n\t};\n};\n\n\n/**\n * Prevent default\n *\n */\nexport const preventDefault = (evt?:Event, stop:boolean=false):void => {\n\tif( evt ){\n\t\tevt.preventDefault();\n\t\tif( stop ){\n\t\t\tevt.stopPropagation();\n\t\t}\n\t}\n}\n\n\n/**\n * Add event helper\n *\n */\nexport const addEvent = (target:EventTarget, type:string, callback:EventListenerOrEventListenerObject, options?:object):void => {\n\ttarget.addEventListener(type,callback,options);\n};\n\n\n/**\n * Return true if the requested key is down\n * Will return false if more than one control character is pressed ( when [ctrl+shift+a] != [ctrl+a] )\n * The current evt may not always set ( eg calling advanceSelection() )\n *\n */\nexport const isKeyDown = ( key_name:keyof (KeyboardEvent|MouseEvent), evt?:KeyboardEvent|MouseEvent ) => {\n\n\tif( !evt ){\n\t\treturn false;\n\t}\n\n\tif( !evt[key_name] ){\n\t\treturn false;\n\t}\n\n\tvar count = (evt.altKey?1:0) + (evt.ctrlKey?1:0) + (evt.shiftKey?1:0) + (evt.metaKey?1:0);\n\n\tif( count === 1 ){\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n\n/**\n * Get the id of an element\n * If the id attribute is not set, set the attribute with the given id\n *\n */\nexport const getId = (el:Element,id:string) => {\n\tconst existing_id = el.getAttribute('id');\n\tif( existing_id ){\n\t\treturn existing_id;\n\t}\n\n\tel.setAttribute('id',id);\n\treturn id;\n};\n\n\n/**\n * Returns a string with backslashes added before characters that need to be escaped.\n */\nexport const addSlashes = (str:string):string => {\n\treturn str.replace(/[\\\\\"']/g, '\\\\$&');\n};\n\n/**\n *\n */\nexport const append = ( parent:Element|DocumentFragment, node: string|Node|null|undefined ):void =>{\n\tif( node ) parent.append(node);\n};\n\n/**\n * Iterates over arrays and hashes.\n *\n * ```\n * iterate(this.items, function(item, id) {\n * // invoked for each item\n * });\n * ```\n *\n */\nexport const iterate = (object:[]|{[key:string]:any}, callback:(value:any,key:any)=>any) => {\n\n\tif ( Array.isArray(object)) {\n\t\tobject.forEach(callback);\n\n\t}else{\n\n\t\tfor (var key in object) {\n\t\t\tif (object.hasOwnProperty(key)) {\n\t\t\t\tcallback(object[key], key);\n\t\t\t}\n\t\t}\n\t}\n};\n", "\nimport { iterate } from './utils.ts';\n\n/**\n * Return a dom element from either a dom query string, jQuery object, a dom element or html string\n * https://stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro/35385518#35385518\n *\n * param query should be {}\n */\nexport const getDom = ( query:any ):HTMLElement => {\n\n\tif( query.jquery ){\n\t\treturn query[0];\n\t}\n\n\tif( query instanceof HTMLElement ){\n\t\treturn query;\n\t}\n\n\tif( isHtmlString(query) ){\n\t\tvar tpl = document.createElement('template');\n\t\ttpl.innerHTML = query.trim(); // Never return a text node of whitespace as the result\n\t\treturn tpl.content.firstChild as HTMLElement;\n\t}\n\n\treturn document.querySelector(query);\n};\n\nexport const isHtmlString = (arg:any): boolean => {\n\tif( typeof arg === 'string' && arg.indexOf('<') > -1 ){\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport const escapeQuery = (query:string):string => {\n\treturn query.replace(/['\"\\\\]/g, '\\\\$&');\n}\n\n/**\n * Dispatch an event\n *\n */\nexport const triggerEvent = ( dom_el:HTMLElement, event_name:string ):void => {\n\tvar event = document.createEvent('HTMLEvents');\n\tevent.initEvent(event_name, true, false);\n\tdom_el.dispatchEvent(event)\n};\n\n/**\n * Apply CSS rules to a dom element\n *\n */\nexport const applyCSS = ( dom_el:HTMLElement, css:{ [key: string]: string|number }):void => {\n\tObject.assign(dom_el.style, css);\n}\n\n\n/**\n * Add css classes\n *\n */\nexport const addClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n\tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map( cls => {\n\t\t\tel.classList.add( cls );\n\t\t});\n\t});\n}\n\n/**\n * Remove css classes\n *\n */\n export const removeClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n \tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map(cls => {\n\t \t\tel.classList.remove( cls );\n\t\t});\n \t});\n }\n\n\n/**\n * Return arguments\n *\n */\nexport const classesArray = (args:string[]|string[][]):string[] => {\n\tvar classes:string[] = [];\n\titerate( args, (_classes) =>{\n\t\tif( typeof _classes === 'string' ){\n\t\t\t_classes = _classes.trim().split(/[\\t\\n\\f\\r\\s]/);\n\t\t}\n\t\tif( Array.isArray(_classes) ){\n\t\t\tclasses = classes.concat(_classes);\n\t\t}\n\t});\n\n\treturn classes.filter(Boolean);\n}\n\n\n/**\n * Create an array from arg if it's not already an array\n *\n */\nexport const castAsArray = (arg:any):Array => {\n\tif( !Array.isArray(arg) ){\n \t\targ = [arg];\n \t}\n\treturn arg;\n}\n\n\n/**\n * Get the closest node to the evt.target matching the selector\n * Stops at wrapper\n *\n */\nexport const parentMatch = ( target:null|HTMLElement, selector:string, wrapper?:HTMLElement ):HTMLElement|void => {\n\n\tif( wrapper && !wrapper.contains(target) ){\n\t\treturn;\n\t}\n\n\twhile( target && target.matches ){\n\n\t\tif( target.matches(selector) ){\n\t\t\treturn target;\n\t\t}\n\n\t\ttarget = target.parentNode as HTMLElement;\n\t}\n}\n\n\n/**\n * Get the first or last item from an array\n *\n * > 0 - right (last)\n * <= 0 - left (first)\n *\n */\nexport const getTail = ( list:Array|NodeList, direction:number=0 ):any => {\n\n\tif( direction > 0 ){\n\t\treturn list[list.length-1];\n\t}\n\n\treturn list[0];\n}\n\n/**\n * Return true if an object is empty\n *\n */\nexport const isEmptyObject = (obj:object):boolean => {\n\treturn (Object.keys(obj).length === 0);\n}\n\n\n/**\n * Get the index of an element amongst sibling nodes of the same type\n *\n */\nexport const nodeIndex = ( el:null|Element, amongst?:string ):number => {\n\tif (!el) return -1;\n\n\tamongst = amongst || el.nodeName;\n\n\tvar i = 0;\n\twhile( el = el.previousElementSibling ){\n\n\t\tif( el.matches(amongst) ){\n\t\t\ti++;\n\t\t}\n\t}\n\treturn i;\n}\n\n\n/**\n * Set attributes of an element\n *\n */\nexport const setAttr = (el:Element,attrs:{ [key: string]: null|string|number }) => {\n\titerate( attrs,(val,attr) => {\n\t\tif( val == null ){\n\t\t\tel.removeAttribute(attr as string);\n\t\t}else{\n\t\t\tel.setAttribute(attr as string, ''+val);\n\t\t}\n\t});\n}\n\n\n/**\n * Replace a node\n */\nexport const replaceNode = ( existing:Node, replacement:Node ) => {\n\tif( existing.parentNode ) existing.parentNode.replaceChild(replacement, existing);\n}\n", "/**\n * Plugin: \"dropdown_header\" (Tom Select)\n * Copyright (c) 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 */\n\nimport type TomSelect from '../../tom-select.ts';\nimport { getDom } from '../../vanilla.ts';\nimport { preventDefault } from '../../utils.ts';\nimport { DHOptions } from './types.ts';\n\nexport default function(this:TomSelect, userOptions:DHOptions) {\n\tconst self = this;\n\n\tconst options = Object.assign({\n\t\ttitle : 'Untitled',\n\t\theaderClass : 'dropdown-header',\n\t\ttitleRowClass : 'dropdown-header-title',\n\t\tlabelClass : 'dropdown-header-label',\n\t\tcloseClass : 'dropdown-header-close',\n\n\t\thtml: (data:DHOptions) => {\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}, userOptions);\n\n\tself.on('initialize',()=>{\n\t\tvar header = getDom(options.html(options));\n\n\t\tvar close_link = header.querySelector('.'+options.closeClass);\n\t\tif( close_link ){\n\t\t\tclose_link.addEventListener('click',(evt)=>{\n\t\t\t\tpreventDefault(evt,true);\n\t\t\t\tself.close();\n\t\t\t});\n\t\t}\n\n\t\tself.dropdown.insertBefore(header, self.dropdown.firstChild);\n\t});\n\n};\n", "\nimport type TomSelect from './tom-select.ts';\nimport { TomLoadCallback } from './types/index.ts';\n\n\n/**\n * Converts a scalar to its best string representation\n * for hash keys and HTML attribute values.\n *\n * Transformations:\n * 'str' -> 'str'\n * null -> ''\n * undefined -> ''\n * true -> '1'\n * false -> '0'\n * 0 -> '0'\n * 1 -> '1'\n *\n */\nexport const hash_key = (value:undefined|null|boolean|string|number):string|null => {\n\tif (typeof value === 'undefined' || value === null) return null;\n\treturn get_hash(value);\n};\n\nexport const get_hash = (value:boolean|string|number):string => {\n\tif (typeof value === 'boolean') return value ? '1' : '0';\n\treturn value + '';\n};\n\n/**\n * Escapes a string for use within HTML.\n *\n */\nexport const escape_html = (str:string):string => {\n\treturn (str + '')\n\t\t.replace(/&/g, '&')\n\t\t.replace(//g, '>')\n\t\t.replace(/\"/g, '"');\n};\n\n\n/**\n * use setTimeout if timeout > 0 \n */\nexport const timeout = (fn:()=>void,timeout:number): number | null => {\n\tif( timeout > 0 ){\n\t\treturn window.setTimeout(fn,timeout);\n\t}\n\n\tfn.call(null);\n\treturn null;\n}\n\n/**\n * Debounce the user provided load function\n *\n */\nexport const loadDebounce = (fn:(value:string,callback:TomLoadCallback) => void,delay:number) => {\n\tvar timeout: null|ReturnType;\n\treturn function(this:TomSelect, value:string,callback:TomLoadCallback) {\n\t\tvar self = this;\n\n\t\tif( timeout ){\n\t\t\tself.loading = Math.max(self.loading - 1, 0);\n\t\t\tclearTimeout(timeout);\n\t\t}\n\t\ttimeout = setTimeout(function() {\n\t\t\ttimeout = null;\n\t\t\tself.loadedSearches[value] = true;\n\t\t\tfn.call(self, value, callback);\n\n\t\t}, delay);\n\t};\n};\n\n\n/**\n * Debounce all fired events types listed in `types`\n * while executing the provided `fn`.\n *\n */\nexport const debounce_events = ( self:TomSelect, types:string[], fn:() => void ) => {\n\tvar type:string;\n\tvar trigger = self.trigger;\n\tvar event_args:{ [key: string]: any } = {};\n\n\t// override trigger method\n\tself.trigger = function(){\n\t\tvar type = arguments[0];\n\t\tif (types.indexOf(type) !== -1) {\n\t\t\tevent_args[type] = arguments;\n\t\t} else {\n\t\t\treturn trigger.apply(self, arguments);\n\t\t}\n\t};\n\n\t// invoke provided function\n\tfn.apply(self, []);\n\tself.trigger = trigger;\n\n\t// trigger queued events\n\tfor( type of types ){\n\t\tif( type in event_args ){\n\t\t\ttrigger.apply(self, event_args[type]);\n\t\t}\n\t}\n};\n\n\n/**\n * Determines the current selection within a text input control.\n * Returns an object containing:\n * - start\n * - length\n *\n * Note: \"selectionStart, selectionEnd ... apply only to inputs of types text, search, URL, tel and password\"\n * \t- https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n */\nexport const getSelection = (input:HTMLInputElement):{ start: number; length: number } => {\n\treturn {\n\t\tstart\t: input.selectionStart || 0,\n\t\tlength\t: (input.selectionEnd||0) - (input.selectionStart||0),\n\t};\n};\n\n\n/**\n * Prevent default\n *\n */\nexport const preventDefault = (evt?:Event, stop:boolean=false):void => {\n\tif( evt ){\n\t\tevt.preventDefault();\n\t\tif( stop ){\n\t\t\tevt.stopPropagation();\n\t\t}\n\t}\n}\n\n\n/**\n * Add event helper\n *\n */\nexport const addEvent = (target:EventTarget, type:string, callback:EventListenerOrEventListenerObject, options?:object):void => {\n\ttarget.addEventListener(type,callback,options);\n};\n\n\n/**\n * Return true if the requested key is down\n * Will return false if more than one control character is pressed ( when [ctrl+shift+a] != [ctrl+a] )\n * The current evt may not always set ( eg calling advanceSelection() )\n *\n */\nexport const isKeyDown = ( key_name:keyof (KeyboardEvent|MouseEvent), evt?:KeyboardEvent|MouseEvent ) => {\n\n\tif( !evt ){\n\t\treturn false;\n\t}\n\n\tif( !evt[key_name] ){\n\t\treturn false;\n\t}\n\n\tvar count = (evt.altKey?1:0) + (evt.ctrlKey?1:0) + (evt.shiftKey?1:0) + (evt.metaKey?1:0);\n\n\tif( count === 1 ){\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n\n/**\n * Get the id of an element\n * If the id attribute is not set, set the attribute with the given id\n *\n */\nexport const getId = (el:Element,id:string) => {\n\tconst existing_id = el.getAttribute('id');\n\tif( existing_id ){\n\t\treturn existing_id;\n\t}\n\n\tel.setAttribute('id',id);\n\treturn id;\n};\n\n\n/**\n * Returns a string with backslashes added before characters that need to be escaped.\n */\nexport const addSlashes = (str:string):string => {\n\treturn str.replace(/[\\\\\"']/g, '\\\\$&');\n};\n\n/**\n *\n */\nexport const append = ( parent:Element|DocumentFragment, node: string|Node|null|undefined ):void =>{\n\tif( node ) parent.append(node);\n};\n\n/**\n * Iterates over arrays and hashes.\n *\n * ```\n * iterate(this.items, function(item, id) {\n * // invoked for each item\n * });\n * ```\n *\n */\nexport const iterate = (object:[]|{[key:string]:any}, callback:(value:any,key:any)=>any) => {\n\n\tif ( Array.isArray(object)) {\n\t\tobject.forEach(callback);\n\n\t}else{\n\n\t\tfor (var key in object) {\n\t\t\tif (object.hasOwnProperty(key)) {\n\t\t\t\tcallback(object[key], key);\n\t\t\t}\n\t\t}\n\t}\n};\n", "\nimport { iterate } from './utils.ts';\n\n/**\n * Return a dom element from either a dom query string, jQuery object, a dom element or html string\n * https://stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro/35385518#35385518\n *\n * param query should be {}\n */\nexport const getDom = ( query:any ):HTMLElement => {\n\n\tif( query.jquery ){\n\t\treturn query[0];\n\t}\n\n\tif( query instanceof HTMLElement ){\n\t\treturn query;\n\t}\n\n\tif( isHtmlString(query) ){\n\t\tvar tpl = document.createElement('template');\n\t\ttpl.innerHTML = query.trim(); // Never return a text node of whitespace as the result\n\t\treturn tpl.content.firstChild as HTMLElement;\n\t}\n\n\treturn document.querySelector(query);\n};\n\nexport const isHtmlString = (arg:any): boolean => {\n\tif( typeof arg === 'string' && arg.indexOf('<') > -1 ){\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport const escapeQuery = (query:string):string => {\n\treturn query.replace(/['\"\\\\]/g, '\\\\$&');\n}\n\n/**\n * Dispatch an event\n *\n */\nexport const triggerEvent = ( dom_el:HTMLElement, event_name:string ):void => {\n\tvar event = document.createEvent('HTMLEvents');\n\tevent.initEvent(event_name, true, false);\n\tdom_el.dispatchEvent(event)\n};\n\n/**\n * Apply CSS rules to a dom element\n *\n */\nexport const applyCSS = ( dom_el:HTMLElement, css:{ [key: string]: string|number }):void => {\n\tObject.assign(dom_el.style, css);\n}\n\n\n/**\n * Add css classes\n *\n */\nexport const addClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n\tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map( cls => {\n\t\t\tel.classList.add( cls );\n\t\t});\n\t});\n}\n\n/**\n * Remove css classes\n *\n */\n export const removeClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n \tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map(cls => {\n\t \t\tel.classList.remove( cls );\n\t\t});\n \t});\n }\n\n\n/**\n * Return arguments\n *\n */\nexport const classesArray = (args:string[]|string[][]):string[] => {\n\tvar classes:string[] = [];\n\titerate( args, (_classes) =>{\n\t\tif( typeof _classes === 'string' ){\n\t\t\t_classes = _classes.trim().split(/[\\t\\n\\f\\r\\s]/);\n\t\t}\n\t\tif( Array.isArray(_classes) ){\n\t\t\tclasses = classes.concat(_classes);\n\t\t}\n\t});\n\n\treturn classes.filter(Boolean);\n}\n\n\n/**\n * Create an array from arg if it's not already an array\n *\n */\nexport const castAsArray = (arg:any):Array => {\n\tif( !Array.isArray(arg) ){\n \t\targ = [arg];\n \t}\n\treturn arg;\n}\n\n\n/**\n * Get the closest node to the evt.target matching the selector\n * Stops at wrapper\n *\n */\nexport const parentMatch = ( target:null|HTMLElement, selector:string, wrapper?:HTMLElement ):HTMLElement|void => {\n\n\tif( wrapper && !wrapper.contains(target) ){\n\t\treturn;\n\t}\n\n\twhile( target && target.matches ){\n\n\t\tif( target.matches(selector) ){\n\t\t\treturn target;\n\t\t}\n\n\t\ttarget = target.parentNode as HTMLElement;\n\t}\n}\n\n\n/**\n * Get the first or last item from an array\n *\n * > 0 - right (last)\n * <= 0 - left (first)\n *\n */\nexport const getTail = ( list:Array|NodeList, direction:number=0 ):any => {\n\n\tif( direction > 0 ){\n\t\treturn list[list.length-1];\n\t}\n\n\treturn list[0];\n}\n\n/**\n * Return true if an object is empty\n *\n */\nexport const isEmptyObject = (obj:object):boolean => {\n\treturn (Object.keys(obj).length === 0);\n}\n\n\n/**\n * Get the index of an element amongst sibling nodes of the same type\n *\n */\nexport const nodeIndex = ( el:null|Element, amongst?:string ):number => {\n\tif (!el) return -1;\n\n\tamongst = amongst || el.nodeName;\n\n\tvar i = 0;\n\twhile( el = el.previousElementSibling ){\n\n\t\tif( el.matches(amongst) ){\n\t\t\ti++;\n\t\t}\n\t}\n\treturn i;\n}\n\n\n/**\n * Set attributes of an element\n *\n */\nexport const setAttr = (el:Element,attrs:{ [key: string]: null|string|number }) => {\n\titerate( attrs,(val,attr) => {\n\t\tif( val == null ){\n\t\t\tel.removeAttribute(attr as string);\n\t\t}else{\n\t\t\tel.setAttribute(attr as string, ''+val);\n\t\t}\n\t});\n}\n\n\n/**\n * Replace a node\n */\nexport const replaceNode = ( existing:Node, replacement:Node ) => {\n\tif( existing.parentNode ) existing.parentNode.replaceChild(replacement, existing);\n}\n", "/**\n * Plugin: \"dropdown_input\" (Tom Select)\n * Copyright (c) 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 */\n\nimport type TomSelect from '../../tom-select.ts';\nimport { nodeIndex, removeClasses } from '../../vanilla.ts';\n\n\nexport default function(this:TomSelect) {\n\tvar self = this;\n\n\t/**\n\t * Moves the caret to the specified index.\n\t *\n\t * The input must be moved by leaving it in place and moving the\n\t * siblings, due to the fact that focus cannot be restored once lost\n\t * on mobile webkit devices\n\t *\n\t */\n\tself.hook('instead','setCaret',(new_pos:number) => {\n\n\t\tif( self.settings.mode === 'single' || !self.control.contains(self.control_input) ) {\n\t\t\tnew_pos = self.items.length;\n\t\t} else {\n\t\t\tnew_pos = Math.max(0, Math.min(self.items.length, new_pos));\n\n\t\t\tif( new_pos != self.caretPos && !self.isPending ){\n\n\t\t\t\tself.controlChildren().forEach((child,j) => {\n\t\t\t\t\tif( j < new_pos ){\n\t\t\t\t\t\tself.control_input.insertAdjacentElement('beforebegin', child );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.control.appendChild( child );\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tself.caretPos = new_pos;\n\t});\n\n\tself.hook('instead','moveCaret',(direction:number) => {\n\n\t\tif( !self.isFocused ) return;\n\n\t\t// move caret before or after selected items\n\t\tconst last_active\t\t= self.getLastActive(direction);\n\t\tif( last_active ){\n\t\t\tconst idx = nodeIndex(last_active);\n\t\t\tself.setCaret(direction > 0 ? idx + 1: idx);\n\t\t\tself.setActiveItem();\n\t\t\tremoveClasses(last_active as HTMLElement,'last-active');\n\n\t\t// move caret left or right of current position\n\t\t}else{\n\t\t\tself.setCaret(self.caretPos + direction);\n\n\t\t}\n\n\t});\n\n};\n", "export const KEY_A\t\t\t\t= 65;\nexport const KEY_RETURN\t\t\t= 13;\nexport const KEY_ESC\t\t\t= 27;\nexport const KEY_LEFT\t\t\t= 37;\nexport const KEY_UP\t\t\t\t= 38;\nexport const KEY_RIGHT\t\t\t= 39;\nexport const KEY_DOWN\t\t\t= 40;\nexport const KEY_BACKSPACE\t\t= 8;\nexport const KEY_DELETE\t\t\t= 46;\nexport const KEY_TAB\t\t\t= 9;\n\nexport const IS_MAC \t\t= typeof navigator === 'undefined' ? false : /Mac/.test(navigator.userAgent);\nexport const KEY_SHORTCUT\t\t= IS_MAC ? 'metaKey' : 'ctrlKey'; // ctrl key or apple key for ma\n", "\nimport type TomSelect from './tom-select.ts';\nimport { TomLoadCallback } from './types/index.ts';\n\n\n/**\n * Converts a scalar to its best string representation\n * for hash keys and HTML attribute values.\n *\n * Transformations:\n * 'str' -> 'str'\n * null -> ''\n * undefined -> ''\n * true -> '1'\n * false -> '0'\n * 0 -> '0'\n * 1 -> '1'\n *\n */\nexport const hash_key = (value:undefined|null|boolean|string|number):string|null => {\n\tif (typeof value === 'undefined' || value === null) return null;\n\treturn get_hash(value);\n};\n\nexport const get_hash = (value:boolean|string|number):string => {\n\tif (typeof value === 'boolean') return value ? '1' : '0';\n\treturn value + '';\n};\n\n/**\n * Escapes a string for use within HTML.\n *\n */\nexport const escape_html = (str:string):string => {\n\treturn (str + '')\n\t\t.replace(/&/g, '&')\n\t\t.replace(//g, '>')\n\t\t.replace(/\"/g, '"');\n};\n\n\n/**\n * use setTimeout if timeout > 0 \n */\nexport const timeout = (fn:()=>void,timeout:number): number | null => {\n\tif( timeout > 0 ){\n\t\treturn window.setTimeout(fn,timeout);\n\t}\n\n\tfn.call(null);\n\treturn null;\n}\n\n/**\n * Debounce the user provided load function\n *\n */\nexport const loadDebounce = (fn:(value:string,callback:TomLoadCallback) => void,delay:number) => {\n\tvar timeout: null|ReturnType;\n\treturn function(this:TomSelect, value:string,callback:TomLoadCallback) {\n\t\tvar self = this;\n\n\t\tif( timeout ){\n\t\t\tself.loading = Math.max(self.loading - 1, 0);\n\t\t\tclearTimeout(timeout);\n\t\t}\n\t\ttimeout = setTimeout(function() {\n\t\t\ttimeout = null;\n\t\t\tself.loadedSearches[value] = true;\n\t\t\tfn.call(self, value, callback);\n\n\t\t}, delay);\n\t};\n};\n\n\n/**\n * Debounce all fired events types listed in `types`\n * while executing the provided `fn`.\n *\n */\nexport const debounce_events = ( self:TomSelect, types:string[], fn:() => void ) => {\n\tvar type:string;\n\tvar trigger = self.trigger;\n\tvar event_args:{ [key: string]: any } = {};\n\n\t// override trigger method\n\tself.trigger = function(){\n\t\tvar type = arguments[0];\n\t\tif (types.indexOf(type) !== -1) {\n\t\t\tevent_args[type] = arguments;\n\t\t} else {\n\t\t\treturn trigger.apply(self, arguments);\n\t\t}\n\t};\n\n\t// invoke provided function\n\tfn.apply(self, []);\n\tself.trigger = trigger;\n\n\t// trigger queued events\n\tfor( type of types ){\n\t\tif( type in event_args ){\n\t\t\ttrigger.apply(self, event_args[type]);\n\t\t}\n\t}\n};\n\n\n/**\n * Determines the current selection within a text input control.\n * Returns an object containing:\n * - start\n * - length\n *\n * Note: \"selectionStart, selectionEnd ... apply only to inputs of types text, search, URL, tel and password\"\n * \t- https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n */\nexport const getSelection = (input:HTMLInputElement):{ start: number; length: number } => {\n\treturn {\n\t\tstart\t: input.selectionStart || 0,\n\t\tlength\t: (input.selectionEnd||0) - (input.selectionStart||0),\n\t};\n};\n\n\n/**\n * Prevent default\n *\n */\nexport const preventDefault = (evt?:Event, stop:boolean=false):void => {\n\tif( evt ){\n\t\tevt.preventDefault();\n\t\tif( stop ){\n\t\t\tevt.stopPropagation();\n\t\t}\n\t}\n}\n\n\n/**\n * Add event helper\n *\n */\nexport const addEvent = (target:EventTarget, type:string, callback:EventListenerOrEventListenerObject, options?:object):void => {\n\ttarget.addEventListener(type,callback,options);\n};\n\n\n/**\n * Return true if the requested key is down\n * Will return false if more than one control character is pressed ( when [ctrl+shift+a] != [ctrl+a] )\n * The current evt may not always set ( eg calling advanceSelection() )\n *\n */\nexport const isKeyDown = ( key_name:keyof (KeyboardEvent|MouseEvent), evt?:KeyboardEvent|MouseEvent ) => {\n\n\tif( !evt ){\n\t\treturn false;\n\t}\n\n\tif( !evt[key_name] ){\n\t\treturn false;\n\t}\n\n\tvar count = (evt.altKey?1:0) + (evt.ctrlKey?1:0) + (evt.shiftKey?1:0) + (evt.metaKey?1:0);\n\n\tif( count === 1 ){\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n\n/**\n * Get the id of an element\n * If the id attribute is not set, set the attribute with the given id\n *\n */\nexport const getId = (el:Element,id:string) => {\n\tconst existing_id = el.getAttribute('id');\n\tif( existing_id ){\n\t\treturn existing_id;\n\t}\n\n\tel.setAttribute('id',id);\n\treturn id;\n};\n\n\n/**\n * Returns a string with backslashes added before characters that need to be escaped.\n */\nexport const addSlashes = (str:string):string => {\n\treturn str.replace(/[\\\\\"']/g, '\\\\$&');\n};\n\n/**\n *\n */\nexport const append = ( parent:Element|DocumentFragment, node: string|Node|null|undefined ):void =>{\n\tif( node ) parent.append(node);\n};\n\n/**\n * Iterates over arrays and hashes.\n *\n * ```\n * iterate(this.items, function(item, id) {\n * // invoked for each item\n * });\n * ```\n *\n */\nexport const iterate = (object:[]|{[key:string]:any}, callback:(value:any,key:any)=>any) => {\n\n\tif ( Array.isArray(object)) {\n\t\tobject.forEach(callback);\n\n\t}else{\n\n\t\tfor (var key in object) {\n\t\t\tif (object.hasOwnProperty(key)) {\n\t\t\t\tcallback(object[key], key);\n\t\t\t}\n\t\t}\n\t}\n};\n", "\nimport { iterate } from './utils.ts';\n\n/**\n * Return a dom element from either a dom query string, jQuery object, a dom element or html string\n * https://stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro/35385518#35385518\n *\n * param query should be {}\n */\nexport const getDom = ( query:any ):HTMLElement => {\n\n\tif( query.jquery ){\n\t\treturn query[0];\n\t}\n\n\tif( query instanceof HTMLElement ){\n\t\treturn query;\n\t}\n\n\tif( isHtmlString(query) ){\n\t\tvar tpl = document.createElement('template');\n\t\ttpl.innerHTML = query.trim(); // Never return a text node of whitespace as the result\n\t\treturn tpl.content.firstChild as HTMLElement;\n\t}\n\n\treturn document.querySelector(query);\n};\n\nexport const isHtmlString = (arg:any): boolean => {\n\tif( typeof arg === 'string' && arg.indexOf('<') > -1 ){\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport const escapeQuery = (query:string):string => {\n\treturn query.replace(/['\"\\\\]/g, '\\\\$&');\n}\n\n/**\n * Dispatch an event\n *\n */\nexport const triggerEvent = ( dom_el:HTMLElement, event_name:string ):void => {\n\tvar event = document.createEvent('HTMLEvents');\n\tevent.initEvent(event_name, true, false);\n\tdom_el.dispatchEvent(event)\n};\n\n/**\n * Apply CSS rules to a dom element\n *\n */\nexport const applyCSS = ( dom_el:HTMLElement, css:{ [key: string]: string|number }):void => {\n\tObject.assign(dom_el.style, css);\n}\n\n\n/**\n * Add css classes\n *\n */\nexport const addClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n\tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map( cls => {\n\t\t\tel.classList.add( cls );\n\t\t});\n\t});\n}\n\n/**\n * Remove css classes\n *\n */\n export const removeClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n \tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map(cls => {\n\t \t\tel.classList.remove( cls );\n\t\t});\n \t});\n }\n\n\n/**\n * Return arguments\n *\n */\nexport const classesArray = (args:string[]|string[][]):string[] => {\n\tvar classes:string[] = [];\n\titerate( args, (_classes) =>{\n\t\tif( typeof _classes === 'string' ){\n\t\t\t_classes = _classes.trim().split(/[\\t\\n\\f\\r\\s]/);\n\t\t}\n\t\tif( Array.isArray(_classes) ){\n\t\t\tclasses = classes.concat(_classes);\n\t\t}\n\t});\n\n\treturn classes.filter(Boolean);\n}\n\n\n/**\n * Create an array from arg if it's not already an array\n *\n */\nexport const castAsArray = (arg:any):Array => {\n\tif( !Array.isArray(arg) ){\n \t\targ = [arg];\n \t}\n\treturn arg;\n}\n\n\n/**\n * Get the closest node to the evt.target matching the selector\n * Stops at wrapper\n *\n */\nexport const parentMatch = ( target:null|HTMLElement, selector:string, wrapper?:HTMLElement ):HTMLElement|void => {\n\n\tif( wrapper && !wrapper.contains(target) ){\n\t\treturn;\n\t}\n\n\twhile( target && target.matches ){\n\n\t\tif( target.matches(selector) ){\n\t\t\treturn target;\n\t\t}\n\n\t\ttarget = target.parentNode as HTMLElement;\n\t}\n}\n\n\n/**\n * Get the first or last item from an array\n *\n * > 0 - right (last)\n * <= 0 - left (first)\n *\n */\nexport const getTail = ( list:Array|NodeList, direction:number=0 ):any => {\n\n\tif( direction > 0 ){\n\t\treturn list[list.length-1];\n\t}\n\n\treturn list[0];\n}\n\n/**\n * Return true if an object is empty\n *\n */\nexport const isEmptyObject = (obj:object):boolean => {\n\treturn (Object.keys(obj).length === 0);\n}\n\n\n/**\n * Get the index of an element amongst sibling nodes of the same type\n *\n */\nexport const nodeIndex = ( el:null|Element, amongst?:string ):number => {\n\tif (!el) return -1;\n\n\tamongst = amongst || el.nodeName;\n\n\tvar i = 0;\n\twhile( el = el.previousElementSibling ){\n\n\t\tif( el.matches(amongst) ){\n\t\t\ti++;\n\t\t}\n\t}\n\treturn i;\n}\n\n\n/**\n * Set attributes of an element\n *\n */\nexport const setAttr = (el:Element,attrs:{ [key: string]: null|string|number }) => {\n\titerate( attrs,(val,attr) => {\n\t\tif( val == null ){\n\t\t\tel.removeAttribute(attr as string);\n\t\t}else{\n\t\t\tel.setAttribute(attr as string, ''+val);\n\t\t}\n\t});\n}\n\n\n/**\n * Replace a node\n */\nexport const replaceNode = ( existing:Node, replacement:Node ) => {\n\tif( existing.parentNode ) existing.parentNode.replaceChild(replacement, existing);\n}\n", "/**\n * Plugin: \"dropdown_input\" (Tom Select)\n * Copyright (c) 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 */\n\nimport type TomSelect from '../../tom-select.ts';\nimport * as constants from '../../constants.ts';\nimport { getDom, addClasses } from '../../vanilla.ts';\nimport { addEvent, preventDefault } from '../../utils.ts';\n\n\nexport default function(this:TomSelect) {\n\tconst self = this;\n\n\tself.settings.shouldOpen = true; // make sure the input is shown even if there are no options to display in the dropdown\n\n\tself.hook('before','setup',()=>{\n\t\tself.focus_node\t\t= self.control;\n\n\t\taddClasses( self.control_input, 'dropdown-input');\n\n\t \tconst div = getDom('
');\n\t\tdiv.append(self.control_input);\n\t\tself.dropdown.insertBefore(div, self.dropdown.firstChild);\n\n\t\t// set a placeholder in the select control\n\t\tconst placeholder = getDom('') as HTMLInputElement;\n\t\tplaceholder.placeholder = self.settings.placeholder ||'';\n\t\tself.control.append(placeholder);\n\n\t});\n\n\n\tself.on('initialize',()=>{\n\n\t\t// set tabIndex on control to -1, otherwise [shift+tab] will put focus right back on control_input\n\t\tself.control_input.addEventListener('keydown',(evt:KeyboardEvent) =>{\n\t\t//addEvent(self.control_input,'keydown' as const,(evt:KeyboardEvent) =>{\n\t\t\tswitch( evt.keyCode ){\n\t\t\t\tcase constants.KEY_ESC:\n\t\t\t\t\tif (self.isOpen) {\n\t\t\t\t\t\tpreventDefault(evt,true);\n\t\t\t\t\t\tself.close();\n\t\t\t\t\t}\n\t\t\t\t\tself.clearActiveItems();\n\t\t\t\treturn;\n\t\t\t\tcase constants.KEY_TAB:\n\t\t\t\t\tself.focus_node.tabIndex = -1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\treturn self.onKeyDown.call(self,evt);\n\t\t});\n\n\t\tself.on('blur',()=>{\n\t\t\tself.focus_node.tabIndex = self.isDisabled ? -1 : self.tabIndex;\n\t\t});\n\n\n\t\t// give the control_input focus when the dropdown is open\n\t\tself.on('dropdown_open',() =>{\n\t\t\tself.control_input.focus();\n\t\t});\n\n\t\t// prevent onBlur from closing when focus is on the control_input\n\t\tconst orig_onBlur = self.onBlur;\n\t\tself.hook('instead','onBlur',(evt?:FocusEvent)=>{\n\t\t\tif( evt && evt.relatedTarget == self.control_input ) return;\n\t\t\treturn orig_onBlur.call(self);\n\t\t});\n\n\t\taddEvent(self.control_input,'blur', () => self.onBlur() );\n\n\t\t// return focus to control to allow further keyboard input\n\t\tself.hook('before','close',() =>{\n\n\t\t\tif( !self.isOpen ) return;\n\t\t\tself.focus_node.focus({preventScroll: true});\n\t\t});\n\n\t});\n\n};\n", "\nimport type TomSelect from './tom-select.ts';\nimport { TomLoadCallback } from './types/index.ts';\n\n\n/**\n * Converts a scalar to its best string representation\n * for hash keys and HTML attribute values.\n *\n * Transformations:\n * 'str' -> 'str'\n * null -> ''\n * undefined -> ''\n * true -> '1'\n * false -> '0'\n * 0 -> '0'\n * 1 -> '1'\n *\n */\nexport const hash_key = (value:undefined|null|boolean|string|number):string|null => {\n\tif (typeof value === 'undefined' || value === null) return null;\n\treturn get_hash(value);\n};\n\nexport const get_hash = (value:boolean|string|number):string => {\n\tif (typeof value === 'boolean') return value ? '1' : '0';\n\treturn value + '';\n};\n\n/**\n * Escapes a string for use within HTML.\n *\n */\nexport const escape_html = (str:string):string => {\n\treturn (str + '')\n\t\t.replace(/&/g, '&')\n\t\t.replace(//g, '>')\n\t\t.replace(/\"/g, '"');\n};\n\n\n/**\n * use setTimeout if timeout > 0 \n */\nexport const timeout = (fn:()=>void,timeout:number): number | null => {\n\tif( timeout > 0 ){\n\t\treturn window.setTimeout(fn,timeout);\n\t}\n\n\tfn.call(null);\n\treturn null;\n}\n\n/**\n * Debounce the user provided load function\n *\n */\nexport const loadDebounce = (fn:(value:string,callback:TomLoadCallback) => void,delay:number) => {\n\tvar timeout: null|ReturnType;\n\treturn function(this:TomSelect, value:string,callback:TomLoadCallback) {\n\t\tvar self = this;\n\n\t\tif( timeout ){\n\t\t\tself.loading = Math.max(self.loading - 1, 0);\n\t\t\tclearTimeout(timeout);\n\t\t}\n\t\ttimeout = setTimeout(function() {\n\t\t\ttimeout = null;\n\t\t\tself.loadedSearches[value] = true;\n\t\t\tfn.call(self, value, callback);\n\n\t\t}, delay);\n\t};\n};\n\n\n/**\n * Debounce all fired events types listed in `types`\n * while executing the provided `fn`.\n *\n */\nexport const debounce_events = ( self:TomSelect, types:string[], fn:() => void ) => {\n\tvar type:string;\n\tvar trigger = self.trigger;\n\tvar event_args:{ [key: string]: any } = {};\n\n\t// override trigger method\n\tself.trigger = function(){\n\t\tvar type = arguments[0];\n\t\tif (types.indexOf(type) !== -1) {\n\t\t\tevent_args[type] = arguments;\n\t\t} else {\n\t\t\treturn trigger.apply(self, arguments);\n\t\t}\n\t};\n\n\t// invoke provided function\n\tfn.apply(self, []);\n\tself.trigger = trigger;\n\n\t// trigger queued events\n\tfor( type of types ){\n\t\tif( type in event_args ){\n\t\t\ttrigger.apply(self, event_args[type]);\n\t\t}\n\t}\n};\n\n\n/**\n * Determines the current selection within a text input control.\n * Returns an object containing:\n * - start\n * - length\n *\n * Note: \"selectionStart, selectionEnd ... apply only to inputs of types text, search, URL, tel and password\"\n * \t- https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n */\nexport const getSelection = (input:HTMLInputElement):{ start: number; length: number } => {\n\treturn {\n\t\tstart\t: input.selectionStart || 0,\n\t\tlength\t: (input.selectionEnd||0) - (input.selectionStart||0),\n\t};\n};\n\n\n/**\n * Prevent default\n *\n */\nexport const preventDefault = (evt?:Event, stop:boolean=false):void => {\n\tif( evt ){\n\t\tevt.preventDefault();\n\t\tif( stop ){\n\t\t\tevt.stopPropagation();\n\t\t}\n\t}\n}\n\n\n/**\n * Add event helper\n *\n */\nexport const addEvent = (target:EventTarget, type:string, callback:EventListenerOrEventListenerObject, options?:object):void => {\n\ttarget.addEventListener(type,callback,options);\n};\n\n\n/**\n * Return true if the requested key is down\n * Will return false if more than one control character is pressed ( when [ctrl+shift+a] != [ctrl+a] )\n * The current evt may not always set ( eg calling advanceSelection() )\n *\n */\nexport const isKeyDown = ( key_name:keyof (KeyboardEvent|MouseEvent), evt?:KeyboardEvent|MouseEvent ) => {\n\n\tif( !evt ){\n\t\treturn false;\n\t}\n\n\tif( !evt[key_name] ){\n\t\treturn false;\n\t}\n\n\tvar count = (evt.altKey?1:0) + (evt.ctrlKey?1:0) + (evt.shiftKey?1:0) + (evt.metaKey?1:0);\n\n\tif( count === 1 ){\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n\n/**\n * Get the id of an element\n * If the id attribute is not set, set the attribute with the given id\n *\n */\nexport const getId = (el:Element,id:string) => {\n\tconst existing_id = el.getAttribute('id');\n\tif( existing_id ){\n\t\treturn existing_id;\n\t}\n\n\tel.setAttribute('id',id);\n\treturn id;\n};\n\n\n/**\n * Returns a string with backslashes added before characters that need to be escaped.\n */\nexport const addSlashes = (str:string):string => {\n\treturn str.replace(/[\\\\\"']/g, '\\\\$&');\n};\n\n/**\n *\n */\nexport const append = ( parent:Element|DocumentFragment, node: string|Node|null|undefined ):void =>{\n\tif( node ) parent.append(node);\n};\n\n/**\n * Iterates over arrays and hashes.\n *\n * ```\n * iterate(this.items, function(item, id) {\n * // invoked for each item\n * });\n * ```\n *\n */\nexport const iterate = (object:[]|{[key:string]:any}, callback:(value:any,key:any)=>any) => {\n\n\tif ( Array.isArray(object)) {\n\t\tobject.forEach(callback);\n\n\t}else{\n\n\t\tfor (var key in object) {\n\t\t\tif (object.hasOwnProperty(key)) {\n\t\t\t\tcallback(object[key], key);\n\t\t\t}\n\t\t}\n\t}\n};\n", "/**\n * Plugin: \"input_autogrow\" (Tom Select)\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 */\n\nimport type TomSelect from '../../tom-select.ts';\nimport { addEvent } from '../../utils.ts';\n\nexport default function(this:TomSelect) {\n\tvar self\t\t\t\t\t= this;\n\n\tself.on('initialize',()=>{\n\n\n\t\tvar test_input\t\t\t\t= document.createElement('span');\n\t\tvar control\t\t\t\t\t= self.control_input;\n\t\ttest_input.style.cssText\t= 'position:absolute; top:-99999px; left:-99999px; width:auto; padding:0; white-space:pre; ';\n\n\t\tself.wrapper.appendChild(test_input);\n\n\n\t\tvar transfer_styles\t\t\t= [ 'letterSpacing', 'fontSize', 'fontFamily', 'fontWeight', 'textTransform' ];\n\n\t\tfor( const style_name of transfer_styles ){\n\t\t\t// @ts-ignore TS7015 https://stackoverflow.com/a/50506154/697576\n\t\t\ttest_input.style[style_name] = control.style[style_name];\n\t\t}\n\n\n\t\t/**\n\t\t * Set the control width\n\t\t *\n\t\t */\n\t\tvar resize = ()=>{\n\t\t\ttest_input.textContent\t= control.value;\n\t\t\tcontrol.style.width\t\t= test_input.clientWidth+'px';\n\t\t};\n\n\t\tresize();\n\t\tself.on('update item_add item_remove',resize);\n\t\taddEvent(control,'input', resize );\n\t\taddEvent(control,'keyup', resize );\n\t\taddEvent(control,'blur', resize );\n\t\taddEvent(control,'update', resize );\n\t});\n\n};\n", "/**\n * Plugin: \"input_autogrow\" (Tom Select)\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 */\n\nimport type TomSelect from '../../tom-select.ts';\n\nexport default function(this:TomSelect) {\n\tvar self = this;\n\tvar orig_deleteSelection = self.deleteSelection;\n\n\tthis.hook('instead','deleteSelection',(evt:KeyboardEvent) => {\n\n\t\tif( self.activeItems.length ){\n\t\t\treturn orig_deleteSelection.call(self, evt);\n\t\t}\n\n\t\treturn false;\n\t});\n\n};\n", "/**\n * Plugin: \"no_active_items\" (Tom Select)\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 */\n\nimport type TomSelect from '../../tom-select.ts';\n\nexport default function(this:TomSelect) {\n\tthis.hook('instead','setActiveItem',() => {});\n\tthis.hook('instead','selectAll',() => {});\n};\n", "export const KEY_A\t\t\t\t= 65;\nexport const KEY_RETURN\t\t\t= 13;\nexport const KEY_ESC\t\t\t= 27;\nexport const KEY_LEFT\t\t\t= 37;\nexport const KEY_UP\t\t\t\t= 38;\nexport const KEY_RIGHT\t\t\t= 39;\nexport const KEY_DOWN\t\t\t= 40;\nexport const KEY_BACKSPACE\t\t= 8;\nexport const KEY_DELETE\t\t\t= 46;\nexport const KEY_TAB\t\t\t= 9;\n\nexport const IS_MAC \t\t= typeof navigator === 'undefined' ? false : /Mac/.test(navigator.userAgent);\nexport const KEY_SHORTCUT\t\t= IS_MAC ? 'metaKey' : 'ctrlKey'; // ctrl key or apple key for ma\n", "\nimport { iterate } from './utils.ts';\n\n/**\n * Return a dom element from either a dom query string, jQuery object, a dom element or html string\n * https://stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro/35385518#35385518\n *\n * param query should be {}\n */\nexport const getDom = ( query:any ):HTMLElement => {\n\n\tif( query.jquery ){\n\t\treturn query[0];\n\t}\n\n\tif( query instanceof HTMLElement ){\n\t\treturn query;\n\t}\n\n\tif( isHtmlString(query) ){\n\t\tvar tpl = document.createElement('template');\n\t\ttpl.innerHTML = query.trim(); // Never return a text node of whitespace as the result\n\t\treturn tpl.content.firstChild as HTMLElement;\n\t}\n\n\treturn document.querySelector(query);\n};\n\nexport const isHtmlString = (arg:any): boolean => {\n\tif( typeof arg === 'string' && arg.indexOf('<') > -1 ){\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport const escapeQuery = (query:string):string => {\n\treturn query.replace(/['\"\\\\]/g, '\\\\$&');\n}\n\n/**\n * Dispatch an event\n *\n */\nexport const triggerEvent = ( dom_el:HTMLElement, event_name:string ):void => {\n\tvar event = document.createEvent('HTMLEvents');\n\tevent.initEvent(event_name, true, false);\n\tdom_el.dispatchEvent(event)\n};\n\n/**\n * Apply CSS rules to a dom element\n *\n */\nexport const applyCSS = ( dom_el:HTMLElement, css:{ [key: string]: string|number }):void => {\n\tObject.assign(dom_el.style, css);\n}\n\n\n/**\n * Add css classes\n *\n */\nexport const addClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n\tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map( cls => {\n\t\t\tel.classList.add( cls );\n\t\t});\n\t});\n}\n\n/**\n * Remove css classes\n *\n */\n export const removeClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n \tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map(cls => {\n\t \t\tel.classList.remove( cls );\n\t\t});\n \t});\n }\n\n\n/**\n * Return arguments\n *\n */\nexport const classesArray = (args:string[]|string[][]):string[] => {\n\tvar classes:string[] = [];\n\titerate( args, (_classes) =>{\n\t\tif( typeof _classes === 'string' ){\n\t\t\t_classes = _classes.trim().split(/[\\t\\n\\f\\r\\s]/);\n\t\t}\n\t\tif( Array.isArray(_classes) ){\n\t\t\tclasses = classes.concat(_classes);\n\t\t}\n\t});\n\n\treturn classes.filter(Boolean);\n}\n\n\n/**\n * Create an array from arg if it's not already an array\n *\n */\nexport const castAsArray = (arg:any):Array => {\n\tif( !Array.isArray(arg) ){\n \t\targ = [arg];\n \t}\n\treturn arg;\n}\n\n\n/**\n * Get the closest node to the evt.target matching the selector\n * Stops at wrapper\n *\n */\nexport const parentMatch = ( target:null|HTMLElement, selector:string, wrapper?:HTMLElement ):HTMLElement|void => {\n\n\tif( wrapper && !wrapper.contains(target) ){\n\t\treturn;\n\t}\n\n\twhile( target && target.matches ){\n\n\t\tif( target.matches(selector) ){\n\t\t\treturn target;\n\t\t}\n\n\t\ttarget = target.parentNode as HTMLElement;\n\t}\n}\n\n\n/**\n * Get the first or last item from an array\n *\n * > 0 - right (last)\n * <= 0 - left (first)\n *\n */\nexport const getTail = ( list:Array|NodeList, direction:number=0 ):any => {\n\n\tif( direction > 0 ){\n\t\treturn list[list.length-1];\n\t}\n\n\treturn list[0];\n}\n\n/**\n * Return true if an object is empty\n *\n */\nexport const isEmptyObject = (obj:object):boolean => {\n\treturn (Object.keys(obj).length === 0);\n}\n\n\n/**\n * Get the index of an element amongst sibling nodes of the same type\n *\n */\nexport const nodeIndex = ( el:null|Element, amongst?:string ):number => {\n\tif (!el) return -1;\n\n\tamongst = amongst || el.nodeName;\n\n\tvar i = 0;\n\twhile( el = el.previousElementSibling ){\n\n\t\tif( el.matches(amongst) ){\n\t\t\ti++;\n\t\t}\n\t}\n\treturn i;\n}\n\n\n/**\n * Set attributes of an element\n *\n */\nexport const setAttr = (el:Element,attrs:{ [key: string]: null|string|number }) => {\n\titerate( attrs,(val,attr) => {\n\t\tif( val == null ){\n\t\t\tel.removeAttribute(attr as string);\n\t\t}else{\n\t\t\tel.setAttribute(attr as string, ''+val);\n\t\t}\n\t});\n}\n\n\n/**\n * Replace a node\n */\nexport const replaceNode = ( existing:Node, replacement:Node ) => {\n\tif( existing.parentNode ) existing.parentNode.replaceChild(replacement, existing);\n}\n", "/**\n * Plugin: \"optgroup_columns\" (Tom Select.js)\n * Copyright (c) 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 */\n\nimport type TomSelect from '../../tom-select.ts';\nimport * as constants from '../../constants.ts';\nimport { parentMatch, nodeIndex } from '../../vanilla.ts';\n\nexport default function(this:TomSelect) {\n\tvar self = this;\n\n\tvar orig_keydown = self.onKeyDown;\n\n\tself.hook('instead','onKeyDown',(evt:KeyboardEvent)=>{\n\t\tvar index, option, options, optgroup;\n\n\t\tif( !self.isOpen || !(evt.keyCode === constants.KEY_LEFT || evt.keyCode === constants.KEY_RIGHT)) {\n\t\t\treturn orig_keydown.call(self,evt);\n\t\t}\n\n\t\tself.ignoreHover\t= true;\n\t\toptgroup\t\t\t= parentMatch(self.activeOption,'[data-group]');\n\t\tindex\t\t\t\t= nodeIndex(self.activeOption,'[data-selectable]');\n\n\t\tif( !optgroup ){\n\t\t\treturn;\n\t\t}\n\n\t\tif( evt.keyCode === constants.KEY_LEFT ){\n\t\t\toptgroup = optgroup.previousSibling;\n\t\t} else {\n\t\t\toptgroup = optgroup.nextSibling;\n\t\t}\n\n\t\tif( !optgroup ){\n\t\t\treturn;\n\t\t}\n\n\t\toptions\t\t\t\t= (optgroup).querySelectorAll('[data-selectable]');\n\t\toption\t\t\t\t= options[ Math.min(options.length - 1, index) ] as HTMLElement;\n\n\t\tif( option ){\n\t\t\tself.setActiveOption(option);\n\t\t}\n\n\t});\n\n};\n", "\nimport type TomSelect from './tom-select.ts';\nimport { TomLoadCallback } from './types/index.ts';\n\n\n/**\n * Converts a scalar to its best string representation\n * for hash keys and HTML attribute values.\n *\n * Transformations:\n * 'str' -> 'str'\n * null -> ''\n * undefined -> ''\n * true -> '1'\n * false -> '0'\n * 0 -> '0'\n * 1 -> '1'\n *\n */\nexport const hash_key = (value:undefined|null|boolean|string|number):string|null => {\n\tif (typeof value === 'undefined' || value === null) return null;\n\treturn get_hash(value);\n};\n\nexport const get_hash = (value:boolean|string|number):string => {\n\tif (typeof value === 'boolean') return value ? '1' : '0';\n\treturn value + '';\n};\n\n/**\n * Escapes a string for use within HTML.\n *\n */\nexport const escape_html = (str:string):string => {\n\treturn (str + '')\n\t\t.replace(/&/g, '&')\n\t\t.replace(//g, '>')\n\t\t.replace(/\"/g, '"');\n};\n\n\n/**\n * use setTimeout if timeout > 0 \n */\nexport const timeout = (fn:()=>void,timeout:number): number | null => {\n\tif( timeout > 0 ){\n\t\treturn window.setTimeout(fn,timeout);\n\t}\n\n\tfn.call(null);\n\treturn null;\n}\n\n/**\n * Debounce the user provided load function\n *\n */\nexport const loadDebounce = (fn:(value:string,callback:TomLoadCallback) => void,delay:number) => {\n\tvar timeout: null|ReturnType;\n\treturn function(this:TomSelect, value:string,callback:TomLoadCallback) {\n\t\tvar self = this;\n\n\t\tif( timeout ){\n\t\t\tself.loading = Math.max(self.loading - 1, 0);\n\t\t\tclearTimeout(timeout);\n\t\t}\n\t\ttimeout = setTimeout(function() {\n\t\t\ttimeout = null;\n\t\t\tself.loadedSearches[value] = true;\n\t\t\tfn.call(self, value, callback);\n\n\t\t}, delay);\n\t};\n};\n\n\n/**\n * Debounce all fired events types listed in `types`\n * while executing the provided `fn`.\n *\n */\nexport const debounce_events = ( self:TomSelect, types:string[], fn:() => void ) => {\n\tvar type:string;\n\tvar trigger = self.trigger;\n\tvar event_args:{ [key: string]: any } = {};\n\n\t// override trigger method\n\tself.trigger = function(){\n\t\tvar type = arguments[0];\n\t\tif (types.indexOf(type) !== -1) {\n\t\t\tevent_args[type] = arguments;\n\t\t} else {\n\t\t\treturn trigger.apply(self, arguments);\n\t\t}\n\t};\n\n\t// invoke provided function\n\tfn.apply(self, []);\n\tself.trigger = trigger;\n\n\t// trigger queued events\n\tfor( type of types ){\n\t\tif( type in event_args ){\n\t\t\ttrigger.apply(self, event_args[type]);\n\t\t}\n\t}\n};\n\n\n/**\n * Determines the current selection within a text input control.\n * Returns an object containing:\n * - start\n * - length\n *\n * Note: \"selectionStart, selectionEnd ... apply only to inputs of types text, search, URL, tel and password\"\n * \t- https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n */\nexport const getSelection = (input:HTMLInputElement):{ start: number; length: number } => {\n\treturn {\n\t\tstart\t: input.selectionStart || 0,\n\t\tlength\t: (input.selectionEnd||0) - (input.selectionStart||0),\n\t};\n};\n\n\n/**\n * Prevent default\n *\n */\nexport const preventDefault = (evt?:Event, stop:boolean=false):void => {\n\tif( evt ){\n\t\tevt.preventDefault();\n\t\tif( stop ){\n\t\t\tevt.stopPropagation();\n\t\t}\n\t}\n}\n\n\n/**\n * Add event helper\n *\n */\nexport const addEvent = (target:EventTarget, type:string, callback:EventListenerOrEventListenerObject, options?:object):void => {\n\ttarget.addEventListener(type,callback,options);\n};\n\n\n/**\n * Return true if the requested key is down\n * Will return false if more than one control character is pressed ( when [ctrl+shift+a] != [ctrl+a] )\n * The current evt may not always set ( eg calling advanceSelection() )\n *\n */\nexport const isKeyDown = ( key_name:keyof (KeyboardEvent|MouseEvent), evt?:KeyboardEvent|MouseEvent ) => {\n\n\tif( !evt ){\n\t\treturn false;\n\t}\n\n\tif( !evt[key_name] ){\n\t\treturn false;\n\t}\n\n\tvar count = (evt.altKey?1:0) + (evt.ctrlKey?1:0) + (evt.shiftKey?1:0) + (evt.metaKey?1:0);\n\n\tif( count === 1 ){\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n\n/**\n * Get the id of an element\n * If the id attribute is not set, set the attribute with the given id\n *\n */\nexport const getId = (el:Element,id:string) => {\n\tconst existing_id = el.getAttribute('id');\n\tif( existing_id ){\n\t\treturn existing_id;\n\t}\n\n\tel.setAttribute('id',id);\n\treturn id;\n};\n\n\n/**\n * Returns a string with backslashes added before characters that need to be escaped.\n */\nexport const addSlashes = (str:string):string => {\n\treturn str.replace(/[\\\\\"']/g, '\\\\$&');\n};\n\n/**\n *\n */\nexport const append = ( parent:Element|DocumentFragment, node: string|Node|null|undefined ):void =>{\n\tif( node ) parent.append(node);\n};\n\n/**\n * Iterates over arrays and hashes.\n *\n * ```\n * iterate(this.items, function(item, id) {\n * // invoked for each item\n * });\n * ```\n *\n */\nexport const iterate = (object:[]|{[key:string]:any}, callback:(value:any,key:any)=>any) => {\n\n\tif ( Array.isArray(object)) {\n\t\tobject.forEach(callback);\n\n\t}else{\n\n\t\tfor (var key in object) {\n\t\t\tif (object.hasOwnProperty(key)) {\n\t\t\t\tcallback(object[key], key);\n\t\t\t}\n\t\t}\n\t}\n};\n", "\nimport { iterate } from './utils.ts';\n\n/**\n * Return a dom element from either a dom query string, jQuery object, a dom element or html string\n * https://stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro/35385518#35385518\n *\n * param query should be {}\n */\nexport const getDom = ( query:any ):HTMLElement => {\n\n\tif( query.jquery ){\n\t\treturn query[0];\n\t}\n\n\tif( query instanceof HTMLElement ){\n\t\treturn query;\n\t}\n\n\tif( isHtmlString(query) ){\n\t\tvar tpl = document.createElement('template');\n\t\ttpl.innerHTML = query.trim(); // Never return a text node of whitespace as the result\n\t\treturn tpl.content.firstChild as HTMLElement;\n\t}\n\n\treturn document.querySelector(query);\n};\n\nexport const isHtmlString = (arg:any): boolean => {\n\tif( typeof arg === 'string' && arg.indexOf('<') > -1 ){\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport const escapeQuery = (query:string):string => {\n\treturn query.replace(/['\"\\\\]/g, '\\\\$&');\n}\n\n/**\n * Dispatch an event\n *\n */\nexport const triggerEvent = ( dom_el:HTMLElement, event_name:string ):void => {\n\tvar event = document.createEvent('HTMLEvents');\n\tevent.initEvent(event_name, true, false);\n\tdom_el.dispatchEvent(event)\n};\n\n/**\n * Apply CSS rules to a dom element\n *\n */\nexport const applyCSS = ( dom_el:HTMLElement, css:{ [key: string]: string|number }):void => {\n\tObject.assign(dom_el.style, css);\n}\n\n\n/**\n * Add css classes\n *\n */\nexport const addClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n\tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map( cls => {\n\t\t\tel.classList.add( cls );\n\t\t});\n\t});\n}\n\n/**\n * Remove css classes\n *\n */\n export const removeClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n \tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map(cls => {\n\t \t\tel.classList.remove( cls );\n\t\t});\n \t});\n }\n\n\n/**\n * Return arguments\n *\n */\nexport const classesArray = (args:string[]|string[][]):string[] => {\n\tvar classes:string[] = [];\n\titerate( args, (_classes) =>{\n\t\tif( typeof _classes === 'string' ){\n\t\t\t_classes = _classes.trim().split(/[\\t\\n\\f\\r\\s]/);\n\t\t}\n\t\tif( Array.isArray(_classes) ){\n\t\t\tclasses = classes.concat(_classes);\n\t\t}\n\t});\n\n\treturn classes.filter(Boolean);\n}\n\n\n/**\n * Create an array from arg if it's not already an array\n *\n */\nexport const castAsArray = (arg:any):Array => {\n\tif( !Array.isArray(arg) ){\n \t\targ = [arg];\n \t}\n\treturn arg;\n}\n\n\n/**\n * Get the closest node to the evt.target matching the selector\n * Stops at wrapper\n *\n */\nexport const parentMatch = ( target:null|HTMLElement, selector:string, wrapper?:HTMLElement ):HTMLElement|void => {\n\n\tif( wrapper && !wrapper.contains(target) ){\n\t\treturn;\n\t}\n\n\twhile( target && target.matches ){\n\n\t\tif( target.matches(selector) ){\n\t\t\treturn target;\n\t\t}\n\n\t\ttarget = target.parentNode as HTMLElement;\n\t}\n}\n\n\n/**\n * Get the first or last item from an array\n *\n * > 0 - right (last)\n * <= 0 - left (first)\n *\n */\nexport const getTail = ( list:Array|NodeList, direction:number=0 ):any => {\n\n\tif( direction > 0 ){\n\t\treturn list[list.length-1];\n\t}\n\n\treturn list[0];\n}\n\n/**\n * Return true if an object is empty\n *\n */\nexport const isEmptyObject = (obj:object):boolean => {\n\treturn (Object.keys(obj).length === 0);\n}\n\n\n/**\n * Get the index of an element amongst sibling nodes of the same type\n *\n */\nexport const nodeIndex = ( el:null|Element, amongst?:string ):number => {\n\tif (!el) return -1;\n\n\tamongst = amongst || el.nodeName;\n\n\tvar i = 0;\n\twhile( el = el.previousElementSibling ){\n\n\t\tif( el.matches(amongst) ){\n\t\t\ti++;\n\t\t}\n\t}\n\treturn i;\n}\n\n\n/**\n * Set attributes of an element\n *\n */\nexport const setAttr = (el:Element,attrs:{ [key: string]: null|string|number }) => {\n\titerate( attrs,(val,attr) => {\n\t\tif( val == null ){\n\t\t\tel.removeAttribute(attr as string);\n\t\t}else{\n\t\t\tel.setAttribute(attr as string, ''+val);\n\t\t}\n\t});\n}\n\n\n/**\n * Replace a node\n */\nexport const replaceNode = ( existing:Node, replacement:Node ) => {\n\tif( existing.parentNode ) existing.parentNode.replaceChild(replacement, existing);\n}\n", "/**\n * Plugin: \"remove_button\" (Tom Select)\n * Copyright (c) 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 */\n\nimport type TomSelect from '../../tom-select.ts';\nimport { getDom } from '../../vanilla.ts';\nimport { escape_html, preventDefault, addEvent } from '../../utils.ts';\nimport { TomOption, TomItem } from '../../types/index.ts';\nimport { RBOptions } from './types.ts';\n\nexport default function(this:TomSelect, userOptions:RBOptions) {\n\n\tconst options = Object.assign({\n\t\t\tlabel : '×',\n\t\t\ttitle : 'Remove',\n\t\t\tclassName : 'remove',\n\t\t\tappend : true\n\t\t}, userOptions);\n\n\n\t//options.className = 'remove-single';\n\tvar self\t\t\t= this;\n\n\t// override the render method to add remove button to each item\n\tif( !options.append ){\n\t\treturn;\n\t}\n\n\tvar html = '' + options.label + '';\n\n\tself.hook('after','setupTemplates',() => {\n\n\t\tvar orig_render_item = self.settings.render.item;\n\n\t\tself.settings.render.item = (data:TomOption, escape:typeof escape_html) => {\n\n\t\t\tvar item = getDom(orig_render_item.call(self, data, escape)) as TomItem;\n\n\t\t\tvar close_button = getDom(html);\n\t\t\titem.appendChild(close_button);\n\n\t\t\taddEvent(close_button,'mousedown',(evt) => {\n\t\t\t\tpreventDefault(evt,true);\n\t\t\t});\n\n\t\t\taddEvent(close_button,'click',(evt) => {\n\n\t\t\t\tif( self.isLocked ) return;\n\n\t\t\t\t// propagating will trigger the dropdown to show for single mode\n\t\t\t\tpreventDefault(evt,true);\n\n\t\t\t\tif( self.isLocked ) return;\n\t\t\t\tif( !self.shouldDelete([item],evt as MouseEvent) ) return;\n\n\t\t\t\tself.removeItem(item);\n\t\t\t\tself.refreshOptions(false);\n\t\t\t\tself.inputState();\n\t\t\t});\n\n\t\t\treturn item;\n\t\t};\n\n\t});\n\n\n};\n", "/**\n * Plugin: \"restore_on_backspace\" (Tom Select)\n * Copyright (c) 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 */\nimport type TomSelect from '../../tom-select.ts';\nimport { TomOption } from '../../types/index.ts';\n\ntype TPluginOptions = {\n\ttext?:(option:TomOption)=>string,\n};\n\nexport default function(this:TomSelect, userOptions:TPluginOptions) {\n\tconst self = this;\n\n\tconst options = Object.assign({\n\t\ttext: (option:TomOption) => {\n\t\t\treturn option[self.settings.labelField];\n\t\t}\n\t},userOptions);\n\n\tself.on('item_remove',function(value:string){\n\t\tif( !self.isFocused ){\n\t\t\treturn;\n\t\t}\n\n\t\tif( self.control_input.value.trim() === '' ){\n\t\t\tvar option = self.options[value];\n\t\t\tif( option ){\n\t\t\t\tself.setTextboxValue(options.text.call(self, option));\n\t\t\t}\n\t\t}\n\t});\n\n};\n", "\nimport type TomSelect from './tom-select.ts';\nimport { TomLoadCallback } from './types/index.ts';\n\n\n/**\n * Converts a scalar to its best string representation\n * for hash keys and HTML attribute values.\n *\n * Transformations:\n * 'str' -> 'str'\n * null -> ''\n * undefined -> ''\n * true -> '1'\n * false -> '0'\n * 0 -> '0'\n * 1 -> '1'\n *\n */\nexport const hash_key = (value:undefined|null|boolean|string|number):string|null => {\n\tif (typeof value === 'undefined' || value === null) return null;\n\treturn get_hash(value);\n};\n\nexport const get_hash = (value:boolean|string|number):string => {\n\tif (typeof value === 'boolean') return value ? '1' : '0';\n\treturn value + '';\n};\n\n/**\n * Escapes a string for use within HTML.\n *\n */\nexport const escape_html = (str:string):string => {\n\treturn (str + '')\n\t\t.replace(/&/g, '&')\n\t\t.replace(//g, '>')\n\t\t.replace(/\"/g, '"');\n};\n\n\n/**\n * use setTimeout if timeout > 0 \n */\nexport const timeout = (fn:()=>void,timeout:number): number | null => {\n\tif( timeout > 0 ){\n\t\treturn window.setTimeout(fn,timeout);\n\t}\n\n\tfn.call(null);\n\treturn null;\n}\n\n/**\n * Debounce the user provided load function\n *\n */\nexport const loadDebounce = (fn:(value:string,callback:TomLoadCallback) => void,delay:number) => {\n\tvar timeout: null|ReturnType;\n\treturn function(this:TomSelect, value:string,callback:TomLoadCallback) {\n\t\tvar self = this;\n\n\t\tif( timeout ){\n\t\t\tself.loading = Math.max(self.loading - 1, 0);\n\t\t\tclearTimeout(timeout);\n\t\t}\n\t\ttimeout = setTimeout(function() {\n\t\t\ttimeout = null;\n\t\t\tself.loadedSearches[value] = true;\n\t\t\tfn.call(self, value, callback);\n\n\t\t}, delay);\n\t};\n};\n\n\n/**\n * Debounce all fired events types listed in `types`\n * while executing the provided `fn`.\n *\n */\nexport const debounce_events = ( self:TomSelect, types:string[], fn:() => void ) => {\n\tvar type:string;\n\tvar trigger = self.trigger;\n\tvar event_args:{ [key: string]: any } = {};\n\n\t// override trigger method\n\tself.trigger = function(){\n\t\tvar type = arguments[0];\n\t\tif (types.indexOf(type) !== -1) {\n\t\t\tevent_args[type] = arguments;\n\t\t} else {\n\t\t\treturn trigger.apply(self, arguments);\n\t\t}\n\t};\n\n\t// invoke provided function\n\tfn.apply(self, []);\n\tself.trigger = trigger;\n\n\t// trigger queued events\n\tfor( type of types ){\n\t\tif( type in event_args ){\n\t\t\ttrigger.apply(self, event_args[type]);\n\t\t}\n\t}\n};\n\n\n/**\n * Determines the current selection within a text input control.\n * Returns an object containing:\n * - start\n * - length\n *\n * Note: \"selectionStart, selectionEnd ... apply only to inputs of types text, search, URL, tel and password\"\n * \t- https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n */\nexport const getSelection = (input:HTMLInputElement):{ start: number; length: number } => {\n\treturn {\n\t\tstart\t: input.selectionStart || 0,\n\t\tlength\t: (input.selectionEnd||0) - (input.selectionStart||0),\n\t};\n};\n\n\n/**\n * Prevent default\n *\n */\nexport const preventDefault = (evt?:Event, stop:boolean=false):void => {\n\tif( evt ){\n\t\tevt.preventDefault();\n\t\tif( stop ){\n\t\t\tevt.stopPropagation();\n\t\t}\n\t}\n}\n\n\n/**\n * Add event helper\n *\n */\nexport const addEvent = (target:EventTarget, type:string, callback:EventListenerOrEventListenerObject, options?:object):void => {\n\ttarget.addEventListener(type,callback,options);\n};\n\n\n/**\n * Return true if the requested key is down\n * Will return false if more than one control character is pressed ( when [ctrl+shift+a] != [ctrl+a] )\n * The current evt may not always set ( eg calling advanceSelection() )\n *\n */\nexport const isKeyDown = ( key_name:keyof (KeyboardEvent|MouseEvent), evt?:KeyboardEvent|MouseEvent ) => {\n\n\tif( !evt ){\n\t\treturn false;\n\t}\n\n\tif( !evt[key_name] ){\n\t\treturn false;\n\t}\n\n\tvar count = (evt.altKey?1:0) + (evt.ctrlKey?1:0) + (evt.shiftKey?1:0) + (evt.metaKey?1:0);\n\n\tif( count === 1 ){\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n\n/**\n * Get the id of an element\n * If the id attribute is not set, set the attribute with the given id\n *\n */\nexport const getId = (el:Element,id:string) => {\n\tconst existing_id = el.getAttribute('id');\n\tif( existing_id ){\n\t\treturn existing_id;\n\t}\n\n\tel.setAttribute('id',id);\n\treturn id;\n};\n\n\n/**\n * Returns a string with backslashes added before characters that need to be escaped.\n */\nexport const addSlashes = (str:string):string => {\n\treturn str.replace(/[\\\\\"']/g, '\\\\$&');\n};\n\n/**\n *\n */\nexport const append = ( parent:Element|DocumentFragment, node: string|Node|null|undefined ):void =>{\n\tif( node ) parent.append(node);\n};\n\n/**\n * Iterates over arrays and hashes.\n *\n * ```\n * iterate(this.items, function(item, id) {\n * // invoked for each item\n * });\n * ```\n *\n */\nexport const iterate = (object:[]|{[key:string]:any}, callback:(value:any,key:any)=>any) => {\n\n\tif ( Array.isArray(object)) {\n\t\tobject.forEach(callback);\n\n\t}else{\n\n\t\tfor (var key in object) {\n\t\t\tif (object.hasOwnProperty(key)) {\n\t\t\t\tcallback(object[key], key);\n\t\t\t}\n\t\t}\n\t}\n};\n", "\nimport { iterate } from './utils.ts';\n\n/**\n * Return a dom element from either a dom query string, jQuery object, a dom element or html string\n * https://stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro/35385518#35385518\n *\n * param query should be {}\n */\nexport const getDom = ( query:any ):HTMLElement => {\n\n\tif( query.jquery ){\n\t\treturn query[0];\n\t}\n\n\tif( query instanceof HTMLElement ){\n\t\treturn query;\n\t}\n\n\tif( isHtmlString(query) ){\n\t\tvar tpl = document.createElement('template');\n\t\ttpl.innerHTML = query.trim(); // Never return a text node of whitespace as the result\n\t\treturn tpl.content.firstChild as HTMLElement;\n\t}\n\n\treturn document.querySelector(query);\n};\n\nexport const isHtmlString = (arg:any): boolean => {\n\tif( typeof arg === 'string' && arg.indexOf('<') > -1 ){\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport const escapeQuery = (query:string):string => {\n\treturn query.replace(/['\"\\\\]/g, '\\\\$&');\n}\n\n/**\n * Dispatch an event\n *\n */\nexport const triggerEvent = ( dom_el:HTMLElement, event_name:string ):void => {\n\tvar event = document.createEvent('HTMLEvents');\n\tevent.initEvent(event_name, true, false);\n\tdom_el.dispatchEvent(event)\n};\n\n/**\n * Apply CSS rules to a dom element\n *\n */\nexport const applyCSS = ( dom_el:HTMLElement, css:{ [key: string]: string|number }):void => {\n\tObject.assign(dom_el.style, css);\n}\n\n\n/**\n * Add css classes\n *\n */\nexport const addClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n\tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map( cls => {\n\t\t\tel.classList.add( cls );\n\t\t});\n\t});\n}\n\n/**\n * Remove css classes\n *\n */\n export const removeClasses = ( elmts:HTMLElement|HTMLElement[], ...classes:string[]|string[][] ) => {\n\n \tvar norm_classes \t= classesArray(classes);\n\telmts\t\t\t\t= castAsArray(elmts);\n\n\telmts.map( el => {\n\t\tnorm_classes.map(cls => {\n\t \t\tel.classList.remove( cls );\n\t\t});\n \t});\n }\n\n\n/**\n * Return arguments\n *\n */\nexport const classesArray = (args:string[]|string[][]):string[] => {\n\tvar classes:string[] = [];\n\titerate( args, (_classes) =>{\n\t\tif( typeof _classes === 'string' ){\n\t\t\t_classes = _classes.trim().split(/[\\t\\n\\f\\r\\s]/);\n\t\t}\n\t\tif( Array.isArray(_classes) ){\n\t\t\tclasses = classes.concat(_classes);\n\t\t}\n\t});\n\n\treturn classes.filter(Boolean);\n}\n\n\n/**\n * Create an array from arg if it's not already an array\n *\n */\nexport const castAsArray = (arg:any):Array => {\n\tif( !Array.isArray(arg) ){\n \t\targ = [arg];\n \t}\n\treturn arg;\n}\n\n\n/**\n * Get the closest node to the evt.target matching the selector\n * Stops at wrapper\n *\n */\nexport const parentMatch = ( target:null|HTMLElement, selector:string, wrapper?:HTMLElement ):HTMLElement|void => {\n\n\tif( wrapper && !wrapper.contains(target) ){\n\t\treturn;\n\t}\n\n\twhile( target && target.matches ){\n\n\t\tif( target.matches(selector) ){\n\t\t\treturn target;\n\t\t}\n\n\t\ttarget = target.parentNode as HTMLElement;\n\t}\n}\n\n\n/**\n * Get the first or last item from an array\n *\n * > 0 - right (last)\n * <= 0 - left (first)\n *\n */\nexport const getTail = ( list:Array|NodeList, direction:number=0 ):any => {\n\n\tif( direction > 0 ){\n\t\treturn list[list.length-1];\n\t}\n\n\treturn list[0];\n}\n\n/**\n * Return true if an object is empty\n *\n */\nexport const isEmptyObject = (obj:object):boolean => {\n\treturn (Object.keys(obj).length === 0);\n}\n\n\n/**\n * Get the index of an element amongst sibling nodes of the same type\n *\n */\nexport const nodeIndex = ( el:null|Element, amongst?:string ):number => {\n\tif (!el) return -1;\n\n\tamongst = amongst || el.nodeName;\n\n\tvar i = 0;\n\twhile( el = el.previousElementSibling ){\n\n\t\tif( el.matches(amongst) ){\n\t\t\ti++;\n\t\t}\n\t}\n\treturn i;\n}\n\n\n/**\n * Set attributes of an element\n *\n */\nexport const setAttr = (el:Element,attrs:{ [key: string]: null|string|number }) => {\n\titerate( attrs,(val,attr) => {\n\t\tif( val == null ){\n\t\t\tel.removeAttribute(attr as string);\n\t\t}else{\n\t\t\tel.setAttribute(attr as string, ''+val);\n\t\t}\n\t});\n}\n\n\n/**\n * Replace a node\n */\nexport const replaceNode = ( existing:Node, replacement:Node ) => {\n\tif( existing.parentNode ) existing.parentNode.replaceChild(replacement, existing);\n}\n", "/**\n * Plugin: \"restore_on_backspace\" (Tom Select)\n * Copyright (c) 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 */\n\nimport type TomSelect from '../../tom-select.ts';\nimport { TomOption } from '../../types/index.ts';\nimport { addClasses } from '../../vanilla.ts';\n\nexport default function(this:TomSelect) {\n\tconst self\t\t\t\t\t\t\t= this;\n\tconst orig_canLoad\t\t\t\t\t= self.canLoad;\n\tconst orig_clearActiveOption\t\t= self.clearActiveOption;\n\tconst orig_loadCallback\t\t\t\t= self.loadCallback;\n\n\tvar pagination:{[key:string]:any}\t= {};\n\tvar dropdown_content:HTMLElement;\n\tvar loading_more\t\t\t\t\t= false;\n\tvar load_more_opt:HTMLElement;\n\tvar default_values: string[]\t\t= [];\n\n\tif( !self.settings.shouldLoadMore ){\n\n\t\t// return true if additional results should be loaded\n\t\tself.settings.shouldLoadMore = ():boolean=>{\n\n\t\t\tconst scroll_percent = dropdown_content.clientHeight / (dropdown_content.scrollHeight - dropdown_content.scrollTop);\n\t\t\tif( scroll_percent > 0.9 ){\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif( self.activeOption ){\n\t\t\t\tvar selectable\t= self.selectable();\n\t\t\t\tvar index\t\t= Array.from(selectable).indexOf(self.activeOption);\n\t\t\t\tif( index >= (selectable.length-2) ){\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\t}\n\n\n\tif( !self.settings.firstUrl ){\n\t\tthrow 'virtual_scroll plugin requires a firstUrl() method';\n\t}\n\n\n\t// in order for virtual scrolling to work,\n\t// options need to be ordered the same way they're returned from the remote data source\n\tself.settings.sortField\t\t\t= [{field:'$order'},{field:'$score'}];\n\n\n\t// can we load more results for given query?\n\tconst canLoadMore = (query:string):boolean => {\n\n\t\tif( typeof self.settings.maxOptions === 'number' && dropdown_content.children.length >= self.settings.maxOptions ){\n\t\t\treturn false;\n\t\t}\n\n\t\tif( (query in pagination) && pagination[query] ){\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\tconst clearFilter = (option:TomOption, value:string):boolean => {\n\t\tif( self.items.indexOf(value) >= 0 || default_values.indexOf(value) >= 0 ){\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t};\n\n\n\t// set the next url that will be\n\tself.setNextUrl = (value:string,next_url:any):void => {\n\t\tpagination[value] = next_url;\n\t};\n\n\t// getUrl() to be used in settings.load()\n\tself.getUrl = (query:string):any =>{\n\n\t\tif( query in pagination ){\n\t\t\tconst next_url = pagination[query];\n\t\t\tpagination[query] = false;\n\t\t\treturn next_url;\n\t\t}\n\n\t\t// if the user goes back to a previous query\n\t\t// we need to load the first page again\n\t\tself.clearPagination();\n\n\t\treturn self.settings.firstUrl.call(self,query);\n\t};\n\n\t// clear pagination\n\tself.clearPagination = ():void =>{\n\t\tpagination = {};\n\t};\n\n\t// don't clear the active option (and cause unwanted dropdown scroll)\n\t// while loading more results\n\tself.hook('instead','clearActiveOption',()=>{\n\n\t\tif( loading_more ){\n\t\t\treturn;\n\t\t}\n\n\t\treturn orig_clearActiveOption.call(self);\n\t});\n\n\t// override the canLoad method\n\tself.hook('instead','canLoad',(query:string)=>{\n\n\t\t// first time the query has been seen\n\t\tif( !(query in pagination) ){\n\t\t\treturn orig_canLoad.call(self,query);\n\t\t}\n\n\t\treturn canLoadMore(query);\n\t});\n\n\n\t// wrap the load\n\tself.hook('instead','loadCallback',( options:TomOption[], optgroups:TomOption[])=>{\n\n\t\tif( !loading_more ){\n\t\t\tself.clearOptions(clearFilter);\n\t\t}else if( load_more_opt ){\n\t\t\tconst first_option = options[0];\n\t\t\tif( first_option !== undefined ){\n\t\t\t\tload_more_opt.dataset.value\t\t= first_option[self.settings.valueField];\n\t\t\t}\n\t\t}\n\n\t\torig_loadCallback.call( self, options, optgroups);\n\n\t\tloading_more = false;\n\t});\n\n\n\t// add templates to dropdown\n\t//\tloading_more if we have another url in the queue\n\t//\tno_more_results if we don't have another url in the queue\n\tself.hook('after','refreshOptions',()=>{\n\n\t\tconst query\t\t= self.lastValue;\n\t\tvar option;\n\n\t\tif( canLoadMore(query) ){\n\n\t\t\toption = self.render('loading_more',{query:query});\n\t\t\tif( option ){\n\t\t\t\toption.setAttribute('data-selectable',''); // so that navigating dropdown with [down] keypresses can navigate to this node\n\t\t\t\tload_more_opt = option;\n\t\t\t}\n\n\t\t}else if( (query in pagination) && !dropdown_content.querySelector('.no-results') ){\n\t\t\toption = self.render('no_more_results',{query:query});\n\t\t}\n\n\t\tif( option ){\n\t\t\taddClasses(option,self.settings.optionClass);\n\t\t\tdropdown_content.append( option );\n\t\t}\n\n\t});\n\n\n\t// add scroll listener and default templates\n\tself.on('initialize',()=>{\n\t\tdefault_values = Object.keys(self.options);\n\t\tdropdown_content = self.dropdown_content;\n\n\t\t// default templates\n\t\tself.settings.render = Object.assign({}, {\n\t\t\tloading_more:() => {\n\t\t\t\treturn `
Loading more results ...
`;\n\t\t\t},\n\t\t\tno_more_results:() =>{\n\t\t\t\treturn `
No more results
`;\n\t\t\t}\n\t\t},self.settings.render);\n\n\n\t\t// watch dropdown content scroll position\n\t\tdropdown_content.addEventListener('scroll',()=>{\n\n\t\t\tif( !self.settings.shouldLoadMore.call(self) ){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// !important: this will get checked again in load() but we still need to check here otherwise loading_more will be set to true\n\t\t\tif( !canLoadMore(self.lastValue) ){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// don't call load() too much\n\t\t\tif( loading_more ) return;\n\n\n\t\t\tloading_more = true;\n\t\t\tself.load.call(self,self.lastValue);\n\t\t});\n\t});\n\n};\n", null, "\nimport TomSelect from \"tom-select\"\n\nconst resolveElement = (selectorOrElement) => {\n if (typeof selectorOrElement === 'string') {\n return document.querySelector(selectorOrElement);\n }\n if (selectorOrElement instanceof Element) {\n return selectorOrElement;\n }\n return null;\n}\n\n\nexport const setupTomSelectRemote = (selector, {\n url,\n placeholder = '\u691C\u7D22\u3057\u3066\u304F\u3060\u3055\u3044',\n delay = 50,\n data = (query) => ({ term: query }),\n results = (data) => data.map(item => ({ value: item.id, text: item.text })),\n ...rest\n}) => {\n const inputEl = resolveElement(selector)\n if (!inputEl) return;\n\n new TomSelect(inputEl, {\n plugins: inputEl.multiple ? ['remove_button'] : [],\n placeholder: placeholder,\n loadThrottle: delay,\n load: (query, callback) => {\n if (query.length < 0) return callback();\n\n fetch(`${url}?${new URLSearchParams(data(query))}`)\n .then(response => response.json())\n .then(json => callback(results(json)))\n .catch(() => callback());\n },\n render: {\n no_results: () => '
\u8A72\u5F53\u3059\u308B\u5019\u88DC\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
',\n option: (item, escape) => `
${escape(item.text)}
`,\n item: (item, escape) => `
${escape(item.text)}
`,\n },\n ...rest\n });\n};\n\nexport const setupTomSelect = (selector, {\n placeholder = '\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044',\n ...rest\n} = {}) => {\n const inputEl = resolveElement(selector)\n if (!inputEl) return;\n\n // Tom Select \u521D\u671F\u5316\n const tom = new TomSelect(inputEl, {\n plugins: inputEl.multiple ? ['remove_button'] : [],\n placeholder: placeholder,\n render: {\n no_results: () => '
\u8A72\u5F53\u3059\u308B\u5019\u88DC\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
',\n option: (item, escape) => `
${escape(item.text)}
`,\n item: (item, escape) => `
${escape(item.text)}
`,\n },\n ...rest\n });\n};\n\n", "import { setupTomSelectRemote, setupTomSelect } from '../common/select_utils';\n\n//\u30E2\u30FC\u30C0\u30EB\u30A6\u30A3\u30F3\u30C9\u30A6\u7528\nconst buttonOpen = document.querySelectorAll(\".modalOpen\");\nconst modalMap = document.getElementById(\"easymodalMap\");\nconst body = document.querySelector(\"body\");\nconst buttonClose = document.getElementById(\"modalMapClose\");\nconst buttonClosePc = document.getElementById(\"modalMapClosePc\");\nconst buttonOpenHelp = document.getElementById(\"modalMapHelpOpen\");\nconst modalMapHelp = document.getElementById(\"easymodalMapHelp\");\nconst buttonCloseHelp = document.getElementById(\"modalMapHelpClose\");\nconst buttonClosePcHelp = document.getElementById(\"modalMapHelpClosePc\");\n\n//Not loggedin\nconst btnOpenCompany = document.getElementById(\"modalMapCompanySingUp\") || document.getElementById(\"modalMapCompanyLogIn\");\nconst btnOpenHome = document.getElementById(\"modalMapHomeSingUp\") || document.getElementById(\"modalMapHomeLogIn\");\nconst modalMapRecommend = document.getElementById(\"modalMapRecommend\");\nconst btnCloseNotLoggedIn = document.getElementById(\"modalMapRecommendClose\");\n\nbuttonOpen.forEach((button) => button.addEventListener(\"click\", () => {\n modalMap.classList.add(\"modalMapOpen\");\n body.classList.add(\"bodyOverfllowHideen\");\n}));\n\nbuttonClose.addEventListener(\"click\", () => {\n modalMap.classList.remove(\"modalMapOpen\");\n body.classList.remove(\"bodyOverfllowHideen\");\n});\n\nbuttonClosePc.addEventListener(\"click\", () => {\n modalMap.classList.remove(\"modalMapOpen\");\n body.classList.remove(\"bodyOverfllowHideen\");\n});\n\naddEventListener(\"click\", (e) => {\n if (e.target == modalMap) {\n modalMap.classList.remove(\"modalMapOpen\");\n body.classList.remove(\"bodyOverfllowHideen\");\n }\n\n if (e.target == modalMapRecommend) {\n modalMapRecommend.classList.remove(\"modalMapRecommendOpen\");\n body.classList.remove(\"bodyOverfllowHideen\");\n }\n});\n\nbuttonOpenHelp.addEventListener(\"click\", () => {\n modalMapHelp.classList.add(\"modalMapHelpOpen\");\n body.classList.add(\"bodyOverfllowHideen\");\n});\n\nbtnOpenCompany?.addEventListener(\"click\", () => {\n modalMapRecommend.classList.add(\"modalMapRecommendOpen\");\n body.classList.add(\"bodyOverfllowHideen\");\n});\n\nbtnOpenHome?.addEventListener(\"click\", () => {\n modalMapRecommend.classList.add(\"modalMapRecommendOpen\");\n body.classList.add(\"bodyOverfllowHideen\");\n});\n\nbtnCloseNotLoggedIn.addEventListener(\"click\", () => {\n modalMapRecommend.classList.remove(\"modalMapRecommendOpen\");\n body.classList.remove(\"bodyOverfllowHideen\");\n})\n\nbuttonCloseHelp.addEventListener(\"click\", () => {\n modalMapHelp.classList.remove(\"modalMapHelpOpen\");\n body.classList.remove(\"bodyOverfllowHideen\");\n});\n\nbuttonClosePcHelp.addEventListener(\"click\", () => {\n modalMapHelp.classList.remove(\"modalMapHelpOpen\");\n body.classList.remove(\"bodyOverfllowHideen\");\n});\n\naddEventListener(\"click\", (e) => {\n if (e.target == modalMapHelp) {\n modalMapHelp.classList.remove(\"modalMapHelpOpen\");\n body.classList.remove(\"bodyOverfllowHideen\");\n }\n});\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const errorToast = document.querySelector('.toast.toastNg');\n let ngToastBody = '';\n // \u5FC5\u9808\u30C1\u30A7\u30C3\u30AF\n document.querySelector('#listmap_form').addEventListener('submit', (event) => {\n const selectedTargetElements = [];\n document.querySelectorAll('.must-required').forEach((element) => {\n const classList = element.closest('.search-target').classList;\n if (!classList.contains('hidden')) {\n // hidden \u30AF\u30E9\u30B9\u304C\u5B58\u5728\u3057\u306A\u3044\u5834\u5408\u306E\u307F\u5BFE\u8C61\n selectedTargetElements.push(element);\n if (classList.contains('area-search')) {\n ngToastBody = '\u5E02\u533A\u753A\u6751\u540D\u3001\u5730\u540D\u3001\u99C5\u540D\u306A\u3069\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044';\n } else if (classList.contains('station-search')) {\n ngToastBody = '\u99C5\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044';\n } else {\n ngToastBody = '\u4FDD\u80B2\u5712\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044';\n }\n }\n });\n const everyInputOk = selectedTargetElements.every((input) => {\n return input.value.length > 0;\n });\n if (everyInputOk) {\n return;\n }\n\n event.preventDefault();\n errorToast.querySelector('.toast-bodyNg').innerText = ngToastBody;\n errorToast.classList.remove('hide');\n });\n\n // \u90FD\u9053\u5E9C\u770C\n setupTomSelect('#for_daycare_center_pref')\n\n // \u4FDD\u80B2\u5712\u540D\u306E\u90E8\u5206\u4E00\u81F4\u691C\u7D22\u5BFE\u5FDC\n setupTomSelectRemote('#q_daycare_center_id', {\n url:'/api/v1/suggest_daycare_centers',\n data: (query) => {\n const prefId = document.querySelector('#for_daycare_center_pref').value;\n return { term: query, prefecture_id: prefId, can_posting: true };\n },\n results: (data) => data.map(obj => ({ value: obj.id, text: obj.text }))\n })\n // \u99C5\u540D\u306E\u90E8\u5206\u4E00\u81F4\u691C\u7D22\u5BFE\u5FDC\n setupTomSelectRemote('#q_station_id', {\n url:'/api/v1/suggest_stations',\n data: (query) => ({term: query}),\n results: (data) => data.map(obj => ({ value: obj.id, text: obj.text }))\n })\n});\n\n// time picker (\u53C2\u8003: https://timepicker.co/)\nconst timepickerOption = {\n timeFormat: \"HH:mm\",\n interval: 15,\n minTime: \"0\",\n maxTime: \"23:45\",\n dynamic: false,\n dropdown: true,\n scrollbar: true\n}\n\n$(document).ready(function () {\n $(\"input.timepicker.open\").timepicker({\n ...timepickerOption,\n defaultTime: \"7:00\",\n });\n});\n\n$(document).ready(function () {\n $(\"input.timepicker.close\").timepicker({\n ...timepickerOption,\n defaultTime: \"8:00\",\n });\n});\n\n\n//\u691C\u7D22\u30D5\u30A9\u30FC\u30E0\u4F4F\u6240\u306Eplaceholder\u306E\u30AB\u30E9\u30FC\u3092\u8A2D\u5B9A\nfunction updateTextColor(element) {\n const selectedValue = element.value;\n const textColor = (selectedValue === \"\") ? \"#999999\" : \"#323232\";\n element.style.color = textColor;\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n const for_daycare_center_pref = document.getElementById(\"for_daycare_center_pref\");\n updateTextColor(for_daycare_center_pref);\n for_daycare_center_pref.addEventListener(\"change\", () => updateTextColor(for_daycare_center_pref));\n});\n\n//\u30A2\u30B3\u30FC\u30C7\u30A3\u30AA\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u305F\u6642\u306E\u52D5\u4F5C\n$('.faqBigTitle').on('click', function() {\n $('.faqBox').slideUp(500);\n\n const findElm = $(this).next(\".faqBox\");\n\n if($(this).hasClass('faqClose')){\n $(this).removeClass('faqClose');\n }else{\n $('.faqClose').removeClass('faqClose');\n $(this).addClass('faqClose');\n $(findElm).slideDown(500);\n }\n});\n\n$('.faqBigTitleInner').on('click', function() {\n $('.faqBoxInner').slideUp(100);\n\n const findElmInner = $(this).next(\".faqBoxInner\");\n const findElmInnerLi = $(this).parent(\".faqAccordionAreaLiInner\");\n\n if($(this).hasClass('faqCloseInner')){\n $(this).removeClass('faqCloseInner');\n $(findElmInnerLi).removeClass('faqAccordionAreaLiInnerOpen');\n }else{\n $('.faqCloseInner').removeClass('faqCloseInner');\n $('.faqAccordionAreaLiInnerOpen').removeClass('faqAccordionAreaLiInnerOpen');\n $(this).addClass('faqCloseInner');\n $(findElmInnerLi).addClass('faqAccordionAreaLiInnerOpen');\n $(findElmInner).slideDown(100);\n }\n});\n"], "mappings": "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", "names": ["plugin", "code_points", "unicode_map", "timeout", "type", "iterate", "iterate", "element", "el", "iterate", "value", "input", "iterate", "optgroup", "label", "addEvent", "target", "type", "callback", "options", "addEventListener", "input", "sync", "hash_key", "value", "get_hash", "preventDefault", "evt", "stop", "stopPropagation", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "plugin", "userOptions", "self", "orig_onOptionSelect", "onOptionSelect", "settings", "hideSelected", "cbOptions", "Object", "assign", "className", "checkedClassNames", "undefined", "uncheckedClassNames", "UpdateChecked", "checkbox", "toCheck", "checked", "classList", "remove", "add", "UpdateCheckbox", "option", "setTimeout", "HTMLInputElement", "contains", "hook", "orig_render_option", "render", "data", "escape_html", "rendered", "call", "addEventListener", "type", "hashed", "valueField", "items", "prepend", "on", "getOption", "removeItem", "dataset", "refreshOptions", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "plugin", "userOptions", "self", "options", "Object", "assign", "className", "title", "html", "data", "on", "button", "addEventListener", "evt", "isLocked", "clear", "settings", "mode", "allowEmptyOption", "addItem", "preventDefault", "stopPropagation", "control", "appendChild", "preventDefault", "evt", "stop", "stopPropagation", "addEvent", "target", "type", "callback", "options", "addEventListener", "iterate", "object", "Array", "isArray", "forEach", "key", "hasOwnProperty", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "setAttr", "el", "attrs", "val", "attr", "removeAttribute", "setAttribute", "insertAfter", "referenceNode", "newNode", "_referenceNode$parent", "parentNode", "insertBefore", "nextSibling", "_referenceNode$parent2", "isBefore", "_newNode", "previousElementSibling", "plugin", "self", "settings", "mode", "orig_lock", "lock", "orig_unlock", "unlock", "sortable", "drag_item", "hook", "orig_render_item", "render", "item", "data", "escape", "call", "mousedown", "dragStart", "setTimeout", "classList", "add", "dragOver", "moveitem", "dragLeave", "remove", "targetitem", "dragitem", "undefined", "dragend", "_drag_item", "querySelectorAll", "values", "control", "dataset", "value", "push", "setValue", "preventDefault", "evt", "stop", "stopPropagation", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "plugin", "userOptions", "self", "options", "Object", "assign", "title", "headerClass", "titleRowClass", "labelClass", "closeClass", "html", "data", "on", "header", "close_link", "addEventListener", "close", "dropdown", "insertBefore", "iterate", "object", "callback", "Array", "isArray", "forEach", "key", "hasOwnProperty", "removeClasses", "elmts", "classes", "norm_classes", "classesArray", "castAsArray", "map", "el", "cls", "classList", "remove", "args", "_classes", "trim", "split", "concat", "filter", "Boolean", "arg", "nodeIndex", "amongst", "nodeName", "i", "previousElementSibling", "matches", "plugin", "self", "hook", "new_pos", "settings", "mode", "control", "contains", "control_input", "items", "length", "Math", "max", "min", "caretPos", "isPending", "controlChildren", "child", "j", "insertAdjacentElement", "appendChild", "direction", "isFocused", "last_active", "getLastActive", "idx", "setCaret", "setActiveItem", "KEY_ESC", "KEY_TAB", "preventDefault", "evt", "stop", "stopPropagation", "addEvent", "target", "type", "callback", "options", "addEventListener", "iterate", "object", "Array", "isArray", "forEach", "key", "hasOwnProperty", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "addClasses", "elmts", "classes", "norm_classes", "classesArray", "castAsArray", "map", "el", "cls", "classList", "add", "args", "_classes", "split", "concat", "filter", "Boolean", "plugin", "self", "settings", "shouldOpen", "hook", "focus_node", "control", "control_input", "div", "append", "dropdown", "insertBefore", "placeholder", "on", "keyCode", "constants", "isOpen", "close", "clearActiveItems", "tabIndex", "onKeyDown", "call", "isDisabled", "focus", "orig_onBlur", "onBlur", "relatedTarget", "preventScroll", "addEvent", "target", "type", "callback", "options", "addEventListener", "plugin", "self", "on", "test_input", "document", "createElement", "control", "control_input", "style", "cssText", "wrapper", "appendChild", "transfer_styles", "style_name", "resize", "textContent", "value", "width", "clientWidth", "plugin", "self", "orig_deleteSelection", "deleteSelection", "hook", "evt", "activeItems", "length", "call", "plugin", "hook", "KEY_LEFT", "KEY_RIGHT", "parentMatch", "target", "selector", "wrapper", "matches", "parentNode", "nodeIndex", "el", "amongst", "nodeName", "i", "previousElementSibling", "plugin", "self", "orig_keydown", "onKeyDown", "hook", "evt", "index", "option", "options", "optgroup", "isOpen", "keyCode", "constants", "call", "ignoreHover", "activeOption", "previousSibling", "nextSibling", "querySelectorAll", "Math", "min", "length", "setActiveOption", "escape_html", "str", "replace", "preventDefault", "evt", "stop", "stopPropagation", "addEvent", "target", "type", "callback", "options", "addEventListener", "getDom", "query", "jquery", "HTMLElement", "isHtmlString", "tpl", "document", "createElement", "innerHTML", "trim", "content", "firstChild", "querySelector", "arg", "indexOf", "plugin", "userOptions", "Object", "assign", "label", "title", "className", "append", "self", "html", "hook", "orig_render_item", "settings", "render", "item", "data", "escape", "call", "close_button", "appendChild", "isLocked", "shouldDelete", "removeItem", "refreshOptions", "inputState", "plugin", "userOptions", "self", "options", "Object", "assign", "text", "option", "settings", "labelField", "on", "value", "isFocused", "control_input", "trim", "setTextboxValue", "call", "iterate", "object", "callback", "Array", "isArray", "forEach", "key", "hasOwnProperty", "addClasses", "elmts", "classes", "norm_classes", "classesArray", "castAsArray", "map", "el", "cls", "classList", "add", "args", "_classes", "trim", "split", "concat", "filter", "Boolean", "arg", "plugin", "self", "orig_canLoad", "canLoad", "orig_clearActiveOption", "clearActiveOption", "orig_loadCallback", "loadCallback", "pagination", "dropdown_content", "loading_more", "load_more_opt", "default_values", "settings", "shouldLoadMore", "scroll_percent", "clientHeight", "scrollHeight", "scrollTop", "activeOption", "selectable", "index", "from", "indexOf", "length", "firstUrl", "sortField", "field", "canLoadMore", "query", "maxOptions", "children", "clearFilter", "option", "value", "items", "setNextUrl", "next_url", "getUrl", "clearPagination", "call", "hook", "options", "optgroups", "clearOptions", "first_option", "undefined", "dataset", "valueField", "lastValue", "render", "setAttribute", "querySelector", "optionClass", "append", "on", "Object", "keys", "assign", "no_more_results", "addEventListener", "load", "plugin", "data"] }