@danielgindi/selectbox 2.0.0 → 2.0.1

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 CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @danielgindi/selectbox 2.0.0
2
+ * @danielgindi/selectbox 2.0.1
3
3
  * git://github.com/danielgindi/selectbox.git
4
4
  */
5
5
  'use strict';
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @danielgindi/selectbox 2.0.0
2
+ * @danielgindi/selectbox 2.0.1
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=(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 d=t-(u-o);return l=this,r=arguments,d<=0||d>t?(i&&(clearTimeout(i),i=null),o=u,n=e.apply(l,r),i||(l=r=null)):i||!1===s.trailing||(i=setTimeout(a,d)),n};return u.cancel=()=>{clearTimeout(i),o=0,i=l=r=null},u.isScheduled=()=>!!i,u},u=Symbol("item"),d=Symbol("destroyed"),c=Symbol("ghost"),h=Symbol("no_results_items"),m=Object.prototype.hasOwnProperty;let p={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,searchable:!1,noResultsText:"No matching results",filterThrottleWindow:300,filterOnEmptyTerm:!1,filterGroups:!1,filterEmptyGroups:!1};class _{constructor(t){const r={...p};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,renderNoResultsItem:r.renderNoResultsItem,unrenderNoResultsItem:r.unrenderNoResultsItem,on:r.on||null,positionOptionsProvider:r.positionOptionsProvider??null,searchable:r.searchable,silenceEvents:!0,mitt:n(),filterThrottleWindow:r.filterThrottleWindow,filterOnEmptyTerm:r.filterOnEmptyTerm,filterGroups:r.filterGroups,filterEmptyGroups:r.filterEmptyGroups,filterFn:r.filterFn,filteredItems:null,filterTerm:"",needsRefilter:!1,throttledRefilterItems:null,focusItemIndex:-1,focusItemEl:null,sink:new i};let a=[o.baseClassName+"_wrapper"];o.additionalClasses&&(a=a.concat((o.additionalClasses+"").split(" ").filter((e=>e))));const d={top:"-9999px"};let m=r.el;m instanceof Element?(o.elOriginalDisplay=m.style.display||"",m.classList.add(...a),s.setCssProps(m,d),o.ownsEl=!1):m=e.createElement("div",{class:a.join(" "),css:d});let _=e.createElement("ul");_.role="menu",r.searchable&&(o.headerEl=e.createElement("div",{class:o.baseClassName+"_header"}),o.searchInput=e.createElement("input",{type:"search",role:"searchbox",tabindex:"0",autocorrect:"off",autocomplete:"off",autocapitalize:"off",spellcheck:"false","aria-autocomplete":"list"}),o.headerEl.appendChild(o.searchInput),m.appendChild(o.headerEl)),m.appendChild(_),o.el=m,o.menuEl=_,o.items=[],o.groupCount=0,o.mouseHandled=!1,o.virtualListHelper=new l({list:o.menuEl,virtual:!0,buffer:5,estimatedItemHeight:r.estimatedItemHeight||20,itemElementCreatorFn:()=>e.createElement("li",{role:"menuitem",tabIndex:o.capturesFocus?-1:null}),onItemRender:(e,t)=>{let s;if(t===c)s={label:o.lastMeasureLongestLabelText,value:"Measure",[u]:{[o.labelProp]:o.lastMeasureLongestLabelText,[o.valueProp]:"Measure"}},e.setAttribute("aria-hidden","true");else{const e=o.filteredItems??o.items;s=0===e.length&&o.noResultsText?{value:h,label:o.noResultsText,_nointeraction:!0,_nocheck:!0,[u]:h}:e[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[u]=s}}),this._setupUnrenderFunction(),o.capturesFocus&&(m.tabIndex=0),this.setFilterThrottleWindow(r.filterThrottleWindow),this.setNoResultsText(r.noResultsText),this._hookMouseEvents(),this._hookTouchEvents(),this._hookFocusEvents(),this._hookKeyEvents(),this._hookSearchEvents(),this.silenceEvents=!1}destroy(){if(this[d])return;this[d]=!0;const e=this._p;if(clearTimeout(e.blurTimer),clearTimeout(e.filterTimer),e.sink.remove(),e.virtualListHelper.destroy(),e.el?.parentNode&&t.remove(e.el),e.currentSubDropList&&(e.currentSubDropList?.droplist?.destroy(),e.currentSubDropList=null),e.throttledRefilterItems&&e.throttledRefilterItems.cancel(),!e.ownsEl){for(let t of Array.from(e.el.classList))t.startsWith(e.baseClassName)&&e.el.classList.remove(t);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),delete e.lastPositionOptions,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){return this._p.unrenderItem=e,this._setupUnrenderFunction(),this}setRenderNoResultsItem(e,t){const s=this._p;return s.renderNoResultsItem=e,s.unrenderNoResultsItem=t,this._setupUnrenderFunction(),this}_setupUnrenderFunction(){const e=this._p;if("function"==typeof e.unrenderItem||"function"==typeof e.unrenderNoResultsItem){const t=e.unrenderItem,s=e.unrenderNoResultsItem;e.virtualListHelper.setOnItemUnrender((i=>{const l=i[u];if(l===h)try{s(l,i)}catch(e){console.error(e)}else try{t(l[u],i)}catch(e){console.error(e)}delete i[u],e.focusItemEl===i&&(e.focusItemEl=null)}))}else e.virtualListHelper.setOnItemUnrender((t=>{delete t[u],e.focusItemEl===t&&(e.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+"_wrapper"];"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.filteredItems??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 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[u]??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[u])._nointeraction&&(i.multi||this._setSingleSelectedItemEl(i.focusItemEl),this._trigger("select",{value:t?t.value:void 0,item:t[u]??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,a=e.length;o<a;o++){let a=e[o],d={[u]:a,label:a[i],value:a[l],_nocheck:!!a._nocheck,_nointeraction:!!a._nointeraction,_subitems:a._subitems};r&&(d._checked=!!a._checked),a._group&&(d._group=!0,s.groupCount++),a._child&&(d._child=!0),-1!==t?n.splice(t,0,d):n.push(d),-1!==t&&t++}if(s.filteredItems)s.needsRefilter=!0;else{let i=s.hasNoResultsItem;s.hasNoResultsItem=0===s.items.length&&!!s.noResultsText,s.hasNoResultsItem?s.virtualListHelper.setCount(1).render():(i&&s.virtualListHelper.removeItemsAt(1,0),s.virtualListHelper.addItemsAt(e.length,-1===t?t:t-e.length).render())}return this}setItems(e){const t=this._p;return t.items.length=0,t.filteredItems=null,t.groupCount=0,t.hasNoResultsItem=!!t.noResultsText,t.virtualListHelper.setCount(t.hasNoResultsItem?1: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);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);let r=i;return s.filteredItems&&(r=s.filteredItems.indexOf(l),-1!==r&&s.filteredItems.splice(r,1)),-1!==r&&s.virtualListHelper.isItemRendered(r)&&s.virtualListHelper.refreshItemAt(r).render(),this}removeItem(e,t){const s=this._p;let i=this.itemIndexByValueOrLabel(e,t);if(-1===i)return this;let l=s.items.splice(i,1);l[0]._group&&s.groupCount--;let r=i;return s.filteredItems&&(r=s.filteredItems.indexOf(l[0]),-1!==r&&s.filteredItems.splice(r,1)),-1!==r&&(s.hasNoResultsItem=0===(s.filteredItems??s.items).length&&!!s.noResultsText,s.hasNoResultsItem?s.virtualListHelper.setCount(1).render():s.virtualListHelper.removeItemsAt(r,1).render()),this}removeAllItems(){const e=this._p;return e.items.length=0,e.filteredItems=null,e.groupCount=0,e.hasNoResultsItem=!!e.noResultsText,e.virtualListHelper.setCount(e.hasNoResultsItem?1: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.items;for(let s=0,i=t.length;s<i;s++)if(t[s].value===e)return s;return-1}filteredItemIndexByValue(e){const t=this._p,s=t.filteredItems??t.items;for(let t=0,i=s.length;t<i;t++)if(s[t].value===e)return t;return-1}itemIndexByValueOrLabel(e,t){const s=this._p.items;for(let i=0,l=s.length;i<l;i++){let l=s[i];if(l.value===e||l.label===t)return i}return-1}filteredItemIndexByValueOrLabel(e,t){const s=this._p,i=s.filteredItems??s.items;for(let s=0,l=i.length;s<l;s++){let l=i[s];if(l.value===e||l.label===t)return s}return-1}itemIndexByItem(e){const t=this._p.items;for(let s=0,i=t.length;s<i;s++)if(t[s][u]===e)return s;return-1}filteredItemIndexByItem(e){const t=this._p,s=t.filteredItems??t.items;for(let t=0,i=s.length;t<i;t++)if(s[t][u]===e)return t;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]}filteredItemAtIndex(e){const t=this._p,s=t.filteredItems??t.items;return s[e]?.[u]}setPositionOptionsProvider(e){const t=this._p;return t.positionOptionsProvider===e||(t.positionOptionsProvider=e??null,this.relayout()),this}getPositionOptionsProvider(){return this._p.positionOptionsProvider}setSearchTerm(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const s=this._p;return s.searchInput&&(s.searchInput.value=e),t&&(s.filterTerm=e.trim(),s.filteredItems=null,this._trigger("search",{value:e}),s.throttledRefilterItems()),this}isFilterPending(){const e=this._p;return!!(e.throttledRefilterItems.isScheduled()||!e.filteredItems&&(e.filterTerm||e.filterOnEmptyTerm&&e.filterFn))}_refilterItems(){const e=this._p,t=e.filterTerm,s=e.filterGroups,i=e.filterEmptyGroups;if(t||e.filterOnEmptyTerm&&e.filterFn){let l;if("function"==typeof e.filterFn&&(l=e.filterFn(e.items,t)),!Array.isArray(l))if(t){const i=new RegExp(o(t),"i"),r=e.labelProp;l=e.items.filter((e=>!(s||!e._group)||i.test(e[r])))}else l=null;if(e.filteredItems=l,l&&i){let e=-1,t=l.length;for(let s=0;s<t;s++)l[s]._group&&(-1!==e&&e===s-1&&(l.splice(e,1),s--,t--),e=s);-1!==e&&e===t-1&&l.splice(e,1)}}else e.filteredItems=null;this.needsRefilter=!1;const l=e.filteredItems??e.items;e.hasNoResultsItem=0===l.length&&!!e.noResultsText,e.virtualListHelper.setCount(l.length+(e.hasNoResultsItem?1:0)).render(),this._trigger("itemschanged",{term:t,mutated:!1,count:this.getFilteredItemCount()}),this.relayout()}invokeRefilter(){const e=this._p;return e.filterTerm||e.filterOnEmptyTerm||e.filteredItems?(e.filteredItems=null,e.throttledRefilterItems(),this):this}getFilteredItemCount(){const e=this._p;return e.needsRefilter&&this._refilterItems(),e.filteredItems?e.filteredItems.length:e.items?e.items.length:0}setNoResultsText(e){return this._p.noResultsText=e,this}getNoResultsText(){return this._p.noResultsText}setFilterThrottleWindow(e){const t=this._p;t.filterThrottleWindow=e;let s=!!t.throttledRefilterItems&&t.throttledRefilterItems.isScheduled();return t.throttledRefilterItems&&t.throttledRefilterItems.cancel(),t.throttledRefilterItems=a((()=>this._refilterItems()),t.filterThrottleWindow,!0),s&&t.throttledRefilterItems(),this}getFilterThrottleWindow(){return this._p.filterThrottleWindow}setFilterOnEmptyTerm(e){const t=this._p;return t.filterOnEmptyTerm===e||(t.filterOnEmptyTerm=e,t.throttledRefilterItems()),this}getFilterOnEmptyTerm(){return this._p.filterOnEmptyTerm}setFilterGroups(e){const t=this._p;return t.filterGroups===e||(t.filterGroups=e,t.throttledRefilterItems()),this}getFilterGroups(){return this._p.filterGroups}setFilterEmptyGroups(e){const t=this._p;return t.filterEmptyGroups===e||(t.filterEmptyGroups=e,t.throttledRefilterItems()),this}getFilterEmptyGroups(){return this._p.filterEmptyGroups}setFilterFn(e){const t=this._p;return t.filterFn===e||(t.filterFn=e,t.throttledRefilterItems()),this}getFilterFn(){return this._p.filterFn}relayout(e){const i=this._p,l=i.el,r=i.menuEl;if(!this.isVisible())return this;let n=window;e||(e=i.positionOptionsProvider?.()??i.lastPositionOptions),e||(e={targetOffset:{left:window.innerWidth/2,top:window.innerHeight/2},targetWidth:0,targetHeight:0,position:{x:"center",y:"center"},anchor:{x:"center",y:"center"},targetRtl:"rtl"===getComputedStyle(document.body).direction});let o={},a=e.targetOffset||s.getElementOffset(e.target);o.left=a.left,o.top=a.top,o.height=null==e.targetHeight?s.getElementHeight(e.target,!0,!0):e.targetHeight,o.width=null==e.targetWidth?s.getElementWidth(e.target,!0,!0):e.targetWidth,o.bottom=o.top+o.height;let u={};u.top=n.pageYOffset,u.left=n.pageXOffset,u.width=n.innerWidth,u.height=n.innerHeight,u.bottom=u.top+u.height,u.right=u.left+u.width;let d=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,h=o.top-u.top,m=u.bottom-o.bottom;const p=getComputedStyle(l);let _="border-box"===p.boxSizing,g=(parseFloat(p.paddingTop)||0)+(parseFloat(p.paddingBottom)||0),f=(parseFloat(p.borderTopWidth)||0)+(parseFloat(p.borderBottomWidth)||0),I=0;i.headerEl&&(I=s.getElementHeight(i.headerEl,!0,!0)),i.virtualListHelper.isVirtual()?c=i.virtualListHelper.estimateFullHeight()+g+f+I:(l.style.height="",r.style.height="",l.style.top="-9999px",c=Math.max(s.getElementHeight(i.el),r.scrollHeight),c+=g+f);let b=parseFloat(p.maxHeight);isNaN(b)||(_||(b+=g+f),c=Math.min(c,b));let v=h>=c,y=m>=c,E=i.currentDirection||d;"above"===E&&!v&&y?E="below":"below"===E&&!y&&v?E="above":v&&y?E!==d&&("above"===d&&h>=m||"below"===d&&m>=h)&&(E=d):v||y||(h>m?E="above":m>h&&(E="below")),i.currentDirection=E;let C={width:s.getElementWidth(l,!0,!0),height:Math.min(c,Math.max(h,m,0))},L=void 0!==e.targetRtl?e.targetRtl:null!=e.target&&"rtl"===getComputedStyle(e.target).direction,S="rtl"===getComputedStyle(document.documentElement).direction,k=s.anchoredPosition(e.target,e.anchor?e.anchor.x:"start",e.anchor?e.anchor.y:"bottom",o,L),x=s.anchoredPosition(l,e.position?e.position.x:"start",e.position?e.position.y:"top",C,L),w="top"===x.ySpec&&"above"===E||"bottom"===x.ySpec&&"below"===E||"bottom"!==x.ySpec&&"top"!==x.ySpec&&"above"===E,T=void 0!==n.pageXOffset?n.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft;T=Math.abs(T),S&&(T=document.documentElement.scrollWidth-T-document.documentElement.clientWidth);let N=T,P=document.documentElement.clientWidth+T-C.width,F={position:"absolute",left:o.left,top:o.top+(w?k.bottom-x.bottom:k.top-x.top)};if(S&&(F.left-=document.documentElement.clientWidth-document.documentElement.scrollWidth),F.left+=k.left-x.left,e.offset&&(e.offset.y&&(w?F.top-=e.offset.y:F.top+=e.offset.y),e.offset.x)){let t="rtl"===p.direction;F.left+=t?-e.offset.x:e.offset.x}if(i.autoFlipDirection&&("right"===x.xSpec&&F.left<N&&(Math.max(F.left,N)+C.width-o.left)/o.width>.5||"left"===x.xSpec&&F.left>P&&(Math.min(F.left,P)-o.left)/o.width<.5)&&(F.left-=k.left-x.left,F.left+=k.right-x.right),i.constrainToWindow)for(let e of S?["min","max"]:["max","min"])"min"===e&&F.left<N?F.left=N:"max"===e&&F.left>P&&(F.left=P);if(F.left+="px",F.top+="px",s.setCssProps(l,F),s.setElementHeight(l,C.height,!0,!0),r!==l){let e=C.height-I-f-g;s.setElementHeight(r,e,!0,!0)}return 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"===E),t.toggleClass(e.target,`has_${i.baseClassName}_above`,"above"===E),t.toggleClass(l,`${i.baseClassName}__is_below`,"below"===E),t.toggleClass(l,`${i.baseClassName}__is_above`,"above"===E)),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[u];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[u]))}return s}show(e){const t=this._p;t.hiding=!1,this.isVisible()||this._trigger("show:before"),t.mouseHandled=!1,setTimeout((()=>{this[d]||t.onDocumentMouseDown||t.sink.add(document,"mousedown",t.onDocumentMouseDown=e=>{t.el.contains(e.target)||this._delayBlurItemOnBlur()})})),t.needsRefilter&&this._refilterItems();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"),t.lastPositionOptions=null,void 0===e?e=t.positionOptionsProvider?.()??t.lastPositionOptions:t.lastPositionOptions=e,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,this.isFilterPending()&&(e.throttledRefilterItems.cancel(),e.needsRefilter=!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[d]||this._p&&i.parentNode&&e.hiding&&(t.remove(i),i.classList.remove(`${e.baseClassName}__is-hiding`),e.visible=!1,this._trigger("hide:after"))})):(i.parentNode&&t.remove(i),i.classList.remove(`${e.baseClassName}__is-hiding`))),e.visible=!1,this.blurFocusedItem(),this._trigger("hide"),this[d])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;if(t.filteredItems){const s=t.items[e];e=t.items.indexOf(s)}t.focusItemIndex=e;const s=t.filteredItems??t.items;let i=null;e>-1&&(i=s[e]),i&&i._nointeraction&&(i=null),e>-1&&this._scrollItemIndexIntoView(e);let l=i?t.virtualListHelper.getItemElementAt(e):null;if(t.focusItemEl!==l&&(t.focusItemEl&&(t.focusItemEl.classList.remove(`${t.baseClassName}__item_focus`),t.focusItemEl=null),l)){l.classList.add(`${t.baseClassName}__item_focus`),t.focusItemEl=l;const e=l[u];this._trigger("itemfocus",{value:e.value,item:e[u]??e,event:null,el:l}),this._showSublist(e,l)}return this}_showSublist(e,t){if(!e._subitems?.length)return;const s=this._p,i=new _({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,positionOptionsProvider:()=>s.currentSubDropList.showOptions});let l=e=>{this[d]||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(),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[d]&&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()))}}setFocusedItem(e){const t=this._p;let s=e._nointeraction?-1:this._getItemIndex(e);const i=t.items;return s>-1&&i[s]._nointeraction&&(s=-1),this.setFocusedItemAtIndex(s)}setFocusedItemByValue(e){return this.setFocusedItemAtIndex(this.itemIndexByValue(e))}setSingleSelectedItemAtIndex(e){const t=this._p;let s=null;if(e>-1&&!t.items[e]._nointeraction){if(t.filteredItems){const s=t.items[e];e=t.filteredItems.indexOf(s)}e>-1&&(s=t.virtualListHelper.getItemElementAt(e))}return this._setSingleSelectedItemEl(s),this}setSingleSelectedItem(e){const t=this._p;let s=e._nointeraction?-1:this._getItemIndex(e);const i=t.items;return s>-1&&i[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,t=e.filteredItems??e.items;return 0===e.focusItemIndex&&e.focusItemIndex<t.length}isLastItem(){const e=this._p,t=e.filteredItems??e.items;return e.focusItemIndex>-1&&e.focusItemIndex===t.length-1}scrollItemIndexIntoView(e){const t=this._p;if(this._hasScroll()){if(t.filteredItems){const s=t.items[e];e=t.items.indexOf(s)}-1!==e&&this._scrollItemIndexIntoView(e)}return this}_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()}}}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.filteredItems??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[d])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=>{if(t.target===this.el&&e.searchable&&e.searchInput.focus(),t.relatedTarget&&this.elContains(t.relatedTarget,!0)&&this.elContains(t.target,!0))return;let s=e.focusItemEl||e.el.firstChild;this._focus(t,s,null,!1)}),!0).add(e.el,"blur",(e=>{e.relatedTarget&&this.elContains(e.relatedTarget,!0)&&this.elContains(e.target,!0)||setTimeout((()=>{this[d]||document.activeElement&&this.elContains(document.activeElement,!0)||(this._delayBlurItemOnBlur(),this._trigger("blur",e))}))}),!0)}_hookKeyEvents(){const e=this._p;e.sink.add(e.el,"keydown",(e=>this._keydown(e)))}_hookSearchEvents(){const e=this._p;e.searchInput&&e.sink.add(e.searchInput,"input",(()=>{e.filterTerm=e.searchInput.value.trim(),e.filteredItems=null,this._trigger("search",{value:e.searchInput.value}),e.throttledRefilterItems()}))}_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.filteredItems??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;t.searchable||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;const u=t.filteredItems??t.items;for(let e=0,t=u.length;e<t&&(-1!==n&&e<a||(i=u[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,t=u.length;e<t&&(-1!==n&&e<a||(i=u[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:u[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&&t?.[u]?.[u]===h&&(s=void 0),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.filteredItems??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[d])return;const e=this._p;e.autoItemBlur&&(clearTimeout(e.blurTimer),e.blurTimer=setTimeout((()=>{this[d]||this.blurFocusedItem()}),e.autoItemBlurDelay))}_move(e,t){const i=this._p;let l,r,n=!1;const o=i.filteredItems??i.items;if("first"===e)r=0,n=!1;else if("last"===e)r=o.length-1,n=!0;else if("prev"===e){if(!this.hasFocusedItem())return this._move("last",t);r=i.focusItemIndex-1,-1===r&&(r=o.length-1),n=!0}else if("next"===e){if(!this.hasFocusedItem())return this._move("first",t);r=i.focusItemIndex+1,r===o.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>=o.length&&(r=o.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 a=o.length;if(r>=a)return;let u=o[r],d=r;for(;u&&u._nointeraction&&(n?(r--,-1===r&&(r=a)):(r++,r===a&&(r=0)),u=o[r],r!==d););l=i.virtualListHelper.getItemElementAt(r),this._focus(t,l||null,r,!1),this.isVisible()||this.triggerItemSelection(u,t)}_hasScroll(){const e=this._p.menuEl;return e.clientHeight<e.scrollHeight}_updateGroupStateForItem(e){const s=this._p;if(!s.multi)return this;if(e._group){let i=0;if(s.autoCheckGroupChildren){let l=s.filteredItems??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[u]??n,checked:n._checked,isGroup:n._group,isCheckingGroup:!0})}}this._trigger("groupcheck",{value:e.value,item:e[u]??e,affectedItems:i})}else if(s.groupCount>0&&s.autoCheckGroupChildren){let t=s.filteredItems??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.filteredItems??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 d=o&&!a;if(!!r._checked!==d){r._checked=d;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[u]??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.filteredItems??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,l=t[u];if(l===h)return!(!i.renderNoResultsItem||!1===i.renderNoResultsItem(t,s))||void s.appendChild(e.createElement("div",{class:"droplist-no-results-content",textContent:i.noResultsText}));i.renderItem&&!1!==i.renderItem(l||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&&l||(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 g=Symbol("item"),f=Symbol("destroyed"),I=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"],E={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=_,exports.SelectBox=class{constructor(s){const l={...E};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,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,on:l.on||null,silenceEvents:!0,mitt:n(),isLoadingMode:!!l.isLoadingMode,items:[],itemsChanged:!0,sink:new i,resizeObserver:null,selectedItems:[],selectedValues:[],selectionChanged:!0,resortBySelectionNeeded:!1,filterThrottleWindow:l.filterThrottleWindow,filterOnEmptyTerm:l.filterOnEmptyTerm,filterFn:null,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[f])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 l.filterFn&&this.setFilterFn(l.filterFn),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[f])return;this[f]=!0;const e=this._p;if(e.syncTimeout&&(clearTimeout(e.syncTimeout),delete e.syncTimeout),this._stopTrackingPresence(),e.sink.remove(),e.dropList&&e.dropList.destroy(),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.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.dropList?e.dropList.getFilteredItemCount():e.items?e.items.length:0}isFilterPending(){const e=this._p;return!0===e.dropList?.isFilterPending()}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.dropList?.setSearchTerm(s.filterTerm,t)),this):this}getSearchTerm(){const e=this._p;return e.input?e.input.value:""}invokeRefilter(){const e=this._p;return e.dropList?.invokeRefilter(),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.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.dropList?.setFilterGroups(e),t.dropList?.setFilterEmptyGroups(!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.dropList?.setNoResultsText(e),this}getNoResultsText(){return this._p.noResultsText}setFilterThrottleWindow(e){const t=this._p;return t.filterThrottleWindow=e,t.dropList?.setFilterThrottleWindow(e),this}getFilterThrottleWindow(){return this._p.filterThrottleWindow}setFilterOnEmptyTerm(e){const t=this._p;return t.filterOnEmptyTerm===e||t.dropList?.setFilterOnEmptyTerm(e),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||(e||(e=(e,s)=>{const i=new RegExp(o(s),"i"),l=t.labelProp,r=t.multiItemLabelProp;return t.items.filter((e=>!(t.treatGroupSelectionAsItems||!e._group)||i.test(e[l]||e[r])))}),t.filterFn=e,t.dropList?.setFilterFn(e)),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[f],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._repositionDropList(),this._repositionDropList(),e.dropList.hasFocusedItem()&&e.dropList.setFocusedItemAtIndex(e.dropList.getFocusedItemIndex())),this}closeList(){const e=this._p;return this[f]?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;t.valueProp,t.dropList&&(t.dropList.destroy(),delete t.dropList,t.itemsChanged=!0,t.selectionChanged=!0,t.resortBySelectionNeeded=!0);const s=t.renderNoResultsItem,i=t.unrenderNoResultsItem,l=(t.listOptions||{}).renderItem,r=(t.listOptions||{}).unrenderItem,n=s||l?(e,t)=>!!l&&l(e,t):null,o=i||l?(e,t)=>!!r&&r(e,t):null,a=t.dropList=new _({virtualMinItems:10,...t.listOptions,renderItem:n,unrenderItem:o,multi:t.multi,capturesFocus:!1,labelProp:t.labelProp,valueProp:t.valueProp,searchable:!1,noResultsText:t.noResultsText,filterThrottleWindow:t.filterThrottleWindow,filterOnEmptyTerm:t.filterOnEmptyTerm,filterGroups:t.treatGroupSelectionAsItems,filterEmptyGroups:t.treatGroupSelectionAsItems,filterFn:t.filterFn,positionOptionsProvider:()=>this._getDropListPositionOptions(),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:a}),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[f])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===a.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[f])return;this.closeList(),("touch"===t.blurOnSingleSelection&&b||"touch"!==t.blurOnSingleSelection&&t.blurOnSingleSelection)&&t.input&&t.input.blur()}break;case"blur":this._handleOnBlur();break;case"search":this._trigger("search",s);break;case"itemschanged":this._trigger("itemschanged",s)}}});t.sink.add(a.el,"mousedown",(t=>{e.closestUntil(t.target,"li",t.currentTarget)&&t.preventDefault()})),this._registerDropdownEvents()}_handleOnBlur(){const e=this._p;setTimeout((()=>{this[f]||e.disabled||(this._trigger("search:blur"),this[f]||document.activeElement&&(e.input&&e.input.contains(document.activeElement)||e.dropList&&this.droplistElContains(document.activeElement,!0))||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.dropList?.setSearchTerm(t.filterTerm,!0),this._trigger("search",{value:t.input.value}))})).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[f]||(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[f]&&(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[f]&&(this._setSelectedItems([]),e&&this._setInputText(""),this._trigger("clear"),!0)}_movePrev(){const e=this._p;if(this.isMultiEnabled())return;let t=this.getSelectedItems(),s=e.dropList.getFilteredItemCount();if(s+(e.clearable?1:0)>1){let i=t.length>0?e.dropList.filteredItemIndexByItem(t[0])-1:s-1;-1!==i||e.clearable||(i=s-1);let l=-1===i?null:e.dropList.filteredItemAtIndex(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.dropList.getFilteredItemCount();if(s+(e.clearable?1:0)>1){let i=t.length>0?e.dropList.filteredItemIndexByItem(t[0])+1:0;i===s&&(i=e.clearable?-1:0);let l=-1===i?null:e.dropList.filteredItemAtIndex(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.itemsChanged||e.selectionChanged)&&(e.dropList._lastSerializedBox=null),e.itemsChanged){let s=e.items;(e.sortListItems||e.sortListCheckedFirst&&e.multi)&&(s=this._sortItems(s,e.sortListItems,e.sortListCheckedFirst&&e.multi,e.splitListCheckedGroups)),t.setItems(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())}_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[f])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]===I&&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 s=this._p,i=s.multiItemEls;if(i.length>e){const l=i[e],r=l[g];let n=r?.[s.valueProp]===I?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]===I?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]:I,[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[g]=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[g]=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[g],o=n[i.valueProp];if(void 0!==n)if(o===I){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[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.dropList?.setSearchTerm("",!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),d=.75*(parseFloat(a["font-size"])||0)+u,c=s.getElementWidth(r,!0,!0),h=s.getElementWidth(l,!0,!0);let m=Math.max(c,d);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(),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[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(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 d=[],c=null,h=[d];const m=new Set(l.selectedValues);let p,_,g;for(_=0,g=e.length;_<g;_++)p=e[_],p._group&&d.length&&(d=[],h.push(d)),d.push(p);d.length||(h.length=0),a&&e.length>0&&!e[0]._group&&(c=h[0].filter((e=>a.has(e[o]))),c.length>0?(h[0]=h[0].filter((e=>!a.has(e[o]))),0===h[0].length&&h.shift()):c=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)})),c&&h.unshift(c);const f=[],I=[];for(let e=0,i=h.length;e<i;e++)d=h[e],d.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})),I.push(d);if(s&&i){let e;for(let t=0,s=h.length;t<s;t++)if(d=h[t],d!==c){e=null;for(let t=0,s=d.length;t<s;t++)if(p=d[t],!p._group){if(!m.has(p[l.valueProp]))break;e||(e=[],d[0]._group&&e.push(d[0])),e.push(p),d.splice(t--,1),s--}if(e&&(f.push(e),0===d.length||1===d.length&&d[0]._group)){h.splice(t--,1),s--;let e=I.indexOf(d);-1!==e&&I.splice(e,1)}}else{f.push(c);let e=I.indexOf(c);-1!==e&&I.splice(e,1)}}const b=[];b.length=e.length;let v=0;h=f.length?f.concat(I):I;for(let e=0,t=h.length;e<t;e++)for(d=h[e],_=0,g=d.length;_<g;_++)b[v++]=d[_];return b}};
package/dist/lib.es6.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @danielgindi/selectbox 2.0.0
2
+ * @danielgindi/selectbox 2.0.1
3
3
  * git://github.com/danielgindi/selectbox.git
