/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/nice-select2@2.4.1/src/js/nice-select2.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
const triggerEvent=(e,t,s={})=>{let i;i="click"===t?MouseEvent:"change"===t?Event:t.includes("focus")?FocusEvent:UIEvent;const l=new i(t,{bubbles:!0,cancelable:!1,...s});e.dispatchEvent(l)},triggerClick=e=>triggerEvent(e,"click"),triggerChange=e=>triggerEvent(e,"change"),triggerFocusIn=e=>triggerEvent(e,"focusin"),triggerFocusOut=e=>triggerEvent(e,"focusout"),triggerModalOpen=e=>triggerEvent(e,"modalopen"),triggerModalClose=e=>triggerEvent(e,"modalclose"),attr=(e,t)=>void 0!==e[t]?e[t]:e.getAttribute(t),data=(e,t)=>e.getAttribute("data-"+t),hasClass=(e,t)=>e?.classList.contains(t),addClass=(e,t)=>e?.classList.add(t),removeClass=(e,t)=>e?.classList.remove(t),defaultOptions={data:null,searchable:!0,showSelectedItems:!0,placeholder:"Select an option",searchtext:"Search",selectedtext:"selected",hideSelect:!0};class NiceSelect{constructor(e,t={}){if(!e)throw new Error("No element provided to NiceSelect");if(!(e instanceof Element))throw new Error("Invalid element provided to NiceSelect - must be a valid DOM element");this.el=e,this.el._niceSelect=this,this.config={...defaultOptions,...t},this.data=this.config.data,this.selectedOptions=[],this.placeholder=attr(this.el,"placeholder")||this.config.placeholder,this.searchtext=attr(this.el,"searchtext")||this.config.searchtext,this.selectedtext=attr(this.el,"selectedtext")||this.config.selectedtext,this.dropdown=null,this.selectionList=null,this.multiple=attr(this.el,"multiple"),this.disabled=attr(this.el,"disabled"),this.#e(),this.#t()}update(e=""){let t=this;""!=e&&(t=e.target._niceSelect),t.#s()}disable(){this.disabled||(this.disabled=!0,addClass(this.dropdown,"disabled"))}enable(){this.disabled&&(this.disabled=!1,removeClass(this.dropdown,"disabled"))}clear(){this.#i(),this.selectedOptions=[],this.#l(),this.update(),triggerChange(this.el)}destroy(){this.selectionList&&this.#d(),this.dropdown&&(this.dropdown.remove(),this.el.classList.remove("hidden-select"))}focus(e=""){if(hasClass(this.dropdown,"open")?this.multiple?e===this.dropdown.querySelector(".multiple-options")&&(removeClass(this.dropdown,"open"),triggerModalClose(this.el)):(removeClass(this.dropdown,"open"),triggerModalClose(this.el)):(addClass(this.dropdown,"open"),triggerModalOpen(this.el)),hasClass(this.dropdown,"open")){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.value="",e.focus());const t=this.dropdown.querySelector(".focus");t&&removeClass(t,"focus");const s=this.dropdown.querySelector(".selected");s&&addClass(s,"focus"),this.dropdown.querySelectorAll("ul li").forEach((e=>e.style.display=""))}else this.dropdown.focus()}#e(e=!0){this.data?this.#n(this.data):this.#o(e),this.el.classList.remove("hidden-select"),this.#a(),this.config.hideSelect&&this.el.classList.add("hidden-select"),this.#r()}#n(e){this.options=e.map((e=>({data:e,attributes:{selected:!!e.selected,disabled:!!e.disabled,optgroup:"optgroup"===e.value}})))}#o(e){const t=Array.from(this.el.querySelectorAll("option,optgroup")),s=[],i=[];this.data=t.map((t=>{let l,d=t.selected;if(e&&t.selected&&!t.defaultSelected&&(d=!1),"OPTGROUP"===t.tagName)l={text:t.label,value:"optgroup"};else{l={text:t.dataset.display??t.innerText,value:t.value,extra:t.dataset.extra,selected:d,disabled:t.disabled}}const n={selected:d,disabled:t.disabled,optgroup:"OPTGROUP"===t.tagName},o={data:l,attributes:n,element:null};return s.push(o),n.selected&&i.push(o),l})),this.options=s,this.selectedOptions=i}#a(){const e=["nice-select",attr(this.el,"class")||"",this.disabled?"disabled":"",this.multiple?"has-multiple":""].filter(Boolean),t=this.config.searchable?`\n      <div class="nice-select-search-box">\n        <input type="text" class="nice-select-search" placeholder="${this.searchtext}..." title="search"/>\n      </div>\n    `:"",s=`\n      <div class="${e.join(" ")}" tabindex="${this.disabled?"":0}">\n        <span class="${this.multiple?"multiple-options":"current"}"></span>\n        <div class="nice-select-dropdown">\n          ${t}\n          <ul class="list"></ul>\n        </div>\n      </div>\n    `;this.el.insertAdjacentHTML("afterend",s),this.dropdown=this.el.nextElementSibling,this.#l(),this.#c()}#l(){if(this.multiple){let e="";"auto"===window.getComputedStyle(this.dropdown).width||this.selectedOptions.length<2?(this.selectedOptions.forEach(((t,s,i)=>{let l=t.data.text;s!==i.length-1&&(l+=", ");let d=document.createElement("span");d.classList.add("current"),d.textContent=l,e+=d.outerHTML})),e=e||this.placeholder):e=`${this.selectedOptions.length} ${this.selectedtext}`,this.dropdown.querySelector(".multiple-options").innerHTML=e}else{const e=this.selectedOptions.length>0?this.selectedOptions[0].data.text:this.placeholder;this.dropdown.querySelector(".current").textContent=e}}#c(){const e=this.dropdown.querySelector("ul");this.options.forEach((t=>{this.multiple&&this.config.showSelectedItems&&this.#h(t),e.appendChild(this.#p(t))}))}#p(e){const t=document.createElement("li");if(t.textContent=e.data.text,void 0!==e.data.extra&&t.appendChild(this.#u(e.data.extra)),e.attributes.optgroup)addClass(t,"optgroup");else{t.setAttribute("data-value",e.data.value);const s=["option"];e.attributes.selected&&s.push("selected"),e.attributes.disabled&&s.push("disabled"),t.classList.add(...s),t.addEventListener("click",(t=>this.#g(e,t)))}return e.element=t,t}#u(e){const t=document.createElement("span");return t.innerHTML=e,addClass(t,"extra"),t}#t(){this.el.addEventListener("invalid",(()=>this.#m("invalid"))),window.addEventListener("click",(e=>this.#v(e))),this.el.addEventListener("change",this.update)}#r(){this.dropdown.addEventListener("click",(e=>this.#f(e))),this.dropdown.addEventListener("keydown",(e=>this.#C(e))),this.dropdown.addEventListener("focusin",(()=>triggerFocusIn(this.el))),this.dropdown.addEventListener("focusout",(()=>triggerFocusOut(this.el))),this.config.searchable&&this.#w()}#w(){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.addEventListener("click",(e=>e.stopPropagation())),e.addEventListener("input",(e=>this.#b(e))))}#f(e){e.preventDefault(),this.focus(e.target)}#g(e,t){const s=t.target;if(!hasClass(s,"disabled")){if(this.multiple){let t;hasClass(s,"selected")?(t=!1,removeClass(s,"selected"),this.selectedOptions=this.selectedOptions.filter((t=>t.data!==e.data))):(t=!0,addClass(s,"selected"),this.selectedOptions.push(e)),e.data.selected=t,e.attributes.selected=t}else{this.dropdown.querySelectorAll("li.selected").forEach((e=>removeClass(e,"selected"))),addClass(s,"selected"),this.selectedOptions=[e];let t=this.options.find((e=>e.attributes.selected));t&&(t.data.selected=!1,t.attributes.selected=!1),e.data.selected=!0,e.attributes.selected=!0}this.#l(),this.#E(),this.#S()}}#E(){const e=this.el;this.selectedOptions.length>0?e.value=this.selectedOptions[0].data.value:(e.value="",e.selectedIndex=-1),this.options.forEach((t=>{let s=Array.from(e.options).find((e=>String(e.dataset.display||e.textContent).trim().toLowerCase()===String(t.data.text).trim().toLowerCase()));null==s&&(s=Array.from(e.options).find((e=>String(e.value).trim().toLowerCase()===String(t.data.value).trim().toLowerCase()))),null!=s?t.attributes.selected?s.selected=!0:s.selected=!1:console.warn(`No matching option found for value: "${t.data.value}" in select element`,e)})),e.removeEventListener("change",this.update),triggerChange(e),e.addEventListener("change",this.update)}#i(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s&&(s.selected=!1)}))}else this.selectedOptions.length>0&&(this.el.selectedIndex=-1);triggerChange(this.el)}#s(){if(this.dropdown){const e=hasClass(this.dropdown,"open");this.#d(),this.dropdown.remove(),this.data=null,this.#e(!1),e&&triggerClick(this.dropdown)}attr(this.el,"disabled")?this.disable():this.enable()}#S(){this.config.showSelectedItems&&(this.#d(),this.selectedOptions.forEach((e=>{this.#h(e)})))}#v(e){this.dropdown.contains(e.target)||(removeClass(this.dropdown,"open"),triggerModalClose(this.el))}#C(e){const t=this.dropdown.querySelector(".focus"),s=hasClass(this.dropdown,"open");if(13===e.keyCode)triggerClick(s?t:this.dropdown);else if(40===e.keyCode){if(s){const e=this.#L(t);e&&(t&&removeClass(t,"focus"),addClass(e,"focus"))}else triggerClick(this.dropdown);e.preventDefault()}else if(38===e.keyCode){if(s){const e=this.#y(t);e&&(t&&removeClass(t,"focus"),addClass(e,"focus"))}else triggerClick(this.dropdown);e.preventDefault()}else if(27===e.keyCode&&s)triggerClick(this.dropdown);else if(32===e.keyCode&&s)return!1;const i=this.dropdown.querySelector(".focus");return i&&i.scrollIntoView({block:"center"}),!1}#L(e){let t=e?e.nextElementSibling:this.dropdown.querySelector(".list .option");for(;t;){if(!hasClass(t,"disabled")&&"none"!==t.style.display)return t;t=t.nextElementSibling}return null}#y(e){let t=e?e.previousElementSibling:this.dropdown.querySelector(".list .option:last-child");for(;t;){if(!hasClass(t,"disabled")&&"none"!==t.style.display)return t;t=t.previousElementSibling}return null}#b(e){const t=e.target.value.toLowerCase();if(""===t)this.options.forEach((e=>e.element.style.display=""));else if(hasClass(this.dropdown,"open")){const e=new RegExp(t);this.options.forEach((t=>{t.element.style.display=e.test(t.data.text.toLowerCase())?"":"none"}))}this.dropdown.querySelectorAll(".focus").forEach((e=>removeClass(e,"focus")));const s=this.#L(null);s&&addClass(s,"focus")}#m(e){"invalid"===e?(addClass(this.dropdown,"invalid"),removeClass(this.dropdown,"valid")):(addClass(this.dropdown,"valid"),removeClass(this.dropdown,"invalid"))}#d(){null!=this.selectionList&&(this.selectionList.remove(),this.selectionList=null)}#h(e){if(!this.multiple||e.data.disabled||""==e.data.value||!e.attributes.selected)return;if(null==this.selectionList)this.selectionList=document.createElement("ul"),this.selectionList.classList.add("select-selection-list"),this.el.after(this.selectionList);else if(null!=this.selectionList.querySelector(`[data-value="${e.data.value}"]`))return;let t=document.createElement("li");t.classList.add("select-selection"),t.dataset.value=e.data.value;let s=document.createElement("button");s.classList.add("small","remove-select-selection");let i=document.createElement("span");i.classList.add("remove-select-selection"),i.textContent="x",s.appendChild(i),t.appendChild(s),i=document.createElement("span"),i.classList.add("selected-name"),i.textContent=e.data.text,t.appendChild(i),this.selectionList.appendChild(t),t.querySelectorAll(".remove-select-selection").forEach((e=>e.addEventListener("click",this.#x.bind(this))))}#x(e){if(null==this.selectionList)return;if(null!=e.target&&(e=e.target),null==e.matches||!e.matches(".remove-select-selection"))return;let t=e.closest("li.select-selection"),s=this.options.find((e=>e.data.value===t.dataset.value)).element;s&&s.matches(".selected")&&s.click()}}export default NiceSelect;export function bind(e,t){return new NiceSelect(e,t)}
//# sourceMappingURL=/sm/225eff5677070b622ea4249867d14af57880e1c72b6102179119e4494ae214d6.map