@danielgindi/selectbox 1.0.146 → 1.0.147
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib.cjs.js +1 -1
- package/dist/lib.cjs.min.js +1 -1
- package/dist/lib.es6.js +1 -1
- package/dist/lib.es6.min.js +1 -1
- package/dist/lib.umd.js +1 -1
- package/dist/lib.umd.min.js +1 -1
- package/package.json +1 -1
- package/vue/DropList.vue +9 -4
package/dist/lib.cjs.js
CHANGED
package/dist/lib.cjs.min.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @danielgindi/selectbox 1.0.
|
|
2
|
+
* @danielgindi/selectbox 1.0.147
|
|
3
3
|
* git://github.com/danielgindi/selectbox.git
|
|
4
4
|
*/
|
|
5
5
|
"use strict";var e=require("@danielgindi/dom-utils/lib/Dom"),t=require("@danielgindi/dom-utils/lib/DomCompat"),s=require("@danielgindi/dom-utils/lib/Css"),i=require("@danielgindi/dom-utils/lib/DomEventsSink"),l=require("@danielgindi/virtual-list-helper"),r=require("keycode-js"),n=require("mitt"),o=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");const a=Symbol("item"),u=Symbol("destroyed"),c=Symbol("ghost"),d=Object.prototype.hasOwnProperty;let h={baseClassName:"droplist",autoItemBlur:!0,autoItemBlurDelay:300,capturesFocus:!0,multi:!1,keyDownHandler:null,autoCheckGroupChildren:!0,useExactTargetWidth:!1,constrainToWindow:!0,autoFlipDirection:!0,estimateWidth:!1,virtualMinItems:100,labelProp:"label",valueProp:"value",on:null};class m{constructor(t){const r={...h};for(let[e,s]of Object.entries(t))void 0!==s&&(r[e]=s);const o=this._p={ownsEl:!0,elOriginalDisplay:"",baseClassName:r.baseClassName,additionalClasses:r.additionalClasses,direction:"ltr"===r.direction?"ltr":"rtl"===r.direction?"rtl":"auto",autoItemBlur:r.autoItemBlur,autoItemBlurDelay:r.autoItemBlurDelay,capturesFocus:r.capturesFocus,multi:r.multi,keyDownHandler:r.keyDownHandler,autoCheckGroupChildren:r.autoCheckGroupChildren,useExactTargetWidth:r.useExactTargetWidth,constrainToWindow:r.constrainToWindow,autoFlipDirection:r.autoFlipDirection,estimatedItemHeight:r.estimatedItemHeight,estimateWidth:r.estimateWidth,virtualMinItems:r.virtualMinItems,labelProp:r.labelProp,valueProp:r.valueProp,renderItem:r.renderItem,unrenderItem:r.unrenderItem,on:r.on||null,silenceEvents:!0,mitt:n(),focusItemIndex:-1,focusItemEl:null,sink:new i};let u=[o.baseClassName];o.additionalClasses&&(u=u.concat((o.additionalClasses+"").split(" ").filter((e=>e))));const d={top:"-9999px"};let m=r.el;if(m instanceof Element?(o.elOriginalDisplay=m.style.display||"",m.classList.add(...u),m.role="menu",s.setCssProps(m,d),o.ownsEl=!1):m=e.createElement("ul",{class:u.join(" "),role:"menu",css:d}),o.el=m,o.items=[],o.groupCount=0,o.mouseHandled=!1,o.virtualListHelper=new l({list:o.el,virtual:!0,buffer:5,estimatedItemHeight:r.estimatedItemHeight||20,itemElementCreatorFn:()=>e.createElement("li",{role:"menuitem",tabIndex:o.capturesFocus?-1:null}),onItemRender:(e,t)=>{let s;t===c?(s={label:o.lastMeasureLongestLabelText,value:"Measure",[a]:{[o.labelProp]:o.lastMeasureLongestLabelText,[o.valueProp]:"Measure"}},e.setAttribute("aria-hidden","true")):s=o.items[t],s||console.warn("onItemRender called for ("+t+") which has no item"),e.className=`${o.baseClassName}__item`;const i=e.classList;o.multi?s._nocheck?i.add(`${o.baseClassName}__item_multi_nocheck`):(i.add(`${o.baseClassName}__item_multi`),s._checked&&i.add(`${o.baseClassName}__item_checked`)):i.add(`${o.baseClassName}__item_single`),s._group&&i.add(`${o.baseClassName}__item_group`),s._child&&i.add(`${o.baseClassName}__item_child`),s._nointeraction&&i.add(`${o.baseClassName}__item_nointeraction`),o.focusItemIndex===t&&(o.focusItemEl=e,i.add(`${o.baseClassName}__item_focus`)),this._renderItemContent(s,e),e[a]=s}}),"function"==typeof o.unrenderItem){const e=o.unrenderItem;o.virtualListHelper.setOnItemUnrender((t=>{try{e(t[a][a],t)}catch(e){console.error(e)}delete t[a],o.focusItemEl===t&&(o.focusItemEl=null)}))}else o.virtualListHelper.setOnItemUnrender((e=>{delete e[a],o.focusItemEl===e&&(o.focusItemEl=null)}));o.capturesFocus&&(m.tabIndex=0),this._hookMouseEvents(),this._hookTouchEvents(),this._hookFocusEvents(),this._hookKeyEvents(),this.silenceEvents=!1}destroy(){if(this[u])return;this[u]=!0;const e=this._p;if(clearTimeout(e.blurTimer),clearTimeout(e.filterTimer),e.sink.remove(),e.virtualListHelper.destroy(),e.el&&t.remove(e.el),e.currentSubDropList&&(e.currentSubDropList?.droplist?.destroy(),e.currentSubDropList=null),!e.ownsEl){for(let t of Array.from(e.el.classList))t.startsWith(e.baseClassName)&&e.el.classList.remove(t);e.el.removeAttribute("role");for(let t of["position","left","top","right","bottom","z-index"])e.el.style[t]="";e.el.style.display=e.elOriginalDisplay}e.lastPositionTarget&&(e.lastPositionTarget.classList.remove(`has_${e.baseClassName}`,`has_${e.baseClassName}_above`,`has_${e.baseClassName}_below`),delete e.lastPositionTarget),this._p=null}get el(){return this._p.el}elContains(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return!!this.el.contains(e)||!(!t||!this._p.currentSubDropList?.droplist?.elContains(e))}setAdditionalClasses(e){return this._p.additionalClasses=e,this._syncBaseClasses(),this}setDirection(e){return this._p.direction="ltr"===e?"ltr":"rtl"===e?"rtl":"auto",this._syncBaseClasses(),this}getDirection(){return this._p.direction}setLabelProp(e){return this._p.labelProp=e,this}setRenderItem(e){return this._p.renderItem=e,this}setUnrenderItem(e){const t=this._p;if(t.unrenderItem=e,"function"==typeof t.unrenderItem){const e=t.unrenderItem;t.virtualListHelper.setOnItemUnrender((s=>{try{e(s[a][a],s)}catch(e){console.error(e)}delete s[a],t.focusItemEl===s&&(t.focusItemEl=null)}))}else t.virtualListHelper.setOnItemUnrender((e=>{delete e[a],t.focusItemEl===e&&(t.focusItemEl=null)}));return this}setValueProp(e){return this._p.valueProp=e,this}_syncBaseClasses(){const e=this._p,t=e.el;if(!t)return;let s=[e.baseClassName];"ltr"!==e.direction&&"rtl"!==e.direction||s.push(`${e.baseClassName}__`+e.direction),e.additionalClasses&&(s=s.concat(e.additionalClasses)),t.className=s.join(" ")}blurFocusedItem(){const e=this._p;if(clearTimeout(e.blurTimer),!this.hasFocusedItem())return;let t=e.focusItemEl;t&&(t.classList.remove(`${e.baseClassName}__item_focus`),e.focusItemEl=null);const s=e.items[e.focusItemIndex];e.focusItemIndex=-1,s&&(e.currentSubDropList&&this._hideSublist(),this._trigger("itemblur",{value:s.value,item:s[a]??s}))}nextPage(e){this._move("next_page",e)}previousPage(e){this._move("prev_page",e)}goToFirst(e){this._move("first",e)}goToLast(e){this._move("last",e)}toggleFocusedItem(){const e=this._p;if(this.hasFocusedItem()&&e.multi){let s=e.items[e.focusItemIndex];if(s._nocheck||s._nointeraction)return this;s._checked=!s._checked,e.focusItemEl&&t.toggleClass(e.focusItemEl,`${e.baseClassName}__item_checked`,s._checked),this._trigger("check",{value:s.value,item:s[a]??s,checked:s._checked,isGroup:s._group,isCheckingGroup:!1}),this._updateGroupStateForItem(s)}return this}triggerItemSelection(t,s){const i=this._p;return i.focusItemEl=i.focusItemEl||e.closestUntil(s.target,"li",i.el),i.focusItemIndex=i.virtualListHelper.getItemIndexFromElement(i.focusItemEl),void 0===i.focusItemIndex&&(i.focusItemIndex=-1),!(t=t??i.focusItemEl[a])._nointeraction&&(i.multi||this._setSingleSelectedItemEl(i.focusItemEl),this._trigger("select",{value:t?t.value:void 0,item:t[a]??t,event:s,el:i.focusItemEl}),!0)}addItem(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;return this.addItems([e],t)}addItems(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;const s=this._p,i=s.labelProp,l=s.valueProp;let r=s.multi,n=s.items;(null==t||t<0||t>=s.items.length)&&(t=-1),this._determineVirtualMode(n.length+e.length);for(let o=0,u=e.length;o<u;o++){let u=e[o],c={[a]:u,label:u[i],value:u[l],_nocheck:!!u._nocheck,_nointeraction:!!u._nointeraction,_subitems:u._subitems};r&&(c._checked=!!u._checked),u._group&&(c._group=!0,s.groupCount++),u._child&&(c._child=!0),-1!==t?n.splice(t,0,c):n.push(c),-1!==t&&t++}return s.virtualListHelper.addItemsAt(e.length,-1===t?t:t-e.length).render(),this}setItems(e){const t=this._p;return t.items.length=0,t.groupCount=0,t.virtualListHelper.setCount(0),this.addItems(e),this.updateSublist(),this}updateItemByValue(e,t){const s=this._p;let i=this.itemIndexByValue(e);if(-1===i)return this;let l=this.itemAtIndex(i);return l[a]=t,d.call(t,s.labelProp)&&(l.label=t[s.labelProp]),d.call(t,s.valueProp)&&(l.value=t[s.valueProp]),d.call(t,"_nocheck")&&(l._nocheck=!!t._nocheck),d.call(t,"_nointeraction")&&(l._nointeraction=!!t._nointeraction),d.call(t,"_subitems")&&(l._subitems=!!t._subitems),s.multi&&d.call(t,"_checked")&&(l._checked=!!t._checked),d.call(t,"_group")&&!!t._group!==l._group&&(l._group?s.groupCount--:s.groupCount++,t._group=!!l._group),d.call(t,"_child")&&(l._child=!!t._child),s.virtualListHelper.isItemRendered(i)&&s.virtualListHelper.refreshItemAt(i).render(),this}removeItem(e,t){const s=this._p;let i=this.itemIndexByValueOrLabel(e,t);return-1===i||(s.items.splice(i,1)[0]._group&&s.groupCount--,s.virtualListHelper.removeItemsAt(i,1).render()),this}removeAllItems(){const e=this._p;return e.items.length=0,e.groupCount=0,e.virtualListHelper.setCount(0).render(),this}invalidate(){return this._p.virtualListHelper.invalidate().render(),this}itemDataByValue(e){const t=this._p;for(let s=0,i=t.items.length;s<i;s++){let i=t.items[s];if(i.value===e)return i[a]}return null}itemIndexByValue(e){const t=this._p;for(let s=0,i=t.items.length;s<i;s++)if(t.items[s].value===e)return s;return-1}itemIndexByValueOrLabel(e,t){const s=this._p;for(let i=0,l=s.items.length;i<l;i++){let l=s.items[i];if(l.value===e||l.label===t)return i}return-1}items(){return this._p.items.map((e=>e[a]))}itemsReference(){return this._p.items}itemCount(){return this._p.items.length}itemAtIndex(e){return this._p.items[e]?.[a]}relayout(e){const i=this._p,l=i.el;if(!this.isVisible())return this;let r=window,n={},o=e.targetOffset||s.getElementOffset(e.target);n.left=o.left,n.top=o.top,n.height=null==e.targetHeight?s.getElementHeight(e.target,!0,!0):e.targetHeight,n.width=null==e.targetWidth?s.getElementWidth(e.target,!0,!0):e.targetWidth,n.bottom=n.top+n.height;let a={};a.top=r.pageYOffset,a.left=r.pageXOffset,a.width=r.innerWidth,a.height=r.innerHeight,a.bottom=a.top+a.height,a.right=a.left+a.width;let u=e.position&&"bottom"===e.position.y?"above":"below";l.style.width="",(i.estimateWidth||i.virtualListHelper.isVirtual())&&this._measureItem(),i.virtualListHelper.isVirtual()&&i.virtualListHelper.render(),e.updateWidth||"number"==typeof e.updateWidth?this._updateWidth(e):this._updateWidth();let c,d=n.top-a.top,h=a.bottom-n.bottom;const m=getComputedStyle(l);let p="border-box"===m.boxSizing,_=(parseFloat(m.paddingTop)||0)+(parseFloat(m.paddingBottom)||0),g=(parseFloat(m.borderTopWidth)||0)+(parseFloat(m.borderBottomWidth)||0);i.virtualListHelper.isVirtual()?c=i.virtualListHelper.estimateFullHeight()+_+g:(l.style.height="",l.style.top="-9999px",c=Math.max(s.getElementHeight(i.el),l.scrollHeight),c+=_+g);let I=parseFloat(m.maxHeight);isNaN(I)||(p||(I+=_+g),c=Math.min(c,I));let f=d>=c,b=h>=c,v=i.currentDirection||u;"above"===v&&!f&&b?v="below":"below"===v&&!b&&f?v="above":f&&b?v!==u&&("above"===u&&d>=h||"below"===u&&h>=d)&&(v=u):f||b||(d>h?v="above":h>d&&(v="below")),i.currentDirection=v;let y={width:s.getElementWidth(l,!0,!0),height:Math.min(c,Math.max(d,h,0))},C=void 0!==e.targetRtl?e.targetRtl:null!=e.target&&"rtl"===getComputedStyle(e.target).direction,L="rtl"===getComputedStyle(document.documentElement).direction,E=s.anchoredPosition(e.target,e.anchor?e.anchor.x:"start",e.anchor?e.anchor.y:"bottom",n,C),S=s.anchoredPosition(l,e.position?e.position.x:"start",e.position?e.position.y:"top",y,C),k="top"===S.ySpec&&"above"===v||"bottom"===S.ySpec&&"below"===v||"bottom"!==S.ySpec&&"top"!==S.ySpec&&"above"===v,w=void 0!==r.pageXOffset?r.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft;w=Math.abs(w),L&&(w=document.documentElement.scrollWidth-w-document.documentElement.clientWidth);let x=w,P=document.documentElement.clientWidth+w-y.width,T={position:"absolute",left:n.left,top:n.top+(k?E.bottom-S.bottom:E.top-S.top)};if(L&&(T.left-=document.documentElement.clientWidth-document.documentElement.scrollWidth),T.left+=E.left-S.left,e.offset&&(e.offset.y&&(k?T.top-=e.offset.y:T.top+=e.offset.y),e.offset.x)){let t="rtl"===m.direction;T.left+=t?-e.offset.x:e.offset.x}if(i.autoFlipDirection&&("right"===S.xSpec&&T.left<x&&(Math.max(T.left,x)+y.width-n.left)/n.width>.5||"left"===S.xSpec&&T.left>P&&(Math.min(T.left,P)-n.left)/n.width<.5)&&(T.left-=E.left-S.left,T.left+=E.right-S.right),i.constrainToWindow)for(let e of L?["min","max"]:["max","min"])"min"===e&&T.left<x?T.left=x:"max"===e&&T.left>P&&(T.left=P);return T.left+="px",T.top+="px",s.setCssProps(l,T),s.setElementHeight(l,y.height,!0,!0),i.virtualListHelper.render(),e&&e.target&&(i.lastPositionTarget=e.target,t.toggleClass(e.target,`has_${i.baseClassName}`,!0),t.toggleClass(e.target,`has_${i.baseClassName}_below`,"below"===v),t.toggleClass(e.target,`has_${i.baseClassName}_above`,"above"===v),t.toggleClass(l,`${i.baseClassName}__is_below`,"below"===v),t.toggleClass(l,`${i.baseClassName}__is_above`,"above"===v)),this}setItemChecked(e,s){const i=this._p;s=!!s;let l=this.itemIndexByValue(e);if(-1===l)return this;let r=i.virtualListHelper.getItemElementAt(l);if(!r)return this;let n=r[a];return s=s&&!n._nocheck,n._checked!==s&&(n._checked=s,t.toggleClass(r,`${i.baseClassName}__item_checked`,n._checked),this._updateGroupStateForItem(n)),this}setCheckedValues(e){const s=this._p;let i=[];for(let l=0,r=s.items.length;l<r;l++){let r=s.items[l],n=!r._nocheck&&-1!==e.indexOf(r.value);if(r._group&&i.push(l),r._checked===n)continue;r._checked=n;let o=s.virtualListHelper.getItemElementAt(l);o&&t.toggleClass(o,`${s.baseClassName}__item_checked`,r._checked)}if(s.autoCheckGroupChildren)for(let e=0,t=i.length;e<t;e++)this._updateGroupCheckedState(i[e],!1);return this}getCheckedValues(e){const t=this._p;e=e&&t.groupCount>0;let s=[];for(let i=0,l=t.items.length;i<l;i++){let l=t.items[i];l._checked&&(e&&l._group||s.push(l.value))}return s}getCheckedItems(e){const t=this._p;e=e&&t.groupCount>0;let s=[];for(let i=0,l=t.items.length;i<l;i++){let l=t.items[i];l._checked&&(e&&l._group||s.push(l[a]))}return s}show(e){const t=this._p;t.hiding=!1,this.isVisible()||this._trigger("show:before"),t.mouseHandled=!1,setTimeout((()=>{this[u]||t.onDocumentMouseDown||t.sink.add(document,"mousedown",t.onDocumentMouseDown=e=>{t.el.contains(e.target)||this._delayBlurItemOnBlur()})}));const s=t.el;if(s.style.position="absolute",s.classList.remove(`${t.baseClassName}__is-hiding`),document.body.appendChild(s),t.visible=!0,t.el.style.display="","none"===getComputedStyle(t.el).display&&(t.el.style.display="block"),e){const t=getComputedStyle(s),i=s.style.maxHeight;let l=document.body.clientHeight-(parseFloat(t.marginTop)||0)-(parseFloat(t.marginBottom)||0)-("border-box"===t.boxSizing?0:(parseFloat(t.borderTopWidth)||0)+(parseFloat(t.borderBottomWidth)||0));s.style.maxHeight=Math.min(l,parseFloat(t.maxHeight)||l)+"px",this.relayout(e),s.style.maxHeight=i}else t.virtualListHelper.isVirtual()&&t.virtualListHelper.render();return this.isVisible()&&this._trigger("show"),this}hide(){const e=this._p,i=e.el;if(e.onDocumentMouseDown&&(e.sink.remove(document,"mousedown",e.onDocumentMouseDown),e.onDocumentMouseDown=null),this.isVisible()){if(this._trigger("hide:before"),e.hiding=!0,i&&(i.classList.add(`${e.baseClassName}__is-hiding`),s.parseTransition(getComputedStyle(e.el).transition).reduce(((e,t)=>Math.max(e,t.delay+t.duration)),0)>0?setTimeout((()=>{this[u]||this._p&&i.parentNode&&e.hiding&&(t.remove(i),i.classList.remove(`${e.baseClassName}__is-hiding`),e.visible=!1,this._trigger("hide:after"))})):(t.remove(i),i.classList.remove(`${e.baseClassName}__is-hiding`))),e.visible=!1,this.blurFocusedItem(),this._trigger("hide"),this[u])return;this._trigger("hide:after"),e.currentSubDropList&&this._hideSublist()}return e.lastPositionTarget&&(e.lastPositionTarget.classList.remove(`has_${e.baseClassName}`,`has_${e.baseClassName}_above`,`has_${e.baseClassName}_below`),delete e.lastPositionTarget),this}isVisible(){const e=this._p;return!!e.visible&&e.el.parentNode&&"none"!==getComputedStyle(e.el).display}hasFocusedItem(){return this._p.focusItemIndex>-1}getFocusedItemIndex(){return this.hasFocusedItem()?this._p.focusItemIndex:-1}setFocusedItemAtIndex(e){const t=this._p;t.focusItemIndex=e;let s=null;e>-1&&(s=t.items[e]),s&&s._nointeraction&&(s=null),e>-1&&this.scrollItemIndexIntoView(e);let i=s?t.virtualListHelper.getItemElementAt(e):null;if(t.focusItemEl!==i&&(t.focusItemEl&&(t.focusItemEl.classList.remove(`${t.baseClassName}__item_focus`),t.focusItemEl=null),i)){i.classList.add(`${t.baseClassName}__item_focus`),t.focusItemEl=i;const e=i[a];this._trigger("itemfocus",{value:e.value,item:e[a]??e,event:null,el:i}),this._showSublist(e,i)}return this}_showSublist(e,t){if(!e._subitems?.length)return;const s=this._p,i=new m({baseClassName:s.baseClassName,additionalClasses:s.additionalClasses,direction:s.direction,autoItemBlur:s.autoItemBlur,autoItemBlurDelay:s.autoItemBlurDelay,capturesFocus:s.capturesFocus,multi:s.multi,keyDownHandler:s.keyDownHandler,autoCheckGroupChildren:s.autoCheckGroupChildren,useExactTargetWidth:s.useExactTargetWidth,constrainToWindow:s.constrainToWindow,autoFlipDirection:s.autoFlipDirection,estimatedItemHeight:s.estimatedItemHeight,estimateWidth:s.estimateWidth,virtualMinItems:s.virtualMinItems,labelProp:s.labelProp,valueProp:s.valueProp,renderItem:s.renderItem,unrenderItem:s.unrenderItem});let l=e=>{this[u]||e.relatedTarget&&this.elContains(e.relatedTarget,!0)||(this._delayBlurItemOnBlur(),this._trigger("subitems:blur",e))};i.on("select",(e=>{this._trigger("subitems:select",e)})).on("subitems:select",(e=>{this._trigger("subitems:select",e)})).on("blur",l).on("subitems:blur",l).on("_back_key_pressed",(()=>{this._hideSublist()})),i.setItems(e._subitems),this._trigger("show_subitems",{value:e.value,item:e[a]??e,el:t,droplist:i}),s.currentSubDropList={item:e,itemElement:t,droplist:i,showOptions:{target:t,position:{x:"start",y:"top"},anchor:{x:"end",y:"top"},offset:{x:0,y:0},updateWidth:!1}},i.show(s.currentSubDropList.showOptions),i.el.focus()}_hideSublist(){const e=this._p;if(!e.currentSubDropList)return;const t=e.currentSubDropList;let s=!!document.activeElement&&t.droplist.elContains(document.activeElement,!0);t.droplist.hide(),t.droplist.destroy(),e.currentSubDropList=null,s&&!this[u]&&this.el.focus(),this._trigger("hide_subitems",{value:t.item.value,item:t.item,el:t.itemElement})}updateSublist(){const e=this._p;if(!e.currentSubDropList)return;const t=e.currentSubDropList.item,s=e.currentSubDropList,i=e.items.find((e=>e===t))||e.items.find((e=>e.value===s.item.value));if(i){e.currentSubDropList.item=i;const t=e.virtualListHelper.getItemElementAt(this._getItemIndex(i));e.currentSubDropList.itemElement=t,i._subitems&&(e.currentSubDropList.droplist.setItems(i._subitems),t&&(e.currentSubDropList.showOptions.target=t,e.currentSubDropList.droplist.relayout(e.currentSubDropList.showOptions)))}}setFocusedItem(e){const t=this._p;let s=e._nointeraction?-1:this._getItemIndex(e);return s>-1&&t.items[s]._nointeraction&&(s=-1),this.setFocusedItemAtIndex(s)}setFocusedItemByValue(e){return this.setFocusedItemAtIndex(this.itemIndexByValue(e))}setSingleSelectedItemAtIndex(e){const t=this._p;let s=null;return e>-1&&!t.items[e]._nointeraction&&(s=t.virtualListHelper.getItemElementAt(e)),this._setSingleSelectedItemEl(s),this}setSingleSelectedItem(e){const t=this._p;let s=e._nointeraction?-1:this._getItemIndex(e);return s>-1&&t.items[s]._nointeraction&&(s=-1),this.setSingleSelectedItemAtIndex(s)}setSingleSelectedItemByValue(e){return this.setSingleSelectedItemAtIndex(this.itemIndexByValue(e))}next(e){this._move("next",e)}previous(e){this._move("prev",e)}isFirstItem(){const e=this._p;return 0===e.focusItemIndex&&e.focusItemIndex<e.items.length}isLastItem(){const e=this._p;return e.focusItemIndex>-1&&e.focusItemIndex===e.items.length-1}scrollItemIndexIntoView(e){const t=this._p;if(this._hasScroll()){const s=t.el,i=s.scrollTop;let l,r=-1,n=30;for(;n-- >0&&(l=t.virtualListHelper.getItemPosition(e),l!==r);){r=l;let n=t.virtualListHelper.getItemSize(e),o=s.clientHeight;l<i?s.scrollTop=l:l+n>i+o&&(s.scrollTop=l+n-o),t.virtualListHelper.render()}}return this}on(e,t){return this._p.mitt.on(e,t),this}once(e,t){let s=i=>{this._p.mitt.off(e,s),t(i)};return this._p.mitt.on(e,s),this}off(e,t){return e||e?this._p.mitt.off(e,t):this._p.mitt.all.clear(),this}emit(e,t){return this._p.mitt.emit(e,t),this}_getItemIndex(e){const t=this._p;let s=-1;if(e&&(s=t.items.indexOf(e),-1===s)){let t=e&&void 0!==e.value?e.value:e,i=e&&e.label?e.label:t;s=this.itemIndexByValueOrLabel(t,i)}return s}_setSingleSelectedItemEl(e){const t=this._p;return t.singleSelectedItemEl&&(t.singleSelectedItemEl.classList.remove(`${t.baseClassName}__item_checked`),t.singleSelectedItemEl=null),e&&(e.classList.add(`${t.baseClassName}__item_checked`),t.singleSelectedItemEl=e),this}_trigger(e,t){const s=this._p;s.on&&s.on(e,...void 0===t?[]:[t]),s.mitt.emit(e,t)}_itemUpAction(t,s){if(e.closestUntil(t.target,".requires-pointer-events,button",s))return;let i=this._p;if(!this._mouseHandled){if(this.triggerItemSelection(null,t),this[u])return;this.toggleFocusedItem(),document.activeElement!==this.el&&i.focusItemEl&&clearTimeout(i.blurTimer),setTimeout((()=>{this._mouseHandled=!1}),0)}}_hookMouseEvents(){const t=this._p;t.sink.add(t.el,"mouseup",(t=>{const s=e.closestUntil(t.target,"li",t.currentTarget);s&&0===t.button&&this._itemUpAction(t,s)})).add(t.el,"mouseover",(t=>{const s=e.closestUntil(t.target,"li",t.currentTarget);s&&this._handleMouseOver(t,s)}))}_handleMouseOver(e,t){this._focus(e,t,null,!0)}_hookTouchEvents(){const t=this._p;let s;t.sink.add(t.el,"touchstart",(i=>{const l=e.closestUntil(i.target,"li",i.currentTarget);if(!l)return;if(s)return;if(e.closestUntil(i.target,".requires-pointer-events,button",l))return;s=i.changedTouches[0].identifier,this._handleMouseOver(i,l);let r=!1,n=()=>{r=!0},o=()=>{s=null,t.sink.remove(null,".dropdown_touchextra")},a=l.parentNode;for(;a;)t.sink.add(a,"scroll.dropdown_touchextra",n),a=a.parentNode;t.sink.add(window,"scroll.dropdown_touchextra",n),t.sink.add(window,"touchcancel.dropdown_touchextra",o),t.sink.add(t.el,"touchend.dropdown_touchextra",(t=>{const i=e.closestUntil(t.target,"li",t.currentTarget);return i&&Array.prototype.find.call(t.changedTouches,(e=>e.identifier===s))?(o(),void(r||(this._itemUpAction(t,i),t.preventDefault()))):o()}))}))}_hookFocusEvents(){const e=this._p;e.sink.add(e.el,"focus",(t=>{let s=e.focusItemEl||e.el.firstChild;this._focus(t,s,null,!1)})).add(e.el,"blur",(e=>{setTimeout((()=>{this[u]||document.activeElement&&this.elContains(document.activeElement,!0)||(this._delayBlurItemOnBlur(),this._trigger("blur",e))}))}))}_hookKeyEvents(){const e=this._p;e.sink.add(e.el,"keydown",(e=>this._keydown(e)))}_keydown(e){const t=this._p;if(t.keyDownHandler&&t.keyDownHandler.call(this,e))return;let s=!0;switch(e.key){case r.VALUE_PAGE_UP:case r.VALUE_PAGE_DOWN:case r.VALUE_HOME:case r.VALUE_END:case r.VALUE_UP:case r.VALUE_DOWN:switch(e.preventDefault(),e.key){case r.VALUE_PAGE_UP:this.previousPage(e);break;case r.VALUE_PAGE_DOWN:this.nextPage(e);break;case r.VALUE_HOME:this._move("first",e);break;case r.VALUE_END:this._move("last",e);break;case r.VALUE_UP:this.previous(e);break;case r.VALUE_DOWN:this.next(e)}break;case r.VALUE_LEFT:case r.VALUE_RIGHT:if(e.key===r.VALUE_RIGHT&&"rtl"!==getComputedStyle(e.target).direction||e.key===r.VALUE_LEFT&&"rtl"===getComputedStyle(e.target).direction){let e=t.items[t.focusItemIndex];t.focusItemIndex>-1&&e._subitems&&this._showSublist(e,t.focusItemEl)}else t.currentSubDropList?(this._hideSublist(),s=!1):this._trigger("_back_key_pressed");break;case r.VALUE_ENTER:this.triggerItemSelection(null,e),e.preventDefault();break;case r.VALUE_SPACE:this.toggleFocusedItem(),e.preventDefault();break;case r.VALUE_ESCAPE:e.preventDefault(),this.hide();break;default:if("keydown"===e.type)return;this._keydownFreeType(e),s=!1}}_keydownFreeType(e){const t=this._p;let s=e.key||String.fromCharCode(e.keyCode);if(1!==s.length)return;clearTimeout(t.filterTimer);let i,l=(t.previousFilter||"")+s,r=new RegExp(`^${o(l)}`,"i"),n=-1,a=t.focusItemIndex;for(let e=0,s=t.items.length;e<s&&(-1!==n&&e<a||(i=t.items[e],!(r.test(i.label)&&(n=e,-1===a||e>=a))));e++);if(-1===n){l=s,r=new RegExp(`^${o(l)}`,"i");for(let e=0,s=t.items.length;e<s&&(-1!==n&&e<a||(i=t.items[e],!(r.test(i.label)&&(n=e,-1===a||e>=a))));e++);}if(n>-1){let s=t.virtualListHelper.getItemElementAt(n);this._focus(e,s||null,n,!0),this.isVisible()||this.triggerItemSelection(s?null:t.items[n],e),t.previousFilter=l,t.filterTimer=setTimeout((()=>{delete t.previousFilter}),1e3)}else delete t.previousFilter}_focus(e,t,s,i){const l=this._p;if(l._isFocusingItem)return;l._isFocusingItem=!0,!s&&t&&(s=l.virtualListHelper.getItemIndexFromElement(t)),s>-1?this.scrollItemIndexIntoView(s):void 0===s&&(t=null);let r=t||l.virtualListHelper.getItemElementAt(s);if(!r||r[a]._nointeraction)return l._isFocusingItem=!1,void this.blurFocusedItem();if(r===l.focusItemEl)return l._isFocusingItem=!1,void clearTimeout(l.blurTimer);this.blurFocusedItem(),r.classList.add(`${l.baseClassName}__item_focus`),l.focusItemEl=r,l.focusItemIndex=s;const n=l.items[s];this._trigger("itemfocus",{value:n.value,item:n[a]??n,event:e,el:r}),l._isFocusingItem=!1,i&&this._showSublist(n,r)}_delayBlurItemOnBlur(){if(this[u])return;const e=this._p;e.autoItemBlur&&(clearTimeout(e.blurTimer),e.blurTimer=setTimeout((()=>{this[u]||this.blurFocusedItem()}),e.autoItemBlurDelay))}_move(e,t){const i=this._p;let l,r,n=!1;if("first"===e)r=0,n=!1;else if("last"===e)r=i.items.length-1,n=!0;else if("prev"===e){if(!this.hasFocusedItem())return this._move("last",t);r=i.focusItemIndex-1,-1===r&&(r=i.items.length-1),n=!0}else if("next"===e){if(!this.hasFocusedItem())return this._move("first",t);r=i.focusItemIndex+1,r===i.items.length&&(r=0),n=!1}else{if("prev_page"!==e&&"next_page"!==e)return;if(!this.hasFocusedItem())return this._move("prev_page"===e?"prev":"next",t);if("prev_page"===e&&this.isFirstItem()||"next_page"===e&&this.isLastItem())return;if(!this._hasScroll())return this._move("prev_page"===e?"first":"last",t);if(i.virtualListHelper.isVirtual()){let t=i.virtualListHelper.getVisibleItemCount();r=i.focusItemIndex,"prev_page"===e?r-=t:r+=t,r<0?r=0:r>=i.items.length&&(r=i.items.length)}else if(i.focusItemEl){let t=s.getElementOffset(i.focusItemEl).top,n=s.getElementHeight(i.el,!0);for(;;){if(l=i.focusItemEl.nextElementSibling,!l)return;if("LI"===l.tagName)if("prev_page"===e){if(s.getElementOffset(l).top-t+n<=0)break}else if(s.getElementOffset(l).top-t-n>=0)break}l&&(r=i.virtualListHelper.getItemIndexFromElement(l),void 0===r&&(r=-1))}n="prev_page"===e}let o=i.items.length;if(r>=o)return;let a=i.items[r],u=r;for(;a&&a._nointeraction&&(n?(r--,-1===r&&(r=o)):(r++,r===o&&(r=0)),a=i.items[r],r!==u););l=i.virtualListHelper.getItemElementAt(r),this._focus(t,l||null,r,!1),this.isVisible()||this.triggerItemSelection(a,t)}_hasScroll(){return this.el.clientHeight<this.el.scrollHeight}_updateGroupStateForItem(e){const s=this._p;if(!s.multi)return this;if(e._group){let i=0;if(s.autoCheckGroupChildren){let l=s.items;for(let r=l.indexOf(e)+1,n=l.length;r<n;r++){let n=l[r];if(n._group||!n._child&&l[r-1]._child)break;if(!!n._checked===e._checked)continue;n._checked=e._checked,i++;let o=s.virtualListHelper.getItemElementAt(r);o&&t.toggleClass(o,`${s.baseClassName}__item_checked`,e._checked),this._trigger("check",{value:n.value,item:n[a]??n,checked:n._checked,isGroup:n._group,isCheckingGroup:!0})}}this._trigger("groupcheck",{value:e.value,item:e[a]??e,affectedItems:i})}else if(s.groupCount>0&&s.autoCheckGroupChildren){let t=s.items,i=-1;for(let s=t.indexOf(e)-1;s>=0;s--)if(t[s]._group){i=s;break}i>-1&&this._updateGroupCheckedState(i,!0)}return this}_updateGroupCheckedState(e,s){const i=this._p;if(!(i.multi&&i.autoCheckGroupChildren&&e>-1))return this;let l=i.items,r=l[e];if(!r||!r._group)return this;let n,o=!1,u=!1;for(let t=e+1,s=l.length;t<s&&(n=l[t],!(n._group||!n._child&&l[t-1]._child));t++)n._checked?o=!0:n._checked||(u=!0);if(!o&&!u)return this;let c=o&&!u;if(!!r._checked!==c){r._checked=c;let l=i.virtualListHelper.getItemElementAt(e);l&&t.toggleClass(l,`${i.baseClassName}__item_checked`,r._checked),s&&this._trigger("check",{value:r.value,item:r[a]??r,checked:r._checked,isGroup:r._group,isCheckingGroup:!1})}return this}_measureItem(){const t=this._p;if(t.lastMeasureItemCount!==t.items.length){let e=t.lastMeasureLongestLabel||1,s=t.lastMeasureLongestLabelText||"";for(let i=0,l=t.items,r=l.length;i<r;i++){const t=l[i];let r=t.label;null==r&&(r=t.value),null==r&&(r="");let n=r.length;n>e&&(e=n,s=r)}t.lastMeasureItemCount=t.items.length,t.lastMeasureLongestLabel=e,t.lastMeasureLongestLabelText=s}return(t.estimateWidth||t.virtualListHelper.isVirtual())&&t.virtualListHelper.createGhostItemElement(c,!0,(i=>{let l=e.createElement("span",{css:{display:"block",width:"100px",height:"100px",overflow:"scroll",position:"absolute"}}),r=e.createElement("span",{css:{display:"block",position:"relative",width:"0",height:"0",overflow:"hidden"}},[l]);i.appendChild(r);let n=l.offsetWidth-l.clientWidth;i.removeChild(r),t.lastMeasureItemWidth=s.getElementWidth(i,!0,!0)+n})),this}_determineVirtualMode(e){const t=this._p;let s=t.items;void 0===e&&(e=s.length);let i=e>=t.virtualMinItems;return i!==t.virtualListHelper.isVirtual()&&t.virtualListHelper.setVirtual(i).render(),this}_renderItemContent(t,s){const i=this._p;i.renderItem&&!1!==i.renderItem(t[a]||t,s)||(s.appendChild(e.createElement("span",{class:`${i.baseClassName}__item_label`,textContent:t.label})),i.multi&&(t._nocheck||s.insertBefore(e.createElement("span",{class:"checkbox"}),s.firstChild)))}_updateWidth(e){const t=this._p,i=t.el;let l=0;e&&(l="number"==typeof e.updateWidth||null!=e.targetWidth?e.updateWidth:s.getElementWidth(e.target,!0,!0));let r=0;t.useExactTargetWidth||(t.estimateWidth||t.virtualListHelper.isVirtual()?r=t.lastMeasureItemWidth:(i.style.width="",r=s.getElementWidth(i,!0,!0)));let n=Math.max(r,l);s.setElementWidth(i,n,!0,!0);const o=getComputedStyle(i);let a=(parseFloat(o.borderLeftWidth)||0)+(parseFloat(o.borderRightWidth)||0),u=i.scrollWidth+a;if(u>n){let e=u-n;i.style.width=`${parseFloat(i.style.width)+e}px`,n=u}return n}}const p=(e,t,s)=>{let i,l,r,n,o=0;s||(s={});const a=()=>{o=!1===s.leading?0:Date.now(),i=null,n=e.apply(l,r),i||(l=r=null)},u=function(){const u=Date.now();o||!1!==s.leading||(o=u);const c=t-(u-o);return l=this,r=arguments,c<=0||c>t?(i&&(clearTimeout(i),i=null),o=u,n=e.apply(l,r),i||(l=r=null)):i||!1===s.trailing||(i=setTimeout(a,c)),n};return u.cancel=()=>{clearTimeout(i),o=0,i=l=r=null},u.isScheduled=()=>!!i,u},_=Symbol("item"),g=Symbol("destroyed"),I=Symbol("no_results_items"),f=Symbol("rest_multi_items"),b=!!("ontouchstart"in window||window.DocumentTouch&&window.document instanceof window.DocumentTouch||window.navigator.maxTouchPoints),v=function(e,t){return e instanceof Element&&e.classList.contains(t)},y=["font-family","font-size","font-weight","font-size","letter-spacing","text-transform","word-spacing","text-indent","box-sizing","padding-left","padding-right"],C={el:null,baseClassName:"selectbox",disabled:!1,clearable:!0,hasOpenIndicator:!0,placeholder:"",sortSelectedItems:!0,sortListItems:!1,sortListCheckedFirst:!0,stickyValues:null,sortItemComparator:null,splitListCheckedGroups:!0,treatGroupSelectionAsItems:!1,blurOnSingleSelection:"touch",multi:!1,showSelection:!0,showPlaceholderInTooltip:!1,multiPlaceholderFormatter:null,searchable:!0,noResultsText:"No matching results",filterThrottleWindow:300,filterOnEmptyTerm:!1,labelProp:"label",valueProp:"value",multiItemLabelProp:"short_label",maxMultiItems:null,multiItemsRestLabelProvider:null,items:[],selectedValues:void 0,value:void 0,isLoadingMode:!1};exports.DropList=m,exports.SelectBox=class{constructor(s){const l={...C};for(let[e,t]of Object.entries(s))void 0!==t&&(l[e]=t);const r=this._p={ownsEl:!0,baseClassName:l.baseClassName,additionalClasses:l.additionalClasses,direction:"ltr"===l.direction?"ltr":"rtl"===l.direction?"rtl":"auto",listOptions:l.listOptions,disabled:!!l.disabled,clearable:!!l.clearable,hasOpenIndicator:!!l.hasOpenIndicator,placeholder:l.placeholder,sortSelectedItems:!!l.sortSelectedItems,sortListItems:!!l.sortListItems,sortListCheckedFirst:!!l.sortListCheckedFirst,stickyValues:Array.isArray(l.stickyValues)?new Set(l.stickyValues):null,sortItemComparator:l.sortItemComparator,splitListCheckedGroups:!!l.splitListCheckedGroups,treatGroupSelectionAsItems:l.treatGroupSelectionAsItems,blurOnSingleSelection:l.blurOnSingleSelection,multi:l.multi,showSelection:l.showSelection,showPlaceholderInTooltip:l.showPlaceholderInTooltip,multiPlaceholderFormatter:l.multiPlaceholderFormatter,searchable:l.searchable,noResultsText:l.noResultsText,filterThrottleWindow:l.filterThrottleWindow,filterOnEmptyTerm:l.filterOnEmptyTerm,labelProp:l.labelProp,valueProp:l.valueProp,multiItemLabelProp:l.multiItemLabelProp,maxMultiItems:l.maxMultiItems,multiItemsRestLabelProvider:l.multiItemsRestLabelProvider,renderSingleItem:l.renderSingleItem,unrenderSingleItem:l.unrenderSingleItem,renderMultiItem:l.renderMultiItem,unrenderMultiItem:l.unrenderMultiItem,renderRestMultiItem:l.renderRestMultiItem,unrenderRestMultiItem:l.unrenderRestMultiItem,renderNoResultsItem:l.renderNoResultsItem,unrenderNoResultsItem:l.unrenderNoResultsItem,filterFn:l.filterFn,on:l.on||null,silenceEvents:!0,mitt:n(),isLoadingMode:!!l.isLoadingMode,items:[],filteredItems:null,currentItemsView:[],itemsChanged:!0,sink:new i,resizeObserver:null,selectedItems:[],selectedValues:[],selectionChanged:!0,resortBySelectionNeeded:!1,throttledUpdateListItems:p((()=>this._updateListItems()),l.filterThrottleWindow,{leading:!0,trailing:!0}),filterTerm:""};let o=l.el;o instanceof Element?r.ownsEl=!1:o=e.createElement("span"),e.setElementAttrs(o,{role:"combobox","aria-haspopup":"true","aria-expanded":"false"}),r.el=o,this._syncBaseClasses(),this._renderBase(),r.multiItemEls=[],this.enable(!r.disabled),this._setupDropdownMenu(),r.sink.add(o,"click",(e=>{r.clearButtonWrapper&&r.clearButtonWrapper.contains(e.target)||o.contains(document.activeElement)||(r.input.focus(),r.input.selectionStart=r.input.selectionEnd=r.input.value.length)})),r.sink.add(o,"focus",(e=>{const t=e.target;if(!o.contains(e.relatedTarget)&&!v(t,`${r.baseClassName}__search_field`)&&!v(t,`${r.baseClassName}__item`)){let e=o.querySelector(`.${r.baseClassName}__search_field`);e&&e.focus()}}),!0),r.sink.add(r.input,"keydown",(e=>{this._handleInputKeydown(e)})).add(r.input,"input",(()=>{this._resizeInput()}));const a=(()=>{let e;return()=>{e&&clearTimeout(e),e=setTimeout((()=>{t.toggleClass(o,`${r.baseClassName}__focus`,o.contains(document.activeElement))}))}})();if(r.sink.add(o,"focus",a,!0),r.sink.add(o,"blur",a,!0),r.sink.add(window,"resize",(()=>this._resizeInput())),r.sink.add(window,"orientationchange",(()=>this._resizeInput())),void 0!==window.ResizeObserver){let e={borderBoxSize:{blockSize:null,inlineSize:null},contentBoxSize:{blockSize:null,inlineSize:null}};r.resizeObserver=new ResizeObserver((t=>{if(this[g])return;const s=t[0];e&&s.borderBoxSize[0].blockSize===e.borderBoxSize.blockSize&&s.borderBoxSize[0].inlineSize===e.borderBoxSize.inlineSize&&s.contentBoxSize[0].blockSize===e.contentBoxSize.blockSize&&s.contentBoxSize[0].inlineSize===e.contentBoxSize.inlineSize||(r.resizeObserver.unobserve(r.el),this._resizeInput(),requestAnimationFrame((()=>r.resizeObserver.observe(r.el)))),e.borderBoxSize=s.borderBoxSize[0],e.contentBoxSize=s.contentBoxSize[0]})),r.resizeObserver.observe(r.el)}return this.setItems(l.items),delete l.items,l.multi&&Array.isArray(l.selectedValues)?this.setSelectedValues(l.selectedValues):null!=l.value&&this.setValue(l.value),this._scheduleSync("full"),this.silenceEvents=!1,this}destroy(){if(this[g])return;this[g]=!0;const e=this._p;if(e.syncTimeout&&(clearTimeout(e.syncTimeout),delete e.syncTimeout),this._stopTrackingPresence(),e.sink.remove(),e.dropList&&e.dropList.destroy(),e.throttledUpdateListItems&&e.throttledUpdateListItems.cancel(),this._cleanupSingleWrapper(),e.unrenderMultiItem||e.unrenderRestMultiItem)for(;e.multiItemEls.length>0;)this._removeMultiItemElementByIndex(e.multiItemEls.length-1);if(t.remove(e.list),t.remove(e.singleWrapper),t.remove(e.input),t.remove(e.inputBackBuffer),t.remove(e.clearButtonWrapper),t.remove(e.openIndicator),!e.ownsEl){for(let t of Array.from(e.el.classList))t.startsWith(e.baseClassName)&&e.el.classList.remove(t);e.el.removeAttribute("role"),e.el.removeAttribute("aria-haspopup"),e.el.removeAttribute("aria-expanded")}e.resizeObserver?.disconnect(),this._p=null}get el(){return this._p.el}get droplistInstance(){return this._p.dropList}droplistElContains(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this._p.dropList?.elContains(e,t)}enable(e){const t=this._p;void 0===e&&(e=!0),t.disabled=!e,t.el.setAttribute("aria-disabled",t.disabled.toString()),t.input.disabled=!!t.disabled;const s=t.multiItemEls;for(let e of s)t.disabled?e.removeAttribute("tabindex"):e.setAttribute("tabindex","0");return this}isEnabled(){return!this._p.disabled}disable(e){return this.enable(void 0!==e&&!e)}isDisabled(){return this._p.disabled}setAdditionalClasses(e){return this._p.additionalClasses=e,this._syncBaseClasses(),this}setItems(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const s=this._p;return e||(e=[]),s.items=e.slice(0),s.filteredItems=null,s.itemsChanged=!0,this._updateItemByValueMap(),t&&this.setSelectedValues(this.getSelectedValues()),this._trigger("itemschanged",{term:null,mutated:!0,count:this.getFilteredItemCount()}),this}getFilteredItemCount(){const e=this._p;return e.filteredItems?e.filteredItems.length:e.items?e.items.length:0}isFilterPending(){const e=this._p;return!!(e.throttledUpdateListItems.isScheduled()||!e.filteredItems&&(e.filterTerm||e.filterOnEmptyTerm&&e.filterFn))}updateItemByValue(e,t){const s=this._p;let i=s.itemByValueMap.get(e);i&&Object.assign(i,t),s.dropList&&s.dropList.updateItemByValue(e,t)}getItems(){return this._p.items}setClearable(e){return e=!!e,this._p.clearable===e||(this._p.clearable=!!e,this._scheduleSync("render_clear")),this}getClearable(){return this._p.clearable}setHasOpenIndicator(e){return e=!!e,this._p.hasOpenIndicator===e||(this._p.hasOpenIndicator=e,this._scheduleSync("render_base")),this}getHasOpenIndicator(){return this._p.hasOpenIndicator}setPlaceholder(e){return this._p.placeholder=null==e?"":String(e),this._scheduleSync("render_base"),this}getPlaceHolder(){return this._p.placeholder}setSearchTerm(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const s=this._p;return s.input?(s.input.value=e,this._scheduleSync("resize_input"),t&&(s.filterTerm=s.input.value.trim(),s.filteredItems=null,s.itemsChanged=!0,this._trigger("search",{value:s.input.value}),s.throttledUpdateListItems()),this):this}getSearchTerm(){const e=this._p;return e.input?e.input.value:""}invokeRefilter(){const e=this._p;return e.filterTerm||e.filterOnEmptyTerm||e.filteredItems?(e.filteredItems=null,e.itemsChanged=!0,e.throttledUpdateListItems(),this):this}setSortSelectedItems(e){const t=this._p;return e=!!e,t.sortSelectedItems===e||(t.sortSelectedItems=e,this._scheduleSync("render_items")),this}isSortSelectedItemsEnabled(){return this._p.sortSelectedItems}setSortListItems(e){const t=this._p;return e=!!e,t.sortListItems===e||(t.sortListItems=e,t.filteredItems=null,t.itemsChanged=!0,this._scheduleSync("render_list")),this}isSortListItemsEnabled(){return this._p.sortListItems}setSortListCheckedFirst(e){const t=this._p;return e=!!e,t.sortCheckedFirst===e||(t.sortCheckedFirst=e,t.itemsChanged=!0,this._scheduleSync("render_list")),this}isSortListCheckedFirstEnabled(){return this._p.sortListCheckedFirst}setStickyValues(e){const t=this._p;return t.stickyValues=Array.isArray(e)?new Set(e):null,t.itemsChanged=!0,this._scheduleSync("render_list"),this}getStickyValues(){return this._p.stickyValues?Array.from(this._p.stickyValues):null}setSortItemComparator(e){const t=this._p;return t.sortItemComparator===e||(t.sortItemComparator=e,t.itemsChanged=!0,this._scheduleSync("render_list")),this}getSortItemComparator(){return this._p.sortItemComparator}setTreatGroupSelectionAsItems(e){const t=this._p;return e=!!e,t.treatGroupSelectionAsItems===e||(t.treatGroupSelectionAsItems=e,t.itemsChanged=!0,this._scheduleSync("render_list")),this}isTreatGroupSelectionAsItemsEnabled(){return!this._p.treatGroupSelectionAsItems}setSplitListCheckedGroups(e){const t=this._p;return e=!!e,t.splitListCheckedGroups===e||(t.splitListCheckedGroups=e,t.itemsChanged=!0,this._scheduleSync("render_list")),this}isSplitListCheckedGroupsEnabled(){return this._p.splitListCheckedGroups}setShowSelection(e){const t=this._p;return e=!!e,t.showSelection===e||(t.showSelection=e,this._scheduleSync("render_items")),this}isShowSelectionEnabled(){return this._p.showSelection}setShowPlaceholderInTooltip(e){const t=this._p;return e=!!e,t.showPlaceholderInTooltip===e||(t.showPlaceholderInTooltip=e,this._scheduleSync("render_base")),this}isShowPlaceholderInTooltipEnabled(){return this._p.showPlaceholderInTooltip}setMultiPlaceholderFormatter(e){const t=this._p;return t.multiPlaceholderFormatter===e||(t.multiPlaceholderFormatter=e,this._scheduleSync("render_base")),this}setBlurOnSingleSelection(e){const t=this._p;return t.blurOnSingleSelection===e||(t.blurOnSingleSelection=e),this}getBlurOnSingleSelection(){return this._p.blurOnSingleSelection}setMulti(e){const s=this._p;return e=!!e,s.multi===e||(s.multi=e,this._setupDropdownMenu(),t.remove(s.clearButtonWrapper),delete s.clearButtonWrapper,e&&s.selectedValues&&1===s.selectedValues.length&&Array.isArray(s.selectedValues[0])&&this.setSelectedValues(s.selectedValues[0]),this._scheduleSync("full")),this}isMultiEnabled(){return this._p.multi}setSearchable(e){const t=this._p;return e=!!e,t.searchable===e||(t.searchable=e,this._scheduleSync("full")),this}isSearchableEnabled(){return this._p.searchable}setNoResultsText(e){return this._p.noResultsText=e,this._scheduleSync("render_list"),this}getNoResultsText(){return this._p.noResultsText}setFilterThrottleWindow(e){const t=this._p;t.filterThrottleWindow=e;let s=!!t.throttledUpdateListItems&&t.throttledUpdateListItems.isScheduled();return t.throttledUpdateListItems&&t.throttledUpdateListItems.cancel(),t.throttledUpdateListItems=p((()=>this._updateListItems()),t.filterThrottleWindow,!0),s&&t.throttledUpdateListItems(),this}getFilterThrottleWindow(){return this._p.filterThrottleWindow}setFilterOnEmptyTerm(e){const t=this._p;return t.filterOnEmptyTerm===e||(t.filterOnEmptyTerm=e,t.throttledUpdateListItems()),this}getFilterOnEmptyTerm(){return this._p.filterOnEmptyTerm}setListOptions(e){return this._p.listOptions=e,this._setupDropdownMenu(),this}setRenderSingleItem(e,t){const s=this._p;return s.renderSingleItem=e,s.unrenderSingleItem=t,this}setRenderMultiItem(e,t){const s=this._p;return s.renderMultiItem=e,s.unrenderMultiItem=t,this}setRenderRestMultiItem(e,t){const s=this._p;return s.renderRestMultiItem=e,s.unrenderRestMultiItem=t,this}setRenderNoResultsItem(e,t){const s=this._p;return s.renderNoResultsItem=e,s.unrenderNoResultsItem=t,this}setLabelProp(e){const t=this._p;return t.labelProp=e,t.dropList&&t.dropList.setLabelProp(e),this}setValueProp(e){const t=this._p;return t.valueProp===e||(t.valueProp=e,t.dropList&&t.dropList.setValueProp(e),this._updateItemByValueMap()),this}setMultiItemLabelProp(e){return this._p.multiItemLabelProp=e,this}setMaxMultiItems(e){return this._p.maxMultiItems=e,this}setMultiItemsRestLabelProvider(e){return this._p.multiItemsRestLabelProvider=e,this}setFilterFn(e){const t=this._p;return t.filterFn===e||(t.filterFn=e,t.throttledUpdateListItems()),this}getFilterFn(){return this._p.filterFn}focusInput(){const e=this._p;return e.input&&e.input.focus(),this}blurInput(){const e=this._p;return e.input&&e.input.blur(),this}clear(){return this._performClearWithEvent(!0)?(this[g],this):this}getValue(){const e=this._p;return e.multi?e.selectedValues.slice(0):e.selectedValues.length>0?e.selectedValues[0]:void 0}setValue(e){return this._p.multi?this.setSelectedValues(Array.isArray(e)?e:void 0!==e?[e]:[]):this.setSelectedValues(void 0!==e?[e]:[])}getSelectedValues(){return this._p.selectedValues.slice(0)}setSelectedValues(e){const t=this._p,s=t.valueProp;t.multi||(e=e.slice(0,1));let i=new Set,l=[],r=[];for(let n of e){if(i.has(n))continue;i.add(n),l.push(n);let e=t.itemByValueMap.get(n);void 0!==e?r.push(e):r.push({[s]:n})}return t.selectedValues=l,t.selectedItems=r,t.selectionChanged=!0,t.resortBySelectionNeeded=!0,this._scheduleSync("full"),this}getSelectedValueCount(){return this._p.selectedValues.length}getSelectedItems(){return this._p.selectedItems.slice(0)}setSelectedItems(e){return this._setSelectedItems(e),this}openList(){const e=this._p;return e.dropList.isVisible()||e.isLoadingMode&&0===e.items.length||(this._trigger("open:before",{list:e.dropList}),e.dropList.setDirection(getComputedStyle(e.el).direction),e.dropList.show(this._getDropListPositionOptions()),this._repositionDropList(),this._repositionDropList(),e.dropList.hasFocusedItem()&&e.dropList.setFocusedItemAtIndex(e.dropList.getFocusedItemIndex())),this}closeList(){const e=this._p;return this[g]?this:e.dropList.isVisible()?(e.dropList.hide(),this):this}toggleList(e){const t=this._p;return(void 0===e?!t.dropList.isVisible():e)?this.openList():this.closeList()}isListOpen(){return!!this._p.dropListVisible}toggleLoading(e){return this.setIsLoadingMode(void 0===e?!this.getIsLoadingMode():!!e)}setIsLoadingMode(e){const t=this._p;return e=void 0===e||!!e,t.isLoadingMode===e||(t.isLoadingMode=e,t.isLoadingMode&&0===t.items.length&&this.isListOpen()?this.closeList():!t.isLoadingMode&&document.activeElement&&((t.multi||t.searchable)&&t.input.contains(document.activeElement)||!t.multi&&!t.searchable&&t.el.contains(document.activeElement))&&this.openList(),this._scheduleSync("render_base")),this}getIsLoadingMode(){return this._p.isLoadingMode}setDirection(e){return this._p.direction="ltr"===e?"ltr":"rtl"===e?"rtl":"auto",this._syncBaseClasses(),this}getDirection(){return this._p.direction}refreshSize(){return this._resizeInput(),this}on(e,t){return this._p.mitt.on(e,t),this}once(e,t){let s=i=>{this._p.mitt.off(e,s),t(i)};return this._p.mitt.on(e,s),this}off(e,t){return e||e?this._p.mitt.off(e,t):this._p.mitt.all.clear(),this}emit(e,t){return this._p.mitt.emit(e,t),this}_updateItemByValueMap(){const e=this._p,t=e.itemByValueMap=new Map,s=e.valueProp;for(let i of e.items)t.set(i[s],i)}_renderBase(){const s=this._p;if(s.inputBackBuffer||(s.inputBackBuffer=e.createElement("span",{css:{position:"absolute",zIndex:-1,left:0,top:"-9999px",whiteSpace:"pre"}})),s.input||(s.inputWrapper=e.createElement("span",{class:`${s.baseClassName}__search_wrapper`},s.input=e.createElement("input",{class:`${s.baseClassName}__search_field`,type:"search",autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",role:"textbox","aria-autocomplete":"list",readOnly:!(s.searchable||s.multi)}))),s.multi){if(s.singleWrapper&&(this._cleanupSingleWrapper(),t.remove(s.singleWrapper),delete s.singleWrapper),!s.list){this._unregisterDropdownEvents();const t=document.activeElement;s.list=e.createElement("ul",{class:`${s.baseClassName}__list`}),s.el.appendChild(s.list),s.list.appendChild(s.inputWrapper),s.el.classList.remove(`${s.baseClassName}__single`),s.el.classList.add(`${s.baseClassName}__multi`),s.sink.add(s.list,"click",(t=>{e.closestUntil(t.target,`.${s.baseClassName}__item_remove`,t.currentTarget)&&(s.disabled||this._removeMultiItemFromEvent(e.closestUntil(t.target,`.${s.baseClassName}__item`,t.currentTarget),t))})).add(s.list,"keydown",(t=>{e.closestUntil(t.target,`.${s.baseClassName}__item`,t.currentTarget)&&this._handleMultiKeydown(t)})),t===s.input&&s.input.focus(),this._registerDropdownEvents()}}else if(s.list&&(t.remove(s.list),s.sink.remove(s.list),delete s.list),!s.singleWrapper){this._unregisterDropdownEvents();const t=document.activeElement;s.singleWrapper=e.createElement("div",{class:`${s.baseClassName}__single_wrapper`}),s.el.appendChild(s.singleWrapper),s.el.appendChild(s.inputWrapper),s.el.classList.remove(`${s.baseClassName}__multi`),s.el.classList.add(`${s.baseClassName}__single`),t===s.input&&s.input.focus(),this._registerDropdownEvents()}s.hasOpenIndicator!==!!s.openIndicator&&(s.hasOpenIndicator?(s.openIndicator=e.createElement("span",{class:`${s.baseClassName}__open_indicator`}),s.el.appendChild(s.openIndicator)):(t.remove(s.openIndicator),delete s.openIndicator,s.el.classList.remove(`${s.baseClassName}__has_open_indicator`))),s.isLoadingMode!==!!s.spinner&&(s.isLoadingMode?(s.spinner=e.createElement("span",{class:`${s.baseClassName}__spinner`}),s.el.appendChild(s.spinner),s.el.classList.add(`${s.baseClassName}__has_spinner`)):(t.remove(s.spinner),delete s.spinner,s.el.classList.remove(`${s.baseClassName}__has_spinner`)))}_syncBaseClasses(){const e=this._p,t=e.el;if(!t)return;let s=[e.baseClassName];e.multi?s.push(`${e.baseClassName}__multi`):s.push(`${e.baseClassName}__single`),this.isListOpen()?s.push(`${e.baseClassName}__open_list`):s.push(`${e.baseClassName}__closed_list`),e.hasOpenIndicator&&s.push(`${e.baseClassName}__has_open_indicator`),e.clearButtonWrapper&&s.push(`${e.baseClassName}__has_clear`),e.isLoadingMode&&s.push(`${e.baseClassName}__has_spinner`),0===e.selectedValues.length&&s.push(`${e.baseClassName}__empty_selection`),e.selectedValues.length>0&&s.push(`${e.baseClassName}__has_selection`),(e.searchable||e.multi)&&s.push(`${e.baseClassName}__searchable`),"ltr"!==e.direction&&"rtl"!==e.direction||s.push(`${e.baseClassName}__`+e.direction),e.additionalClasses&&(s=s.concat(e.additionalClasses)),t.className=s.join(" ")}_setupDropdownMenu(){const t=this._p,s=t.valueProp;t.dropList&&(t.dropList.destroy(),delete t.dropList,t.itemsChanged=!0,t.selectionChanged=!0,t.resortBySelectionNeeded=!0);const i=t.renderNoResultsItem,l=t.unrenderNoResultsItem,r=(t.listOptions||{}).renderItem,n=(t.listOptions||{}).unrenderItem,o=i||r?(l,n)=>l&&l[s]===I?(i&&!1!==i(l,n)||n.appendChild(e.createElement("div",{class:"droplist-no-results-content",textContent:t.noResultsText})),!0):!!r&&r(l,n):null,a=l||r?(e,t)=>{if(e&&e[s]===I){if(l)return l(e,t)}else if(n)return n(e,t);return!1}:null,u=t.dropList=new m({virtualMinItems:10,...t.listOptions,renderItem:o,unrenderItem:a,multi:t.multi,capturesFocus:!1,labelProp:t.labelProp,valueProp:t.valueProp,on:(e,s)=>{switch(e){case"show:before":{t.dropListVisible=!0,t.el.setAttribute("aria-expanded","true"),t.el.classList.add(`${t.baseClassName}__open_list`),t.el.classList.remove(`${t.baseClassName}__closed_list`),t.resortBySelectionNeeded&&t.sortListCheckedFirst&&t.multi&&(t.itemsChanged=!0),this._updateListItems(),this._trigger("open",{list:u}),this._startTrackingPresence(),t.sink.add(window,"resize.trackposition",(()=>this._repositionDropList()));let e=t.el.parentNode;for(;e;)(e.scrollHeight>e.offsetHeight||e.scrollWidth>e.offsetWidth)&&(e===document.documentElement&&(e=window),t.sink.add(e,"scroll.trackposition",(()=>this._repositionDropList()))),e=e.parentNode}break;case"hide":if(t.dropListVisible=!1,t.el.setAttribute("aria-expanded","false"),t.el.classList.remove(`${t.baseClassName}__open_list`),t.el.classList.add(`${t.baseClassName}__closed_list`),t.multi||(this._setInputText(""),this._scheduleSync("render_base")),this._trigger("close"),this[g])return;this._stopTrackingPresence(),t.sink.remove(null,".trackposition");break;case"check":{if(!t.multi)return;const e=s.item,i=s.value;let l=s.checked;if(s.isGroup&&!t.treatGroupSelectionAsItems)return;let r={value:i,item:e,cancel:!1};if(this._trigger((l?"addsel":"removesel")+":before",r),r.cancel)return void t.dropList.setItemChecked(i,!l);if(l)t.selectedItems.push(e),t.selectedValues.push(i);else{const e=t.selectedValues.indexOf(i);-1!==e&&(t.selectedItems.splice(e,1),t.selectedValues.splice(e,1))}const n=!!s.isCheckingGroup;t.showSelection?l?(1===u.itemCount()&&this._setInputText(""),t.sortSelectedItems?n||this._scheduleSync("full"):(null!=t.maxMultiItems&&(t.treatGroupSelectionAsItems?t.selectedItems:t.selectedItems.filter((e=>!e._group))).length>t.maxMultiItems?this._scheduleSync("addOrUpdateMultiItemRestElement"):this._scheduleSync("addMultiItemElement",e),n||this._scheduleSync("render_base"))):(null!=t.maxMultiItems&&(t.treatGroupSelectionAsItems?t.selectedItems:t.selectedItems.filter((e=>!e._group))).length===t.maxMultiItems?this._scheduleSync("removeMultiItemRestElement"):this._scheduleSync("removeMultiItemElement",e),n||this._scheduleSync("render_base")):t.multi&&this._scheduleSync("syncPlaceholder"),this._trigger(l?"addsel":"removesel",{value:i,item:e})}break;case"groupcheck":if(!t.multi)return;s.affectedItems&&this._scheduleSync(t.sortSelectedItems?"full":"render_base");break;case"select":{if(t.multi)return;const e=s.item,i=s.value;if(!this._performSelectWithEvent(e,i))return;if(this[g])return;this.closeList(),("touch"===t.blurOnSingleSelection&&b||"touch"!==t.blurOnSingleSelection&&t.blurOnSingleSelection)&&t.input&&t.input.blur()}break;case"blur":this._handleOnBlur()}}});t.sink.add(u.el,"mousedown",(t=>{e.closestUntil(t.target,"li",t.currentTarget)&&t.preventDefault()})),this._registerDropdownEvents()}_handleOnBlur(){const e=this._p;setTimeout((()=>{this[g]||e.disabled||(this._trigger("search:blur"),this[g]||document.activeElement&&(e.input&&e.input.contains(document.activeElement)||e.dropList&&this.droplistElContains(document.activeElement,!0))||(e.throttledUpdateListItems&&e.throttledUpdateListItems.cancel(),this.closeList()))}))}_unregisterDropdownEvents(){this._p.sink.remove(null,".dropdown")}_registerDropdownEvents(){const t=this._p;this._unregisterDropdownEvents();const s=t.dropList;if(!s)return;let i=!1,l=null;const n=t.multi||t.searchable?t.input:t.el;t.sink.add(n,"keydown.dropdown",(e=>{if(e.currentTarget.readOnly)return;let i=!1,l=t.lastKeyAllowsNonTypeKeys;t.lastKeyAllowsNonTypeKeys=!1;let n=t.input&&t.input.value.length>0;switch(e.key){case r.VALUE_PAGE_UP:case r.VALUE_PAGE_DOWN:case r.VALUE_UP:case r.VALUE_DOWN:case r.VALUE_HOME:case r.VALUE_END:if((e.key===r.VALUE_HOME||e.key===r.VALUE_END)&&n&&!l){s._keydownFreeType(e);break}switch(t.lastKeyAllowsNonTypeKeys=!0,e.preventDefault(),e.key){case r.VALUE_PAGE_UP:s.isVisible()&&s.previousPage(e);break;case r.VALUE_PAGE_DOWN:s.isVisible()&&s.nextPage(e);break;case r.VALUE_UP:s.isVisible()?s.previous(e):this._movePrev();break;case r.VALUE_DOWN:s.isVisible()?s.next(e):this._moveNext();break;case r.VALUE_HOME:s.goToFirst(e);break;case r.VALUE_END:s.goToLast(e)}break;case r.VALUE_SPACE:l&&(t.lastKeyAllowsNonTypeKeys=!0,s.isVisible()&&s.hasFocusedItem()&&(i=!0,t.multi?s.toggleFocusedItem(e):s.triggerItemSelection(null,e),e.preventDefault()));break;case r.VALUE_ENTER:s.isVisible()&&s.hasFocusedItem()&&(i=!0,e.preventDefault(),s.triggerItemSelection(null,e));break;case r.VALUE_TAB:s.isVisible()&&s.hasFocusedItem()&&s.triggerItemSelection(null,e);break;case r.VALUE_ESCAPE:s.isVisible()&&(s.hide(e),e.preventDefault());break;default:s._keydownFreeType(e)}i||e.key!==r.VALUE_ENTER&&(e.key!==r.VALUE_SPACE||!t.lastKeyAllowsNonTypeKeys||t.multi||s.hasFocusedItem()||t.disabled)||(this.toggleList(),e.preventDefault(),e.stopPropagation())})),t.input&&t.sink.add(t.input,"input.dropdown",(()=>{t.disabled||(t.filterTerm=t.input.value.trim(),t.filteredItems=null,t.itemsChanged=!0,this._trigger("search",{value:t.input.value}),t.throttledUpdateListItems())})).add(t.input,"click.dropdown",(()=>{t.disabled||!t.multi&&t.searchable&&this.openList()})).add(t.input,"focus.dropdown",(()=>{t.disabled||(this._trigger("search:focus"),this[g]||(i=!1,this.openList(),i=!0,setTimeout((()=>{i=!1}),10)))})).add(t.input,"blur.dropdown",(()=>this._handleOnBlur())),t.sink.add(t.el,"mousedown.dropdown",(()=>{t.multi||t.searchable||i||t.disabled||this.toggleList(),i=!1})).add(t.el,"touchstart.dropdown",(s=>{if(l)return;if(l=s.changedTouches[0].identifier,this.isDisabled())return;if(e.closestUntil(s.target,`.${t.baseClassName}__item,.${t.baseClassName}__clear`,t.el))return;let i=()=>{l=null,t.sink.remove(t.el,".dropdown_touchextra")};(t.input||t.el).focus(),t.sink.add(t.el,"touchend.dropdown_touchextra",(e=>{if(!Array.prototype.find.call(s.changedTouches,(e=>e.identifier===l)))return i();e.preventDefault(),i()})).add(t.el,"touchmove.dropdown_touchextra",(e=>{e.preventDefault()})).add(t.el,"touchcancel.dropdown_touchextra",i)}))}_performSelectWithEvent(e,t){let s={value:t,item:e,cancel:!1};return this._trigger("select:before",s),!s.cancel&&!this[g]&&(this._setSelectedItems([e]),this._trigger("select",{value:t,item:e}),!0)}_performClearWithEvent(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t={cancel:!1};return this._trigger("clear:before",t),!t.cancel&&!this[g]&&(this._setSelectedItems([]),e&&this._setInputText(""),this._trigger("clear"),!0)}_movePrev(){const e=this._p;if(this.isMultiEnabled())return;let t=this.getSelectedItems(),s=e.filteredItems??e.items;if(e.currentItemsView&&e.currentItemsView.length===s.length&&(s=e.currentItemsView),s.length+(e.clearable?1:0)>1){let i=t.length>0?s.indexOf(t[0])-1:s.length-1;-1!==i||e.clearable||(i=s.length-1);let l=-1===i?null:s[i];l?this._performSelectWithEvent(l,l[e.valueProp]):this._performClearWithEvent()}}_moveNext(){const e=this._p;if(this.isMultiEnabled())return;let t=this.getSelectedItems(),s=e.filteredItems??e.items;if(e.currentItemsView&&e.currentItemsView.length===s.length&&(s=e.currentItemsView),s.length+(e.clearable?1:0)>1){let i=t.length>0?s.indexOf(t[0])+1:0;i===s.length&&(i=e.clearable?-1:0);let l=-1===i?null:s[i];l?this._performSelectWithEvent(l,l[e.valueProp]):this._performClearWithEvent()}}_updateListItems(){const e=this._p,t=e.dropList;if(!t||!e.dropListVisible)return;if(!e.filteredItems&&(e.filterTerm||e.filterOnEmptyTerm&&e.filterFn)&&this._refilterItems(),(e.itemsChanged||e.selectionChanged)&&(e.dropList._lastSerializedBox=null),e.itemsChanged){let s=e.filteredItems||e.items;(e.sortListItems||e.sortListCheckedFirst&&e.multi)&&(s=this._sortItems(s,e.sortListItems,e.sortListCheckedFirst&&e.multi,e.splitListCheckedGroups)),t.removeAllItems(),0===s.length&&e.noResultsText&&(s=[{[e.labelProp]:e.noResultsText,[e.valueProp]:I,_nointeraction:!0,_nocheck:!0}]),t.addItems(s),e.currentItemsView=s,e.itemsChanged=!1,e.selectionChanged=!0,e.resortBySelectionNeeded=!1}let s=!1;if(e.selectionChanged){if(e.multi)e.dropList.setCheckedValues(e.selectedValues);else{const t=e.dropList.itemIndexByValue(this.getValue());e.dropList.setFocusedItemAtIndex(t).setSingleSelectedItemAtIndex(t),s=e.dropList.hasFocusedItem()}e.selectionChanged=!1}this._repositionDropList(),s&&e.dropList.setFocusedItemAtIndex(e.dropList.getFocusedItemIndex())}_refilterItems(){const e=this._p,t=e.filterTerm,s=e.treatGroupSelectionAsItems;if(t||e.filterOnEmptyTerm&&e.filterFn){let i;if("function"==typeof e.filterFn&&(i=e.filterFn(e.items,t)),!Array.isArray(i))if(t){const l=new RegExp(o(t),"i"),r=e.labelProp,n=e.multiItemLabelProp;i=e.items.filter((e=>!(s||!e._group)||l.test(e[r]||e[n])))}else i=null;if(e.filteredItems=i,i&&!s){let e=-1,t=i.length;for(let s=0;s<t;s++)i[s]._group&&(-1!==e&&e===s-1&&(i.splice(e,1),s--,t--),e=s);-1!==e&&e===t-1&&i.splice(e,1)}}else e.filteredItems=null;this._trigger("itemschanged",{term:t,mutated:!1,count:this.getFilteredItemCount()}),e.itemsChanged=!0}_setSelectedItems(e){const t=this._p,s=t.valueProp;t.multi?(t.selectedItems=e.filter((e=>void 0!==e[s])),t.selectedValues=t.selectedItems.map((e=>e[s]))):(t.selectedItems=e.slice(0,1),t.selectedValues=e.slice(0,1).map((e=>e[s]))),t.selectionChanged=!0,t.resortBySelectionNeeded=!0,this._updateListItems(),this._scheduleSync("full")}_scheduleSync(e,t){const s=this._p;s.syncQueue||(s.syncQueue=[]),("full"===e||"render_items"===e&&!s.syncQueue.some((e=>"full"===e.mode)))&&(s.syncQueue.length=0),0!==s.syncQueue.length&&["full","render_items"].includes(e)||s.syncQueue.push({mode:e,data:t}),s.syncTimeout||(s.syncTimeout=setTimeout((()=>{delete s.syncTimeout;let e=s.syncQueue;delete s.syncQueue,this._performSync(e)})))}_performSync(e){const t=this._p;if(!this[g])for(let s of e)switch(s.mode){case"full":this._syncFull(!0,!0);break;case"render_base":this._syncFull(!1,!1);break;case"render_items":this._syncFull(!0,!1);break;case"render_list":this._syncFull(!1,!0);break;case"render_clear":this._syncClearButton(),this._resizeInput();break;case"singleItem":this._syncSingleItem();break;case"syncPlaceholder":this._syncPlaceholder();break;case"removeMultiItemElement":if(t.showSelection)this._syncPlaceholder();else{const e=t.valueProp,i=s.data[e];let l=t.multiItemEls.findIndex((t=>t[_][e]===i));-1!==l&&this._removeMultiItemElementByIndex(l)}break;case"addMultiItemElement":t.showSelection?this._addMultiItemElement(s.data):this._syncPlaceholder();break;case"addOrUpdateMultiItemRestElement":t.showSelection?this._addMultiItemRestElement():this._syncPlaceholder();break;case"removeMultiItemRestElement":if(t.showSelection){let e=t.multiItemEls[t.multiItemEls.length-1];e?.[_]?.[t.valueProp]===f&&this._removeMultiItemElementByIndex(t.multiItemEls.length-1)}else this._syncPlaceholder();break;case"resize_input":this._resizeInput()}}_cleanupSingleWrapper(){const e=this._p;if(e.singleWrapper){if(e.unrenderSingleItem&&e.singleWrapper.childNodes.length>0)try{e.unrenderSingleItem(e.singleWrapper[_],e.singleWrapper)}catch(e){console.error(e)}delete e.singleWrapper[_],e.singleWrapper.innerHTML=""}}_removeMultiItemElementByIndex(e){const s=this._p,i=s.multiItemEls;if(i.length>e){const l=i[e],r=l[_];let n=r?.[s.valueProp]===f?s.unrenderRestMultiItem??s.unrenderMultiItem:s.unrenderMultiItem;if(n&&l.childNodes.length>0)try{n(r,l)}catch(e){console.error(e)}t.remove(l),e===i.length-1?i.pop():i.splice(e,1)}}_renderSingleItemContent(e){const t=this._p;if(!t.renderSingleItem||!1===t.renderSingleItem(e,t.singleWrapper)){const s=t.labelProp;let i=e[t.multiItemLabelProp]||e[s];null==i&&(i=""),t.singleWrapper.appendChild(document.createTextNode(i))}}_renderMultiItemContent(t,s){const i=this._p;let l=t[i.valueProp]===f?i.renderRestMultiItem??i.renderMultiItem:i.renderMultiItem;if(!l||!1===l(t,s)){const l=i.labelProp,r=t[i.multiItemLabelProp]||t[l];s.appendChild(e.createElement("span",{textContent:r}))}}_addMultiItemElement(e){const s=this._p,i=this._renderMultiItem(e);return!!i&&(t.before(s.inputWrapper,i),s.multiItemEls.push(i),!0)}_addMultiItemRestElement(){const e=this._p;let t=e.selectedItems.slice(0),s=(e.treatGroupSelectionAsItems?t:t.filter((e=>!e._group))).length-e.maxMultiItems,i=e.multiItemsRestLabelProvider?e.multiItemsRestLabelProvider(s,t):`+ ${s}`;this._addMultiItemElement({items:t,[e.valueProp]:f,[e.labelProp]:i})}_syncClearButton(){const s=this._p,i=s.multiItemLabelProp;s.selectedItems.length>0&&s.selectedItems.some((e=>!1!==e[i]))&&s.clearable&&s.showSelection?s.clearButtonWrapper||(s.clearButtonWrapper=e.createElement(s.multi?"li":"span",{class:`${s.baseClassName}__clear`},s.clearButton=e.createElement("button")),s.multi?t.append(s.list,s.clearButtonWrapper):t.append(s.el,s.clearButtonWrapper),s.el.classList.add(`${s.baseClassName}__has_clear`),s.sink.add(s.clearButton,"click",(()=>{this.isDisabled()||this.clear()}))):s.clearButtonWrapper&&(s.sink.remove(s.clearButton,"click"),t.remove(s.clearButtonWrapper),delete s.clearButtonWrapper,delete s.clearButton,s.el.classList.remove(`${s.baseClassName}__has_clear`))}_syncPlaceholder(){const e=this._p,t=e.multiItemLabelProp;let s="";e.multi&&!e.showSelection?s="function"==typeof e.multiPlaceholderFormatter?e.multiPlaceholderFormatter(e.selectedItems):0===e.selectedItems.length?e.placeholder||"":((e,t)=>{if(0===e.length)return"";let s=e[0][t]+"";return e.length>1&&(s+=` (+${e.length-1})`),s})(e.selectedItems,e.labelProp):0!==e.selectedItems.length&&e.showSelection&&!e.selectedItems.every((e=>!1===e[t]))||(s=null==e.placeholder?"":e.placeholder+""),e.input.setAttribute("placeholder",s),e.showPlaceholderInTooltip?e.input.setAttribute("title",s):e.input.removeAttribute("title")}_syncSingleItem(){const e=this._p;e.singleWrapper&&this._cleanupSingleWrapper();const t=e.selectedItems;t.length>0&&(this._renderSingleItemContent(t[0]),e.singleWrapper[_]=t[0])}_syncFull(e,s){const i=this._p,l=i.multiItemLabelProp;if(this._renderBase(),this._syncClearButton(),this._syncPlaceholder(),(e=i.multi&&i.showSelection&&(e||i.selectedItems.filter((e=>!1!==e[l])).length!==i.multiItemEls.length))||!i.showSelection||!i.multi)for(;i.multiItemEls.length>0;)this._removeMultiItemElementByIndex(i.multiItemEls.length-1);if(i.multi){if(e){const e=i.selectedItems,t=i.treatGroupSelectionAsItems;if(i.sortSelectedItems){const t=i.labelProp,s=i.multiItemLabelProp,l=i.valueProp,r=i.stickyValues,n=i.sortItemComparator||((e,i)=>{if(null!==r){let t=r.has(e[l]),s=r.has(i[l]);if(t&&!s)return-1;if(!t&&s)return 1}const n=e[s]||e[t],o=i[s]||i[t];return n<o?-1:n>o?1:0});e.sort(n),i.selectedValues=e.map((e=>e[l]))}let s=0,l=i.maxMultiItems,r=!1;for(let i=0;i<e.length;i++)if(t||!e[i]._group){if(null!=l&&s===l){r=!0;break}this._addMultiItemElement(e[i])&&s++}r&&this._addMultiItemRestElement()}}else i.multi||this._syncSingleItem();return t.getRootNode(i.el)!==document||(t.toggleClass(i.el,`${i.baseClassName}__empty_selection`,0===i.selectedValues.length),t.toggleClass(i.el,`${i.baseClassName}__has_selection`,i.selectedValues.length>0),i.searchable||i.multi?(i.input&&(i.input.readOnly=!1),i.el.classList.add(`${i.baseClassName}__searchable`)):(i.input&&(i.input.readOnly=!0),i.el.classList.remove(`${i.baseClassName}__searchable`)),this._resizeInput(),s&&this._updateListItems()),this}_trigger(e,t){const s=this._p;void 0!==s&&(s.on&&s.on(e,...void 0===t?[]:[t]),s.mitt.emit(e,t))}_renderMultiItem(t){const s=this._p,i=s.labelProp,l=t[s.multiItemLabelProp]??t[i];if(!1===l)return null;const r=e.createElement("li",{class:`${s.baseClassName}__item`,tabindex:"0",title:l},[e.createElement("span",{class:`${s.baseClassName}__item_remove`,role:"presentation"})]);return this._renderMultiItemContent(t,r),r[_]=t,r}_removeMultiItemFromEvent(t,s){const i=this._p;let l;if(/key/.test(s.type)){const n=s;n.key===r.VALUE_DELETE?l=e.next(t,`.${i.baseClassName}__item,.${i.baseClassName}__search_wrapper`):n.key===r.VALUE_BACK_SPACE&&(l=e.prev(t,`.${i.baseClassName}__item,.${i.baseClassName}__search_wrapper`))}else/click|mouse|touch/.test(s.type)&&(l=e.next(t,`.${i.baseClassName}__item,.${i.baseClassName}__search_wrapper`));const n=t[_],o=n[i.valueProp];if(void 0!==n)if(o===f){let e=(i.treatGroupSelectionAsItems?i.selectedItems:i.selectedItems.filter((e=>!e._group))).slice(i.maxMultiItems),t=[];for(let s of e){let e={value:o,item:s,cancel:!1};this._trigger("removesel:before",e),e.cancel||t.push(s)}if(t.length>0){this._removeMultiItemElementByIndex(i.multiItemEls.length-1);for(let e of t){let t=i.selectedItems.indexOf(e);-1===t&&(t=i.selectedValues.indexOf(o[i.valueProp])),-1!==t&&(i.selectedItems.splice(t,1),i.selectedValues.splice(t,1),i.selectionChanged=!0,i.resortBySelectionNeeded=!0)}}e.length>t.length&&this._addMultiItemRestElement(),t.length>0&&this._scheduleSync("render_list")}else{let e={value:o,item:n,cancel:!1};if(this._trigger("removesel:before",e),e.cancel)return this;this._removeMultiItem(n),this._trigger("removesel",{value:o,item:n})}return l||(l=i.el.querySelector(`.${i.baseClassName}__item, .${i.baseClassName}__search_field`)),v(l,`${i.baseClassName}__search_wrapper`)&&(l=l.querySelector("input")),l&&l.focus(),this}_removeMultiItem(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const s=this._p,i=s.valueProp,l=s.labelProp,r=e[i];let n=s.selectedItems.indexOf(e);-1===n&&(n=s.selectedValues.indexOf(r)),-1!==n&&(s.selectedItems.splice(n,1),s.selectedValues.splice(n,1),s.selectionChanged=!0,s.resortBySelectionNeeded=!0),n=s.multiItemEls.findIndex((t=>t[_]===e)),-1===n&&(n=s.multiItemEls.findIndex((e=>e[_][i]===r))),-1!==n&&this._removeMultiItemElementByIndex(n),t&&(this._setInputText(e[s.multiItemLabelProp]||e[l]),s.input.focus(),s.input.selectionStart=s.input.selectionEnd=s.input.value.length),this._scheduleSync("render_list")}_setInputText(e){const t=this._p;t.input.value=null==e?"":String(e),t.filterTerm="",t.filteredItems=null,t.itemsChanged=!0}_resizeInput(){const e=this._p,i=e.el;if(!i.parentNode||!document.body.contains(i))return this;const l=e.input,r=e.inputBackBuffer;let n=l.value||l.placeholder;t.toggleClass(i,`${e.baseClassName}__has_input`,!!n),t.toggleClass(i,`${e.baseClassName}__empty_input`,!n);let o=!1;if(e.multi&&0===e.multiItemEls.length&&e.showSelection){l.style.width="";let t=0,r=0,n=getComputedStyle(e.list||i,"::before");n.content&&"none"!==n.content&&"absolute"!==n.position&&"none"!==n.float&&(t=s.getPseudoElementWidth(e.list||i,"::before",!0,!0,!0));let a=getComputedStyle(e.list||i,"::after");a.content&&"none"!==a.content&&"absolute"!==a.position&&"none"!==a.float&&(r=s.getPseudoElementWidth(e.list||i,"::after",!0,!0,!0));let u=s.getElementWidth(e.list||i);u-=t+r,l.style.width=`${u}px`,o=!0}else{s.setCssProps(r,s.getCssProps(l,y)),r.textContent=n,i.appendChild(r);const a=getComputedStyle(l),u=(parseFloat(a.paddingLeft)||0)+(parseFloat(a.paddingRight)||0),c=.75*(parseFloat(a["font-size"])||0)+u,d=s.getElementWidth(r,!0,!0),h=s.getElementWidth(l,!0,!0);let m=Math.max(d,c);if(m!==h){s.setElementWidth(l,m,!0,!0);let t=(parseFloat(a.borderLeftWidth)||0)+(parseFloat(a.borderRightWidth)||0),i=l.scrollWidth+t;if(i>m){let e=i-m;l.style.width=`${parseFloat(l.style.width)+e}px`,m+=e}if(e.singleWrapper&&(e.singleWrapper.style.width="",n)){let i=m-u-t;s.getElementWidth(e.singleWrapper,!1,!1)<i&&s.setElementWidth(e.singleWrapper,i,!1,!1)}o=!0}t.remove(r)}return o&&this._trigger("input:resize"),this}_repositionDropList(){const e=this._p,t=e.el;if(!e.dropList||!e.dropListVisible||!e.dropList.isVisible())return this;const s=t.getBoundingClientRect(),i=s.left+","+s.top+","+s.right+","+s.bottom;return e.dropList._lastSerializedBox!==i&&(e.dropList.relayout(this._getDropListPositionOptions()),e.dropList._lastSerializedBox=i),this}_handleInputKeydown(e){const t=this._p,s=e.target;if(e.key===r.VALUE_BACK_SPACE&&e.ctrlKey&&0===s.value.length)this.clear(),e.preventDefault();else if(e.key===r.VALUE_BACK_SPACE&&0===s.value.length){const s=t.multiItemEls[t.multiItemEls.length-1];if(!s||void 0===s[_].value)return;const i=s[_],l=i[t.valueProp];let r={value:l,item:i,cancel:!1};if(this._trigger("removesel:before",r),r.cancel)return;this._removeMultiItem(i,!0),this._trigger("removesel",{value:l,item:i}),e.preventDefault()}}_handleMultiKeydown(t){const s=this._p;if(s.disabled)return;const i="rtl"===getComputedStyle(s.el).direction;let l;if(t.key===(i?r.VALUE_LEFT:r.VALUE_RIGHT))l=e.next(t.target,`.${s.baseClassName}__item,.${s.baseClassName}__search_wrapper`),v(l,`${s.baseClassName}__search_wrapper`)&&(l=l.querySelector("input")),l&&l.focus(),t.preventDefault();else if(t.key===(i?r.VALUE_RIGHT:r.VALUE_LEFT))l=e.prev(t.target,`.${s.baseClassName}__item,.${s.baseClassName}__search_wrapper`),v(l,`${s.baseClassName}__search_wrapper`)&&(l=l.querySelector("input")),l&&l.focus(),t.preventDefault();else if(t.key===r.VALUE_BACK_SPACE&&t.ctrlKey){const i=[];let l=t.target;for(;l;)i.push(l),l=e.prev(l,`.${s.baseClassName}__item`);for(;i.length;)this._removeMultiItemFromEvent(i.shift(),t);t.preventDefault()}else t.key!==r.VALUE_DELETE&&t.key!==r.VALUE_BACK_SPACE||(this._removeMultiItemFromEvent(e.closestUntil(t.target,`.${s.baseClassName}__item`,s.el),t),t.preventDefault())}_getDropListPositionOptions(){return{target:this._p.el,offset:{x:0,y:0},anchor:{x:"start",y:"bottom"},position:{x:"start",y:"top"},updateWidth:!0}}_startTrackingPresence(){const e=this._p;this._stopTrackingPresence(),e.presenceInt=setInterval((function(){t.getRootNode(e.el)!==document&&this.hide()}),200)}_stopTrackingPresence(){const e=this._p;e.presenceInt&&(clearInterval(e.presenceInt),e.presenceInt=null)}_sortItems(e,t,s,i){const l=this._p;if(!t&&!s)return e;const r=l.labelProp,n=l.multiItemLabelProp,o=l.valueProp,a=l.stickyValues,u=l.sortItemComparator||((e,t)=>{if(null!==a){let s=a.has(e[o]),i=a.has(t[o]);if(s&&!i)return-1;if(!s&&i)return 1}const s=e[r]||e[n],i=t[r]||t[n];return s<i?-1:s>i?1:0});let c=[],d=null,h=[c];const m=new Set(l.selectedValues);let p,_,g;for(_=0,g=e.length;_<g;_++)p=e[_],p._group&&c.length&&(c=[],h.push(c)),c.push(p);c.length||(h.length=0),a&&e.length>0&&!e[0]._group&&(d=h[0].filter((e=>a.has(e[o]))),d.length>0?(h[0]=h[0].filter((e=>!a.has(e[o]))),0===h[0].length&&h.shift()):d=null),t&&h.sort(((e,t)=>{if(e=e[0],t=t[0],null!==a){let s=a.has(e[o]),i=a.has(t[o]);if(s&&!i)return-1;if(!s&&i)return 1}return!e._group&&t._group?-1:e._group&&!t._group?1:u(e,t)})),d&&h.unshift(d);const I=[],f=[];for(let e=0,i=h.length;e<i;e++)c=h[e],c.sort(((e,i)=>{if(e._group&&!i._group)return-1;if(!e._group&&i._group)return 1;if(s){const t=m.has(e[o]),s=m.has(i[o]);if(t&&!s)return-1;if(!t&&s)return 1}return t?u(e,i):0})),f.push(c);if(s&&i){let e;for(let t=0,s=h.length;t<s;t++)if(c=h[t],c!==d){e=null;for(let t=0,s=c.length;t<s;t++)if(p=c[t],!p._group){if(!m.has(p[l.valueProp]))break;e||(e=[],c[0]._group&&e.push(c[0])),e.push(p),c.splice(t--,1),s--}if(e&&(I.push(e),0===c.length||1===c.length&&c[0]._group)){h.splice(t--,1),s--;let e=f.indexOf(c);-1!==e&&f.splice(e,1)}}else{I.push(d);let e=f.indexOf(d);-1!==e&&f.splice(e,1)}}const b=[];b.length=e.length;let v=0;h=I.length?I.concat(f):f;for(let e=0,t=h.length;e<t;e++)for(c=h[e],_=0,g=c.length;_<g;_++)b[v++]=c[_];return b}};
|
package/dist/lib.es6.js
CHANGED
package/dist/lib.es6.min.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @danielgindi/selectbox 1.0.
|
|
2
|
+
* @danielgindi/selectbox 1.0.147
|
|
3
3
|
* git://github.com/danielgindi/selectbox.git
|
|
4
4
|
*/
|
|
5
5
|
import{createElement as e,closestUntil as t,setElementAttrs as s,next as i,prev as l}from"@danielgindi/dom-utils/lib/Dom";import{remove as r,toggleClass as n,before as o,append as a,getRootNode as u}from"@danielgindi/dom-utils/lib/DomCompat";import{setCssProps as c,getElementOffset as d,getElementHeight as h,getElementWidth as m,anchoredPosition as p,setElementHeight as _,parseTransition as g,setElementWidth as I,getPseudoElementWidth as f,getCssProps as b}from"@danielgindi/dom-utils/lib/Css";import v from"@danielgindi/dom-utils/lib/DomEventsSink";import y from"@danielgindi/virtual-list-helper";import{VALUE_ESCAPE as S,VALUE_SPACE as C,VALUE_ENTER as L,VALUE_RIGHT as k,VALUE_LEFT as w,VALUE_DOWN as x,VALUE_UP as E,VALUE_END as T,VALUE_HOME as N,VALUE_PAGE_DOWN as M,VALUE_PAGE_UP as P,VALUE_TAB as F,VALUE_DELETE as V,VALUE_BACK_SPACE as B}from"keycode-js";import W from"mitt";var D=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");const $=Symbol("item"),O=Symbol("destroyed"),A=Symbol("ghost"),H=Object.prototype.hasOwnProperty;let R={baseClassName:"droplist",autoItemBlur:!0,autoItemBlurDelay:300,capturesFocus:!0,multi:!1,keyDownHandler:null,autoCheckGroupChildren:!0,useExactTargetWidth:!1,constrainToWindow:!0,autoFlipDirection:!0,estimateWidth:!1,virtualMinItems:100,labelProp:"label",valueProp:"value",on:null};class z{constructor(t){const s={...R};for(let[e,i]of Object.entries(t))void 0!==i&&(s[e]=i);const i=this._p={ownsEl:!0,elOriginalDisplay:"",baseClassName:s.baseClassName,additionalClasses:s.additionalClasses,direction:"ltr"===s.direction?"ltr":"rtl"===s.direction?"rtl":"auto",autoItemBlur:s.autoItemBlur,autoItemBlurDelay:s.autoItemBlurDelay,capturesFocus:s.capturesFocus,multi:s.multi,keyDownHandler:s.keyDownHandler,autoCheckGroupChildren:s.autoCheckGroupChildren,useExactTargetWidth:s.useExactTargetWidth,constrainToWindow:s.constrainToWindow,autoFlipDirection:s.autoFlipDirection,estimatedItemHeight:s.estimatedItemHeight,estimateWidth:s.estimateWidth,virtualMinItems:s.virtualMinItems,labelProp:s.labelProp,valueProp:s.valueProp,renderItem:s.renderItem,unrenderItem:s.unrenderItem,on:s.on||null,silenceEvents:!0,mitt:W(),focusItemIndex:-1,focusItemEl:null,sink:new v};let l=[i.baseClassName];i.additionalClasses&&(l=l.concat((i.additionalClasses+"").split(" ").filter((e=>e))));const r={top:"-9999px"};let n=s.el;if(n instanceof Element?(i.elOriginalDisplay=n.style.display||"",n.classList.add(...l),n.role="menu",c(n,r),i.ownsEl=!1):n=e("ul",{class:l.join(" "),role:"menu",css:r}),i.el=n,i.items=[],i.groupCount=0,i.mouseHandled=!1,i.virtualListHelper=new y({list:i.el,virtual:!0,buffer:5,estimatedItemHeight:s.estimatedItemHeight||20,itemElementCreatorFn:()=>e("li",{role:"menuitem",tabIndex:i.capturesFocus?-1:null}),onItemRender:(e,t)=>{let s;t===A?(s={label:i.lastMeasureLongestLabelText,value:"Measure",[$]:{[i.labelProp]:i.lastMeasureLongestLabelText,[i.valueProp]:"Measure"}},e.setAttribute("aria-hidden","true")):s=i.items[t],s||console.warn("onItemRender called for ("+t+") which has no item"),e.className=`${i.baseClassName}__item`;const l=e.classList;i.multi?s._nocheck?l.add(`${i.baseClassName}__item_multi_nocheck`):(l.add(`${i.baseClassName}__item_multi`),s._checked&&l.add(`${i.baseClassName}__item_checked`)):l.add(`${i.baseClassName}__item_single`),s._group&&l.add(`${i.baseClassName}__item_group`),s._child&&l.add(`${i.baseClassName}__item_child`),s._nointeraction&&l.add(`${i.baseClassName}__item_nointeraction`),i.focusItemIndex===t&&(i.focusItemEl=e,l.add(`${i.baseClassName}__item_focus`)),this._renderItemContent(s,e),e[$]=s}}),"function"==typeof i.unrenderItem){const e=i.unrenderItem;i.virtualListHelper.setOnItemUnrender((t=>{try{e(t[$][$],t)}catch(e){console.error(e)}delete t[$],i.focusItemEl===t&&(i.focusItemEl=null)}))}else i.virtualListHelper.setOnItemUnrender((e=>{delete e[$],i.focusItemEl===e&&(i.focusItemEl=null)}));i.capturesFocus&&(n.tabIndex=0),this._hookMouseEvents(),this._hookTouchEvents(),this._hookFocusEvents(),this._hookKeyEvents(),this.silenceEvents=!1}destroy(){if(this[O])return;this[O]=!0;const e=this._p;if(clearTimeout(e.blurTimer),clearTimeout(e.filterTimer),e.sink.remove(),e.virtualListHelper.destroy(),e.el&&r(e.el),e.currentSubDropList&&(e.currentSubDropList?.droplist?.destroy(),e.currentSubDropList=null),!e.ownsEl){for(let t of Array.from(e.el.classList))t.startsWith(e.baseClassName)&&e.el.classList.remove(t);e.el.removeAttribute("role");for(let t of["position","left","top","right","bottom","z-index"])e.el.style[t]="";e.el.style.display=e.elOriginalDisplay}e.lastPositionTarget&&(e.lastPositionTarget.classList.remove(`has_${e.baseClassName}`,`has_${e.baseClassName}_above`,`has_${e.baseClassName}_below`),delete e.lastPositionTarget),this._p=null}get el(){return this._p.el}elContains(e,t=!0){return!!this.el.contains(e)||!(!t||!this._p.currentSubDropList?.droplist?.elContains(e))}setAdditionalClasses(e){return this._p.additionalClasses=e,this._syncBaseClasses(),this}setDirection(e){return this._p.direction="ltr"===e?"ltr":"rtl"===e?"rtl":"auto",this._syncBaseClasses(),this}getDirection(){return this._p.direction}setLabelProp(e){return this._p.labelProp=e,this}setRenderItem(e){return this._p.renderItem=e,this}setUnrenderItem(e){const t=this._p;if(t.unrenderItem=e,"function"==typeof t.unrenderItem){const e=t.unrenderItem;t.virtualListHelper.setOnItemUnrender((s=>{try{e(s[$][$],s)}catch(e){console.error(e)}delete s[$],t.focusItemEl===s&&(t.focusItemEl=null)}))}else t.virtualListHelper.setOnItemUnrender((e=>{delete e[$],t.focusItemEl===e&&(t.focusItemEl=null)}));return this}setValueProp(e){return this._p.valueProp=e,this}_syncBaseClasses(){const e=this._p,t=e.el;if(!t)return;let s=[e.baseClassName];"ltr"!==e.direction&&"rtl"!==e.direction||s.push(`${e.baseClassName}__`+e.direction),e.additionalClasses&&(s=s.concat(e.additionalClasses)),t.className=s.join(" ")}blurFocusedItem(){const e=this._p;if(clearTimeout(e.blurTimer),!this.hasFocusedItem())return;let t=e.focusItemEl;t&&(t.classList.remove(`${e.baseClassName}__item_focus`),e.focusItemEl=null);const s=e.items[e.focusItemIndex];e.focusItemIndex=-1,s&&(e.currentSubDropList&&this._hideSublist(),this._trigger("itemblur",{value:s.value,item:s[$]??s}))}nextPage(e){this._move("next_page",e)}previousPage(e){this._move("prev_page",e)}goToFirst(e){this._move("first",e)}goToLast(e){this._move("last",e)}toggleFocusedItem(){const e=this._p;if(this.hasFocusedItem()&&e.multi){let t=e.items[e.focusItemIndex];if(t._nocheck||t._nointeraction)return this;t._checked=!t._checked,e.focusItemEl&&n(e.focusItemEl,`${e.baseClassName}__item_checked`,t._checked),this._trigger("check",{value:t.value,item:t[$]??t,checked:t._checked,isGroup:t._group,isCheckingGroup:!1}),this._updateGroupStateForItem(t)}return this}triggerItemSelection(e,s){const i=this._p;return i.focusItemEl=i.focusItemEl||t(s.target,"li",i.el),i.focusItemIndex=i.virtualListHelper.getItemIndexFromElement(i.focusItemEl),void 0===i.focusItemIndex&&(i.focusItemIndex=-1),!(e=e??i.focusItemEl[$])._nointeraction&&(i.multi||this._setSingleSelectedItemEl(i.focusItemEl),this._trigger("select",{value:e?e.value:void 0,item:e[$]??e,event:s,el:i.focusItemEl}),!0)}addItem(e,t=-1){return this.addItems([e],t)}addItems(e,t=-1){const s=this._p,i=s.labelProp,l=s.valueProp;let r=s.multi,n=s.items;(null==t||t<0||t>=s.items.length)&&(t=-1),this._determineVirtualMode(n.length+e.length);for(let o=0,a=e.length;o<a;o++){let a=e[o],u={[$]:a,label:a[i],value:a[l],_nocheck:!!a._nocheck,_nointeraction:!!a._nointeraction,_subitems:a._subitems};r&&(u._checked=!!a._checked),a._group&&(u._group=!0,s.groupCount++),a._child&&(u._child=!0),-1!==t?n.splice(t,0,u):n.push(u),-1!==t&&t++}return s.virtualListHelper.addItemsAt(e.length,-1===t?t:t-e.length).render(),this}setItems(e){const t=this._p;return t.items.length=0,t.groupCount=0,t.virtualListHelper.setCount(0),this.addItems(e),this.updateSublist(),this}updateItemByValue(e,t){const s=this._p;let i=this.itemIndexByValue(e);if(-1===i)return this;let l=this.itemAtIndex(i);return l[$]=t,H.call(t,s.labelProp)&&(l.label=t[s.labelProp]),H.call(t,s.valueProp)&&(l.value=t[s.valueProp]),H.call(t,"_nocheck")&&(l._nocheck=!!t._nocheck),H.call(t,"_nointeraction")&&(l._nointeraction=!!t._nointeraction),H.call(t,"_subitems")&&(l._subitems=!!t._subitems),s.multi&&H.call(t,"_checked")&&(l._checked=!!t._checked),H.call(t,"_group")&&!!t._group!==l._group&&(l._group?s.groupCount--:s.groupCount++,t._group=!!l._group),H.call(t,"_child")&&(l._child=!!t._child),s.virtualListHelper.isItemRendered(i)&&s.virtualListHelper.refreshItemAt(i).render(),this}removeItem(e,t){const s=this._p;let i=this.itemIndexByValueOrLabel(e,t);return-1===i||(s.items.splice(i,1)[0]._group&&s.groupCount--,s.virtualListHelper.removeItemsAt(i,1).render()),this}removeAllItems(){const e=this._p;return e.items.length=0,e.groupCount=0,e.virtualListHelper.setCount(0).render(),this}invalidate(){return this._p.virtualListHelper.invalidate().render(),this}itemDataByValue(e){const t=this._p;for(let s=0,i=t.items.length;s<i;s++){let i=t.items[s];if(i.value===e)return i[$]}return null}itemIndexByValue(e){const t=this._p;for(let s=0,i=t.items.length;s<i;s++)if(t.items[s].value===e)return s;return-1}itemIndexByValueOrLabel(e,t){const s=this._p;for(let i=0,l=s.items.length;i<l;i++){let l=s.items[i];if(l.value===e||l.label===t)return i}return-1}items(){return this._p.items.map((e=>e[$]))}itemsReference(){return this._p.items}itemCount(){return this._p.items.length}itemAtIndex(e){return this._p.items[e]?.[$]}relayout(e){const t=this._p,s=t.el;if(!this.isVisible())return this;let i=window,l={},r=e.targetOffset||d(e.target);l.left=r.left,l.top=r.top,l.height=null==e.targetHeight?h(e.target,!0,!0):e.targetHeight,l.width=null==e.targetWidth?m(e.target,!0,!0):e.targetWidth,l.bottom=l.top+l.height;let o={};o.top=i.pageYOffset,o.left=i.pageXOffset,o.width=i.innerWidth,o.height=i.innerHeight,o.bottom=o.top+o.height,o.right=o.left+o.width;let a=e.position&&"bottom"===e.position.y?"above":"below";s.style.width="",(t.estimateWidth||t.virtualListHelper.isVirtual())&&this._measureItem(),t.virtualListHelper.isVirtual()&&t.virtualListHelper.render(),e.updateWidth||"number"==typeof e.updateWidth?this._updateWidth(e):this._updateWidth();let u,g=l.top-o.top,I=o.bottom-l.bottom;const f=getComputedStyle(s);let b="border-box"===f.boxSizing,v=(parseFloat(f.paddingTop)||0)+(parseFloat(f.paddingBottom)||0),y=(parseFloat(f.borderTopWidth)||0)+(parseFloat(f.borderBottomWidth)||0);t.virtualListHelper.isVirtual()?u=t.virtualListHelper.estimateFullHeight()+v+y:(s.style.height="",s.style.top="-9999px",u=Math.max(h(t.el),s.scrollHeight),u+=v+y);let S=parseFloat(f.maxHeight);isNaN(S)||(b||(S+=v+y),u=Math.min(u,S));let C=g>=u,L=I>=u,k=t.currentDirection||a;"above"===k&&!C&&L?k="below":"below"===k&&!L&&C?k="above":C&&L?k!==a&&("above"===a&&g>=I||"below"===a&&I>=g)&&(k=a):C||L||(g>I?k="above":I>g&&(k="below")),t.currentDirection=k;let w={width:m(s,!0,!0),height:Math.min(u,Math.max(g,I,0))},x=void 0!==e.targetRtl?e.targetRtl:null!=e.target&&"rtl"===getComputedStyle(e.target).direction,E="rtl"===getComputedStyle(document.documentElement).direction,T=p(e.target,e.anchor?e.anchor.x:"start",e.anchor?e.anchor.y:"bottom",l,x),N=p(s,e.position?e.position.x:"start",e.position?e.position.y:"top",w,x),M="top"===N.ySpec&&"above"===k||"bottom"===N.ySpec&&"below"===k||"bottom"!==N.ySpec&&"top"!==N.ySpec&&"above"===k,P=void 0!==i.pageXOffset?i.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft;P=Math.abs(P),E&&(P=document.documentElement.scrollWidth-P-document.documentElement.clientWidth);let F=P,V=document.documentElement.clientWidth+P-w.width,B={position:"absolute",left:l.left,top:l.top+(M?T.bottom-N.bottom:T.top-N.top)};if(E&&(B.left-=document.documentElement.clientWidth-document.documentElement.scrollWidth),B.left+=T.left-N.left,e.offset&&(e.offset.y&&(M?B.top-=e.offset.y:B.top+=e.offset.y),e.offset.x)){let t="rtl"===f.direction;B.left+=t?-e.offset.x:e.offset.x}if(t.autoFlipDirection&&("right"===N.xSpec&&B.left<F&&(Math.max(B.left,F)+w.width-l.left)/l.width>.5||"left"===N.xSpec&&B.left>V&&(Math.min(B.left,V)-l.left)/l.width<.5)&&(B.left-=T.left-N.left,B.left+=T.right-N.right),t.constrainToWindow)for(let e of E?["min","max"]:["max","min"])"min"===e&&B.left<F?B.left=F:"max"===e&&B.left>V&&(B.left=V);return B.left+="px",B.top+="px",c(s,B),_(s,w.height,!0,!0),t.virtualListHelper.render(),e&&e.target&&(t.lastPositionTarget=e.target,n(e.target,`has_${t.baseClassName}`,!0),n(e.target,`has_${t.baseClassName}_below`,"below"===k),n(e.target,`has_${t.baseClassName}_above`,"above"===k),n(s,`${t.baseClassName}__is_below`,"below"===k),n(s,`${t.baseClassName}__is_above`,"above"===k)),this}setItemChecked(e,t){const s=this._p;t=!!t;let i=this.itemIndexByValue(e);if(-1===i)return this;let l=s.virtualListHelper.getItemElementAt(i);if(!l)return this;let r=l[$];return t=t&&!r._nocheck,r._checked!==t&&(r._checked=t,n(l,`${s.baseClassName}__item_checked`,r._checked),this._updateGroupStateForItem(r)),this}setCheckedValues(e){const t=this._p;let s=[];for(let i=0,l=t.items.length;i<l;i++){let l=t.items[i],r=!l._nocheck&&-1!==e.indexOf(l.value);if(l._group&&s.push(i),l._checked===r)continue;l._checked=r;let o=t.virtualListHelper.getItemElementAt(i);o&&n(o,`${t.baseClassName}__item_checked`,l._checked)}if(t.autoCheckGroupChildren)for(let e=0,t=s.length;e<t;e++)this._updateGroupCheckedState(s[e],!1);return this}getCheckedValues(e){const t=this._p;e=e&&t.groupCount>0;let s=[];for(let i=0,l=t.items.length;i<l;i++){let l=t.items[i];l._checked&&(e&&l._group||s.push(l.value))}return s}getCheckedItems(e){const t=this._p;e=e&&t.groupCount>0;let s=[];for(let i=0,l=t.items.length;i<l;i++){let l=t.items[i];l._checked&&(e&&l._group||s.push(l[$]))}return s}show(e){const t=this._p;t.hiding=!1,this.isVisible()||this._trigger("show:before"),t.mouseHandled=!1,setTimeout((()=>{this[O]||t.onDocumentMouseDown||t.sink.add(document,"mousedown",t.onDocumentMouseDown=e=>{t.el.contains(e.target)||this._delayBlurItemOnBlur()})}));const s=t.el;if(s.style.position="absolute",s.classList.remove(`${t.baseClassName}__is-hiding`),document.body.appendChild(s),t.visible=!0,t.el.style.display="","none"===getComputedStyle(t.el).display&&(t.el.style.display="block"),e){const t=getComputedStyle(s),i=s.style.maxHeight;let l=document.body.clientHeight-(parseFloat(t.marginTop)||0)-(parseFloat(t.marginBottom)||0)-("border-box"===t.boxSizing?0:(parseFloat(t.borderTopWidth)||0)+(parseFloat(t.borderBottomWidth)||0));s.style.maxHeight=Math.min(l,parseFloat(t.maxHeight)||l)+"px",this.relayout(e),s.style.maxHeight=i}else t.virtualListHelper.isVirtual()&&t.virtualListHelper.render();return this.isVisible()&&this._trigger("show"),this}hide(){const e=this._p,t=e.el;if(e.onDocumentMouseDown&&(e.sink.remove(document,"mousedown",e.onDocumentMouseDown),e.onDocumentMouseDown=null),this.isVisible()){if(this._trigger("hide:before"),e.hiding=!0,t&&(t.classList.add(`${e.baseClassName}__is-hiding`),g(getComputedStyle(e.el).transition).reduce(((e,t)=>Math.max(e,t.delay+t.duration)),0)>0?setTimeout((()=>{this[O]||this._p&&t.parentNode&&e.hiding&&(r(t),t.classList.remove(`${e.baseClassName}__is-hiding`),e.visible=!1,this._trigger("hide:after"))})):(r(t),t.classList.remove(`${e.baseClassName}__is-hiding`))),e.visible=!1,this.blurFocusedItem(),this._trigger("hide"),this[O])return;this._trigger("hide:after"),e.currentSubDropList&&this._hideSublist()}return e.lastPositionTarget&&(e.lastPositionTarget.classList.remove(`has_${e.baseClassName}`,`has_${e.baseClassName}_above`,`has_${e.baseClassName}_below`),delete e.lastPositionTarget),this}isVisible(){const e=this._p;return!!e.visible&&e.el.parentNode&&"none"!==getComputedStyle(e.el).display}hasFocusedItem(){return this._p.focusItemIndex>-1}getFocusedItemIndex(){return this.hasFocusedItem()?this._p.focusItemIndex:-1}setFocusedItemAtIndex(e){const t=this._p;t.focusItemIndex=e;let s=null;e>-1&&(s=t.items[e]),s&&s._nointeraction&&(s=null),e>-1&&this.scrollItemIndexIntoView(e);let i=s?t.virtualListHelper.getItemElementAt(e):null;if(t.focusItemEl!==i&&(t.focusItemEl&&(t.focusItemEl.classList.remove(`${t.baseClassName}__item_focus`),t.focusItemEl=null),i)){i.classList.add(`${t.baseClassName}__item_focus`),t.focusItemEl=i;const e=i[$];this._trigger("itemfocus",{value:e.value,item:e[$]??e,event:null,el:i}),this._showSublist(e,i)}return this}_showSublist(e,t){if(!e._subitems?.length)return;const s=this._p,i=new z({baseClassName:s.baseClassName,additionalClasses:s.additionalClasses,direction:s.direction,autoItemBlur:s.autoItemBlur,autoItemBlurDelay:s.autoItemBlurDelay,capturesFocus:s.capturesFocus,multi:s.multi,keyDownHandler:s.keyDownHandler,autoCheckGroupChildren:s.autoCheckGroupChildren,useExactTargetWidth:s.useExactTargetWidth,constrainToWindow:s.constrainToWindow,autoFlipDirection:s.autoFlipDirection,estimatedItemHeight:s.estimatedItemHeight,estimateWidth:s.estimateWidth,virtualMinItems:s.virtualMinItems,labelProp:s.labelProp,valueProp:s.valueProp,renderItem:s.renderItem,unrenderItem:s.unrenderItem});let l=e=>{this[O]||e.relatedTarget&&this.elContains(e.relatedTarget,!0)||(this._delayBlurItemOnBlur(),this._trigger("subitems:blur",e))};i.on("select",(e=>{this._trigger("subitems:select",e)})).on("subitems:select",(e=>{this._trigger("subitems:select",e)})).on("blur",l).on("subitems:blur",l).on("_back_key_pressed",(()=>{this._hideSublist()})),i.setItems(e._subitems),this._trigger("show_subitems",{value:e.value,item:e[$]??e,el:t,droplist:i}),s.currentSubDropList={item:e,itemElement:t,droplist:i,showOptions:{target:t,position:{x:"start",y:"top"},anchor:{x:"end",y:"top"},offset:{x:0,y:0},updateWidth:!1}},i.show(s.currentSubDropList.showOptions),i.el.focus()}_hideSublist(){const e=this._p;if(!e.currentSubDropList)return;const t=e.currentSubDropList;let s=!!document.activeElement&&t.droplist.elContains(document.activeElement,!0);t.droplist.hide(),t.droplist.destroy(),e.currentSubDropList=null,s&&!this[O]&&this.el.focus(),this._trigger("hide_subitems",{value:t.item.value,item:t.item,el:t.itemElement})}updateSublist(){const e=this._p;if(!e.currentSubDropList)return;const t=e.currentSubDropList.item,s=e.currentSubDropList,i=e.items.find((e=>e===t))||e.items.find((e=>e.value===s.item.value));if(i){e.currentSubDropList.item=i;const t=e.virtualListHelper.getItemElementAt(this._getItemIndex(i));e.currentSubDropList.itemElement=t,i._subitems&&(e.currentSubDropList.droplist.setItems(i._subitems),t&&(e.currentSubDropList.showOptions.target=t,e.currentSubDropList.droplist.relayout(e.currentSubDropList.showOptions)))}}setFocusedItem(e){const t=this._p;let s=e._nointeraction?-1:this._getItemIndex(e);return s>-1&&t.items[s]._nointeraction&&(s=-1),this.setFocusedItemAtIndex(s)}setFocusedItemByValue(e){return this.setFocusedItemAtIndex(this.itemIndexByValue(e))}setSingleSelectedItemAtIndex(e){const t=this._p;let s=null;return e>-1&&!t.items[e]._nointeraction&&(s=t.virtualListHelper.getItemElementAt(e)),this._setSingleSelectedItemEl(s),this}setSingleSelectedItem(e){const t=this._p;let s=e._nointeraction?-1:this._getItemIndex(e);return s>-1&&t.items[s]._nointeraction&&(s=-1),this.setSingleSelectedItemAtIndex(s)}setSingleSelectedItemByValue(e){return this.setSingleSelectedItemAtIndex(this.itemIndexByValue(e))}next(e){this._move("next",e)}previous(e){this._move("prev",e)}isFirstItem(){const e=this._p;return 0===e.focusItemIndex&&e.focusItemIndex<e.items.length}isLastItem(){const e=this._p;return e.focusItemIndex>-1&&e.focusItemIndex===e.items.length-1}scrollItemIndexIntoView(e){const t=this._p;if(this._hasScroll()){const s=t.el,i=s.scrollTop;let l,r=-1,n=30;for(;n-- >0&&(l=t.virtualListHelper.getItemPosition(e),l!==r);){r=l;let n=t.virtualListHelper.getItemSize(e),o=s.clientHeight;l<i?s.scrollTop=l:l+n>i+o&&(s.scrollTop=l+n-o),t.virtualListHelper.render()}}return this}on(e,t){return this._p.mitt.on(e,t),this}once(e,t){let s=i=>{this._p.mitt.off(e,s),t(i)};return this._p.mitt.on(e,s),this}off(e,t){return e||e?this._p.mitt.off(e,t):this._p.mitt.all.clear(),this}emit(e,t){return this._p.mitt.emit(e,t),this}_getItemIndex(e){const t=this._p;let s=-1;if(e&&(s=t.items.indexOf(e),-1===s)){let t=e&&void 0!==e.value?e.value:e,i=e&&e.label?e.label:t;s=this.itemIndexByValueOrLabel(t,i)}return s}_setSingleSelectedItemEl(e){const t=this._p;return t.singleSelectedItemEl&&(t.singleSelectedItemEl.classList.remove(`${t.baseClassName}__item_checked`),t.singleSelectedItemEl=null),e&&(e.classList.add(`${t.baseClassName}__item_checked`),t.singleSelectedItemEl=e),this}_trigger(e,t){const s=this._p;s.on&&s.on(e,...void 0===t?[]:[t]),s.mitt.emit(e,t)}_itemUpAction(e,s){if(t(e.target,".requires-pointer-events,button",s))return;let i=this._p;if(!this._mouseHandled){if(this.triggerItemSelection(null,e),this[O])return;this.toggleFocusedItem(),document.activeElement!==this.el&&i.focusItemEl&&clearTimeout(i.blurTimer),setTimeout((()=>{this._mouseHandled=!1}),0)}}_hookMouseEvents(){const e=this._p;e.sink.add(e.el,"mouseup",(e=>{const s=t(e.target,"li",e.currentTarget);s&&0===e.button&&this._itemUpAction(e,s)})).add(e.el,"mouseover",(e=>{const s=t(e.target,"li",e.currentTarget);s&&this._handleMouseOver(e,s)}))}_handleMouseOver(e,t){this._focus(e,t,null,!0)}_hookTouchEvents(){const e=this._p;let s;e.sink.add(e.el,"touchstart",(i=>{const l=t(i.target,"li",i.currentTarget);if(!l)return;if(s)return;if(t(i.target,".requires-pointer-events,button",l))return;s=i.changedTouches[0].identifier,this._handleMouseOver(i,l);let r=!1,n=()=>{r=!0},o=()=>{s=null,e.sink.remove(null,".dropdown_touchextra")},a=l.parentNode;for(;a;)e.sink.add(a,"scroll.dropdown_touchextra",n),a=a.parentNode;e.sink.add(window,"scroll.dropdown_touchextra",n),e.sink.add(window,"touchcancel.dropdown_touchextra",o),e.sink.add(e.el,"touchend.dropdown_touchextra",(e=>{const i=t(e.target,"li",e.currentTarget);return i&&Array.prototype.find.call(e.changedTouches,(e=>e.identifier===s))?(o(),void(r||(this._itemUpAction(e,i),e.preventDefault()))):o()}))}))}_hookFocusEvents(){const e=this._p;e.sink.add(e.el,"focus",(t=>{let s=e.focusItemEl||e.el.firstChild;this._focus(t,s,null,!1)})).add(e.el,"blur",(e=>{setTimeout((()=>{this[O]||document.activeElement&&this.elContains(document.activeElement,!0)||(this._delayBlurItemOnBlur(),this._trigger("blur",e))}))}))}_hookKeyEvents(){const e=this._p;e.sink.add(e.el,"keydown",(e=>this._keydown(e)))}_keydown(e){const t=this._p;if(t.keyDownHandler&&t.keyDownHandler.call(this,e))return;let s=!0;switch(e.key){case P:case M:case N:case T:case E:case x:switch(e.preventDefault(),e.key){case P:this.previousPage(e);break;case M:this.nextPage(e);break;case N:this._move("first",e);break;case T:this._move("last",e);break;case E:this.previous(e);break;case x:this.next(e)}break;case w:case k:if(e.key===k&&"rtl"!==getComputedStyle(e.target).direction||e.key===w&&"rtl"===getComputedStyle(e.target).direction){let e=t.items[t.focusItemIndex];t.focusItemIndex>-1&&e._subitems&&this._showSublist(e,t.focusItemEl)}else t.currentSubDropList?(this._hideSublist(),s=!1):this._trigger("_back_key_pressed");break;case L:this.triggerItemSelection(null,e),e.preventDefault();break;case C:this.toggleFocusedItem(),e.preventDefault();break;case S:e.preventDefault(),this.hide();break;default:if("keydown"===e.type)return;this._keydownFreeType(e),s=!1}}_keydownFreeType(e){const t=this._p;let s=e.key||String.fromCharCode(e.keyCode);if(1!==s.length)return;clearTimeout(t.filterTimer);let i,l=(t.previousFilter||"")+s,r=new RegExp(`^${D(l)}`,"i"),n=-1,o=t.focusItemIndex;for(let e=0,s=t.items.length;e<s&&(-1!==n&&e<o||(i=t.items[e],!(r.test(i.label)&&(n=e,-1===o||e>=o))));e++);if(-1===n){l=s,r=new RegExp(`^${D(l)}`,"i");for(let e=0,s=t.items.length;e<s&&(-1!==n&&e<o||(i=t.items[e],!(r.test(i.label)&&(n=e,-1===o||e>=o))));e++);}if(n>-1){let s=t.virtualListHelper.getItemElementAt(n);this._focus(e,s||null,n,!0),this.isVisible()||this.triggerItemSelection(s?null:t.items[n],e),t.previousFilter=l,t.filterTimer=setTimeout((()=>{delete t.previousFilter}),1e3)}else delete t.previousFilter}_focus(e,t,s,i){const l=this._p;if(l._isFocusingItem)return;l._isFocusingItem=!0,!s&&t&&(s=l.virtualListHelper.getItemIndexFromElement(t)),s>-1?this.scrollItemIndexIntoView(s):void 0===s&&(t=null);let r=t||l.virtualListHelper.getItemElementAt(s);if(!r||r[$]._nointeraction)return l._isFocusingItem=!1,void this.blurFocusedItem();if(r===l.focusItemEl)return l._isFocusingItem=!1,void clearTimeout(l.blurTimer);this.blurFocusedItem(),r.classList.add(`${l.baseClassName}__item_focus`),l.focusItemEl=r,l.focusItemIndex=s;const n=l.items[s];this._trigger("itemfocus",{value:n.value,item:n[$]??n,event:e,el:r}),l._isFocusingItem=!1,i&&this._showSublist(n,r)}_delayBlurItemOnBlur(){if(this[O])return;const e=this._p;e.autoItemBlur&&(clearTimeout(e.blurTimer),e.blurTimer=setTimeout((()=>{this[O]||this.blurFocusedItem()}),e.autoItemBlurDelay))}_move(e,t){const s=this._p;let i,l,r=!1;if("first"===e)l=0,r=!1;else if("last"===e)l=s.items.length-1,r=!0;else if("prev"===e){if(!this.hasFocusedItem())return this._move("last",t);l=s.focusItemIndex-1,-1===l&&(l=s.items.length-1),r=!0}else if("next"===e){if(!this.hasFocusedItem())return this._move("first",t);l=s.focusItemIndex+1,l===s.items.length&&(l=0),r=!1}else{if("prev_page"!==e&&"next_page"!==e)return;if(!this.hasFocusedItem())return this._move("prev_page"===e?"prev":"next",t);if("prev_page"===e&&this.isFirstItem()||"next_page"===e&&this.isLastItem())return;if(!this._hasScroll())return this._move("prev_page"===e?"first":"last",t);if(s.virtualListHelper.isVirtual()){let t=s.virtualListHelper.getVisibleItemCount();l=s.focusItemIndex,"prev_page"===e?l-=t:l+=t,l<0?l=0:l>=s.items.length&&(l=s.items.length)}else if(s.focusItemEl){let t=d(s.focusItemEl).top,r=h(s.el,!0);for(;;){if(i=s.focusItemEl.nextElementSibling,!i)return;if("LI"===i.tagName)if("prev_page"===e){if(d(i).top-t+r<=0)break}else if(d(i).top-t-r>=0)break}i&&(l=s.virtualListHelper.getItemIndexFromElement(i),void 0===l&&(l=-1))}r="prev_page"===e}let n=s.items.length;if(l>=n)return;let o=s.items[l],a=l;for(;o&&o._nointeraction&&(r?(l--,-1===l&&(l=n)):(l++,l===n&&(l=0)),o=s.items[l],l!==a););i=s.virtualListHelper.getItemElementAt(l),this._focus(t,i||null,l,!1),this.isVisible()||this.triggerItemSelection(o,t)}_hasScroll(){return this.el.clientHeight<this.el.scrollHeight}_updateGroupStateForItem(e){const t=this._p;if(!t.multi)return this;if(e._group){let s=0;if(t.autoCheckGroupChildren){let i=t.items;for(let l=i.indexOf(e)+1,r=i.length;l<r;l++){let r=i[l];if(r._group||!r._child&&i[l-1]._child)break;if(!!r._checked===e._checked)continue;r._checked=e._checked,s++;let o=t.virtualListHelper.getItemElementAt(l);o&&n(o,`${t.baseClassName}__item_checked`,e._checked),this._trigger("check",{value:r.value,item:r[$]??r,checked:r._checked,isGroup:r._group,isCheckingGroup:!0})}}this._trigger("groupcheck",{value:e.value,item:e[$]??e,affectedItems:s})}else if(t.groupCount>0&&t.autoCheckGroupChildren){let s=t.items,i=-1;for(let t=s.indexOf(e)-1;t>=0;t--)if(s[t]._group){i=t;break}i>-1&&this._updateGroupCheckedState(i,!0)}return this}_updateGroupCheckedState(e,t){const s=this._p;if(!(s.multi&&s.autoCheckGroupChildren&&e>-1))return this;let i=s.items,l=i[e];if(!l||!l._group)return this;let r,o=!1,a=!1;for(let t=e+1,s=i.length;t<s&&(r=i[t],!(r._group||!r._child&&i[t-1]._child));t++)r._checked?o=!0:r._checked||(a=!0);if(!o&&!a)return this;let u=o&&!a;if(!!l._checked!==u){l._checked=u;let i=s.virtualListHelper.getItemElementAt(e);i&&n(i,`${s.baseClassName}__item_checked`,l._checked),t&&this._trigger("check",{value:l.value,item:l[$]??l,checked:l._checked,isGroup:l._group,isCheckingGroup:!1})}return this}_measureItem(){const t=this._p;if(t.lastMeasureItemCount!==t.items.length){let e=t.lastMeasureLongestLabel||1,s=t.lastMeasureLongestLabelText||"";for(let i=0,l=t.items,r=l.length;i<r;i++){const t=l[i];let r=t.label;null==r&&(r=t.value),null==r&&(r="");let n=r.length;n>e&&(e=n,s=r)}t.lastMeasureItemCount=t.items.length,t.lastMeasureLongestLabel=e,t.lastMeasureLongestLabelText=s}return(t.estimateWidth||t.virtualListHelper.isVirtual())&&t.virtualListHelper.createGhostItemElement(A,!0,(s=>{let i=e("span",{css:{display:"block",width:"100px",height:"100px",overflow:"scroll",position:"absolute"}}),l=e("span",{css:{display:"block",position:"relative",width:"0",height:"0",overflow:"hidden"}},[i]);s.appendChild(l);let r=i.offsetWidth-i.clientWidth;s.removeChild(l),t.lastMeasureItemWidth=m(s,!0,!0)+r})),this}_determineVirtualMode(e){const t=this._p;let s=t.items;void 0===e&&(e=s.length);let i=e>=t.virtualMinItems;return i!==t.virtualListHelper.isVirtual()&&t.virtualListHelper.setVirtual(i).render(),this}_renderItemContent(t,s){const i=this._p;i.renderItem&&!1!==i.renderItem(t[$]||t,s)||(s.appendChild(e("span",{class:`${i.baseClassName}__item_label`,textContent:t.label})),i.multi&&(t._nocheck||s.insertBefore(e("span",{class:"checkbox"}),s.firstChild)))}_updateWidth(e){const t=this._p,s=t.el;let i=0;e&&(i="number"==typeof e.updateWidth||null!=e.targetWidth?e.updateWidth:m(e.target,!0,!0));let l=0;t.useExactTargetWidth||(t.estimateWidth||t.virtualListHelper.isVirtual()?l=t.lastMeasureItemWidth:(s.style.width="",l=m(s,!0,!0)));let r=Math.max(l,i);I(s,r,!0,!0);const n=getComputedStyle(s);let o=(parseFloat(n.borderLeftWidth)||0)+(parseFloat(n.borderRightWidth)||0),a=s.scrollWidth+o;if(a>r){let e=a-r;s.style.width=`${parseFloat(s.style.width)+e}px`,r=a}return r}}const G=(e,t,s)=>{let i,l,r,n,o=0;s||(s={});const a=()=>{o=!1===s.leading?0:Date.now(),i=null,n=e.apply(l,r),i||(l=r=null)},u=function(){const u=Date.now();o||!1!==s.leading||(o=u);const c=t-(u-o);return l=this,r=arguments,c<=0||c>t?(i&&(clearTimeout(i),i=null),o=u,n=e.apply(l,r),i||(l=r=null)):i||!1===s.trailing||(i=setTimeout(a,c)),n};return u.cancel=()=>{clearTimeout(i),o=0,i=l=r=null},u.isScheduled=()=>!!i,u},U=Symbol("item"),K=Symbol("destroyed"),j=Symbol("no_results_items"),q=Symbol("rest_multi_items"),Q=!!("ontouchstart"in window||window.DocumentTouch&&window.document instanceof window.DocumentTouch||window.navigator.maxTouchPoints),X=function(e,t){return e instanceof Element&&e.classList.contains(t)},Y=["font-family","font-size","font-weight","font-size","letter-spacing","text-transform","word-spacing","text-indent","box-sizing","padding-left","padding-right"],J={el:null,baseClassName:"selectbox",disabled:!1,clearable:!0,hasOpenIndicator:!0,placeholder:"",sortSelectedItems:!0,sortListItems:!1,sortListCheckedFirst:!0,stickyValues:null,sortItemComparator:null,splitListCheckedGroups:!0,treatGroupSelectionAsItems:!1,blurOnSingleSelection:"touch",multi:!1,showSelection:!0,showPlaceholderInTooltip:!1,multiPlaceholderFormatter:null,searchable:!0,noResultsText:"No matching results",filterThrottleWindow:300,filterOnEmptyTerm:!1,labelProp:"label",valueProp:"value",multiItemLabelProp:"short_label",maxMultiItems:null,multiItemsRestLabelProvider:null,items:[],selectedValues:void 0,value:void 0,isLoadingMode:!1};class Z{constructor(t){const i={...J};for(let[e,s]of Object.entries(t))void 0!==s&&(i[e]=s);const l=this._p={ownsEl:!0,baseClassName:i.baseClassName,additionalClasses:i.additionalClasses,direction:"ltr"===i.direction?"ltr":"rtl"===i.direction?"rtl":"auto",listOptions:i.listOptions,disabled:!!i.disabled,clearable:!!i.clearable,hasOpenIndicator:!!i.hasOpenIndicator,placeholder:i.placeholder,sortSelectedItems:!!i.sortSelectedItems,sortListItems:!!i.sortListItems,sortListCheckedFirst:!!i.sortListCheckedFirst,stickyValues:Array.isArray(i.stickyValues)?new Set(i.stickyValues):null,sortItemComparator:i.sortItemComparator,splitListCheckedGroups:!!i.splitListCheckedGroups,treatGroupSelectionAsItems:i.treatGroupSelectionAsItems,blurOnSingleSelection:i.blurOnSingleSelection,multi:i.multi,showSelection:i.showSelection,showPlaceholderInTooltip:i.showPlaceholderInTooltip,multiPlaceholderFormatter:i.multiPlaceholderFormatter,searchable:i.searchable,noResultsText:i.noResultsText,filterThrottleWindow:i.filterThrottleWindow,filterOnEmptyTerm:i.filterOnEmptyTerm,labelProp:i.labelProp,valueProp:i.valueProp,multiItemLabelProp:i.multiItemLabelProp,maxMultiItems:i.maxMultiItems,multiItemsRestLabelProvider:i.multiItemsRestLabelProvider,renderSingleItem:i.renderSingleItem,unrenderSingleItem:i.unrenderSingleItem,renderMultiItem:i.renderMultiItem,unrenderMultiItem:i.unrenderMultiItem,renderRestMultiItem:i.renderRestMultiItem,unrenderRestMultiItem:i.unrenderRestMultiItem,renderNoResultsItem:i.renderNoResultsItem,unrenderNoResultsItem:i.unrenderNoResultsItem,filterFn:i.filterFn,on:i.on||null,silenceEvents:!0,mitt:W(),isLoadingMode:!!i.isLoadingMode,items:[],filteredItems:null,currentItemsView:[],itemsChanged:!0,sink:new v,resizeObserver:null,selectedItems:[],selectedValues:[],selectionChanged:!0,resortBySelectionNeeded:!1,throttledUpdateListItems:G((()=>this._updateListItems()),i.filterThrottleWindow,{leading:!0,trailing:!0}),filterTerm:""};let r=i.el;r instanceof Element?l.ownsEl=!1:r=e("span"),s(r,{role:"combobox","aria-haspopup":"true","aria-expanded":"false"}),l.el=r,this._syncBaseClasses(),this._renderBase(),l.multiItemEls=[],this.enable(!l.disabled),this._setupDropdownMenu(),l.sink.add(r,"click",(e=>{l.clearButtonWrapper&&l.clearButtonWrapper.contains(e.target)||r.contains(document.activeElement)||(l.input.focus(),l.input.selectionStart=l.input.selectionEnd=l.input.value.length)})),l.sink.add(r,"focus",(e=>{const t=e.target;if(!r.contains(e.relatedTarget)&&!X(t,`${l.baseClassName}__search_field`)&&!X(t,`${l.baseClassName}__item`)){let e=r.querySelector(`.${l.baseClassName}__search_field`);e&&e.focus()}}),!0),l.sink.add(l.input,"keydown",(e=>{this._handleInputKeydown(e)})).add(l.input,"input",(()=>{this._resizeInput()}));const o=(()=>{let e;return()=>{e&&clearTimeout(e),e=setTimeout((()=>{n(r,`${l.baseClassName}__focus`,r.contains(document.activeElement))}))}})();if(l.sink.add(r,"focus",o,!0),l.sink.add(r,"blur",o,!0),l.sink.add(window,"resize",(()=>this._resizeInput())),l.sink.add(window,"orientationchange",(()=>this._resizeInput())),void 0!==window.ResizeObserver){let e={borderBoxSize:{blockSize:null,inlineSize:null},contentBoxSize:{blockSize:null,inlineSize:null}};l.resizeObserver=new ResizeObserver((t=>{if(this[K])return;const s=t[0];e&&s.borderBoxSize[0].blockSize===e.borderBoxSize.blockSize&&s.borderBoxSize[0].inlineSize===e.borderBoxSize.inlineSize&&s.contentBoxSize[0].blockSize===e.contentBoxSize.blockSize&&s.contentBoxSize[0].inlineSize===e.contentBoxSize.inlineSize||(l.resizeObserver.unobserve(l.el),this._resizeInput(),requestAnimationFrame((()=>l.resizeObserver.observe(l.el)))),e.borderBoxSize=s.borderBoxSize[0],e.contentBoxSize=s.contentBoxSize[0]})),l.resizeObserver.observe(l.el)}return this.setItems(i.items),delete i.items,i.multi&&Array.isArray(i.selectedValues)?this.setSelectedValues(i.selectedValues):null!=i.value&&this.setValue(i.value),this._scheduleSync("full"),this.silenceEvents=!1,this}destroy(){if(this[K])return;this[K]=!0;const e=this._p;if(e.syncTimeout&&(clearTimeout(e.syncTimeout),delete e.syncTimeout),this._stopTrackingPresence(),e.sink.remove(),e.dropList&&e.dropList.destroy(),e.throttledUpdateListItems&&e.throttledUpdateListItems.cancel(),this._cleanupSingleWrapper(),e.unrenderMultiItem||e.unrenderRestMultiItem)for(;e.multiItemEls.length>0;)this._removeMultiItemElementByIndex(e.multiItemEls.length-1);if(r(e.list),r(e.singleWrapper),r(e.input),r(e.inputBackBuffer),r(e.clearButtonWrapper),r(e.openIndicator),!e.ownsEl){for(let t of Array.from(e.el.classList))t.startsWith(e.baseClassName)&&e.el.classList.remove(t);e.el.removeAttribute("role"),e.el.removeAttribute("aria-haspopup"),e.el.removeAttribute("aria-expanded")}e.resizeObserver?.disconnect(),this._p=null}get el(){return this._p.el}get droplistInstance(){return this._p.dropList}droplistElContains(e,t=!0){return this._p.dropList?.elContains(e,t)}enable(e){const t=this._p;void 0===e&&(e=!0),t.disabled=!e,t.el.setAttribute("aria-disabled",t.disabled.toString()),t.input.disabled=!!t.disabled;const s=t.multiItemEls;for(let e of s)t.disabled?e.removeAttribute("tabindex"):e.setAttribute("tabindex","0");return this}isEnabled(){return!this._p.disabled}disable(e){return this.enable(void 0!==e&&!e)}isDisabled(){return this._p.disabled}setAdditionalClasses(e){return this._p.additionalClasses=e,this._syncBaseClasses(),this}setItems(e,t=!0){const s=this._p;return e||(e=[]),s.items=e.slice(0),s.filteredItems=null,s.itemsChanged=!0,this._updateItemByValueMap(),t&&this.setSelectedValues(this.getSelectedValues()),this._trigger("itemschanged",{term:null,mutated:!0,count:this.getFilteredItemCount()}),this}getFilteredItemCount(){const e=this._p;return e.filteredItems?e.filteredItems.length:e.items?e.items.length:0}isFilterPending(){const e=this._p;return!!(e.throttledUpdateListItems.isScheduled()||!e.filteredItems&&(e.filterTerm||e.filterOnEmptyTerm&&e.filterFn))}updateItemByValue(e,t){const s=this._p;let i=s.itemByValueMap.get(e);i&&Object.assign(i,t),s.dropList&&s.dropList.updateItemByValue(e,t)}getItems(){return this._p.items}setClearable(e){return e=!!e,this._p.clearable===e||(this._p.clearable=!!e,this._scheduleSync("render_clear")),this}getClearable(){return this._p.clearable}setHasOpenIndicator(e){return e=!!e,this._p.hasOpenIndicator===e||(this._p.hasOpenIndicator=e,this._scheduleSync("render_base")),this}getHasOpenIndicator(){return this._p.hasOpenIndicator}setPlaceholder(e){return this._p.placeholder=null==e?"":String(e),this._scheduleSync("render_base"),this}getPlaceHolder(){return this._p.placeholder}setSearchTerm(e,t=!1){const s=this._p;return s.input?(s.input.value=e,this._scheduleSync("resize_input"),t&&(s.filterTerm=s.input.value.trim(),s.filteredItems=null,s.itemsChanged=!0,this._trigger("search",{value:s.input.value}),s.throttledUpdateListItems()),this):this}getSearchTerm(){const e=this._p;return e.input?e.input.value:""}invokeRefilter(){const e=this._p;return e.filterTerm||e.filterOnEmptyTerm||e.filteredItems?(e.filteredItems=null,e.itemsChanged=!0,e.throttledUpdateListItems(),this):this}setSortSelectedItems(e){const t=this._p;return e=!!e,t.sortSelectedItems===e||(t.sortSelectedItems=e,this._scheduleSync("render_items")),this}isSortSelectedItemsEnabled(){return this._p.sortSelectedItems}setSortListItems(e){const t=this._p;return e=!!e,t.sortListItems===e||(t.sortListItems=e,t.filteredItems=null,t.itemsChanged=!0,this._scheduleSync("render_list")),this}isSortListItemsEnabled(){return this._p.sortListItems}setSortListCheckedFirst(e){const t=this._p;return e=!!e,t.sortCheckedFirst===e||(t.sortCheckedFirst=e,t.itemsChanged=!0,this._scheduleSync("render_list")),this}isSortListCheckedFirstEnabled(){return this._p.sortListCheckedFirst}setStickyValues(e){const t=this._p;return t.stickyValues=Array.isArray(e)?new Set(e):null,t.itemsChanged=!0,this._scheduleSync("render_list"),this}getStickyValues(){return this._p.stickyValues?Array.from(this._p.stickyValues):null}setSortItemComparator(e){const t=this._p;return t.sortItemComparator===e||(t.sortItemComparator=e,t.itemsChanged=!0,this._scheduleSync("render_list")),this}getSortItemComparator(){return this._p.sortItemComparator}setTreatGroupSelectionAsItems(e){const t=this._p;return e=!!e,t.treatGroupSelectionAsItems===e||(t.treatGroupSelectionAsItems=e,t.itemsChanged=!0,this._scheduleSync("render_list")),this}isTreatGroupSelectionAsItemsEnabled(){return!this._p.treatGroupSelectionAsItems}setSplitListCheckedGroups(e){const t=this._p;return e=!!e,t.splitListCheckedGroups===e||(t.splitListCheckedGroups=e,t.itemsChanged=!0,this._scheduleSync("render_list")),this}isSplitListCheckedGroupsEnabled(){return this._p.splitListCheckedGroups}setShowSelection(e){const t=this._p;return e=!!e,t.showSelection===e||(t.showSelection=e,this._scheduleSync("render_items")),this}isShowSelectionEnabled(){return this._p.showSelection}setShowPlaceholderInTooltip(e){const t=this._p;return e=!!e,t.showPlaceholderInTooltip===e||(t.showPlaceholderInTooltip=e,this._scheduleSync("render_base")),this}isShowPlaceholderInTooltipEnabled(){return this._p.showPlaceholderInTooltip}setMultiPlaceholderFormatter(e){const t=this._p;return t.multiPlaceholderFormatter===e||(t.multiPlaceholderFormatter=e,this._scheduleSync("render_base")),this}setBlurOnSingleSelection(e){const t=this._p;return t.blurOnSingleSelection===e||(t.blurOnSingleSelection=e),this}getBlurOnSingleSelection(){return this._p.blurOnSingleSelection}setMulti(e){const t=this._p;return e=!!e,t.multi===e||(t.multi=e,this._setupDropdownMenu(),r(t.clearButtonWrapper),delete t.clearButtonWrapper,e&&t.selectedValues&&1===t.selectedValues.length&&Array.isArray(t.selectedValues[0])&&this.setSelectedValues(t.selectedValues[0]),this._scheduleSync("full")),this}isMultiEnabled(){return this._p.multi}setSearchable(e){const t=this._p;return e=!!e,t.searchable===e||(t.searchable=e,this._scheduleSync("full")),this}isSearchableEnabled(){return this._p.searchable}setNoResultsText(e){return this._p.noResultsText=e,this._scheduleSync("render_list"),this}getNoResultsText(){return this._p.noResultsText}setFilterThrottleWindow(e){const t=this._p;t.filterThrottleWindow=e;let s=!!t.throttledUpdateListItems&&t.throttledUpdateListItems.isScheduled();return t.throttledUpdateListItems&&t.throttledUpdateListItems.cancel(),t.throttledUpdateListItems=G((()=>this._updateListItems()),t.filterThrottleWindow,!0),s&&t.throttledUpdateListItems(),this}getFilterThrottleWindow(){return this._p.filterThrottleWindow}setFilterOnEmptyTerm(e){const t=this._p;return t.filterOnEmptyTerm===e||(t.filterOnEmptyTerm=e,t.throttledUpdateListItems()),this}getFilterOnEmptyTerm(){return this._p.filterOnEmptyTerm}setListOptions(e){return this._p.listOptions=e,this._setupDropdownMenu(),this}setRenderSingleItem(e,t){const s=this._p;return s.renderSingleItem=e,s.unrenderSingleItem=t,this}setRenderMultiItem(e,t){const s=this._p;return s.renderMultiItem=e,s.unrenderMultiItem=t,this}setRenderRestMultiItem(e,t){const s=this._p;return s.renderRestMultiItem=e,s.unrenderRestMultiItem=t,this}setRenderNoResultsItem(e,t){const s=this._p;return s.renderNoResultsItem=e,s.unrenderNoResultsItem=t,this}setLabelProp(e){const t=this._p;return t.labelProp=e,t.dropList&&t.dropList.setLabelProp(e),this}setValueProp(e){const t=this._p;return t.valueProp===e||(t.valueProp=e,t.dropList&&t.dropList.setValueProp(e),this._updateItemByValueMap()),this}setMultiItemLabelProp(e){return this._p.multiItemLabelProp=e,this}setMaxMultiItems(e){return this._p.maxMultiItems=e,this}setMultiItemsRestLabelProvider(e){return this._p.multiItemsRestLabelProvider=e,this}setFilterFn(e){const t=this._p;return t.filterFn===e||(t.filterFn=e,t.throttledUpdateListItems()),this}getFilterFn(){return this._p.filterFn}focusInput(){const e=this._p;return e.input&&e.input.focus(),this}blurInput(){const e=this._p;return e.input&&e.input.blur(),this}clear(){return this._performClearWithEvent(!0)?(this[K],this):this}getValue(){const e=this._p;return e.multi?e.selectedValues.slice(0):e.selectedValues.length>0?e.selectedValues[0]:void 0}setValue(e){return this._p.multi?this.setSelectedValues(Array.isArray(e)?e:void 0!==e?[e]:[]):this.setSelectedValues(void 0!==e?[e]:[])}getSelectedValues(){return this._p.selectedValues.slice(0)}setSelectedValues(e){const t=this._p,s=t.valueProp;t.multi||(e=e.slice(0,1));let i=new Set,l=[],r=[];for(let n of e){if(i.has(n))continue;i.add(n),l.push(n);let e=t.itemByValueMap.get(n);void 0!==e?r.push(e):r.push({[s]:n})}return t.selectedValues=l,t.selectedItems=r,t.selectionChanged=!0,t.resortBySelectionNeeded=!0,this._scheduleSync("full"),this}getSelectedValueCount(){return this._p.selectedValues.length}getSelectedItems(){return this._p.selectedItems.slice(0)}setSelectedItems(e){return this._setSelectedItems(e),this}openList(){const e=this._p;return e.dropList.isVisible()||e.isLoadingMode&&0===e.items.length||(this._trigger("open:before",{list:e.dropList}),e.dropList.setDirection(getComputedStyle(e.el).direction),e.dropList.show(this._getDropListPositionOptions()),this._repositionDropList(),this._repositionDropList(),e.dropList.hasFocusedItem()&&e.dropList.setFocusedItemAtIndex(e.dropList.getFocusedItemIndex())),this}closeList(){const e=this._p;return this[K]?this:e.dropList.isVisible()?(e.dropList.hide(),this):this}toggleList(e){const t=this._p;return(void 0===e?!t.dropList.isVisible():e)?this.openList():this.closeList()}isListOpen(){return!!this._p.dropListVisible}toggleLoading(e){return this.setIsLoadingMode(void 0===e?!this.getIsLoadingMode():!!e)}setIsLoadingMode(e){const t=this._p;return e=void 0===e||!!e,t.isLoadingMode===e||(t.isLoadingMode=e,t.isLoadingMode&&0===t.items.length&&this.isListOpen()?this.closeList():!t.isLoadingMode&&document.activeElement&&((t.multi||t.searchable)&&t.input.contains(document.activeElement)||!t.multi&&!t.searchable&&t.el.contains(document.activeElement))&&this.openList(),this._scheduleSync("render_base")),this}getIsLoadingMode(){return this._p.isLoadingMode}setDirection(e){return this._p.direction="ltr"===e?"ltr":"rtl"===e?"rtl":"auto",this._syncBaseClasses(),this}getDirection(){return this._p.direction}refreshSize(){return this._resizeInput(),this}on(e,t){return this._p.mitt.on(e,t),this}once(e,t){let s=i=>{this._p.mitt.off(e,s),t(i)};return this._p.mitt.on(e,s),this}off(e,t){return e||e?this._p.mitt.off(e,t):this._p.mitt.all.clear(),this}emit(e,t){return this._p.mitt.emit(e,t),this}_updateItemByValueMap(){const e=this._p,t=e.itemByValueMap=new Map,s=e.valueProp;for(let i of e.items)t.set(i[s],i)}_renderBase(){const s=this._p;if(s.inputBackBuffer||(s.inputBackBuffer=e("span",{css:{position:"absolute",zIndex:-1,left:0,top:"-9999px",whiteSpace:"pre"}})),s.input||(s.inputWrapper=e("span",{class:`${s.baseClassName}__search_wrapper`},s.input=e("input",{class:`${s.baseClassName}__search_field`,type:"search",autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",role:"textbox","aria-autocomplete":"list",readOnly:!(s.searchable||s.multi)}))),s.multi){if(s.singleWrapper&&(this._cleanupSingleWrapper(),r(s.singleWrapper),delete s.singleWrapper),!s.list){this._unregisterDropdownEvents();const i=document.activeElement;s.list=e("ul",{class:`${s.baseClassName}__list`}),s.el.appendChild(s.list),s.list.appendChild(s.inputWrapper),s.el.classList.remove(`${s.baseClassName}__single`),s.el.classList.add(`${s.baseClassName}__multi`),s.sink.add(s.list,"click",(e=>{t(e.target,`.${s.baseClassName}__item_remove`,e.currentTarget)&&(s.disabled||this._removeMultiItemFromEvent(t(e.target,`.${s.baseClassName}__item`,e.currentTarget),e))})).add(s.list,"keydown",(e=>{t(e.target,`.${s.baseClassName}__item`,e.currentTarget)&&this._handleMultiKeydown(e)})),i===s.input&&s.input.focus(),this._registerDropdownEvents()}}else if(s.list&&(r(s.list),s.sink.remove(s.list),delete s.list),!s.singleWrapper){this._unregisterDropdownEvents();const t=document.activeElement;s.singleWrapper=e("div",{class:`${s.baseClassName}__single_wrapper`}),s.el.appendChild(s.singleWrapper),s.el.appendChild(s.inputWrapper),s.el.classList.remove(`${s.baseClassName}__multi`),s.el.classList.add(`${s.baseClassName}__single`),t===s.input&&s.input.focus(),this._registerDropdownEvents()}s.hasOpenIndicator!==!!s.openIndicator&&(s.hasOpenIndicator?(s.openIndicator=e("span",{class:`${s.baseClassName}__open_indicator`}),s.el.appendChild(s.openIndicator)):(r(s.openIndicator),delete s.openIndicator,s.el.classList.remove(`${s.baseClassName}__has_open_indicator`))),s.isLoadingMode!==!!s.spinner&&(s.isLoadingMode?(s.spinner=e("span",{class:`${s.baseClassName}__spinner`}),s.el.appendChild(s.spinner),s.el.classList.add(`${s.baseClassName}__has_spinner`)):(r(s.spinner),delete s.spinner,s.el.classList.remove(`${s.baseClassName}__has_spinner`)))}_syncBaseClasses(){const e=this._p,t=e.el;if(!t)return;let s=[e.baseClassName];e.multi?s.push(`${e.baseClassName}__multi`):s.push(`${e.baseClassName}__single`),this.isListOpen()?s.push(`${e.baseClassName}__open_list`):s.push(`${e.baseClassName}__closed_list`),e.hasOpenIndicator&&s.push(`${e.baseClassName}__has_open_indicator`),e.clearButtonWrapper&&s.push(`${e.baseClassName}__has_clear`),e.isLoadingMode&&s.push(`${e.baseClassName}__has_spinner`),0===e.selectedValues.length&&s.push(`${e.baseClassName}__empty_selection`),e.selectedValues.length>0&&s.push(`${e.baseClassName}__has_selection`),(e.searchable||e.multi)&&s.push(`${e.baseClassName}__searchable`),"ltr"!==e.direction&&"rtl"!==e.direction||s.push(`${e.baseClassName}__`+e.direction),e.additionalClasses&&(s=s.concat(e.additionalClasses)),t.className=s.join(" ")}_setupDropdownMenu(){const s=this._p,i=s.valueProp;s.dropList&&(s.dropList.destroy(),delete s.dropList,s.itemsChanged=!0,s.selectionChanged=!0,s.resortBySelectionNeeded=!0);const l=s.renderNoResultsItem,r=s.unrenderNoResultsItem,n=(s.listOptions||{}).renderItem,o=(s.listOptions||{}).unrenderItem,a=l||n?(t,r)=>t&&t[i]===j?(l&&!1!==l(t,r)||r.appendChild(e("div",{class:"droplist-no-results-content",textContent:s.noResultsText})),!0):!!n&&n(t,r):null,u=r||n?(e,t)=>{if(e&&e[i]===j){if(r)return r(e,t)}else if(o)return o(e,t);return!1}:null,c=s.dropList=new z({virtualMinItems:10,...s.listOptions,renderItem:a,unrenderItem:u,multi:s.multi,capturesFocus:!1,labelProp:s.labelProp,valueProp:s.valueProp,on:(e,t)=>{switch(e){case"show:before":{s.dropListVisible=!0,s.el.setAttribute("aria-expanded","true"),s.el.classList.add(`${s.baseClassName}__open_list`),s.el.classList.remove(`${s.baseClassName}__closed_list`),s.resortBySelectionNeeded&&s.sortListCheckedFirst&&s.multi&&(s.itemsChanged=!0),this._updateListItems(),this._trigger("open",{list:c}),this._startTrackingPresence(),s.sink.add(window,"resize.trackposition",(()=>this._repositionDropList()));let e=s.el.parentNode;for(;e;)(e.scrollHeight>e.offsetHeight||e.scrollWidth>e.offsetWidth)&&(e===document.documentElement&&(e=window),s.sink.add(e,"scroll.trackposition",(()=>this._repositionDropList()))),e=e.parentNode}break;case"hide":if(s.dropListVisible=!1,s.el.setAttribute("aria-expanded","false"),s.el.classList.remove(`${s.baseClassName}__open_list`),s.el.classList.add(`${s.baseClassName}__closed_list`),s.multi||(this._setInputText(""),this._scheduleSync("render_base")),this._trigger("close"),this[K])return;this._stopTrackingPresence(),s.sink.remove(null,".trackposition");break;case"check":{if(!s.multi)return;const e=t.item,i=t.value;let l=t.checked;if(t.isGroup&&!s.treatGroupSelectionAsItems)return;let r={value:i,item:e,cancel:!1};if(this._trigger((l?"addsel":"removesel")+":before",r),r.cancel)return void s.dropList.setItemChecked(i,!l);if(l)s.selectedItems.push(e),s.selectedValues.push(i);else{const e=s.selectedValues.indexOf(i);-1!==e&&(s.selectedItems.splice(e,1),s.selectedValues.splice(e,1))}const n=!!t.isCheckingGroup;s.showSelection?l?(1===c.itemCount()&&this._setInputText(""),s.sortSelectedItems?n||this._scheduleSync("full"):(null!=s.maxMultiItems&&(s.treatGroupSelectionAsItems?s.selectedItems:s.selectedItems.filter((e=>!e._group))).length>s.maxMultiItems?this._scheduleSync("addOrUpdateMultiItemRestElement"):this._scheduleSync("addMultiItemElement",e),n||this._scheduleSync("render_base"))):(null!=s.maxMultiItems&&(s.treatGroupSelectionAsItems?s.selectedItems:s.selectedItems.filter((e=>!e._group))).length===s.maxMultiItems?this._scheduleSync("removeMultiItemRestElement"):this._scheduleSync("removeMultiItemElement",e),n||this._scheduleSync("render_base")):s.multi&&this._scheduleSync("syncPlaceholder"),this._trigger(l?"addsel":"removesel",{value:i,item:e})}break;case"groupcheck":if(!s.multi)return;t.affectedItems&&this._scheduleSync(s.sortSelectedItems?"full":"render_base");break;case"select":{if(s.multi)return;const e=t.item,i=t.value;if(!this._performSelectWithEvent(e,i))return;if(this[K])return;this.closeList(),("touch"===s.blurOnSingleSelection&&Q||"touch"!==s.blurOnSingleSelection&&s.blurOnSingleSelection)&&s.input&&s.input.blur()}break;case"blur":this._handleOnBlur()}}});s.sink.add(c.el,"mousedown",(e=>{t(e.target,"li",e.currentTarget)&&e.preventDefault()})),this._registerDropdownEvents()}_handleOnBlur(){const e=this._p;setTimeout((()=>{this[K]||e.disabled||(this._trigger("search:blur"),this[K]||document.activeElement&&(e.input&&e.input.contains(document.activeElement)||e.dropList&&this.droplistElContains(document.activeElement,!0))||(e.throttledUpdateListItems&&e.throttledUpdateListItems.cancel(),this.closeList()))}))}_unregisterDropdownEvents(){this._p.sink.remove(null,".dropdown")}_registerDropdownEvents(){const e=this._p;this._unregisterDropdownEvents();const s=e.dropList;if(!s)return;let i=!1,l=null;const r=e.multi||e.searchable?e.input:e.el;e.sink.add(r,"keydown.dropdown",(t=>{if(t.currentTarget.readOnly)return;let i=!1,l=e.lastKeyAllowsNonTypeKeys;e.lastKeyAllowsNonTypeKeys=!1;let r=e.input&&e.input.value.length>0;switch(t.key){case P:case M:case E:case x:case N:case T:if((t.key===N||t.key===T)&&r&&!l){s._keydownFreeType(t);break}switch(e.lastKeyAllowsNonTypeKeys=!0,t.preventDefault(),t.key){case P:s.isVisible()&&s.previousPage(t);break;case M:s.isVisible()&&s.nextPage(t);break;case E:s.isVisible()?s.previous(t):this._movePrev();break;case x:s.isVisible()?s.next(t):this._moveNext();break;case N:s.goToFirst(t);break;case T:s.goToLast(t)}break;case C:l&&(e.lastKeyAllowsNonTypeKeys=!0,s.isVisible()&&s.hasFocusedItem()&&(i=!0,e.multi?s.toggleFocusedItem(t):s.triggerItemSelection(null,t),t.preventDefault()));break;case L:s.isVisible()&&s.hasFocusedItem()&&(i=!0,t.preventDefault(),s.triggerItemSelection(null,t));break;case F:s.isVisible()&&s.hasFocusedItem()&&s.triggerItemSelection(null,t);break;case S:s.isVisible()&&(s.hide(t),t.preventDefault());break;default:s._keydownFreeType(t)}i||t.key!==L&&(t.key!==C||!e.lastKeyAllowsNonTypeKeys||e.multi||s.hasFocusedItem()||e.disabled)||(this.toggleList(),t.preventDefault(),t.stopPropagation())})),e.input&&e.sink.add(e.input,"input.dropdown",(()=>{e.disabled||(e.filterTerm=e.input.value.trim(),e.filteredItems=null,e.itemsChanged=!0,this._trigger("search",{value:e.input.value}),e.throttledUpdateListItems())})).add(e.input,"click.dropdown",(()=>{e.disabled||!e.multi&&e.searchable&&this.openList()})).add(e.input,"focus.dropdown",(()=>{e.disabled||(this._trigger("search:focus"),this[K]||(i=!1,this.openList(),i=!0,setTimeout((()=>{i=!1}),10)))})).add(e.input,"blur.dropdown",(()=>this._handleOnBlur())),e.sink.add(e.el,"mousedown.dropdown",(()=>{e.multi||e.searchable||i||e.disabled||this.toggleList(),i=!1})).add(e.el,"touchstart.dropdown",(s=>{if(l)return;if(l=s.changedTouches[0].identifier,this.isDisabled())return;if(t(s.target,`.${e.baseClassName}__item,.${e.baseClassName}__clear`,e.el))return;let i=()=>{l=null,e.sink.remove(e.el,".dropdown_touchextra")};(e.input||e.el).focus(),e.sink.add(e.el,"touchend.dropdown_touchextra",(e=>{if(!Array.prototype.find.call(s.changedTouches,(e=>e.identifier===l)))return i();e.preventDefault(),i()})).add(e.el,"touchmove.dropdown_touchextra",(e=>{e.preventDefault()})).add(e.el,"touchcancel.dropdown_touchextra",i)}))}_performSelectWithEvent(e,t){let s={value:t,item:e,cancel:!1};return this._trigger("select:before",s),!s.cancel&&!this[K]&&(this._setSelectedItems([e]),this._trigger("select",{value:t,item:e}),!0)}_performClearWithEvent(e=!1){let t={cancel:!1};return this._trigger("clear:before",t),!t.cancel&&!this[K]&&(this._setSelectedItems([]),e&&this._setInputText(""),this._trigger("clear"),!0)}_movePrev(){const e=this._p;if(this.isMultiEnabled())return;let t=this.getSelectedItems(),s=e.filteredItems??e.items;if(e.currentItemsView&&e.currentItemsView.length===s.length&&(s=e.currentItemsView),s.length+(e.clearable?1:0)>1){let i=t.length>0?s.indexOf(t[0])-1:s.length-1;-1!==i||e.clearable||(i=s.length-1);let l=-1===i?null:s[i];l?this._performSelectWithEvent(l,l[e.valueProp]):this._performClearWithEvent()}}_moveNext(){const e=this._p;if(this.isMultiEnabled())return;let t=this.getSelectedItems(),s=e.filteredItems??e.items;if(e.currentItemsView&&e.currentItemsView.length===s.length&&(s=e.currentItemsView),s.length+(e.clearable?1:0)>1){let i=t.length>0?s.indexOf(t[0])+1:0;i===s.length&&(i=e.clearable?-1:0);let l=-1===i?null:s[i];l?this._performSelectWithEvent(l,l[e.valueProp]):this._performClearWithEvent()}}_updateListItems(){const e=this._p,t=e.dropList;if(!t||!e.dropListVisible)return;if(!e.filteredItems&&(e.filterTerm||e.filterOnEmptyTerm&&e.filterFn)&&this._refilterItems(),(e.itemsChanged||e.selectionChanged)&&(e.dropList._lastSerializedBox=null),e.itemsChanged){let s=e.filteredItems||e.items;(e.sortListItems||e.sortListCheckedFirst&&e.multi)&&(s=this._sortItems(s,e.sortListItems,e.sortListCheckedFirst&&e.multi,e.splitListCheckedGroups)),t.removeAllItems(),0===s.length&&e.noResultsText&&(s=[{[e.labelProp]:e.noResultsText,[e.valueProp]:j,_nointeraction:!0,_nocheck:!0}]),t.addItems(s),e.currentItemsView=s,e.itemsChanged=!1,e.selectionChanged=!0,e.resortBySelectionNeeded=!1}let s=!1;if(e.selectionChanged){if(e.multi)e.dropList.setCheckedValues(e.selectedValues);else{const t=e.dropList.itemIndexByValue(this.getValue());e.dropList.setFocusedItemAtIndex(t).setSingleSelectedItemAtIndex(t),s=e.dropList.hasFocusedItem()}e.selectionChanged=!1}this._repositionDropList(),s&&e.dropList.setFocusedItemAtIndex(e.dropList.getFocusedItemIndex())}_refilterItems(){const e=this._p,t=e.filterTerm,s=e.treatGroupSelectionAsItems;if(t||e.filterOnEmptyTerm&&e.filterFn){let i;if("function"==typeof e.filterFn&&(i=e.filterFn(e.items,t)),!Array.isArray(i))if(t){const l=new RegExp(D(t),"i"),r=e.labelProp,n=e.multiItemLabelProp;i=e.items.filter((e=>!(s||!e._group)||l.test(e[r]||e[n])))}else i=null;if(e.filteredItems=i,i&&!s){let e=-1,t=i.length;for(let s=0;s<t;s++)i[s]._group&&(-1!==e&&e===s-1&&(i.splice(e,1),s--,t--),e=s);-1!==e&&e===t-1&&i.splice(e,1)}}else e.filteredItems=null;this._trigger("itemschanged",{term:t,mutated:!1,count:this.getFilteredItemCount()}),e.itemsChanged=!0}_setSelectedItems(e){const t=this._p,s=t.valueProp;t.multi?(t.selectedItems=e.filter((e=>void 0!==e[s])),t.selectedValues=t.selectedItems.map((e=>e[s]))):(t.selectedItems=e.slice(0,1),t.selectedValues=e.slice(0,1).map((e=>e[s]))),t.selectionChanged=!0,t.resortBySelectionNeeded=!0,this._updateListItems(),this._scheduleSync("full")}_scheduleSync(e,t){const s=this._p;s.syncQueue||(s.syncQueue=[]),("full"===e||"render_items"===e&&!s.syncQueue.some((e=>"full"===e.mode)))&&(s.syncQueue.length=0),0!==s.syncQueue.length&&["full","render_items"].includes(e)||s.syncQueue.push({mode:e,data:t}),s.syncTimeout||(s.syncTimeout=setTimeout((()=>{delete s.syncTimeout;let e=s.syncQueue;delete s.syncQueue,this._performSync(e)})))}_performSync(e){const t=this._p;if(!this[K])for(let s of e)switch(s.mode){case"full":this._syncFull(!0,!0);break;case"render_base":this._syncFull(!1,!1);break;case"render_items":this._syncFull(!0,!1);break;case"render_list":this._syncFull(!1,!0);break;case"render_clear":this._syncClearButton(),this._resizeInput();break;case"singleItem":this._syncSingleItem();break;case"syncPlaceholder":this._syncPlaceholder();break;case"removeMultiItemElement":if(t.showSelection)this._syncPlaceholder();else{const e=t.valueProp,i=s.data[e];let l=t.multiItemEls.findIndex((t=>t[U][e]===i));-1!==l&&this._removeMultiItemElementByIndex(l)}break;case"addMultiItemElement":t.showSelection?this._addMultiItemElement(s.data):this._syncPlaceholder();break;case"addOrUpdateMultiItemRestElement":t.showSelection?this._addMultiItemRestElement():this._syncPlaceholder();break;case"removeMultiItemRestElement":if(t.showSelection){let e=t.multiItemEls[t.multiItemEls.length-1];e?.[U]?.[t.valueProp]===q&&this._removeMultiItemElementByIndex(t.multiItemEls.length-1)}else this._syncPlaceholder();break;case"resize_input":this._resizeInput()}}_cleanupSingleWrapper(){const e=this._p;if(e.singleWrapper){if(e.unrenderSingleItem&&e.singleWrapper.childNodes.length>0)try{e.unrenderSingleItem(e.singleWrapper[U],e.singleWrapper)}catch(e){console.error(e)}delete e.singleWrapper[U],e.singleWrapper.innerHTML=""}}_removeMultiItemElementByIndex(e){const t=this._p,s=t.multiItemEls;if(s.length>e){const i=s[e],l=i[U];let n=l?.[t.valueProp]===q?t.unrenderRestMultiItem??t.unrenderMultiItem:t.unrenderMultiItem;if(n&&i.childNodes.length>0)try{n(l,i)}catch(e){console.error(e)}r(i),e===s.length-1?s.pop():s.splice(e,1)}}_renderSingleItemContent(e){const t=this._p;if(!t.renderSingleItem||!1===t.renderSingleItem(e,t.singleWrapper)){const s=t.labelProp;let i=e[t.multiItemLabelProp]||e[s];null==i&&(i=""),t.singleWrapper.appendChild(document.createTextNode(i))}}_renderMultiItemContent(t,s){const i=this._p;let l=t[i.valueProp]===q?i.renderRestMultiItem??i.renderMultiItem:i.renderMultiItem;if(!l||!1===l(t,s)){const l=i.labelProp,r=t[i.multiItemLabelProp]||t[l];s.appendChild(e("span",{textContent:r}))}}_addMultiItemElement(e){const t=this._p,s=this._renderMultiItem(e);return!!s&&(o(t.inputWrapper,s),t.multiItemEls.push(s),!0)}_addMultiItemRestElement(){const e=this._p;let t=e.selectedItems.slice(0),s=(e.treatGroupSelectionAsItems?t:t.filter((e=>!e._group))).length-e.maxMultiItems,i=e.multiItemsRestLabelProvider?e.multiItemsRestLabelProvider(s,t):`+ ${s}`;this._addMultiItemElement({items:t,[e.valueProp]:q,[e.labelProp]:i})}_syncClearButton(){const t=this._p,s=t.multiItemLabelProp;t.selectedItems.length>0&&t.selectedItems.some((e=>!1!==e[s]))&&t.clearable&&t.showSelection?t.clearButtonWrapper||(t.clearButtonWrapper=e(t.multi?"li":"span",{class:`${t.baseClassName}__clear`},t.clearButton=e("button")),t.multi?a(t.list,t.clearButtonWrapper):a(t.el,t.clearButtonWrapper),t.el.classList.add(`${t.baseClassName}__has_clear`),t.sink.add(t.clearButton,"click",(()=>{this.isDisabled()||this.clear()}))):t.clearButtonWrapper&&(t.sink.remove(t.clearButton,"click"),r(t.clearButtonWrapper),delete t.clearButtonWrapper,delete t.clearButton,t.el.classList.remove(`${t.baseClassName}__has_clear`))}_syncPlaceholder(){const e=this._p,t=e.multiItemLabelProp;let s="";e.multi&&!e.showSelection?s="function"==typeof e.multiPlaceholderFormatter?e.multiPlaceholderFormatter(e.selectedItems):0===e.selectedItems.length?e.placeholder||"":((e,t)=>{if(0===e.length)return"";let s=e[0][t]+"";return e.length>1&&(s+=` (+${e.length-1})`),s})(e.selectedItems,e.labelProp):0!==e.selectedItems.length&&e.showSelection&&!e.selectedItems.every((e=>!1===e[t]))||(s=null==e.placeholder?"":e.placeholder+""),e.input.setAttribute("placeholder",s),e.showPlaceholderInTooltip?e.input.setAttribute("title",s):e.input.removeAttribute("title")}_syncSingleItem(){const e=this._p;e.singleWrapper&&this._cleanupSingleWrapper();const t=e.selectedItems;t.length>0&&(this._renderSingleItemContent(t[0]),e.singleWrapper[U]=t[0])}_syncFull(e,t){const s=this._p,i=s.multiItemLabelProp;if(this._renderBase(),this._syncClearButton(),this._syncPlaceholder(),(e=s.multi&&s.showSelection&&(e||s.selectedItems.filter((e=>!1!==e[i])).length!==s.multiItemEls.length))||!s.showSelection||!s.multi)for(;s.multiItemEls.length>0;)this._removeMultiItemElementByIndex(s.multiItemEls.length-1);if(s.multi){if(e){const e=s.selectedItems,t=s.treatGroupSelectionAsItems;if(s.sortSelectedItems){const t=s.labelProp,i=s.multiItemLabelProp,l=s.valueProp,r=s.stickyValues,n=s.sortItemComparator||((e,s)=>{if(null!==r){let t=r.has(e[l]),i=r.has(s[l]);if(t&&!i)return-1;if(!t&&i)return 1}const n=e[i]||e[t],o=s[i]||s[t];return n<o?-1:n>o?1:0});e.sort(n),s.selectedValues=e.map((e=>e[l]))}let i=0,l=s.maxMultiItems,r=!1;for(let s=0;s<e.length;s++)if(t||!e[s]._group){if(null!=l&&i===l){r=!0;break}this._addMultiItemElement(e[s])&&i++}r&&this._addMultiItemRestElement()}}else s.multi||this._syncSingleItem();return u(s.el)!==document||(n(s.el,`${s.baseClassName}__empty_selection`,0===s.selectedValues.length),n(s.el,`${s.baseClassName}__has_selection`,s.selectedValues.length>0),s.searchable||s.multi?(s.input&&(s.input.readOnly=!1),s.el.classList.add(`${s.baseClassName}__searchable`)):(s.input&&(s.input.readOnly=!0),s.el.classList.remove(`${s.baseClassName}__searchable`)),this._resizeInput(),t&&this._updateListItems()),this}_trigger(e,t){const s=this._p;void 0!==s&&(s.on&&s.on(e,...void 0===t?[]:[t]),s.mitt.emit(e,t))}_renderMultiItem(t){const s=this._p,i=s.labelProp,l=t[s.multiItemLabelProp]??t[i];if(!1===l)return null;const r=e("li",{class:`${s.baseClassName}__item`,tabindex:"0",title:l},[e("span",{class:`${s.baseClassName}__item_remove`,role:"presentation"})]);return this._renderMultiItemContent(t,r),r[U]=t,r}_removeMultiItemFromEvent(e,t){const s=this._p;let r;if(/key/.test(t.type)){const n=t;n.key===V?r=i(e,`.${s.baseClassName}__item,.${s.baseClassName}__search_wrapper`):n.key===B&&(r=l(e,`.${s.baseClassName}__item,.${s.baseClassName}__search_wrapper`))}else/click|mouse|touch/.test(t.type)&&(r=i(e,`.${s.baseClassName}__item,.${s.baseClassName}__search_wrapper`));const n=e[U],o=n[s.valueProp];if(void 0!==n)if(o===q){let e=(s.treatGroupSelectionAsItems?s.selectedItems:s.selectedItems.filter((e=>!e._group))).slice(s.maxMultiItems),t=[];for(let s of e){let e={value:o,item:s,cancel:!1};this._trigger("removesel:before",e),e.cancel||t.push(s)}if(t.length>0){this._removeMultiItemElementByIndex(s.multiItemEls.length-1);for(let e of t){let t=s.selectedItems.indexOf(e);-1===t&&(t=s.selectedValues.indexOf(o[s.valueProp])),-1!==t&&(s.selectedItems.splice(t,1),s.selectedValues.splice(t,1),s.selectionChanged=!0,s.resortBySelectionNeeded=!0)}}e.length>t.length&&this._addMultiItemRestElement(),t.length>0&&this._scheduleSync("render_list")}else{let e={value:o,item:n,cancel:!1};if(this._trigger("removesel:before",e),e.cancel)return this;this._removeMultiItem(n),this._trigger("removesel",{value:o,item:n})}return r||(r=s.el.querySelector(`.${s.baseClassName}__item, .${s.baseClassName}__search_field`)),X(r,`${s.baseClassName}__search_wrapper`)&&(r=r.querySelector("input")),r&&r.focus(),this}_removeMultiItem(e,t=!1){const s=this._p,i=s.valueProp,l=s.labelProp,r=e[i];let n=s.selectedItems.indexOf(e);-1===n&&(n=s.selectedValues.indexOf(r)),-1!==n&&(s.selectedItems.splice(n,1),s.selectedValues.splice(n,1),s.selectionChanged=!0,s.resortBySelectionNeeded=!0),n=s.multiItemEls.findIndex((t=>t[U]===e)),-1===n&&(n=s.multiItemEls.findIndex((e=>e[U][i]===r))),-1!==n&&this._removeMultiItemElementByIndex(n),t&&(this._setInputText(e[s.multiItemLabelProp]||e[l]),s.input.focus(),s.input.selectionStart=s.input.selectionEnd=s.input.value.length),this._scheduleSync("render_list")}_setInputText(e){const t=this._p;t.input.value=null==e?"":String(e),t.filterTerm="",t.filteredItems=null,t.itemsChanged=!0}_resizeInput(){const e=this._p,t=e.el;if(!t.parentNode||!document.body.contains(t))return this;const s=e.input,i=e.inputBackBuffer;let l=s.value||s.placeholder;n(t,`${e.baseClassName}__has_input`,!!l),n(t,`${e.baseClassName}__empty_input`,!l);let o=!1;if(e.multi&&0===e.multiItemEls.length&&e.showSelection){s.style.width="";let i=0,l=0,r=getComputedStyle(e.list||t,"::before");r.content&&"none"!==r.content&&"absolute"!==r.position&&"none"!==r.float&&(i=f(e.list||t,"::before",!0,!0,!0));let n=getComputedStyle(e.list||t,"::after");n.content&&"none"!==n.content&&"absolute"!==n.position&&"none"!==n.float&&(l=f(e.list||t,"::after",!0,!0,!0));let a=m(e.list||t);a-=i+l,s.style.width=`${a}px`,o=!0}else{c(i,b(s,Y)),i.textContent=l,t.appendChild(i);const n=getComputedStyle(s),a=(parseFloat(n.paddingLeft)||0)+(parseFloat(n.paddingRight)||0),u=.75*(parseFloat(n["font-size"])||0)+a,d=m(i,!0,!0),h=m(s,!0,!0);let p=Math.max(d,u);if(p!==h){I(s,p,!0,!0);let t=(parseFloat(n.borderLeftWidth)||0)+(parseFloat(n.borderRightWidth)||0),i=s.scrollWidth+t;if(i>p){let e=i-p;s.style.width=`${parseFloat(s.style.width)+e}px`,p+=e}if(e.singleWrapper&&(e.singleWrapper.style.width="",l)){let s=p-a-t;m(e.singleWrapper,!1,!1)<s&&I(e.singleWrapper,s,!1,!1)}o=!0}r(i)}return o&&this._trigger("input:resize"),this}_repositionDropList(){const e=this._p,t=e.el;if(!e.dropList||!e.dropListVisible||!e.dropList.isVisible())return this;const s=t.getBoundingClientRect(),i=s.left+","+s.top+","+s.right+","+s.bottom;return e.dropList._lastSerializedBox!==i&&(e.dropList.relayout(this._getDropListPositionOptions()),e.dropList._lastSerializedBox=i),this}_handleInputKeydown(e){const t=this._p,s=e.target;if(e.key===B&&e.ctrlKey&&0===s.value.length)this.clear(),e.preventDefault();else if(e.key===B&&0===s.value.length){const s=t.multiItemEls[t.multiItemEls.length-1];if(!s||void 0===s[U].value)return;const i=s[U],l=i[t.valueProp];let r={value:l,item:i,cancel:!1};if(this._trigger("removesel:before",r),r.cancel)return;this._removeMultiItem(i,!0),this._trigger("removesel",{value:l,item:i}),e.preventDefault()}}_handleMultiKeydown(e){const s=this._p;if(s.disabled)return;const r="rtl"===getComputedStyle(s.el).direction;let n;if(e.key===(r?w:k))n=i(e.target,`.${s.baseClassName}__item,.${s.baseClassName}__search_wrapper`),X(n,`${s.baseClassName}__search_wrapper`)&&(n=n.querySelector("input")),n&&n.focus(),e.preventDefault();else if(e.key===(r?k:w))n=l(e.target,`.${s.baseClassName}__item,.${s.baseClassName}__search_wrapper`),X(n,`${s.baseClassName}__search_wrapper`)&&(n=n.querySelector("input")),n&&n.focus(),e.preventDefault();else if(e.key===B&&e.ctrlKey){const t=[];let i=e.target;for(;i;)t.push(i),i=l(i,`.${s.baseClassName}__item`);for(;t.length;)this._removeMultiItemFromEvent(t.shift(),e);e.preventDefault()}else e.key!==V&&e.key!==B||(this._removeMultiItemFromEvent(t(e.target,`.${s.baseClassName}__item`,s.el),e),e.preventDefault())}_getDropListPositionOptions(){return{target:this._p.el,offset:{x:0,y:0},anchor:{x:"start",y:"bottom"},position:{x:"start",y:"top"},updateWidth:!0}}_startTrackingPresence(){const e=this._p;this._stopTrackingPresence(),e.presenceInt=setInterval((function(){u(e.el)!==document&&this.hide()}),200)}_stopTrackingPresence(){const e=this._p;e.presenceInt&&(clearInterval(e.presenceInt),e.presenceInt=null)}_sortItems(e,t,s,i){const l=this._p;if(!t&&!s)return e;const r=l.labelProp,n=l.multiItemLabelProp,o=l.valueProp,a=l.stickyValues,u=l.sortItemComparator||((e,t)=>{if(null!==a){let s=a.has(e[o]),i=a.has(t[o]);if(s&&!i)return-1;if(!s&&i)return 1}const s=e[r]||e[n],i=t[r]||t[n];return s<i?-1:s>i?1:0});let c=[],d=null,h=[c];const m=new Set(l.selectedValues);let p,_,g;for(_=0,g=e.length;_<g;_++)p=e[_],p._group&&c.length&&(c=[],h.push(c)),c.push(p);c.length||(h.length=0),a&&e.length>0&&!e[0]._group&&(d=h[0].filter((e=>a.has(e[o]))),d.length>0?(h[0]=h[0].filter((e=>!a.has(e[o]))),0===h[0].length&&h.shift()):d=null),t&&h.sort(((e,t)=>{if(e=e[0],t=t[0],null!==a){let s=a.has(e[o]),i=a.has(t[o]);if(s&&!i)return-1;if(!s&&i)return 1}return!e._group&&t._group?-1:e._group&&!t._group?1:u(e,t)})),d&&h.unshift(d);const I=[],f=[];for(let e=0,i=h.length;e<i;e++)c=h[e],c.sort(((e,i)=>{if(e._group&&!i._group)return-1;if(!e._group&&i._group)return 1;if(s){const t=m.has(e[o]),s=m.has(i[o]);if(t&&!s)return-1;if(!t&&s)return 1}return t?u(e,i):0})),f.push(c);if(s&&i){let e;for(let t=0,s=h.length;t<s;t++)if(c=h[t],c!==d){e=null;for(let t=0,s=c.length;t<s;t++)if(p=c[t],!p._group){if(!m.has(p[l.valueProp]))break;e||(e=[],c[0]._group&&e.push(c[0])),e.push(p),c.splice(t--,1),s--}if(e&&(I.push(e),0===c.length||1===c.length&&c[0]._group)){h.splice(t--,1),s--;let e=f.indexOf(c);-1!==e&&f.splice(e,1)}}else{I.push(d);let e=f.indexOf(d);-1!==e&&f.splice(e,1)}}const b=[];b.length=e.length;let v=0;h=I.length?I.concat(f):f;for(let e=0,t=h.length;e<t;e++)for(c=h[e],_=0,g=c.length;_<g;_++)b[v++]=c[_];return b}}export{z as DropList,Z as SelectBox};
|
package/dist/lib.umd.js
CHANGED
package/dist/lib.umd.min.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @danielgindi/selectbox 1.0.
|
|
2
|
+
* @danielgindi/selectbox 1.0.147
|
|
3
3
|
* git://github.com/danielgindi/selectbox.git
|
|
4
4
|
*/
|
|
5
5
|
var e,t;e=this,t=function(e,t,s,i,l,r,n,o){"use strict";var a=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");const u=Symbol("item"),c=Symbol("destroyed"),d=Symbol("ghost"),m=Object.prototype.hasOwnProperty;let h={baseClassName:"droplist",autoItemBlur:!0,autoItemBlurDelay:300,capturesFocus:!0,multi:!1,keyDownHandler:null,autoCheckGroupChildren:!0,useExactTargetWidth:!1,constrainToWindow:!0,autoFlipDirection:!0,estimateWidth:!1,virtualMinItems:100,labelProp:"label",valueProp:"value",on:null};class p{constructor(e){const s={...h};for(let[t,i]of Object.entries(e))void 0!==i&&(s[t]=i);const n=this._p={ownsEl:!0,elOriginalDisplay:"",baseClassName:s.baseClassName,additionalClasses:s.additionalClasses,direction:"ltr"===s.direction?"ltr":"rtl"===s.direction?"rtl":"auto",autoItemBlur:s.autoItemBlur,autoItemBlurDelay:s.autoItemBlurDelay,capturesFocus:s.capturesFocus,multi:s.multi,keyDownHandler:s.keyDownHandler,autoCheckGroupChildren:s.autoCheckGroupChildren,useExactTargetWidth:s.useExactTargetWidth,constrainToWindow:s.constrainToWindow,autoFlipDirection:s.autoFlipDirection,estimatedItemHeight:s.estimatedItemHeight,estimateWidth:s.estimateWidth,virtualMinItems:s.virtualMinItems,labelProp:s.labelProp,valueProp:s.valueProp,renderItem:s.renderItem,unrenderItem:s.unrenderItem,on:s.on||null,silenceEvents:!0,mitt:o(),focusItemIndex:-1,focusItemEl:null,sink:new l};let a=[n.baseClassName];n.additionalClasses&&(a=a.concat((n.additionalClasses+"").split(" ").filter((e=>e))));const c={top:"-9999px"};let m=s.el;if(m instanceof Element?(n.elOriginalDisplay=m.style.display||"",m.classList.add(...a),m.role="menu",i.setCssProps(m,c),n.ownsEl=!1):m=t.createElement("ul",{class:a.join(" "),role:"menu",css:c}),n.el=m,n.items=[],n.groupCount=0,n.mouseHandled=!1,n.virtualListHelper=new r({list:n.el,virtual:!0,buffer:5,estimatedItemHeight:s.estimatedItemHeight||20,itemElementCreatorFn:()=>t.createElement("li",{role:"menuitem",tabIndex:n.capturesFocus?-1:null}),onItemRender:(e,t)=>{let s;t===d?(s={label:n.lastMeasureLongestLabelText,value:"Measure",[u]:{[n.labelProp]:n.lastMeasureLongestLabelText,[n.valueProp]:"Measure"}},e.setAttribute("aria-hidden","true")):s=n.items[t],s||console.warn("onItemRender called for ("+t+") which has no item"),e.className=`${n.baseClassName}__item`;const i=e.classList;n.multi?s._nocheck?i.add(`${n.baseClassName}__item_multi_nocheck`):(i.add(`${n.baseClassName}__item_multi`),s._checked&&i.add(`${n.baseClassName}__item_checked`)):i.add(`${n.baseClassName}__item_single`),s._group&&i.add(`${n.baseClassName}__item_group`),s._child&&i.add(`${n.baseClassName}__item_child`),s._nointeraction&&i.add(`${n.baseClassName}__item_nointeraction`),n.focusItemIndex===t&&(n.focusItemEl=e,i.add(`${n.baseClassName}__item_focus`)),this._renderItemContent(s,e),e[u]=s}}),"function"==typeof n.unrenderItem){const e=n.unrenderItem;n.virtualListHelper.setOnItemUnrender((t=>{try{e(t[u][u],t)}catch(e){console.error(e)}delete t[u],n.focusItemEl===t&&(n.focusItemEl=null)}))}else n.virtualListHelper.setOnItemUnrender((e=>{delete e[u],n.focusItemEl===e&&(n.focusItemEl=null)}));n.capturesFocus&&(m.tabIndex=0),this._hookMouseEvents(),this._hookTouchEvents(),this._hookFocusEvents(),this._hookKeyEvents(),this.silenceEvents=!1}destroy(){if(this[c])return;this[c]=!0;const e=this._p;if(clearTimeout(e.blurTimer),clearTimeout(e.filterTimer),e.sink.remove(),e.virtualListHelper.destroy(),e.el&&s.remove(e.el),e.currentSubDropList&&(e.currentSubDropList?.droplist?.destroy(),e.currentSubDropList=null),!e.ownsEl){for(let t of Array.from(e.el.classList))t.startsWith(e.baseClassName)&&e.el.classList.remove(t);e.el.removeAttribute("role");for(let t of["position","left","top","right","bottom","z-index"])e.el.style[t]="";e.el.style.display=e.elOriginalDisplay}e.lastPositionTarget&&(e.lastPositionTarget.classList.remove(`has_${e.baseClassName}`,`has_${e.baseClassName}_above`,`has_${e.baseClassName}_below`),delete e.lastPositionTarget),this._p=null}get el(){return this._p.el}elContains(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return!!this.el.contains(e)||!(!t||!this._p.currentSubDropList?.droplist?.elContains(e))}setAdditionalClasses(e){return this._p.additionalClasses=e,this._syncBaseClasses(),this}setDirection(e){return this._p.direction="ltr"===e?"ltr":"rtl"===e?"rtl":"auto",this._syncBaseClasses(),this}getDirection(){return this._p.direction}setLabelProp(e){return this._p.labelProp=e,this}setRenderItem(e){return this._p.renderItem=e,this}setUnrenderItem(e){const t=this._p;if(t.unrenderItem=e,"function"==typeof t.unrenderItem){const e=t.unrenderItem;t.virtualListHelper.setOnItemUnrender((s=>{try{e(s[u][u],s)}catch(e){console.error(e)}delete s[u],t.focusItemEl===s&&(t.focusItemEl=null)}))}else t.virtualListHelper.setOnItemUnrender((e=>{delete e[u],t.focusItemEl===e&&(t.focusItemEl=null)}));return this}setValueProp(e){return this._p.valueProp=e,this}_syncBaseClasses(){const e=this._p,t=e.el;if(!t)return;let s=[e.baseClassName];"ltr"!==e.direction&&"rtl"!==e.direction||s.push(`${e.baseClassName}__`+e.direction),e.additionalClasses&&(s=s.concat(e.additionalClasses)),t.className=s.join(" ")}blurFocusedItem(){const e=this._p;if(clearTimeout(e.blurTimer),!this.hasFocusedItem())return;let t=e.focusItemEl;t&&(t.classList.remove(`${e.baseClassName}__item_focus`),e.focusItemEl=null);const s=e.items[e.focusItemIndex];e.focusItemIndex=-1,s&&(e.currentSubDropList&&this._hideSublist(),this._trigger("itemblur",{value:s.value,item:s[u]??s}))}nextPage(e){this._move("next_page",e)}previousPage(e){this._move("prev_page",e)}goToFirst(e){this._move("first",e)}goToLast(e){this._move("last",e)}toggleFocusedItem(){const e=this._p;if(this.hasFocusedItem()&&e.multi){let t=e.items[e.focusItemIndex];if(t._nocheck||t._nointeraction)return this;t._checked=!t._checked,e.focusItemEl&&s.toggleClass(e.focusItemEl,`${e.baseClassName}__item_checked`,t._checked),this._trigger("check",{value:t.value,item:t[u]??t,checked:t._checked,isGroup:t._group,isCheckingGroup:!1}),this._updateGroupStateForItem(t)}return this}triggerItemSelection(e,s){const i=this._p;return i.focusItemEl=i.focusItemEl||t.closestUntil(s.target,"li",i.el),i.focusItemIndex=i.virtualListHelper.getItemIndexFromElement(i.focusItemEl),void 0===i.focusItemIndex&&(i.focusItemIndex=-1),!(e=e??i.focusItemEl[u])._nointeraction&&(i.multi||this._setSingleSelectedItemEl(i.focusItemEl),this._trigger("select",{value:e?e.value:void 0,item:e[u]??e,event:s,el:i.focusItemEl}),!0)}addItem(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;return this.addItems([e],t)}addItems(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;const s=this._p,i=s.labelProp,l=s.valueProp;let r=s.multi,n=s.items;(null==t||t<0||t>=s.items.length)&&(t=-1),this._determineVirtualMode(n.length+e.length);for(let o=0,a=e.length;o<a;o++){let a=e[o],c={[u]:a,label:a[i],value:a[l],_nocheck:!!a._nocheck,_nointeraction:!!a._nointeraction,_subitems:a._subitems};r&&(c._checked=!!a._checked),a._group&&(c._group=!0,s.groupCount++),a._child&&(c._child=!0),-1!==t?n.splice(t,0,c):n.push(c),-1!==t&&t++}return s.virtualListHelper.addItemsAt(e.length,-1===t?t:t-e.length).render(),this}setItems(e){const t=this._p;return t.items.length=0,t.groupCount=0,t.virtualListHelper.setCount(0),this.addItems(e),this.updateSublist(),this}updateItemByValue(e,t){const s=this._p;let i=this.itemIndexByValue(e);if(-1===i)return this;let l=this.itemAtIndex(i);return l[u]=t,m.call(t,s.labelProp)&&(l.label=t[s.labelProp]),m.call(t,s.valueProp)&&(l.value=t[s.valueProp]),m.call(t,"_nocheck")&&(l._nocheck=!!t._nocheck),m.call(t,"_nointeraction")&&(l._nointeraction=!!t._nointeraction),m.call(t,"_subitems")&&(l._subitems=!!t._subitems),s.multi&&m.call(t,"_checked")&&(l._checked=!!t._checked),m.call(t,"_group")&&!!t._group!==l._group&&(l._group?s.groupCount--:s.groupCount++,t._group=!!l._group),m.call(t,"_child")&&(l._child=!!t._child),s.virtualListHelper.isItemRendered(i)&&s.virtualListHelper.refreshItemAt(i).render(),this}removeItem(e,t){const s=this._p;let i=this.itemIndexByValueOrLabel(e,t);return-1===i||(s.items.splice(i,1)[0]._group&&s.groupCount--,s.virtualListHelper.removeItemsAt(i,1).render()),this}removeAllItems(){const e=this._p;return e.items.length=0,e.groupCount=0,e.virtualListHelper.setCount(0).render(),this}invalidate(){return this._p.virtualListHelper.invalidate().render(),this}itemDataByValue(e){const t=this._p;for(let s=0,i=t.items.length;s<i;s++){let i=t.items[s];if(i.value===e)return i[u]}return null}itemIndexByValue(e){const t=this._p;for(let s=0,i=t.items.length;s<i;s++)if(t.items[s].value===e)return s;return-1}itemIndexByValueOrLabel(e,t){const s=this._p;for(let i=0,l=s.items.length;i<l;i++){let l=s.items[i];if(l.value===e||l.label===t)return i}return-1}items(){return this._p.items.map((e=>e[u]))}itemsReference(){return this._p.items}itemCount(){return this._p.items.length}itemAtIndex(e){return this._p.items[e]?.[u]}relayout(e){const t=this._p,l=t.el;if(!this.isVisible())return this;let r=window,n={},o=e.targetOffset||i.getElementOffset(e.target);n.left=o.left,n.top=o.top,n.height=null==e.targetHeight?i.getElementHeight(e.target,!0,!0):e.targetHeight,n.width=null==e.targetWidth?i.getElementWidth(e.target,!0,!0):e.targetWidth,n.bottom=n.top+n.height;let a={};a.top=r.pageYOffset,a.left=r.pageXOffset,a.width=r.innerWidth,a.height=r.innerHeight,a.bottom=a.top+a.height,a.right=a.left+a.width;let u=e.position&&"bottom"===e.position.y?"above":"below";l.style.width="",(t.estimateWidth||t.virtualListHelper.isVirtual())&&this._measureItem(),t.virtualListHelper.isVirtual()&&t.virtualListHelper.render(),e.updateWidth||"number"==typeof e.updateWidth?this._updateWidth(e):this._updateWidth();let c,d=n.top-a.top,m=a.bottom-n.bottom;const h=getComputedStyle(l);let p="border-box"===h.boxSizing,_=(parseFloat(h.paddingTop)||0)+(parseFloat(h.paddingBottom)||0),g=(parseFloat(h.borderTopWidth)||0)+(parseFloat(h.borderBottomWidth)||0);t.virtualListHelper.isVirtual()?c=t.virtualListHelper.estimateFullHeight()+_+g:(l.style.height="",l.style.top="-9999px",c=Math.max(i.getElementHeight(t.el),l.scrollHeight),c+=_+g);let I=parseFloat(h.maxHeight);isNaN(I)||(p||(I+=_+g),c=Math.min(c,I));let f=d>=c,b=m>=c,v=t.currentDirection||u;"above"===v&&!f&&b?v="below":"below"===v&&!b&&f?v="above":f&&b?v!==u&&("above"===u&&d>=m||"below"===u&&m>=d)&&(v=u):f||b||(d>m?v="above":m>d&&(v="below")),t.currentDirection=v;let y={width:i.getElementWidth(l,!0,!0),height:Math.min(c,Math.max(d,m,0))},C=void 0!==e.targetRtl?e.targetRtl:null!=e.target&&"rtl"===getComputedStyle(e.target).direction,L="rtl"===getComputedStyle(document.documentElement).direction,E=i.anchoredPosition(e.target,e.anchor?e.anchor.x:"start",e.anchor?e.anchor.y:"bottom",n,C),S=i.anchoredPosition(l,e.position?e.position.x:"start",e.position?e.position.y:"top",y,C),k="top"===S.ySpec&&"above"===v||"bottom"===S.ySpec&&"below"===v||"bottom"!==S.ySpec&&"top"!==S.ySpec&&"above"===v,w=void 0!==r.pageXOffset?r.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft;w=Math.abs(w),L&&(w=document.documentElement.scrollWidth-w-document.documentElement.clientWidth);let x=w,T=document.documentElement.clientWidth+w-y.width,P={position:"absolute",left:n.left,top:n.top+(k?E.bottom-S.bottom:E.top-S.top)};if(L&&(P.left-=document.documentElement.clientWidth-document.documentElement.scrollWidth),P.left+=E.left-S.left,e.offset&&(e.offset.y&&(k?P.top-=e.offset.y:P.top+=e.offset.y),e.offset.x)){let t="rtl"===h.direction;P.left+=t?-e.offset.x:e.offset.x}if(t.autoFlipDirection&&("right"===S.xSpec&&P.left<x&&(Math.max(P.left,x)+y.width-n.left)/n.width>.5||"left"===S.xSpec&&P.left>T&&(Math.min(P.left,T)-n.left)/n.width<.5)&&(P.left-=E.left-S.left,P.left+=E.right-S.right),t.constrainToWindow)for(let e of L?["min","max"]:["max","min"])"min"===e&&P.left<x?P.left=x:"max"===e&&P.left>T&&(P.left=T);return P.left+="px",P.top+="px",i.setCssProps(l,P),i.setElementHeight(l,y.height,!0,!0),t.virtualListHelper.render(),e&&e.target&&(t.lastPositionTarget=e.target,s.toggleClass(e.target,`has_${t.baseClassName}`,!0),s.toggleClass(e.target,`has_${t.baseClassName}_below`,"below"===v),s.toggleClass(e.target,`has_${t.baseClassName}_above`,"above"===v),s.toggleClass(l,`${t.baseClassName}__is_below`,"below"===v),s.toggleClass(l,`${t.baseClassName}__is_above`,"above"===v)),this}setItemChecked(e,t){const i=this._p;t=!!t;let l=this.itemIndexByValue(e);if(-1===l)return this;let r=i.virtualListHelper.getItemElementAt(l);if(!r)return this;let n=r[u];return t=t&&!n._nocheck,n._checked!==t&&(n._checked=t,s.toggleClass(r,`${i.baseClassName}__item_checked`,n._checked),this._updateGroupStateForItem(n)),this}setCheckedValues(e){const t=this._p;let i=[];for(let l=0,r=t.items.length;l<r;l++){let r=t.items[l],n=!r._nocheck&&-1!==e.indexOf(r.value);if(r._group&&i.push(l),r._checked===n)continue;r._checked=n;let o=t.virtualListHelper.getItemElementAt(l);o&&s.toggleClass(o,`${t.baseClassName}__item_checked`,r._checked)}if(t.autoCheckGroupChildren)for(let e=0,t=i.length;e<t;e++)this._updateGroupCheckedState(i[e],!1);return this}getCheckedValues(e){const t=this._p;e=e&&t.groupCount>0;let s=[];for(let i=0,l=t.items.length;i<l;i++){let l=t.items[i];l._checked&&(e&&l._group||s.push(l.value))}return s}getCheckedItems(e){const t=this._p;e=e&&t.groupCount>0;let s=[];for(let i=0,l=t.items.length;i<l;i++){let l=t.items[i];l._checked&&(e&&l._group||s.push(l[u]))}return s}show(e){const t=this._p;t.hiding=!1,this.isVisible()||this._trigger("show:before"),t.mouseHandled=!1,setTimeout((()=>{this[c]||t.onDocumentMouseDown||t.sink.add(document,"mousedown",t.onDocumentMouseDown=e=>{t.el.contains(e.target)||this._delayBlurItemOnBlur()})}));const s=t.el;if(s.style.position="absolute",s.classList.remove(`${t.baseClassName}__is-hiding`),document.body.appendChild(s),t.visible=!0,t.el.style.display="","none"===getComputedStyle(t.el).display&&(t.el.style.display="block"),e){const t=getComputedStyle(s),i=s.style.maxHeight;let l=document.body.clientHeight-(parseFloat(t.marginTop)||0)-(parseFloat(t.marginBottom)||0)-("border-box"===t.boxSizing?0:(parseFloat(t.borderTopWidth)||0)+(parseFloat(t.borderBottomWidth)||0));s.style.maxHeight=Math.min(l,parseFloat(t.maxHeight)||l)+"px",this.relayout(e),s.style.maxHeight=i}else t.virtualListHelper.isVirtual()&&t.virtualListHelper.render();return this.isVisible()&&this._trigger("show"),this}hide(){const e=this._p,t=e.el;if(e.onDocumentMouseDown&&(e.sink.remove(document,"mousedown",e.onDocumentMouseDown),e.onDocumentMouseDown=null),this.isVisible()){if(this._trigger("hide:before"),e.hiding=!0,t&&(t.classList.add(`${e.baseClassName}__is-hiding`),i.parseTransition(getComputedStyle(e.el).transition).reduce(((e,t)=>Math.max(e,t.delay+t.duration)),0)>0?setTimeout((()=>{this[c]||this._p&&t.parentNode&&e.hiding&&(s.remove(t),t.classList.remove(`${e.baseClassName}__is-hiding`),e.visible=!1,this._trigger("hide:after"))})):(s.remove(t),t.classList.remove(`${e.baseClassName}__is-hiding`))),e.visible=!1,this.blurFocusedItem(),this._trigger("hide"),this[c])return;this._trigger("hide:after"),e.currentSubDropList&&this._hideSublist()}return e.lastPositionTarget&&(e.lastPositionTarget.classList.remove(`has_${e.baseClassName}`,`has_${e.baseClassName}_above`,`has_${e.baseClassName}_below`),delete e.lastPositionTarget),this}isVisible(){const e=this._p;return!!e.visible&&e.el.parentNode&&"none"!==getComputedStyle(e.el).display}hasFocusedItem(){return this._p.focusItemIndex>-1}getFocusedItemIndex(){return this.hasFocusedItem()?this._p.focusItemIndex:-1}setFocusedItemAtIndex(e){const t=this._p;t.focusItemIndex=e;let s=null;e>-1&&(s=t.items[e]),s&&s._nointeraction&&(s=null),e>-1&&this.scrollItemIndexIntoView(e);let i=s?t.virtualListHelper.getItemElementAt(e):null;if(t.focusItemEl!==i&&(t.focusItemEl&&(t.focusItemEl.classList.remove(`${t.baseClassName}__item_focus`),t.focusItemEl=null),i)){i.classList.add(`${t.baseClassName}__item_focus`),t.focusItemEl=i;const e=i[u];this._trigger("itemfocus",{value:e.value,item:e[u]??e,event:null,el:i}),this._showSublist(e,i)}return this}_showSublist(e,t){if(!e._subitems?.length)return;const s=this._p,i=new p({baseClassName:s.baseClassName,additionalClasses:s.additionalClasses,direction:s.direction,autoItemBlur:s.autoItemBlur,autoItemBlurDelay:s.autoItemBlurDelay,capturesFocus:s.capturesFocus,multi:s.multi,keyDownHandler:s.keyDownHandler,autoCheckGroupChildren:s.autoCheckGroupChildren,useExactTargetWidth:s.useExactTargetWidth,constrainToWindow:s.constrainToWindow,autoFlipDirection:s.autoFlipDirection,estimatedItemHeight:s.estimatedItemHeight,estimateWidth:s.estimateWidth,virtualMinItems:s.virtualMinItems,labelProp:s.labelProp,valueProp:s.valueProp,renderItem:s.renderItem,unrenderItem:s.unrenderItem});let l=e=>{this[c]||e.relatedTarget&&this.elContains(e.relatedTarget,!0)||(this._delayBlurItemOnBlur(),this._trigger("subitems:blur",e))};i.on("select",(e=>{this._trigger("subitems:select",e)})).on("subitems:select",(e=>{this._trigger("subitems:select",e)})).on("blur",l).on("subitems:blur",l).on("_back_key_pressed",(()=>{this._hideSublist()})),i.setItems(e._subitems),this._trigger("show_subitems",{value:e.value,item:e[u]??e,el:t,droplist:i}),s.currentSubDropList={item:e,itemElement:t,droplist:i,showOptions:{target:t,position:{x:"start",y:"top"},anchor:{x:"end",y:"top"},offset:{x:0,y:0},updateWidth:!1}},i.show(s.currentSubDropList.showOptions),i.el.focus()}_hideSublist(){const e=this._p;if(!e.currentSubDropList)return;const t=e.currentSubDropList;let s=!!document.activeElement&&t.droplist.elContains(document.activeElement,!0);t.droplist.hide(),t.droplist.destroy(),e.currentSubDropList=null,s&&!this[c]&&this.el.focus(),this._trigger("hide_subitems",{value:t.item.value,item:t.item,el:t.itemElement})}updateSublist(){const e=this._p;if(!e.currentSubDropList)return;const t=e.currentSubDropList.item,s=e.currentSubDropList,i=e.items.find((e=>e===t))||e.items.find((e=>e.value===s.item.value));if(i){e.currentSubDropList.item=i;const t=e.virtualListHelper.getItemElementAt(this._getItemIndex(i));e.currentSubDropList.itemElement=t,i._subitems&&(e.currentSubDropList.droplist.setItems(i._subitems),t&&(e.currentSubDropList.showOptions.target=t,e.currentSubDropList.droplist.relayout(e.currentSubDropList.showOptions)))}}setFocusedItem(e){const t=this._p;let s=e._nointeraction?-1:this._getItemIndex(e);return s>-1&&t.items[s]._nointeraction&&(s=-1),this.setFocusedItemAtIndex(s)}setFocusedItemByValue(e){return this.setFocusedItemAtIndex(this.itemIndexByValue(e))}setSingleSelectedItemAtIndex(e){const t=this._p;let s=null;return e>-1&&!t.items[e]._nointeraction&&(s=t.virtualListHelper.getItemElementAt(e)),this._setSingleSelectedItemEl(s),this}setSingleSelectedItem(e){const t=this._p;let s=e._nointeraction?-1:this._getItemIndex(e);return s>-1&&t.items[s]._nointeraction&&(s=-1),this.setSingleSelectedItemAtIndex(s)}setSingleSelectedItemByValue(e){return this.setSingleSelectedItemAtIndex(this.itemIndexByValue(e))}next(e){this._move("next",e)}previous(e){this._move("prev",e)}isFirstItem(){const e=this._p;return 0===e.focusItemIndex&&e.focusItemIndex<e.items.length}isLastItem(){const e=this._p;return e.focusItemIndex>-1&&e.focusItemIndex===e.items.length-1}scrollItemIndexIntoView(e){const t=this._p;if(this._hasScroll()){const s=t.el,i=s.scrollTop;let l,r=-1,n=30;for(;n-- >0&&(l=t.virtualListHelper.getItemPosition(e),l!==r);){r=l;let n=t.virtualListHelper.getItemSize(e),o=s.clientHeight;l<i?s.scrollTop=l:l+n>i+o&&(s.scrollTop=l+n-o),t.virtualListHelper.render()}}return this}on(e,t){return this._p.mitt.on(e,t),this}once(e,t){let s=i=>{this._p.mitt.off(e,s),t(i)};return this._p.mitt.on(e,s),this}off(e,t){return e||e?this._p.mitt.off(e,t):this._p.mitt.all.clear(),this}emit(e,t){return this._p.mitt.emit(e,t),this}_getItemIndex(e){const t=this._p;let s=-1;if(e&&(s=t.items.indexOf(e),-1===s)){let t=e&&void 0!==e.value?e.value:e,i=e&&e.label?e.label:t;s=this.itemIndexByValueOrLabel(t,i)}return s}_setSingleSelectedItemEl(e){const t=this._p;return t.singleSelectedItemEl&&(t.singleSelectedItemEl.classList.remove(`${t.baseClassName}__item_checked`),t.singleSelectedItemEl=null),e&&(e.classList.add(`${t.baseClassName}__item_checked`),t.singleSelectedItemEl=e),this}_trigger(e,t){const s=this._p;s.on&&s.on(e,...void 0===t?[]:[t]),s.mitt.emit(e,t)}_itemUpAction(e,s){if(t.closestUntil(e.target,".requires-pointer-events,button",s))return;let i=this._p;if(!this._mouseHandled){if(this.triggerItemSelection(null,e),this[c])return;this.toggleFocusedItem(),document.activeElement!==this.el&&i.focusItemEl&&clearTimeout(i.blurTimer),setTimeout((()=>{this._mouseHandled=!1}),0)}}_hookMouseEvents(){const e=this._p;e.sink.add(e.el,"mouseup",(e=>{const s=t.closestUntil(e.target,"li",e.currentTarget);s&&0===e.button&&this._itemUpAction(e,s)})).add(e.el,"mouseover",(e=>{const s=t.closestUntil(e.target,"li",e.currentTarget);s&&this._handleMouseOver(e,s)}))}_handleMouseOver(e,t){this._focus(e,t,null,!0)}_hookTouchEvents(){const e=this._p;let s;e.sink.add(e.el,"touchstart",(i=>{const l=t.closestUntil(i.target,"li",i.currentTarget);if(!l)return;if(s)return;if(t.closestUntil(i.target,".requires-pointer-events,button",l))return;s=i.changedTouches[0].identifier,this._handleMouseOver(i,l);let r=!1,n=()=>{r=!0},o=()=>{s=null,e.sink.remove(null,".dropdown_touchextra")},a=l.parentNode;for(;a;)e.sink.add(a,"scroll.dropdown_touchextra",n),a=a.parentNode;e.sink.add(window,"scroll.dropdown_touchextra",n),e.sink.add(window,"touchcancel.dropdown_touchextra",o),e.sink.add(e.el,"touchend.dropdown_touchextra",(e=>{const i=t.closestUntil(e.target,"li",e.currentTarget);return i&&Array.prototype.find.call(e.changedTouches,(e=>e.identifier===s))?(o(),void(r||(this._itemUpAction(e,i),e.preventDefault()))):o()}))}))}_hookFocusEvents(){const e=this._p;e.sink.add(e.el,"focus",(t=>{let s=e.focusItemEl||e.el.firstChild;this._focus(t,s,null,!1)})).add(e.el,"blur",(e=>{setTimeout((()=>{this[c]||document.activeElement&&this.elContains(document.activeElement,!0)||(this._delayBlurItemOnBlur(),this._trigger("blur",e))}))}))}_hookKeyEvents(){const e=this._p;e.sink.add(e.el,"keydown",(e=>this._keydown(e)))}_keydown(e){const t=this._p;if(t.keyDownHandler&&t.keyDownHandler.call(this,e))return;let s=!0;switch(e.key){case n.VALUE_PAGE_UP:case n.VALUE_PAGE_DOWN:case n.VALUE_HOME:case n.VALUE_END:case n.VALUE_UP:case n.VALUE_DOWN:switch(e.preventDefault(),e.key){case n.VALUE_PAGE_UP:this.previousPage(e);break;case n.VALUE_PAGE_DOWN:this.nextPage(e);break;case n.VALUE_HOME:this._move("first",e);break;case n.VALUE_END:this._move("last",e);break;case n.VALUE_UP:this.previous(e);break;case n.VALUE_DOWN:this.next(e)}break;case n.VALUE_LEFT:case n.VALUE_RIGHT:if(e.key===n.VALUE_RIGHT&&"rtl"!==getComputedStyle(e.target).direction||e.key===n.VALUE_LEFT&&"rtl"===getComputedStyle(e.target).direction){let e=t.items[t.focusItemIndex];t.focusItemIndex>-1&&e._subitems&&this._showSublist(e,t.focusItemEl)}else t.currentSubDropList?(this._hideSublist(),s=!1):this._trigger("_back_key_pressed");break;case n.VALUE_ENTER:this.triggerItemSelection(null,e),e.preventDefault();break;case n.VALUE_SPACE:this.toggleFocusedItem(),e.preventDefault();break;case n.VALUE_ESCAPE:e.preventDefault(),this.hide();break;default:if("keydown"===e.type)return;this._keydownFreeType(e),s=!1}}_keydownFreeType(e){const t=this._p;let s=e.key||String.fromCharCode(e.keyCode);if(1!==s.length)return;clearTimeout(t.filterTimer);let i,l=(t.previousFilter||"")+s,r=new RegExp(`^${a(l)}`,"i"),n=-1,o=t.focusItemIndex;for(let e=0,s=t.items.length;e<s&&(-1!==n&&e<o||(i=t.items[e],!(r.test(i.label)&&(n=e,-1===o||e>=o))));e++);if(-1===n){l=s,r=new RegExp(`^${a(l)}`,"i");for(let e=0,s=t.items.length;e<s&&(-1!==n&&e<o||(i=t.items[e],!(r.test(i.label)&&(n=e,-1===o||e>=o))));e++);}if(n>-1){let s=t.virtualListHelper.getItemElementAt(n);this._focus(e,s||null,n,!0),this.isVisible()||this.triggerItemSelection(s?null:t.items[n],e),t.previousFilter=l,t.filterTimer=setTimeout((()=>{delete t.previousFilter}),1e3)}else delete t.previousFilter}_focus(e,t,s,i){const l=this._p;if(l._isFocusingItem)return;l._isFocusingItem=!0,!s&&t&&(s=l.virtualListHelper.getItemIndexFromElement(t)),s>-1?this.scrollItemIndexIntoView(s):void 0===s&&(t=null);let r=t||l.virtualListHelper.getItemElementAt(s);if(!r||r[u]._nointeraction)return l._isFocusingItem=!1,void this.blurFocusedItem();if(r===l.focusItemEl)return l._isFocusingItem=!1,void clearTimeout(l.blurTimer);this.blurFocusedItem(),r.classList.add(`${l.baseClassName}__item_focus`),l.focusItemEl=r,l.focusItemIndex=s;const n=l.items[s];this._trigger("itemfocus",{value:n.value,item:n[u]??n,event:e,el:r}),l._isFocusingItem=!1,i&&this._showSublist(n,r)}_delayBlurItemOnBlur(){if(this[c])return;const e=this._p;e.autoItemBlur&&(clearTimeout(e.blurTimer),e.blurTimer=setTimeout((()=>{this[c]||this.blurFocusedItem()}),e.autoItemBlurDelay))}_move(e,t){const s=this._p;let l,r,n=!1;if("first"===e)r=0,n=!1;else if("last"===e)r=s.items.length-1,n=!0;else if("prev"===e){if(!this.hasFocusedItem())return this._move("last",t);r=s.focusItemIndex-1,-1===r&&(r=s.items.length-1),n=!0}else if("next"===e){if(!this.hasFocusedItem())return this._move("first",t);r=s.focusItemIndex+1,r===s.items.length&&(r=0),n=!1}else{if("prev_page"!==e&&"next_page"!==e)return;if(!this.hasFocusedItem())return this._move("prev_page"===e?"prev":"next",t);if("prev_page"===e&&this.isFirstItem()||"next_page"===e&&this.isLastItem())return;if(!this._hasScroll())return this._move("prev_page"===e?"first":"last",t);if(s.virtualListHelper.isVirtual()){let t=s.virtualListHelper.getVisibleItemCount();r=s.focusItemIndex,"prev_page"===e?r-=t:r+=t,r<0?r=0:r>=s.items.length&&(r=s.items.length)}else if(s.focusItemEl){let t=i.getElementOffset(s.focusItemEl).top,n=i.getElementHeight(s.el,!0);for(;;){if(l=s.focusItemEl.nextElementSibling,!l)return;if("LI"===l.tagName)if("prev_page"===e){if(i.getElementOffset(l).top-t+n<=0)break}else if(i.getElementOffset(l).top-t-n>=0)break}l&&(r=s.virtualListHelper.getItemIndexFromElement(l),void 0===r&&(r=-1))}n="prev_page"===e}let o=s.items.length;if(r>=o)return;let a=s.items[r],u=r;for(;a&&a._nointeraction&&(n?(r--,-1===r&&(r=o)):(r++,r===o&&(r=0)),a=s.items[r],r!==u););l=s.virtualListHelper.getItemElementAt(r),this._focus(t,l||null,r,!1),this.isVisible()||this.triggerItemSelection(a,t)}_hasScroll(){return this.el.clientHeight<this.el.scrollHeight}_updateGroupStateForItem(e){const t=this._p;if(!t.multi)return this;if(e._group){let i=0;if(t.autoCheckGroupChildren){let l=t.items;for(let r=l.indexOf(e)+1,n=l.length;r<n;r++){let n=l[r];if(n._group||!n._child&&l[r-1]._child)break;if(!!n._checked===e._checked)continue;n._checked=e._checked,i++;let o=t.virtualListHelper.getItemElementAt(r);o&&s.toggleClass(o,`${t.baseClassName}__item_checked`,e._checked),this._trigger("check",{value:n.value,item:n[u]??n,checked:n._checked,isGroup:n._group,isCheckingGroup:!0})}}this._trigger("groupcheck",{value:e.value,item:e[u]??e,affectedItems:i})}else if(t.groupCount>0&&t.autoCheckGroupChildren){let s=t.items,i=-1;for(let t=s.indexOf(e)-1;t>=0;t--)if(s[t]._group){i=t;break}i>-1&&this._updateGroupCheckedState(i,!0)}return this}_updateGroupCheckedState(e,t){const i=this._p;if(!(i.multi&&i.autoCheckGroupChildren&&e>-1))return this;let l=i.items,r=l[e];if(!r||!r._group)return this;let n,o=!1,a=!1;for(let t=e+1,s=l.length;t<s&&(n=l[t],!(n._group||!n._child&&l[t-1]._child));t++)n._checked?o=!0:n._checked||(a=!0);if(!o&&!a)return this;let c=o&&!a;if(!!r._checked!==c){r._checked=c;let l=i.virtualListHelper.getItemElementAt(e);l&&s.toggleClass(l,`${i.baseClassName}__item_checked`,r._checked),t&&this._trigger("check",{value:r.value,item:r[u]??r,checked:r._checked,isGroup:r._group,isCheckingGroup:!1})}return this}_measureItem(){const e=this._p;if(e.lastMeasureItemCount!==e.items.length){let t=e.lastMeasureLongestLabel||1,s=e.lastMeasureLongestLabelText||"";for(let i=0,l=e.items,r=l.length;i<r;i++){const e=l[i];let r=e.label;null==r&&(r=e.value),null==r&&(r="");let n=r.length;n>t&&(t=n,s=r)}e.lastMeasureItemCount=e.items.length,e.lastMeasureLongestLabel=t,e.lastMeasureLongestLabelText=s}return(e.estimateWidth||e.virtualListHelper.isVirtual())&&e.virtualListHelper.createGhostItemElement(d,!0,(s=>{let l=t.createElement("span",{css:{display:"block",width:"100px",height:"100px",overflow:"scroll",position:"absolute"}}),r=t.createElement("span",{css:{display:"block",position:"relative",width:"0",height:"0",overflow:"hidden"}},[l]);s.appendChild(r);let n=l.offsetWidth-l.clientWidth;s.removeChild(r),e.lastMeasureItemWidth=i.getElementWidth(s,!0,!0)+n})),this}_determineVirtualMode(e){const t=this._p;let s=t.items;void 0===e&&(e=s.length);let i=e>=t.virtualMinItems;return i!==t.virtualListHelper.isVirtual()&&t.virtualListHelper.setVirtual(i).render(),this}_renderItemContent(e,s){const i=this._p;i.renderItem&&!1!==i.renderItem(e[u]||e,s)||(s.appendChild(t.createElement("span",{class:`${i.baseClassName}__item_label`,textContent:e.label})),i.multi&&(e._nocheck||s.insertBefore(t.createElement("span",{class:"checkbox"}),s.firstChild)))}_updateWidth(e){const t=this._p,s=t.el;let l=0;e&&(l="number"==typeof e.updateWidth||null!=e.targetWidth?e.updateWidth:i.getElementWidth(e.target,!0,!0));let r=0;t.useExactTargetWidth||(t.estimateWidth||t.virtualListHelper.isVirtual()?r=t.lastMeasureItemWidth:(s.style.width="",r=i.getElementWidth(s,!0,!0)));let n=Math.max(r,l);i.setElementWidth(s,n,!0,!0);const o=getComputedStyle(s);let a=(parseFloat(o.borderLeftWidth)||0)+(parseFloat(o.borderRightWidth)||0),u=s.scrollWidth+a;if(u>n){let e=u-n;s.style.width=`${parseFloat(s.style.width)+e}px`,n=u}return n}}const _=(e,t,s)=>{let i,l,r,n,o=0;s||(s={});const a=()=>{o=!1===s.leading?0:Date.now(),i=null,n=e.apply(l,r),i||(l=r=null)},u=function(){const u=Date.now();o||!1!==s.leading||(o=u);const c=t-(u-o);return l=this,r=arguments,c<=0||c>t?(i&&(clearTimeout(i),i=null),o=u,n=e.apply(l,r),i||(l=r=null)):i||!1===s.trailing||(i=setTimeout(a,c)),n};return u.cancel=()=>{clearTimeout(i),o=0,i=l=r=null},u.isScheduled=()=>!!i,u},g=Symbol("item"),I=Symbol("destroyed"),f=Symbol("no_results_items"),b=Symbol("rest_multi_items"),v=!!("ontouchstart"in window||window.DocumentTouch&&window.document instanceof window.DocumentTouch||window.navigator.maxTouchPoints),y=function(e,t){return e instanceof Element&&e.classList.contains(t)},C=["font-family","font-size","font-weight","font-size","letter-spacing","text-transform","word-spacing","text-indent","box-sizing","padding-left","padding-right"],L={el:null,baseClassName:"selectbox",disabled:!1,clearable:!0,hasOpenIndicator:!0,placeholder:"",sortSelectedItems:!0,sortListItems:!1,sortListCheckedFirst:!0,stickyValues:null,sortItemComparator:null,splitListCheckedGroups:!0,treatGroupSelectionAsItems:!1,blurOnSingleSelection:"touch",multi:!1,showSelection:!0,showPlaceholderInTooltip:!1,multiPlaceholderFormatter:null,searchable:!0,noResultsText:"No matching results",filterThrottleWindow:300,filterOnEmptyTerm:!1,labelProp:"label",valueProp:"value",multiItemLabelProp:"short_label",maxMultiItems:null,multiItemsRestLabelProvider:null,items:[],selectedValues:void 0,value:void 0,isLoadingMode:!1};e.DropList=p,e.SelectBox=class{constructor(e){const i={...L};for(let[t,s]of Object.entries(e))void 0!==s&&(i[t]=s);const r=this._p={ownsEl:!0,baseClassName:i.baseClassName,additionalClasses:i.additionalClasses,direction:"ltr"===i.direction?"ltr":"rtl"===i.direction?"rtl":"auto",listOptions:i.listOptions,disabled:!!i.disabled,clearable:!!i.clearable,hasOpenIndicator:!!i.hasOpenIndicator,placeholder:i.placeholder,sortSelectedItems:!!i.sortSelectedItems,sortListItems:!!i.sortListItems,sortListCheckedFirst:!!i.sortListCheckedFirst,stickyValues:Array.isArray(i.stickyValues)?new Set(i.stickyValues):null,sortItemComparator:i.sortItemComparator,splitListCheckedGroups:!!i.splitListCheckedGroups,treatGroupSelectionAsItems:i.treatGroupSelectionAsItems,blurOnSingleSelection:i.blurOnSingleSelection,multi:i.multi,showSelection:i.showSelection,showPlaceholderInTooltip:i.showPlaceholderInTooltip,multiPlaceholderFormatter:i.multiPlaceholderFormatter,searchable:i.searchable,noResultsText:i.noResultsText,filterThrottleWindow:i.filterThrottleWindow,filterOnEmptyTerm:i.filterOnEmptyTerm,labelProp:i.labelProp,valueProp:i.valueProp,multiItemLabelProp:i.multiItemLabelProp,maxMultiItems:i.maxMultiItems,multiItemsRestLabelProvider:i.multiItemsRestLabelProvider,renderSingleItem:i.renderSingleItem,unrenderSingleItem:i.unrenderSingleItem,renderMultiItem:i.renderMultiItem,unrenderMultiItem:i.unrenderMultiItem,renderRestMultiItem:i.renderRestMultiItem,unrenderRestMultiItem:i.unrenderRestMultiItem,renderNoResultsItem:i.renderNoResultsItem,unrenderNoResultsItem:i.unrenderNoResultsItem,filterFn:i.filterFn,on:i.on||null,silenceEvents:!0,mitt:o(),isLoadingMode:!!i.isLoadingMode,items:[],filteredItems:null,currentItemsView:[],itemsChanged:!0,sink:new l,resizeObserver:null,selectedItems:[],selectedValues:[],selectionChanged:!0,resortBySelectionNeeded:!1,throttledUpdateListItems:_((()=>this._updateListItems()),i.filterThrottleWindow,{leading:!0,trailing:!0}),filterTerm:""};let n=i.el;n instanceof Element?r.ownsEl=!1:n=t.createElement("span"),t.setElementAttrs(n,{role:"combobox","aria-haspopup":"true","aria-expanded":"false"}),r.el=n,this._syncBaseClasses(),this._renderBase(),r.multiItemEls=[],this.enable(!r.disabled),this._setupDropdownMenu(),r.sink.add(n,"click",(e=>{r.clearButtonWrapper&&r.clearButtonWrapper.contains(e.target)||n.contains(document.activeElement)||(r.input.focus(),r.input.selectionStart=r.input.selectionEnd=r.input.value.length)})),r.sink.add(n,"focus",(e=>{const t=e.target;if(!n.contains(e.relatedTarget)&&!y(t,`${r.baseClassName}__search_field`)&&!y(t,`${r.baseClassName}__item`)){let e=n.querySelector(`.${r.baseClassName}__search_field`);e&&e.focus()}}),!0),r.sink.add(r.input,"keydown",(e=>{this._handleInputKeydown(e)})).add(r.input,"input",(()=>{this._resizeInput()}));const a=(()=>{let e;return()=>{e&&clearTimeout(e),e=setTimeout((()=>{s.toggleClass(n,`${r.baseClassName}__focus`,n.contains(document.activeElement))}))}})();if(r.sink.add(n,"focus",a,!0),r.sink.add(n,"blur",a,!0),r.sink.add(window,"resize",(()=>this._resizeInput())),r.sink.add(window,"orientationchange",(()=>this._resizeInput())),void 0!==window.ResizeObserver){let e={borderBoxSize:{blockSize:null,inlineSize:null},contentBoxSize:{blockSize:null,inlineSize:null}};r.resizeObserver=new ResizeObserver((t=>{if(this[I])return;const s=t[0];e&&s.borderBoxSize[0].blockSize===e.borderBoxSize.blockSize&&s.borderBoxSize[0].inlineSize===e.borderBoxSize.inlineSize&&s.contentBoxSize[0].blockSize===e.contentBoxSize.blockSize&&s.contentBoxSize[0].inlineSize===e.contentBoxSize.inlineSize||(r.resizeObserver.unobserve(r.el),this._resizeInput(),requestAnimationFrame((()=>r.resizeObserver.observe(r.el)))),e.borderBoxSize=s.borderBoxSize[0],e.contentBoxSize=s.contentBoxSize[0]})),r.resizeObserver.observe(r.el)}return this.setItems(i.items),delete i.items,i.multi&&Array.isArray(i.selectedValues)?this.setSelectedValues(i.selectedValues):null!=i.value&&this.setValue(i.value),this._scheduleSync("full"),this.silenceEvents=!1,this}destroy(){if(this[I])return;this[I]=!0;const e=this._p;if(e.syncTimeout&&(clearTimeout(e.syncTimeout),delete e.syncTimeout),this._stopTrackingPresence(),e.sink.remove(),e.dropList&&e.dropList.destroy(),e.throttledUpdateListItems&&e.throttledUpdateListItems.cancel(),this._cleanupSingleWrapper(),e.unrenderMultiItem||e.unrenderRestMultiItem)for(;e.multiItemEls.length>0;)this._removeMultiItemElementByIndex(e.multiItemEls.length-1);if(s.remove(e.list),s.remove(e.singleWrapper),s.remove(e.input),s.remove(e.inputBackBuffer),s.remove(e.clearButtonWrapper),s.remove(e.openIndicator),!e.ownsEl){for(let t of Array.from(e.el.classList))t.startsWith(e.baseClassName)&&e.el.classList.remove(t);e.el.removeAttribute("role"),e.el.removeAttribute("aria-haspopup"),e.el.removeAttribute("aria-expanded")}e.resizeObserver?.disconnect(),this._p=null}get el(){return this._p.el}get droplistInstance(){return this._p.dropList}droplistElContains(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this._p.dropList?.elContains(e,t)}enable(e){const t=this._p;void 0===e&&(e=!0),t.disabled=!e,t.el.setAttribute("aria-disabled",t.disabled.toString()),t.input.disabled=!!t.disabled;const s=t.multiItemEls;for(let e of s)t.disabled?e.removeAttribute("tabindex"):e.setAttribute("tabindex","0");return this}isEnabled(){return!this._p.disabled}disable(e){return this.enable(void 0!==e&&!e)}isDisabled(){return this._p.disabled}setAdditionalClasses(e){return this._p.additionalClasses=e,this._syncBaseClasses(),this}setItems(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const s=this._p;return e||(e=[]),s.items=e.slice(0),s.filteredItems=null,s.itemsChanged=!0,this._updateItemByValueMap(),t&&this.setSelectedValues(this.getSelectedValues()),this._trigger("itemschanged",{term:null,mutated:!0,count:this.getFilteredItemCount()}),this}getFilteredItemCount(){const e=this._p;return e.filteredItems?e.filteredItems.length:e.items?e.items.length:0}isFilterPending(){const e=this._p;return!!(e.throttledUpdateListItems.isScheduled()||!e.filteredItems&&(e.filterTerm||e.filterOnEmptyTerm&&e.filterFn))}updateItemByValue(e,t){const s=this._p;let i=s.itemByValueMap.get(e);i&&Object.assign(i,t),s.dropList&&s.dropList.updateItemByValue(e,t)}getItems(){return this._p.items}setClearable(e){return e=!!e,this._p.clearable===e||(this._p.clearable=!!e,this._scheduleSync("render_clear")),this}getClearable(){return this._p.clearable}setHasOpenIndicator(e){return e=!!e,this._p.hasOpenIndicator===e||(this._p.hasOpenIndicator=e,this._scheduleSync("render_base")),this}getHasOpenIndicator(){return this._p.hasOpenIndicator}setPlaceholder(e){return this._p.placeholder=null==e?"":String(e),this._scheduleSync("render_base"),this}getPlaceHolder(){return this._p.placeholder}setSearchTerm(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const s=this._p;return s.input?(s.input.value=e,this._scheduleSync("resize_input"),t&&(s.filterTerm=s.input.value.trim(),s.filteredItems=null,s.itemsChanged=!0,this._trigger("search",{value:s.input.value}),s.throttledUpdateListItems()),this):this}getSearchTerm(){const e=this._p;return e.input?e.input.value:""}invokeRefilter(){const e=this._p;return e.filterTerm||e.filterOnEmptyTerm||e.filteredItems?(e.filteredItems=null,e.itemsChanged=!0,e.throttledUpdateListItems(),this):this}setSortSelectedItems(e){const t=this._p;return e=!!e,t.sortSelectedItems===e||(t.sortSelectedItems=e,this._scheduleSync("render_items")),this}isSortSelectedItemsEnabled(){return this._p.sortSelectedItems}setSortListItems(e){const t=this._p;return e=!!e,t.sortListItems===e||(t.sortListItems=e,t.filteredItems=null,t.itemsChanged=!0,this._scheduleSync("render_list")),this}isSortListItemsEnabled(){return this._p.sortListItems}setSortListCheckedFirst(e){const t=this._p;return e=!!e,t.sortCheckedFirst===e||(t.sortCheckedFirst=e,t.itemsChanged=!0,this._scheduleSync("render_list")),this}isSortListCheckedFirstEnabled(){return this._p.sortListCheckedFirst}setStickyValues(e){const t=this._p;return t.stickyValues=Array.isArray(e)?new Set(e):null,t.itemsChanged=!0,this._scheduleSync("render_list"),this}getStickyValues(){return this._p.stickyValues?Array.from(this._p.stickyValues):null}setSortItemComparator(e){const t=this._p;return t.sortItemComparator===e||(t.sortItemComparator=e,t.itemsChanged=!0,this._scheduleSync("render_list")),this}getSortItemComparator(){return this._p.sortItemComparator}setTreatGroupSelectionAsItems(e){const t=this._p;return e=!!e,t.treatGroupSelectionAsItems===e||(t.treatGroupSelectionAsItems=e,t.itemsChanged=!0,this._scheduleSync("render_list")),this}isTreatGroupSelectionAsItemsEnabled(){return!this._p.treatGroupSelectionAsItems}setSplitListCheckedGroups(e){const t=this._p;return e=!!e,t.splitListCheckedGroups===e||(t.splitListCheckedGroups=e,t.itemsChanged=!0,this._scheduleSync("render_list")),this}isSplitListCheckedGroupsEnabled(){return this._p.splitListCheckedGroups}setShowSelection(e){const t=this._p;return e=!!e,t.showSelection===e||(t.showSelection=e,this._scheduleSync("render_items")),this}isShowSelectionEnabled(){return this._p.showSelection}setShowPlaceholderInTooltip(e){const t=this._p;return e=!!e,t.showPlaceholderInTooltip===e||(t.showPlaceholderInTooltip=e,this._scheduleSync("render_base")),this}isShowPlaceholderInTooltipEnabled(){return this._p.showPlaceholderInTooltip}setMultiPlaceholderFormatter(e){const t=this._p;return t.multiPlaceholderFormatter===e||(t.multiPlaceholderFormatter=e,this._scheduleSync("render_base")),this}setBlurOnSingleSelection(e){const t=this._p;return t.blurOnSingleSelection===e||(t.blurOnSingleSelection=e),this}getBlurOnSingleSelection(){return this._p.blurOnSingleSelection}setMulti(e){const t=this._p;return e=!!e,t.multi===e||(t.multi=e,this._setupDropdownMenu(),s.remove(t.clearButtonWrapper),delete t.clearButtonWrapper,e&&t.selectedValues&&1===t.selectedValues.length&&Array.isArray(t.selectedValues[0])&&this.setSelectedValues(t.selectedValues[0]),this._scheduleSync("full")),this}isMultiEnabled(){return this._p.multi}setSearchable(e){const t=this._p;return e=!!e,t.searchable===e||(t.searchable=e,this._scheduleSync("full")),this}isSearchableEnabled(){return this._p.searchable}setNoResultsText(e){return this._p.noResultsText=e,this._scheduleSync("render_list"),this}getNoResultsText(){return this._p.noResultsText}setFilterThrottleWindow(e){const t=this._p;t.filterThrottleWindow=e;let s=!!t.throttledUpdateListItems&&t.throttledUpdateListItems.isScheduled();return t.throttledUpdateListItems&&t.throttledUpdateListItems.cancel(),t.throttledUpdateListItems=_((()=>this._updateListItems()),t.filterThrottleWindow,!0),s&&t.throttledUpdateListItems(),this}getFilterThrottleWindow(){return this._p.filterThrottleWindow}setFilterOnEmptyTerm(e){const t=this._p;return t.filterOnEmptyTerm===e||(t.filterOnEmptyTerm=e,t.throttledUpdateListItems()),this}getFilterOnEmptyTerm(){return this._p.filterOnEmptyTerm}setListOptions(e){return this._p.listOptions=e,this._setupDropdownMenu(),this}setRenderSingleItem(e,t){const s=this._p;return s.renderSingleItem=e,s.unrenderSingleItem=t,this}setRenderMultiItem(e,t){const s=this._p;return s.renderMultiItem=e,s.unrenderMultiItem=t,this}setRenderRestMultiItem(e,t){const s=this._p;return s.renderRestMultiItem=e,s.unrenderRestMultiItem=t,this}setRenderNoResultsItem(e,t){const s=this._p;return s.renderNoResultsItem=e,s.unrenderNoResultsItem=t,this}setLabelProp(e){const t=this._p;return t.labelProp=e,t.dropList&&t.dropList.setLabelProp(e),this}setValueProp(e){const t=this._p;return t.valueProp===e||(t.valueProp=e,t.dropList&&t.dropList.setValueProp(e),this._updateItemByValueMap()),this}setMultiItemLabelProp(e){return this._p.multiItemLabelProp=e,this}setMaxMultiItems(e){return this._p.maxMultiItems=e,this}setMultiItemsRestLabelProvider(e){return this._p.multiItemsRestLabelProvider=e,this}setFilterFn(e){const t=this._p;return t.filterFn===e||(t.filterFn=e,t.throttledUpdateListItems()),this}getFilterFn(){return this._p.filterFn}focusInput(){const e=this._p;return e.input&&e.input.focus(),this}blurInput(){const e=this._p;return e.input&&e.input.blur(),this}clear(){return this._performClearWithEvent(!0)?(this[I],this):this}getValue(){const e=this._p;return e.multi?e.selectedValues.slice(0):e.selectedValues.length>0?e.selectedValues[0]:void 0}setValue(e){return this._p.multi?this.setSelectedValues(Array.isArray(e)?e:void 0!==e?[e]:[]):this.setSelectedValues(void 0!==e?[e]:[])}getSelectedValues(){return this._p.selectedValues.slice(0)}setSelectedValues(e){const t=this._p,s=t.valueProp;t.multi||(e=e.slice(0,1));let i=new Set,l=[],r=[];for(let n of e){if(i.has(n))continue;i.add(n),l.push(n);let e=t.itemByValueMap.get(n);void 0!==e?r.push(e):r.push({[s]:n})}return t.selectedValues=l,t.selectedItems=r,t.selectionChanged=!0,t.resortBySelectionNeeded=!0,this._scheduleSync("full"),this}getSelectedValueCount(){return this._p.selectedValues.length}getSelectedItems(){return this._p.selectedItems.slice(0)}setSelectedItems(e){return this._setSelectedItems(e),this}openList(){const e=this._p;return e.dropList.isVisible()||e.isLoadingMode&&0===e.items.length||(this._trigger("open:before",{list:e.dropList}),e.dropList.setDirection(getComputedStyle(e.el).direction),e.dropList.show(this._getDropListPositionOptions()),this._repositionDropList(),this._repositionDropList(),e.dropList.hasFocusedItem()&&e.dropList.setFocusedItemAtIndex(e.dropList.getFocusedItemIndex())),this}closeList(){const e=this._p;return this[I]?this:e.dropList.isVisible()?(e.dropList.hide(),this):this}toggleList(e){const t=this._p;return(void 0===e?!t.dropList.isVisible():e)?this.openList():this.closeList()}isListOpen(){return!!this._p.dropListVisible}toggleLoading(e){return this.setIsLoadingMode(void 0===e?!this.getIsLoadingMode():!!e)}setIsLoadingMode(e){const t=this._p;return e=void 0===e||!!e,t.isLoadingMode===e||(t.isLoadingMode=e,t.isLoadingMode&&0===t.items.length&&this.isListOpen()?this.closeList():!t.isLoadingMode&&document.activeElement&&((t.multi||t.searchable)&&t.input.contains(document.activeElement)||!t.multi&&!t.searchable&&t.el.contains(document.activeElement))&&this.openList(),this._scheduleSync("render_base")),this}getIsLoadingMode(){return this._p.isLoadingMode}setDirection(e){return this._p.direction="ltr"===e?"ltr":"rtl"===e?"rtl":"auto",this._syncBaseClasses(),this}getDirection(){return this._p.direction}refreshSize(){return this._resizeInput(),this}on(e,t){return this._p.mitt.on(e,t),this}once(e,t){let s=i=>{this._p.mitt.off(e,s),t(i)};return this._p.mitt.on(e,s),this}off(e,t){return e||e?this._p.mitt.off(e,t):this._p.mitt.all.clear(),this}emit(e,t){return this._p.mitt.emit(e,t),this}_updateItemByValueMap(){const e=this._p,t=e.itemByValueMap=new Map,s=e.valueProp;for(let i of e.items)t.set(i[s],i)}_renderBase(){const e=this._p;if(e.inputBackBuffer||(e.inputBackBuffer=t.createElement("span",{css:{position:"absolute",zIndex:-1,left:0,top:"-9999px",whiteSpace:"pre"}})),e.input||(e.inputWrapper=t.createElement("span",{class:`${e.baseClassName}__search_wrapper`},e.input=t.createElement("input",{class:`${e.baseClassName}__search_field`,type:"search",autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false",role:"textbox","aria-autocomplete":"list",readOnly:!(e.searchable||e.multi)}))),e.multi){if(e.singleWrapper&&(this._cleanupSingleWrapper(),s.remove(e.singleWrapper),delete e.singleWrapper),!e.list){this._unregisterDropdownEvents();const s=document.activeElement;e.list=t.createElement("ul",{class:`${e.baseClassName}__list`}),e.el.appendChild(e.list),e.list.appendChild(e.inputWrapper),e.el.classList.remove(`${e.baseClassName}__single`),e.el.classList.add(`${e.baseClassName}__multi`),e.sink.add(e.list,"click",(s=>{t.closestUntil(s.target,`.${e.baseClassName}__item_remove`,s.currentTarget)&&(e.disabled||this._removeMultiItemFromEvent(t.closestUntil(s.target,`.${e.baseClassName}__item`,s.currentTarget),s))})).add(e.list,"keydown",(s=>{t.closestUntil(s.target,`.${e.baseClassName}__item`,s.currentTarget)&&this._handleMultiKeydown(s)})),s===e.input&&e.input.focus(),this._registerDropdownEvents()}}else if(e.list&&(s.remove(e.list),e.sink.remove(e.list),delete e.list),!e.singleWrapper){this._unregisterDropdownEvents();const s=document.activeElement;e.singleWrapper=t.createElement("div",{class:`${e.baseClassName}__single_wrapper`}),e.el.appendChild(e.singleWrapper),e.el.appendChild(e.inputWrapper),e.el.classList.remove(`${e.baseClassName}__multi`),e.el.classList.add(`${e.baseClassName}__single`),s===e.input&&e.input.focus(),this._registerDropdownEvents()}e.hasOpenIndicator!==!!e.openIndicator&&(e.hasOpenIndicator?(e.openIndicator=t.createElement("span",{class:`${e.baseClassName}__open_indicator`}),e.el.appendChild(e.openIndicator)):(s.remove(e.openIndicator),delete e.openIndicator,e.el.classList.remove(`${e.baseClassName}__has_open_indicator`))),e.isLoadingMode!==!!e.spinner&&(e.isLoadingMode?(e.spinner=t.createElement("span",{class:`${e.baseClassName}__spinner`}),e.el.appendChild(e.spinner),e.el.classList.add(`${e.baseClassName}__has_spinner`)):(s.remove(e.spinner),delete e.spinner,e.el.classList.remove(`${e.baseClassName}__has_spinner`)))}_syncBaseClasses(){const e=this._p,t=e.el;if(!t)return;let s=[e.baseClassName];e.multi?s.push(`${e.baseClassName}__multi`):s.push(`${e.baseClassName}__single`),this.isListOpen()?s.push(`${e.baseClassName}__open_list`):s.push(`${e.baseClassName}__closed_list`),e.hasOpenIndicator&&s.push(`${e.baseClassName}__has_open_indicator`),e.clearButtonWrapper&&s.push(`${e.baseClassName}__has_clear`),e.isLoadingMode&&s.push(`${e.baseClassName}__has_spinner`),0===e.selectedValues.length&&s.push(`${e.baseClassName}__empty_selection`),e.selectedValues.length>0&&s.push(`${e.baseClassName}__has_selection`),(e.searchable||e.multi)&&s.push(`${e.baseClassName}__searchable`),"ltr"!==e.direction&&"rtl"!==e.direction||s.push(`${e.baseClassName}__`+e.direction),e.additionalClasses&&(s=s.concat(e.additionalClasses)),t.className=s.join(" ")}_setupDropdownMenu(){const e=this._p,s=e.valueProp;e.dropList&&(e.dropList.destroy(),delete e.dropList,e.itemsChanged=!0,e.selectionChanged=!0,e.resortBySelectionNeeded=!0);const i=e.renderNoResultsItem,l=e.unrenderNoResultsItem,r=(e.listOptions||{}).renderItem,n=(e.listOptions||{}).unrenderItem,o=i||r?(l,n)=>l&&l[s]===f?(i&&!1!==i(l,n)||n.appendChild(t.createElement("div",{class:"droplist-no-results-content",textContent:e.noResultsText})),!0):!!r&&r(l,n):null,a=l||r?(e,t)=>{if(e&&e[s]===f){if(l)return l(e,t)}else if(n)return n(e,t);return!1}:null,u=e.dropList=new p({virtualMinItems:10,...e.listOptions,renderItem:o,unrenderItem:a,multi:e.multi,capturesFocus:!1,labelProp:e.labelProp,valueProp:e.valueProp,on:(t,s)=>{switch(t){case"show:before":{e.dropListVisible=!0,e.el.setAttribute("aria-expanded","true"),e.el.classList.add(`${e.baseClassName}__open_list`),e.el.classList.remove(`${e.baseClassName}__closed_list`),e.resortBySelectionNeeded&&e.sortListCheckedFirst&&e.multi&&(e.itemsChanged=!0),this._updateListItems(),this._trigger("open",{list:u}),this._startTrackingPresence(),e.sink.add(window,"resize.trackposition",(()=>this._repositionDropList()));let t=e.el.parentNode;for(;t;)(t.scrollHeight>t.offsetHeight||t.scrollWidth>t.offsetWidth)&&(t===document.documentElement&&(t=window),e.sink.add(t,"scroll.trackposition",(()=>this._repositionDropList()))),t=t.parentNode}break;case"hide":if(e.dropListVisible=!1,e.el.setAttribute("aria-expanded","false"),e.el.classList.remove(`${e.baseClassName}__open_list`),e.el.classList.add(`${e.baseClassName}__closed_list`),e.multi||(this._setInputText(""),this._scheduleSync("render_base")),this._trigger("close"),this[I])return;this._stopTrackingPresence(),e.sink.remove(null,".trackposition");break;case"check":{if(!e.multi)return;const t=s.item,i=s.value;let l=s.checked;if(s.isGroup&&!e.treatGroupSelectionAsItems)return;let r={value:i,item:t,cancel:!1};if(this._trigger((l?"addsel":"removesel")+":before",r),r.cancel)return void e.dropList.setItemChecked(i,!l);if(l)e.selectedItems.push(t),e.selectedValues.push(i);else{const t=e.selectedValues.indexOf(i);-1!==t&&(e.selectedItems.splice(t,1),e.selectedValues.splice(t,1))}const n=!!s.isCheckingGroup;e.showSelection?l?(1===u.itemCount()&&this._setInputText(""),e.sortSelectedItems?n||this._scheduleSync("full"):(null!=e.maxMultiItems&&(e.treatGroupSelectionAsItems?e.selectedItems:e.selectedItems.filter((e=>!e._group))).length>e.maxMultiItems?this._scheduleSync("addOrUpdateMultiItemRestElement"):this._scheduleSync("addMultiItemElement",t),n||this._scheduleSync("render_base"))):(null!=e.maxMultiItems&&(e.treatGroupSelectionAsItems?e.selectedItems:e.selectedItems.filter((e=>!e._group))).length===e.maxMultiItems?this._scheduleSync("removeMultiItemRestElement"):this._scheduleSync("removeMultiItemElement",t),n||this._scheduleSync("render_base")):e.multi&&this._scheduleSync("syncPlaceholder"),this._trigger(l?"addsel":"removesel",{value:i,item:t})}break;case"groupcheck":if(!e.multi)return;s.affectedItems&&this._scheduleSync(e.sortSelectedItems?"full":"render_base");break;case"select":{if(e.multi)return;const t=s.item,i=s.value;if(!this._performSelectWithEvent(t,i))return;if(this[I])return;this.closeList(),("touch"===e.blurOnSingleSelection&&v||"touch"!==e.blurOnSingleSelection&&e.blurOnSingleSelection)&&e.input&&e.input.blur()}break;case"blur":this._handleOnBlur()}}});e.sink.add(u.el,"mousedown",(e=>{t.closestUntil(e.target,"li",e.currentTarget)&&e.preventDefault()})),this._registerDropdownEvents()}_handleOnBlur(){const e=this._p;setTimeout((()=>{this[I]||e.disabled||(this._trigger("search:blur"),this[I]||document.activeElement&&(e.input&&e.input.contains(document.activeElement)||e.dropList&&this.droplistElContains(document.activeElement,!0))||(e.throttledUpdateListItems&&e.throttledUpdateListItems.cancel(),this.closeList()))}))}_unregisterDropdownEvents(){this._p.sink.remove(null,".dropdown")}_registerDropdownEvents(){const e=this._p;this._unregisterDropdownEvents();const s=e.dropList;if(!s)return;let i=!1,l=null;const r=e.multi||e.searchable?e.input:e.el;e.sink.add(r,"keydown.dropdown",(t=>{if(t.currentTarget.readOnly)return;let i=!1,l=e.lastKeyAllowsNonTypeKeys;e.lastKeyAllowsNonTypeKeys=!1;let r=e.input&&e.input.value.length>0;switch(t.key){case n.VALUE_PAGE_UP:case n.VALUE_PAGE_DOWN:case n.VALUE_UP:case n.VALUE_DOWN:case n.VALUE_HOME:case n.VALUE_END:if((t.key===n.VALUE_HOME||t.key===n.VALUE_END)&&r&&!l){s._keydownFreeType(t);break}switch(e.lastKeyAllowsNonTypeKeys=!0,t.preventDefault(),t.key){case n.VALUE_PAGE_UP:s.isVisible()&&s.previousPage(t);break;case n.VALUE_PAGE_DOWN:s.isVisible()&&s.nextPage(t);break;case n.VALUE_UP:s.isVisible()?s.previous(t):this._movePrev();break;case n.VALUE_DOWN:s.isVisible()?s.next(t):this._moveNext();break;case n.VALUE_HOME:s.goToFirst(t);break;case n.VALUE_END:s.goToLast(t)}break;case n.VALUE_SPACE:l&&(e.lastKeyAllowsNonTypeKeys=!0,s.isVisible()&&s.hasFocusedItem()&&(i=!0,e.multi?s.toggleFocusedItem(t):s.triggerItemSelection(null,t),t.preventDefault()));break;case n.VALUE_ENTER:s.isVisible()&&s.hasFocusedItem()&&(i=!0,t.preventDefault(),s.triggerItemSelection(null,t));break;case n.VALUE_TAB:s.isVisible()&&s.hasFocusedItem()&&s.triggerItemSelection(null,t);break;case n.VALUE_ESCAPE:s.isVisible()&&(s.hide(t),t.preventDefault());break;default:s._keydownFreeType(t)}i||t.key!==n.VALUE_ENTER&&(t.key!==n.VALUE_SPACE||!e.lastKeyAllowsNonTypeKeys||e.multi||s.hasFocusedItem()||e.disabled)||(this.toggleList(),t.preventDefault(),t.stopPropagation())})),e.input&&e.sink.add(e.input,"input.dropdown",(()=>{e.disabled||(e.filterTerm=e.input.value.trim(),e.filteredItems=null,e.itemsChanged=!0,this._trigger("search",{value:e.input.value}),e.throttledUpdateListItems())})).add(e.input,"click.dropdown",(()=>{e.disabled||!e.multi&&e.searchable&&this.openList()})).add(e.input,"focus.dropdown",(()=>{e.disabled||(this._trigger("search:focus"),this[I]||(i=!1,this.openList(),i=!0,setTimeout((()=>{i=!1}),10)))})).add(e.input,"blur.dropdown",(()=>this._handleOnBlur())),e.sink.add(e.el,"mousedown.dropdown",(()=>{e.multi||e.searchable||i||e.disabled||this.toggleList(),i=!1})).add(e.el,"touchstart.dropdown",(s=>{if(l)return;if(l=s.changedTouches[0].identifier,this.isDisabled())return;if(t.closestUntil(s.target,`.${e.baseClassName}__item,.${e.baseClassName}__clear`,e.el))return;let i=()=>{l=null,e.sink.remove(e.el,".dropdown_touchextra")};(e.input||e.el).focus(),e.sink.add(e.el,"touchend.dropdown_touchextra",(e=>{if(!Array.prototype.find.call(s.changedTouches,(e=>e.identifier===l)))return i();e.preventDefault(),i()})).add(e.el,"touchmove.dropdown_touchextra",(e=>{e.preventDefault()})).add(e.el,"touchcancel.dropdown_touchextra",i)}))}_performSelectWithEvent(e,t){let s={value:t,item:e,cancel:!1};return this._trigger("select:before",s),!s.cancel&&!this[I]&&(this._setSelectedItems([e]),this._trigger("select",{value:t,item:e}),!0)}_performClearWithEvent(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t={cancel:!1};return this._trigger("clear:before",t),!t.cancel&&!this[I]&&(this._setSelectedItems([]),e&&this._setInputText(""),this._trigger("clear"),!0)}_movePrev(){const e=this._p;if(this.isMultiEnabled())return;let t=this.getSelectedItems(),s=e.filteredItems??e.items;if(e.currentItemsView&&e.currentItemsView.length===s.length&&(s=e.currentItemsView),s.length+(e.clearable?1:0)>1){let i=t.length>0?s.indexOf(t[0])-1:s.length-1;-1!==i||e.clearable||(i=s.length-1);let l=-1===i?null:s[i];l?this._performSelectWithEvent(l,l[e.valueProp]):this._performClearWithEvent()}}_moveNext(){const e=this._p;if(this.isMultiEnabled())return;let t=this.getSelectedItems(),s=e.filteredItems??e.items;if(e.currentItemsView&&e.currentItemsView.length===s.length&&(s=e.currentItemsView),s.length+(e.clearable?1:0)>1){let i=t.length>0?s.indexOf(t[0])+1:0;i===s.length&&(i=e.clearable?-1:0);let l=-1===i?null:s[i];l?this._performSelectWithEvent(l,l[e.valueProp]):this._performClearWithEvent()}}_updateListItems(){const e=this._p,t=e.dropList;if(!t||!e.dropListVisible)return;if(!e.filteredItems&&(e.filterTerm||e.filterOnEmptyTerm&&e.filterFn)&&this._refilterItems(),(e.itemsChanged||e.selectionChanged)&&(e.dropList._lastSerializedBox=null),e.itemsChanged){let s=e.filteredItems||e.items;(e.sortListItems||e.sortListCheckedFirst&&e.multi)&&(s=this._sortItems(s,e.sortListItems,e.sortListCheckedFirst&&e.multi,e.splitListCheckedGroups)),t.removeAllItems(),0===s.length&&e.noResultsText&&(s=[{[e.labelProp]:e.noResultsText,[e.valueProp]:f,_nointeraction:!0,_nocheck:!0}]),t.addItems(s),e.currentItemsView=s,e.itemsChanged=!1,e.selectionChanged=!0,e.resortBySelectionNeeded=!1}let s=!1;if(e.selectionChanged){if(e.multi)e.dropList.setCheckedValues(e.selectedValues);else{const t=e.dropList.itemIndexByValue(this.getValue());e.dropList.setFocusedItemAtIndex(t).setSingleSelectedItemAtIndex(t),s=e.dropList.hasFocusedItem()}e.selectionChanged=!1}this._repositionDropList(),s&&e.dropList.setFocusedItemAtIndex(e.dropList.getFocusedItemIndex())}_refilterItems(){const e=this._p,t=e.filterTerm,s=e.treatGroupSelectionAsItems;if(t||e.filterOnEmptyTerm&&e.filterFn){let i;if("function"==typeof e.filterFn&&(i=e.filterFn(e.items,t)),!Array.isArray(i))if(t){const l=new RegExp(a(t),"i"),r=e.labelProp,n=e.multiItemLabelProp;i=e.items.filter((e=>!(s||!e._group)||l.test(e[r]||e[n])))}else i=null;if(e.filteredItems=i,i&&!s){let e=-1,t=i.length;for(let s=0;s<t;s++)i[s]._group&&(-1!==e&&e===s-1&&(i.splice(e,1),s--,t--),e=s);-1!==e&&e===t-1&&i.splice(e,1)}}else e.filteredItems=null;this._trigger("itemschanged",{term:t,mutated:!1,count:this.getFilteredItemCount()}),e.itemsChanged=!0}_setSelectedItems(e){const t=this._p,s=t.valueProp;t.multi?(t.selectedItems=e.filter((e=>void 0!==e[s])),t.selectedValues=t.selectedItems.map((e=>e[s]))):(t.selectedItems=e.slice(0,1),t.selectedValues=e.slice(0,1).map((e=>e[s]))),t.selectionChanged=!0,t.resortBySelectionNeeded=!0,this._updateListItems(),this._scheduleSync("full")}_scheduleSync(e,t){const s=this._p;s.syncQueue||(s.syncQueue=[]),("full"===e||"render_items"===e&&!s.syncQueue.some((e=>"full"===e.mode)))&&(s.syncQueue.length=0),0!==s.syncQueue.length&&["full","render_items"].includes(e)||s.syncQueue.push({mode:e,data:t}),s.syncTimeout||(s.syncTimeout=setTimeout((()=>{delete s.syncTimeout;let e=s.syncQueue;delete s.syncQueue,this._performSync(e)})))}_performSync(e){const t=this._p;if(!this[I])for(let s of e)switch(s.mode){case"full":this._syncFull(!0,!0);break;case"render_base":this._syncFull(!1,!1);break;case"render_items":this._syncFull(!0,!1);break;case"render_list":this._syncFull(!1,!0);break;case"render_clear":this._syncClearButton(),this._resizeInput();break;case"singleItem":this._syncSingleItem();break;case"syncPlaceholder":this._syncPlaceholder();break;case"removeMultiItemElement":if(t.showSelection)this._syncPlaceholder();else{const e=t.valueProp,i=s.data[e];let l=t.multiItemEls.findIndex((t=>t[g][e]===i));-1!==l&&this._removeMultiItemElementByIndex(l)}break;case"addMultiItemElement":t.showSelection?this._addMultiItemElement(s.data):this._syncPlaceholder();break;case"addOrUpdateMultiItemRestElement":t.showSelection?this._addMultiItemRestElement():this._syncPlaceholder();break;case"removeMultiItemRestElement":if(t.showSelection){let e=t.multiItemEls[t.multiItemEls.length-1];e?.[g]?.[t.valueProp]===b&&this._removeMultiItemElementByIndex(t.multiItemEls.length-1)}else this._syncPlaceholder();break;case"resize_input":this._resizeInput()}}_cleanupSingleWrapper(){const e=this._p;if(e.singleWrapper){if(e.unrenderSingleItem&&e.singleWrapper.childNodes.length>0)try{e.unrenderSingleItem(e.singleWrapper[g],e.singleWrapper)}catch(e){console.error(e)}delete e.singleWrapper[g],e.singleWrapper.innerHTML=""}}_removeMultiItemElementByIndex(e){const t=this._p,i=t.multiItemEls;if(i.length>e){const l=i[e],r=l[g];let n=r?.[t.valueProp]===b?t.unrenderRestMultiItem??t.unrenderMultiItem:t.unrenderMultiItem;if(n&&l.childNodes.length>0)try{n(r,l)}catch(e){console.error(e)}s.remove(l),e===i.length-1?i.pop():i.splice(e,1)}}_renderSingleItemContent(e){const t=this._p;if(!t.renderSingleItem||!1===t.renderSingleItem(e,t.singleWrapper)){const s=t.labelProp;let i=e[t.multiItemLabelProp]||e[s];null==i&&(i=""),t.singleWrapper.appendChild(document.createTextNode(i))}}_renderMultiItemContent(e,s){const i=this._p;let l=e[i.valueProp]===b?i.renderRestMultiItem??i.renderMultiItem:i.renderMultiItem;if(!l||!1===l(e,s)){const l=i.labelProp,r=e[i.multiItemLabelProp]||e[l];s.appendChild(t.createElement("span",{textContent:r}))}}_addMultiItemElement(e){const t=this._p,i=this._renderMultiItem(e);return!!i&&(s.before(t.inputWrapper,i),t.multiItemEls.push(i),!0)}_addMultiItemRestElement(){const e=this._p;let t=e.selectedItems.slice(0),s=(e.treatGroupSelectionAsItems?t:t.filter((e=>!e._group))).length-e.maxMultiItems,i=e.multiItemsRestLabelProvider?e.multiItemsRestLabelProvider(s,t):`+ ${s}`;this._addMultiItemElement({items:t,[e.valueProp]:b,[e.labelProp]:i})}_syncClearButton(){const e=this._p,i=e.multiItemLabelProp;e.selectedItems.length>0&&e.selectedItems.some((e=>!1!==e[i]))&&e.clearable&&e.showSelection?e.clearButtonWrapper||(e.clearButtonWrapper=t.createElement(e.multi?"li":"span",{class:`${e.baseClassName}__clear`},e.clearButton=t.createElement("button")),e.multi?s.append(e.list,e.clearButtonWrapper):s.append(e.el,e.clearButtonWrapper),e.el.classList.add(`${e.baseClassName}__has_clear`),e.sink.add(e.clearButton,"click",(()=>{this.isDisabled()||this.clear()}))):e.clearButtonWrapper&&(e.sink.remove(e.clearButton,"click"),s.remove(e.clearButtonWrapper),delete e.clearButtonWrapper,delete e.clearButton,e.el.classList.remove(`${e.baseClassName}__has_clear`))}_syncPlaceholder(){const e=this._p,t=e.multiItemLabelProp;let s="";e.multi&&!e.showSelection?s="function"==typeof e.multiPlaceholderFormatter?e.multiPlaceholderFormatter(e.selectedItems):0===e.selectedItems.length?e.placeholder||"":((e,t)=>{if(0===e.length)return"";let s=e[0][t]+"";return e.length>1&&(s+=` (+${e.length-1})`),s})(e.selectedItems,e.labelProp):0!==e.selectedItems.length&&e.showSelection&&!e.selectedItems.every((e=>!1===e[t]))||(s=null==e.placeholder?"":e.placeholder+""),e.input.setAttribute("placeholder",s),e.showPlaceholderInTooltip?e.input.setAttribute("title",s):e.input.removeAttribute("title")}_syncSingleItem(){const e=this._p;e.singleWrapper&&this._cleanupSingleWrapper();const t=e.selectedItems;t.length>0&&(this._renderSingleItemContent(t[0]),e.singleWrapper[g]=t[0])}_syncFull(e,t){const i=this._p,l=i.multiItemLabelProp;if(this._renderBase(),this._syncClearButton(),this._syncPlaceholder(),(e=i.multi&&i.showSelection&&(e||i.selectedItems.filter((e=>!1!==e[l])).length!==i.multiItemEls.length))||!i.showSelection||!i.multi)for(;i.multiItemEls.length>0;)this._removeMultiItemElementByIndex(i.multiItemEls.length-1);if(i.multi){if(e){const e=i.selectedItems,t=i.treatGroupSelectionAsItems;if(i.sortSelectedItems){const t=i.labelProp,s=i.multiItemLabelProp,l=i.valueProp,r=i.stickyValues,n=i.sortItemComparator||((e,i)=>{if(null!==r){let t=r.has(e[l]),s=r.has(i[l]);if(t&&!s)return-1;if(!t&&s)return 1}const n=e[s]||e[t],o=i[s]||i[t];return n<o?-1:n>o?1:0});e.sort(n),i.selectedValues=e.map((e=>e[l]))}let s=0,l=i.maxMultiItems,r=!1;for(let i=0;i<e.length;i++)if(t||!e[i]._group){if(null!=l&&s===l){r=!0;break}this._addMultiItemElement(e[i])&&s++}r&&this._addMultiItemRestElement()}}else i.multi||this._syncSingleItem();return s.getRootNode(i.el)!==document||(s.toggleClass(i.el,`${i.baseClassName}__empty_selection`,0===i.selectedValues.length),s.toggleClass(i.el,`${i.baseClassName}__has_selection`,i.selectedValues.length>0),i.searchable||i.multi?(i.input&&(i.input.readOnly=!1),i.el.classList.add(`${i.baseClassName}__searchable`)):(i.input&&(i.input.readOnly=!0),i.el.classList.remove(`${i.baseClassName}__searchable`)),this._resizeInput(),t&&this._updateListItems()),this}_trigger(e,t){const s=this._p;void 0!==s&&(s.on&&s.on(e,...void 0===t?[]:[t]),s.mitt.emit(e,t))}_renderMultiItem(e){const s=this._p,i=s.labelProp,l=e[s.multiItemLabelProp]??e[i];if(!1===l)return null;const r=t.createElement("li",{class:`${s.baseClassName}__item`,tabindex:"0",title:l},[t.createElement("span",{class:`${s.baseClassName}__item_remove`,role:"presentation"})]);return this._renderMultiItemContent(e,r),r[g]=e,r}_removeMultiItemFromEvent(e,s){const i=this._p;let l;if(/key/.test(s.type)){const r=s;r.key===n.VALUE_DELETE?l=t.next(e,`.${i.baseClassName}__item,.${i.baseClassName}__search_wrapper`):r.key===n.VALUE_BACK_SPACE&&(l=t.prev(e,`.${i.baseClassName}__item,.${i.baseClassName}__search_wrapper`))}else/click|mouse|touch/.test(s.type)&&(l=t.next(e,`.${i.baseClassName}__item,.${i.baseClassName}__search_wrapper`));const r=e[g],o=r[i.valueProp];if(void 0!==r)if(o===b){let e=(i.treatGroupSelectionAsItems?i.selectedItems:i.selectedItems.filter((e=>!e._group))).slice(i.maxMultiItems),t=[];for(let s of e){let e={value:o,item:s,cancel:!1};this._trigger("removesel:before",e),e.cancel||t.push(s)}if(t.length>0){this._removeMultiItemElementByIndex(i.multiItemEls.length-1);for(let e of t){let t=i.selectedItems.indexOf(e);-1===t&&(t=i.selectedValues.indexOf(o[i.valueProp])),-1!==t&&(i.selectedItems.splice(t,1),i.selectedValues.splice(t,1),i.selectionChanged=!0,i.resortBySelectionNeeded=!0)}}e.length>t.length&&this._addMultiItemRestElement(),t.length>0&&this._scheduleSync("render_list")}else{let e={value:o,item:r,cancel:!1};if(this._trigger("removesel:before",e),e.cancel)return this;this._removeMultiItem(r),this._trigger("removesel",{value:o,item:r})}return l||(l=i.el.querySelector(`.${i.baseClassName}__item, .${i.baseClassName}__search_field`)),y(l,`${i.baseClassName}__search_wrapper`)&&(l=l.querySelector("input")),l&&l.focus(),this}_removeMultiItem(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const s=this._p,i=s.valueProp,l=s.labelProp,r=e[i];let n=s.selectedItems.indexOf(e);-1===n&&(n=s.selectedValues.indexOf(r)),-1!==n&&(s.selectedItems.splice(n,1),s.selectedValues.splice(n,1),s.selectionChanged=!0,s.resortBySelectionNeeded=!0),n=s.multiItemEls.findIndex((t=>t[g]===e)),-1===n&&(n=s.multiItemEls.findIndex((e=>e[g][i]===r))),-1!==n&&this._removeMultiItemElementByIndex(n),t&&(this._setInputText(e[s.multiItemLabelProp]||e[l]),s.input.focus(),s.input.selectionStart=s.input.selectionEnd=s.input.value.length),this._scheduleSync("render_list")}_setInputText(e){const t=this._p;t.input.value=null==e?"":String(e),t.filterTerm="",t.filteredItems=null,t.itemsChanged=!0}_resizeInput(){const e=this._p,t=e.el;if(!t.parentNode||!document.body.contains(t))return this;const l=e.input,r=e.inputBackBuffer;let n=l.value||l.placeholder;s.toggleClass(t,`${e.baseClassName}__has_input`,!!n),s.toggleClass(t,`${e.baseClassName}__empty_input`,!n);let o=!1;if(e.multi&&0===e.multiItemEls.length&&e.showSelection){l.style.width="";let s=0,r=0,n=getComputedStyle(e.list||t,"::before");n.content&&"none"!==n.content&&"absolute"!==n.position&&"none"!==n.float&&(s=i.getPseudoElementWidth(e.list||t,"::before",!0,!0,!0));let a=getComputedStyle(e.list||t,"::after");a.content&&"none"!==a.content&&"absolute"!==a.position&&"none"!==a.float&&(r=i.getPseudoElementWidth(e.list||t,"::after",!0,!0,!0));let u=i.getElementWidth(e.list||t);u-=s+r,l.style.width=`${u}px`,o=!0}else{i.setCssProps(r,i.getCssProps(l,C)),r.textContent=n,t.appendChild(r);const a=getComputedStyle(l),u=(parseFloat(a.paddingLeft)||0)+(parseFloat(a.paddingRight)||0),c=.75*(parseFloat(a["font-size"])||0)+u,d=i.getElementWidth(r,!0,!0),m=i.getElementWidth(l,!0,!0);let h=Math.max(d,c);if(h!==m){i.setElementWidth(l,h,!0,!0);let t=(parseFloat(a.borderLeftWidth)||0)+(parseFloat(a.borderRightWidth)||0),s=l.scrollWidth+t;if(s>h){let e=s-h;l.style.width=`${parseFloat(l.style.width)+e}px`,h+=e}if(e.singleWrapper&&(e.singleWrapper.style.width="",n)){let s=h-u-t;i.getElementWidth(e.singleWrapper,!1,!1)<s&&i.setElementWidth(e.singleWrapper,s,!1,!1)}o=!0}s.remove(r)}return o&&this._trigger("input:resize"),this}_repositionDropList(){const e=this._p,t=e.el;if(!e.dropList||!e.dropListVisible||!e.dropList.isVisible())return this;const s=t.getBoundingClientRect(),i=s.left+","+s.top+","+s.right+","+s.bottom;return e.dropList._lastSerializedBox!==i&&(e.dropList.relayout(this._getDropListPositionOptions()),e.dropList._lastSerializedBox=i),this}_handleInputKeydown(e){const t=this._p,s=e.target;if(e.key===n.VALUE_BACK_SPACE&&e.ctrlKey&&0===s.value.length)this.clear(),e.preventDefault();else if(e.key===n.VALUE_BACK_SPACE&&0===s.value.length){const s=t.multiItemEls[t.multiItemEls.length-1];if(!s||void 0===s[g].value)return;const i=s[g],l=i[t.valueProp];let r={value:l,item:i,cancel:!1};if(this._trigger("removesel:before",r),r.cancel)return;this._removeMultiItem(i,!0),this._trigger("removesel",{value:l,item:i}),e.preventDefault()}}_handleMultiKeydown(e){const s=this._p;if(s.disabled)return;const i="rtl"===getComputedStyle(s.el).direction;let l;if(e.key===(i?n.VALUE_LEFT:n.VALUE_RIGHT))l=t.next(e.target,`.${s.baseClassName}__item,.${s.baseClassName}__search_wrapper`),y(l,`${s.baseClassName}__search_wrapper`)&&(l=l.querySelector("input")),l&&l.focus(),e.preventDefault();else if(e.key===(i?n.VALUE_RIGHT:n.VALUE_LEFT))l=t.prev(e.target,`.${s.baseClassName}__item,.${s.baseClassName}__search_wrapper`),y(l,`${s.baseClassName}__search_wrapper`)&&(l=l.querySelector("input")),l&&l.focus(),e.preventDefault();else if(e.key===n.VALUE_BACK_SPACE&&e.ctrlKey){const i=[];let l=e.target;for(;l;)i.push(l),l=t.prev(l,`.${s.baseClassName}__item`);for(;i.length;)this._removeMultiItemFromEvent(i.shift(),e);e.preventDefault()}else e.key!==n.VALUE_DELETE&&e.key!==n.VALUE_BACK_SPACE||(this._removeMultiItemFromEvent(t.closestUntil(e.target,`.${s.baseClassName}__item`,s.el),e),e.preventDefault())}_getDropListPositionOptions(){return{target:this._p.el,offset:{x:0,y:0},anchor:{x:"start",y:"bottom"},position:{x:"start",y:"top"},updateWidth:!0}}_startTrackingPresence(){const e=this._p;this._stopTrackingPresence(),e.presenceInt=setInterval((function(){s.getRootNode(e.el)!==document&&this.hide()}),200)}_stopTrackingPresence(){const e=this._p;e.presenceInt&&(clearInterval(e.presenceInt),e.presenceInt=null)}_sortItems(e,t,s,i){const l=this._p;if(!t&&!s)return e;const r=l.labelProp,n=l.multiItemLabelProp,o=l.valueProp,a=l.stickyValues,u=l.sortItemComparator||((e,t)=>{if(null!==a){let s=a.has(e[o]),i=a.has(t[o]);if(s&&!i)return-1;if(!s&&i)return 1}const s=e[r]||e[n],i=t[r]||t[n];return s<i?-1:s>i?1:0});let c=[],d=null,m=[c];const h=new Set(l.selectedValues);let p,_,g;for(_=0,g=e.length;_<g;_++)p=e[_],p._group&&c.length&&(c=[],m.push(c)),c.push(p);c.length||(m.length=0),a&&e.length>0&&!e[0]._group&&(d=m[0].filter((e=>a.has(e[o]))),d.length>0?(m[0]=m[0].filter((e=>!a.has(e[o]))),0===m[0].length&&m.shift()):d=null),t&&m.sort(((e,t)=>{if(e=e[0],t=t[0],null!==a){let s=a.has(e[o]),i=a.has(t[o]);if(s&&!i)return-1;if(!s&&i)return 1}return!e._group&&t._group?-1:e._group&&!t._group?1:u(e,t)})),d&&m.unshift(d);const I=[],f=[];for(let e=0,i=m.length;e<i;e++)c=m[e],c.sort(((e,i)=>{if(e._group&&!i._group)return-1;if(!e._group&&i._group)return 1;if(s){const t=h.has(e[o]),s=h.has(i[o]);if(t&&!s)return-1;if(!t&&s)return 1}return t?u(e,i):0})),f.push(c);if(s&&i){let e;for(let t=0,s=m.length;t<s;t++)if(c=m[t],c!==d){e=null;for(let t=0,s=c.length;t<s;t++)if(p=c[t],!p._group){if(!h.has(p[l.valueProp]))break;e||(e=[],c[0]._group&&e.push(c[0])),e.push(p),c.splice(t--,1),s--}if(e&&(I.push(e),0===c.length||1===c.length&&c[0]._group)){m.splice(t--,1),s--;let e=f.indexOf(c);-1!==e&&f.splice(e,1)}}else{I.push(d);let e=f.indexOf(d);-1!==e&&f.splice(e,1)}}const b=[];b.length=e.length;let v=0;m=I.length?I.concat(f):f;for(let e=0,t=m.length;e<t;e++)for(c=m[e],_=0,g=c.length;_<g;_++)b[v++]=c[_];return b}}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@danielgindi/dom-utils/lib/Dom"),require("@danielgindi/dom-utils/lib/DomCompat"),require("@danielgindi/dom-utils/lib/Css"),require("@danielgindi/dom-utils/lib/DomEventsSink"),require("@danielgindi/virtual-list-helper"),require("keycode-js"),require("mitt")):"function"==typeof define&&define.amd?define(["exports","@danielgindi/dom-utils/lib/Dom","@danielgindi/dom-utils/lib/DomCompat","@danielgindi/dom-utils/lib/Css","@danielgindi/dom-utils/lib/DomEventsSink","@danielgindi/virtual-list-helper","keycode-js","mitt"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).SelectBox={},e.domUtilsDom,e.domUtilsDomCompat,e.domUtilsCss,e.domUtilsDomEventsSink,e.VirtualListHelper,e.keyCode,e.mitt);
|
package/package.json
CHANGED
package/vue/DropList.vue
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
|
|
2
|
+
<span v-show="false" />
|
|
3
3
|
</template>
|
|
4
4
|
|
|
5
5
|
<script>
|
|
@@ -108,6 +108,10 @@ export default {
|
|
|
108
108
|
positionOptions: {
|
|
109
109
|
type: Object,
|
|
110
110
|
},
|
|
111
|
+
autoRelayoutOnItemsChange: {
|
|
112
|
+
type: Boolean,
|
|
113
|
+
default: true,
|
|
114
|
+
},
|
|
111
115
|
},
|
|
112
116
|
|
|
113
117
|
emits: [
|
|
@@ -216,9 +220,10 @@ export default {
|
|
|
216
220
|
watch: {
|
|
217
221
|
items(value) {
|
|
218
222
|
if (this.nonReactive.instance) {
|
|
219
|
-
this.nonReactive.instance
|
|
220
|
-
|
|
221
|
-
)
|
|
223
|
+
const instance = this.nonReactive.instance;
|
|
224
|
+
instance.setItems(Array.isArray(value) ? value : []);
|
|
225
|
+
if (this.autoRelayoutOnItemsChange && instance.isVisible())
|
|
226
|
+
instance.relayout(this.positionOptions);
|
|
222
227
|
}
|
|
223
228
|
},
|
|
224
229
|
|