1(()=>{var I=Object.create;var T=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var U=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty;var $=(d,h)=>()=>(h||d((h={exports:{}}).exports,h),h.exports);var _=(d,h,g,O)=>{if(h&&typeof h=="object"||typeof h=="function")for(let w of R(h))!q.call(d,w)&&w!==g&&T(d,w,{get:()=>h[w],enumerable:!(O=F(h,w))||O.enumerable});return d};var z=(d,h,g)=>(g=d!=null?I(U(d)):{},_(h||!d||!d.__esModule?T(g,"default",{value:d,enumerable:!0}):g,d));var D=$((x,E)=>{(function(d,h){typeof x=="object"&&typeof E<"u"?E.exports=h():typeof define=="function"&&define.amd?define(h):(d=typeof globalThis<"u"?globalThis:d||self,d.SlimSelect=h())})(x,function(){"use strict";class d{constructor(e){e||(e={}),this.main=e.main||"ss-main",this.placeholder=e.placeholder||"ss-placeholder",this.values=e.values||"ss-values",this.single=e.single||"ss-single",this.max=e.max||"ss-max",this.value=e.value||"ss-value",this.valueText=e.valueText||"ss-value-text",this.valueDelete=e.valueDelete||"ss-value-delete",this.valueOut=e.valueOut||"ss-value-out",this.deselect=e.deselect||"ss-deselect",this.deselectPath=e.deselectPath||"M10,10 L90,90 M10,90 L90,10",this.arrow=e.arrow||"ss-arrow",this.arrowClose=e.arrowClose||"M10,30 L50,70 L90,30",this.arrowOpen=e.arrowOpen||"M10,70 L50,30 L90,70",this.content=e.content||"ss-content",this.openAbove=e.openAbove||"ss-open-above",this.openBelow=e.openBelow||"ss-open-below",this.search=e.search||"ss-search",this.searchHighlighter=e.searchHighlighter||"ss-search-highlight",this.searching=e.searching||"ss-searching",this.addable=e.addable||"ss-addable",this.addablePath=e.addablePath||"M50,10 L50,90 M10,50 L90,50",this.list=e.list||"ss-list",this.optgroup=e.optgroup||"ss-optgroup",this.optgroupLabel=e.optgroupLabel||"ss-optgroup-label",this.optgroupLabelText=e.optgroupLabelText||"ss-optgroup-label-text",this.optgroupActions=e.optgroupActions||"ss-optgroup-actions",this.optgroupSelectAll=e.optgroupSelectAll||"ss-selectall",this.optgroupSelectAllBox=e.optgroupSelectAllBox||"M60,10 L10,10 L10,90 L90,90 L90,50",this.optgroupSelectAllCheck=e.optgroupSelectAllCheck||"M30,45 L50,70 L90,10",this.optgroupClosable=e.optgroupClosable||"ss-closable",this.option=e.option||"ss-option",this.optionDelete=e.optionDelete||"M10,10 L90,90 M10,90 L90,10",this.highlighted=e.highlighted||"ss-highlighted",this.open=e.open||"ss-open",this.close=e.close||"ss-close",this.selected=e.selected||"ss-selected",this.error=e.error||"ss-error",this.disabled=e.disabled||"ss-disabled",this.hide=e.hide||"ss-hide"}}function h(){return Math.random().toString(36).substring(2,10)}function g(p,e){function t(i,l){return l&&i&&i.classList&&i.classList.contains(l)||l&&i&&i.dataset&&i.dataset.id&&i.dataset.id===e?i:null}function s(i,l){return!i||i===document?null:t(i,l)?i:s(i.parentNode,l)}return t(p,e)||s(p,e)}function O(p,e=50,t=!1){let s;return function(...i){let l=self,a=()=>{s=null,t||p.apply(l,i)},n=t&&!s;clearTimeout(s),s=setTimeout(a,e),n&&p.apply(l,i)}}function w(p,e){return JSON.stringify(p)===JSON.stringify(e)}function k(p){let e=p.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,t=>"-"+t.toLowerCase());return p[0]===p[0].toUpperCase()?e.substring(1):e}class b{constructor(e){if(this.id=!e.id||e.id===""?h():e.id,this.label=e.label||"",this.selectAll=e.selectAll===void 0?!1:e.selectAll,this.selectAllText=e.selectAllText||"Select All",this.closable=e.closable||"off",this.options=[],e.options)for(let t of e.options)this.options.push(new f(t))}}class f{constructor(e){this.id=!e.id||e.id===""?h():e.id,this.value=e.value===void 0?e.text:e.value,this.text=e.text||"",this.html=e.html||"",this.selected=e.selected!==void 0?e.selected:!1,this.display=e.display!==void 0?e.display:!0,this.disabled=e.disabled!==void 0?e.disabled:!1,this.mandatory=e.mandatory!==void 0?e.mandatory:!1,this.placeholder=e.placeholder!==void 0?e.placeholder:!1,this.class=e.class||"",this.style=e.style||"",this.data=e.data||{}}}class P{constructor(e,t){this.selectType="single",this.data=[],this.selectedOrder=[],this.selectType=e,this.setData(t)}validateDataArray(e){if(!Array.isArray(e))return new Error("Data must be an array");for(let t of e)if(t instanceof b||"label"in t){if(!("label"in t))return new Error("Optgroup must have a label");if("options"in t&&t.options)for(let s of t.options){let i=this.validateOption(s);if(i)return i}}else if(t instanceof f||"text"in t){let s=this.validateOption(t);
1if(s)return s}else return new Error("Data object must be a valid optgroup or option");return null}validateOption(e){return"text"in e?null:new Error("Option must have a text")}partialToFullData(e){let t=[];return e.forEach(s=>{if(s instanceof b||"label"in s){let i=[];"options"in s&&s.options&&s.options.forEach(l=>{i.push(new f(l))}),i.length>0&&t.push(new b(s))}(s instanceof f||"text"in s)&&t.push(new f(s))}),t}setData(e){this.data=this.partialToFullData(e),this.selectType==="single"&&this.setSelectedBy("id",this.getSelected())}getData(){return this.filter(null,!0)}getDataOptions(){return this.filter(null,!1)}addOption(e,t=!1){if(t){let s=[new f(e)];this.setData(s.concat(this.getData()))}else this.setData(this.getData().concat(new f(e)))}setSelectedBy(e,t){let s=null,i=!1,l=[];for(let n of this.data){if(n instanceof b)for(let o of n.options)s||(s=o),o.selected=i?!1:t.includes(o[e]),o.selected&&(l.push(o),this.selectType==="single"&&(i=!0));n instanceof f&&(s||(s=n),n.selected=i?!1:t.includes(n[e]),n.selected&&(l.push(n),this.selectType==="single"&&(i=!0)))}this.selectType==="single"&&s&&!i&&(s.selected=!0,l.push(s));let a=t.map(n=>{var o;return((o=l.find(r=>r[e]===n))===null||o===void 0?void 0:o.id)||""});this.selectedOrder=a}getSelected(){return this.getSelectedOptions().map(e=>e.id)}getSelectedValues(){return this.getSelectedOptions().map(e=>e.value)}getSelectedOptions(){return this.filter(e=>e.selected,!1)}getOptgroupByID(e){for(let t of this.data)if(t instanceof b&&t.id===e)return t;return null}getOptionByID(e){let t=this.filter(s=>s.id===e,!1);return t.length?t[0]:null}getSelectType(){return this.selectType}getFirstOption(){let e=null;for(let t of this.data)if(t instanceof b?e=t.options[0]:t instanceof f&&(e=t),e)break;return e}search(e,t){return e=e.trim(),e===""?this.getData():this.filter(s=>t(s,e),!0)}filter(e,t){let s=[];return this.data.forEach(i=>{if(i instanceof b){let l=[];if(i.options.forEach(a=>{(!e||e(a))&&(t?l.push(new f(a)):s.push(new f(a)))}),l.length>0){let a=new b(i);a.options=l,s.push(a)}}i instanceof f&&(!e||e(i))&&s.push(new f(i))}),s}selectedOrderOptions(e){let t=[];return this.selectedOrder.forEach(s=>{let i=e.find(l=>l.id===s);i&&t.push(i)}),e.forEach(s=>{let i=!1;t.forEach(l=>{if(s.id===l.id){i=!0;return}}),i||t.push(s)}),t}}class N{constructor(e,t,s,i){this.store=s,this.settings=e,this.classes=t,this.callbacks=i,this.main=this.mainDiv(),this.content=this.contentDiv(),this.updateClassStyles(),this.updateAriaAttributes(),this.settings.contentLocation&&this.settings.contentLocation.appendChild(this.content.main)}enable(){this.main.main.classList.remove(this.classes.disabled),this.content.search.input.disabled=!1}disable(){this.main.main.classList.add(this.classes.disabled),this.content.search.input.disabled=!0}open(){this.main.arrow.path.setAttribute("d",this.classes.arrowOpen),this.main.main.classList.add(this.settings.openPosition==="up"?this.classes.openAbove:this.classes.openBelow),this.main.main.setAttribute("aria-expanded","true"),this.moveContent();let e=this.store.getSelectedOptions();if(e.length){let t=e[e.length-1].id,s=this.content.list.querySelector('[data-id="'+t+'"]');s&&this.ensureElementInView(this.content.list,s)}}close(){this.main.main.classList.remove(this.classes.openAbove),this.main.main.classList.remove(this.classes.openBelow),this.main.main.setAttribute("aria-expanded","false"),this.content.main.classList.remove(this.classes.openAbove),this.content.main.classList.remove(this.classes.openBelow),this.main.arrow.path.setAttribute("d",this.classes.arrowClose)}updateClassStyles(){if(this.main.main.className="",this.main.main.removeAttribute("style"),this.content.main.className="",this.content.main.removeAttribute("style"),this.main.main.classList.add(this.classes.main),this.content.main.classList.add(this.classes.content),this.settings.style!==""&&(this.main.main.style.cssText=this.settings.style,this.content.main.style.cssText=this.settings.style),this.settings.class.length)for(let e of this.settings.class)e.trim()!==""&&(this.main.main.classList.add(e.trim()),this.content.main.classList.add(e.trim()));(this.settings.contentPosition==="relative"||this.settings.contentPosition==="fixed")&&this.content.main.classList.add("ss-"+this.settings.contentPosition)}updateAriaAttributes(){this.main.main.role="combobox",this.main.main.setAttribute("aria-haspopup","listbox"),this.main.main.setAttribute("aria-controls",this.content.main.id),this.main.main.setAttribute("aria-expanded","fal
1se"),this.content.main.setAttribute("role","listbox")}mainDiv(){var e;let t=document.createElement("div");t.dataset.id=this.settings.id,t.setAttribute("aria-label",this.settings.ariaLabel),t.tabIndex=0,t.onkeydown=c=>{switch(c.key){case"ArrowUp":case"ArrowDown":return this.callbacks.open(),c.key==="ArrowDown"?this.highlight("down"):this.highlight("up"),!1;case"Tab":return this.callbacks.close(),!0;case"Enter":case" ":this.callbacks.open();let u=this.content.list.querySelector("."+this.classes.highlighted);return u&&u.click(),!1;case"Escape":return this.callbacks.close(),!1}return c.key.length===1&&this.callbacks.open(),!0},t.onclick=c=>{this.settings.disabled||(this.settings.isOpen?this.callbacks.close():this.callbacks.open())};let s=document.createElement("div");s.classList.add(this.classes.values),t.appendChild(s);let i=document.createElement("div");i.classList.add(this.classes.deselect);let l=(e=this.store)===null||e===void 0?void 0:e.getSelectedOptions();!this.settings.allowDeselect||this.settings.isMultiple&&l&&l.length<=0?i.classList.add(this.classes.hide):i.classList.remove(this.classes.hide),i.onclick=c=>{if(c.stopPropagation(),this.settings.disabled)return;let u=!0,m=this.store.getSelectedOptions(),v=[];if(this.callbacks.beforeChange&&(u=this.callbacks.beforeChange(v,m)===!0),u){if(this.settings.isMultiple)this.callbacks.setSelected([],!1),this.updateDeselectAll();else{let C=this.store.getFirstOption(),L=C?C.id:"";this.callbacks.setSelected(L,!1)}this.settings.closeOnSelect&&this.callbacks.close(),this.callbacks.afterChange&&this.callbacks.afterChange(this.store.getSelectedOptions())}};let a=document.createElementNS("http://www.w3.org/2000/svg","svg");a.setAttribute("viewBox","0 0 100 100");let n=document.createElementNS("http://www.w3.org/2000/svg","path");n.setAttribute("d",this.classes.deselectPath),a.appendChild(n),i.appendChild(a),t.appendChild(i);let o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.classList.add(this.classes.arrow),o.setAttribute("viewBox","0 0 100 100");let r=document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d",this.classes.arrowClose),this.settings.alwaysOpen&&o.classList.add(this.classes.hide),o.appendChild(r),t.appendChild(o),{main:t,values:s,deselect:{main:i,svg:a,path:n},arrow:{main:o,path:r}}}mainFocus(e){e!=="click"&&this.main.main.focus({preventScroll:!0})}placeholder(){let e=this.store.filter(i=>i.placeholder,!1),t=this.settings.placeholderText;e.length&&(e[0].html!==""?t=e[0].html:e[0].text!==""&&(t=e[0].text));let s=document.createElement("div");return s.classList.add(this.classes.placeholder),s.innerHTML=t,s}renderValues(){if(!this.settings.isMultiple){this.renderSingleValue();return}this.renderMultipleValues(),this.updateDeselectAll()}renderSingleValue(){let e=this.store.filter(s=>s.selected&&!s.placeholder,!1),t=e.length>0?e[0]:null;if(!t)this.main.values.innerHTML=this.placeholder().outerHTML;else{let s=document.createElement("div");s.classList.add(this.classes.single),t.html?s.innerHTML=t.html:s.innerText=t.text,this.main.values.innerHTML=s.outerHTML}!this.settings.allowDeselect||!e.length?this.main.deselect.main.classList.add(this.classes.hide):this.main.deselect.main.classList.remove(this.classes.hide)}renderMultipleValues(){let e=this.main.values.childNodes,t=this.store.filter(i=>i.selected&&i.display,!1);if(t.length===0){this.main.values.innerHTML=this.placeholder().outerHTML;return}else{let i=this.main.values.querySelector("."+this.classes.placeholder);i&&i.remove()}if(t.length>this.settings.maxValuesShown){let i=document.createElement("div");i.classList.add(this.classes.max),i.textContent=this.settings.maxValuesMessage.replace("{number}",t.length.toString()),this.main.values.innerHTML=i.outerHTML;return}else{let i=this.main.values.querySelector("."+this.classes.max);i&&i.remove()}this.settings.keepOrder&&(t=this.store.selectedOrderOptions(t));let s=[];for(let i=0;i<e.length;i++){let l=e[i],a=l.getAttribute("data-id");a&&(t.filter(o=>o.id===a,!1).length||s.push(l))}for(let i of s)i.classList.add(this.classes.valueOut),setTimeout(()=>{this.main.values.hasChildNodes()&&this.main.values.contains(i)&&this.main.values.removeChild(i)},100);e=this.main.values.childNodes;for(let i=0;i<t.length;i++){let l=!0;for(let a=0;a<e.length;a++)t[i].id===String(e[a].dataset.id)&&(l=!1);l&&(this.settings.keepOrder?this.main.values.appendChild(this.multipleValue(t[i])):e.length===0?this.main.values.appendChild(this.multipleValue(t[i])):i===0?this.main.values.insertBefore(this.multipleValue(t[i]),e[i]):e[i-1].insertAdjacentElement("afterend",this.multipleValue(t[i])))}}multipleValue(e){let t=document.createElement("div");t.classList.add(this.classes.value),t.dataset.id=e.id;let s=document.createElement("div");if(s.classList.add(this.classes.valueText),s.textContent=e.text,t.appendChild(s),!e.mandatory){let i=document.createElement("div");i.classList.add(this.classes.valueDelete),i.onclick=n=>{if(n.preventDefault(),n.stopPropagation(),this.settings.disabled)return;let o=!0,r=this.store.getSelectedOptions(),c=r.filter(u=>u.selected&&u.id!==e.id,!0);if(!(this.settings.minSelected&&c.length<this.settings.minSelected)&&(this.callbacks.beforeChange&&(o=this.callbacks.beforeChange(c,r)===!0),o)){let u=[];for(let m of c){if(m instanceof b)for(let v of m.options)u.push(v.id);m instanceof f&&u.push(m.id)}this.callbacks.setSelected(u,!1),this.settings.closeOnSelect&&this.callbacks.close(),this.callbacks.afterChange&&this.callbacks.afterChange(c),this.updateDeselectAll()}};
1let l=document.createElementNS("http://www.w3.org/2000/svg","svg");l.setAttribute("viewBox","0 0 100 100");let a=document.createElementNS("http://www.w3.org/2000/svg","path");a.setAttribute("d",this.classes.optionDelete),l.appendChild(a),i.appendChild(l),t.appendChild(i)}return t}contentDiv(){let e=document.createElement("div");e.dataset.id=this.settings.id;let t=this.searchDiv();e.appendChild(t.main);let s=this.listDiv();return e.appendChild(s),{main:e,search:t,list:s}}moveContent(){if(this.settings.contentPosition==="relative"){this.moveContentBelow();return}if(this.settings.openPosition==="down"){this.moveContentBelow();return}else if(this.settings.openPosition==="up"){this.moveContentAbove();return}this.putContent()==="up"?this.moveContentAbove():this.moveContentBelow()}searchDiv(){let e=document.createElement("div"),t=document.createElement("input"),s=document.createElement("div");e.classList.add(this.classes.search);let i={main:e,input:t};if(this.settings.showSearch||(e.classList.add(this.classes.hide),t.readOnly=!0),t.type="search",t.placeholder=this.settings.searchPlaceholder,t.tabIndex=-1,t.setAttribute("aria-label",this.settings.searchPlaceholder),t.setAttribute("autocapitalize","off"),t.setAttribute("autocomplete","off"),t.setAttribute("autocorrect","off"),t.oninput=O(l=>{this.callbacks.search(l.target.value)},100),t.onkeydown=l=>{switch(l.key){case"ArrowUp":case"ArrowDown":return l.key==="ArrowDown"?this.highlight("down"):this.highlight("up"),!1;case"Tab":return this.callbacks.close(),!0;case"Escape":return this.callbacks.close(),!1;case" ":let a=this.content.list.querySelector("."+this.classes.highlighted);return a?(a.click(),!1):!0;case"Enter":if(this.callbacks.addable)return s.click(),!1;{let n=this.content.list.querySelector("."+this.classes.highlighted);if(n)return n.click(),!1}return!0}return!0},e.appendChild(t),this.callbacks.addable){s.classList.add(this.classes.addable);let l=document.createElementNS("http://www.w3.org/2000/svg","svg");l.setAttribute("viewBox","0 0 100 100");let a=document.createElementNS("http://www.w3.org/2000/svg","path");a.setAttribute("d",this.classes.addablePath),l.appendChild(a),s.appendChild(l),s.onclick=n=>{if(n.preventDefault(),n.stopPropagation(),!this.callbacks.addable)return;let o=this.content.search.input.value.trim();if(o===""){this.content.search.input.focus();return}let r=u=>{let m=new f(u);if(this.callbacks.addOption(m),this.settings.isMultiple){let v=this.store.getSelected();v.push(m.id),this.callbacks.setSelected(v,!0)}else this.callbacks.setSelected([m.id],!0);this.callbacks.search(""),this.settings.closeOnSelect&&setTimeout(()=>{this.callbacks.close()},100)},c=this.callbacks.addable(o);c===!1||c===void 0||c===null||(c instanceof Promise?c.then(u=>{typeof u=="string"?r({text:u,value:u}):c instanceof Error?this.renderError(c.message):r(u)}):typeof c=="string"?r({text:c,value:c}):c instanceof Error?this.renderError(c.message):r(c))},e.appendChild(s),i.addable={main:s,svg:l,path:a}}return i}searchFocus(){this.content.search.input.focus()}getOptions(e=!1,t=!1,s=!1){let i="."+this.classes.option;return e&&(i+=":not(."+this.classes.placeholder+")"),t&&(i+=":not(."+this.classes.disabled+")"),s&&(i+=":not(."+this.classes.hide+")"),Array.from(this.content.list.querySelectorAll(i))}highlight(e){let t=this.getOptions(!0,!0,!0);if(t.length===0)return;if(t.length===1&&!t[0].classList.contains(this.classes.highlighted)){t[0].classList.add(this.classes.highlighted);return}let s=!1;for(let i of t)i.classList.contains(this.classes.highlighted)&&(s=!0);if(!s){for(let i of t)if(i.classList.contains(this.classes.selected)){i.classList.add(this.classes.highlighted);break}}for(let i=0;i<t.length;i++)if(t[i].classList.contains(this.classes.highlighted)){let l=t[i];l.classList.remove(this.classes.highlighted);let a=l.parentElement;if(a&&a.classList.contains(this.classes.open)){let r=a.querySelector("."+this.classes.optgroupLabel);r&&r.click()}let n=t[e==="down"?i+1<t.length?i+1:0:i-1>=0?i-1:t.length-1];n.classList.add(this.classes.highlighted),this.ensureElementInView(this.content.list,n);let o=n.parentElement;if(o&&o.classList.contains(this.classes.close)){let r=o.querySelector("."+this.classes.optgroupLabel);r&&r.click()}return}t[e==="down"?0:t.length-1].classList.add(this.classes.highlighted),this.ensureElementInView(this.content.list,t[e==="down"?0:t.length-1])}listDiv(){let e=document.createElement("div");return e.classList.add(this.classes.list),e}renderError(e){this.content.list.innerHTML="";let t=document.createElement("div");t.classList.add(this.classes.error),t.textContent=e,this.content.list.appendChild(t)}renderSearching(){this.content.list.innerHTML="";let e=document.createElement("div");e.classList.add(this.classes.searching),e.textContent=this.settings.searchingText,this.content.list.appendChild(e)}renderOptions(e){if(this.content.list.innerHTML="",e.length===0){let t=document.createElement("div");
1t.classList.add(this.classes.search),this.callbacks.addable?t.innerHTML=this.settings.addableText.replace("{value}",this.content.search.input.value):t.innerHTML=this.settings.searchText,this.content.list.appendChild(t);return}this.settings.allowDeselect&&!this.settings.isMultiple&&(this.store.filter(s=>s.placeholder,!1).length||this.store.addOption(new f({text:"",value:"",selected:!1,placeholder:!0}),!0));for(let t of e){if(t instanceof b){let s=document.createElement("div");s.classList.add(this.classes.optgroup);let i=document.createElement("div");i.classList.add(this.classes.optgroupLabel),s.appendChild(i);let l=document.createElement("div");l.classList.add(this.classes.optgroupLabelText),l.textContent=t.label,i.appendChild(l);let a=document.createElement("div");if(a.classList.add(this.classes.optgroupActions),i.appendChild(a),this.settings.isMultiple&&t.selectAll){let n=document.createElement("div");n.classList.add(this.classes.optgroupSelectAll);let o=!0;for(let v of t.options)if(!v.selected){o=!1;break}o&&n.classList.add(this.classes.selected);let r=document.createElement("span");r.textContent=t.selectAllText,n.appendChild(r);let c=document.createElementNS("http://www.w3.org/2000/svg","svg");c.setAttribute("viewBox","0 0 100 100"),n.appendChild(c);let u=document.createElementNS("http://www.w3.org/2000/svg","path");u.setAttribute("d",this.classes.optgroupSelectAllBox),c.appendChild(u);let m=document.createElementNS("http://www.w3.org/2000/svg","path");m.setAttribute("d",this.classes.optgroupSelectAllCheck),c.appendChild(m),n.addEventListener("click",v=>{v.preventDefault(),v.stopPropagation();let C=this.store.getSelected();if(o){let L=C.filter(S=>{for(let H of t.options)if(S===H.id)return!1;return!0});this.callbacks.setSelected(L,!0);return}else{let L=C.concat(t.options.map(S=>S.id));for(let S of t.options)this.store.getOptionByID(S.id)||this.callbacks.addOption(S);this.callbacks.setSelected(L,!0);return}}),a.appendChild(n)}if(t.closable!=="off"){let n=document.createElement("div");n.classList.add(this.classes.optgroupClosable);let o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("viewBox","0 0 100 100"),o.classList.add(this.classes.arrow),n.appendChild(o);let r=document.createElementNS("http://www.w3.org/2000/svg","path");o.appendChild(r),t.options.some(c=>c.selected)||this.content.search.input.value.trim()!==""?(n.classList.add(this.classes.open),r.setAttribute("d",this.classes.arrowOpen)):t.closable==="open"?(s.classList.add(this.classes.open),r.setAttribute("d",this.classes.arrowOpen)):t.closable==="close"&&(s.classList.add(this.classes.close),r.setAttribute("d",this.classes.arrowClose)),i.addEventListener("click",c=>{c.preventDefault(),c.stopPropagation(),s.classList.contains(this.classes.close)?(s.classList.remove(this.classes.close),s.classList.add(this.classes.open),r.setAttribute("d",this.classes.arrowOpen)):(s.classList.remove(this.classes.open),s.classList.add(this.classes.close),r.setAttribute("d",this.classes.arrowClose))}),a.appendChild(n)}s.appendChild(i);for(let n of t.options)s.appendChild(this.option(n));this.content.list.appendChild(s)}t instanceof f&&this.content.list.appendChild(this.option(t))}}option(e){if(e.placeholder){let s=document.createElement("div");return s.classList.add(this.classes.option),s.classList.add(this.classes.hide),s}let t=document.createElement("div");return t.dataset.id=e.id,t.classList.add(this.classes.option),t.setAttribute("role","option"),e.class&&e.class.split(" ").forEach(s=>{t.classList.add(s)}),e.style&&(t.style.cssText=e.style),this.settings.searchHighlight&&this.content.search.input.value.trim()!==""?t.innerHTML=this.highlightText(e.html!==""?e.html:e.text,this.content.search.input.value,this.classes.searchHighlighter):e.html!==""?t.innerHTML=e.html:t.textContent=e.text,this.settings.showOptionTooltips&&t.textContent&&t.setAttribute("title",t.textContent),e.display||t.classList.add(this.classes.hide),e.disabled&&t.classList.add(this.classes.disabled),e.selected&&this.settings.hideSelected&&t.classList.add(this.classes.hide),e.selected?(t.classList.add(this.classes.selected),t.setAttribute("aria-selected","true"),this.main.main.setAttribute("aria-activedescendant",t.id)):(t.classList.remove(this.classes.selected),t.setAttribute("aria-selected","false")),t.addEventListener("click",
1s=>{s.preventDefault(),s.stopPropagation();let i=this.store.getSelected(),l=s.currentTarget,a=String(l.dataset.id);if(e.disabled||e.selected&&!this.settings.allowDeselect||this.settings.isMultiple&&this.settings.maxSelected<=i.length&&!e.selected||this.settings.isMultiple&&this.settings.minSelected>=i.length&&e.selected)return;let n=!1,o=this.store.getSelectedOptions(),r=[];this.settings.isMultiple&&(e.selected?r=o.filter(c=>c.id!==a):r=o.concat(e)),this.settings.isMultiple||(e.selected?r=[]:r=[e]),this.callbacks.beforeChange||(n=!0),this.callbacks.beforeChange&&(this.callbacks.beforeChange(r,o)===!1?n=!1:n=!0),n&&(this.store.getOptionByID(a)||this.callbacks.addOption(e),this.callbacks.setSelected(r.map(c=>c.id),!1),this.settings.closeOnSelect&&this.callbacks.close(),this.callbacks.afterChange&&this.callbacks.afterChange(r))}),t}destroy(){this.main.main.remove(),this.content.main.remove()}highlightText(e,t,s){let i=e,l=new RegExp("(?![^<]*>)("+t.trim()+")(?![^<]*>[^<>]*</)","i");if(!e.match(l))return e;let a=e.match(l).index,n=a+e.match(l)[0].toString().length,o=e.substring(a,n);return i=i.replace(l,`<mark class="${s}">${o}</mark>`),i}moveContentAbove(){let e=this.main.main.offsetHeight,t=this.content.main.offsetHeight;this.main.main.classList.remove(this.classes.openBelow),this.main.main.classList.add(this.classes.openAbove),this.content.main.classList.remove(this.classes.openBelow),this.content.main.classList.add(this.classes.openAbove);let s=this.main.main.getBoundingClientRect();this.content.main.style.margin="-"+(e+t-1)+"px 0px 0px 0px",this.content.main.style.top=s.top+s.height+(this.settings.contentPosition==="fixed"?0:window.scrollY)+"px",this.content.main.style.left=s.left+(this.settings.contentPosition==="fixed"?0:window.scrollX)+"px",this.content.main.style.width=s.width+"px"}moveContentBelow(){this.main.main.classList.remove(this.classes.openAbove),this.main.main.classList.add(this.classes.openBelow),this.content.main.classList.remove(this.classes.openAbove),this.content.main.classList.add(this.classes.openBelow);let e=this.main.main.getBoundingClientRect();this.content.main.style.margin="-1px 0px 0px 0px",this.settings.contentPosition!=="relative"&&(this.content.main.style.top=e.top+e.height+(this.settings.contentPosition==="fixed"?0:window.scrollY)+"px",this.content.main.style.left=e.left+(this.settings.contentPosition==="fixed"?0:window.scrollX)+"px",this.content.main.style.width=e.width+"px")}ensureElementInView(e,t){let s=e.scrollTop+e.offsetTop,i=s+e.clientHeight,l=t.offsetTop,a=l+t.clientHeight;l<s?e.scrollTop-=s-l:a>i&&(e.scrollTop+=a-i)}putContent(){let e=this.main.main.offsetHeight,t=this.main.main.getBoundingClientRect(),s=this.content.main.offsetHeight;return window.innerHeight-(t.top+e)<=s&&t.top>s?"up":"down"}updateDeselectAll(){if(!this.store||!this.settings)return;let e=this.store.getSelectedOptions(),t=e&&e.length>0,s=this.settings.isMultiple,i=this.settings.allowDeselect,l=this.main.deselect.main,a=this.classes.hide;i&&!(s&&!t)?l.classList.remove(a):l.classList.add(a)}}class M{constructor(e){this.listen=!1,this.observer=null,this.select=e,this.valueChange=this.valueChange.bind(this),this.select.addEventListener("change",this.valueChange,{passive:!0}),this.observer=new MutationObserver(this.observeCall.bind(this)),this.changeListen(!0)}enable(){this.select.disabled=!1}disable(){this.select.disabled=!0}hideUI(){this.select.tabIndex=-1,this.select.style.display="none",this.select.setAttribute("aria-hidden","true")}showUI(){this.select.removeAttribute("tabindex"),this.select.style.display="",this.select.removeAttribute("aria-hidden")}changeListen(e){this.listen=e,e&&this.observer&&this.observer.observe(this.select,{subtree:!0,childList:!0,attributes:!0}),e||this.observer&&this.observer.disconnect()}valueChange(e){return this.listen&&this.onValueChange&&this.onValueChange(this.getSelectedOptions()),!0}observeCall(e){if(!this.listen)return;let t=!1,s=!1,i=!1;for(let l of e){if(l.target===this.select&&(l.attributeName==="disabled"&&(s=!0),l.attributeName==="class"&&(t=!0),l.type==="childList")){for(let a of l.addedNodes)if(a.nodeName==="OPTION"&&a.value===this.select.value){this.select.dispatchEvent(new Event("change"));break}i=!0}
1(l.target.nodeName==="OPTGROUP"||l.target.nodeName==="OPTION")&&(i=!0)}t&&this.onClassChange&&this.onClassChange(this.select.className.split(" ")),s&&this.onDisabledChange&&(this.changeListen(!1),this.onDisabledChange(this.select.disabled),this.changeListen(!0)),i&&this.onOptionsChange&&(this.changeListen(!1),this.onOptionsChange(this.getData()),this.changeListen(!0))}getData(){let e=[],t=this.select.childNodes;for(let s of t)s.nodeName==="OPTGROUP"&&e.push(this.getDataFromOptgroup(s)),s.nodeName==="OPTION"&&e.push(this.getDataFromOption(s));return e}getDataFromOptgroup(e){let t={id:e.id,label:e.label,selectAll:e.dataset?e.dataset.selectall==="true":!1,selectAllText:e.dataset?e.dataset.selectalltext:"Select all",closable:e.dataset?e.dataset.closable:"off",options:[]},s=e.childNodes;for(let i of s)i.nodeName==="OPTION"&&t.options.push(this.getDataFromOption(i));return t}getDataFromOption(e){return{id:e.id,value:e.value,text:e.text,html:e.dataset&&e.dataset.html?e.dataset.html:"",selected:e.selected,display:e.style.display!=="none",disabled:e.disabled,mandatory:e.dataset?e.dataset.mandatory==="true":!1,placeholder:e.dataset.placeholder==="true",class:e.className,style:e.style.cssText,data:e.dataset}}getSelectedOptions(){let e=[],t=this.select.childNodes;for(let s of t){if(s.nodeName==="OPTGROUP"){let i=s.childNodes;for(let l of i)if(l.nodeName==="OPTION"){let a=l;a.selected&&e.push(this.getDataFromOption(a))}}if(s.nodeName==="OPTION"){let i=s;i.selected&&e.push(this.getDataFromOption(i))}}return e}getSelectedValues(){return this.getSelectedOptions().map(e=>e.value)}setSelected(e){this.changeListen(!1);let t=this.select.childNodes;for(let s of t){if(s.nodeName==="OPTGROUP"){let l=s.childNodes;for(let a of l)if(a.nodeName==="OPTION"){let n=a;n.selected=e.includes(n.id)}}if(s.nodeName==="OPTION"){let i=s;i.selected=e.includes(i.id)}}this.changeListen(!0)}setSelectedByValue(e){this.changeListen(!1);let t=this.select.childNodes;for(let s of t){if(s.nodeName==="OPTGROUP"){let l=s.childNodes;for(let a of l)if(a.nodeName==="OPTION"){let n=a;n.selected=e.includes(n.value)}}if(s.nodeName==="OPTION"){let i=s;i.selected=e.includes(i.value)}}this.changeListen(!0)}updateSelect(e,t,s){this.changeListen(!1),e&&(this.select.dataset.id=e),t&&(this.select.style.cssText=t),s&&(this.select.className="",s.forEach(i=>{i.trim()!==""&&this.select.classList.add(i.trim())})),this.changeListen(!0)}updateOptions(e){this.changeListen(!1),this.select.innerHTML="";for(let t of e)t instanceof b&&this.select.appendChild(this.createOptgroup(t)),t instanceof f&&this.select.appendChild(this.createOption(t));this.select.dispatchEvent(new Event("change",{bubbles:!0})),this.changeListen(!0)}createOptgroup(e){let t=document.createElement("optgroup");if(t.id=e.id,t.label=e.label,e.selectAll&&(t.dataset.selectAll="true"),e.closable!=="off"&&(t.dataset.closable=e.closable),e.options)for(let s of e.options)t.appendChild(this.createOption(s));return t}createOption(e){let t=document.createElement("option");return t.id=e.id,t.value=e.value,t.textContent=e.text,e.html!==""&&t.setAttribute("data-html",e.html),e.selected&&(t.selected=e.selected),e.disabled&&(t.disabled=!0),e.display||(t.style.display="none"),e.placeholder&&t.setAttribute("data-placeholder","true"),e.mandatory&&t.setAttribute("data-mandatory","true"),e.class&&e.class.split(" ").forEach(s=>{t.classList.add(s)}),e.data&&typeof e.data=="object"&&Object.keys(e.data).forEach(s=>{t.setAttribute("data-"+k(s),e.data[s])}),t}destroy(){this.changeListen(!1),this.select.removeEventListener("change",this.valueChange),this.observer&&(this.observer.disconnect(),this.observer=null),delete this.select.dataset.id,this.showUI()}}class B{constructor(e){this.id="",this.style="",this.class=[],this.isMultiple=!1,this.isOpen=!1,this.isFullOpen=!1,this.intervalMove=null,e||(e={}),this.id="ss-"+h(),this.style=e.style||"",this.class=e.class||[],this.disabled=e.disabled!==void 0?e.disabled:!1,this.alwaysOpen=e.alwaysOpen!==void 0?e.alwaysOpen:!1,this.showSearch=e.showSearch!==void 0?e.showSearch:!0,this.focusSearch=e.focusSearch!==void 0?e.focusSearch:!0,this.ariaLabel=e.ariaLabel||"Combobox",this.searchPlaceholder=e.searchPlaceholder||"Search",this.searchText=e.searchText||"No Results",this.searchingText=e.searchingText||"Searching...",this.searchHighlight=e.searchHighlight!==void 0?e.searchHighlight:!1,this.closeOnSelect=e.closeOnSelect!==void 0?e.closeOnSelect:!0,this.contentLocation=e.contentLocation||document.body,this.contentPosition=e.contentPosition||"absolute",this.openPosition=e.openPosition||"auto",this.placeholderText=e.placeholderText!==void 0?e.placeholderText:"Select Value",this.allowDeselect=e.allowDeselect!==void 0?e.allowDeselect:!1,this.hideSelected=e.hide
1Selected!==void 0?e.hideSelected:!1,this.keepOrder=e.keepOrder!==void 0?e.keepOrder:!1,this.showOptionTooltips=e.showOptionTooltips!==void 0?e.showOptionTooltips:!1,this.minSelected=e.minSelected||0,this.maxSelected=e.maxSelected||1e3,this.timeoutDelay=e.timeoutDelay||200,this.maxValuesShown=e.maxValuesShown||20,this.maxValuesMessage=e.maxValuesMessage||"{number} selected",this.addableText=e.addableText||'Press "Enter" to add {value}'}}class V{constructor(e){var t;if(this.events={search:void 0,searchFilter:(n,o)=>n.text.toLowerCase().indexOf(o.toLowerCase())!==-1,addable:void 0,beforeChange:void 0,afterChange:void 0,beforeOpen:void 0,afterOpen:void 0,beforeClose:void 0,afterClose:void 0},this.windowResize=O(()=>{!this.settings.isOpen&&!this.settings.isFullOpen||this.render.moveContent()}),this.windowScroll=O(()=>{!this.settings.isOpen&&!this.settings.isFullOpen||this.render.moveContent()}),this.documentClick=n=>{this.settings.isOpen&&n.target&&!g(n.target,this.settings.id)&&this.close(n.type)},this.windowVisibilityChange=()=>{document.hidden&&this.close()},this.selectEl=typeof e.select=="string"?document.querySelector(e.select):e.select,!this.selectEl){e.events&&e.events.error&&e.events.error(new Error("Could not find select element"));return}if(this.selectEl.tagName!=="SELECT"){e.events&&e.events.error&&e.events.error(new Error("Element isnt of type select"));return}this.selectEl.dataset.ssid&&this.destroy(),this.settings=new B(e.settings),this.cssClasses=new d(e.cssClasses);let s=["afterChange","beforeOpen","afterOpen","beforeClose","afterClose"];for(let n in e.events)e.events.hasOwnProperty(n)&&(s.indexOf(n)!==-1?this.events[n]=O(e.events[n],100):this.events[n]=e.events[n]);this.settings.disabled=!((t=e.settings)===null||t===void 0)&&t.disabled?e.settings.disabled:this.selectEl.disabled,this.settings.isMultiple=this.selectEl.multiple,this.settings.style=this.selectEl.style.cssText,this.settings.class=this.selectEl.className.split(" "),this.select=new M(this.selectEl),this.select.updateSelect(this.settings.id,this.settings.style,this.settings.class),this.select.hideUI(),this.select.onValueChange=n=>{this.setSelected(n.map(o=>o.id))},this.select.onClassChange=n=>{this.settings.class=n,this.render.updateClassStyles()},this.select.onDisabledChange=n=>{n?this.disable():this.enable()},this.select.onOptionsChange=n=>{this.setData(n)},this.store=new P(this.settings.isMultiple?"multiple":"single",e.data?e.data:this.select.getData()),e.data&&this.select.updateOptions(this.store.getData());let i={open:this.open.bind(this),close:this.close.bind(this),addable:this.events.addable?this.events.addable:void 0,setSelected:this.setSelected.bind(this),addOption:this.addOption.bind(this),search:this.search.bind(this),beforeChange:this.events.beforeChange,afterChange:this.events.afterChange};this.render=new N(this.settings,this.cssClasses,this.store,i),this.render.renderValues(),this.render.renderOptions(this.store.getData());let l=this.selectEl.getAttribute("aria-label"),a=this.selectEl.getAttribute("aria-labelledby");l?this.render.main.main.setAttribute("aria-label",l):a&&this.render.main.main.setAttribute("aria-labelledby",a),this.selectEl.parentNode&&this.selectEl.parentNode.insertBefore(this.render.main.main,this.selectEl.nextSibling),window.addEventListener("resize",this.windowResize,!1),this.settings.openPosition==="auto"&&window.addEventListener("scroll",this.windowScroll,!1),document.addEventListener("visibilitychange",this.windowVisibilityChange),this.settings.disabled&&this.disable(),this.settings.alwaysOpen&&this.open(),this.selectEl.slim=this}enable(){this.settings.disabled=!1,this.select.enable(),this.render.enable()}disable(){this.settings.disabled=!0,this.select.disable(),this.render.disable()}getData(){return this.store.getData()}setData(e){let t=this.store.getSelected(),s=this.store.validateDataArray(e);if(s){this.events.error&&this.events.error(s);return}this.store.setData(e);let i=this.store.getData();this.select.updateOptions(i),this.render.renderValues(),this.render.renderOptions(i),this.events.afterChange&&!w(t,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}getSelected(){let e=this.store.getSelectedOptions();return this.settings.keepOrder&&(e=this.store.selectedOrderOptions(e)),e.map(t=>t.value)}setSelected(e,t=!0){let s=this.store.getSelected(),i=this.store.getDataOptions();e=Array.isArray(e)?e:[e];let l=[];for(let n of e){if(i.find(o=>o.id==n)){l.push(n);continue}for(let o of i.filter(r=>r.value==n))l.push(o.id)}this.store.setSelectedBy("id",l);let a=this.store.getData();this.select.updateOptions(a),this.render.renderValues(),this.render.content.search.input.value!==""?this.search(this.render.content.search.input.value):this.render.renderOptions(a),t&&this.events.afterChange&&!w(s,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}addOption(e){let t=this.store.getSelected();this.store.getDataOptions().some(i=>{var l;return i.value===((l=e.value)!==null&&l!==void 0?l:e.text)})||this.store.addOption(e);let s=this.store.getData();this.select.updateOptions(s),this.render.renderValues(),this.render.renderOptions(s),this.events.afterChange&&!w(t,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}open(){this.settings.disabled||this.settings.isOpen||(this.events.beforeOpen&&this.events.beforeOpen(),this.render.open(),this.settings.showSearch&&this.settings.focusSearch&&this.render.searchFocus(),this.settings.isOpen=!0,setTimeout(()=>{this.events.afterOpen&&this.events.afterOpen(),this.settings.isOpen&&(this.settings.isFullOpen=!0),document.addEventListener("click",this.documentClick)},this.settings.timeoutDelay),this.settings.contentPosition==="absolute"&&(this.settings.intervalMove&&clearInterval(this.settings.intervalMove),this.settings.intervalMove=setInterval(this.render.moveContent.bind(this.render),500)))}close(e=null){!this.settings.isOpen||this.settings.alwaysOpen||(this.events.beforeClose&&this.events.beforeClose(),this.render.close(),this.render.content.search.input.value!==""&&this.search(""),this.render.mainFocus(e),this.settings.isOpen=!1,this.settings.isFullOpen=!1,setTimeout(()=>{this.events.afterClose&&this.events.afterClose(),document.removeEventListener("click",this.documentClick)},this.settings.timeoutDelay),this.settings.intervalMove&&clearInterval(this.settings.intervalMove))}search(e){if(this.render.content.search.input.value!==e&&(this.render.content.search.input.value=e),!this.events.search){this.render.renderOptions(e===""?this.store.getData():this.store.search(e,this.events.searchFilter));return}this.render.renderSearching();let t=this.events.search(e,this.store.getSelectedOptions());if(t instanceof Promise){t.then(s=>{this.render.renderOptions(this.store.partialToFullData(s))}).catch(s=>{this.render.renderError(typeof s=="string"?s:s.message)});return}else Array.isArray(t)?this.render.renderOptions(this.store.partialToFullData(t)):this.render.renderError("Search event must return a promise or an array of data")}destroy(){document.removeEventListener("click",this.documentClick),window.removeEventListener("resize",this.windowResize,!1),this.settings.openPosition==="auto"&&window.removeEventListener("scroll",this.windowScroll,!1),document.removeEventListener("visibilitychange",this.windowVisibilityChange),this.store.setData([]),this.render.destroy(),this.select.destroy()}}return V})});var y=z(D());document.addEventListener("alpine:init",()=>{Alpine.data("gpsSearchForm",G)});function A(d,h){return[{placeholder:!0,text:h,value:""}].concat(d)}function G(){return{country:"",init(){fetch("/initial_form_data.json?include=manufacturers,countries&use_country_code_as_value=true").then(d=>d.json()).then(({manufacturers:d,countries:h})=>{this.modelsSelect=new y.default({select:this.$refs.modelsSelect,data:[],settings:{allowDeselect:!0,placeholderText:this.$refs.modelSelectPlaceholder.value,closeOnSelect:!0,alwaysOpen:!1}}),this.manufacturersSelect=new y.default({select:this.$refs.manufacturersSelect,data:A(d,this.$refs.manufacturerSelectPlaceholder.value),settings:{allowDeselect:!0,closeOnSelect:!0,alwaysOpen:!1},events:{afterChange:this.fetchModels.bind(this)}}),this.$refs.showCountries.value=="true"&&(this.countriesSelect=new y.default({select:this.$refs.countriesSelect,data:A(h,this.$refs.countrySelectPlaceholder.value),settings:{allowDeselect:!0,closeOnSelect:!0,alwaysOpen:!1},events:{afterChange:([g])=>{this.country=g?g.value:"",this.countriesSelect.close()}}}))})},fetchModels([d]){d?fetch(`/manufacturer/${d.value}
1/models.json`).then(h=>h.json()).then(h=>{let g=A(h,this.$refs.modelSelectPlaceholder.value);this.modelsSelect.setData(g)}):this.modelsSelect.setData([])}}}})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.