@danielgindi/selectbox 2.0.21 → 2.0.23
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/css/selectbox.css +1 -1
- package/css/selectbox.css.map +1 -1
- package/dist/lib.cjs.js +2 -2
- package/dist/lib.cjs.js.map +1 -1
- package/dist/lib.cjs.min.js +2 -2
- package/dist/lib.cjs.min.js.map +1 -1
- package/dist/lib.es6.js +2 -2
- package/dist/lib.es6.js.map +1 -1
- package/dist/lib.es6.min.js +2 -2
- package/dist/lib.es6.min.js.map +1 -1
- package/dist/lib.umd.js +2 -2
- package/dist/lib.umd.js.map +1 -1
- package/dist/lib.umd.min.js +2 -2
- package/dist/lib.umd.min.js.map +1 -1
- package/lib/DropList.js +1 -1
- package/package.json +1 -1
- package/scss/selectbox.scss +3 -2
package/dist/lib.es6.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @danielgindi/selectbox 2.0.
|
|
2
|
+
* @danielgindi/selectbox 2.0.23
|
|
3
3
|
* git://github.com/danielgindi/selectbox.git
|
|
4
4
|
*/
|
|
5
|
-
import{createElement as e,closestUntil as t,setElementAttrs as s,next as i,prev as l}from"@danielgindi/dom-utils/lib/Dom";import{remove as r,toggleClass as n,before as o,append as a,getRootNode as u}from"@danielgindi/dom-utils/lib/DomCompat";import{setCssProps as c,getElementOffset as d,getElementHeight as h,getElementWidth as m,anchoredPosition as p,setElementHeight as _,parseTransition as g,setElementWidth as f,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_BACK_SPACE as C,VALUE_ESCAPE as S,VALUE_SPACE as L,VALUE_ENTER as k,VALUE_RIGHT as x,VALUE_LEFT as w,VALUE_DOWN as E,VALUE_UP as T,VALUE_END as N,VALUE_HOME as F,VALUE_PAGE_DOWN as P,VALUE_PAGE_UP as W,VALUE_TAB as M,VALUE_DELETE as O}from"keycode-js";import V from"mitt";var B=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");const R=(e,t,s)=>{let i,l,r,n,o=0;s||(s={});const a=()=>{o=!1===s.leading?0:Date.now(),i=null,n=e.apply(l,r),i||(l=r=null)},u=function(){const u=Date.now();o||!1!==s.leading||(o=u);const c=t-(u-o);return l=this,r=arguments,c<=0||c>t?(i&&(clearTimeout(i),i=null),o=u,n=e.apply(l,r),i||(l=r=null)):i||!1===s.trailing||(i=setTimeout(a,c)),n};return u.cancel=()=>{clearTimeout(i),o=0,i=l=r=null},u.isScheduled=()=>!!i,u},$=Symbol("item"),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,isHeaderVisible:!1,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,isHeaderVisible:s.isHeaderVisible,silenceEvents:!0,mitt:V(),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),c(n,r),i.ownsEl=!1):n=e("div",{class:l.join(" "),css:r}),i.el=n;let o=e("ul");o.role="menu",i.menuEl=o,i.headerEl=e("div",{class:i.baseClassName+"_header"}),s.searchable&&this.setSearchable(!0),s.isHeaderVisible&&this.setHeaderVisible(s.isHeaderVisible),n.appendChild(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.filteredItems??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;const 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++),"number"==typeof a._level&&(u._level=a._level),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,"_level")&&(t._level=l._level),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]?.[$]}itemElementAtIndex(e){const t=this._p;return t.filteredItems?(e=t.filteredItems.indexOf(this._p.items[e]),t.virtualListHelper.getItemElementAt(e)??null):this.filteredElementItemAtIndex(e)}filteredElementItemAtIndex(e){return this._p.virtualListHelper.getItemElementAt(e)??null}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.map(e=>{const t=e[$];return void 0!==t?(t[$]=Object.seal({[$]:e}),t):e}),t),Array.isArray(l)&&(l=l.map(t=>{let s=t[$]?.[$];return s||(s={[$]:t,label:t[e.labelProp],value:t[e.valueProp],_nocheck:!!t._nocheck,_nointeraction:!!t._nointeraction,_subitems:t._subitems,_group:!!t._group,_level:!!t._level,_checked:!!t._checked}),s}))),!Array.isArray(l))if(t){const i=new RegExp(B(t),"i");l=e.items.filter(e=>!(s||!e._group)||i.test(e.label))}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;e.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}rushRefilter(){return this._p.needsRefilter&&this._refilterItems(),this}getFilteredItemCount(){const e=this._p;return this.rushRefilter(),e.filteredItems?e.filteredItems.length:e.items?e.items.length:0}setNoResultsText(e){const t=this._p;return t.noResultsText=e,t.hasNoResultsItem&&t.virtualListHelper.refreshItemAt(0).render(),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=R(()=>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||d(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()&&(i.style.height=Math.min(s.clientHeight,document.body.clientHeight)+"px",t.virtualListHelper.render()),e.updateWidth||"number"==typeof e.updateWidth?this._updateWidth(e):this._updateWidth();let g,f=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),C=(parseFloat(b.borderTopWidth)||0)+(parseFloat(b.borderBottomWidth)||0),S=0;t.headerEl&&(S=h(t.headerEl,!0,!0)),t.virtualListHelper.isVirtual()?g=t.virtualListHelper.estimateFullHeight()+y+C+S:(s.style.height="",i.style.height="",s.style.top="-9999px",g=Math.max(h(t.el),i.scrollHeight),g+=y+C);let L=parseFloat(b.maxHeight);isNaN(L)||(v||(L+=y+C),g=Math.min(g,L));let k=f>=g,x=I>=g,w=t.currentDirection||u;"above"===w&&!k&&x?w="below":"below"===w&&!x&&k?w="above":k&&x?w!==u&&("above"===u&&f>=I||"below"===u&&I>=f)&&(w=u):k||x||(f>I?w="above":I>f&&(w="below")),t.currentDirection=w;let E={width:m(s,!0,!0),height:Math.min(g,Math.max(f,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),W="top"===P.ySpec&&"above"===w||"bottom"===P.ySpec&&"below"===w||"bottom"!==P.ySpec&&"top"!==P.ySpec&&"above"===w,M=void 0!==l.pageXOffset?l.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft;M=Math.abs(M),N&&(M=document.documentElement.scrollWidth-M-document.documentElement.clientWidth);let O=M,V=document.documentElement.clientWidth+M-E.width,B={position:"absolute",left:r.left,top:r.top+(W?F.bottom-P.bottom:F.top-P.top)};if(N&&(B.left-=document.documentElement.clientWidth-document.documentElement.scrollWidth),B.left+=F.left-P.left,e.offset&&(e.offset.y&&(W?B.top-=e.offset.y:B.top+=e.offset.y),e.offset.x)){let t="rtl"===b.direction;B.left+=t?-e.offset.x:e.offset.x}if(t.autoFlipDirection&&("right"===P.xSpec&&B.left<O&&(Math.max(B.left,O)+E.width-r.left)/r.width>.5||"left"===P.xSpec&&B.left>V&&(Math.min(B.left,V)-r.left)/r.width<.5)&&(B.left-=F.left-P.left,B.left+=F.right-P.right),t.constrainToWindow)for(let e of N?["min","max"]:["max","min"])"min"===e&&B.left<O?B.left=O:"max"===e&&B.left>V&&(B.left=V);return B.left+="px",B.top+="px",c(s,B),_(s,E.height,!0,!0),i!==s&&_(i,E.height-S-C-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;this.rushRefilter();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),o=t.filteredItems?t.filteredItems.indexOf(l):i;if(l._group&&-1!==o&&s.push(o),l._checked===r)continue;if(l._checked=r,-1===o)continue;let a=t.virtualListHelper.getItemElementAt(o);a&&n(a,`${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;const 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()})}),this.rushRefilter();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`),g(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}setHeaderVisible(e){this.isHeaderVisible()!==!!e&&(e?this._p.el.insertBefore(this._p.headerEl,this._p.el.firstChild??null):this._p.headerEl.remove())}isHeaderVisible(){return!!this._p.headerEl.parentNode}getHeaderElement(){return this._p.headerEl}setSearchable(t){const s=this._p;!!s.searchInput!=!!t&&(t?(s.searchInput=e("input",{type:"search",role:"searchbox",tabindex:"0",autocorrect:"off",autocomplete:"off",autocapitalize:"off",spellcheck:"false","aria-autocomplete":"list"}),s.headerEl.appendChild(s.searchInput)):(s.searchInput.parentNode&&s.searchInput.remove(),s.searchInput=null),this.setHeaderVisible(t))}hasFocusedItem(){return this._p.focusItemIndex>-1}getFocusedItemIndex(){return this.hasFocusedItem()?this._p.focusItemIndex:-1}setFocusedItemAtIndex(e){const t=this._p;if(this.rushRefilter(),t.filteredItems){const s=t.filteredItems[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;this.rushRefilter();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.menuEl,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 W:case P:case F:case N:case T:case E:switch(t.lastKeyWasChar=!1,e.preventDefault(),e.key){case W:this.previousPage(e);break;case P:this.nextPage(e);break;case F:this._move("first",e);break;case N:this._move("last",e);break;case T:this.previous(e);break;case E:this.next(e)}break;case w:case x:if(t.lastKeyWasChar=!1,e.key===x&&"rtl"!==getComputedStyle(e.target).direction||e.key===w&&"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 k:t.lastKeyWasChar=!1,this.triggerItemSelection(null,e),e.preventDefault();break;case L:if("BUTTON"===e.target.tagName||"INPUT"===e.target.tagName&&t.lastKeyWasChar)return;this.toggleFocusedItem(),e.preventDefault();break;case S:t.lastKeyWasChar=!1,e.preventDefault(),this.hide();break;default:if("INPUT"===e.target.tagName||"TEXTAREA"===e.target.tagName){const s=e.key||String.fromCharCode(e.keyCode);t.lastKeyWasChar=1===s.length||e.key===C}t.searchable||this._keydownFreeType(e),s=!1}}_keydownFreeType(e){const t=this._p,s=e.key||String.fromCharCode(e.keyCode),i=1===s.length;if(t.lastKeyWasChar=i||e.key===C,!i)return;clearTimeout(t.filterTimer);let l,r=(t.previousFilter||"")+s,n=new RegExp(`^${B(r)}`,"i"),o=-1,a=t.focusItemIndex;const u=t.filteredItems??t.items;for(let e=0,t=u.length;e<t&&(-1!==o&&e<a||(l=u[e],!(n.test(l.label)&&(o=e,-1===a||e>=a))));e++);if(-1===o){r=s,n=new RegExp(`^${B(r)}`,"i");for(let e=0,t=u.length;e<t&&(-1!==o&&e<a||(l=u[e],!(n.test(l.label)&&(o=e,-1===a||e>=a))));e++);}if(o>-1){let s=t.virtualListHelper.getItemElementAt(o);this._focus(e,s||null,o,!0),this.isVisible()||this.triggerItemSelection(s?null:u[o],e),t.previousFilter=r,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=d(s.focusItemEl).top,r=h(s.el,!0);for(;;){if(i=s.focusItemEl.nextElementSibling,!i)return;if("LI"===i.tagName)if("prev_page"===e){if(d(i).top-t+r<=0)break}else if(d(i).top-t-r>=0)break}i&&(l=s.virtualListHelper.getItemIndexFromElement(i),void 0===l&&(l=-1))}r="prev_page"===e}let 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){const i=t.filteredItems??t.items;let l=i.indexOf(e);const r=e._level;for(let o=l+1,a=i.length;o<a;o++){let l=i[o];if(!l._child&&i[o-1]._child||(void 0===r?l._group||void 0!==l._level:l._level<=r))break;if(!!l._checked===e._checked)continue;l._checked=e._checked,s++;let a=t.virtualListHelper.getItemElementAt(o);a&&n(a,`${t.baseClassName}__item_checked`,e._checked),this._trigger("check",{value:l.value,item:l[$]??l,checked:l._checked,isGroup:l._group,isCheckingGroup:!0})}}this._trigger("groupcheck",{value:e.value,item:e[$]??e,affectedCount:s})}else if(t.groupCount>0&&t.autoCheckGroupChildren){const s=t.filteredItems??t.items;let 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;const i=s.filteredItems??s.items;let l=i[e];if(!l||!l._group)return this;let r,o=!1,a=!1;const u=l._level;for(let t=e+1,s=i.length;t<s&&(r=i[t],!(!r._child&&i[t-1]._child||(void 0===u?r._group||void 0!==r._level:r._level<=u)));t++)r._checked?o=!0:r._checked||(a=!0);if(!o&&!a)return this;let c=o&&!a;if(!!l._checked!==c){l._checked=c;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,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);f(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("destroyed"),j=Symbol("rest_multi_items"),q=!!("ontouchstart"in window||window.DocumentTouch&&window.document instanceof window.DocumentTouch||window.navigator.maxTouchPoints),Q=function(e,t){return e instanceof Element&&e.classList.contains(t)},X=["font-family","font-size","font-weight","font-size","letter-spacing","text-transform","word-spacing","text-indent","box-sizing","padding-left","padding-right"],Y={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",autoSelectTextOnCheck:!0,filterThrottleWindow:300,filterOnEmptyTerm:!1,labelProp:"label",valueProp:"value",multiItemLabelProp:"short_label",maxMultiItems:null,multiItemsRestLabelProvider:null,items:[],selectedValues:void 0,value:void 0,isLoadingMode:!1,closeListWhenLoading:!0,clearInputWhen:["single_close","multi_select_single"]};class J{constructor(t){const i={...Y};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,autoSelectTextOnCheck:i.autoSelectTextOnCheck,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,on:i.on||null,silenceEvents:!0,mitt:V(),isLoadingMode:!!i.isLoadingMode,closeListWhenLoading:!!i.closeListWhenLoading,clearInputWhen:Array.isArray(i.clearInputWhen)?i.clearInputWhen.slice(0):[],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)&&!Q(t,`${l.baseClassName}__search_field`)&&!Q(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[U])return;const s=t[0];e&&s.borderBoxSize[0].blockSize===e.borderBoxSize.blockSize&&s.borderBoxSize[0].inlineSize===e.borderBoxSize.inlineSize&&s.contentBoxSize[0].blockSize===e.contentBoxSize.blockSize&&s.contentBoxSize[0].inlineSize===e.contentBoxSize.inlineSize||(l.resizeObserver.unobserve(l.el),this._resizeInput(),requestAnimationFrame(()=>l.resizeObserver.observe(l.el))),e.borderBoxSize=s.borderBoxSize[0],e.contentBoxSize=s.contentBoxSize[0]}),l.resizeObserver.observe(l.el)}return this.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[U])return;this[U]=!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.sortListCheckedFirst===e||(t.sortListCheckedFirst=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}setAutoSelectTextOnCheck(e){return this._p.autoSelectTextOnCheck=e,this}getAutoSelectTextOnCheck(){return this._p.autoSelectTextOnCheck}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}setLabelProp(e){const t=this._p;return t.labelProp=e,t.dropList&&t.dropList.setLabelProp(e),this}setValueProp(e){const t=this._p;return t.valueProp===e||(t.valueProp=e,t.dropList&&t.dropList.setValueProp(e),this._updateItemByValueMap()),this}setMultiItemLabelProp(e){return this._p.multiItemLabelProp=e,this}setMaxMultiItems(e){return this._p.maxMultiItems=e,this}setMultiItemsRestLabelProvider(e){return this._p.multiItemsRestLabelProvider=e,this}setFilterFn(e){const t=this._p;return t.filterFn===e||(t.filterFn=e,e||(e=(e,s)=>{const i=new RegExp(B(s),"i"),l=t.labelProp,r=t.multiItemLabelProp;return t.items.filter(e=>!(t.treatGroupSelectionAsItems||!e._group)||i.test(e[l]||e[r]))}),t.actualFilterFn=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[U],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()):e.multi||void 0===this.getValue()||e.dropList.setFocusedItemByValue(this.getValue())),this}closeList(){const e=this._p;return this[U]?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&&t.closeListWhenLoading&&0===t.items.length&&this.isListOpen()?this.closeList():!t.isLoadingMode&&t.closeListWhenLoading&&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}setCloseListWhenLoading(e){return this._p.closeListWhenLoading=e,this}getCloseListWhenLoading(){return this._p.closeListWhenLoading}setClearInputWhen(e){return this._p.clearInputWhen=Array.isArray(e)?e.slice(0):[],this}getClearInputWhen(){return this._p.clearInputWhen}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.dropList=new K({virtualMinItems:10,searchable:!1,...e.listOptions,multi:e.multi,capturesFocus:!1,labelProp:e.labelProp,valueProp:e.valueProp,noResultsText:e.noResultsText,filterThrottleWindow:e.filterThrottleWindow,filterOnEmptyTerm:e.filterOnEmptyTerm,filterGroups:e.treatGroupSelectionAsItems,filterEmptyGroups:!e.treatGroupSelectionAsItems,filterFn:e.actualFilterFn,positionOptionsProvider:()=>this._getDropListPositionOptions(),on:(t,i)=>{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:s}),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?e.clearInputWhen.includes("multi_close")&&this._setInputText(""):(e.clearInputWhen.includes("single_close")&&this._setInputText(""),this._scheduleSync("render_base")),this._trigger("close"),this[U])return;this._stopTrackingPresence(),e.sink.remove(null,".trackposition");break;case"check":{if(!e.multi)return;e.autoSelectTextOnCheck&&e.input&&document.activeElement===e.input&&e.input.setSelectionRange(0,e.input.value.length);const t=i.item,l=i.value;let r=i.checked;if(i.isGroup&&!e.treatGroupSelectionAsItems)return;let n={value:l,item:t,cancel:!1,isCheckingGroup:i.isCheckingGroup};if(this._trigger((r?"addsel":"removesel")+":before",n),n.cancel)return void e.dropList.setItemChecked(l,!r);if(r)e.selectedItems.push(t),e.selectedValues.push(l);else{const t=e.selectedValues.indexOf(l);-1!==t&&(e.selectedItems.splice(t,1),e.selectedValues.splice(t,1))}const o=!!i.isCheckingGroup;e.showSelection?r?(1===s.itemCount()&&e.clearInputWhen.includes("multi_select_single")&&this._setInputText(""),e.sortSelectedItems?o||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),o||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),o||this._scheduleSync("render_base")):e.multi&&this._scheduleSync("syncPlaceholder"),this._trigger(r?"addsel":"removesel",{value:l,item:t,isCheckingGroup:i.isCheckingGroup})}break;case"groupcheck":if(!e.multi)return;e.autoSelectTextOnCheck&&e.input&&document.activeElement===e.input&&e.input.setSelectionRange(0,e.input.value.length),i.affectedCount&&this._scheduleSync(e.sortSelectedItems?"full":"render_base"),this._trigger("groupcheck",{value:i.value,item:i.item,affectedCount:i.affectedCount});break;case"select":{if(e.multi)return;const t=i.item,s=i.value;if(!this._performSelectWithEvent(t,s))return;if(this[U])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",i);break;case"itemschanged":this._trigger("itemschanged",i)}}});e.sink.add(s.el,"mousedown",e=>{t(e.target,"li",e.currentTarget)&&e.preventDefault()}),this._registerDropdownEvents()}_handleOnBlur(){const e=this._p;setTimeout(()=>{this[U]||e.disabled||(this._trigger("search:blur"),this[U]||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 W:case P:case T:case E:case F:case N:if((t.key===F||t.key===N)&&r&&!l){s._keydownFreeType(t);break}switch(e.lastKeyAllowsNonTypeKeys=!0,t.preventDefault(),t.key){case W:s.isVisible()&&s.previousPage(t);break;case P:s.isVisible()&&s.nextPage(t);break;case T:s.isVisible()?s.previous(t):this._movePrev();break;case E:s.isVisible()?s.next(t):this._moveNext();break;case F:s.goToFirst(t);break;case N:s.goToLast(t)}break;case L:l&&(e.lastKeyAllowsNonTypeKeys=!0,s.isVisible()&&s.hasFocusedItem()&&(i=!0,e.multi?s.toggleFocusedItem(t):s.triggerItemSelection(null,t),t.preventDefault()));break;case k: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!==k&&(t.key!==L||!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))}).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[U]||(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[U]&&(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[U]&&(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),t.invokeRefilter(),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[U])for(let s of e)switch(s.mode){case"full":this._syncFull(!0,!0);break;case"render_base":this._syncFull(!1,!1);break;case"render_items":this._syncFull(!0,!1);break;case"render_list":this._syncFull(!1,!0);break;case"render_clear":this._syncClearButton(),this._resizeInput();break;case"singleItem":this._syncSingleItem();break;case"syncPlaceholder":this._syncPlaceholder();break;case"removeMultiItemElement":if(t.showSelection)this._syncPlaceholder();else{const e=t.valueProp,i=s.data[e];let l=t.multiItemEls.findIndex(t=>t[$][e]===i);-1!==l&&this._removeMultiItemElementByIndex(l)}break;case"addMultiItemElement":t.showSelection?this._addMultiItemElement(s.data):this._syncPlaceholder();break;case"addOrUpdateMultiItemRestElement":t.showSelection?this._addMultiItemRestElement():this._syncPlaceholder();break;case"removeMultiItemRestElement":if(t.showSelection){let e=t.multiItemEls[t.multiItemEls.length-1];e?.[$]?.[t.valueProp]===j&&this._removeMultiItemElementByIndex(t.multiItemEls.length-1)}else this._syncPlaceholder();break;case"resize_input":this._resizeInput()}}_cleanupSingleWrapper(){const e=this._p;if(e.singleWrapper){if(e.unrenderSingleItem&&e.singleWrapper.childNodes.length>0)try{e.unrenderSingleItem(e.singleWrapper[$],e.singleWrapper)}catch(e){console.error(e)}delete e.singleWrapper[$],e.singleWrapper.innerHTML=""}}_removeMultiItemElementByIndex(e){const t=this._p,s=t.multiItemEls;if(s.length>e){const i=s[e],l=i[$];let n=l?.[t.valueProp]===j?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]===j?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]:j,[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[$]=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.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[$]=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===C&&(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[$],o=n[s.valueProp];if(void 0!==n)if(o===j){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`)),Q(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[$]===e),-1===n&&(n=s.multiItemEls.findIndex(e=>e[$][i]===r)),-1!==n&&this._removeMultiItemElementByIndex(n),t&&(this._setInputText(e[s.multiItemLabelProp]||e[l]),s.input.focus(),s.input.selectionStart=s.input.selectionEnd=s.input.value.length),this._scheduleSync("render_list")}_setInputText(e){const t=this._p;t.input.value=null==e?"":String(e),t.filterTerm="",t.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{c(i,b(s,X)),i.textContent=l,t.appendChild(i);const n=getComputedStyle(s),a=(parseFloat(n.paddingLeft)||0)+(parseFloat(n.paddingRight)||0),u=.75*(parseFloat(n["font-size"])||0)+a,d=m(i,!0,!0),h=m(s,!0,!0);let p=Math.max(d,u);if(p!==h){f(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&&f(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===C&&e.ctrlKey&&0===s.value.length)this.clear(),e.preventDefault();else if(e.key===C&&0===s.value.length){const s=t.multiItemEls[t.multiItemEls.length-1];if(!s||void 0===s[$].value)return;const i=s[$],l=i[t.valueProp];let r={value:l,item:i,cancel:!1};if(this._trigger("removesel:before",r),r.cancel)return;this._removeMultiItem(i,!0),this._trigger("removesel",{value:l,item:i}),e.preventDefault()}}_handleMultiKeydown(e){const s=this._p;if(s.disabled)return;const r="rtl"===getComputedStyle(s.el).direction;let n;if(e.key===(r?w:x))n=i(e.target,`.${s.baseClassName}__item,.${s.baseClassName}__search_wrapper`),Q(n,`${s.baseClassName}__search_wrapper`)&&(n=n.querySelector("input")),n&&n.focus(),e.preventDefault();else if(e.key===(r?x:w))n=l(e.target,`.${s.baseClassName}__item,.${s.baseClassName}__search_wrapper`),Q(n,`${s.baseClassName}__search_wrapper`)&&(n=n.querySelector("input")),n&&n.focus(),e.preventDefault();else if(e.key===C&&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!==C||(this._removeMultiItemFromEvent(t(e.target,`.${s.baseClassName}__item`,s.el),e),e.preventDefault())}_getDropListPositionOptions(){return{target:this._p.el,offset:{x:0,y:0},anchor:{x:"start",y:"bottom"},position:{x:"start",y:"top"},updateWidth:!0}}_startTrackingPresence(){const e=this._p;this._stopTrackingPresence(),e.presenceInt=setInterval(function(){u(e.el)!==document&&this.hide()},200)}_stopTrackingPresence(){const e=this._p;e.presenceInt&&(clearInterval(e.presenceInt),e.presenceInt=null)}_sortItems(e,t,s,i){const l=this._p;if(!t&&!s)return e;const r=l.labelProp,n=l.multiItemLabelProp,o=l.valueProp,a=l.stickyValues,u=l.sortItemComparator||((e,t)=>{if(null!==a){let s=a.has(e[o]),i=a.has(t[o]);if(s&&!i)return-1;if(!s&&i)return 1}const s=e[r]||e[n],i=t[r]||t[n];return s<i?-1:s>i?1:0});let c=[],d=null,h=[c];const m=new Set(l.selectedValues);let p,_,g;for(_=0,g=e.length;_<g;_++)p=e[_],p._group&&c.length&&(c=[],h.push(c)),c.push(p);c.length||(h.length=0),a&&e.length>0&&!e[0]._group&&(d=h[0].filter(e=>a.has(e[o])),d.length>0?(h[0]=h[0].filter(e=>!a.has(e[o])),0===h[0].length&&h.shift()):d=null),t&&h.sort((e,t)=>{if(e=e[0],t=t[0],null!==a){let s=a.has(e[o]),i=a.has(t[o]);if(s&&!i)return-1;if(!s&&i)return 1}return!e._group&&t._group?-1:e._group&&!t._group?1:u(e,t)}),d&&h.unshift(d);const f=[],I=[];for(let e=0,i=h.length;e<i;e++)c=h[e],c.sort((e,i)=>{if(e._group&&!i._group)return-1;if(!e._group&&i._group)return 1;if(s){const t=m.has(e[o]),s=m.has(i[o]);if(t&&!s)return-1;if(!t&&s)return 1}return t?u(e,i):0}),I.push(c);if(s&&i){let e;for(let t=0,s=h.length;t<s;t++){if(c=h[t],c===d){f.push(d);let e=I.indexOf(d);-1!==e&&I.splice(e,1);continue}e=null;for(let t=0,s=c.length;t<s;t++)if(p=c[t],!p._group){if(!m.has(p[l.valueProp]))break;e||(e=[],c[0]._group&&e.push(c[0])),e.push(p),c.splice(t--,1),s--}if(e&&(f.push(e),0===c.length||1===c.length&&c[0]._group)){h.splice(t--,1),s--;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(c=h[e],_=0,g=c.length;_<g;_++)b[v++]=c[_];return b}}export{K as DropList,J as SelectBox};
|
|
5
|
+
import{createElement as e,closestUntil as t,setElementAttrs as s,next as i,prev as l}from"@danielgindi/dom-utils/lib/Dom";import{remove as r,toggleClass as n,before as o,append as a,getRootNode as u}from"@danielgindi/dom-utils/lib/DomCompat";import{setCssProps as c,getElementOffset as d,getElementHeight as h,getElementWidth as m,anchoredPosition as p,setElementHeight as _,parseTransition as g,setElementWidth as f,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_BACK_SPACE as C,VALUE_ESCAPE as S,VALUE_SPACE as L,VALUE_ENTER as k,VALUE_RIGHT as x,VALUE_LEFT as w,VALUE_DOWN as E,VALUE_UP as T,VALUE_END as N,VALUE_HOME as F,VALUE_PAGE_DOWN as P,VALUE_PAGE_UP as W,VALUE_TAB as M,VALUE_DELETE as O}from"keycode-js";import V from"mitt";var B=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");const R=(e,t,s)=>{let i,l,r,n,o=0;s||(s={});const a=()=>{o=!1===s.leading?0:Date.now(),i=null,n=e.apply(l,r),i||(l=r=null)},u=function(){const u=Date.now();o||!1!==s.leading||(o=u);const c=t-(u-o);return l=this,r=arguments,c<=0||c>t?(i&&(clearTimeout(i),i=null),o=u,n=e.apply(l,r),i||(l=r=null)):i||!1===s.trailing||(i=setTimeout(a,c)),n};return u.cancel=()=>{clearTimeout(i),o=0,i=l=r=null},u.isScheduled=()=>!!i,u},$=Symbol("item"),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,isHeaderVisible:!1,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,isHeaderVisible:s.isHeaderVisible,silenceEvents:!0,mitt:V(),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),c(n,r),i.ownsEl=!1):n=e("div",{class:l.join(" "),css:r}),i.el=n;let o=e("ul");o.role="menu",i.menuEl=o,i.headerEl=e("div",{class:i.baseClassName+"_header"}),s.searchable&&this.setSearchable(!0),s.isHeaderVisible&&this.setHeaderVisible(s.isHeaderVisible),n.appendChild(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.filteredItems??e.items)[e.focusItemIndex];if(!t||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;const 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++),"number"==typeof a._level&&(u._level=a._level),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,"_level")&&(t._level=l._level),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]?.[$]}itemElementAtIndex(e){const t=this._p;return t.filteredItems?(e=t.filteredItems.indexOf(this._p.items[e]),t.virtualListHelper.getItemElementAt(e)??null):this.filteredElementItemAtIndex(e)}filteredElementItemAtIndex(e){return this._p.virtualListHelper.getItemElementAt(e)??null}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.map(e=>{const t=e[$];return void 0!==t?(t[$]=Object.seal({[$]:e}),t):e}),t),Array.isArray(l)&&(l=l.map(t=>{let s=t[$]?.[$];return s||(s={[$]:t,label:t[e.labelProp],value:t[e.valueProp],_nocheck:!!t._nocheck,_nointeraction:!!t._nointeraction,_subitems:t._subitems,_group:!!t._group,_level:!!t._level,_checked:!!t._checked}),s}))),!Array.isArray(l))if(t){const i=new RegExp(B(t),"i");l=e.items.filter(e=>!(s||!e._group)||i.test(e.label))}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;e.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}rushRefilter(){return this._p.needsRefilter&&this._refilterItems(),this}getFilteredItemCount(){const e=this._p;return this.rushRefilter(),e.filteredItems?e.filteredItems.length:e.items?e.items.length:0}setNoResultsText(e){const t=this._p;return t.noResultsText=e,t.hasNoResultsItem&&t.virtualListHelper.refreshItemAt(0).render(),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=R(()=>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||d(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()&&(i.style.height=Math.min(s.clientHeight,document.body.clientHeight)+"px",t.virtualListHelper.render()),e.updateWidth||"number"==typeof e.updateWidth?this._updateWidth(e):this._updateWidth();let g,f=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),C=(parseFloat(b.borderTopWidth)||0)+(parseFloat(b.borderBottomWidth)||0),S=0;t.headerEl&&(S=h(t.headerEl,!0,!0)),t.virtualListHelper.isVirtual()?g=t.virtualListHelper.estimateFullHeight()+y+C+S:(s.style.height="",i.style.height="",s.style.top="-9999px",g=Math.max(h(t.el),i.scrollHeight),g+=y+C);let L=parseFloat(b.maxHeight);isNaN(L)||(v||(L+=y+C),g=Math.min(g,L));let k=f>=g,x=I>=g,w=t.currentDirection||u;"above"===w&&!k&&x?w="below":"below"===w&&!x&&k?w="above":k&&x?w!==u&&("above"===u&&f>=I||"below"===u&&I>=f)&&(w=u):k||x||(f>I?w="above":I>f&&(w="below")),t.currentDirection=w;let E={width:m(s,!0,!0),height:Math.min(g,Math.max(f,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),W="top"===P.ySpec&&"above"===w||"bottom"===P.ySpec&&"below"===w||"bottom"!==P.ySpec&&"top"!==P.ySpec&&"above"===w,M=void 0!==l.pageXOffset?l.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft;M=Math.abs(M),N&&(M=document.documentElement.scrollWidth-M-document.documentElement.clientWidth);let O=M,V=document.documentElement.clientWidth+M-E.width,B={position:"absolute",left:r.left,top:r.top+(W?F.bottom-P.bottom:F.top-P.top)};if(N&&(B.left-=document.documentElement.clientWidth-document.documentElement.scrollWidth),B.left+=F.left-P.left,e.offset&&(e.offset.y&&(W?B.top-=e.offset.y:B.top+=e.offset.y),e.offset.x)){let t="rtl"===b.direction;B.left+=t?-e.offset.x:e.offset.x}if(t.autoFlipDirection&&("right"===P.xSpec&&B.left<O&&(Math.max(B.left,O)+E.width-r.left)/r.width>.5||"left"===P.xSpec&&B.left>V&&(Math.min(B.left,V)-r.left)/r.width<.5)&&(B.left-=F.left-P.left,B.left+=F.right-P.right),t.constrainToWindow)for(let e of N?["min","max"]:["max","min"])"min"===e&&B.left<O?B.left=O:"max"===e&&B.left>V&&(B.left=V);return B.left+="px",B.top+="px",c(s,B),_(s,E.height,!0,!0),i!==s&&_(i,E.height-S-C-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;this.rushRefilter();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),o=t.filteredItems?t.filteredItems.indexOf(l):i;if(l._group&&-1!==o&&s.push(o),l._checked===r)continue;if(l._checked=r,-1===o)continue;let a=t.virtualListHelper.getItemElementAt(o);a&&n(a,`${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;const 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()})}),this.rushRefilter();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`),g(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}setHeaderVisible(e){this.isHeaderVisible()!==!!e&&(e?this._p.el.insertBefore(this._p.headerEl,this._p.el.firstChild??null):this._p.headerEl.remove())}isHeaderVisible(){return!!this._p.headerEl.parentNode}getHeaderElement(){return this._p.headerEl}setSearchable(t){const s=this._p;!!s.searchInput!=!!t&&(t?(s.searchInput=e("input",{type:"search",role:"searchbox",tabindex:"0",autocorrect:"off",autocomplete:"off",autocapitalize:"off",spellcheck:"false","aria-autocomplete":"list"}),s.headerEl.appendChild(s.searchInput)):(s.searchInput.parentNode&&s.searchInput.remove(),s.searchInput=null),this.setHeaderVisible(t))}hasFocusedItem(){return this._p.focusItemIndex>-1}getFocusedItemIndex(){return this.hasFocusedItem()?this._p.focusItemIndex:-1}setFocusedItemAtIndex(e){const t=this._p;if(this.rushRefilter(),t.filteredItems){const s=t.filteredItems[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;this.rushRefilter();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.menuEl,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 W:case P:case F:case N:case T:case E:switch(t.lastKeyWasChar=!1,e.preventDefault(),e.key){case W:this.previousPage(e);break;case P:this.nextPage(e);break;case F:this._move("first",e);break;case N:this._move("last",e);break;case T:this.previous(e);break;case E:this.next(e)}break;case w:case x:if(t.lastKeyWasChar=!1,e.key===x&&"rtl"!==getComputedStyle(e.target).direction||e.key===w&&"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 k:t.lastKeyWasChar=!1,this.triggerItemSelection(null,e),e.preventDefault();break;case L:if("BUTTON"===e.target.tagName||"INPUT"===e.target.tagName&&t.lastKeyWasChar)return;this.toggleFocusedItem(),e.preventDefault();break;case S:t.lastKeyWasChar=!1,e.preventDefault(),this.hide();break;default:if("INPUT"===e.target.tagName||"TEXTAREA"===e.target.tagName){const s=e.key||String.fromCharCode(e.keyCode);t.lastKeyWasChar=1===s.length||e.key===C}t.searchable||this._keydownFreeType(e),s=!1}}_keydownFreeType(e){const t=this._p,s=e.key||String.fromCharCode(e.keyCode),i=1===s.length;if(t.lastKeyWasChar=i||e.key===C,!i)return;clearTimeout(t.filterTimer);let l,r=(t.previousFilter||"")+s,n=new RegExp(`^${B(r)}`,"i"),o=-1,a=t.focusItemIndex;const u=t.filteredItems??t.items;for(let e=0,t=u.length;e<t&&(-1!==o&&e<a||(l=u[e],!(n.test(l.label)&&(o=e,-1===a||e>=a))));e++);if(-1===o){r=s,n=new RegExp(`^${B(r)}`,"i");for(let e=0,t=u.length;e<t&&(-1!==o&&e<a||(l=u[e],!(n.test(l.label)&&(o=e,-1===a||e>=a))));e++);}if(o>-1){let s=t.virtualListHelper.getItemElementAt(o);this._focus(e,s||null,o,!0),this.isVisible()||this.triggerItemSelection(s?null:u[o],e),t.previousFilter=r,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=d(s.focusItemEl).top,r=h(s.el,!0);for(;;){if(i=s.focusItemEl.nextElementSibling,!i)return;if("LI"===i.tagName)if("prev_page"===e){if(d(i).top-t+r<=0)break}else if(d(i).top-t-r>=0)break}i&&(l=s.virtualListHelper.getItemIndexFromElement(i),void 0===l&&(l=-1))}r="prev_page"===e}let 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){const i=t.filteredItems??t.items;let l=i.indexOf(e);const r=e._level;for(let o=l+1,a=i.length;o<a;o++){let l=i[o];if(!l._child&&i[o-1]._child||(void 0===r?l._group||void 0!==l._level:l._level<=r))break;if(!!l._checked===e._checked)continue;l._checked=e._checked,s++;let a=t.virtualListHelper.getItemElementAt(o);a&&n(a,`${t.baseClassName}__item_checked`,e._checked),this._trigger("check",{value:l.value,item:l[$]??l,checked:l._checked,isGroup:l._group,isCheckingGroup:!0})}}this._trigger("groupcheck",{value:e.value,item:e[$]??e,affectedCount:s})}else if(t.groupCount>0&&t.autoCheckGroupChildren){const s=t.filteredItems??t.items;let 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;const i=s.filteredItems??s.items;let l=i[e];if(!l||!l._group)return this;let r,o=!1,a=!1;const u=l._level;for(let t=e+1,s=i.length;t<s&&(r=i[t],!(!r._child&&i[t-1]._child||(void 0===u?r._group||void 0!==r._level:r._level<=u)));t++)r._checked?o=!0:r._checked||(a=!0);if(!o&&!a)return this;let c=o&&!a;if(!!l._checked!==c){l._checked=c;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,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);f(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("destroyed"),j=Symbol("rest_multi_items"),q=!!("ontouchstart"in window||window.DocumentTouch&&window.document instanceof window.DocumentTouch||window.navigator.maxTouchPoints),Q=function(e,t){return e instanceof Element&&e.classList.contains(t)},X=["font-family","font-size","font-weight","font-size","letter-spacing","text-transform","word-spacing","text-indent","box-sizing","padding-left","padding-right"],Y={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",autoSelectTextOnCheck:!0,filterThrottleWindow:300,filterOnEmptyTerm:!1,labelProp:"label",valueProp:"value",multiItemLabelProp:"short_label",maxMultiItems:null,multiItemsRestLabelProvider:null,items:[],selectedValues:void 0,value:void 0,isLoadingMode:!1,closeListWhenLoading:!0,clearInputWhen:["single_close","multi_select_single"]};class J{constructor(t){const i={...Y};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,autoSelectTextOnCheck:i.autoSelectTextOnCheck,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,on:i.on||null,silenceEvents:!0,mitt:V(),isLoadingMode:!!i.isLoadingMode,closeListWhenLoading:!!i.closeListWhenLoading,clearInputWhen:Array.isArray(i.clearInputWhen)?i.clearInputWhen.slice(0):[],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)&&!Q(t,`${l.baseClassName}__search_field`)&&!Q(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[U])return;const s=t[0];e&&s.borderBoxSize[0].blockSize===e.borderBoxSize.blockSize&&s.borderBoxSize[0].inlineSize===e.borderBoxSize.inlineSize&&s.contentBoxSize[0].blockSize===e.contentBoxSize.blockSize&&s.contentBoxSize[0].inlineSize===e.contentBoxSize.inlineSize||(l.resizeObserver.unobserve(l.el),this._resizeInput(),requestAnimationFrame(()=>l.resizeObserver.observe(l.el))),e.borderBoxSize=s.borderBoxSize[0],e.contentBoxSize=s.contentBoxSize[0]}),l.resizeObserver.observe(l.el)}return this.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[U])return;this[U]=!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.sortListCheckedFirst===e||(t.sortListCheckedFirst=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}setAutoSelectTextOnCheck(e){return this._p.autoSelectTextOnCheck=e,this}getAutoSelectTextOnCheck(){return this._p.autoSelectTextOnCheck}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}setLabelProp(e){const t=this._p;return t.labelProp=e,t.dropList&&t.dropList.setLabelProp(e),this}setValueProp(e){const t=this._p;return t.valueProp===e||(t.valueProp=e,t.dropList&&t.dropList.setValueProp(e),this._updateItemByValueMap()),this}setMultiItemLabelProp(e){return this._p.multiItemLabelProp=e,this}setMaxMultiItems(e){return this._p.maxMultiItems=e,this}setMultiItemsRestLabelProvider(e){return this._p.multiItemsRestLabelProvider=e,this}setFilterFn(e){const t=this._p;return t.filterFn===e||(t.filterFn=e,e||(e=(e,s)=>{const i=new RegExp(B(s),"i"),l=t.labelProp,r=t.multiItemLabelProp;return t.items.filter(e=>!(t.treatGroupSelectionAsItems||!e._group)||i.test(e[l]||e[r]))}),t.actualFilterFn=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[U],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()):e.multi||void 0===this.getValue()||e.dropList.setFocusedItemByValue(this.getValue())),this}closeList(){const e=this._p;return this[U]?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&&t.closeListWhenLoading&&0===t.items.length&&this.isListOpen()?this.closeList():!t.isLoadingMode&&t.closeListWhenLoading&&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}setCloseListWhenLoading(e){return this._p.closeListWhenLoading=e,this}getCloseListWhenLoading(){return this._p.closeListWhenLoading}setClearInputWhen(e){return this._p.clearInputWhen=Array.isArray(e)?e.slice(0):[],this}getClearInputWhen(){return this._p.clearInputWhen}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.dropList=new K({virtualMinItems:10,searchable:!1,...e.listOptions,multi:e.multi,capturesFocus:!1,labelProp:e.labelProp,valueProp:e.valueProp,noResultsText:e.noResultsText,filterThrottleWindow:e.filterThrottleWindow,filterOnEmptyTerm:e.filterOnEmptyTerm,filterGroups:e.treatGroupSelectionAsItems,filterEmptyGroups:!e.treatGroupSelectionAsItems,filterFn:e.actualFilterFn,positionOptionsProvider:()=>this._getDropListPositionOptions(),on:(t,i)=>{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:s}),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?e.clearInputWhen.includes("multi_close")&&this._setInputText(""):(e.clearInputWhen.includes("single_close")&&this._setInputText(""),this._scheduleSync("render_base")),this._trigger("close"),this[U])return;this._stopTrackingPresence(),e.sink.remove(null,".trackposition");break;case"check":{if(!e.multi)return;e.autoSelectTextOnCheck&&e.input&&document.activeElement===e.input&&e.input.setSelectionRange(0,e.input.value.length);const t=i.item,l=i.value;let r=i.checked;if(i.isGroup&&!e.treatGroupSelectionAsItems)return;let n={value:l,item:t,cancel:!1,isCheckingGroup:i.isCheckingGroup};if(this._trigger((r?"addsel":"removesel")+":before",n),n.cancel)return void e.dropList.setItemChecked(l,!r);if(r)e.selectedItems.push(t),e.selectedValues.push(l);else{const t=e.selectedValues.indexOf(l);-1!==t&&(e.selectedItems.splice(t,1),e.selectedValues.splice(t,1))}const o=!!i.isCheckingGroup;e.showSelection?r?(1===s.itemCount()&&e.clearInputWhen.includes("multi_select_single")&&this._setInputText(""),e.sortSelectedItems?o||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),o||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),o||this._scheduleSync("render_base")):e.multi&&this._scheduleSync("syncPlaceholder"),this._trigger(r?"addsel":"removesel",{value:l,item:t,isCheckingGroup:i.isCheckingGroup})}break;case"groupcheck":if(!e.multi)return;e.autoSelectTextOnCheck&&e.input&&document.activeElement===e.input&&e.input.setSelectionRange(0,e.input.value.length),i.affectedCount&&this._scheduleSync(e.sortSelectedItems?"full":"render_base"),this._trigger("groupcheck",{value:i.value,item:i.item,affectedCount:i.affectedCount});break;case"select":{if(e.multi)return;const t=i.item,s=i.value;if(!this._performSelectWithEvent(t,s))return;if(this[U])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",i);break;case"itemschanged":this._trigger("itemschanged",i)}}});e.sink.add(s.el,"mousedown",e=>{t(e.target,"li",e.currentTarget)&&e.preventDefault()}),this._registerDropdownEvents()}_handleOnBlur(){const e=this._p;setTimeout(()=>{this[U]||e.disabled||(this._trigger("search:blur"),this[U]||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 W:case P:case T:case E:case F:case N:if((t.key===F||t.key===N)&&r&&!l){s._keydownFreeType(t);break}switch(e.lastKeyAllowsNonTypeKeys=!0,t.preventDefault(),t.key){case W:s.isVisible()&&s.previousPage(t);break;case P:s.isVisible()&&s.nextPage(t);break;case T:s.isVisible()?s.previous(t):this._movePrev();break;case E:s.isVisible()?s.next(t):this._moveNext();break;case F:s.goToFirst(t);break;case N:s.goToLast(t)}break;case L:l&&(e.lastKeyAllowsNonTypeKeys=!0,s.isVisible()&&s.hasFocusedItem()&&(i=!0,e.multi?s.toggleFocusedItem(t):s.triggerItemSelection(null,t),t.preventDefault()));break;case k: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!==k&&(t.key!==L||!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))}).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[U]||(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[U]&&(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[U]&&(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),t.invokeRefilter(),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[U])for(let s of e)switch(s.mode){case"full":this._syncFull(!0,!0);break;case"render_base":this._syncFull(!1,!1);break;case"render_items":this._syncFull(!0,!1);break;case"render_list":this._syncFull(!1,!0);break;case"render_clear":this._syncClearButton(),this._resizeInput();break;case"singleItem":this._syncSingleItem();break;case"syncPlaceholder":this._syncPlaceholder();break;case"removeMultiItemElement":if(t.showSelection)this._syncPlaceholder();else{const e=t.valueProp,i=s.data[e];let l=t.multiItemEls.findIndex(t=>t[$][e]===i);-1!==l&&this._removeMultiItemElementByIndex(l)}break;case"addMultiItemElement":t.showSelection?this._addMultiItemElement(s.data):this._syncPlaceholder();break;case"addOrUpdateMultiItemRestElement":t.showSelection?this._addMultiItemRestElement():this._syncPlaceholder();break;case"removeMultiItemRestElement":if(t.showSelection){let e=t.multiItemEls[t.multiItemEls.length-1];e?.[$]?.[t.valueProp]===j&&this._removeMultiItemElementByIndex(t.multiItemEls.length-1)}else this._syncPlaceholder();break;case"resize_input":this._resizeInput()}}_cleanupSingleWrapper(){const e=this._p;if(e.singleWrapper){if(e.unrenderSingleItem&&e.singleWrapper.childNodes.length>0)try{e.unrenderSingleItem(e.singleWrapper[$],e.singleWrapper)}catch(e){console.error(e)}delete e.singleWrapper[$],e.singleWrapper.innerHTML=""}}_removeMultiItemElementByIndex(e){const t=this._p,s=t.multiItemEls;if(s.length>e){const i=s[e],l=i[$];let n=l?.[t.valueProp]===j?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]===j?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]:j,[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[$]=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.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[$]=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===C&&(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[$],o=n[s.valueProp];if(void 0!==n)if(o===j){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`)),Q(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[$]===e),-1===n&&(n=s.multiItemEls.findIndex(e=>e[$][i]===r)),-1!==n&&this._removeMultiItemElementByIndex(n),t&&(this._setInputText(e[s.multiItemLabelProp]||e[l]),s.input.focus(),s.input.selectionStart=s.input.selectionEnd=s.input.value.length),this._scheduleSync("render_list")}_setInputText(e){const t=this._p;t.input.value=null==e?"":String(e),t.filterTerm="",t.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{c(i,b(s,X)),i.textContent=l,t.appendChild(i);const n=getComputedStyle(s),a=(parseFloat(n.paddingLeft)||0)+(parseFloat(n.paddingRight)||0),u=.75*(parseFloat(n["font-size"])||0)+a,d=m(i,!0,!0),h=m(s,!0,!0);let p=Math.max(d,u);if(p!==h){f(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&&f(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===C&&e.ctrlKey&&0===s.value.length)this.clear(),e.preventDefault();else if(e.key===C&&0===s.value.length){const s=t.multiItemEls[t.multiItemEls.length-1];if(!s||void 0===s[$].value)return;const i=s[$],l=i[t.valueProp];let r={value:l,item:i,cancel:!1};if(this._trigger("removesel:before",r),r.cancel)return;this._removeMultiItem(i,!0),this._trigger("removesel",{value:l,item:i}),e.preventDefault()}}_handleMultiKeydown(e){const s=this._p;if(s.disabled)return;const r="rtl"===getComputedStyle(s.el).direction;let n;if(e.key===(r?w:x))n=i(e.target,`.${s.baseClassName}__item,.${s.baseClassName}__search_wrapper`),Q(n,`${s.baseClassName}__search_wrapper`)&&(n=n.querySelector("input")),n&&n.focus(),e.preventDefault();else if(e.key===(r?x:w))n=l(e.target,`.${s.baseClassName}__item,.${s.baseClassName}__search_wrapper`),Q(n,`${s.baseClassName}__search_wrapper`)&&(n=n.querySelector("input")),n&&n.focus(),e.preventDefault();else if(e.key===C&&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!==C||(this._removeMultiItemFromEvent(t(e.target,`.${s.baseClassName}__item`,s.el),e),e.preventDefault())}_getDropListPositionOptions(){return{target:this._p.el,offset:{x:0,y:0},anchor:{x:"start",y:"bottom"},position:{x:"start",y:"top"},updateWidth:!0}}_startTrackingPresence(){const e=this._p;this._stopTrackingPresence(),e.presenceInt=setInterval(function(){u(e.el)!==document&&this.hide()},200)}_stopTrackingPresence(){const e=this._p;e.presenceInt&&(clearInterval(e.presenceInt),e.presenceInt=null)}_sortItems(e,t,s,i){const l=this._p;if(!t&&!s)return e;const r=l.labelProp,n=l.multiItemLabelProp,o=l.valueProp,a=l.stickyValues,u=l.sortItemComparator||((e,t)=>{if(null!==a){let s=a.has(e[o]),i=a.has(t[o]);if(s&&!i)return-1;if(!s&&i)return 1}const s=e[r]||e[n],i=t[r]||t[n];return s<i?-1:s>i?1:0});let c=[],d=null,h=[c];const m=new Set(l.selectedValues);let p,_,g;for(_=0,g=e.length;_<g;_++)p=e[_],p._group&&c.length&&(c=[],h.push(c)),c.push(p);c.length||(h.length=0),a&&e.length>0&&!e[0]._group&&(d=h[0].filter(e=>a.has(e[o])),d.length>0?(h[0]=h[0].filter(e=>!a.has(e[o])),0===h[0].length&&h.shift()):d=null),t&&h.sort((e,t)=>{if(e=e[0],t=t[0],null!==a){let s=a.has(e[o]),i=a.has(t[o]);if(s&&!i)return-1;if(!s&&i)return 1}return!e._group&&t._group?-1:e._group&&!t._group?1:u(e,t)}),d&&h.unshift(d);const f=[],I=[];for(let e=0,i=h.length;e<i;e++)c=h[e],c.sort((e,i)=>{if(e._group&&!i._group)return-1;if(!e._group&&i._group)return 1;if(s){const t=m.has(e[o]),s=m.has(i[o]);if(t&&!s)return-1;if(!t&&s)return 1}return t?u(e,i):0}),I.push(c);if(s&&i){let e;for(let t=0,s=h.length;t<s;t++){if(c=h[t],c===d){f.push(d);let e=I.indexOf(d);-1!==e&&I.splice(e,1);continue}e=null;for(let t=0,s=c.length;t<s;t++)if(p=c[t],!p._group){if(!m.has(p[l.valueProp]))break;e||(e=[],c[0]._group&&e.push(c[0])),e.push(p),c.splice(t--,1),s--}if(e&&(f.push(e),0===c.length||1===c.length&&c[0]._group)){h.splice(t--,1),s--;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(c=h[e],_=0,g=c.length;_<g;_++)b[v++]=c[_];return b}}export{K as DropList,J as SelectBox};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
7
7
|
|
|
8
8
|
//# sourceMappingURL=lib.es6.min.js.map
|