4
4
  */
5
5
  import { createElement, closestUntil, setElementAttrs, next, prev } from '@danielgindi/dom-utils/lib/Dom';
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @danielgindi/selectbox 2.0.0
2
+ * @danielgindi/selectbox 2.0.1
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 d,getElementOffset as c,getElementHeight as h,getElementWidth as m,anchoredPosition as p,setElementHeight as _,parseTransition as f,setElementWidth as g,getPseudoElementWidth as I,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 x,VALUE_DOWN as w,VALUE_UP as E,VALUE_END as T,VALUE_HOME as N,VALUE_PAGE_DOWN as F,VALUE_PAGE_UP as P,VALUE_TAB as M,VALUE_DELETE as O,VALUE_BACK_SPACE as R}from"keycode-js";import B from"mitt";var W=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");const V=(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 d=t-(u-o);return l=this,r=arguments,d<=0||d>t?(i&&(clearTimeout(i),i=null),o=u,n=e.apply(l,r),i||(l=r=null)):i||!1===s.trailing||(i=setTimeout(a,d)),n};return u.cancel=()=>{clearTimeout(i),o=0,i=l=r=null},u.isScheduled=()=>!!i,u},$=Symbol("item"),D=Symbol("destroyed"),A=Symbol("ghost"),H=Symbol("no_results_items"),G=Object.prototype.hasOwnProperty;let z={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,searchable:!1,noResultsText:"No matching results",filterThrottleWindow:300,filterOnEmptyTerm:!1,filterGroups:!1,filterEmptyGroups:!1};class K{constructor(t){const s={...z};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,renderNoResultsItem:s.renderNoResultsItem,unrenderNoResultsItem:s.unrenderNoResultsItem,on:s.on||null,positionOptionsProvider:s.positionOptionsProvider??null,searchable:s.searchable,silenceEvents:!0,mitt:B(),filterThrottleWindow:s.filterThrottleWindow,filterOnEmptyTerm:s.filterOnEmptyTerm,filterGroups:s.filterGroups,filterEmptyGroups:s.filterEmptyGroups,filterFn:s.filterFn,filteredItems:null,filterTerm:"",needsRefilter:!1,throttledRefilterItems:null,focusItemIndex:-1,focusItemEl:null,sink:new v};let l=[i.baseClassName+"_wrapper"];i.additionalClasses&&(l=l.concat((i.additionalClasses+"").split(" ").filter((e=>e))));const r={top:"-9999px"};let n=s.el;n instanceof Element?(i.elOriginalDisplay=n.style.display||"",n.classList.add(...l),d(n,r),i.ownsEl=!1):n=e("div",{class:l.join(" "),css:r});let o=e("ul");o.role="menu",s.searchable&&(i.headerEl=e("div",{class:i.baseClassName+"_header"}),i.searchInput=e("input",{type:"search",role:"searchbox",tabindex:"0",autocorrect:"off",autocomplete:"off",autocapitalize:"off",spellcheck:"false","aria-autocomplete":"list"}),i.headerEl.appendChild(i.searchInput),n.appendChild(i.headerEl)),n.appendChild(o),i.el=n,i.menuEl=o,i.items=[],i.groupCount=0,i.mouseHandled=!1,i.virtualListHelper=new y({list:i.menuEl,virtual:!0,buffer:5,estimatedItemHeight:s.estimatedItemHeight||20,itemElementCreatorFn:()=>e("li",{role:"menuitem",tabIndex:i.capturesFocus?-1:null}),onItemRender:(e,t)=>{let s;if(t===A)s={label:i.lastMeasureLongestLabelText,value:"Measure",[$]:{[i.labelProp]:i.lastMeasureLongestLabelText,[i.valueProp]:"Measure"}},e.setAttribute("aria-hidden","true");else{const e=i.filteredItems??i.items;s=0===e.length&&i.noResultsText?{value:H,label:i.noResultsText,_nointeraction:!0,_nocheck:!0,[$]:H}:e[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}}),this._setupUnrenderFunction(),i.capturesFocus&&(n.tabIndex=0),this.setFilterThrottleWindow(s.filterThrottleWindow),this.setNoResultsText(s.noResultsText),this._hookMouseEvents(),this._hookTouchEvents(),this._hookFocusEvents(),this._hookKeyEvents(),this._hookSearchEvents(),this.silenceEvents=!1}destroy(){if(this[D])return;this[D]=!0;const e=this._p;if(clearTimeout(e.blurTimer),clearTimeout(e.filterTimer),e.sink.remove(),e.virtualListHelper.destroy(),e.el?.parentNode&&r(e.el),e.currentSubDropList&&(e.currentSubDropList?.droplist?.destroy(),e.currentSubDropList=null),e.throttledRefilterItems&&e.throttledRefilterItems.cancel(),!e.ownsEl){for(let t of Array.from(e.el.classList))t.startsWith(e.baseClassName)&&e.el.classList.remove(t);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),delete e.lastPositionOptions,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){return this._p.unrenderItem=e,this._setupUnrenderFunction(),this}setRenderNoResultsItem(e,t){const s=this._p;return s.renderNoResultsItem=e,s.unrenderNoResultsItem=t,this._setupUnrenderFunction(),this}_setupUnrenderFunction(){const e=this._p;if("function"==typeof e.unrenderItem||"function"==typeof e.unrenderNoResultsItem){const t=e.unrenderItem,s=e.unrenderNoResultsItem;e.virtualListHelper.setOnItemUnrender((i=>{const l=i[$];if(l===H)try{s(l,i)}catch(e){console.error(e)}else try{t(l[$],i)}catch(e){console.error(e)}delete i[$],e.focusItemEl===i&&(e.focusItemEl=null)}))}else e.virtualListHelper.setOnItemUnrender((t=>{delete t[$],e.focusItemEl===t&&(e.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+"_wrapper"];"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.filteredItems??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++}if(s.filteredItems)s.needsRefilter=!0;else{let i=s.hasNoResultsItem;s.hasNoResultsItem=0===s.items.length&&!!s.noResultsText,s.hasNoResultsItem?s.virtualListHelper.setCount(1).render():(i&&s.virtualListHelper.removeItemsAt(1,0),s.virtualListHelper.addItemsAt(e.length,-1===t?t:t-e.length).render())}return this}setItems(e){const t=this._p;return t.items.length=0,t.filteredItems=null,t.groupCount=0,t.hasNoResultsItem=!!t.noResultsText,t.virtualListHelper.setCount(t.hasNoResultsItem?1: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);l[$]=t,G.call(t,s.labelProp)&&(l.label=t[s.labelProp]),G.call(t,s.valueProp)&&(l.value=t[s.valueProp]),G.call(t,"_nocheck")&&(l._nocheck=!!t._nocheck),G.call(t,"_nointeraction")&&(l._nointeraction=!!t._nointeraction),G.call(t,"_subitems")&&(l._subitems=!!t._subitems),s.multi&&G.call(t,"_checked")&&(l._checked=!!t._checked),G.call(t,"_group")&&!!t._group!==l._group&&(l._group?s.groupCount--:s.groupCount++,t._group=!!l._group),G.call(t,"_child")&&(l._child=!!t._child);let r=i;return s.filteredItems&&(r=s.filteredItems.indexOf(l),-1!==r&&s.filteredItems.splice(r,1)),-1!==r&&s.virtualListHelper.isItemRendered(r)&&s.virtualListHelper.refreshItemAt(r).render(),this}removeItem(e,t){const s=this._p;let i=this.itemIndexByValueOrLabel(e,t);if(-1===i)return this;let l=s.items.splice(i,1);l[0]._group&&s.groupCount--;let r=i;return s.filteredItems&&(r=s.filteredItems.indexOf(l[0]),-1!==r&&s.filteredItems.splice(r,1)),-1!==r&&(s.hasNoResultsItem=0===(s.filteredItems??s.items).length&&!!s.noResultsText,s.hasNoResultsItem?s.virtualListHelper.setCount(1).render():s.virtualListHelper.removeItemsAt(r,1).render()),this}removeAllItems(){const e=this._p;return e.items.length=0,e.filteredItems=null,e.groupCount=0,e.hasNoResultsItem=!!e.noResultsText,e.virtualListHelper.setCount(e.hasNoResultsItem?1: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.items;for(let s=0,i=t.length;s<i;s++)if(t[s].value===e)return s;return-1}filteredItemIndexByValue(e){const t=this._p,s=t.filteredItems??t.items;for(let t=0,i=s.length;t<i;t++)if(s[t].value===e)return t;return-1}itemIndexByValueOrLabel(e,t){const s=this._p.items;for(let i=0,l=s.length;i<l;i++){let l=s[i];if(l.value===e||l.label===t)return i}return-1}filteredItemIndexByValueOrLabel(e,t){const s=this._p,i=s.filteredItems??s.items;for(let s=0,l=i.length;s<l;s++){let l=i[s];if(l.value===e||l.label===t)return s}return-1}itemIndexByItem(e){const t=this._p.items;for(let s=0,i=t.length;s<i;s++)if(t[s][$]===e)return s;return-1}filteredItemIndexByItem(e){const t=this._p,s=t.filteredItems??t.items;for(let t=0,i=s.length;t<i;t++)if(s[t][$]===e)return t;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]?.[$]}filteredItemAtIndex(e){const t=this._p,s=t.filteredItems??t.items;return s[e]?.[$]}setPositionOptionsProvider(e){const t=this._p;return t.positionOptionsProvider===e||(t.positionOptionsProvider=e??null,this.relayout()),this}getPositionOptionsProvider(){return this._p.positionOptionsProvider}setSearchTerm(e,t=!1){const s=this._p;return s.searchInput&&(s.searchInput.value=e),t&&(s.filterTerm=e.trim(),s.filteredItems=null,this._trigger("search",{value:e}),s.throttledRefilterItems()),this}isFilterPending(){const e=this._p;return!!(e.throttledRefilterItems.isScheduled()||!e.filteredItems&&(e.filterTerm||e.filterOnEmptyTerm&&e.filterFn))}_refilterItems(){const e=this._p,t=e.filterTerm,s=e.filterGroups,i=e.filterEmptyGroups;if(t||e.filterOnEmptyTerm&&e.filterFn){let l;if("function"==typeof e.filterFn&&(l=e.filterFn(e.items,t)),!Array.isArray(l))if(t){const i=new RegExp(W(t),"i"),r=e.labelProp;l=e.items.filter((e=>!(s||!e._group)||i.test(e[r])))}else l=null;if(e.filteredItems=l,l&&i){let e=-1,t=l.length;for(let s=0;s<t;s++)l[s]._group&&(-1!==e&&e===s-1&&(l.splice(e,1),s--,t--),e=s);-1!==e&&e===t-1&&l.splice(e,1)}}else e.filteredItems=null;this.needsRefilter=!1;const l=e.filteredItems??e.items;e.hasNoResultsItem=0===l.length&&!!e.noResultsText,e.virtualListHelper.setCount(l.length+(e.hasNoResultsItem?1:0)).render(),this._trigger("itemschanged",{term:t,mutated:!1,count:this.getFilteredItemCount()}),this.relayout()}invokeRefilter(){const e=this._p;return e.filterTerm||e.filterOnEmptyTerm||e.filteredItems?(e.filteredItems=null,e.throttledRefilterItems(),this):this}getFilteredItemCount(){const e=this._p;return e.needsRefilter&&this._refilterItems(),e.filteredItems?e.filteredItems.length:e.items?e.items.length:0}setNoResultsText(e){return this._p.noResultsText=e,this}getNoResultsText(){return this._p.noResultsText}setFilterThrottleWindow(e){const t=this._p;t.filterThrottleWindow=e;let s=!!t.throttledRefilterItems&&t.throttledRefilterItems.isScheduled();return t.throttledRefilterItems&&t.throttledRefilterItems.cancel(),t.throttledRefilterItems=V((()=>this._refilterItems()),t.filterThrottleWindow,!0),s&&t.throttledRefilterItems(),this}getFilterThrottleWindow(){return this._p.filterThrottleWindow}setFilterOnEmptyTerm(e){const t=this._p;return t.filterOnEmptyTerm===e||(t.filterOnEmptyTerm=e,t.throttledRefilterItems()),this}getFilterOnEmptyTerm(){return this._p.filterOnEmptyTerm}setFilterGroups(e){const t=this._p;return t.filterGroups===e||(t.filterGroups=e,t.throttledRefilterItems()),this}getFilterGroups(){return this._p.filterGroups}setFilterEmptyGroups(e){const t=this._p;return t.filterEmptyGroups===e||(t.filterEmptyGroups=e,t.throttledRefilterItems()),this}getFilterEmptyGroups(){return this._p.filterEmptyGroups}setFilterFn(e){const t=this._p;return t.filterFn===e||(t.filterFn=e,t.throttledRefilterItems()),this}getFilterFn(){return this._p.filterFn}relayout(e){const t=this._p,s=t.el,i=t.menuEl;if(!this.isVisible())return this;let l=window;e||(e=t.positionOptionsProvider?.()??t.lastPositionOptions),e||(e={targetOffset:{left:window.innerWidth/2,top:window.innerHeight/2},targetWidth:0,targetHeight:0,position:{x:"center",y:"center"},anchor:{x:"center",y:"center"},targetRtl:"rtl"===getComputedStyle(document.body).direction});let r={},o=e.targetOffset||c(e.target);r.left=o.left,r.top=o.top,r.height=null==e.targetHeight?h(e.target,!0,!0):e.targetHeight,r.width=null==e.targetWidth?m(e.target,!0,!0):e.targetWidth,r.bottom=r.top+r.height;let a={};a.top=l.pageYOffset,a.left=l.pageXOffset,a.width=l.innerWidth,a.height=l.innerHeight,a.bottom=a.top+a.height,a.right=a.left+a.width;let u=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 f,g=r.top-a.top,I=a.bottom-r.bottom;const b=getComputedStyle(s);let v="border-box"===b.boxSizing,y=(parseFloat(b.paddingTop)||0)+(parseFloat(b.paddingBottom)||0),S=(parseFloat(b.borderTopWidth)||0)+(parseFloat(b.borderBottomWidth)||0),C=0;t.headerEl&&(C=h(t.headerEl,!0,!0)),t.virtualListHelper.isVirtual()?f=t.virtualListHelper.estimateFullHeight()+y+S+C:(s.style.height="",i.style.height="",s.style.top="-9999px",f=Math.max(h(t.el),i.scrollHeight),f+=y+S);let L=parseFloat(b.maxHeight);isNaN(L)||(v||(L+=y+S),f=Math.min(f,L));let k=g>=f,x=I>=f,w=t.currentDirection||u;"above"===w&&!k&&x?w="below":"below"===w&&!x&&k?w="above":k&&x?w!==u&&("above"===u&&g>=I||"below"===u&&I>=g)&&(w=u):k||x||(g>I?w="above":I>g&&(w="below")),t.currentDirection=w;let E={width:m(s,!0,!0),height:Math.min(f,Math.max(g,I,0))},T=void 0!==e.targetRtl?e.targetRtl:null!=e.target&&"rtl"===getComputedStyle(e.target).direction,N="rtl"===getComputedStyle(document.documentElement).direction,F=p(e.target,e.anchor?e.anchor.x:"start",e.anchor?e.anchor.y:"bottom",r,T),P=p(s,e.position?e.position.x:"start",e.position?e.position.y:"top",E,T),M="top"===P.ySpec&&"above"===w||"bottom"===P.ySpec&&"below"===w||"bottom"!==P.ySpec&&"top"!==P.ySpec&&"above"===w,O=void 0!==l.pageXOffset?l.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft;O=Math.abs(O),N&&(O=document.documentElement.scrollWidth-O-document.documentElement.clientWidth);let R=O,B=document.documentElement.clientWidth+O-E.width,W={position:"absolute",left:r.left,top:r.top+(M?F.bottom-P.bottom:F.top-P.top)};if(N&&(W.left-=document.documentElement.clientWidth-document.documentElement.scrollWidth),W.left+=F.left-P.left,e.offset&&(e.offset.y&&(M?W.top-=e.offset.y:W.top+=e.offset.y),e.offset.x)){let t="rtl"===b.direction;W.left+=t?-e.offset.x:e.offset.x}if(t.autoFlipDirection&&("right"===P.xSpec&&W.left<R&&(Math.max(W.left,R)+E.width-r.left)/r.width>.5||"left"===P.xSpec&&W.left>B&&(Math.min(W.left,B)-r.left)/r.width<.5)&&(W.left-=F.left-P.left,W.left+=F.right-P.right),t.constrainToWindow)for(let e of N?["min","max"]:["max","min"])"min"===e&&W.left<R?W.left=R:"max"===e&&W.left>B&&(W.left=B);return W.left+="px",W.top+="px",d(s,W),_(s,E.height,!0,!0),i!==s&&_(i,E.height-C-S-y,!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"===w),n(e.target,`has_${t.baseClassName}_above`,"above"===w),n(s,`${t.baseClassName}__is_below`,"below"===w),n(s,`${t.baseClassName}__is_above`,"above"===w)),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[D]||t.onDocumentMouseDown||t.sink.add(document,"mousedown",t.onDocumentMouseDown=e=>{t.el.contains(e.target)||this._delayBlurItemOnBlur()})})),t.needsRefilter&&this._refilterItems();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"),t.lastPositionOptions=null,void 0===e?e=t.positionOptionsProvider?.()??t.lastPositionOptions:t.lastPositionOptions=e,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,this.isFilterPending()&&(e.throttledRefilterItems.cancel(),e.needsRefilter=!0),t&&(t.classList.add(`${e.baseClassName}__is-hiding`),f(getComputedStyle(e.el).transition).reduce(((e,t)=>Math.max(e,t.delay+t.duration)),0)>0?setTimeout((()=>{this[D]||this._p&&t.parentNode&&e.hiding&&(r(t),t.classList.remove(`${e.baseClassName}__is-hiding`),e.visible=!1,this._trigger("hide:after"))})):(t.parentNode&&r(t),t.classList.remove(`${e.baseClassName}__is-hiding`))),e.visible=!1,this.blurFocusedItem(),this._trigger("hide"),this[D])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;if(t.filteredItems){const s=t.items[e];e=t.items.indexOf(s)}t.focusItemIndex=e;const s=t.filteredItems??t.items;let i=null;e>-1&&(i=s[e]),i&&i._nointeraction&&(i=null),e>-1&&this._scrollItemIndexIntoView(e);let l=i?t.virtualListHelper.getItemElementAt(e):null;if(t.focusItemEl!==l&&(t.focusItemEl&&(t.focusItemEl.classList.remove(`${t.baseClassName}__item_focus`),t.focusItemEl=null),l)){l.classList.add(`${t.baseClassName}__item_focus`),t.focusItemEl=l;const e=l[$];this._trigger("itemfocus",{value:e.value,item:e[$]??e,event:null,el:l}),this._showSublist(e,l)}return this}_showSublist(e,t){if(!e._subitems?.length)return;const s=this._p,i=new K({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,positionOptionsProvider:()=>s.currentSubDropList.showOptions});let l=e=>{this[D]||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(),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[D]&&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()))}}setFocusedItem(e){const t=this._p;let s=e._nointeraction?-1:this._getItemIndex(e);const i=t.items;return s>-1&&i[s]._nointeraction&&(s=-1),this.setFocusedItemAtIndex(s)}setFocusedItemByValue(e){return this.setFocusedItemAtIndex(this.itemIndexByValue(e))}setSingleSelectedItemAtIndex(e){const t=this._p;let s=null;if(e>-1&&!t.items[e]._nointeraction){if(t.filteredItems){const s=t.items[e];e=t.filteredItems.indexOf(s)}e>-1&&(s=t.virtualListHelper.getItemElementAt(e))}return this._setSingleSelectedItemEl(s),this}setSingleSelectedItem(e){const t=this._p;let s=e._nointeraction?-1:this._getItemIndex(e);const i=t.items;return s>-1&&i[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,t=e.filteredItems??e.items;return 0===e.focusItemIndex&&e.focusItemIndex<t.length}isLastItem(){const e=this._p,t=e.filteredItems??e.items;return e.focusItemIndex>-1&&e.focusItemIndex===t.length-1}scrollItemIndexIntoView(e){const t=this._p;if(this._hasScroll()){if(t.filteredItems){const s=t.items[e];e=t.items.indexOf(s)}-1!==e&&this._scrollItemIndexIntoView(e)}return this}_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()}}}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.filteredItems??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[D])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=>{if(t.target===this.el&&e.searchable&&e.searchInput.focus(),t.relatedTarget&&this.elContains(t.relatedTarget,!0)&&this.elContains(t.target,!0))return;let s=e.focusItemEl||e.el.firstChild;this._focus(t,s,null,!1)}),!0).add(e.el,"blur",(e=>{e.relatedTarget&&this.elContains(e.relatedTarget,!0)&&this.elContains(e.target,!0)||setTimeout((()=>{this[D]||document.activeElement&&this.elContains(document.activeElement,!0)||(this._delayBlurItemOnBlur(),this._trigger("blur",e))}))}),!0)}_hookKeyEvents(){const e=this._p;e.sink.add(e.el,"keydown",(e=>this._keydown(e)))}_hookSearchEvents(){const e=this._p;e.searchInput&&e.sink.add(e.searchInput,"input",(()=>{e.filterTerm=e.searchInput.value.trim(),e.filteredItems=null,this._trigger("search",{value:e.searchInput.value}),e.throttledRefilterItems()}))}_keydown(e){const t=this._p;if(t.keyDownHandler&&t.keyDownHandler.call(this,e))return;let s=!0;switch(e.key){case P:case F:case N:case T:case E:case w:switch(e.preventDefault(),e.key){case P:this.previousPage(e);break;case F: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 w:this.next(e)}break;case x:case k:if(e.key===k&&"rtl"!==getComputedStyle(e.target).direction||e.key===x&&"rtl"===getComputedStyle(e.target).direction){let e=(t.filteredItems??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;t.searchable||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(`^${W(l)}`,"i"),n=-1,o=t.focusItemIndex;const a=t.filteredItems??t.items;for(let e=0,t=a.length;e<t&&(-1!==n&&e<o||(i=a[e],!(r.test(i.label)&&(n=e,-1===o||e>=o))));e++);if(-1===n){l=s,r=new RegExp(`^${W(l)}`,"i");for(let e=0,t=a.length;e<t&&(-1!==n&&e<o||(i=a[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:a[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&&t?.[$]?.[$]===H&&(s=void 0),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.filteredItems??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[D])return;const e=this._p;e.autoItemBlur&&(clearTimeout(e.blurTimer),e.blurTimer=setTimeout((()=>{this[D]||this.blurFocusedItem()}),e.autoItemBlurDelay))}_move(e,t){const s=this._p;let i,l,r=!1;const n=s.filteredItems??s.items;if("first"===e)l=0,r=!1;else if("last"===e)l=n.length-1,r=!0;else if("prev"===e){if(!this.hasFocusedItem())return this._move("last",t);l=s.focusItemIndex-1,-1===l&&(l=n.length-1),r=!0}else if("next"===e){if(!this.hasFocusedItem())return this._move("first",t);l=s.focusItemIndex+1,l===n.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>=n.length&&(l=n.length)}else if(s.focusItemEl){let t=c(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(c(i).top-t+r<=0)break}else if(c(i).top-t-r>=0)break}i&&(l=s.virtualListHelper.getItemIndexFromElement(i),void 0===l&&(l=-1))}r="prev_page"===e}let o=n.length;if(l>=o)return;let a=n[l],u=l;for(;a&&a._nointeraction&&(r?(l--,-1===l&&(l=o)):(l++,l===o&&(l=0)),a=n[l],l!==u););i=s.virtualListHelper.getItemElementAt(l),this._focus(t,i||null,l,!1),this.isVisible()||this.triggerItemSelection(a,t)}_hasScroll(){const e=this._p.menuEl;return e.clientHeight<e.scrollHeight}_updateGroupStateForItem(e){const t=this._p;if(!t.multi)return this;if(e._group){let s=0;if(t.autoCheckGroupChildren){let i=t.filteredItems??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.filteredItems??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.filteredItems??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.filteredItems??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,l=t[$];if(l===H)return!(!i.renderNoResultsItem||!1===i.renderNoResultsItem(t,s))||void s.appendChild(e("div",{class:"droplist-no-results-content",textContent:i.noResultsText}));i.renderItem&&!1!==i.renderItem(l||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&&i||(t.estimateWidth||t.virtualListHelper.isVirtual()?l=t.lastMeasureItemWidth:(s.style.width="",l=m(s,!0,!0)));let r=Math.max(l,i);g(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 U=Symbol("item"),j=Symbol("destroyed"),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,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,on:i.on||null,silenceEvents:!0,mitt:B(),isLoadingMode:!!i.isLoadingMode,items:[],itemsChanged:!0,sink:new v,resizeObserver:null,selectedItems:[],selectedValues:[],selectionChanged:!0,resortBySelectionNeeded:!1,filterThrottleWindow:i.filterThrottleWindow,filterOnEmptyTerm:i.filterOnEmptyTerm,filterFn:null,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[j])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 i.filterFn&&this.setFilterFn(i.filterFn),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[j])return;this[j]=!0;const e=this._p;if(e.syncTimeout&&(clearTimeout(e.syncTimeout),delete e.syncTimeout),this._stopTrackingPresence(),e.sink.remove(),e.dropList&&e.dropList.destroy(),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.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.dropList?e.dropList.getFilteredItemCount():e.items?e.items.length:0}isFilterPending(){const e=this._p;return!0===e.dropList?.isFilterPending()}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.dropList?.setSearchTerm(s.filterTerm,t)),this):this}getSearchTerm(){const e=this._p;return e.input?e.input.value:""}invokeRefilter(){const e=this._p;return e.dropList?.invokeRefilter(),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.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.dropList?.setFilterGroups(e),t.dropList?.setFilterEmptyGroups(!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.dropList?.setNoResultsText(e),this}getNoResultsText(){return this._p.noResultsText}setFilterThrottleWindow(e){const t=this._p;return t.filterThrottleWindow=e,t.dropList?.setFilterThrottleWindow(e),this}getFilterThrottleWindow(){return this._p.filterThrottleWindow}setFilterOnEmptyTerm(e){const t=this._p;return t.filterOnEmptyTerm===e||t.dropList?.setFilterOnEmptyTerm(e),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||(e||(e=(e,s)=>{const i=new RegExp(W(s),"i"),l=t.labelProp,r=t.multiItemLabelProp;return t.items.filter((e=>!(t.treatGroupSelectionAsItems||!e._group)||i.test(e[l]||e[r])))}),t.filterFn=e,t.dropList?.setFilterFn(e)),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[j],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._repositionDropList(),this._repositionDropList(),e.dropList.hasFocusedItem()&&e.dropList.setFocusedItemAtIndex(e.dropList.getFocusedItemIndex())),this}closeList(){const e=this._p;return this[j]?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 e=this._p;e.valueProp,e.dropList&&(e.dropList.destroy(),delete e.dropList,e.itemsChanged=!0,e.selectionChanged=!0,e.resortBySelectionNeeded=!0);const s=e.renderNoResultsItem,i=e.unrenderNoResultsItem,l=(e.listOptions||{}).renderItem,r=(e.listOptions||{}).unrenderItem,n=s||l?(e,t)=>!!l&&l(e,t):null,o=i||l?(e,t)=>!!r&&r(e,t):null,a=e.dropList=new K({virtualMinItems:10,...e.listOptions,renderItem:n,unrenderItem:o,multi:e.multi,capturesFocus:!1,labelProp:e.labelProp,valueProp:e.valueProp,searchable:!1,noResultsText:e.noResultsText,filterThrottleWindow:e.filterThrottleWindow,filterOnEmptyTerm:e.filterOnEmptyTerm,filterGroups:e.treatGroupSelectionAsItems,filterEmptyGroups:e.treatGroupSelectionAsItems,filterFn:e.filterFn,positionOptionsProvider:()=>this._getDropListPositionOptions(),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:a}),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[j])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===a.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[j])return;this.closeList(),("touch"===e.blurOnSingleSelection&&Q||"touch"!==e.blurOnSingleSelection&&e.blurOnSingleSelection)&&e.input&&e.input.blur()}break;case"blur":this._handleOnBlur();break;case"search":this._trigger("search",s);break;case"itemschanged":this._trigger("itemschanged",s)}}});e.sink.add(a.el,"mousedown",(e=>{t(e.target,"li",e.currentTarget)&&e.preventDefault()})),this._registerDropdownEvents()}_handleOnBlur(){const e=this._p;setTimeout((()=>{this[j]||e.disabled||(this._trigger("search:blur"),this[j]||document.activeElement&&(e.input&&e.input.contains(document.activeElement)||e.dropList&&this.droplistElContains(document.activeElement,!0))||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 F:case E:case w: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 F:s.isVisible()&&s.nextPage(t);break;case E:s.isVisible()?s.previous(t):this._movePrev();break;case w: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 M: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.dropList?.setSearchTerm(e.filterTerm,!0),this._trigger("search",{value:e.input.value}))})).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[j]||(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[j]&&(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[j]&&(this._setSelectedItems([]),e&&this._setInputText(""),this._trigger("clear"),!0)}_movePrev(){const e=this._p;if(this.isMultiEnabled())return;let t=this.getSelectedItems(),s=e.dropList.getFilteredItemCount();if(s+(e.clearable?1:0)>1){let i=t.length>0?e.dropList.filteredItemIndexByItem(t[0])-1:s-1;-1!==i||e.clearable||(i=s-1);let l=-1===i?null:e.dropList.filteredItemAtIndex(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.dropList.getFilteredItemCount();if(s+(e.clearable?1:0)>1){let i=t.length>0?e.dropList.filteredItemIndexByItem(t[0])+1:0;i===s&&(i=e.clearable?-1:0);let l=-1===i?null:e.dropList.filteredItemAtIndex(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.itemsChanged||e.selectionChanged)&&(e.dropList._lastSerializedBox=null),e.itemsChanged){let s=e.items;(e.sortListItems||e.sortListCheckedFirst&&e.multi)&&(s=this._sortItems(s,e.sortListItems,e.sortListCheckedFirst&&e.multi,e.splitListCheckedGroups)),t.setItems(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())}_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[j])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===O?r=i(e,`.${s.baseClassName}__item,.${s.baseClassName}__search_wrapper`):n.key===R&&(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.dropList?.setSearchTerm("",!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=I(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=I(e.list||t,"::after",!0,!0,!0));let a=m(e.list||t);a-=i+l,s.style.width=`${a}px`,o=!0}else{d(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,c=m(i,!0,!0),h=m(s,!0,!0);let p=Math.max(c,u);if(p!==h){g(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&&g(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(),e.dropList._lastSerializedBox=i),this}_handleInputKeydown(e){const t=this._p,s=e.target;if(e.key===R&&e.ctrlKey&&0===s.value.length)this.clear(),e.preventDefault();else if(e.key===R&&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?x: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:x))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===R&&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!==O&&e.key!==R||(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 d=[],c=null,h=[d];const m=new Set(l.selectedValues);let p,_,f;for(_=0,f=e.length;_<f;_++)p=e[_],p._group&&d.length&&(d=[],h.push(d)),d.push(p);d.length||(h.length=0),a&&e.length>0&&!e[0]._group&&(c=h[0].filter((e=>a.has(e[o]))),c.length>0?(h[0]=h[0].filter((e=>!a.has(e[o]))),0===h[0].length&&h.shift()):c=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)})),c&&h.unshift(c);const g=[],I=[];for(let e=0,i=h.length;e<i;e++)d=h[e],d.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})),I.push(d);if(s&&i){let e;for(let t=0,s=h.length;t<s;t++)if(d=h[t],d!==c){e=null;for(let t=0,s=d.length;t<s;t++)if(p=d[t],!p._group){if(!m.has(p[l.valueProp]))break;e||(e=[],d[0]._group&&e.push(d[0])),e.push(p),d.splice(t--,1),s--}if(e&&(g.push(e),0===d.length||1===d.length&&d[0]._group)){h.splice(t--,1),s--;let e=I.indexOf(d);-1!==e&&I.splice(e,1)}}else{g.push(c);let e=I.indexOf(c);-1!==e&&I.splice(e,1)}}const b=[];b.length=e.length;let v=0;h=g.length?g.concat(I):I;for(let e=0,t=h.length;e<t;e++)for(d=h[e],_=0,f=d.length;_<f;_++)b[v++]=d[_];return b}}export{K as DropList,Z as SelectBox};
package/dist/lib.umd.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @danielgindi/selectbox 2.0.0
2
+ * @danielgindi/selectbox 2.0.1
3
3
  * git://github.com/danielgindi/selectbox.git
4
4
  */
5
5
  (function (global, factory) {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @danielgindi/selectbox 2.0.0
2
+ * @danielgindi/selectbox 2.0.1
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=(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 d=t-(u-o);return l=this,r=arguments,d<=0||d>t?(i&&(clearTimeout(i),i=null),o=u,n=e.apply(l,r),i||(l=r=null)):i||!1===s.trailing||(i=setTimeout(a,d)),n};return u.cancel=()=>{clearTimeout(i),o=0,i=l=r=null},u.isScheduled=()=>!!i,u},d=Symbol("item"),c=Symbol("destroyed"),h=Symbol("ghost"),m=Symbol("no_results_items"),p=Object.prototype.hasOwnProperty;let _={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,searchable:!1,noResultsText:"No matching results",filterThrottleWindow:300,filterOnEmptyTerm:!1,filterGroups:!1,filterEmptyGroups:!1};class g{constructor(e){const s={..._};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,renderNoResultsItem:s.renderNoResultsItem,unrenderNoResultsItem:s.unrenderNoResultsItem,on:s.on||null,positionOptionsProvider:s.positionOptionsProvider??null,searchable:s.searchable,silenceEvents:!0,mitt:o(),filterThrottleWindow:s.filterThrottleWindow,filterOnEmptyTerm:s.filterOnEmptyTerm,filterGroups:s.filterGroups,filterEmptyGroups:s.filterEmptyGroups,filterFn:s.filterFn,filteredItems:null,filterTerm:"",needsRefilter:!1,throttledRefilterItems:null,focusItemIndex:-1,focusItemEl:null,sink:new l};let a=[n.baseClassName+"_wrapper"];n.additionalClasses&&(a=a.concat((n.additionalClasses+"").split(" ").filter((e=>e))));const u={top:"-9999px"};let c=s.el;c instanceof Element?(n.elOriginalDisplay=c.style.display||"",c.classList.add(...a),i.setCssProps(c,u),n.ownsEl=!1):c=t.createElement("div",{class:a.join(" "),css:u});let p=t.createElement("ul");p.role="menu",s.searchable&&(n.headerEl=t.createElement("div",{class:n.baseClassName+"_header"}),n.searchInput=t.createElement("input",{type:"search",role:"searchbox",tabindex:"0",autocorrect:"off",autocomplete:"off",autocapitalize:"off",spellcheck:"false","aria-autocomplete":"list"}),n.headerEl.appendChild(n.searchInput),c.appendChild(n.headerEl)),c.appendChild(p),n.el=c,n.menuEl=p,n.items=[],n.groupCount=0,n.mouseHandled=!1,n.virtualListHelper=new r({list:n.menuEl,virtual:!0,buffer:5,estimatedItemHeight:s.estimatedItemHeight||20,itemElementCreatorFn:()=>t.createElement("li",{role:"menuitem",tabIndex:n.capturesFocus?-1:null}),onItemRender:(e,t)=>{let s;if(t===h)s={label:n.lastMeasureLongestLabelText,value:"Measure",[d]:{[n.labelProp]:n.lastMeasureLongestLabelText,[n.valueProp]:"Measure"}},e.setAttribute("aria-hidden","true");else{const e=n.filteredItems??n.items;s=0===e.length&&n.noResultsText?{value:m,label:n.noResultsText,_nointeraction:!0,_nocheck:!0,[d]:m}:e[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[d]=s}}),this._setupUnrenderFunction(),n.capturesFocus&&(c.tabIndex=0),this.setFilterThrottleWindow(s.filterThrottleWindow),this.setNoResultsText(s.noResultsText),this._hookMouseEvents(),this._hookTouchEvents(),this._hookFocusEvents(),this._hookKeyEvents(),this._hookSearchEvents(),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?.parentNode&&s.remove(e.el),e.currentSubDropList&&(e.currentSubDropList?.droplist?.destroy(),e.currentSubDropList=null),e.throttledRefilterItems&&e.throttledRefilterItems.cancel(),!e.ownsEl){for(let t of Array.from(e.el.classList))t.startsWith(e.baseClassName)&&e.el.classList.remove(t);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),delete e.lastPositionOptions,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){return this._p.unrenderItem=e,this._setupUnrenderFunction(),this}setRenderNoResultsItem(e,t){const s=this._p;return s.renderNoResultsItem=e,s.unrenderNoResultsItem=t,this._setupUnrenderFunction(),this}_setupUnrenderFunction(){const e=this._p;if("function"==typeof e.unrenderItem||"function"==typeof e.unrenderNoResultsItem){const t=e.unrenderItem,s=e.unrenderNoResultsItem;e.virtualListHelper.setOnItemUnrender((i=>{const l=i[d];if(l===m)try{s(l,i)}catch(e){console.error(e)}else try{t(l[d],i)}catch(e){console.error(e)}delete i[d],e.focusItemEl===i&&(e.focusItemEl=null)}))}else e.virtualListHelper.setOnItemUnrender((t=>{delete t[d],e.focusItemEl===t&&(e.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+"_wrapper"];"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.filteredItems??e.items)[e.focusItemIndex];e.focusItemIndex=-1,s&&(e.currentSubDropList&&this._hideSublist(),this._trigger("itemblur",{value:s.value,item:s[d]??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[d]??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[d])._nointeraction&&(i.multi||this._setSingleSelectedItemEl(i.focusItemEl),this._trigger("select",{value:e?e.value:void 0,item:e[d]??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],u={[d]: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++}if(s.filteredItems)s.needsRefilter=!0;else{let i=s.hasNoResultsItem;s.hasNoResultsItem=0===s.items.length&&!!s.noResultsText,s.hasNoResultsItem?s.virtualListHelper.setCount(1).render():(i&&s.virtualListHelper.removeItemsAt(1,0),s.virtualListHelper.addItemsAt(e.length,-1===t?t:t-e.length).render())}return this}setItems(e){const t=this._p;return t.items.length=0,t.filteredItems=null,t.groupCount=0,t.hasNoResultsItem=!!t.noResultsText,t.virtualListHelper.setCount(t.hasNoResultsItem?1: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);l[d]=t,p.call(t,s.labelProp)&&(l.label=t[s.labelProp]),p.call(t,s.valueProp)&&(l.value=t[s.valueProp]),p.call(t,"_nocheck")&&(l._nocheck=!!t._nocheck),p.call(t,"_nointeraction")&&(l._nointeraction=!!t._nointeraction),p.call(t,"_subitems")&&(l._subitems=!!t._subitems),s.multi&&p.call(t,"_checked")&&(l._checked=!!t._checked),p.call(t,"_group")&&!!t._group!==l._group&&(l._group?s.groupCount--:s.groupCount++,t._group=!!l._group),p.call(t,"_child")&&(l._child=!!t._child);let r=i;return s.filteredItems&&(r=s.filteredItems.indexOf(l),-1!==r&&s.filteredItems.splice(r,1)),-1!==r&&s.virtualListHelper.isItemRendered(r)&&s.virtualListHelper.refreshItemAt(r).render(),this}removeItem(e,t){const s=this._p;let i=this.itemIndexByValueOrLabel(e,t);if(-1===i)return this;let l=s.items.splice(i,1);l[0]._group&&s.groupCount--;let r=i;return s.filteredItems&&(r=s.filteredItems.indexOf(l[0]),-1!==r&&s.filteredItems.splice(r,1)),-1!==r&&(s.hasNoResultsItem=0===(s.filteredItems??s.items).length&&!!s.noResultsText,s.hasNoResultsItem?s.virtualListHelper.setCount(1).render():s.virtualListHelper.removeItemsAt(r,1).render()),this}removeAllItems(){const e=this._p;return e.items.length=0,e.filteredItems=null,e.groupCount=0,e.hasNoResultsItem=!!e.noResultsText,e.virtualListHelper.setCount(e.hasNoResultsItem?1: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[d]}return null}itemIndexByValue(e){const t=this._p.items;for(let s=0,i=t.length;s<i;s++)if(t[s].value===e)return s;return-1}filteredItemIndexByValue(e){const t=this._p,s=t.filteredItems??t.items;for(let t=0,i=s.length;t<i;t++)if(s[t].value===e)return t;return-1}itemIndexByValueOrLabel(e,t){const s=this._p.items;for(let i=0,l=s.length;i<l;i++){let l=s[i];if(l.value===e||l.label===t)return i}return-1}filteredItemIndexByValueOrLabel(e,t){const s=this._p,i=s.filteredItems??s.items;for(let s=0,l=i.length;s<l;s++){let l=i[s];if(l.value===e||l.label===t)return s}return-1}itemIndexByItem(e){const t=this._p.items;for(let s=0,i=t.length;s<i;s++)if(t[s][d]===e)return s;return-1}filteredItemIndexByItem(e){const t=this._p,s=t.filteredItems??t.items;for(let t=0,i=s.length;t<i;t++)if(s[t][d]===e)return t;return-1}items(){return this._p.items.map((e=>e[d]))}itemsReference(){return this._p.items}itemCount(){return this._p.items.length}itemAtIndex(e){return this._p.items[e]?.[d]}filteredItemAtIndex(e){const t=this._p,s=t.filteredItems??t.items;return s[e]?.[d]}setPositionOptionsProvider(e){const t=this._p;return t.positionOptionsProvider===e||(t.positionOptionsProvider=e??null,this.relayout()),this}getPositionOptionsProvider(){return this._p.positionOptionsProvider}setSearchTerm(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const s=this._p;return s.searchInput&&(s.searchInput.value=e),t&&(s.filterTerm=e.trim(),s.filteredItems=null,this._trigger("search",{value:e}),s.throttledRefilterItems()),this}isFilterPending(){const e=this._p;return!!(e.throttledRefilterItems.isScheduled()||!e.filteredItems&&(e.filterTerm||e.filterOnEmptyTerm&&e.filterFn))}_refilterItems(){const e=this._p,t=e.filterTerm,s=e.filterGroups,i=e.filterEmptyGroups;if(t||e.filterOnEmptyTerm&&e.filterFn){let l;if("function"==typeof e.filterFn&&(l=e.filterFn(e.items,t)),!Array.isArray(l))if(t){const i=new RegExp(a(t),"i"),r=e.labelProp;l=e.items.filter((e=>!(s||!e._group)||i.test(e[r])))}else l=null;if(e.filteredItems=l,l&&i){let e=-1,t=l.length;for(let s=0;s<t;s++)l[s]._group&&(-1!==e&&e===s-1&&(l.splice(e,1),s--,t--),e=s);-1!==e&&e===t-1&&l.splice(e,1)}}else e.filteredItems=null;this.needsRefilter=!1;const l=e.filteredItems??e.items;e.hasNoResultsItem=0===l.length&&!!e.noResultsText,e.virtualListHelper.setCount(l.length+(e.hasNoResultsItem?1:0)).render(),this._trigger("itemschanged",{term:t,mutated:!1,count:this.getFilteredItemCount()}),this.relayout()}invokeRefilter(){const e=this._p;return e.filterTerm||e.filterOnEmptyTerm||e.filteredItems?(e.filteredItems=null,e.throttledRefilterItems(),this):this}getFilteredItemCount(){const e=this._p;return e.needsRefilter&&this._refilterItems(),e.filteredItems?e.filteredItems.length:e.items?e.items.length:0}setNoResultsText(e){return this._p.noResultsText=e,this}getNoResultsText(){return this._p.noResultsText}setFilterThrottleWindow(e){const t=this._p;t.filterThrottleWindow=e;let s=!!t.throttledRefilterItems&&t.throttledRefilterItems.isScheduled();return t.throttledRefilterItems&&t.throttledRefilterItems.cancel(),t.throttledRefilterItems=u((()=>this._refilterItems()),t.filterThrottleWindow,!0),s&&t.throttledRefilterItems(),this}getFilterThrottleWindow(){return this._p.filterThrottleWindow}setFilterOnEmptyTerm(e){const t=this._p;return t.filterOnEmptyTerm===e||(t.filterOnEmptyTerm=e,t.throttledRefilterItems()),this}getFilterOnEmptyTerm(){return this._p.filterOnEmptyTerm}setFilterGroups(e){const t=this._p;return t.filterGroups===e||(t.filterGroups=e,t.throttledRefilterItems()),this}getFilterGroups(){return this._p.filterGroups}setFilterEmptyGroups(e){const t=this._p;return t.filterEmptyGroups===e||(t.filterEmptyGroups=e,t.throttledRefilterItems()),this}getFilterEmptyGroups(){return this._p.filterEmptyGroups}setFilterFn(e){const t=this._p;return t.filterFn===e||(t.filterFn=e,t.throttledRefilterItems()),this}getFilterFn(){return this._p.filterFn}relayout(e){const t=this._p,l=t.el,r=t.menuEl;if(!this.isVisible())return this;let n=window;e||(e=t.positionOptionsProvider?.()??t.lastPositionOptions),e||(e={targetOffset:{left:window.innerWidth/2,top:window.innerHeight/2},targetWidth:0,targetHeight:0,position:{x:"center",y:"center"},anchor:{x:"center",y:"center"},targetRtl:"rtl"===getComputedStyle(document.body).direction});let o={},a=e.targetOffset||i.getElementOffset(e.target);o.left=a.left,o.top=a.top,o.height=null==e.targetHeight?i.getElementHeight(e.target,!0,!0):e.targetHeight,o.width=null==e.targetWidth?i.getElementWidth(e.target,!0,!0):e.targetWidth,o.bottom=o.top+o.height;let u={};u.top=n.pageYOffset,u.left=n.pageXOffset,u.width=n.innerWidth,u.height=n.innerHeight,u.bottom=u.top+u.height,u.right=u.left+u.width;let d=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,h=o.top-u.top,m=u.bottom-o.bottom;const p=getComputedStyle(l);let _="border-box"===p.boxSizing,g=(parseFloat(p.paddingTop)||0)+(parseFloat(p.paddingBottom)||0),f=(parseFloat(p.borderTopWidth)||0)+(parseFloat(p.borderBottomWidth)||0),I=0;t.headerEl&&(I=i.getElementHeight(t.headerEl,!0,!0)),t.virtualListHelper.isVirtual()?c=t.virtualListHelper.estimateFullHeight()+g+f+I:(l.style.height="",r.style.height="",l.style.top="-9999px",c=Math.max(i.getElementHeight(t.el),r.scrollHeight),c+=g+f);let b=parseFloat(p.maxHeight);isNaN(b)||(_||(b+=g+f),c=Math.min(c,b));let v=h>=c,y=m>=c,E=t.currentDirection||d;"above"===E&&!v&&y?E="below":"below"===E&&!y&&v?E="above":v&&y?E!==d&&("above"===d&&h>=m||"below"===d&&m>=h)&&(E=d):v||y||(h>m?E="above":m>h&&(E="below")),t.currentDirection=E;let C={width:i.getElementWidth(l,!0,!0),height:Math.min(c,Math.max(h,m,0))},L=void 0!==e.targetRtl?e.targetRtl:null!=e.target&&"rtl"===getComputedStyle(e.target).direction,S="rtl"===getComputedStyle(document.documentElement).direction,k=i.anchoredPosition(e.target,e.anchor?e.anchor.x:"start",e.anchor?e.anchor.y:"bottom",o,L),x=i.anchoredPosition(l,e.position?e.position.x:"start",e.position?e.position.y:"top",C,L),w="top"===x.ySpec&&"above"===E||"bottom"===x.ySpec&&"below"===E||"bottom"!==x.ySpec&&"top"!==x.ySpec&&"above"===E,T=void 0!==n.pageXOffset?n.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft;T=Math.abs(T),S&&(T=document.documentElement.scrollWidth-T-document.documentElement.clientWidth);let N=T,P=document.documentElement.clientWidth+T-C.width,F={position:"absolute",left:o.left,top:o.top+(w?k.bottom-x.bottom:k.top-x.top)};if(S&&(F.left-=document.documentElement.clientWidth-document.documentElement.scrollWidth),F.left+=k.left-x.left,e.offset&&(e.offset.y&&(w?F.top-=e.offset.y:F.top+=e.offset.y),e.offset.x)){let t="rtl"===p.direction;F.left+=t?-e.offset.x:e.offset.x}if(t.autoFlipDirection&&("right"===x.xSpec&&F.left<N&&(Math.max(F.left,N)+C.width-o.left)/o.width>.5||"left"===x.xSpec&&F.left>P&&(Math.min(F.left,P)-o.left)/o.width<.5)&&(F.left-=k.left-x.left,F.left+=k.right-x.right),t.constrainToWindow)for(let e of S?["min","max"]:["max","min"])"min"===e&&F.left<N?F.left=N:"max"===e&&F.left>P&&(F.left=P);if(F.left+="px",F.top+="px",i.setCssProps(l,F),i.setElementHeight(l,C.height,!0,!0),r!==l){let e=C.height-I-f-g;i.setElementHeight(r,e,!0,!0)}return 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"===E),s.toggleClass(e.target,`has_${t.baseClassName}_above`,"above"===E),s.toggleClass(l,`${t.baseClassName}__is_below`,"below"===E),s.toggleClass(l,`${t.baseClassName}__is_above`,"above"===E)),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[d];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[d]))}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()})})),t.needsRefilter&&this._refilterItems();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"),t.lastPositionOptions=null,void 0===e?e=t.positionOptionsProvider?.()??t.lastPositionOptions:t.lastPositionOptions=e,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,this.isFilterPending()&&(e.throttledRefilterItems.cancel(),e.needsRefilter=!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"))})):(t.parentNode&&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;if(t.filteredItems){const s=t.items[e];e=t.items.indexOf(s)}t.focusItemIndex=e;const s=t.filteredItems??t.items;let i=null;e>-1&&(i=s[e]),i&&i._nointeraction&&(i=null),e>-1&&this._scrollItemIndexIntoView(e);let l=i?t.virtualListHelper.getItemElementAt(e):null;if(t.focusItemEl!==l&&(t.focusItemEl&&(t.focusItemEl.classList.remove(`${t.baseClassName}__item_focus`),t.focusItemEl=null),l)){l.classList.add(`${t.baseClassName}__item_focus`),t.focusItemEl=l;const e=l[d];this._trigger("itemfocus",{value:e.value,item:e[d]??e,event:null,el:l}),this._showSublist(e,l)}return this}_showSublist(e,t){if(!e._subitems?.length)return;const s=this._p,i=new g({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,positionOptionsProvider:()=>s.currentSubDropList.showOptions});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[d]??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(),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()))}}setFocusedItem(e){const t=this._p;let s=e._nointeraction?-1:this._getItemIndex(e);const i=t.items;return s>-1&&i[s]._nointeraction&&(s=-1),this.setFocusedItemAtIndex(s)}setFocusedItemByValue(e){return this.setFocusedItemAtIndex(this.itemIndexByValue(e))}setSingleSelectedItemAtIndex(e){const t=this._p;let s=null;if(e>-1&&!t.items[e]._nointeraction){if(t.filteredItems){const s=t.items[e];e=t.filteredItems.indexOf(s)}e>-1&&(s=t.virtualListHelper.getItemElementAt(e))}return this._setSingleSelectedItemEl(s),this}setSingleSelectedItem(e){const t=this._p;let s=e._nointeraction?-1:this._getItemIndex(e);const i=t.items;return s>-1&&i[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,t=e.filteredItems??e.items;return 0===e.focusItemIndex&&e.focusItemIndex<t.length}isLastItem(){const e=this._p,t=e.filteredItems??e.items;return e.focusItemIndex>-1&&e.focusItemIndex===t.length-1}scrollItemIndexIntoView(e){const t=this._p;if(this._hasScroll()){if(t.filteredItems){const s=t.items[e];e=t.items.indexOf(s)}-1!==e&&this._scrollItemIndexIntoView(e)}return this}_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()}}}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.filteredItems??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=>{if(t.target===this.el&&e.searchable&&e.searchInput.focus(),t.relatedTarget&&this.elContains(t.relatedTarget,!0)&&this.elContains(t.target,!0))return;let s=e.focusItemEl||e.el.firstChild;this._focus(t,s,null,!1)}),!0).add(e.el,"blur",(e=>{e.relatedTarget&&this.elContains(e.relatedTarget,!0)&&this.elContains(e.target,!0)||setTimeout((()=>{this[c]||document.activeElement&&this.elContains(document.activeElement,!0)||(this._delayBlurItemOnBlur(),this._trigger("blur",e))}))}),!0)}_hookKeyEvents(){const e=this._p;e.sink.add(e.el,"keydown",(e=>this._keydown(e)))}_hookSearchEvents(){const e=this._p;e.searchInput&&e.sink.add(e.searchInput,"input",(()=>{e.filterTerm=e.searchInput.value.trim(),e.filteredItems=null,this._trigger("search",{value:e.searchInput.value}),e.throttledRefilterItems()}))}_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.filteredItems??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;t.searchable||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;const u=t.filteredItems??t.items;for(let e=0,t=u.length;e<t&&(-1!==n&&e<o||(i=u[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,t=u.length;e<t&&(-1!==n&&e<o||(i=u[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:u[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&&t?.[d]?.[d]===m&&(s=void 0),s>-1?this.scrollItemIndexIntoView(s):void 0===s&&(t=null);let r=t||l.virtualListHelper.getItemElementAt(s);if(!r||r[d]._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.filteredItems??l.items)[s];this._trigger("itemfocus",{value:n.value,item:n[d]??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;const o=s.filteredItems??s.items;if("first"===e)r=0,n=!1;else if("last"===e)r=o.length-1,n=!0;else if("prev"===e){if(!this.hasFocusedItem())return this._move("last",t);r=s.focusItemIndex-1,-1===r&&(r=o.length-1),n=!0}else if("next"===e){if(!this.hasFocusedItem())return this._move("first",t);r=s.focusItemIndex+1,r===o.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>=o.length&&(r=o.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 a=o.length;if(r>=a)return;let u=o[r],d=r;for(;u&&u._nointeraction&&(n?(r--,-1===r&&(r=a)):(r++,r===a&&(r=0)),u=o[r],r!==d););l=s.virtualListHelper.getItemElementAt(r),this._focus(t,l||null,r,!1),this.isVisible()||this.triggerItemSelection(u,t)}_hasScroll(){const e=this._p.menuEl;return e.clientHeight<e.scrollHeight}_updateGroupStateForItem(e){const t=this._p;if(!t.multi)return this;if(e._group){let i=0;if(t.autoCheckGroupChildren){let l=t.filteredItems??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[d]??n,checked:n._checked,isGroup:n._group,isCheckingGroup:!0})}}this._trigger("groupcheck",{value:e.value,item:e[d]??e,affectedItems:i})}else if(t.groupCount>0&&t.autoCheckGroupChildren){let s=t.filteredItems??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.filteredItems??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 u=o&&!a;if(!!r._checked!==u){r._checked=u;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[d]??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(h,!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.filteredItems??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,l=e[d];if(l===m)return!(!i.renderNoResultsItem||!1===i.renderNoResultsItem(e,s))||void s.appendChild(t.createElement("div",{class:"droplist-no-results-content",textContent:i.noResultsText}));i.renderItem&&!1!==i.renderItem(l||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&&l||(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 f=Symbol("item"),I=Symbol("destroyed"),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)},E=["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};e.DropList=g,e.SelectBox=class{constructor(e){const i={...C};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,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,on:i.on||null,silenceEvents:!0,mitt:o(),isLoadingMode:!!i.isLoadingMode,items:[],itemsChanged:!0,sink:new l,resizeObserver:null,selectedItems:[],selectedValues:[],selectionChanged:!0,resortBySelectionNeeded:!1,filterThrottleWindow:i.filterThrottleWindow,filterOnEmptyTerm:i.filterOnEmptyTerm,filterFn:null,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 i.filterFn&&this.setFilterFn(i.filterFn),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(),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.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.dropList?e.dropList.getFilteredItemCount():e.items?e.items.length:0}isFilterPending(){const e=this._p;return!0===e.dropList?.isFilterPending()}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.dropList?.setSearchTerm(s.filterTerm,t)),this):this}getSearchTerm(){const e=this._p;return e.input?e.input.value:""}invokeRefilter(){const e=this._p;return e.dropList?.invokeRefilter(),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.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.dropList?.setFilterGroups(e),t.dropList?.setFilterEmptyGroups(!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.dropList?.setNoResultsText(e),this}getNoResultsText(){return this._p.noResultsText}setFilterThrottleWindow(e){const t=this._p;return t.filterThrottleWindow=e,t.dropList?.setFilterThrottleWindow(e),this}getFilterThrottleWindow(){return this._p.filterThrottleWindow}setFilterOnEmptyTerm(e){const t=this._p;return t.filterOnEmptyTerm===e||t.dropList?.setFilterOnEmptyTerm(e),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||(e||(e=(e,s)=>{const i=new RegExp(a(s),"i"),l=t.labelProp,r=t.multiItemLabelProp;return t.items.filter((e=>!(t.treatGroupSelectionAsItems||!e._group)||i.test(e[l]||e[r])))}),t.filterFn=e,t.dropList?.setFilterFn(e)),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._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;e.valueProp,e.dropList&&(e.dropList.destroy(),delete e.dropList,e.itemsChanged=!0,e.selectionChanged=!0,e.resortBySelectionNeeded=!0);const s=e.renderNoResultsItem,i=e.unrenderNoResultsItem,l=(e.listOptions||{}).renderItem,r=(e.listOptions||{}).unrenderItem,n=s||l?(e,t)=>!!l&&l(e,t):null,o=i||l?(e,t)=>!!r&&r(e,t):null,a=e.dropList=new g({virtualMinItems:10,...e.listOptions,renderItem:n,unrenderItem:o,multi:e.multi,capturesFocus:!1,labelProp:e.labelProp,valueProp:e.valueProp,searchable:!1,noResultsText:e.noResultsText,filterThrottleWindow:e.filterThrottleWindow,filterOnEmptyTerm:e.filterOnEmptyTerm,filterGroups:e.treatGroupSelectionAsItems,filterEmptyGroups:e.treatGroupSelectionAsItems,filterFn:e.filterFn,positionOptionsProvider:()=>this._getDropListPositionOptions(),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:a}),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===a.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();break;case"search":this._trigger("search",s);break;case"itemschanged":this._trigger("itemschanged",s)}}});e.sink.add(a.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))||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.dropList?.setSearchTerm(e.filterTerm,!0),this._trigger("search",{value:e.input.value}))})).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.dropList.getFilteredItemCount();if(s+(e.clearable?1:0)>1){let i=t.length>0?e.dropList.filteredItemIndexByItem(t[0])-1:s-1;-1!==i||e.clearable||(i=s-1);let l=-1===i?null:e.dropList.filteredItemAtIndex(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.dropList.getFilteredItemCount();if(s+(e.clearable?1:0)>1){let i=t.length>0?e.dropList.filteredItemIndexByItem(t[0])+1:0;i===s&&(i=e.clearable?-1:0);let l=-1===i?null:e.dropList.filteredItemAtIndex(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.itemsChanged||e.selectionChanged)&&(e.dropList._lastSerializedBox=null),e.itemsChanged){let s=e.items;(e.sortListItems||e.sortListCheckedFirst&&e.multi)&&(s=this._sortItems(s,e.sortListItems,e.sortListCheckedFirst&&e.multi,e.splitListCheckedGroups)),t.setItems(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())}_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[f][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?.[f]?.[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[f],e.singleWrapper)}catch(e){console.error(e)}delete e.singleWrapper[f],e.singleWrapper.innerHTML=""}}_removeMultiItemElementByIndex(e){const t=this._p,i=t.multiItemEls;if(i.length>e){const l=i[e],r=l[f];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[f]=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[f]=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[f],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[f]===e)),-1===n&&(n=s.multiItemEls.findIndex((e=>e[f][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.dropList?.setSearchTerm("",!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,E)),r.textContent=n,t.appendChild(r);const a=getComputedStyle(l),u=(parseFloat(a.paddingLeft)||0)+(parseFloat(a.paddingRight)||0),d=.75*(parseFloat(a["font-size"])||0)+u,c=i.getElementWidth(r,!0,!0),h=i.getElementWidth(l,!0,!0);let m=Math.max(c,d);if(m!==h){i.setElementWidth(l,m,!0,!0);let t=(parseFloat(a.borderLeftWidth)||0)+(parseFloat(a.borderRightWidth)||0),s=l.scrollWidth+t;if(s>m){let e=s-m;l.style.width=`${parseFloat(l.style.width)+e}px`,m+=e}if(e.singleWrapper&&(e.singleWrapper.style.width="",n)){let s=m-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(),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[f].value)return;const i=s[f],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 d=[],c=null,h=[d];const m=new Set(l.selectedValues);let p,_,g;for(_=0,g=e.length;_<g;_++)p=e[_],p._group&&d.length&&(d=[],h.push(d)),d.push(p);d.length||(h.length=0),a&&e.length>0&&!e[0]._group&&(c=h[0].filter((e=>a.has(e[o]))),c.length>0?(h[0]=h[0].filter((e=>!a.has(e[o]))),0===h[0].length&&h.shift()):c=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)})),c&&h.unshift(c);const f=[],I=[];for(let e=0,i=h.length;e<i;e++)d=h[e],d.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})),I.push(d);if(s&&i){let e;for(let t=0,s=h.length;t<s;t++)if(d=h[t],d!==c){e=null;for(let t=0,s=d.length;t<s;t++)if(p=d[t],!p._group){if(!m.has(p[l.valueProp]))break;e||(e=[],d[0]._group&&e.push(d[0])),e.push(p),d.splice(t--,1),s--}if(e&&(f.push(e),0===d.length||1===d.length&&d[0]._group)){h.splice(t--,1),s--;let e=I.indexOf(d);-1!==e&&I.splice(e,1)}}else{f.push(c);let e=I.indexOf(c);-1!==e&&I.splice(e,1)}}const b=[];b.length=e.length;let v=0;h=f.length?f.concat(I):I;for(let e=0,t=h.length;e<t;e++)for(d=h[e],_=0,g=d.length;_<g;_++)b[v++]=d[_];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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danielgindi/selectbox",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "A collection of dom utilities. So you can work natively with the dom without dom frameworks.",
5
5
  "main": "dist/lib.cjs.min.js",
6
6
  "module": "lib/index.js",
@@ -51,7 +51,7 @@
51
51
  "sass": "^1.85.0"
52
52
  },
53
53
  "dependencies": {
54
- "@danielgindi/dom-utils": "^1.0.10",
54
+ "@danielgindi/dom-utils": "^1.0.11",
55
55
  "@danielgindi/virtual-list-helper": "^1.0.13",
56
56
  "fast-deep-equal": "^3.1.3",
57
57
  "keycode-js": "^3.1.0",