{"version":3,"file":"js/country-landing-page.999dbbe300ead1ab4826.js","mappings":"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","sources":["webpack:///../node_modules/tail.select.js/js/tail.select.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./Features/Pages/CountryLandingPage/_js/countryLandingPage.js"],"sourcesContent":["/*\r\n | tail.select - The vanilla solution to make your HTML select fields AWESOME!\r\n | @file ./js/tail.select.js\r\n | @author wolffe \r\n | @author SamBrishes \r\n | @version 0.5.22\r\n |\r\n | @website https://github.com/wolffe/tail.select.js\r\n | @license X11 / MIT License\r\n | @copyright Copyright © 2020 - 2021 wolffe \r\n | @copyright Copyright © 2014 - 2019 SamBrishes, pytesNET \r\n */\r\n;(function(root, factory) {\r\n if (typeof define === \"function\" && define.amd) {\r\n define(function () {\r\n return factory(root);\r\n });\r\n } else if (typeof module === \"object\" && module.exports) {\r\n module.exports = factory(root);\r\n } else {\r\n if (typeof root.tail === \"undefined\") {\r\n root.tail = {};\r\n }\r\n root.tail.select = factory(root);\r\n\r\n // jQuery Support\r\n if (typeof jQuery !== \"undefined\") {\r\n jQuery.fn.tailselect = function (o) {\r\n var r = [], i;\r\n this.each(function () {\r\n if ((i = tail.select(this, o)) !== false) {\r\n r.push(i);\r\n }\r\n });\r\n return (r.length === 1) ? r[0] : (r.length === 0) ? false : r;\r\n };\r\n }\r\n\r\n // MooTools Support\r\n if (typeof(MooTools) != \"undefined\") {\r\n Element.implement({\r\n tailselect: function (o) {\r\n return new tail.select(this, o);\r\n }\r\n });\r\n }\r\n }\r\n}(window, function (root) {\r\n \"use strict\";\r\n var w = root, d = root.document;\r\n\r\n // Internal Helper Methods\r\n function cHAS(el, name) {\r\n return (el && \"classList\" in el) ? el.classList.contains(name) : false;\r\n }\r\n function cADD(el, name) {\r\n return (el && \"classList\" in el) ? el.classList.add(name) : undefined;\r\n }\r\n function cREM(el, name) {\r\n return (el && \"classList\" in el) ? el.classList.remove(name) : undefined;\r\n }\r\n function trigger(el, event, opt) {\r\n if (CustomEvent && CustomEvent.name) {\r\n var ev = new CustomEvent(event, opt);\r\n } else {\r\n var ev = d.createEvent(\"CustomEvent\");\r\n ev.initCustomEvent(event, !!opt.bubbles, !!opt.cancelable, opt.detail);\r\n }\r\n return el.dispatchEvent(ev);\r\n }\r\n function clone(obj, rep) {\r\n if (typeof Object.assign === \"function\") {\r\n return Object.assign({}, obj, rep || {});\r\n }\r\n var clone = Object.constructor();\r\n for (var key in obj) {\r\n clone[key] = (key in rep) ? rep[key] : obj[key];\r\n }\r\n return clone;\r\n }\r\n function create(tag, classes) {\r\n var r = d.createElement(tag);\r\n r.className = (classes && classes.join) ? classes.join(\" \") : classes || \"\";\r\n return r;\r\n }\r\n\r\n /*\r\n | SELECT CONSTRUCTOR\r\n | @since 0.5.12 [0.3.0]\r\n */\r\n var select = function(el, config) {\r\n el = (typeof(el) == \"string\") ? d.querySelectorAll(el) : el;\r\n if (el instanceof NodeList || el instanceof HTMLCollection || el instanceof Array) {\r\n for (var _r = [], l = el.length, i = 0; i < l; i++) {\r\n _r.push(new select(el[i], clone(config, {})));\r\n }\r\n return (_r.length === 1) ? _r[0] : ((_r.length === 0) ? false : _r);\r\n }\r\n if (!(el instanceof Element) || !(this instanceof select)) {\r\n return !(el instanceof Element) ? false : new select(el, config);\r\n }\r\n\r\n // Check Element\r\n if (select.inst[el.getAttribute(\"data-tail-select\")]) {\r\n return select.inst[el.getAttribute(\"data-tail-select\")];\r\n }\r\n if (el.getAttribute(\"data-select\")) {\r\n var test = JSON.parse(el.getAttribute(\"data-select\").replace(/\\'/g, '\"'));\r\n if (test instanceof Object) {\r\n config = clone(config, test); // This is a unofficial function ;3\r\n }\r\n }\r\n\r\n // Get Element Options\r\n var placeholder = el.getAttribute(\"placeholder\") || el.getAttribute(\"data-placeholder\"),\r\n fb1 = \"bindSourceSelect\", fb2 = \"sourceHide\"; // Fallbacks\r\n config = (typeof(config) == \"object\") ? config : {};\r\n config.multiple = (\"multiple\" in config) ? config.multiple : el.multiple;\r\n config.disabled = (\"disabled\" in config) ? config.disabled : el.disabled;\r\n config.placeholder = placeholder || config.placeholder || null;\r\n config.width = (config.width === \"auto\") ? el.offsetWidth + 50 : config.width;\r\n config.sourceBind = (fb1 in config) ? config[fb1] : config.sourceBind || false;\r\n config.sourceHide = (fb2 in config) ? config[fb2] : config.sourceHide || true;\r\n config.multiLimit = (config.multiLimit >= 0) ? config.multiLimit : Infinity;\r\n\r\n // Init Instance\r\n this.e = el;\r\n this.id = ++select.count;\r\n this.con = clone(select.defaults, config);\r\n this.events = {};\r\n select.inst[\"tail-\" + this.id] = this;\r\n\r\n var ret = this.init().bind();\r\n\r\n return ret;\r\n }, options;\r\n select.count = 0;\r\n select.inst = {};\r\n\r\n /*\r\n | STORAGE :: DEFAULT OPTIONS\r\n */\r\n select.defaults = {\r\n animate: true, // [0.3.0] Boolean\r\n classNames: null, // [0.2.0] Boolean, String, Array, null\r\n csvOutput: false, // [0.3.4] Boolean\r\n csvSeparator: \",\", // [0.3.4] String\r\n descriptions: false, // [0.3.0] Boolean\r\n deselect: false, // [0.3.0] Boolean\r\n disabled: false, // [0.5.0] Boolean\r\n height: 350, // [0.2.0] Integer, null\r\n hideDisabled: false, // [0.3.0] Boolean\r\n hideSelected: false, // [0.3.0] Boolean\r\n items: {}, // [0.3.0] Object\r\n locale: \"en\", // [0.5.0] String\r\n linguisticRules: { // [0.5.9] Object\r\n \"е\": \"ё\",\r\n \"a\": \"ä\",\r\n \"o\": \"ö\",\r\n \"u\": \"ü\",\r\n \"ss\": \"ß\"\r\n },\r\n multiple: false, // [0.2.0] Boolean\r\n multiLimit: Infinity, // [0.3.0] Integer, Infinity\r\n multiPinSelected: false, // [0.5.0] Boolean\r\n multiContainer: false, // [0.3.0] Boolean, String\r\n multiShowCount: true, // [0.3.0] Boolean\r\n multiShowLimit: false, // [0.5.0] Boolean\r\n multiSelectAll: false, // [0.4.0] Boolean\r\n multiSelectGroup: true, // [0.4.0] Boolean\r\n openAbove: null, // [0.3.0] Boolean, null\r\n placeholder: null, // [0.2.0] String, null\r\n search: false, // [0.3.0] Boolean\r\n searchConfig: [ // [0.5.13] Array\r\n \"text\", \"value\"\r\n ],\r\n searchFocus: true, // [0.3.0] Boolean\r\n searchMarked: true, // [0.3.0] Boolean\r\n searchMinLength: 1, // [0.5.13] Integer\r\n searchDisabled: true, // [0.5.5] Boolean\r\n sortItems: false, // [0.3.0] String, Function, false\r\n sortGroups: false, // [0.3.0] String, Function, false\r\n sourceBind: false, // [0.5.0] Boolean\r\n sourceHide: true, // [0.5.0] Boolean\r\n startOpen: false, // [0.3.0] Boolean\r\n stayOpen: false, // [0.3.0] Boolean\r\n width: null, // [0.2.0] Integer, String, null\r\n cbComplete: undefined, // [0.5.0] Function\r\n cbEmpty: undefined, // [0.5.0] Function\r\n cbLoopItem: undefined, // [0.4.0] Function\r\n cbLoopGroup: undefined // [0.4.0] Function\r\n };\r\n\r\n /*\r\n | STORAGE :: STRINGS\r\n */\r\n select.strings = {\r\n en: {\r\n all: \"All\",\r\n none: \"None\",\r\n empty: \"No Options available\",\r\n emptySearch: \"No Options found\",\r\n limit: \"You can't select more Options\",\r\n placeholder: \"Select an Option...\",\r\n placeholderMulti: \"Select up to :limit Options...\",\r\n search: \"Type in to search...\",\r\n disabled: \"This Field is disabled\"\r\n },\r\n modify: function(locale, id, string) {\r\n if (!(locale in this)) {\r\n return false;\r\n }\r\n if ((id instanceof Object)) {\r\n for (var key in id) {\r\n this.modify(locale, key, id[key]);\r\n }\r\n } else {\r\n this[locale][id] = (typeof(string) == \"string\") ? string : this[locale][id];\r\n }\r\n return true;\r\n },\r\n register: function(locale, object) {\r\n if (typeof(locale) != \"string\" || !(object instanceof Object)) {\r\n return false;\r\n }\r\n this[locale] = object;\r\n return true;\r\n }\r\n };\r\n\r\n /*\r\n | TAIL.SELECT HANDLER\r\n */\r\n select.prototype = {\r\n /*\r\n | INTERNAL :: TRANSLATE\r\n | @since 0.5.8 [0.5.8]\r\n */\r\n _e: function(string, replace, def) {\r\n if (!(string in this.__)) {\r\n return (!def)? string: def;\r\n }\r\n\r\n var string = this.__[string];\r\n if (typeof(string) === \"function\") {\r\n string = string.call(this, replace);\r\n }\r\n if (typeof(replace) === \"object\") {\r\n for (var key in replace) {\r\n string = string.replace(key, replace[key]);\r\n }\r\n }\r\n return string;\r\n },\r\n\r\n /*\r\n | INTERNAL :: INIT SELECT FIELD\r\n | @since 0.5.13 [0.3.0]\r\n */\r\n init: function() {\r\n var self = this, classes = [\"tail-select\"], con = this.con,\r\n regexp = /^[0-9.]+(?:cm|mm|in|px|pt|pc|em|ex|ch|rem|vw|vh|vmin|vmax|\\%)$/i;\r\n\r\n // Init ClassNames\r\n var c = (con.classNames === true) ? this.e.className : con.classNames;\r\n classes.push((c && c.push) ? c.join(\" \") : (c && c.split) ? c : \"no-classes\");\r\n if(con.hideSelected){ classes.push(\"hide-selected\"); }\r\n if(con.hideDisabled){ classes.push(\"hide-disabled\"); }\r\n if(con.multiLimit == 0){ classes.push(\"disabled\"); }\r\n if(con.multiple){ classes.push(\"multiple\"); }\r\n if(con.deselect){ classes.push(\"deselect\"); }\r\n if(con.disabled){ classes.push(\"disabled\"); }\r\n\r\n // Init Variables\r\n this.__ = clone(select.strings.en, select.strings[con.locale] || {});\r\n this._init = true;\r\n this._query = false;\r\n this.select = create(\"DIV\", classes);\r\n this.label = create(\"DIV\", \"select-label\");\r\n this.dropdown = create(\"DIV\", \"select-dropdown\");\r\n this.search = create(\"DIV\", \"dropdown-search\");\r\n this.csvInput = create(\"INPUT\", \"select-search\");\r\n\r\n // Build :: Select\r\n if(this.e.getAttribute(\"tabindex\") !== null){\r\n this.select.setAttribute(\"tabindex\", this.e.getAttribute(\"tabindex\"));\r\n } else {\r\n this.select.setAttribute(\"tabindex\", 0);\r\n }\r\n if(con.width && regexp.test(con.width)){\r\n this.select.style.width = con.width;\r\n } else if(con.width && !isNaN(parseFloat(con.width, 10))){\r\n this.select.style.width = con.width + \"px\";\r\n }\r\n\r\n // Build :: Label\r\n this.label.addEventListener(\"click\", function(event){\r\n self.toggle.call(self, self.con.animate);\r\n });\r\n this.select.appendChild(this.label);\r\n\r\n // Build :: Dropdown\r\n if(!isNaN(parseInt(con.height, 10))){\r\n this.dropdown.style.maxHeight = parseInt(con.height, 10) + \"px\";\r\n }\r\n if(con.search){\r\n this.search.innerHTML = '';\r\n this.search.children[0].placeholder = this._e(\"search\");\r\n this.search.children[0].addEventListener(\"input\", function(event){\r\n self.query.call(self, (this.value.length > con.searchMinLength)? this.value: undefined);\r\n });\r\n this.dropdown.appendChild(this.search);\r\n }\r\n this.select.appendChild(this.dropdown);\r\n\r\n // Build :: CSV Input\r\n this.csvInput.type = \"hidden\";\r\n if(con.csvOutput){\r\n this.csvInput.name = this.e.name;\r\n this.e.removeAttribute(\"name\");\r\n this.select.appendChild(this.csvInput);\r\n }\r\n\r\n // Prepare Container\r\n if(con.multiple && con.multiContainer){\r\n if(d.querySelector(con.multiContainer)){\r\n this.container = d.querySelector(con.multiContainer);\r\n this.container.className += \" tail-select-container\";\r\n } else if(con.multiContainer === true){\r\n this.container = this.label;\r\n this.container.className += \" tail-select-container\";\r\n }\r\n }\r\n\r\n // Prepare Options\r\n this.options = new options(this.e, this);\r\n for(var l = this.e.options.length, i = 0; i < l; i++){\r\n this.options.set(this.e.options[i], false);\r\n }\r\n for(var key in con.items){\r\n if(typeof(con.items[key]) == \"string\"){\r\n con.items[key] = {value: con.items[key]};\r\n }\r\n this.options.add(con.items[key].key || key, con.items[key].value,\r\n con.items[key].group, con.items[key].selected,\r\n con.items[key].disabled, con.items[key].description);\r\n }\r\n this.query();\r\n\r\n // Append and Return\r\n if(this.e.nextElementSibling){\r\n this.e.parentElement.insertBefore(this.select, this.e.nextElementSibling);\r\n } else {\r\n this.e.parentElement.appendChild(this.select);\r\n }\r\n if(con.sourceHide){\r\n if(this.e.style.display == \"none\"){\r\n this.select.style.display = \"none\";\r\n this.e.setAttribute(\"data-select-hidden\", \"display\");\r\n } else if(this.e.style.visibility == \"hidden\"){\r\n this.select.style.visibiltiy = \"hidden\";\r\n this.e.setAttribute(\"data-select-hidden\", \"visibility\");\r\n } else {\r\n this.e.style.display = \"none\";\r\n this.e.setAttribute(\"data-select-hidden\", \"0\");\r\n }\r\n }\r\n this.e.setAttribute(\"data-tail-select\", \"tail-\" + this.id);\r\n if(self.con.startOpen){\r\n this.open(con.animate);\r\n }\r\n (con.cbComplete || function(){ }).call(this, this.select);\r\n\r\n return (this._init = false)? this: this;\r\n },\r\n\r\n /*\r\n | INTERNAL :: EVENT LISTENER\r\n | @since 0.5.13 [0.3.0]\r\n */\r\n bind: function(){\r\n var self = this;\r\n\r\n /* Seems to be last call from init */\r\n if (typeof this.options_initial === 'undefined') {\r\n var init_selected = [];\r\n\r\n for (var idx = 0; idx < this.options.selected.length; ++idx) {\r\n init_selected.push(this.options.selected[idx]);\r\n }\r\n\r\n this.options_initial = {\r\n selected: init_selected\r\n }\r\n }\r\n\r\n // Keys Listener\r\n d.addEventListener(\"keydown\", function(event){\r\n var key = (event.keyCode || event.which), opt, inner, e, temp, tmp;\r\n var space = (key == 32 && self.select === document.activeElement);\r\n if(!space && (!cHAS(self.select, \"active\") || [13, 27, 38, 40].indexOf(key) < 0)){\r\n return false;\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n // Space\r\n if(key === 32){\r\n return self.open(self.con.animate);\r\n }\r\n\r\n // Enter || Escape\r\n if(key == 13){\r\n if((opt = self.dropdown.querySelector(\".dropdown-option.hover:not(.disabled)\"))){\r\n if (opt.classList.contains(\"selected\")) {\r\n self.options.unselect.call(self.options, opt);\r\n } else {\r\n self.options.select.call(self.options, opt);\r\n }\r\n }\r\n }\r\n if(key == 27 || key == 13){\r\n return self.close(self.con.animate);\r\n }\r\n\r\n // Top || Down\r\n if((opt = self.dropdown.querySelector(\".dropdown-option.hover:not(.disabled)\"))){\r\n cREM(opt, \"hover\"); e = [((key == 40)? \"next\": \"previous\") + \"ElementSibling\"];\r\n do {\r\n if((temp = opt[e]) !== null && opt.tagName == \"LI\"){\r\n opt = temp;\r\n } else if((temp = opt.parentElement[e]) !== null && temp.children.length > 0 && temp.tagName == \"UL\"){\r\n opt = temp.children[(key == 40)? 0: temp.children.length-1];\r\n } else {\r\n opt = false;\r\n }\r\n if(opt && (!cHAS(opt, \"dropdown-option\") || cHAS(opt, \"disabled\"))){\r\n continue;\r\n }\r\n break;\r\n } while(true);\r\n }\r\n if(!opt && key == 40){\r\n opt = self.dropdown.querySelector(\".dropdown-option:not(.disabled)\");\r\n } else if(!opt && key == 38){\r\n tmp = self.dropdown.querySelectorAll(\".dropdown-option:not(.disabled)\");\r\n opt = tmp[tmp.length - 1];\r\n }\r\n if(opt && (inner = self.dropdown.querySelector(\".dropdown-inner\"))){\r\n var pos = (function(el){\r\n var _r = {top: el.offsetTop, height: el.offsetHeight};\r\n while((el = el.parentElement) != inner){\r\n _r.top += el.offsetTop;\r\n }\r\n return _r;\r\n })(opt);\r\n cADD(opt, \"hover\");\r\n inner.scrollTop = Math.max(0, pos.top - (pos.height * 2));\r\n }\r\n return true;\r\n });\r\n\r\n // Close\r\n d.addEventListener(\"click\", function(ev){\r\n if(!cHAS(self.select, \"active\") || cHAS(self.select, \"idle\")){ return false; }\r\n if(self.con.stayOpen === true){ return false; }\r\n\r\n var targets = [self.e, self.select, self.container];\r\n for(var l = targets.length, i = 0; i < l; i++){\r\n if(targets[i] && (targets[i].contains(ev.target) || targets[i] == ev.target)){\r\n return false;\r\n }\r\n if(!ev.target.parentElement){ return false; }\r\n }\r\n return self.close.call(self, self.con.animate);\r\n });\r\n\r\n // Bind Source Select\r\n if(!this.con.sourceBind){\r\n return true;\r\n }\r\n this.e.addEventListener(\"change\", function(event){\r\n if(event.detail != undefined){\r\n return false;\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if(!this.multiple && this.selectedIndex){\r\n self.options.select.call(self.options, this.options[this.selectedIndex]);\r\n } else {\r\n var u = [].concat(self.options.selected);\r\n var s = [].filter.call(this.querySelectorAll(\"option:checked\"), function(item){\r\n if(u.indexOf(item) >= 0){\r\n u.splice(u.indexOf(item), 1);\r\n return false;\r\n }\r\n return true;\r\n });\r\n self.options.walk.call(self.options, \"unselect\", u);\r\n self.options.walk.call(self.options, \"select\", s);\r\n }\r\n });\r\n return true;\r\n },\r\n\r\n /*\r\n | INTERNAL :: INTERNAL CALLBACK\r\n | @since 0.5.14 [0.3.0]\r\n */\r\n callback: function(item, state, _force){\r\n var rkey = item.key.replace(/('|\\\\)/g, \"\\\\$1\"),\r\n rgrp = item.group.replace(/('|\\\\)/g, \"\\\\$1\"),\r\n rsel = \"[data-key='\" + rkey + \"'][data-group='\" + rgrp + \"']\";\r\n if(state == \"rebuild\"){ return this.query(); }\r\n\r\n // Set Element-Item States\r\n var element = this.dropdown.querySelector(rsel);\r\n if(element && [\"select\", \"disable\"].indexOf(state) >= 0){\r\n cADD(element, (state == \"select\"? \"selected\": \"disabled\"));\r\n } else if(element && [\"unselect\", \"enable\"].indexOf(state) >= 0){\r\n cREM(element, (state == \"unselect\"? \"selected\": \"disabled\"));\r\n }\r\n\r\n // Handle\r\n this.update(item);\r\n return (_force === true)? true: this.trigger(\"change\", item, state);\r\n },\r\n\r\n /*\r\n | INTERNAL :: TRIGGER EVENT HANDLER\r\n | @since 0.5.2 [0.4.0]\r\n */\r\n trigger: function(event){\r\n if(this._init){ return false; }\r\n var obj = {bubbles: false, cancelable: true, detail: {args: arguments, self: this}};\r\n if(event == \"change\" && arguments[2] && arguments[2].indexOf(\"select\") >= 0){\r\n trigger(this.e, \"input\", obj);\r\n trigger(this.e, \"change\", obj);\r\n }\r\n trigger(this.select, \"tail::\" + event, obj);\r\n\r\n var args = [], pass;\r\n Array.prototype.map.call(arguments, function(item, i){\r\n if(i > 0){ args.push(item); }\r\n });\r\n (this.events[event] || []).forEach(function(item){\r\n pass = [].concat(args);\r\n pass.push(item.args || null);\r\n (item.cb || function(){ }).apply(obj.detail.self, pass);\r\n });\r\n return true;\r\n },\r\n\r\n /*\r\n | INTERNAL :: CALCULATE DROPDOWN\r\n | @since 0.5.4 [0.5.0]\r\n */\r\n calc: function(){\r\n var clone = this.dropdown.cloneNode(true), height = this.con.height, search = 0,\r\n inner = this.dropdown.querySelector(\".dropdown-inner\");\r\n\r\n // Calculate Dropdown Height\r\n clone = this.dropdown.cloneNode(true);\r\n clone.style.cssText = \"height:auto;min-height:auto;max-height:none;opacity:0;display:block;visibility:hidden;\";\r\n clone.style.maxHeight = this.con.height + \"px\";\r\n clone.className += \" cloned\";\r\n this.dropdown.parentElement.appendChild(clone);\r\n height = (height > clone.clientHeight)? clone.clientHeight: height;\r\n if(this.con.search){\r\n search = clone.querySelector(\".dropdown-search\").clientHeight;\r\n }\r\n this.dropdown.parentElement.removeChild(clone);\r\n\r\n // Calculate Viewport\r\n var pos = this.select.getBoundingClientRect(),\r\n bottom = w.innerHeight-(pos.top+pos.height),\r\n view = ((height+search) > bottom)? pos.top > bottom: false;\r\n if(this.con.openAbove === true || (this.con.openAbove !== false && view)){\r\n view = true, height = Math.min((height), pos.top-10);\r\n cADD(this.select, \"open-top\");\r\n } else {\r\n view = false, height = Math.min((height), bottom-10);\r\n cREM(this.select, \"open-top\");\r\n }\r\n if(inner){\r\n this.dropdown.style.maxHeight = height + \"px\";\r\n inner.style.maxHeight = (height-search) + \"px\";\r\n }\r\n return this;\r\n },\r\n\r\n /*\r\n | API :: QUERY OPTIONS\r\n | @since 0.5.13 [0.5.0]\r\n */\r\n query: function(search, conf){\r\n var item, tp, ul, li, a1, a2; // Pre-Definition\r\n var self = this, con = this.con, g = \"getAttribute\"; // Shorties\r\n var root = create(\"DIV\", \"dropdown-inner\"), // Contexts\r\n func = (!search)? \"walker\": \"finder\",\r\n args = (!search)? [con.sortItems, con.sortGroups]: [search, conf];\r\n\r\n // Option Walker\r\n this._query = (typeof(search) == \"string\")? search: false;\r\n while(item = this.options[func].apply(this.options, args)){\r\n if(!ul || (ul && ul[g](\"data-group\") !== item.group)){\r\n tp = (con.cbLoopGroup || this.cbGroup).call(this, item.group, search, root);\r\n if(tp instanceof Element){\r\n ul = tp;\r\n ul.setAttribute(\"data-group\", item.group);\r\n root.appendChild(ul);\r\n } else { break; }\r\n }\r\n\r\n // Create Item\r\n if((li = (con.cbLoopItem || this.cbItem).call(this, item, ul, search, root)) === null){\r\n continue;\r\n }\r\n if(li === false){ break; }\r\n li.setAttribute(\"data-key\", item.key);\r\n li.setAttribute(\"data-group\", item.group);\r\n li.addEventListener(\"click\", function(event){\r\n if(!this.hasAttribute(\"data-key\")){ return false; }\r\n var key = this[g](\"data-key\"), group = this[g](\"data-group\") || \"#\";\r\n if(self.options.toggle.call(self.options, key, group)){\r\n if(self.con.stayOpen === false && !self.con.multiple){\r\n self.close.call(self, self.con.animate);\r\n }\r\n }\r\n });\r\n ul.appendChild(li);\r\n }\r\n\r\n // Empty\r\n var count = root.querySelectorAll(\"*[data-key]\").length;\r\n if(count == 0){\r\n (this.con.cbEmpty || function(element){\r\n var li = create(\"SPAN\", \"dropdown-empty\");\r\n li.innerText = this._e(\"empty\");\r\n element.appendChild(li);\r\n }).call(this, root, search);\r\n }\r\n\r\n // Select All\r\n if(count > 0 && con.multiple && con.multiLimit == Infinity && con.multiSelectAll){\r\n a1 = create(\"BUTTON\", \"tail-all\"), a2 = create(\"BUTTON\", \"tail-none\");\r\n a1.innerText = this._e(\"all\");\r\n a1.addEventListener(\"click\", function(event){\r\n event.preventDefault();\r\n var options = self.dropdown.querySelectorAll(\".dropdown-inner .dropdown-option\");\r\n self.options.walk.call(self.options, \"select\", options);\r\n })\r\n a2.innerText = this._e(\"none\");\r\n a2.addEventListener(\"click\", function(event){\r\n event.preventDefault();\r\n var options = self.dropdown.querySelectorAll(\".dropdown-inner .dropdown-option\");\r\n self.options.walk.call(self.options, \"unselect\", options);\r\n })\r\n\r\n // Add Element\r\n li = create(\"SPAN\", \"dropdown-action\");\r\n li.appendChild(a1);\r\n li.appendChild(a2);\r\n root.insertBefore(li, root.children[0]);\r\n }\r\n\r\n // Add and Return\r\n var data = this.dropdown.querySelector(\".dropdown-inner\");\r\n this.dropdown[(data? \"replace\": \"append\") + \"Child\"](root, data);\r\n if(cHAS(this.select, \"active\")){\r\n this.calc();\r\n }\r\n return this.updateCSV().updateLabel();\r\n },\r\n\r\n /*\r\n | API :: CALLBACK -> CREATE GROUP\r\n | @since 0.5.8 [0.4.0]\r\n */\r\n cbGroup: function(group, search){\r\n var ul = create(\"UL\", \"dropdown-optgroup\"), self = this, a1, a2;\r\n if(group == \"#\"){ return ul; }\r\n ul.innerHTML = '
  • ' + group + '
  • ';\r\n if(this.con.multiple && this.con.multiLimit == Infinity && this.con.multiSelectAll){\r\n a1 = create(\"BUTTON\", \"tail-none\"), a2 = create(\"BUTTON\", \"tail-all\");\r\n a1.innerText = this._e(\"none\");\r\n a1.addEventListener(\"click\", function(event){\r\n event.preventDefault();\r\n var grp = this.parentElement.parentElement.getAttribute(\"data-group\");\r\n self.options.all.call(self.options, \"unselect\", grp);\r\n });\r\n a2.innerText = this._e(\"all\");\r\n a2.addEventListener(\"click\", function(event){\r\n event.preventDefault();\r\n var grp = this.parentElement.parentElement.getAttribute(\"data-group\");\r\n self.options.all.call(self.options, \"select\", grp);\r\n });\r\n ul.children[0].appendChild(a1);\r\n ul.children[0].appendChild(a2);\r\n }\r\n return ul;\r\n },\r\n\r\n /*\r\n | API :: CALLBACK -> CREATE ITEM\r\n | @since 0.5.13 [0.4.0]\r\n */\r\n cbItem: function(item, optgroup, search){\r\n var li = create(\"LI\", \"dropdown-option\" + (item.selected? \" selected\": \"\") + (item.disabled? \" disabled\": \"\"));\r\n li.title = item.option.title;\r\n\r\n // Inner Text\r\n if(search && search.length > 0 && this.con.searchMarked){\r\n search = this.options.applyLinguisticRules(search);\r\n li.innerHTML = item.value.replace(new RegExp(\"(\" + search + \")\", \"i\"), \"$1\");\r\n } else {\r\n li.innerText = item.value;\r\n }\r\n\r\n // Inner Description\r\n if(this.con.descriptions && item.description){\r\n li.innerHTML += '' + item.description + '';\r\n }\r\n return li;\r\n },\r\n\r\n /*\r\n | API :: UPDATE EVERYTHING\r\n | @since 0.5.0 [0.5.0]\r\n */\r\n update: function(item){\r\n return this.updateLabel().updateContainer(item).updatePin(item).updateCSV(item);\r\n },\r\n\r\n /*\r\n | API :: UPDATE LABEL\r\n | @since 0.5.8 [0.5.0]\r\n */\r\n updateLabel: function(label){\r\n if(this.container == this.label && this.options.selected.length > 0){\r\n if(this.label.querySelector(\".label-inner\")){\r\n this.label.removeChild(this.label.querySelector(\".label-inner\"));\r\n }\r\n if(this.label.querySelector(\".label-count\")){\r\n this.label.removeChild(this.label.querySelector(\".label-count\"));\r\n }\r\n return this;\r\n }\r\n var c = this.con, len = this.options.selected.length, limit;\r\n if(typeof(label) != \"string\"){\r\n if(c.disabled){\r\n label = \"disabled\";\r\n } else if(this.dropdown.querySelectorAll(\"*[data-key]\").length == 0){\r\n label = \"empty\" + (cHAS(this.select, \"in-search\")? \"Search\": \"\");\r\n } else if(c.multiLimit <= len){\r\n label = \"limit\";\r\n } else if(!c.multiple && this.options.selected.length > 0){\r\n label = this.options.selected[0].innerText;\r\n } else if(typeof(c.placeholder) == \"string\"){\r\n label = c.placeholder;\r\n } else {\r\n label = \"placeholder\" + (c.multiple && c.multiLimit < Infinity? \"Multi\": \"\");\r\n }\r\n }\r\n\r\n // Set HTML\r\n label = this._e(label, {\":limit\": c.multiLimit}, label);\r\n label = '' + label + '',\r\n limit = (c.multiShowLimit && c.multiLimit < Infinity);\r\n if(c.multiple && c.multiShowCount){\r\n var selected_class = (len) ? 'label-count--selected' : '';\r\n\r\n label = ':c' + label;\r\n label = label.replace(\":c\", len + (limit? (\" / \" + c.multiLimit): \"\"));\r\n }\r\n this.label.innerHTML = label;\r\n return this;\r\n },\r\n\r\n /*\r\n | API :: UPDATE CONTAINER\r\n | @since 0.5.0 [0.5.0]\r\n */\r\n updateContainer: function(item){\r\n if(!this.container || !this.con.multiContainer){\r\n return this;\r\n }\r\n var s = \"[data-group='\" + item.group + \"'][data-key='\" + item.key + \"']\";\r\n if(this.container.querySelector(s)){\r\n if(!item.selected){\r\n this.container.removeChild(this.container.querySelector(s));\r\n }\r\n return this;\r\n }\r\n\r\n // Create Item\r\n if(item.selected){\r\n var self = this, hndl = create(\"DIV\", \"select-handle\");\r\n hndl.innerText = item.value;\r\n hndl.setAttribute(\"data-key\", item.key);\r\n hndl.setAttribute(\"data-group\", item.group);\r\n hndl.addEventListener(\"click\", function(event){\r\n event.preventDefault();\r\n event.stopPropagation();\r\n var key = this.getAttribute(\"data-key\"), grp = this.getAttribute(\"data-group\");\r\n self.options.unselect.call(self.options, key, grp);\r\n });\r\n this.container.appendChild(hndl);\r\n }\r\n return this;\r\n },\r\n\r\n /*\r\n | API :: UPDATE PIN POSITION\r\n | @since 0.5.3 [0.5.0]\r\n */\r\n updatePin: function(item){\r\n var inner = this.dropdown.querySelector(\".dropdown-inner ul\"),\r\n option = \"li[data-key='\" + item.key + \"'][data-group='\" + item.group + \"']\";\r\n if(!this.con.multiPinSelected || !inner || this._query !== false){\r\n return this;\r\n }\r\n\r\n // Create Item\r\n option = this.dropdown.querySelector(option);\r\n if(item.selected){\r\n inner.insertBefore(option, inner.children[0]);\r\n } else {\r\n var grp = this.dropdown.querySelector(\"ul[data-group='\" + item.group + \"']\"),\r\n prev = this.options[item.index-1], found = false;\r\n while(prev && prev.group == item.group){\r\n if(found = grp.querySelector(\"li[data-key='\" + prev.key + \"']\")){\r\n break;\r\n }\r\n prev = this.options[prev.index-1];\r\n }\r\n if(found && found.nextElementSibling){\r\n grp.insertBefore(option, found.nextElementSibling);\r\n } else {\r\n grp.appendChild(option);\r\n }\r\n }\r\n return this;\r\n },\r\n\r\n /*\r\n | API :: UPDATE CSV INPUT\r\n | @since 0.5.0 [0.5.0]\r\n */\r\n updateCSV: function(item){\r\n if(!this.csvInput || !this.con.csvOutput){\r\n return this;\r\n }\r\n for(var selected = [], l = this.options.selected.length, i = 0; i < l; i++){\r\n selected.push(this.options.selected[i].value);\r\n }\r\n this.csvInput.value = selected.join(this.con.csvSeparator || \",\");\r\n return this;\r\n },\r\n\r\n /*\r\n | PUBLIC :: OPEN DROPDOWN\r\n | @since 0.5.0 [0.3.0]\r\n */\r\n open: function(animate){\r\n if(cHAS(this.select, \"active\") || cHAS(this.select, \"idle\") || this.con.disabled){\r\n return false;\r\n }\r\n this.calc();\r\n\r\n // Final Function\r\n var final = function(){\r\n cADD(self.select, \"active\");\r\n cREM(self.select, \"idle\");\r\n this.dropdown.style.height = \"auto\";\r\n this.dropdown.style.overflow = \"visible\";\r\n this.label.removeAttribute(\"style\");\r\n if(this.con.search && this.con.searchFocus){\r\n this.dropdown.querySelector(\"input\").focus();\r\n }\r\n this.trigger.call(this, \"open\");\r\n }, self = this, e = this.dropdown.style;\r\n\r\n // Open\r\n if(animate !== false){\r\n this.label.style.zIndex = 25;\r\n this.dropdown.style.cssText += \"height:0;display:block;overflow:hidden;\";\r\n cADD(self.select, \"idle\");\r\n (function animate(){\r\n var h = parseInt(e.height, 10), m = parseInt(e.maxHeight, 10);\r\n if(h >= m){\r\n return final.call(self);\r\n }\r\n e.height = ((h+50 > m)? m: h+50) + \"px\";\r\n setTimeout(animate, 20);\r\n })();\r\n } else {\r\n e.cssText = \"height:\" + e.maxHeight + \";display:block;overflow:hidden;\";\r\n final.call(this);\r\n }\r\n return this;\r\n },\r\n\r\n /*\r\n | PUBLIC :: CLOSE DROPDOWN\r\n | @since 0.5.0 [0.3.0]\r\n */\r\n close: function(animate){\r\n if(!cHAS(this.select, \"active\") || cHAS(this.select, \"idle\")){\r\n return false;\r\n }\r\n var final = function(){\r\n cREM(this.select, \"active\");\r\n cREM(this.select, \"idle\");\r\n this.dropdown.removeAttribute(\"style\");\r\n this.dropdown.querySelector(\".dropdown-inner\").removeAttribute(\"style\");\r\n this.trigger.call(this, \"close\");\r\n }, self = this, e = this.dropdown;\r\n\r\n // Close\r\n if(animate !== false){\r\n cADD(this.select, \"idle\");\r\n this.dropdown.style.overflow = \"hidden\";\r\n (function animate(){\r\n if((parseInt(e.offsetHeight, 10)-50) <= 0){\r\n return final.call(self);\r\n }\r\n e.style.height = (parseInt(e.offsetHeight, 10)-50) + \"px\";\r\n setTimeout(animate, 20);\r\n })();\r\n } else {\r\n final.call(this);\r\n }\r\n return this;\r\n },\r\n\r\n /*\r\n | PUBLIC :: TOGGLE DROPDOWN\r\n | @since 0.5.0 [0.3.0]\r\n */\r\n toggle: function(animate){\r\n if(cHAS(this.select, \"active\")){\r\n return this.close(animate);\r\n }\r\n return !cHAS(this.select, \"idle\")? this.open(animate): this;\r\n },\r\n\r\n /*\r\n | PUBLIC :: REMOVE SELECT\r\n | @since 0.5.3 [0.3.0]\r\n */\r\n remove: function(){\r\n this.e.removeAttribute(\"data-tail-select\");\r\n if(this.e.hasAttribute(\"data-select-hidden\")){\r\n if(this.e.getAttribute(\"data-select-hidden\") == \"0\"){\r\n this.e.style.removeProperty(\"display\");\r\n }\r\n this.e.removeAttribute(\"data-select-hidden\");\r\n }\r\n Array.prototype.map.call(this.e.querySelectorAll(\"[data-select-option='add']\"), function(item){\r\n item.parentElement.removeChild(item);\r\n })\r\n Array.prototype.map.call(this.e.querySelectorAll(\"[data-select-optgroup='add']\"), function(item){\r\n item.parentElement.removeChild(item);\r\n })\r\n this.e.name = (this.csvInput.hasAttribute(\"name\"))? this.csvInput.name: this.e.name;\r\n if(this.select.parentElement){\r\n this.select.parentElement.removeChild(this.select);\r\n }\r\n if(this.container){\r\n var handles = this.container.querySelectorAll(\".select-handle\");\r\n for(var l = handles.length, i = 0; i < l; i++){\r\n this.container.removeChild(handles[i]);\r\n }\r\n }\r\n return this;\r\n },\r\n\r\n /*\r\n | PUBLIC :: RELOAD SELECT\r\n | @since 0.5.0 [0.3.0]\r\n */\r\n reload: function(){\r\n return this.remove().init();\r\n },\r\n\r\n /*\r\n | PUBLIC :: RELOAD SELECT\r\n | @since 0.5.20 [0.3.0]\r\n */\r\n reset: function(){\r\n /* Set all to unselected */\r\n for(var idx = 0; idx < this.options.element.length; ++idx){\r\n this.options.element[idx].selected = false;\r\n this.options.unselect(this.options.element[idx].value, \"#\", true);\r\n }\r\n\r\n /* Restore initial selection */\r\n for(var idx = 0; idx < this.options_initial.selected.length; ++idx){\r\n this.options_initial.selected[idx].selected = true;\r\n this.options.select(this.options_initial.selected[idx].value, \"#\", true);\r\n }\r\n\r\n /* Reset input field */\r\n this.dropdown.querySelector('input').value = '';\r\n this.query.call(this, '');\r\n },\r\n\r\n /*\r\n | PUBLIC :: GET|SET CONFIG\r\n | @since 0.5.15 [0.4.0]\r\n */\r\n config: function(key, value, rebuild){\r\n if(key instanceof Object){\r\n for(var k in key){ this.config(k, key[k], false); }\r\n return this.reload()? this.con: this.con;\r\n }\r\n if(typeof(key) == \"undefined\"){\r\n return this.con;\r\n } else if(!(key in this.con)){\r\n return false;\r\n }\r\n\r\n // Set | Return\r\n if(typeof(value) == \"undefined\"){\r\n return this.con[key];\r\n }\r\n this.con[key] = value;\r\n if(rebuild !== false){\r\n this.reload();\r\n }\r\n return this;\r\n },\r\n enable: function(update){\r\n cREM(this.select, \"disabled\");\r\n this.e.disabled = false;\r\n this.con.disabled = false;\r\n return (update === false)? this: this.reload();\r\n },\r\n disable: function(update){\r\n cADD(this.select, \"disabled\");\r\n this.e.disabled = true;\r\n this.con.disabled = true;\r\n return (update === false)? this: this.reload();\r\n },\r\n\r\n /*\r\n | PUBLIC :: CUSTOM EVENT LISTENER\r\n | @since 0.5.0 [0.4.0]\r\n */\r\n on: function(event, callback, args){\r\n if([\"open\", \"close\", \"change\"].indexOf(event) < 0 || typeof(callback) != \"function\"){\r\n return false;\r\n }\r\n if(!(event in this.events)){\r\n this.events[event] = [];\r\n }\r\n this.events[event].push({cb: callback, args: (args instanceof Array)? args: []});\r\n return this;\r\n },\r\n\r\n /*\r\n | PUBLIC :: VALUE\r\n | @since 0.5.13 [0.5.13]\r\n */\r\n value: function(){\r\n if(this.options.selected.length == 0){\r\n return null;\r\n }\r\n if(this.con.multiple){\r\n return this.options.selected.map(function(opt){\r\n return opt.value;\r\n });\r\n }\r\n return this.options.selected[0].value;\r\n }\r\n };\r\n\r\n /*\r\n | OPTIONS CONSTRUCTOR\r\n | @since 0.5.12 [0.3.0]\r\n */\r\n options = select.options = function(select, parent){\r\n if(!(this instanceof options)){\r\n return new options(select, parent);\r\n }\r\n this.self = parent;\r\n this.element = select;\r\n this.length = 0;\r\n this.selected = [];\r\n this.disabled = [];\r\n this.items = {\"#\": {}};\r\n this.groups = {};\r\n return this;\r\n }\r\n\r\n /*\r\n | TAIL.OPTIONS HANDLER\r\n */\r\n options.prototype = {\r\n /*\r\n | INTERNAL :: REPLACE TYPOs\r\n | @since 0.5.0 [0.3.0]\r\n */\r\n _r: function(state){\r\n return state.replace(\"disabled\", \"disable\").replace(\"enabled\", \"enable\")\r\n .replace(\"selected\", \"select\").replace(\"unselected\", \"unselect\");\r\n },\r\n\r\n /*\r\n | GET AN EXISTING OPTION\r\n | @since 0.5.7 [0.3.0]\r\n */\r\n get: function(key, grp){\r\n var g = \"getAttribute\";\r\n if(typeof(key) == \"object\" && key.key && key.group){\r\n grp = key.group || grp;\r\n key = key.key;\r\n } else if(key instanceof Element){\r\n if(key.tagName == \"OPTION\"){\r\n grp = key.parentElement.label || \"#\";\r\n key = key.value || key.innerText;\r\n } else if(key.hasAttribute(\"data-key\")){\r\n grp = key[g](\"data-group\") || key.parentElement[g](\"data-group\") || \"#\";\r\n key = key[g](\"data-key\");\r\n }\r\n } else if(typeof(key) != \"string\"){\r\n return false;\r\n }\r\n key = (/^[0-9]+$/.test(key))? \"_\" + key: key;\r\n return (grp in this.items)? this.items[grp][key]: false;\r\n },\r\n\r\n /*\r\n | SET AN EXISTING OPTION\r\n | @since 0.5.15 [0.3.0]\r\n */\r\n set: function(opt, rebuild){\r\n var key = opt.value || opt.innerText, grp = opt.parentElement.label || \"#\";\r\n if(!(grp in this.items)){\r\n this.items[grp] = {};\r\n this.groups[grp] = opt.parentElement;\r\n }\r\n if(key in this.items[grp]){\r\n return false;\r\n }\r\n var id = (/^[0-9]+$/.test(key))? \"_\" + key: key;\r\n\r\n // Validate Selection\r\n var con = this.self.con;\r\n if(con.multiple && this.selected.length >= con.multiLimit){\r\n opt.selected = false;\r\n }\r\n if(opt.selected && con.deselect && (!opt.hasAttribute(\"selected\") || con.multiLimit == 0)){\r\n opt.selected = false;\r\n opt.parentElement.selectedIndex = -1;\r\n }\r\n\r\n // Sanitize Description\r\n if(opt.hasAttribute(\"data-description\")){\r\n var span = create(\"SPAN\");\r\n span.innerHTML = opt.getAttribute(\"data-description\");\r\n opt.setAttribute(\"data-description\", span.innerHTML);\r\n }\r\n\r\n // Add Item\r\n this.items[grp][id] = {\r\n key: key,\r\n value: opt.text,\r\n description: opt.getAttribute(\"data-description\") || null,\r\n group: grp,\r\n option: opt,\r\n optgroup: (grp != \"#\")? this.groups[grp]: undefined,\r\n selected: opt.selected,\r\n disabled: opt.disabled,\r\n hidden: opt.hidden || false\r\n };\r\n this.length++;\r\n if(opt.selected){ this.select(this.items[grp][id]); }\r\n if(opt.disabled){ this.disable(this.items[grp][id]); }\r\n return (rebuild)? this.self.callback(this.items[grp][key], \"rebuild\"): true;\r\n },\r\n\r\n /*\r\n | CREATE A NEW OPTION\r\n | @since 0.5.13 [0.3.0]\r\n */\r\n add: function(key, value, group, selected, disabled, description, rebuild){\r\n if(key instanceof Object){\r\n for(var k in key){\r\n this.add(key[k].key || k, key[k].value, key[k].group, key[k].selected, key[k].disabled, key[k].description, false);\r\n }\r\n return this.self.query();\r\n }\r\n if(this.get(key, group)){\r\n return false;\r\n }\r\n\r\n // Check Group\r\n group = (typeof(group) == \"string\")? group: \"#\";\r\n if(group !== \"#\" && !(group in this.groups)){\r\n var optgroup = create(\"OPTGROUP\");\r\n optgroup.label = group;\r\n optgroup.setAttribute(\"data-select-optgroup\", \"add\");\r\n this.element.appendChild(optgroup);\r\n this.items[group] = {};\r\n this.groups[group] = optgroup;\r\n }\r\n\r\n // Validate Selection\r\n if(this.self.con.multiple && this.selected.length >= this.self.con.multiLimit){\r\n selected = false;\r\n }\r\n disabled = !!disabled;\r\n\r\n // Create Option\r\n var option = d.createElement(\"OPTION\");\r\n option.value = key;\r\n option.selected = selected;\r\n option.disabled = disabled;\r\n option.innerText = value;\r\n option.setAttribute(\"data-select-option\", \"add\");\r\n if(description && description.length > 0){\r\n option.setAttribute(\"data-description\", description);\r\n }\r\n\r\n // Add Option and Return\r\n ((group == \"#\")? this.element: this.groups[group]).appendChild(option);\r\n return this.set(option, rebuild);\r\n },\r\n\r\n /*\r\n | MOVE AN EXISTING OPTION\r\n | @since 0.5.0 [0.5.0]\r\n */\r\n move: function(item, group, new_group, rebuild){\r\n if(!(item = this.get(item, group))){ return false; }\r\n\r\n // Create Group\r\n if(new_group !== \"#\" && !(new_group in this.groups)){\r\n var optgroup = create(\"OPTGROUP\");\r\n optgroup.label = new_group;\r\n this.element.appendChild(optgroup);\r\n this.items[new_group] = {};\r\n this.groups[new_group] = optgroup;\r\n this.groups[new_group].appendChild(item.option);\r\n }\r\n\r\n // Move To Group\r\n delete this.items[item.group][item.key];\r\n item.group = new_group;\r\n item.optgroup = this.groups[new_group] || undefined;\r\n this.items[new_group][item.key] = item;\r\n return (rebuild)? this.self.query(): true;\r\n },\r\n\r\n /*\r\n | REMOVE AN EXISTING OPTION\r\n | @since 0.5.7 [0.3.0]\r\n */\r\n remove: function(item, group, rebuild){\r\n if(!(item = this.get(item, group))){ return false; }\r\n if(item.selected){ this.unselect(item); }\r\n if(item.disabled){ this.enable(item); }\r\n\r\n // Remove Data\r\n item.option.parentElement.removeChild(item.option);\r\n var id = (/^[0-9]+$/.test(item.key))? \"_\" + item.key: item.key;\r\n delete this.items[item.group][id];\r\n this.length--;\r\n\r\n // Remove Optgroup\r\n if(Object.keys(this.items[item.group]).length === 0){\r\n delete this.items[item.group];\r\n delete this.groups[item.group];\r\n }\r\n return (rebuild)? this.self.query(): true;\r\n },\r\n\r\n /*\r\n | CHECK AN EXISTING OPTION\r\n | @since 0.5.0 [0.3.0]\r\n */\r\n is: function(state, key, group){\r\n var state = this._r(state), item = this.get(key, group);\r\n if(!item || [\"select\", \"unselect\", \"disable\", \"enable\"].indexOf(state) < 0){\r\n return null;\r\n }\r\n if(state == \"disable\" || state == \"enable\"){\r\n return (state == \"disable\")? item.disabled: !item.disabled;\r\n } else if(state == \"select\" || state == \"unselect\"){\r\n return (state == \"select\")? item.selected: !item.selected;\r\n }\r\n return false;\r\n },\r\n\r\n /*\r\n | INTERACT WITH AN OPTION\r\n | @since 0.5.3 [0.3.0]\r\n */\r\n handle: function(state, key, group, _force){\r\n var item = this.get(key, group), state = this._r(state);\r\n if(!item || [\"select\", \"unselect\", \"disable\", \"enable\"].indexOf(state) < 0){\r\n return null;\r\n }\r\n\r\n // Disable || Enable\r\n if(state == \"disable\" || state == \"enable\"){\r\n if(!(item.option in this.disabled) && state == \"disable\"){\r\n this.disabled.push(item.option);\r\n } else if((item.option in this.disabled) && state == \"enable\"){\r\n this.disabled.splice(this.disabled.indexOf(item.option), 1);\r\n }\r\n item.disabled = (state == \"disable\");\r\n item.option.disabled = (state == \"disable\");\r\n return this.self.callback.call(this.self, item, state);\r\n }\r\n\r\n // Select || Unselect\r\n var dis = (cHAS(this.self.select, \"disabled\") || item.disabled || item.option.disabled),\r\n lmt = (this.self.con.multiple && this.self.con.multiLimit <= this.selected.length),\r\n sgl = (!this.self.con.multiple && this.selected.indexOf(item.option) > 0),\r\n del = (this.self.con.multiLimit == 0 && this.self.con.deselect == true),\r\n uns = (!this.self.con.multiple && !this.self.con.deselect && _force !== true);\r\n if(state == \"select\"){\r\n if(dis || lmt || del || sgl){\r\n return false;\r\n }\r\n if(!this.self.con.multiple){\r\n for(var i in this.selected){\r\n this.unselect(this.selected[i], undefined, true);\r\n }\r\n }\r\n if(this.selected.indexOf(item.option) < 0){\r\n this.selected.push(item.option);\r\n }\r\n } else if(state == \"unselect\"){\r\n if(dis || uns){\r\n return false;\r\n }\r\n this.selected.splice(this.selected.indexOf(item.option), 1);\r\n }\r\n item.selected = (state == \"select\");\r\n item.option.selected = (state == \"select\");\r\n item.option[(state.length > 6? \"remove\": \"set\") + \"Attribute\"](\"selected\", \"selected\");\r\n return this.self.callback.call(this.self, item, state, _force);\r\n },\r\n enable: function(key, group){\r\n return this.handle(\"enable\", key, group, false);\r\n },\r\n disable: function(key, group){\r\n return this.handle(\"disable\", key, group, false);\r\n },\r\n select: function(key, group){\r\n return this.handle(\"select\", key, group, false);\r\n },\r\n unselect: function(key, group, _force){\r\n return this.handle(\"unselect\", key, group, _force);\r\n },\r\n toggle: function(item, group){\r\n if(!(item = this.get(item, group))){ return false; }\r\n return this.handle((item.selected? \"unselect\": \"select\"), item, group, false);\r\n },\r\n\r\n /*\r\n | INVERT CURRENT \r\n | @since 0.5.15 [0.3.0]\r\n */\r\n invert: function(state){\r\n state = this._r(state);\r\n if([\"enable\", \"disable\"].indexOf(state) >= 0){\r\n var invert = this.disabled, action = (state == \"enable\")? \"disable\": \"enable\";\r\n } else if([\"select\", \"unselect\"].indexOf(state) >= 0){\r\n var invert = this.selected, action = (state == \"select\")? \"unselect\": \"select\";\r\n }\r\n var convert = Array.prototype.filter.call(this, function(element){\r\n return !(element in invert);\r\n }), self = this;\r\n\r\n // Loop\r\n [].concat(invert).forEach(function(item){\r\n self.handle.call(self, action, item);\r\n });\r\n [].concat(convert).forEach(function(item){\r\n self.handle.call(self, state, item);\r\n });\r\n return true;\r\n },\r\n\r\n /*\r\n | SET ON ALL OPTIONs\r\n | @since 0.5.0 [0.5.0]\r\n */\r\n all: function(state, group){\r\n var self = this, list = this;\r\n if(group in this.items){\r\n list = Object.keys(this.items[group]);\r\n } else if([\"unselect\", \"enable\"].indexOf(state) >= 0){\r\n list = [].concat((state == \"unselect\")? this.selected: this.disabled);\r\n }\r\n Array.prototype.forEach.call(list, function(item){\r\n self.handle.call(self, state, item, group, false);\r\n });\r\n return true;\r\n },\r\n\r\n /*\r\n | SET FOR A BUNCH OF OPTIONs\r\n | @since 0.5.4 [0.5.3]\r\n */\r\n walk: function(state, items, args){\r\n if(items instanceof Array || items.length){\r\n for(var l = items.length, i = 0; i < l; i++){\r\n this.handle.apply(this, [state, items[i], null].concat(args));\r\n }\r\n } else if(items instanceof Object){\r\n var self = this;\r\n if(items.forEach){\r\n items.forEach(function(value){\r\n self.handle.apply(self, [state, value, null].concat(args));\r\n });\r\n } else {\r\n for(var key in items){\r\n if(typeof(items[key]) != \"string\" && typeof(items[key]) != \"number\" && !(items[key] instanceof Element)){\r\n continue;\r\n }\r\n this.handle.apply(this, [state, items[key], (key in this.items? key: null)]).concat(args);\r\n }\r\n }\r\n }\r\n return this;\r\n },\r\n\r\n /*\r\n | APPLY LINGUSTIC RULES\r\n | @since 0.5.13 [0.5.13]\r\n */\r\n applyLinguisticRules: function(search, casesensitive){\r\n var rules = this.self.con.linguisticRules, values = [];\r\n \r\n // Prepare Rules\r\n Object.keys(rules).forEach(function(key){ \r\n values.push(\"(\" + key + \"|[\" + rules[key] + \"])\");\r\n });\r\n if(casesensitive){\r\n values = values.concat(values.map(function(s){ return s.toUpperCase(); })); \r\n }\r\n\r\n return search.replace(new RegExp(values.join(\"|\"), (casesensitive)? \"g\": \"ig\"), function(m){\r\n return values[[].indexOf.call(arguments, m, 1) - 1];\r\n });\r\n },\r\n \r\n\r\n /*\r\n | FIND SOME OPTIONs - ARRAY EDITION\r\n | @since 0.5.15 [0.3.0]\r\n */\r\n find: function(search, config){\r\n var self = this, matches, has = {};\r\n \r\n // Get Config\r\n if(!config){\r\n config = this.self.con.searchConfig;\r\n }\r\n\r\n // Config Callback\r\n if(typeof config === \"function\"){\r\n matches = config.bind(this, search);\r\n }\r\n\r\n // Config Handler\r\n else {\r\n config = (config instanceof Array)? config: [config];\r\n config.forEach(function(c){\r\n if(typeof(c) === \"string\"){ has[c] = true; }\r\n });\r\n has.any = (!has.any)? has.attributes && has.value: has.any;\r\n \r\n // Cleanup & Prepare\r\n if(!has.regex || has.text){\r\n search = search.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\r\n }\r\n if(!has.exactglyphes){\r\n search = this.self.options.applyLinguisticRules(search, has.case);\r\n }\r\n if(has.word){\r\n search = '\\\\b' + search + '\\\\b';\r\n }\r\n\r\n // Search\r\n var regex = new RegExp(search, (!has.case)? \"mi\": \"m\"),\r\n sfunc = function(opt){ return regex.test(opt.text || opt.value); };\r\n \r\n // Handle\r\n if(has.any){\r\n matches = function(opt){ return sfunc(opt) || [].some.call(opt.attributes, sfunc); };\r\n } else if(has.attributes){\r\n matches = function(opt){ return [].some.call(opt.attributes, sfunc); };\r\n } else {\r\n matches = sfunc;\r\n }\r\n\r\n if(!this.self.con.searchDisabled){\r\n var temp = matches;\r\n matches = function(opt){ return !opt.disabled && temp(opt); };\r\n }\r\n }\r\n\r\n // Hammer Time\r\n return [].filter.call(this.self.e.options, matches).map(function(opt){\r\n return opt.hidden? false: self.get(opt) \r\n });\r\n },\r\n\r\n /*\r\n | FIND SOME OPTIONs - WALKER EDITION\r\n | @since 0.5.5 [0.3.0]\r\n */\r\n finder: function(search, config){\r\n if(this._finderLoop === undefined){\r\n this._finderLoop = this.find(search, config);\r\n }\r\n var item;\r\n while((item = this._finderLoop.shift()) !== undefined){\r\n return item;\r\n }\r\n delete this._finderLoop;\r\n return false;\r\n },\r\n\r\n /*\r\n | NEW OPTIONS WALKER\r\n | @since 0.5.15 [0.4.0]\r\n */\r\n walker: function(orderi, orderg){\r\n if(typeof(this._inLoop) != \"undefined\" && this._inLoop){\r\n if(this._inItems.length > 0){\r\n do {\r\n var temp = this.items[this._inGroup][this._inItems.shift()];\r\n } while(temp.hidden === true);\r\n return temp;\r\n }\r\n\r\n // Sort Items\r\n if(this._inGroups.length > 0){\r\n while(this._inGroups.length > 0){\r\n var group = this._inGroups.shift();\r\n if(!(group in this.items)){\r\n return false;\r\n }\r\n\r\n var keys = Object.keys(this.items[group]);\r\n if(keys.length > 0){\r\n break;\r\n }\r\n }\r\n if(orderi == \"ASC\"){\r\n keys.sort();\r\n } else if(orderi == \"DESC\"){\r\n keys.sort().reverse();\r\n } else if(typeof(orderi) == \"function\"){\r\n keys = orderi.call(this, keys);\r\n }\r\n this._inItems = keys;\r\n this._inGroup = group;\r\n return this.walker(null, null);\r\n }\r\n\r\n // Delete and Exit\r\n delete this._inLoop;\r\n delete this._inItems;\r\n delete this._inGroup;\r\n delete this._inGroups;\r\n return false;\r\n }\r\n\r\n // Sort Groups\r\n var groups = Object.keys(this.groups) || [];\r\n if(orderg == \"ASC\"){\r\n groups.sort();\r\n } else if(orderg == \"DESC\"){\r\n groups.sort().reverse();\r\n } else if(typeof(orderg) == \"function\"){\r\n groups = orderg.call(this, groups);\r\n }\r\n groups.unshift(\"#\");\r\n\r\n // Init Loop\r\n this._inLoop = true;\r\n this._inItems = [];\r\n this._inGroups = groups;\r\n return this.walker(orderi, null);\r\n }\r\n };\r\n\r\n // Return\r\n return select;\r\n}));\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import tailSelect from \"tail.select.js\";\r\n\r\nconst selectElement = document.getElementById(\"country-select\");\r\nconst presentationElement = document.getElementById(\"js-comparison\");\r\nconst placeHolder = document.getElementById(\"js-multiselect-placeholder\").value;\r\nconst loading = document.getElementById(\"js-loading\").value;\r\nconst singleCountryUrl = document.getElementById(\"js-multiselect-singlecountry\").value;\r\nconst multiCountryUrl = document.getElementById(\"js-multiselect-multicountry\").value;\r\nconst lang = document.getElementById(\"js-lang\").value;\r\n\r\nconst instance = new tailSelect(selectElement, {\r\n search: true,\r\n multiple: true,\r\n multiShowCount: false,\r\n multiContainer: true,\r\n placeholder: placeHolder,\r\n height: 266,\r\n});\r\n\r\n// Workaround to prevent an option being selected on page load\r\ninstance.options.selected.forEach(opt => instance.options.unselect(opt));\r\n\r\ndocument.getElementById('js-compare-countries').addEventListener('click', (e) => {\r\n e.preventDefault();\r\n updateSelections();\r\n});\r\n\r\nfunction updateSelections() {\r\n presentationElement.classList.remove('comparison--open');\r\n\r\n setTimeout(() => {\r\n const selectedItems = instance.options.selected.map((opt) => {\r\n return opt.value;\r\n });\r\n\r\n if (selectedItems.length < 1) {\r\n presentationElement.innerHTML = '';\r\n return;\r\n }\r\n\r\n if (selectedItems.length === 1) {\r\n fetchCountryData(singleCountryUrl, selectedItems);\r\n }\r\n\r\n if (selectedItems.length > 1) {\r\n fetchCountryData(multiCountryUrl, selectedItems);\r\n }\r\n\r\n presentationElement.classList.add('comparison--open');\r\n }, 200);\r\n}\r\n\r\nfunction fetchCountryData(url, selectedItems) {\r\n presentationElement.innerHTML = loading;\r\n\r\n const params = new URLSearchParams({\r\n countryPageIds: selectedItems.join(),\r\n lang: lang,\r\n });\r\n\r\n fetch(url + '?' + params)\r\n .then((response) => {\r\n if (!response.ok) {\r\n throw new Error();\r\n }\r\n return response.text();\r\n })\r\n .then((data) => {\r\n presentationElement.innerHTML = data;\r\n })\r\n .catch(() => {\r\n presentationElement.innerHTML = 'An error occured';\r\n });\r\n}"],"names":["root","window","w","d","document","cHAS","el","name","classList","contains","cADD","add","undefined","cREM","remove","trigger","event","opt","CustomEvent","ev","createEvent","initCustomEvent","bubbles","cancelable","detail","dispatchEvent","clone","obj","rep","Object","assign","constructor","key","create","tag","classes","r","createElement","className","join","options","select","config","querySelectorAll","NodeList","HTMLCollection","Array","_r","l","length","i","push","Element","this","inst","getAttribute","test","JSON","parse","replace","placeholder","fb1","fb2","multiple","disabled","width","offsetWidth","sourceBind","sourceHide","multiLimit","Infinity","e","id","count","con","defaults","events","init","bind","animate","classNames","csvOutput","csvSeparator","descriptions","deselect","height","hideDisabled","hideSelected","items","locale","linguisticRules","multiPinSelected","multiContainer","multiShowCount","multiShowLimit","multiSelectAll","multiSelectGroup","openAbove","search","searchConfig","searchFocus","searchMarked","searchMinLength","searchDisabled","sortItems","sortGroups","startOpen","stayOpen","cbComplete","cbEmpty","cbLoopItem","cbLoopGroup","strings","en","all","none","empty","emptySearch","limit","placeholderMulti","modify","string","register","object","prototype","_e","def","__","call","self","regexp","c","split","_init","_query","label","dropdown","csvInput","setAttribute","style","isNaN","parseFloat","addEventListener","toggle","appendChild","parseInt","maxHeight","innerHTML","children","query","value","type","removeAttribute","querySelector","container","set","group","selected","description","nextElementSibling","parentElement","insertBefore","display","visibility","visibiltiy","open","options_initial","init_selected","idx","inner","temp","tmp","keyCode","which","activeElement","indexOf","preventDefault","stopPropagation","unselect","close","tagName","pos","top","offsetTop","offsetHeight","scrollTop","Math","max","targets","target","selectedIndex","u","concat","s","filter","item","splice","walk","callback","state","_force","rsel","element","update","args","arguments","pass","map","forEach","cb","apply","calc","cloneNode","cssText","clientHeight","removeChild","getBoundingClientRect","bottom","innerHeight","view","min","conf","tp","ul","li","a1","a2","g","func","cbGroup","cbItem","hasAttribute","innerText","data","updateCSV","updateLabel","grp","optgroup","title","option","applyLinguisticRules","RegExp","updateContainer","updatePin","len","hndl","prev","index","found","final","overflow","focus","zIndex","h","m","setTimeout","removeProperty","handles","reload","reset","rebuild","k","enable","disable","on","parent","groups","get","span","text","hidden","move","new_group","keys","is","handle","dis","lmt","sgl","del","uns","invert","action","convert","list","casesensitive","rules","values","toUpperCase","find","matches","has","any","attributes","regex","exactglyphes","case","word","sfunc","some","finder","_finderLoop","shift","walker","orderi","orderg","_inLoop","_inItems","_inGroup","_inGroups","sort","reverse","unshift","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","n","getter","__esModule","a","definition","o","defineProperty","enumerable","prop","hasOwnProperty","selectElement","getElementById","presentationElement","placeHolder","loading","singleCountryUrl","multiCountryUrl","lang","instance","fetchCountryData","url","selectedItems","params","URLSearchParams","countryPageIds","fetch","then","response","ok","Error","catch"],"sourceRoot":""}