selective-ui 1.1.5 → 1.2.0

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.
Files changed (42) hide show
  1. package/README.md +2 -0
  2. package/dist/selective-ui.css +7 -1
  3. package/dist/selective-ui.css.map +1 -1
  4. package/dist/selective-ui.esm.js +750 -39
  5. package/dist/selective-ui.esm.js.map +1 -1
  6. package/dist/selective-ui.esm.min.js +2 -2
  7. package/dist/selective-ui.esm.min.js.br +0 -0
  8. package/dist/selective-ui.min.css +1 -1
  9. package/dist/selective-ui.min.css.br +0 -0
  10. package/dist/selective-ui.min.js +2 -2
  11. package/dist/selective-ui.min.js.br +0 -0
  12. package/dist/selective-ui.umd.js +751 -40
  13. package/dist/selective-ui.umd.js.map +1 -1
  14. package/package.json +1 -1
  15. package/src/css/components/popup.css +7 -1
  16. package/src/ts/adapter/mixed-adapter.ts +12 -7
  17. package/src/ts/components/empty-state.ts +5 -4
  18. package/src/ts/components/loading-state.ts +4 -4
  19. package/src/ts/components/option-handle.ts +4 -4
  20. package/src/ts/components/popup.ts +42 -16
  21. package/src/ts/components/searchbox.ts +2 -0
  22. package/src/ts/components/selectbox.ts +9 -2
  23. package/src/ts/core/base/adapter.ts +8 -5
  24. package/src/ts/core/base/model.ts +19 -1
  25. package/src/ts/core/base/recyclerview.ts +3 -1
  26. package/src/ts/core/base/virtual-recyclerview.ts +762 -0
  27. package/src/ts/core/model-manager.ts +24 -16
  28. package/src/ts/core/search-controller.ts +4 -4
  29. package/src/ts/global.ts +5 -5
  30. package/src/ts/index.ts +4 -4
  31. package/src/ts/services/effector.ts +2 -2
  32. package/src/ts/types/components/state.box.type.ts +1 -18
  33. package/src/ts/types/core/base/adapter.type.ts +14 -0
  34. package/src/ts/types/core/base/model.type.ts +5 -0
  35. package/src/ts/types/core/base/recyclerview.type.ts +3 -1
  36. package/src/ts/types/core/base/view.type.ts +6 -0
  37. package/src/ts/types/core/base/virtual-recyclerview.type.ts +66 -0
  38. package/src/ts/types/utils/istorage.type.ts +1 -0
  39. package/src/ts/utils/istorage.ts +3 -2
  40. package/src/ts/utils/libs.ts +26 -25
  41. package/src/ts/utils/selective.ts +7 -7
  42. package/src/ts/views/option-view.ts +8 -8
@@ -1,2 +1,2 @@
1
- /*! Selective UI v1.1.5 | MIT License */
2
- function t(t){return new g(t??null)}function bind(t,i={}){j.bind(t,i)}function find(t){return j.find(t)}function destroy(t=null){j.destroy(t)}function rebind(t,i={}){j.rebind(t,i)}function effector(i){return t(i)}function i(){$||($=!0,document.addEventListener("mousedown",()=>{const t=e.t();if(t.length>0){const i=j.find(t.join(", "));i.isEmpty||i.close()}}),j.i())}class s{constructor(){this.h={showPanel:!0,accessoryStyle:"top",multiple:!1,minWidth:"50px",width:"0px",offsetWidth:null,minHeight:"30px",height:"30px",panelHeight:"220px",panelMinHeight:"100px",disabled:!1,readonly:!1,selectall:!0,keepSelected:!0,placeholder:"Select value",altMask:"",autoclose:!1,autoscroll:!0,autofocus:!0,searchable:!0,loadingfield:!0,visible:!0,skipError:!1,customDelimiter:",",textLoading:"Processing...",textNoData:"No data available",textNotFound:"Not found",textSelectAll:"Select all",textDeselectAll:"Deselect all",textAccessoryDeselect:"Deselect: ",animationtime:200,delaysearchtime:200,allowHtml:!0,maxSelected:0,labelHalign:"left",labelValign:"center",imageMode:!1,imageWidth:"60px",imageHeight:"60px",imageBorderRadius:"4px",imagePosition:"right",ajax:null,on:{load:[],beforeShow:[],show:[],beforeChange:[],change:[],beforeClose:[],close:[]}},this.o=new Map,this.l=new Map,this.u=[]}}class e{static get p(){return this.m||(this.m=new s),this.m}static v(t){if(null===t||"object"!=typeof t)return t;const i=Array.isArray(t)?[]:{};for(const s in t)Object.prototype.hasOwnProperty.call(t,s)&&(i[s]=this.v(t[s]));return i}static O(t=6){let i="";for(let s=0;s<t;s++)i+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.floor(62*Math.random()));return i}static C(t){if(!t)return[];if("string"==typeof t){const i=document.querySelectorAll(t);return Array.from(i)}return t instanceof Element?[t]:t instanceof NodeList||Array.isArray(t)?Array.from(t):[]}static T(t={}){return this.A(document.createElement(t.node??"div"),t,!0)}static A(t=document.documentElement,i=null,s=!1){const e={...i??{}},n=s?t:this.S(t.cloneNode(!0)),h=e.classList;return"string"==typeof h?n.classList.add(h):Array.isArray(h)&&n.classList.add(...h),delete e.classList,["style","dataset"].forEach(t=>{const i=e[t];i&&"object"==typeof i&&Object.assign(n[t],i),delete e[t]}),e.role&&(n.setAttribute("role",e.role+""),delete e.role),e.ariaLive&&(n.setAttribute("aria-live",e.ariaLive+""),delete e.ariaLive),e.L&&(n.setAttribute("aria-labelledby",e.L+""),delete e.L),e.P&&(n.setAttribute("aria-controls",e.P+""),delete e.P),e.M&&(n.setAttribute("aria-haspopup",e.M+""),delete e.M),e.H&&(n.setAttribute("aria-multiselectable",e.H+""),delete e.H),e.j&&(n.setAttribute("aria-autocomplete",e.j+""),delete e.j),e.event&&"object"==typeof e.event&&(Object.entries(e.event).forEach(([t,i])=>{n.addEventListener(t,i)}),delete e.event),Object.entries(e).forEach(([t,i])=>{null===i?n.removeAttribute(t):n[t]=i}),n}static S(t){if(t instanceof Element)return t;throw new TypeError("Node is not an Element")}static $(t){return this.I(t)}static I(t,i=null,s=!1,e=!1,n={}){let h=null;for(const o in t){const r=t[o],l=r?.tag?.tagName?r.tag:this.T(r.tag);n[o]=l,r?.F&&this.I(r.F,l,!1,!1,n),i?s?i.prepend(l):i.append(l):e||h||(h=l)}return e||(n.id=this.O(7),i||(n={tags:n,view:h})),n}static V(t,i){const s=this.v(i);for(const i in s){const e=t[i];e?s[i]=e:void 0!==t?.dataset?.[i]&&(s[i]=t.dataset[i])}return s}static k(...t){if(0===t.length)return{};if(1===t.length)return this.v(t[0]);const i=this.v(t[0]);for(let s=1;s<t.length;s++){const e=t[s];for(const t in e)if("on"===t){const s=e[t];for(const e in s)i[t][e].push(s[e])}else i[t]=e[t]}return i}static R(t){if("boolean"==typeof t)return t;if("string"!=typeof t)return!!t;switch(t.trim().toLowerCase()){case"true":case"1":case"yes":case"on":return!0;default:return!1}}static _(t){return this.p.o.delete(t)}static D(t){return this.p.o.get(t)}static N(t,i){this.p.o.set(t,i)}static B(t){return this.p.l.delete(t)}static G(t){return this.p.l.get(t)}static U(t,i){this.p.l.set(t,i)}static W(){return this.p.h}static t(){return this.p.u}static q(t){if(null==t)return"";let i=(t+"").replace(/<`/g,"<").replace(/`>/g,">").replace(/\<\`/g,"<").replace(/\`\>/g,">").trim();const s=globalThis?.document;if(!s||"function"!=typeof s.createElement)return i=i.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"").replace(/<iframe\b[^>]*>[\s\S]*?<\/iframe>/gi,"").replace(/<(object|embed|link)\b[^>]*>[\s\S]*?<\/\1>/gi,""),i=i.replace(/\son[a-z]+\s*=\s*(['"]).*?\1/gi,""),i=i.replace(/\s([a-z-:]+)\s*=\s*(['"])\s*javascript:[^'"]*\2/gi,""),i;const e=s.createElement("div");return e.innerHTML=i,e.querySelectorAll("script, style, iframe, object, embed, link").forEach(t=>t.remove()),e.querySelectorAll("*").forEach(t=>{for(const i in t.attributes){const s=t.attributes[i],e=s.name??"",n=s.value??"";if(/^on/i.test(e))return void t.removeAttribute(e);/^(href|src|xlink:href)$/i.test(e)&&/^javascript:/i.test(n)&&t.removeAttribute(e)}}),(e.innerHTML??"").trim()}static J(t){const i=document.createElement("DIV");i.innerHTML=t;const s=i.textContent??i.innerText??"";return i.remove(),s.trim()}static K(t){return null==t?"":(t+"").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/đ/g,"d").replace(/Đ/g,"d")}static Y(t){const i=[];return Array.from(t.children).forEach(t=>{if("OPTGROUP"===t.tagName){const s=t;i.push(s),Array.from(s.children).forEach(t=>{t.__parentGroup=s,i.push(t)})}else"OPTION"===t.tagName&&i.push(t)}),i}static X(){const t=navigator.userAgent;return/iP(hone|ad|od)/.test(t)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1}static Z(t){const i=(t+"").trim();if(i.endsWith("px"))return i;if(i.endsWith("vh"))return window.innerHeight*parseFloat(i)/100+"px";if(i.endsWith("vw"))return window.innerWidth*parseFloat(i)/100+"px";const s=parseFloat(getComputedStyle(document.documentElement).fontSize);if(i.endsWith("rem"))return s*parseFloat(i)+"px";const e=this.T({node:"div",style:{height:i,opacity:"0"}});document.body.appendChild(e);const n=e.offsetHeight+"px";return e.remove(),n}}e.m=null,e.tt=new class{constructor(){this.it=new Map,this.st=new Map}on(t,i,s={}){const e=s.et??50,n=s.once??!1;this.it.has(t)||this.it.set(t,[]),this.it.get(t).push({nt:i,timeout:e,once:n})}off(t){const i=this.st.get(t);if(i){for(const t of i.values())clearTimeout(t);i.clear(),this.st.delete(t)}this.it.delete(t)}run(t,...i){const s=this.it.get(t);if(!s)return;this.st.has(t)||this.st.set(t,new Map);const e=this.st.get(t);for(let t=0;t<s.length;t++){const n=s[t];if(!n)continue;const h=e.get(t);h&&clearTimeout(h);const o=setTimeout(()=>{if(n.nt(i.length>0?i:null),n.once){s[t]=void 0;const i=e.get(t);i&&clearTimeout(i),e.delete(t)}},n.timeout);e.set(t,o)}}clear(t){if(void 0===t)for(const t of Array.from(this.it.keys()))this.off(t);else this.off(t)}};class n{static ht(){const t={isContinue:!0,isCancel:!1};return{token:{get isContinue(){return t.isContinue},get isCancel(){return t.isCancel}},nt:{stopPropagation(){t.isContinue=!1},cancel(){t.isCancel=!0,t.isContinue=!1}}}}static ot(t,...i){const{token:s,nt:e}=this.ht();for(let n=0;n<i.length;n++){const h=i[n];if("function"==typeof h&&(t&&Array.isArray(t)?h(e,...t):h(e),s.isCancel||!s.isContinue))break}return s}static rt(t,i,s={bubbles:!0,cancelable:!0}){const e=new Event(i,s);return t.dispatchEvent(e),e}static lt(t,...i){if(Array.isArray(t))for(const s of t)"function"==typeof s&&s(...i)}}class h{static ct(t,i){const s=e.D(t);if(!s?.options)return;const n=s.options,h=n.minWidth,o=n.minHeight,r=Number.parseInt(n.width,10),l=Number.parseInt(n.height,10);let a=t.offsetWidth+"px",c=t.offsetHeight+"px";const u=getComputedStyle(t);"0px"===a&&"auto"!==u.width&&(a=u.width),"0px"===c&&"auto"!==u.height&&(c=u.height),r>0&&(a=n.width),l>0&&(c=n.height),Object.assign(i.style,{width:a,height:c,minWidth:h,minHeight:o})}}class o{constructor(t){this.node=null,this.ut=null,t&&this.init(t)}init(t){this.node=e.T({node:"div",classList:"selective-ui-placeholder",innerHTML:t.placeholder}),this.ut=t}get(){return this.ut?.placeholder??""}set(t,i=!0){if(!this.node||!this.ut)return;i&&(this.ut.placeholder=t);const s=e.q(t);this.node.innerHTML=this.ut.allowHtml?s:e.J(s)}}class r{constructor(){this.node=this.dt()}dt(){return e.T({node:"div",classList:"selective-ui-directive",role:"button",ariaLabel:"Toggle dropdown"})}gt(t){this.node.classList.toggle("drop-down",!!t)}}class l{constructor(t=null){this.ft=null,this.node=null,this.options=null,this.bt=[],this.wt=[],t&&this.init(t)}init(t){this.ft=e.I({yt:{tag:{node:"div",classList:["selective-ui-option-handle","hide"]},F:{vt:{tag:{node:"a",classList:"selective-ui-option-handle-item",textContent:t.textSelectAll,onclick:()=>{n.lt(this.bt)}}},xt:{tag:{node:"a",classList:"selective-ui-option-handle-item",textContent:t.textDeselectAll,onclick:()=>{n.lt(this.wt)}}}}}}),this.node=this.ft.view,this.options=t}available(){return!!this.options&&e.R(this.options.multiple)&&e.R(this.options.selectall)}refresh(){this.node&&(this.available()?this.show():this.hide())}show(){this.node&&this.node.classList.remove("hide")}hide(){this.node&&this.node.classList.add("hide")}Ot(t=null){"function"==typeof t&&this.bt.push(t)}Ct(t=null){"function"==typeof t&&this.wt.push(t)}}class a{constructor(t=null){this.node=null,this.options=null,t&&this.init(t)}init(t){this.options=t,this.node=e.T({node:"div",classList:["selective-ui-empty-state","hide"],role:"status",ariaLive:"polite"})}show(t="nodata"){this.node&&this.options&&(this.node.textContent="notfound"===t?this.options.textNotFound:this.options.textNoData,this.node.classList.remove("hide"))}hide(){this.node&&this.node.classList.add("hide")}get isVisible(){return!!this.node&&!this.node.classList.contains("hide")}}class c{constructor(t=null){this.node=null,this.options=null,t&&this.init(t)}init(t){this.options=t,this.node=e.T({node:"div",classList:["selective-ui-loading-state","hide"],textContent:t.textLoading,role:"status",ariaLive:"polite"})}show(t){this.node&&this.options&&(this.node.textContent=this.options.textLoading,this.node.classList.toggle("small",!!t),this.node.classList.remove("hide"))}hide(){this.node&&this.node.classList.add("hide")}get isVisible(){return!!this.node&&!this.node.classList.contains("hide")}}class u{constructor(){this.Tt=!1,this.element=null,this.At=null,this.St=null,this.Tt=!0,this.Lt=this.Pt.bind(this)}Mt(t){}Pt(){const t=this.element;if(!t||"function"!=typeof t.getBoundingClientRect)return void this.Mt({width:0,height:0,top:0,left:0,padding:{top:0,right:0,bottom:0,left:0},border:{top:0,right:0,bottom:0,left:0},margin:{top:0,right:0,bottom:0,left:0}});const i=t.getBoundingClientRect(),s="undefined"!=typeof window&&"function"==typeof window.getComputedStyle?window.getComputedStyle(t):null;this.Mt({width:i?.width??0,height:i?.height??0,top:i?.top??0,left:i?.left??0,padding:{top:parseFloat(s?.paddingTop??"0"),right:parseFloat(s?.paddingRight??"0"),bottom:parseFloat(s?.paddingBottom??"0"),left:parseFloat(s?.paddingLeft??"0")},border:{top:parseFloat(s?.borderTopWidth??"0"),right:parseFloat(s?.borderRightWidth??"0"),bottom:parseFloat(s?.borderBottomWidth??"0"),left:parseFloat(s?.borderLeftWidth??"0")},margin:{top:parseFloat(s?.marginTop??"0"),right:parseFloat(s?.marginRight??"0"),bottom:parseFloat(s?.marginBottom??"0"),left:parseFloat(s?.marginLeft??"0")}})}rt(){this.Pt()}connect(t){if(!(t instanceof Element))throw Error("Invalid element");this.element=t,this.At=new ResizeObserver(this.Lt),this.At.observe(t),this.St=new MutationObserver(this.Lt),this.St.observe(t,{attributes:!0,attributeFilter:["style","class"]}),window.addEventListener("scroll",this.Lt,!0),window.addEventListener("resize",this.Lt),window.visualViewport&&(window.visualViewport.addEventListener("resize",this.Lt),window.visualViewport.addEventListener("scroll",this.Lt))}disconnect(){this.At?.disconnect(),this.St?.disconnect(),this.Mt=()=>{},window.removeEventListener("scroll",this.Lt,!0),window.removeEventListener("resize",this.Lt),window.visualViewport&&(window.visualViewport.removeEventListener("resize",this.Lt),window.visualViewport.removeEventListener("scroll",this.Lt)),this.At=null,this.St=null,this.element=null}}class d{constructor(t=null,i=null,s=null){this.options=null,this.Ht=!1,this.jt=null,this.node=null,this.Et=null,this.$t=null,this.It=null,this.Ft=null,this.Vt=null,this.kt=null,this.Rt=null,this._t=null,this.Dt=null,this.Nt=null,this.Bt=s,t&&i&&this.init(t,i)}init(t,i){if(!this.Bt)throw Error("Popup requires a ModelManager instance.");this.Ft=new l(i),this.Vt=new a(i),this.kt=new c(i);const s=e.I({zt:{tag:{node:"div",classList:"selective-ui-popup",style:{maxHeight:i.panelHeight}},F:{yt:{tag:this.Ft.node},Gt:{tag:{id:i.Ut,node:"div",classList:"selective-ui-options-container",role:"listbox"}},Wt:{tag:this.kt.node},qt:{tag:this.Vt.node}}}},null);this.node=s.view,this._t=s.tags.Gt,this.It=e.D(t),this.options=i,this.Bt.load(this._t,{isMultiple:i.multiple});const n=this.Bt.Jt();this.jt=n.Kt,this.Rt=n.Rt,this.Ft.Ot(()=>{n.Kt.Qt(!0)}),this.Ft.Ct(()=>{n.Kt.Qt(!1)}),this.Yt()}async Xt(){this.options&&this.kt&&this.Ft&&this.jt&&this.Bt&&(this.Nt&&clearTimeout(this.Nt),this.Bt.Zt(!0),!1!==e.R(this.options.loadingfield)&&(this.ti({isEmpty:!1,ii:!0}),this.kt.show(this.jt.si().ii),this.Ft.hide(),this.ei()))}async ni(){this.options&&this.kt&&this.jt&&this.Bt&&(this.Nt&&clearTimeout(this.Nt),this.Nt=setTimeout(()=>{this.Bt?.Zt(!1),this.kt?.hide();const t=this.jt?.si();this.ti(t??void 0),this.ei()},200))}Yt(){this.jt&&(this.jt.hi(t=>{this.ti(t)}),this.jt.oi("items",()=>{const t=this.jt.si();this.ti(t),this.ei()}))}ti(t){if(!(this.jt&&this.Vt&&this.Ft&&this._t))return;const i=t??this.jt.si();i.isEmpty?(this.Vt.show("nodata"),this._t.classList.add("hide"),this.Ft.hide()):i.ii?(this.Vt.hide(),this._t.classList.remove("hide"),this.Ft.refresh()):(this.Vt.show("notfound"),this._t.classList.add("hide"),this.Ft.hide())}ri(t,i){this.jt?.li(t,i)}ai(t,i){this.jt?.oi(t,i)}ci(t){this.Et=t}open(t=null,i){if(!(this.node&&this.options&&this.Ft&&this.It&&this.Et))return;this.Ht||(document.body.appendChild(this.node),this.Ht=!0,this.$t=new u,this.Et.ui(this.node),this.node.addEventListener("mousedown",t=>{t.stopPropagation(),t.preventDefault()})),this.Ft.refresh(),i&&this.ti();const s=this.di(),{position:e,top:n,maxHeight:h,pi:o}=this.gi(s);this.Et.expand({duration:this.options.animationtime,display:"flex",width:s.width,left:s.left,top:n,maxHeight:h,pi:o,position:e,mi:()=>{this.$t&&this.It&&(this.$t.Mt=()=>{const t=this.di();this.fi(t)},this.$t.connect(this.It.container.tags.bi),t?.())}})}close(t=null){this.Ht&&this.options&&this.$t&&this.Et&&(this.$t.disconnect(),this.Et.collapse({duration:this.options.animationtime,mi:t??void 0}))}ei(){this.Ht&&this.$t?.rt()}wi(t,i){this.node&&(this.Dt=async()=>{const i=t.yi();if(!i.xi)return;const s=this.node;if(s.scrollHeight-s.scrollTop-s.clientHeight<100&&!i.Oi&&i.hasMore){const i=await t.Ci();!i.Ti&&i.message&&console.log("Load more:",i.message)}},this.node.addEventListener("scroll",this.Dt))}Ai(){this.Nt&&(clearTimeout(this.Nt),this.Nt=null),this.node&&this.Dt&&(this.node.removeEventListener("scroll",this.Dt),this.Dt=null);try{this.$t?.disconnect()}catch(t){}this.$t=null;try{this.Et?.ui?.(null)}catch(t){}if(this.Et=null,this.node)try{const t=this.node.cloneNode(!0);this.node.replaceWith(t),t.remove()}catch(t){this.node.remove()}this.node=null,this._t=null;try{this.Bt?.Zt?.(!1),this.Rt?.clear?.(),this.Rt=null,this.jt=null,this.node.remove()}catch(t){}this.Bt=null,this.Ft=null,this.Vt=null,this.kt=null,this.It=null,this.options=null,this.Ht=!1}di(){const t=this.It.container.tags.bi,i=t.getBoundingClientRect(),s=window.getComputedStyle(t),n=window.visualViewport,h=e.X();return{width:i.width,height:i.height,top:i.top-(n&&h?n.offsetTop:0),left:i.left-(n&&h?n.offsetLeft:0),padding:{top:parseFloat(s.paddingTop),right:parseFloat(s.paddingRight),bottom:parseFloat(s.paddingBottom),left:parseFloat(s.paddingLeft)},border:{top:parseFloat(s.borderTopWidth),right:parseFloat(s.borderRightWidth),bottom:parseFloat(s.borderBottomWidth),left:parseFloat(s.borderLeftWidth)}}}gi(t){const i=window.visualViewport,s=e.X(),n=i?.height??window.innerHeight,h=i&&s?i.offsetTop:0,o=this.Et.Si("flex").scrollHeight,r=parseFloat(this.options?.panelHeight??"220")||220,l=parseFloat(this.options?.panelMinHeight??"100")||100,a=n-(t.top+t.height)-3,c=t.top-3;let u="bottom",d=r,p=Math.min(o,d);const g=a-15;return(p>=l?g>=l:g>=p)?(u="bottom",d=Math.min(a-15,r)):c>=Math.max(p,l)?(u="top",d=Math.min(c-15,r)):a>=c?(u="bottom",d=Math.max(a-15,l)):(u="top",d=Math.max(c-15,l)),p=Math.min(o,d),{position:u,top:"bottom"===u?t.top+t.height+3+h:t.top-p-3+h,maxHeight:d,pi:p,Li:o}}fi(t){if(!this.options||!this.Et)return;const{position:i,top:s,maxHeight:e,pi:n}=this.gi(t);this.Et.resize({duration:this.options.animationtime,width:t.width,left:t.left,top:s,maxHeight:e,pi:n,position:i,animate:!0})}}class p{constructor(t=null){this.ft=null,this.node=null,this.Pi=null,this.Mi=null,this.options=null,this.Hi=null,this.ji=null,this.Ei=null,this.options=t,t&&this.init(t)}init(t){this.ft=e.I({$i:{tag:{node:"div",classList:["selective-ui-searchbox","hide"]},F:{Pi:{tag:{id:e.O(),node:"input",type:"search",classList:["selective-ui-searchbox-input"],placeholder:t.placeholder,role:"searchbox",P:t.Ut,j:"list"}}}}}),this.node=this.ft.view,this.Pi=this.ft.tags.Pi;let i=!1;const s=this.ft.tags.Pi;s.addEventListener("mousedown",t=>{t.stopPropagation()}),s.addEventListener("mouseup",t=>{t.stopPropagation()}),s.addEventListener("keydown",t=>{i=!1,"ArrowDown"===t.key||"Tab"===t.key?(t.preventDefault(),t.stopPropagation(),i=!0,this.Hi?.(1)):"ArrowUp"===t.key?(t.preventDefault(),t.stopPropagation(),i=!0,this.Hi?.(-1)):"Enter"===t.key?(t.preventDefault(),t.stopPropagation(),i=!0,this.ji?.()):"Escape"===t.key&&(t.preventDefault(),t.stopPropagation(),i=!0,this.Ei?.())}),s.addEventListener("input",()=>{i||this.Mi?.(s.value,!0)})}show(){this.node&&this.Pi&&this.options&&(this.node.classList.remove("hide"),this.Pi.readOnly=!this.options.searchable,this.options.searchable&&requestAnimationFrame(()=>{this.Pi?.focus()}))}hide(){this.node&&this.node.classList.add("hide")}clear(t=!0){this.ft&&(this.ft.tags.Pi.value="",this.Mi?.("",t))}Ii(t){this.Pi&&(this.Pi.placeholder=e.J(t))}Fi(t){this.Pi&&this.Pi.setAttribute("aria-activedescendant",t)}}class g{constructor(t=null){this.Vi=null,this.ki=null,this.Ri=!1,t&&this.ui(t)}ui(t){if("string"==typeof t){const i=document.querySelector(t);return void(i instanceof HTMLElement&&(this.element=i))}this.element=t}cancel(){return this.Vi&&(clearTimeout(this.Vi),this.Vi=null),this.ki&&(clearTimeout(this.ki),this.ki=null),this.Ri=!1,this}Si(t="flex"){if(!this.element)return{width:0,height:0,scrollHeight:0};const i={display:this.element.style.display,visibility:this.element.style.visibility,position:this.element.style.position,height:this.element.style.height,width:this.element.style.width};Object.assign(this.element.style,{display:t,visibility:"hidden",position:"fixed",height:"fit-content",width:"fit-content"});const s=window.getComputedStyle(this.element),e=parseFloat(s.borderTopWidth),n=parseFloat(s.borderBottomWidth),h=this.element.scrollHeight+e+n,o=this.element.getBoundingClientRect(),r={width:o.width,height:o.height+e+n,scrollHeight:h};return Object.assign(this.element.style,i),r}expand(t){if(!this.element)return this;this.cancel(),this.Ri=!0;const{duration:i=200,display:s="flex",width:e,left:n,top:h,maxHeight:o,pi:r,position:l="bottom",mi:a}=t;return Object.assign(this.element.style,{display:s,width:e+"px",left:n+"px",top:("bottom"===l?h:h+r)+"px",maxHeight:o+"px",height:"0px",opacity:"0",overflow:"hidden",transition:"none"}),this.element.classList.toggle("position-top","top"===l),this.element.classList.toggle("position-bottom","bottom"===l),requestAnimationFrame(()=>{Object.assign(this.element.style,{transition:`top ${i}ms, height ${i}ms, opacity ${i}ms`,top:h+"px",height:r+"px",opacity:"1",overflow:r>=o?"auto":"hidden"}),this.Vi=setTimeout(()=>{this.element.style.transition="none",this.Ri=!1,a?.()},i)}),this}collapse(t){if(!this.element)return this;this.cancel(),this.Ri=!0;const{duration:i=200,mi:s}=t,e=this.element.offsetHeight,n=this.element.offsetTop,h=this.element.classList.contains("position-top")?"top":"bottom",o=this.element.scrollHeight-this.element.offsetHeight>0,r="top"===h?n+e:n;return requestAnimationFrame(()=>{Object.assign(this.element.style,{transition:`height ${i}ms, top ${i}ms, opacity ${i}ms`,height:"0px",top:r+"px",opacity:"0",overflow:o?"auto":"hidden"}),this.Vi=setTimeout(()=>{Object.assign(this.element.style,{display:"none",transition:"none"}),this.Ri=!1,s?.()},i)}),this}showSwipeWidth(t){if(!this.element)return this;this.cancel(),this.Ri=!0;const{duration:i=200,display:s="block",mi:e}=t;Object.assign(this.element.style,{transition:"none",display:s,width:"fit-content"});const n=this.Si(s).width;return Object.assign(this.element.style,{width:"0px"}),requestAnimationFrame(()=>{Object.assign(this.element.style,{transition:`width ${i}ms`,width:n+"px",overflow:"hidden"})}),this.Vi=setTimeout(()=>{Object.assign(this.element.style,{width:"",overflow:"",transition:""}),this.Ri=!1,e?.()},i),this}hideSwipeWidth(t){if(!this.element)return this;this.cancel(),this.Ri=!0;const{duration:i=200,mi:s}=t,e=this.Si().width;return Object.assign(this.element.style,{transition:"none",width:e+"px"}),requestAnimationFrame(()=>{Object.assign(this.element.style,{transition:`width ${i}ms`,width:"0px",overflow:"hidden"})}),this.Vi=setTimeout(()=>{Object.assign(this.element.style,{width:"",overflow:"",transition:"",display:""}),this.Ri=!1,s?.()},i),this}resize(t){if(!this.element)return this;this.ki&&clearTimeout(this.ki);const{duration:i=200,width:s,left:e,top:n,maxHeight:h,pi:o,position:r="bottom",animate:l=!0,mi:a}=t,c=(this.element.classList.contains("position-top")?"top":"bottom")!==r,u=this.element.scrollHeight>h;return this.element.classList.toggle("position-top","top"===r),this.element.classList.toggle("position-bottom","bottom"===r),c&&(this.element.style.transition=`top ${i}ms ease-out, height ${i}ms ease-out, max-height ${i}ms ease-out;`),requestAnimationFrame(()=>{const t={width:s+"px",left:e+"px",top:n+"px",maxHeight:h+"px",height:o+"px",overflowY:u?"auto":"hidden"},r=Math.abs(this.element.offsetHeight-o);l&&(c||r>5)?t.transition=`height ${i}ms, top ${i}ms`:this.ki=setTimeout(()=>{this.element?.style&&(this.element.style.transition="none")},i),Object.assign(this.element.style,t),l&&(c||r>1)?this.ki=setTimeout(()=>{this.element.style.transition="none",c&&delete this.element.style.transition,a?.()},i):(c&&delete this.element.style.transition,a?.())}),this}get _i(){return this.Ri}}class m{get value(){return this.targetElement?.getAttribute("value")??null}constructor(t,i=null,s=null){this.targetElement=null,this.view=null,this.position=-1,this.Tt=!1,this.options=t,this.targetElement=i,this.view=s}update(t){this.targetElement=t,this.Di()}Di(){}}class f extends m{constructor(t,i){super(t,i??null,null),this.label="",this.items=[],this.collapsed=!1,this.Ni=[],i&&(this.label=i.label,this.collapsed=e.R(i.dataset?.collapsed))}get value(){return this.items.map(t=>t.value)}get Bi(){return this.items.filter(t=>t.selected)}get zi(){return this.items.filter(t=>t.visible)}get Gi(){return this.zi.length>0}update(t){this.label=t.label,this.view?.Ui(this.label)}Di(){this.view&&(this.view.Ui(this.label),this.view.Wi(this.collapsed))}qi(t){this.Ni.push(t)}Ji(){this.collapsed=!this.collapsed,this.view?.Wi(this.collapsed),n.ot([this,this.collapsed],...this.Ni)}Ki(t){this.items.push(t),t.group=this}removeItem(t){const i=this.items.indexOf(t);i>-1&&(this.items.splice(i,1),t.group=null)}Qi(){this.view?.Qi()}}class b extends m{constructor(){super(...arguments),this.Yi=[],this.Xi=[],this.Zi=[],this.ts=!0,this.ss=!1,this.group=null}get es(){return this.dataset?.imgsrc||this.dataset?.image||""}get hasImage(){return!!this.es}get value(){return this.targetElement?.value??""}get selected(){return!!this.targetElement?.selected}set selected(t){this.ns=t,n.ot([this,t],...this.Yi)}get visible(){return this.ts}set visible(t){if(this.ts===t)return;this.ts=t;const i=this.view?.hs?.();i&&i.classList.toggle("hide",!t),n.ot([this,t],...this.Zi)}get ns(){return this.selected}set ns(t){const i=this.view?.view?.tags?.rs,s=this.view?.hs?.();i&&(i.checked=t),s&&this.targetElement&&(s.classList.toggle("checked",!!t),s.setAttribute("aria-selected",t?"true":"false"),this.targetElement.toggleAttribute("selected",!!t)),this.targetElement&&(this.targetElement.selected=t),n.ot([this,t],...this.Xi)}get text(){const t=e.q(this.dataset?.mask??this.targetElement?.text??"");return this.options.allowHtml?t:e.J(t)}get textContent(){return this.options.allowHtml?e.J(this.text).trim():this.text.trim()}get dataset(){return this.targetElement?.dataset??{}}get ls(){return this.ss}set ls(t){const i=!!t,s=this.view?.hs?.();this.ss!==i&&(this.ss=i),s&&s.classList.toggle("highlight",i)}cs(t){this.Yi.push(t)}us(t){this.Xi.push(t)}hi(t){this.Zi.push(t)}Di(){if(!this.view)return;const t=this.view.view.tags.ds;t&&(this.options.allowHtml?t.innerHTML=this.text:t.textContent=this.textContent);const i=this.view.view.tags.ps;i&&this.hasImage&&(i.src=this.es,i.alt=this.text),this.targetElement&&(this.ns=this.targetElement.selected)}}class w{constructor(t){this.gs=[],this.fs=null,this.bs=null,this.ws=null,this.options=null,this.options=t}ys(t){this.vs=t}xs(t){this.Os=t}Cs(t){const i=this.Ts(t),s=i!==this.ws;return s&&(this.ws=i),s}Ts(t){return t.map(t=>{if("OPTGROUP"===t.tagName){const i=t,s=Array.from(i.children).map(t=>`${t.value}:${t.text}:${t.selected}`).join("\n");return`G:${i.label}:${s}`}return`O:${t.value}:${t.text}:${t.selected}`}).join("\n\n")}As(t){this.gs=[];let i=null;return t.forEach(t=>{if("OPTGROUP"===t.tagName)i=new f(this.options,t),this.gs.push(i);else if("OPTION"===t.tagName){const s=t,e=new b(this.options,s),n=s.__parentGroup;n&&i&&n===i.targetElement?(i.Ki(e),e.group=i):(this.gs.push(e),i=null)}}),this.gs}replace(t){this.ws=null,this.As(t),this.fs&&this.fs.Ss(this.gs),this.refresh()}notify(){this.fs&&this.refresh()}load(t,i={},s={}){this.fs=new this.vs(this.gs),Object.assign(this.fs,i),this.bs=new this.Os(t),this.bs.Ls(this.fs),Object.assign(this.bs,s)}update(t){if(!this.Cs(t))return;const i=this.gs,s=[],e=new Map,n=new Map;i.forEach(t=>{t instanceof f?e.set(t.label,t):t instanceof b&&n.set(`${t.value}::${t.textContent}`,t)});let h=null,o=0;t.forEach(t=>{if("OPTGROUP"===t.tagName){const i=t,n=e.get(i.label);n?(n.label!==i.label&&n.update(i),n.position=o,n.items=[],h=n,s.push(n),e.delete(i.label)):(h=new f(this.options,i),h.position=o,s.push(h)),o++}else if("OPTION"===t.tagName){const i=t,e=`${i.value}::${i.text}`,r=n.get(e);if(r)r.update(i),r.position=o,i.__parentGroup&&h?(h.Ki(r),r.group=h):(r.group=null,s.push(r)),n.delete(e);else{const t=new b(this.options,i);t.position=o,i.__parentGroup&&h?(h.Ki(t),t.group=h):s.push(t)}o++}}),e.forEach(t=>{t.view?.hs?.()?.remove?.()}),n.forEach(t=>{t.view?.hs?.()?.remove?.()}),this.gs=s,this.fs&&this.fs.Ps(this.gs),this.onUpdated(),this.refresh()}onUpdated(){}Zt(t){this.fs&&(this.fs.Ms=t)}refresh(){this.bs&&(this.bs.refresh(),this.onUpdated())}Jt(){return{Hs:this.gs,Kt:this.fs,Rt:this.bs}}js(t){this.fs?.Es(t)}$s(t){this.fs?.Is(t)}}class y{constructor(t=null){this.Fs=null,this.Kt=null,this.Fs=t}Vs(t){this.Fs=t}Ls(t){this.Kt=t,t.li("items",()=>{this.clear()}),t.oi("items",()=>{this.ks()}),this.ks()}clear(){this.Fs&&this.Fs.replaceChildren()}ks(){this.Kt&&this.Fs&&this.Kt.Rs(this.Fs)}refresh(){this.ks()}}class v{constructor(t=null){this.ft=null,this.node=null,this.options=null,this._s=null,this.Ds=null,this.Ns=null,t&&this.init(t)}init(t){this.ft=e.I({Bs:{tag:{node:"div",classList:["selective-ui-accessorybox","hide"],onmouseup:t=>{t.stopPropagation()}}}}),this.node=this.ft.view,this.options=t}zs(t){this._s=t,this.Ds=t.parentElement,this.Gs()}Gs(){this.Ds&&this.node&&this._s&&this.options&&this.Ds.insertBefore(this.node,"top"===this.options.accessoryStyle?this._s:this._s.nextSibling)}Us(t){this.Ns=t}Ws(t){this.node&&this.options&&(this.node.replaceChildren(),t.length>0&&this.options.multiple?(this.node.classList.remove("hide"),t.forEach(t=>{e.I({qs:{tag:{node:"div",classList:["accessory-item"]},F:{Js:{tag:{node:"span",classList:["accessory-item-button"],role:"button",ariaLabel:`${this.options.textAccessoryDeselect}${t.textContent}`,title:`${this.options.textAccessoryDeselect}${t.textContent}`,onclick:i=>{i.preventDefault(),this.Ns?.js?.("select"),setTimeout(()=>{t.selected=!1},10)}}},Ks:{tag:{node:"span",classList:["accessory-item-content"],innerHTML:t.text}}}}},this.node)})):this.node.classList.add("hide"),n.rt(window,"resize"))}}class x{constructor(t,i,s){this.Qs=null,this.Ys=null,this.Xs=null,this.Zs=null,this.te={currentPage:0,totalPages:1,hasMore:!1,Oi:!1,ie:"",xi:!1},this.se=t,this.Bt=i,this.Zs=s}ee(){return!!this.Qs}async ne(t){if(!this.Qs)return{Ti:!1,items:[],message:"Ajax not configured"};const i=Array.isArray(t)?t:[t];if(0===i.length)return{Ti:!0,items:[]};try{const t=this.Qs;let s,e;if(s="function"==typeof t.he?t.he(i):{values:i.join(","),oe:"1",..."function"==typeof t.data?t.data.bind(this.Zs.re.find(this.Zs.container.targetElement))("",0):t.data??{}},"POST"===(t.method??"GET")){const i=new URLSearchParams;Object.keys(s).forEach(t=>i.append(t,s[t]+"")),e=await fetch(t.url,{method:"POST",body:i,headers:{"Content-Type":"application/x-www-form-urlencoded"}})}else{const i=""+new URLSearchParams(s);e=await fetch(`${t.url}?${i}`)}if(!e.ok)throw Error("HTTP error! status: "+e.status);const n=await e.json();return{Ti:!0,items:this.le(n).items}}catch(t){return console.error("Load by values error:",t),{Ti:!1,message:t?.message,items:[]}}}ae(t){const i=Array.from(this.se.options).map(t=>t.value);return{ce:t.filter(t=>i.includes(t)),ue:t.filter(t=>!i.includes(t))}}de(t){this.Qs=t}setPopup(t){this.Xs=t}yi(){return{...this.te}}pe(){this.te={currentPage:0,totalPages:1,hasMore:!1,Oi:!1,ie:"",xi:this.te.xi}}clear(){this.te.ie="";const{Hs:t}=this.Bt.Jt(),i=[];for(const s of t)s instanceof b?i.push(s):s instanceof f&&Array.isArray(s.items)&&i.push(...s.items);i.forEach(t=>{t.visible=!0})}async search(t,i=!1){return this.Qs?this.ge(t,i):this.me(t)}async Ci(){return this.Qs?this.te.Oi?{Ti:!1,message:"Already loading"}:this.te.xi?this.te.hasMore?(this.te.currentPage++,this.ge(this.te.ie,!0)):{Ti:!1,message:"No more data"}:{Ti:!1,message:"Pagination not enabled"}:{Ti:!1,message:"Ajax not enabled"}}async me(t){this.fe(t)&&(this.te.ie=t);const i=((t??"")+"").toLowerCase(),s=e.K(i),{Hs:n}=this.Bt.Jt(),h=[];for(const t of n)t instanceof b?h.push(t):t instanceof f&&Array.isArray(t.items)&&h.push(...t.items);let o=!1;return h.forEach(t=>{const n=((t.textContent??t.text??"")+"").toLowerCase(),h=e.K(n),r=""===i||n.includes(i)||h.includes(s);t.visible=r,r&&(o=!0)}),{Ti:!0,be:o,isEmpty:0===h.length}}fe(t){return t!==this.te.ie}async ge(t,i=!1){const s=this.Qs;this.fe(t)&&(this.pe(),this.te.ie=t,i=!1),this.te.Oi=!0,this.Xs?.Xt(),this.Ys?.abort(),this.Ys=new AbortController;const e=this.te.currentPage,n=Array.from(this.se.selectedOptions).map(t=>t.value).join(",");let h;"function"==typeof s.data?(h=s.data.bind(this.Zs.re.find(this.Zs.container.targetElement))(t,e),h&&void 0===h.selectedValue&&(h.selectedValue=n)):h={search:t,page:e,selectedValue:n,...s.data??{}};try{let t;if("POST"===(s.method??"GET")){const i=new URLSearchParams;Object.keys(h).forEach(t=>i.append(t,h[t]+"")),t=await fetch(s.url,{method:"POST",body:i,headers:{"Content-Type":"application/x-www-form-urlencoded"},signal:this.Ys.signal})}else{const i=""+new URLSearchParams(h);t=await fetch(`${s.url}?${i}`,{signal:this.Ys.signal})}const e=await t.json(),n=this.le(e);return n.we?(this.te.xi=!0,this.te.currentPage=n.page,this.te.totalPages=n.totalPages,this.te.hasMore=n.hasMore):this.te.xi=!1,this.ye(n.items,!!s.keepSelected,i),this.te.Oi=!1,this.Xs?.ni(),{Ti:!0,be:n.items.length>0,isEmpty:0===n.items.length,we:n.we,hasMore:n.hasMore,currentPage:n.page,totalPages:n.totalPages}}catch(t){return this.te.Oi=!1,this.Xs?.ni(),"AbortError"===t?.name?{Ti:!1,message:"Request aborted"}:(console.error("Ajax search error:",t),{Ti:!1,message:t?.message})}}le(t){let i=[],s=!1,e=0,n=1,h=!1;return t.object&&Array.isArray(t.object)?(i=t.object,void 0!==t.page&&(s=!0,e=parseInt(t.page??0,10),n=parseInt(t.totalPages??t.total_page??1,10),h=e<n-1)):t.data&&Array.isArray(t.data)?(i=t.data,void 0!==t.page&&(s=!0,e=parseInt(t.page??0,10),n=parseInt(t.totalPages??t.total_page??1,10),h=t.hasMore??e<n-1)):Array.isArray(t)?i=t:t.items&&Array.isArray(t.items)&&(i=t.items,t.pagination&&(s=!0,e=parseInt(t.pagination.page??0,10),n=parseInt(t.pagination.totalPages??t.pagination.total_page??1,10),h=t.pagination.hasMore??e<n-1)),{items:i.map(t=>{if(t instanceof HTMLOptionElement||t instanceof HTMLOptGroupElement)return t;if("optgroup"===t.type||t.ve||t.group||t.label)return{type:"optgroup",label:t.label??t.name??t.title??"",data:t.data??{},options:(t.options??t.items??[]).map(t=>({value:t.value??t.id??t.key??"",text:t.text??t.label??t.name??t.title??"",selected:t.selected??!1,data:t.data??(t.imgsrc?{imgsrc:t.imgsrc}:{})}))};const i=t.data??{};return t?.imgsrc&&(i.imgsrc=t.imgsrc),{type:"option",value:t.value??t.id??t.key??"",text:t.text??t.label??t.name??t.title??"",selected:t.selected??!1,data:i}}),we:s,page:e,totalPages:n,hasMore:h}}ye(t,i,s=!1){const e=this.se;let n=[];i&&(n=Array.from(e.selectedOptions).map(t=>t.value)),s||(e.innerHTML=""),t.forEach(t=>{if("option"!==t.type&&t.type||""!==t.value||""!==t.text)if(t instanceof HTMLOptionElement||t instanceof HTMLOptGroupElement)e.appendChild(t);else if("optgroup"===t.type){const s=document.createElement("optgroup");s.label=t.label,t.data&&Object.keys(t.data).forEach(i=>{s.dataset[i]=t.data[i]+""}),Array.isArray(t.options)&&t.options.forEach(t=>{const e=document.createElement("option");e.value=t.value,e.text=t.text,t.data&&Object.keys(t.data).forEach(i=>{e.dataset[i]=t.data[i]+""}),(t.selected||i&&n.includes(e.value))&&(e.selected=!0),s.appendChild(e)}),e.appendChild(s)}else{const s=document.createElement("option");s.value=t.value,s.text=t.text,t.data&&Object.keys(t.data).forEach(i=>{s.dataset[i]=t.data[i]+""}),(t.selected||i&&n.includes(s.value))&&(s.selected=!0),e.appendChild(s)}}),e.dispatchEvent(new CustomEvent("options:changed"))}}class O{constructor(t){this.xe=null,this.Oe=null,this.Ce=50,this.se=t,this.Oe=this.Te(),this.Ae=new MutationObserver(()=>{this.xe&&clearTimeout(this.xe),this.xe=setTimeout(()=>{this.Se()},this.Ce)}),t.addEventListener("options:changed",()=>{this.xe&&clearTimeout(this.xe),this.xe=setTimeout(()=>{this.Se()},this.Ce)})}Te(){const t=Array.from(this.se.options);return{length:t.length,values:t.map(t=>t.value).join(","),Le:t.map(t=>t.text).join(","),selected:t.map(t=>t.selected+"").join(",")}}Pe(){const t=this.Te(),i=JSON.stringify(t)!==JSON.stringify(this.Oe);return i&&(this.Oe=t),i}Se(){this.Pe()&&this.Mt(this.se)}connect(){this.Ae.observe(this.se,{childList:!0,subtree:!1,attributes:!0,attributeFilter:["selected","value","disabled"]})}Mt(t){}disconnect(){this.xe&&clearTimeout(this.xe),this.xe=null,this.Ae.disconnect()}}class C{constructor(t){this.xe=null,this.Me=t,this.Ae=new MutationObserver(t=>{let i=!1;for(const s of t)if("attributes"===s.type&&s.attributeName?.startsWith("data-")){i=!0;break}i&&(this.xe&&clearTimeout(this.xe),this.xe=setTimeout(()=>{this.Mt({...this.Me.dataset})},50))}),t.addEventListener("dataset:changed",()=>{this.Mt({...this.Me.dataset})})}connect(){this.Ae.observe(this.Me,{attributes:!0,attributeOldValue:!0})}Mt(t){}disconnect(){this.xe&&clearTimeout(this.xe),this.xe=null,this.Ae.disconnect()}}class T{constructor(t=[]){this.items=[],this.He=e.O(12),this.Ms=!1,this.items=t,this.je()}je(){}Ee(t,i,s){const e=i;t.Tt?e?.update?.():e?.ks?.()}li(t,i){e.tt.on(`${t}ing_${this.He}`,i,{et:1})}oi(t,i){e.tt.on(`${t}_${this.He}`,i)}Is(t,...i){e.tt.run(`${t}_${this.He}`,...i)}Es(t,...i){e.tt.run(`${t}ing_${this.He}`,...i)}$e(t,i){return null}Ie(){return this.items.length}Fe(t){this.Es("items",t),this.items=t,this.Is("items",t)}Ss(t){this.Fe(t)}Rs(t){for(let i=0;i<this.Ie();i++){const s=this.items[i];let e=s.view;s.Tt||(e=this.$e(t,s),s.view=e),this.Ee(s,e,i),s.Tt=!0}}Ps(t){}}class A{constructor(t){this.parent=null,this.view=null,this.parent=t}ks(){}update(){}hs(){if(!this.view?.view)throw Error("View is not mounted. Did you forget to set this.view?");return this.view.view}}class S extends A{constructor(){super(...arguments),this.view=null}ks(){const t=e.O(7);this.view=e.$({Ve:{tag:{node:"div",classList:["selective-ui-group"],role:"group",L:`seui-${t}-header`,id:`seui-${t}-group`},F:{ke:{tag:{node:"div",classList:["selective-ui-group-header"],role:"presentation",id:`seui-${t}-header`}},Re:{tag:{node:"div",classList:["selective-ui-group-items"],role:"group"}}}}}),this.parent.appendChild(this.view.view)}update(){this.Ui()}Ui(t=null){this.view&&null!==t&&(this.view.tags.ke.textContent=t)}_e(){if(!this.view)throw Error("GroupView is not rendered.");return this.view.tags.Re}Qi(){if(!this.view)return;const t=Array.from(this.view.tags.Re.children).filter(t=>!t.classList.contains("hide"));this.view.view.classList.toggle("hide",!(t.length>0))}Wi(t){this.view&&(this.view.view.classList.toggle("collapsed",t),this.view.tags.ke.setAttribute("aria-expanded",t?"false":"true"))}}class L extends A{constructor(t){super(t),this.view=null,this.De=null,this.Ne=null,this.Be=!1,this.ze()}ze(){const t=this;this.De={isMultiple:!1,hasImage:!1,imagePosition:"right",imageWidth:"60px",imageHeight:"60px",imageBorderRadius:"4px",labelValign:"center",labelHalign:"left"},this.Ne=new Proxy(this.De,{set(i,s,e){if("string"!=typeof s)return!0;const n=s,h=i[n];return h!==e&&(i[n]=e,t.Be&&t.Ge(n,e,h)),!0}})}get isMultiple(){return this.De.isMultiple}set isMultiple(t){this.Ne.isMultiple=!!t}get hasImage(){return this.De.hasImage}set hasImage(t){this.Ne.hasImage=!!t}get Ue(){return this.Ne}set Ue(t){if(!t||!this.Ne||!this.De)return;const i={};void 0!==t.imageWidth&&t.imageWidth!==this.De.imageWidth&&(i.imageWidth=t.imageWidth),void 0!==t.imageHeight&&t.imageHeight!==this.De.imageHeight&&(i.imageHeight=t.imageHeight),void 0!==t.imageBorderRadius&&t.imageBorderRadius!==this.De.imageBorderRadius&&(i.imageBorderRadius=t.imageBorderRadius),void 0!==t.imagePosition&&t.imagePosition!==this.De.imagePosition&&(i.imagePosition=t.imagePosition),void 0!==t.labelValign&&t.labelValign!==this.De.labelValign&&(i.labelValign=t.labelValign),void 0!==t.labelHalign&&t.labelHalign!==this.De.labelHalign&&(i.labelHalign=t.labelHalign),Object.keys(i).length>0&&Object.assign(this.Ne,i)}ks(){const t=["selective-ui-option-view"],i=e.O(7),s="option_"+i;this.De.isMultiple&&t.push("multiple"),this.De.hasImage&&(t.push("has-image"),t.push("image-"+this.De.imagePosition));const n={rs:{tag:{node:"input",type:this.De.isMultiple?"checkbox":"radio",classList:"allow-choice",id:s}},...this.De.hasImage&&{ps:{tag:{node:"img",classList:"option-image",style:{width:this.De.imageWidth,height:this.De.imageHeight,borderRadius:this.De.imageBorderRadius}}}},We:{tag:{node:"label",htmlFor:s,classList:["align-vertical-"+this.De.labelValign,"align-horizontal-"+this.De.labelHalign]},F:{ds:{tag:{node:"div"}}}}};this.view=e.$({qe:{tag:{node:"div",id:`seui-${i}-option`,classList:t,role:"option",ariaSelected:"false",tabIndex:"-1"},F:n}}),this.parent.appendChild(this.view.view),this.Be=!0}Ge(t,i,s){const e=this.view;if(!e||!e.view)return;const n=e.view,h=e.tags?.rs,o=e.tags?.We;switch(t){case"isMultiple":{const t=!!i;n.classList.toggle("multiple",t),h&&h.type!==(t?"checkbox":"radio")&&(h.type=t?"checkbox":"radio");break}case"hasImage":{const t=!!i;if(n.classList.toggle("has-image",t),t)n.classList.add("image-"+this.De.imagePosition),this.Je();else{n.className=n.className.replace(/image-(top|right|bottom|left)/g,"").trim();const t=e.tags?.ps;t&&(t.remove(),e.tags.ps=null)}break}case"imagePosition":this.De.hasImage&&(n.className=n.className.replace(/image-(top|right|bottom|left)/g,"").trim(),n.classList.add("image-"+i));break;case"imageWidth":case"imageHeight":case"imageBorderRadius":{const s=e.tags?.ps;if(s){const e="imageWidth"===t?"width":"imageHeight"===t?"height":"borderRadius",n=i+"";s.style[e]!==n&&(s.style[e]=n)}break}case"labelValign":case"labelHalign":if(o){const t=`align-vertical-${this.De.labelValign} align-horizontal-${this.De.labelHalign}`;o.className!==t&&(o.className=t)}}}Je(){const t=this.view;if(!t||!t.view)return;const i=t.tags?.ps;if(i)return;const s=t.view,e=t.tags?.We,n=document.createElement("img");n.className="option-image",n.style.width=this.De.imageWidth,n.style.height=this.De.imageHeight,n.style.borderRadius=this.De.imageBorderRadius,e&&e.parentElement?s.insertBefore(n,e):s.appendChild(n),t.tags.ps=n}}class P extends T{constructor(t=[]){super(t),this.isMultiple=!1,this.Ke=[],this.Qe=-1,this.Ye=null,this.groups=[],this.Xe=[],this.Ze()}Ze(){this.Xe=[],this.groups=[],this.items.forEach(t=>{t instanceof f?(this.groups.push(t),this.Xe.push(...t.items)):t instanceof b&&this.Xe.push(t)})}$e(t,i){return i instanceof f?new S(t):new L(t)}Ee(t,i,s){t.position=s,t instanceof f?this.tn(t,i,s):t instanceof b&&this.sn(t,i,s),t.Tt=!0}tn(t,i,s){super.Ee(t,i,s),t.view=i;const e=i.view.tags.ke;e.textContent=t.label,t.Tt||(e.style.cursor="pointer",e.addEventListener("click",()=>{t.Ji()}),t.qi((t,i,s)=>{i.items.forEach(t=>{const i=t.view?.hs?.();i&&(i.style.display=s?"none":"")}),this.en(i,s)}));const n=i._e();t.items.forEach((t,i)=>{let s=t.view;t.Tt&&s||(s=new L(n)),this.sn(t,s,i),t.Tt=!0}),i.Wi(t.collapsed),i.Qi()}sn(t,i,s){if(i.isMultiple=this.isMultiple,i.hasImage=t.hasImage,i.Ue={imageWidth:t.options.imageWidth,imageHeight:t.options.imageHeight,imageBorderRadius:t.options.imageBorderRadius,imagePosition:t.options.imagePosition,labelValign:t.options.labelValign,labelHalign:t.options.labelHalign},t.Tt||super.Ee(t,i,s),t.view=i,t.hasImage){const s=i.view.tags.ps;s&&(s.src!==t.es&&(s.src=t.es),s.alt!==t.text&&(s.alt=t.text))}i.view.tags.ds.innerHTML=t.text,t.Tt||(i.view.tags.qe.addEventListener("click",i=>{i.stopPropagation(),i.preventDefault(),this.Ms||(this.isMultiple?(this.Es("select"),setTimeout(()=>{t.selected=!t.selected},5)):!0!==t.selected&&(this.Es("select"),setTimeout(()=>{this.Ye&&(this.Ye.selected=!1),t.selected=!0},5)))}),i.view.tags.qe.title=t.textContent,i.view.tags.qe.addEventListener("mouseenter",()=>{this.Ms||this.nn(this.Xe.indexOf(t),!1)}),t.cs(()=>{this.Is("selected")}),t.us((i,s,e)=>{e&&(this.Ye=t),this.Is("selected_internal")}),t.hi((t,i)=>{i.group?.Qi(),this.hn()})),t.selected&&(this.Ye=t,t.ns=!0)}Fe(t){this.Es("items",t),this.items=t,this.Ze(),this.Is("items",t)}Ss(t){this.Fe(t)}Ps(t){this.items=t,this.Ze()}rn(){return this.Xe.filter(t=>t.selected)}ln(){return this.Xe.find(t=>t.selected)}Qt(t){this.isMultiple&&this.Xe.forEach(i=>{i.selected=t})}hi(t){this.Ke.push(t)}hn(){const t=this.Xe.filter(t=>t.visible).length,i=this.Xe.length;this.Ke.forEach(s=>{s({an:t,cn:i,ii:t>0,isEmpty:0===i})})}si(){const t=this.Xe.filter(t=>t.visible).length,i=this.Xe.length;return{an:t,cn:i,ii:t>0,isEmpty:0===i}}un(){this.nn(0)}navigate(t,i=!0){const s=this.Xe.filter(t=>t.visible);if(0===s.length)return;let e=s.findIndex(t=>t===this.Xe[this.Qe]);-1===e&&(e=-1);let n=e+t;n>=s.length&&(n=0),n<0&&(n=s.length-1);const h=this.Xe.indexOf(s[n]);this.nn(h,i)}dn(){if(this.Qe>-1&&this.Xe[this.Qe]){const t=this.Xe[this.Qe];if(t.visible){const i=t.view?.hs?.();i&&i.click()}}}nn(t,i=!0){let s=0;if("number"==typeof t)s=t;else if(t instanceof b){const i=this.Xe.indexOf(t);s=i>-1?i:0}else s=0;this.Qe>-1&&this.Xe[this.Qe]&&(this.Xe[this.Qe].ls=!1);for(let t=s;t<this.Xe.length;t++){const s=this.Xe[t];if(s.visible){if(s.ls=!0,this.Qe=t,i){const t=s.view?.hs?.();t&&t.scrollIntoView({block:"center",behavior:"smooth"})}return void this.pn(t,s.view?.hs?.()?.id)}}}pn(t,i){}en(t,i){}}class M{constructor(t=null,i=null){this.container={},this.oldValue=null,this.node=null,this.options=null,this.gn=null,this.isOpen=!1,this.mn=!1,this.fn=!1,this.re=null,t&&this.init(t,i)}get isDisabled(){return!!this.options?.disabled}set isDisabled(t){this.options&&this.node&&(this.options.disabled=t,this.node.classList.toggle("disabled",t),this.node.setAttribute("aria-disabled",t+""),this.container.tags?.bi?.setAttribute("aria-disabled",t+""))}get bn(){return!!this.options?.readonly}set bn(t){this.options&&this.node&&(this.options.readonly=t,this.node.classList.toggle("readonly",t))}get isVisible(){return!!this.options?.visible}set isVisible(t){this.options&&this.node&&(this.options.visible=t,this.node.classList.toggle("invisible",!t))}init(i,s){const n=e.D(i).options,l=new o(n),a=new r,c=new p(n),effector=t(),u=new w(n),g=new v(n),m=new x(i,u,this),f=new O(i),b=new C(i);this.re=s,this.options=n,l.node&&(l.node.id=(n.wn??"")+"");const T=e.I({yn:{tag:{node:"div",classList:"selective-ui-MAIN"},F:{bi:{tag:{node:"div",classList:"selective-ui-view",tabIndex:0,onkeydown:t=>{"Enter"!==t.key&&" "!==t.key&&"ArrowDown"!==t.key||(t.preventDefault(),this.vn()?.open())}},F:{xn:{tag:l.node},On:{tag:a.node},$i:{tag:c.node}}}}}},null);this.container=T,this.node=T.view,i.parentNode?.insertBefore(this.node,i),this.node.insertBefore(i,T.tags.bi),g.zs(T.tags.bi),g.Us(u),T.tags.bi.addEventListener("mousedown",t=>{t.stopPropagation(),t.preventDefault()}),h.ct(i,T.tags.bi),i.classList.add("init"),u.ys(P),u.xs(y),u.As(e.Y(i)),u.onUpdated=()=>{T.Cn?.ei?.()},this.gn=u,T.Tn=m,T.placeholder=l,T.An=a,T.Sn=c,T.effector=effector,T.targetElement=i,T.Ln=g,T.Pn=f,T.Mn=b,T.Cn=new d(i,n,u),T.Cn.ci(effector),T.Cn.wi(m,n),T.Cn.ai("selected",()=>{this.vn()?.change(null,!0)}),T.Cn.ai("selected_internal",()=>{this.vn()?.change(null,!1)}),T.Cn.ri("select",()=>{this.oldValue=this.vn()?.value??""}),this.vn()?.change(null,!1),f.connect(),f.Mt=t=>{u.update(e.Y(t)),this.vn()?.refreshMask()},b.connect(),b.Mt=t=>{e.R(t.disabled)!==this.isDisabled&&(this.isDisabled=e.R(t.disabled)),e.R(t.readonly)!==this.bn&&(this.bn=e.R(t.readonly)),e.R(t.visible)!==this.isVisible&&(this.isVisible=e.R(t.visible??"1"))},i.addEventListener("options:changed",()=>{u.update(e.Y(i)),this.vn()?.refreshMask(),T.Cn?.ei?.()}),n.ajax&&m.de(n.ajax);const A=T.Cn.jt,S=(t,i)=>{i||""!==t?(""!==t&&(this.fn=!0),m.search(t).then(t=>{T.Cn?.ei?.(),t?.be&&setTimeout(()=>{A.un()},n.animationtime??0)}).catch(t=>{console.error("Search error:",t)})):m.clear()};let L=null;c.Mi=(t,i)=>{m.fe(t)&&(m.ee()?(L&&clearTimeout(L),T.Cn?.Xt?.(),L=setTimeout(()=>{S(t,i)},n.delaysearchtime??0)):S(t,i))},m.setPopup(T.Cn),c.Hi=t=>{A.navigate(t)},c.ji=()=>{A.dn()},c.Ei=()=>{this.vn()?.close(),T.tags.bi.focus()},A.pn=(t,i)=>{i&&c.Fi(i)},A.en=()=>{T.Cn?.ei?.()},this.isDisabled=e.R(n.disabled),this.bn=e.R(n.readonly)}Hn(){const t=this.container??{},{Pn:i,Mn:s}=t;i?.disconnect&&i.disconnect(),s?.disconnect&&s.disconnect()}vn(){const t=this.container,i=this,s=()=>this.re.find(t.targetElement),h=e.D(t.targetElement);if(!h)return null;const o=h.options,r={get targetElement(){return t.targetElement},get placeholder(){return t.placeholder.get()},set placeholder(i){t.placeholder?.set(i),t.Sn?.Ii(i)},get oldValue(){return i.oldValue},set value(t){this.setValue(null,t,!0)},get value(){const t=this.valueArray,i=t.length;return i>1?t:0===i?"":t[0]},get valueArray(){const t=[];return i.jn().forEach(i=>{i.selected&&t.push(i.value)}),t},get valueString(){return this.valueArray.join(o.customDelimiter)},get valueOptions(){const t=[];return i.jn(!0).forEach(i=>{t.push(i)}),t},get mask(){const t=[];return i.jn(!0).forEach(i=>{t.push(i.text)}),t},get valueText(){const t=[];i.jn(!0).forEach(i=>{t.push(i.text)});const s=t.length;return s>1?t:0===s?"":t[0]},get isOpen(){return i.isOpen},getParent:()=>t.view.parentElement,valueDataset(t,s=null,e=!1){var n=[];if(i.jn(!0).forEach(t=>{n.push(s?t.dataset[s]:t.dataset)}),!e){if(0==n.length)return"";if(1==n.length)return n[0]}return n},selectAll(t,e=!0){if(!(o.multiple&&o.maxSelected>0&&i.jn().length>o.maxSelected)&&!this.disabled&&!this.readonly&&o.multiple){if(e){if(n.ot([s()],...o.on.beforeChange).isCancel)return;i.oldValue=this.value}i.jn().forEach(t=>{t.ns=!0}),this.change(!1,e)}},deSelectAll(t,e=!0){if(!this.disabled&&!this.readonly&&o.multiple){if(e){if(n.ot([s()],...o.on.beforeChange).isCancel)return;i.oldValue=this.value}i.jn().forEach(t=>{t.ns=!1}),this.change(!1,e)}},setValue(e=null,h,r=!0,l=!1){if(Array.isArray(h)||(h=[h]),0===(h=h.filter(t=>""!==t&&null!=t)).length)return i.jn().forEach(t=>t.ns=!1),void this.change(!1,r);if(o.multiple&&o.maxSelected>0&&h.length>o.maxSelected)console.warn(`Cannot select more than ${o.maxSelected} items`);else if(l||!this.disabled&&!this.readonly){if(t.Tn?.ee?.()){const{ue:s}=t.Tn.ae(h);if(s.length>0)return void(async()=>{o.loadingfield&&t.Cn?.Xt?.();try{t.Tn.pe();const e=await t.Tn.ne(s);e.Ti&&e.items.length>0?(e.items.forEach(t=>{s.includes(t.value)&&(t.selected=!0)}),t.Tn.ye?.(e.items,!0,!0),setTimeout(()=>{i.jn().forEach(t=>{t.ns=h.some(i=>i==t.value)}),this.change(!1,!1)},100)):s.length>0&&console.warn(`Could not load ${s.length} values:`,s)}catch(t){console.error("Error loading missing values:",t)}finally{o.loadingfield&&t.Cn?.ni?.()}})()}if(r){if(n.ot([s()],...o.on.beforeChange).isCancel)return;i.oldValue=this.value}i.jn().forEach(t=>{t.ns=h.some(i=>i==t.value)}),!o.multiple&&h.length>0&&(t.targetElement.value=h[0]),this.change(!1,r)}},open(){if(i.isOpen)return;const e=i.re?.find?.();if(e&&!e.isEmpty&&e.close().isCancel)return;if(this.disabled)return;if(n.ot([s()],...o.on.beforeShow).isCancel)return;i.isOpen=!0,t.An.gt(!0);const h=t.Cn.jt,r=h.ln();r?h.nn(r,!1):h.un(),i.mn&&!i.fn||!o?.ajax?t.Cn.open(null,!0):(t.Tn.pe(),t.Cn.Xt(),i.mn=!0,i.fn=!1,setTimeout(()=>{t.Cn&&t.Tn&&t.Tn.search("").then(()=>t.Cn?.ei?.()).catch(t=>console.error("Initial ajax load error:",t))},o.animationtime),t.Cn.open(null,!1)),t.Sn.show();const l=t.tags.bi;l.setAttribute("aria-expanded","true"),l.setAttribute("aria-controls",o.Ut),l.setAttribute("aria-haspopup","listbox"),l.setAttribute("aria-labelledby",o.wn),o.multiple&&l.setAttribute("aria-multiselectable","true"),n.ot([s()],...o.on.show)},close(){i.isOpen&&(n.ot([s()],...o.on.beforeClose).isCancel||(i.isOpen=!1,t.An.gt(!1),t.Cn.close(()=>{t.Sn.clear(!1)}),t.Sn.hide(),t.tags.bi.setAttribute("aria-expanded","false"),n.ot([s()],...o.on.close)))},toggle(){i.isOpen?this.close():this.open()},change(e=null,h=!0){if(h){if(o.multiple&&o.maxSelected>0&&this.valueArray.length>o.maxSelected&&this.setValue(null,this.oldValue,!1,!0),this.disabled||this.readonly)return void this.setValue(null,this.oldValue,!1,!0);if(n.ot([s(),this.value],...o.on.beforeChange).isCancel)return void this.setValue(null,this.oldValue,!1)}this.refreshMask(),t.Ln.Ws(this.valueOptions),h&&(t.targetElement&&n.rt(t.targetElement,"change"),n.ot([s(),this.value],...o.on.change),i.options?.autoclose&&this.close())},refreshMask(){let s=o.placeholder;!o.multiple&&i.jn().length>0&&(s=this.mask[0]),s??(s=o.placeholder),t.placeholder.set(s,!1),t.Sn.Ii(s)},on(t,i,s){o.on[i]||(o.on[i]=[]),o.on[i].push(s)},ajax(i,s){t.Tn.de(s)},loadAjax:()=>new Promise((e,n)=>{t.Cn.Xt(),t.Tn.pe(),i.mn=!0,i.fn=!1,t.Cn&&t.Tn?t.Tn.search("").then(()=>{t.Cn?.ei?.(),e(s())}).catch(t=>{console.error("Initial ajax load error:",t),n(t)}):e(s())})};return this.En(r,"disabled","isDisabled"),this.En(r,"readonly","isReadOnly"),this.En(r,"visible","isVisible"),r}En(t,i,s){const e=this;Object.defineProperty(t,i,{get:()=>e[s],set(t){e[s]=!!t,e.container?.targetElement?.dataset&&(e.container.targetElement.dataset[i]=!!t+"")},enumerable:!0,configurable:!0})}jn(t=null){if(!this.gn)return[];const{Hs:i}=this.gn.Jt(),s=[];for(const t of i)t instanceof b?s.push(t):t instanceof f&&Array.isArray(t.items)&&t.items.length&&s.push(...t.items);return"boolean"==typeof t?s.filter(i=>i.selected===t):s}Ai(){this.container.Cn.Ai()}}class H{constructor(){this.$n=!1,this.Ae=null,this.In=[]}Fn(t){this.In.push(t)}Vn(){this.In=[]}start(t){if(this.$n)return;this.$n=!0;const i=t.toUpperCase(),s=t.toLowerCase();this.Ae=new MutationObserver(t=>{for(const e of t)e.addedNodes.forEach(t=>{if(1!==t.nodeType)return;const e=t;e.tagName===i&&this.kn(e),e.querySelectorAll(s).forEach(t=>this.kn(t))})}),this.Ae.observe(document.body,{childList:!0,subtree:!0})}stop(){this.$n&&(this.$n=!1,this.Ae?.disconnect(),this.Ae=null)}kn(t){this.In.forEach(i=>i(t))}}const j=new class{constructor(){this.Rn=new Map}bind(t,i){const s=e.k(e.W(),i);s.on=s.on??{},s.on.load=s.on.load??[],this.Rn.set(t,s);const h=e.O();e.tt.on(h,()=>{n.ot([this.find(t)],...s.on.load),e.tt.clear(h),s.on.load=[]}),e.C(t).forEach(t=>{(async()=>{"SELECT"===t.tagName&&(e.B(t),this._n(t,s)&&e.tt.run(h))})()}),e.t().includes(t)||e.t().push(t)}find(t="*"){const i={isEmpty:!0};if("*"===t&&""===(t=e.t().join(", ")))return i;const s=e.C(t);if(0===s.length)return i;const n=e.D(s[0]);if(!n||!n.action)return i;const h={};for(const t in n.action)h[t]=this.Dn(t,n.action);const o={isEmpty:!1};for(const t in h){const i=h[t];switch(i.type){case"get-set":this.Nn(o,i.name,s);break;case"func":this.Bn(o,i.name,s)}}return o}i(){this.zn=new H,this.zn.Fn(t=>{this.Rn.forEach((i,s)=>{try{t.matches(s)&&this._n(t,i)}catch(t){console.warn("Invalid selector: "+s,t)}})}),this.zn.start("select")}destroy(t=null){null===t?this.Gn():"string"==typeof t?this.Un(t):t instanceof HTMLSelectElement&&this.Wn(t)}Gn(){e.t().forEach(t=>this.Un(t)),this.Rn.clear(),e.t().length=0,this.zn?.stop()}Un(t){e.C(t).forEach(t=>{"SELECT"===t.tagName&&this.Wn(t)}),this.Rn.delete(t);const i=e.t(),s=i.indexOf(t);s>-1&&i.splice(s,1)}Wn(t){const i=e.D(t);if(!i)return;const s=i.container?.Cn;s?.Ai(),e.U(t,i);const n=!!this.zn;n&&this.zn?.stop();try{i.self?.Hn?.()}catch(t){}const h=i.container?.element??t.parentElement;t.style.display="",t.style.visibility="",t.disabled=!1,delete t.dataset.qn,h&&h.parentNode?h.parentNode.replaceChild(t,h):document.body.appendChild(t),e._(t),n&&this.Rn.size>0&&this.zn?.start("select")}rebind(t,i){this.Un(t),this.bind(t,i)}_n(t,i){if(e.D(t)||e.G(t))return!1;const s=e.O(8),n=e.V(t,i);n.Jn=s,n.Ut=`seui-${s}-optionlist`,n.wn=`seui-${s}-placeholder`;const h={options:n};e.N(t,h);const o=new M(t,this);return h.container=o.container,h.action=o.vn(),h.self=o,o.container.view.addEventListener("mouseup",()=>{h.action?.toggle?.()}),!0}Dn(t,i){const s=Object.getOwnPropertyDescriptor(i,t);let e="variable";return s?.get||s?.set&&"function"!=typeof i[t]?e="get-set":"function"==typeof i[t]&&(e="func"),{type:e,name:t}}Nn(t,i,s){Object.defineProperty(t,i,{get(){const t=e.D(s[0]);return t.action?.[i]},set(t){s.forEach(s=>{const n=e.D(s);n?.action&&(n.action[i]=t)})},enumerable:!0,configurable:!0})}Bn(t,i,s){t[i]=(...h)=>{let o=null;for(let t=0;t<s.length;t++){const r=e.D(s[t]);if(!r?.action)continue;const l=n.ht();if(o??(o=r.action[i](l.nt,...h)),!l.token.isContinue)break}return o??t}}},version="1.1.5",E="SelectiveUI";let $=!1;"undefined"!=typeof document&&("loading"===document.readyState?document.addEventListener("DOMContentLoaded",i):i());export{bind,destroy,effector,find,E as name,rebind,version};
1
+ /*! Selective UI v1.2.0 | MIT License */
2
+ function t(t){return new g(t??null)}function bind(t,i={}){F.bind(t,i)}function find(t){return F.find(t)}function destroy(t=null){F.destroy(t)}function rebind(t,i={}){F.rebind(t,i)}function effector(i){return t(i)}function i(){$||($=!0,document.addEventListener("mousedown",()=>{const t=e.t();if(t.length>0){const i=F.find(t.join(", "));i.isEmpty||i.close()}}),F.i())}class s{constructor(){this.h={showPanel:!0,virtualScroll:!0,accessoryStyle:"top",multiple:!1,minWidth:"50px",width:"0px",offsetWidth:null,minHeight:"30px",height:"30px",panelHeight:"220px",panelMinHeight:"100px",disabled:!1,readonly:!1,selectall:!0,keepSelected:!0,placeholder:"Select value",altMask:"",autoclose:!1,autoscroll:!0,autofocus:!0,searchable:!0,loadingfield:!0,visible:!0,skipError:!1,customDelimiter:",",textLoading:"Processing...",textNoData:"No data available",textNotFound:"Not found",textSelectAll:"Select all",textDeselectAll:"Deselect all",textAccessoryDeselect:"Deselect: ",animationtime:200,delaysearchtime:200,allowHtml:!0,maxSelected:0,labelHalign:"left",labelValign:"center",imageMode:!1,imageWidth:"60px",imageHeight:"60px",imageBorderRadius:"4px",imagePosition:"right",ajax:null,on:{load:[],beforeShow:[],show:[],beforeChange:[],change:[],beforeClose:[],close:[]}},this.o=new Map,this.l=new Map,this.u=[]}}class e{static get p(){return this.m||(this.m=new s),this.m}static v(t){if(null===t||"object"!=typeof t)return t;const i=Array.isArray(t)?[]:{};for(const s in t)Object.prototype.hasOwnProperty.call(t,s)&&(i[s]=this.v(t[s]));return i}static O(t=6){let i="";for(let s=0;s<t;s++)i+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.floor(62*Math.random()));return i}static M(t){if(!t)return[];if("string"==typeof t){const i=document.querySelectorAll(t);return Array.from(i)}return t instanceof Element?[t]:t instanceof NodeList||Array.isArray(t)?Array.from(t):[]}static A(t={}){return this.T(document.createElement(t.node??"div"),t,!0)}static T(t=document.documentElement,i=null,s=!1){const e={...i??{}},h=s?t:this.C(t.cloneNode(!0)),n=e.classList;return"string"==typeof n?h.classList.add(n):Array.isArray(n)&&h.classList.add(...n),delete e.classList,["style","dataset"].forEach(t=>{const i=e[t];i&&"object"==typeof i&&Object.assign(h[t],i),delete e[t]}),e.role&&(h.setAttribute("role",e.role+""),delete e.role),e.ariaLive&&(h.setAttribute("aria-live",e.ariaLive+""),delete e.ariaLive),e.S&&(h.setAttribute("aria-labelledby",e.S+""),delete e.S),e.H&&(h.setAttribute("aria-controls",e.H+""),delete e.H),e.L&&(h.setAttribute("aria-haspopup",e.L+""),delete e.L),e.P&&(h.setAttribute("aria-multiselectable",e.P+""),delete e.P),e.I&&(h.setAttribute("aria-autocomplete",e.I+""),delete e.I),e.event&&"object"==typeof e.event&&(Object.entries(e.event).forEach(([t,i])=>{h.addEventListener(t,i)}),delete e.event),Object.entries(e).forEach(([t,i])=>{null===i?h.removeAttribute(t):h[t]=i}),h}static C(t){if(t instanceof Element)return t;throw new TypeError("Node is not an Element")}static F(t){return this.j(t)}static j(t,i=null,s=!1,e=!1,h={}){let n=null;for(const o in t){const r=t[o],l=r?.tag?.tagName?r.tag:this.A(r.tag);h[o]=l,r?.$&&this.j(r.$,l,!1,!1,h),i?s?i.prepend(l):i.append(l):e||n||(n=l)}return e||(h.id=this.O(7),i||(h={tags:h,view:n})),h}static V(t,i){const s=this.v(i);for(const i in s){const e=t[i];e?s[i]=e:void 0!==t?.dataset?.[i]&&(s[i]=t.dataset[i])}return s}static k(...t){if(0===t.length)return{};if(1===t.length)return this.v(t[0]);const i=this.v(t[0]);for(let s=1;s<t.length;s++){const e=t[s];for(const t in e)if("on"===t){const s=e[t];for(const e in s)i[t][e].push(s[e])}else i[t]=e[t]}return i}static R(t){if("boolean"==typeof t)return t;if("string"!=typeof t)return!!t;switch(t.trim().toLowerCase()){case"true":case"1":case"yes":case"on":return!0;default:return!1}}static _(t){return this.p.o.delete(t)}static D(t){return this.p.o.get(t)}static N(t,i){this.p.o.set(t,i)}static B(t){return this.p.l.delete(t)}static U(t){return this.p.l.get(t)}static G(t,i){this.p.l.set(t,i)}static W(){return this.p.h}static t(){return this.p.u}static q(t){if(null==t)return"";let i=(t+"").replace(/<`/g,"<").replace(/`>/g,">").replace(/\<\`/g,"<").replace(/\`\>/g,">").trim();const s=globalThis?.document;if(!s||"function"!=typeof s.createElement)return i=i.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"").replace(/<iframe\b[^>]*>[\s\S]*?<\/iframe>/gi,"").replace(/<(object|embed|link)\b[^>]*>[\s\S]*?<\/\1>/gi,""),i=i.replace(/\son[a-z]+\s*=\s*(['"]).*?\1/gi,""),i=i.replace(/\s([a-z-:]+)\s*=\s*(['"])\s*javascript:[^'"]*\2/gi,""),i;const e=s.createElement("div");return e.innerHTML=i,e.querySelectorAll("script, style, iframe, object, embed, link").forEach(t=>t.remove()),e.querySelectorAll("*").forEach(t=>{for(const i in t.attributes){const s=t.attributes[i],e=s.name??"",h=s.value??"";if(/^on/i.test(e))return void t.removeAttribute(e);/^(href|src|xlink:href)$/i.test(e)&&/^javascript:/i.test(h)&&t.removeAttribute(e)}}),(e.innerHTML??"").trim()}static J(t){const i=document.createElement("DIV");i.innerHTML=t;const s=i.textContent??i.innerText??"";return i.remove(),s.trim()}static K(t){return null==t?"":(t+"").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/đ/g,"d").replace(/Đ/g,"d")}static Y(t){const i=[];return Array.from(t.children).forEach(t=>{if("OPTGROUP"===t.tagName){const s=t;i.push(s),Array.from(s.children).forEach(t=>{t.__parentGroup=s,i.push(t)})}else"OPTION"===t.tagName&&i.push(t)}),i}static X(){const t=navigator.userAgent;return/iP(hone|ad|od)/.test(t)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1}static Z(t){const i=(t+"").trim();if(i.endsWith("px"))return i;if(i.endsWith("vh"))return window.innerHeight*parseFloat(i)/100+"px";if(i.endsWith("vw"))return window.innerWidth*parseFloat(i)/100+"px";const s=parseFloat(getComputedStyle(document.documentElement).fontSize);if(i.endsWith("rem"))return s*parseFloat(i)+"px";const e=this.A({node:"div",style:{height:i,opacity:"0"}});document.body.appendChild(e);const h=e.offsetHeight+"px";return e.remove(),h}}e.m=null,e.tt=new class{constructor(){this.it=new Map,this.st=new Map}on(t,i,s={}){const e=s.et??50,h=s.once??!1;this.it.has(t)||this.it.set(t,[]),this.it.get(t).push({ht:i,timeout:e,once:h})}off(t){const i=this.st.get(t);if(i){for(const t of i.values())clearTimeout(t);i.clear(),this.st.delete(t)}this.it.delete(t)}run(t,...i){const s=this.it.get(t);if(!s)return;this.st.has(t)||this.st.set(t,new Map);const e=this.st.get(t);for(let t=0;t<s.length;t++){const h=s[t];if(!h)continue;const n=e.get(t);n&&clearTimeout(n);const o=setTimeout(()=>{if(h.ht(i.length>0?i:null),h.once){s[t]=void 0;const i=e.get(t);i&&clearTimeout(i),e.delete(t)}},h.timeout);e.set(t,o)}}clear(t){if(void 0===t)for(const t of Array.from(this.it.keys()))this.off(t);else this.off(t)}};class h{static nt(){const t={isContinue:!0,isCancel:!1};return{token:{get isContinue(){return t.isContinue},get isCancel(){return t.isCancel}},ht:{stopPropagation(){t.isContinue=!1},cancel(){t.isCancel=!0,t.isContinue=!1}}}}static ot(t,...i){const{token:s,ht:e}=this.nt();for(let h=0;h<i.length;h++){const n=i[h];if("function"==typeof n&&(t&&Array.isArray(t)?n(e,...t):n(e),s.isCancel||!s.isContinue))break}return s}static rt(t,i,s={bubbles:!0,cancelable:!0}){const e=new Event(i,s);return t.dispatchEvent(e),e}static lt(t,...i){if(Array.isArray(t))for(const s of t)"function"==typeof s&&s(...i)}}class n{static ct(t,i){const s=e.D(t);if(!s?.options)return;const h=s.options,n=h.minWidth,o=h.minHeight,r=Number.parseInt(h.width,10),l=Number.parseInt(h.height,10);let a=t.offsetWidth+"px",c=t.offsetHeight+"px";const u=getComputedStyle(t);"0px"===a&&"auto"!==u.width&&(a=u.width),"0px"===c&&"auto"!==u.height&&(c=u.height),r>0&&(a=h.width),l>0&&(c=h.height),Object.assign(i.style,{width:a,height:c,minWidth:n,minHeight:o})}}class o{constructor(t){this.node=null,this.ut=null,t&&this.init(t)}init(t){this.node=e.A({node:"div",classList:"selective-ui-placeholder",innerHTML:t.placeholder}),this.ut=t}get(){return this.ut?.placeholder??""}set(t,i=!0){if(!this.node||!this.ut)return;i&&(this.ut.placeholder=t);const s=e.q(t);this.node.innerHTML=this.ut.allowHtml?s:e.J(s)}}class r{constructor(){this.node=this.dt()}dt(){return e.A({node:"div",classList:"selective-ui-directive",role:"button",ariaLabel:"Toggle dropdown"})}gt(t){this.node.classList.toggle("drop-down",!!t)}}class l{constructor(t=null){this.ft=null,this.node=null,this.options=null,this.bt=[],this.wt=[],t&&this.init(t)}init(t){this.ft=e.j({yt:{tag:{node:"div",classList:["selective-ui-option-handle","hide"]},$:{vt:{tag:{node:"a",classList:"selective-ui-option-handle-item",textContent:t.textSelectAll,onclick:()=>{h.lt(this.bt)}}},xt:{tag:{node:"a",classList:"selective-ui-option-handle-item",textContent:t.textDeselectAll,onclick:()=>{h.lt(this.wt)}}}}}}),this.node=this.ft.view,this.options=t}available(){return!!this.options&&e.R(this.options.multiple)&&e.R(this.options.selectall)}refresh(){this.node&&(this.available()?this.show():this.hide())}show(){this.node&&this.node.classList.remove("hide")}hide(){this.node&&this.node.classList.add("hide")}Ot(t=null){"function"==typeof t&&this.bt.push(t)}Mt(t=null){"function"==typeof t&&this.wt.push(t)}}class a{constructor(t=null){this.node=null,this.options=null,t&&this.init(t)}init(t){this.options=t,this.node=e.A({node:"div",classList:["selective-ui-empty-state","hide"],role:"status",ariaLive:"polite"})}show(t="nodata"){this.node&&this.options&&(this.node.textContent="notfound"===t?this.options.textNotFound:this.options.textNoData,this.node.classList.remove("hide"))}hide(){this.node&&this.node.classList.add("hide")}get isVisible(){return!!this.node&&!this.node.classList.contains("hide")}}class c{constructor(t=null){this.node=null,this.options=null,t&&this.init(t)}init(t){this.options=t,this.node=e.A({node:"div",classList:["selective-ui-loading-state","hide"],textContent:t.textLoading,role:"status",ariaLive:"polite"})}show(t){this.node&&this.options&&(this.node.textContent=this.options.textLoading,this.node.classList.toggle("small",!!t),this.node.classList.remove("hide"))}hide(){this.node&&this.node.classList.add("hide")}get isVisible(){return!!this.node&&!this.node.classList.contains("hide")}}class u{constructor(){this.At=!1,this.element=null,this.Tt=null,this.Ct=null,this.At=!0,this.St=this.Ht.bind(this)}Lt(t){}Ht(){const t=this.element;if(!t||"function"!=typeof t.getBoundingClientRect)return void this.Lt({width:0,height:0,top:0,left:0,padding:{top:0,right:0,bottom:0,left:0},border:{top:0,right:0,bottom:0,left:0},margin:{top:0,right:0,bottom:0,left:0}});const i=t.getBoundingClientRect(),s="undefined"!=typeof window&&"function"==typeof window.getComputedStyle?window.getComputedStyle(t):null;this.Lt({width:i?.width??0,height:i?.height??0,top:i?.top??0,left:i?.left??0,padding:{top:parseFloat(s?.paddingTop??"0"),right:parseFloat(s?.paddingRight??"0"),bottom:parseFloat(s?.paddingBottom??"0"),left:parseFloat(s?.paddingLeft??"0")},border:{top:parseFloat(s?.borderTopWidth??"0"),right:parseFloat(s?.borderRightWidth??"0"),bottom:parseFloat(s?.borderBottomWidth??"0"),left:parseFloat(s?.borderLeftWidth??"0")},margin:{top:parseFloat(s?.marginTop??"0"),right:parseFloat(s?.marginRight??"0"),bottom:parseFloat(s?.marginBottom??"0"),left:parseFloat(s?.marginLeft??"0")}})}rt(){this.Ht()}connect(t){if(!(t instanceof Element))throw Error("Invalid element");this.element=t,this.Tt=new ResizeObserver(this.St),this.Tt.observe(t),this.Ct=new MutationObserver(this.St),this.Ct.observe(t,{attributes:!0,attributeFilter:["style","class"]}),window.addEventListener("scroll",this.St,!0),window.addEventListener("resize",this.St),window.visualViewport&&(window.visualViewport.addEventListener("resize",this.St),window.visualViewport.addEventListener("scroll",this.St))}disconnect(){this.Tt?.disconnect(),this.Ct?.disconnect(),this.Lt=()=>{},window.removeEventListener("scroll",this.St,!0),window.removeEventListener("resize",this.St),window.visualViewport&&(window.visualViewport.removeEventListener("resize",this.St),window.visualViewport.removeEventListener("scroll",this.St)),this.Tt=null,this.Ct=null,this.element=null}}class d{constructor(t=null,i=null,s=null){this.options=null,this.Pt=!1,this.It=null,this.node=null,this.Et=null,this.Ft=null,this.jt=null,this.$t=null,this.Vt=null,this.kt=null,this.Rt=null,this._t=null,this.Dt=null,this.Nt=null,this.Bt={zt:36,Ut:8,Gt:!0},this.Wt=s,t&&i&&this.init(t,i)}init(t,i){if(!this.Wt)throw Error("Popup requires a ModelManager instance.");this.$t=new l(i),this.Vt=new a(i),this.kt=new c(i);const s=e.j({qt:{tag:{node:"div",classList:"selective-ui-popup",style:{maxHeight:i.panelHeight}},$:{yt:{tag:this.$t.node},Jt:{tag:{id:i.Kt,node:"div",classList:"selective-ui-options-container",role:"listbox"}},Qt:{tag:this.kt.node},Yt:{tag:this.Vt.node}}}},null);this.node=s.view,this._t=s.tags.Jt,this.jt=e.D(t),this.options=i,this.Wt.load(this._t,{isMultiple:i.multiple},i.virtualScroll?{Xt:this.node,zt:this.Bt.zt,Ut:this.Bt.Ut,Gt:this.Bt.Gt}:{});const h=this.Wt.Zt();this.It=h.ti,this.Rt=h.Rt,this.$t.Ot(()=>{h.ti.ii(!0)}),this.$t.Mt(()=>{h.ti.ii(!1)}),this.si()}async ei(){this.options&&this.kt&&this.$t&&this.It&&this.Wt&&(this.Nt&&clearTimeout(this.Nt),this.Wt.hi(!0),!1!==e.R(this.options.loadingfield)&&(this.Vt.hide(),this.kt.show(this.It.oi().ni),this.ri()))}async li(){this.options&&this.kt&&this.It&&this.Wt&&(this.Nt&&clearTimeout(this.Nt),this.Nt=setTimeout(()=>{this.Wt?.hi(!1),this.kt?.hide();const t=this.It?.oi();this.ai(t??void 0),this.ri()},200))}si(){this.It&&(this.It.ci(t=>{this.ai(t)}),this.It.ui("items",()=>{const t=this.It.oi();this.ai(t),this.ri()}))}ai(t){if(!(this.It&&this.Vt&&this.$t&&this._t))return;const i=t??this.It.oi();i.isEmpty?(this.Vt.show("nodata"),this._t.classList.add("hide"),this.$t.hide()):i.ni?(this.Vt.hide(),this._t.classList.remove("hide"),this.$t.refresh()):(this.Vt.show("notfound"),this._t.classList.add("hide"),this.$t.hide())}di(t,i){this.It?.pi(t,i)}gi(t,i){this.It?.ui(t,i)}fi(t){this.Et=t}open(t=null,i){if(!(this.node&&this.options&&this.$t&&this.jt&&this.Et))return;this.Pt||(document.body.appendChild(this.node),this.Pt=!0,this.Ft=new u,this.Et.mi(this.node),this.node.addEventListener("mousedown",t=>{t.stopPropagation(),t.preventDefault()})),this.$t.refresh(),i&&this.ai();const s=this.bi(),{position:e,top:h,maxHeight:n,wi:o}=this.yi(s);this.Et.expand({duration:this.options.animationtime,display:"flex",width:s.width,left:s.left,top:h,maxHeight:n,wi:o,position:e,xi:()=>{if(!this.Ft||!this.jt)return;this.Ft.Lt=()=>{const t=this.bi();this.Oi(t)},this.Ft.connect(this.jt.container.tags.Mi),t?.();const i=this.Rt;i?.resume?.()}})}close(t=null){if(!(this.Pt&&this.options&&this.Ft&&this.Et))return;const i=this.Rt;i?.suspend?.(),this.Ft.disconnect(),this.Et.collapse({duration:this.options.animationtime,xi:t??void 0})}ri(){this.Pt&&this.Ft?.rt()}Ai(t,i){this.node&&(this.Dt=async()=>{const i=t.Ti();if(!i.Ci)return;const s=this.node;if(s.scrollHeight-s.scrollTop-s.clientHeight<100&&!i.Si&&i.hasMore){const i=await t.Hi();!i.Li&&i.message&&console.log("Load more:",i.message)}},this.node.addEventListener("scroll",this.Dt))}Pi(){this.Nt&&(clearTimeout(this.Nt),this.Nt=null),this.node&&this.Dt&&(this.node.removeEventListener("scroll",this.Dt),this.Dt=null);try{this.Ft?.disconnect()}catch(t){}this.Ft=null;try{this.Et?.mi?.(null)}catch(t){}if(this.Et=null,this.node)try{const t=this.node.cloneNode(!0);this.node.replaceWith(t),t.remove()}catch(t){this.node.remove()}this.node=null,this._t=null;try{this.Wt?.hi?.(!1),this.Rt?.clear?.(),this.Rt=null,this.It=null,this.node.remove()}catch(t){}this.Wt=null,this.$t=null,this.Vt=null,this.kt=null,this.jt=null,this.options=null,this.Pt=!1}bi(){const t=this.jt.container.tags.Mi,i=t.getBoundingClientRect(),s=window.getComputedStyle(t);return{width:i.width,height:i.height,top:i.top,left:i.left,padding:{top:parseFloat(s.paddingTop),right:parseFloat(s.paddingRight),bottom:parseFloat(s.paddingBottom),left:parseFloat(s.paddingLeft)},border:{top:parseFloat(s.borderTopWidth),right:parseFloat(s.borderRightWidth),bottom:parseFloat(s.borderBottomWidth),left:parseFloat(s.borderLeftWidth)}}}yi(t){const i=window.visualViewport,s=e.X(),h=i?.height??window.innerHeight,n=this.Et.Ii("flex").scrollHeight,o=parseFloat(this.options?.panelHeight??"220")||220,r=parseFloat(this.options?.panelMinHeight??"100")||100,l=h-(t.top+t.height)-3,a=t.top-3;let c="bottom",u=o,d=Math.min(n,u);const p=l-15;(d>=r?p>=r:p>=d)?(c="bottom",u=Math.min(l-15,o)):a>=Math.max(d,r)?(c="top",u=Math.min(a-15,o)):l>=a?(c="bottom",u=Math.max(l-15,r)):(c="top",u=Math.max(a-15,r)),d=Math.min(n,u);const g=i&&s?i.offsetTop:0;return{position:c,top:"bottom"===c?t.top+t.height+3+g:t.top-d-3+g,maxHeight:u,wi:d,Ei:n}}Oi(t){if(!this.options||!this.Et)return;const{position:i,top:s,maxHeight:e,wi:h}=this.yi(t);this.Et.resize({duration:this.options.animationtime,width:t.width,left:t.left,top:s,maxHeight:e,wi:h,position:i,animate:!0})}}class p{constructor(t=null){this.ft=null,this.node=null,this.Fi=null,this.ji=null,this.options=null,this.$i=null,this.Vi=null,this.ki=null,this.options=t,t&&this.init(t)}init(t){this.ft=e.j({Ri:{tag:{node:"div",classList:["selective-ui-searchbox","hide"]},$:{Fi:{tag:{id:e.O(),node:"input",type:"search",classList:["selective-ui-searchbox-input"],placeholder:t.placeholder,role:"searchbox",H:t.Kt,I:"list"}}}}}),this.node=this.ft.view,this.Fi=this.ft.tags.Fi;let i=!1;const s=this.ft.tags.Fi;s.addEventListener("mousedown",t=>{t.stopPropagation()}),s.addEventListener("mouseup",t=>{t.stopPropagation()}),s.addEventListener("keydown",t=>{i=!1,"ArrowDown"===t.key||"Tab"===t.key?(t.preventDefault(),t.stopPropagation(),i=!0,this.$i?.(1)):"ArrowUp"===t.key?(t.preventDefault(),t.stopPropagation(),i=!0,this.$i?.(-1)):"Enter"===t.key?(t.preventDefault(),t.stopPropagation(),i=!0,this.Vi?.()):"Escape"===t.key&&(t.preventDefault(),t.stopPropagation(),i=!0,this.ki?.()),t.stopPropagation()}),s.addEventListener("input",()=>{i||this.ji?.(s.value,!0)})}show(){this.node&&this.Fi&&this.options&&(this.node.classList.remove("hide"),this.Fi.readOnly=!this.options.searchable,this.options.searchable&&requestAnimationFrame(()=>{this.Fi?.focus()}))}hide(){this.node&&this.node.classList.add("hide")}clear(t=!0){this.ft&&(this.ft.tags.Fi.value="",this.ji?.("",t))}_i(t){this.Fi&&(this.Fi.placeholder=e.J(t))}Di(t){this.Fi&&this.Fi.setAttribute("aria-activedescendant",t)}}class g{constructor(t=null){this.Ni=null,this.Bi=null,this.zi=!1,t&&this.mi(t)}mi(t){if("string"==typeof t){const i=document.querySelector(t);return void(i instanceof HTMLElement&&(this.element=i))}this.element=t}cancel(){return this.Ni&&(clearTimeout(this.Ni),this.Ni=null),this.Bi&&(clearTimeout(this.Bi),this.Bi=null),this.zi=!1,this}Ii(t="flex"){if(!this.element)return{width:0,height:0,scrollHeight:0};const i={display:this.element.style.display,visibility:this.element.style.visibility,position:this.element.style.position,height:this.element.style.height,width:this.element.style.width};Object.assign(this.element.style,{display:t,visibility:"hidden",position:"fixed",height:"fit-content",width:"fit-content"});const s=window.getComputedStyle(this.element),e=parseFloat(s.borderTopWidth),h=parseFloat(s.borderBottomWidth),n=this.element.scrollHeight+e+h,o=this.element.getBoundingClientRect(),r={width:o.width,height:o.height+e+h,scrollHeight:n};return Object.assign(this.element.style,i),r}expand(t){if(!this.element)return this;this.cancel(),this.zi=!0;const{duration:i=200,display:s="flex",width:e,left:h,top:n,maxHeight:o,wi:r,position:l="bottom",xi:a}=t;return Object.assign(this.element.style,{display:s,width:e+"px",left:h+"px",top:("bottom"===l?n:n+r)+"px",maxHeight:o+"px",height:"0px",opacity:"0",overflow:"hidden",transition:"none"}),this.element.classList.toggle("position-top","top"===l),this.element.classList.toggle("position-bottom","bottom"===l),requestAnimationFrame(()=>{Object.assign(this.element.style,{transition:`top ${i}ms, height ${i}ms, opacity ${i}ms`,top:n+"px",height:r+"px",opacity:"1",overflow:r>=o?"auto":"hidden"}),this.Ni=setTimeout(()=>{this.element.style.transition="none",this.zi=!1,a?.()},i)}),this}collapse(t){if(!this.element)return this;this.cancel(),this.zi=!0;const{duration:i=200,xi:s}=t,e=this.element.offsetHeight,h=this.element.offsetTop,n=this.element.classList.contains("position-top")?"top":"bottom",o=this.element.scrollHeight-this.element.offsetHeight>0,r="top"===n?h+e:h;return requestAnimationFrame(()=>{Object.assign(this.element.style,{transition:`height ${i}ms, top ${i}ms, opacity ${i}ms`,height:"0px",top:r+"px",opacity:"0",overflow:o?"auto":"hidden"}),this.Ni=setTimeout(()=>{Object.assign(this.element.style,{display:"none",transition:"none"}),this.zi=!1,s?.()},i)}),this}showSwipeWidth(t){if(!this.element)return this;this.cancel(),this.zi=!0;const{duration:i=200,display:s="block",xi:e}=t;Object.assign(this.element.style,{transition:"none",display:s,width:"fit-content"});const h=this.Ii(s).width;return Object.assign(this.element.style,{width:"0px"}),requestAnimationFrame(()=>{Object.assign(this.element.style,{transition:`width ${i}ms`,width:h+"px",overflow:"hidden"})}),this.Ni=setTimeout(()=>{Object.assign(this.element.style,{width:"",overflow:"",transition:""}),this.zi=!1,e?.()},i),this}hideSwipeWidth(t){if(!this.element)return this;this.cancel(),this.zi=!0;const{duration:i=200,xi:s}=t,e=this.Ii().width;return Object.assign(this.element.style,{transition:"none",width:e+"px"}),requestAnimationFrame(()=>{Object.assign(this.element.style,{transition:`width ${i}ms`,width:"0px",overflow:"hidden"})}),this.Ni=setTimeout(()=>{Object.assign(this.element.style,{width:"",overflow:"",transition:"",display:""}),this.zi=!1,s?.()},i),this}resize(t){if(!this.element)return this;this.Bi&&clearTimeout(this.Bi);const{duration:i=200,width:s,left:e,top:h,maxHeight:n,wi:o,position:r="bottom",animate:l=!0,xi:a}=t,c=(this.element.classList.contains("position-top")?"top":"bottom")!==r,u=this.element.scrollHeight>n;return this.element.classList.toggle("position-top","top"===r),this.element.classList.toggle("position-bottom","bottom"===r),c&&(this.element.style.transition=`top ${i}ms ease-out, height ${i}ms ease-out, max-height ${i}ms ease-out;`),requestAnimationFrame(()=>{const t={width:s+"px",left:e+"px",top:h+"px",maxHeight:n+"px",height:o+"px",overflowY:u?"auto":"hidden"},r=Math.abs(this.element.offsetHeight-o);l&&(c||r>5)?t.transition=`height ${i}ms, top ${i}ms`:this.Bi=setTimeout(()=>{this.element?.style&&(this.element.style.transition="none")},i),Object.assign(this.element.style,t),l&&(c||r>1)?this.Bi=setTimeout(()=>{this.element.style.transition="none",c&&delete this.element.style.transition,a?.()},i):(c&&delete this.element.style.transition,a?.())}),this}get Ui(){return this.zi}}class f{get value(){return this.targetElement?.getAttribute("value")??null}constructor(t,i=null,s=null){this.targetElement=null,this.view=null,this.position=-1,this.At=!1,this.Gi=!1,this.options=t,this.targetElement=i,this.view=s}update(t){this.targetElement=t,this.Wi()}remove(){this.targetElement=null,this.view?.qi()?.remove?.(),this.view=null,this.Gi=!0,this.Ji()}Wi(){}Ji(){}}class m extends f{constructor(t,i){super(t,i??null,null),this.label="",this.items=[],this.collapsed=!1,this.Ki=[],i&&(this.label=i.label,this.collapsed=e.R(i.dataset?.collapsed))}get value(){return this.items.map(t=>t.value)}get Qi(){return this.items.filter(t=>t.selected)}get Yi(){return this.items.filter(t=>t.visible)}get Xi(){return this.Yi.length>0}update(t){this.label=t.label,this.view?.Zi(this.label)}Wi(){this.view&&(this.view.Zi(this.label),this.view.ts(this.collapsed))}ss(t){this.Ki.push(t)}es(){this.collapsed=!this.collapsed,this.view?.ts(this.collapsed),h.ot([this,this.collapsed],...this.Ki)}hs(t){this.items.push(t),t.group=this}removeItem(t){const i=this.items.indexOf(t);i>-1&&(this.items.splice(i,1),t.group=null)}ns(){this.view?.ns()}}class b extends f{constructor(){super(...arguments),this.rs=[],this.ls=[],this.cs=[],this.us=!0,this.ds=!1,this.group=null}get ps(){return this.dataset?.imgsrc||this.dataset?.image||""}get hasImage(){return!!this.ps}get value(){return this.targetElement?.value??""}get selected(){return!!this.targetElement?.selected}set selected(t){this.gs=t,h.ot([this,t],...this.rs)}get visible(){return this.us}set visible(t){if(this.us===t)return;this.us=t;const i=this.view?.qi?.();i&&i.classList.toggle("hide",!t),h.ot([this,t],...this.cs)}get gs(){return this.selected}set gs(t){const i=this.view?.view?.tags?.fs,s=this.view?.qi?.();i&&(i.checked=t),s&&this.targetElement&&(s.classList.toggle("checked",!!t),s.setAttribute("aria-selected",t?"true":"false"),this.targetElement.toggleAttribute("selected",!!t)),this.targetElement&&(this.targetElement.selected=t),h.ot([this,t],...this.ls)}get text(){const t=e.q(this.dataset?.mask??this.targetElement?.text??"");return this.options.allowHtml?t:e.J(t)}get textContent(){return this.options.allowHtml?e.J(this.text).trim():this.text.trim()}get dataset(){return this.targetElement?.dataset??{}}get bs(){return this.ds}set bs(t){const i=!!t,s=this.view?.qi?.();this.ds!==i&&(this.ds=i),s&&s.classList.toggle("highlight",i)}ws(t){this.rs.push(t)}ys(t){this.ls.push(t)}ci(t){this.cs.push(t)}Wi(){if(!this.view)return;const t=this.view.view.tags.vs;t&&(this.options.allowHtml?t.innerHTML=this.text:t.textContent=this.textContent);const i=this.view.view.tags.xs;i&&this.hasImage&&(i.src=this.ps,i.alt=this.text),this.targetElement&&(this.gs=this.targetElement.selected)}}class w{constructor(t){this.Os=[],this.Ms=null,this.As=null,this.Ts=null,this.options=null,this.options=t}Cs(t){this.Ss=t}Hs(t){this.Ls=t}Ps(t){const i=this.Is(t),s=i!==this.Ts;return s&&(this.Ts=i),s}Is(t){return t.map(t=>{if("OPTGROUP"===t.tagName){const i=t,s=Array.from(i.children).map(t=>`${t.value}:${t.text}:${t.selected}`).join("\n");return`G:${i.label}:${s}`}return`O:${t.value}:${t.text}:${t.selected}`}).join("\n\n")}Es(t){this.Os=[];let i=null;return t.forEach(t=>{if("OPTGROUP"===t.tagName)i=new m(this.options,t),this.Os.push(i);else if("OPTION"===t.tagName){const s=t,e=new b(this.options,s),h=s.__parentGroup;h&&i&&h===i.targetElement?(i.hs(e),e.group=i):(this.Os.push(e),i=null)}}),this.Os}replace(t){this.Ts=null,this.Es(t),this.Ms&&this.Ms.Fs(this.Os),this.refresh(!1)}notify(){this.Ms&&this.refresh(!1)}load(t,i={},s={}){this.Ms=new this.Ss(this.Os),Object.assign(this.Ms,i),this.As=new this.Ls(t),Object.assign(this.As,s),this.As.js(this.Ms)}update(t){if(!this.Ps(t))return;const i=this.Os,s=[],e=new Map,h=new Map;i.forEach(t=>{t instanceof m?e.set(t.label,t):t instanceof b&&h.set(`${t.value}::${t.textContent}`,t)});let n=null,o=0;t.forEach(t=>{if("OPTGROUP"===t.tagName){const i=t,h=e.get(i.label);h?(h.label!==i.label&&h.update(i),h.position=o,h.items=[],n=h,s.push(h),e.delete(i.label)):(n=new m(this.options,i),n.position=o,s.push(n)),o++}else if("OPTION"===t.tagName){const i=t,e=`${i.value}::${i.text}`,r=h.get(e);if(r)r.update(i),r.position=o,i.__parentGroup&&n?(n.hs(r),r.group=n):(r.group=null,s.push(r)),h.delete(e);else{const t=new b(this.options,i);t.position=o,i.__parentGroup&&n?(n.hs(t),t.group=n):s.push(t)}o++}});let r=!0;e.forEach(t=>{r=!1,t.remove()}),h.forEach(t=>{r=!1,t.remove()}),this.Os=s,this.Ms&&this.Ms.$s(this.Os),this.onUpdated(),this.refresh(r)}onUpdated(){}hi(t){this.Ms&&(this.Ms.Vs=t)}refresh(t){this.As&&(this.As.refresh(t),this.onUpdated())}Zt(){return{ks:this.Os,ti:this.Ms,Rt:this.As}}Rs(t){this.Ms?._s(t)}Ds(t){this.Ms?.Ns(t)}}class y{constructor(t=null){this.Bs=null,this.ti=null,this.Bs=t}zs(t){this.Bs=t}js(t){this.ti=t,t.pi("items",()=>{this.clear()}),t.ui("items",()=>{this.Us()}),this.Us()}clear(){this.Bs&&this.Bs.replaceChildren()}Us(){this.ti&&this.Bs&&this.ti.Gs(this.Bs)}refresh(t){this.Us()}}class v{constructor(t=null){this.ft=null,this.node=null,this.options=null,this.Ws=null,this.qs=null,this.Js=null,t&&this.init(t)}init(t){this.ft=e.j({Ks:{tag:{node:"div",classList:["selective-ui-accessorybox","hide"],onmouseup:t=>{t.stopPropagation()}}}}),this.node=this.ft.view,this.options=t}Qs(t){this.Ws=t,this.qs=t.parentElement,this.Ys()}Ys(){this.qs&&this.node&&this.Ws&&this.options&&this.qs.insertBefore(this.node,"top"===this.options.accessoryStyle?this.Ws:this.Ws.nextSibling)}Xs(t){this.Js=t}Zs(t){this.node&&this.options&&(this.node.replaceChildren(),t.length>0&&this.options.multiple?(this.node.classList.remove("hide"),t.forEach(t=>{e.j({te:{tag:{node:"div",classList:["accessory-item"]},$:{ie:{tag:{node:"span",classList:["accessory-item-button"],role:"button",ariaLabel:`${this.options.textAccessoryDeselect}${t.textContent}`,title:`${this.options.textAccessoryDeselect}${t.textContent}`,onclick:i=>{i.preventDefault(),this.Js?.Rs?.("select"),setTimeout(()=>{t.selected=!1},10)}}},se:{tag:{node:"span",classList:["accessory-item-content"],innerHTML:t.text}}}}},this.node)})):this.node.classList.add("hide"),h.rt(window,"resize"))}}class x{constructor(t,i,s){this.ee=null,this.he=null,this.ne=null,this.oe=null,this.re={currentPage:0,totalPages:1,hasMore:!1,Si:!1,le:"",Ci:!1},this.ae=t,this.Wt=i,this.oe=s}ce(){return!!this.ee}async ue(t){if(!this.ee)return{Li:!1,items:[],message:"Ajax not configured"};const i=Array.isArray(t)?t:[t];if(0===i.length)return{Li:!0,items:[]};try{const t=this.ee;let s,e;if(s="function"==typeof t.de?t.de(i):{values:i.join(","),pe:"1",..."function"==typeof t.data?t.data.bind(this.oe.ge.find(this.oe.container.targetElement))("",0):t.data??{}},"POST"===(t.method??"GET")){const i=new URLSearchParams;Object.keys(s).forEach(t=>i.append(t,s[t]+"")),e=await fetch(t.url,{method:"POST",body:i,headers:{"Content-Type":"application/x-www-form-urlencoded"}})}else{const i=""+new URLSearchParams(s);e=await fetch(`${t.url}?${i}`)}if(!e.ok)throw Error("HTTP error! status: "+e.status);const h=await e.json();return{Li:!0,items:this.fe(h).items}}catch(t){return console.error("Load by values error:",t),{Li:!1,message:t?.message,items:[]}}}me(t){const i=Array.from(this.ae.options).map(t=>t.value);return{be:t.filter(t=>i.includes(t)),we:t.filter(t=>!i.includes(t))}}ye(t){this.ee=t}setPopup(t){this.ne=t}Ti(){return{...this.re}}ve(){this.re={currentPage:0,totalPages:1,hasMore:!1,Si:!1,le:"",Ci:this.re.Ci}}clear(){this.re.le="";const{ks:t}=this.Wt.Zt(),i=[];for(const s of t)s instanceof b?i.push(s):s instanceof m&&Array.isArray(s.items)&&i.push(...s.items);i.forEach(t=>{t.visible=!0})}async search(t,i=!1){return this.ee?this.xe(t,i):this.Oe(t)}async Hi(){return this.ee?this.re.Si?{Li:!1,message:"Already loading"}:this.re.Ci?this.re.hasMore?(this.re.currentPage++,this.xe(this.re.le,!0)):{Li:!1,message:"No more data"}:{Li:!1,message:"Pagination not enabled"}:{Li:!1,message:"Ajax not enabled"}}async Oe(t){this.Me(t)&&(this.re.le=t);const i=((t??"")+"").toLowerCase(),s=e.K(i),{ks:h}=this.Wt.Zt(),n=[];for(const t of h)t instanceof b?n.push(t):t instanceof m&&Array.isArray(t.items)&&n.push(...t.items);let o=!1;return n.forEach(t=>{const h=((t.textContent??t.text??"")+"").toLowerCase(),n=e.K(h),r=""===i||h.includes(i)||n.includes(s);t.visible=r,r&&(o=!0)}),{Li:!0,Ae:o,isEmpty:0===n.length}}Me(t){return t!==this.re.le}async xe(t,i=!1){const s=this.ee;this.Me(t)&&(this.ve(),this.re.le=t,i=!1),this.re.Si=!0,this.ne?.ei(),this.he?.abort(),this.he=new AbortController;const e=this.re.currentPage,h=Array.from(this.ae.selectedOptions).map(t=>t.value).join(",");let n;"function"==typeof s.data?(n=s.data.bind(this.oe.ge.find(this.oe.container.targetElement))(t,e),n&&void 0===n.selectedValue&&(n.selectedValue=h)):n={search:t,page:e,selectedValue:h,...s.data??{}};try{let t;if("POST"===(s.method??"GET")){const i=new URLSearchParams;Object.keys(n).forEach(t=>i.append(t,n[t]+"")),t=await fetch(s.url,{method:"POST",body:i,headers:{"Content-Type":"application/x-www-form-urlencoded"},signal:this.he.signal})}else{const i=""+new URLSearchParams(n);t=await fetch(`${s.url}?${i}`,{signal:this.he.signal})}const e=await t.json(),h=this.fe(e);return h.Te?(this.re.Ci=!0,this.re.currentPage=h.page,this.re.totalPages=h.totalPages,this.re.hasMore=h.hasMore):this.re.Ci=!1,this.Ce(h.items,!!s.keepSelected,i),this.re.Si=!1,this.ne?.li(),{Li:!0,Ae:h.items.length>0,isEmpty:0===h.items.length,Te:h.Te,hasMore:h.hasMore,currentPage:h.page,totalPages:h.totalPages}}catch(t){return this.re.Si=!1,this.ne?.li(),"AbortError"===t?.name?{Li:!1,message:"Request aborted"}:(console.error("Ajax search error:",t),{Li:!1,message:t?.message})}}fe(t){let i=[],s=!1,e=0,h=1,n=!1;return t.object&&Array.isArray(t.object)?(i=t.object,void 0!==t.page&&(s=!0,e=parseInt(t.page??0,10),h=parseInt(t.totalPages??t.total_page??1,10),n=e<h-1)):t.data&&Array.isArray(t.data)?(i=t.data,void 0!==t.page&&(s=!0,e=parseInt(t.page??0,10),h=parseInt(t.totalPages??t.total_page??1,10),n=t.hasMore??e<h-1)):Array.isArray(t)?i=t:t.items&&Array.isArray(t.items)&&(i=t.items,t.pagination&&(s=!0,e=parseInt(t.pagination.page??0,10),h=parseInt(t.pagination.totalPages??t.pagination.total_page??1,10),n=t.pagination.hasMore??e<h-1)),{items:i.map(t=>{if(t instanceof HTMLOptionElement||t instanceof HTMLOptGroupElement)return t;if("optgroup"===t.type||t.Se||t.group||t.label)return{type:"optgroup",label:t.label??t.name??t.title??"",data:t.data??{},options:(t.options??t.items??[]).map(t=>({value:t.value??t.id??t.key??"",text:t.text??t.label??t.name??t.title??"",selected:t.selected??!1,data:t.data??(t.imgsrc?{imgsrc:t.imgsrc}:{})}))};const i=t.data??{};return t?.imgsrc&&(i.imgsrc=t.imgsrc),{type:"option",value:t.value??t.id??t.key??"",text:t.text??t.label??t.name??t.title??"",selected:t.selected??!1,data:i}}),Te:s,page:e,totalPages:h,hasMore:n}}Ce(t,i,s=!1){const e=this.ae;let h=[];i&&(h=Array.from(e.selectedOptions).map(t=>t.value)),s||(e.innerHTML=""),t.forEach(t=>{if("option"!==t.type&&t.type||""!==t.value||""!==t.text)if(t instanceof HTMLOptionElement||t instanceof HTMLOptGroupElement)e.appendChild(t);else if("optgroup"===t.type){const s=document.createElement("optgroup");s.label=t.label,t.data&&Object.keys(t.data).forEach(i=>{s.dataset[i]=t.data[i]+""}),Array.isArray(t.options)&&t.options.forEach(t=>{const e=document.createElement("option");e.value=t.value,e.text=t.text,t.data&&Object.keys(t.data).forEach(i=>{e.dataset[i]=t.data[i]+""}),(t.selected||i&&h.includes(e.value))&&(e.selected=!0),s.appendChild(e)}),e.appendChild(s)}else{const s=document.createElement("option");s.value=t.value,s.text=t.text,t.data&&Object.keys(t.data).forEach(i=>{s.dataset[i]=t.data[i]+""}),(t.selected||i&&h.includes(s.value))&&(s.selected=!0),e.appendChild(s)}}),e.dispatchEvent(new CustomEvent("options:changed"))}}class O{constructor(t){this.He=null,this.Le=null,this.Pe=50,this.ae=t,this.Le=this.Ie(),this.Ee=new MutationObserver(()=>{this.He&&clearTimeout(this.He),this.He=setTimeout(()=>{this.Fe()},this.Pe)}),t.addEventListener("options:changed",()=>{this.He&&clearTimeout(this.He),this.He=setTimeout(()=>{this.Fe()},this.Pe)})}Ie(){const t=Array.from(this.ae.options);return{length:t.length,values:t.map(t=>t.value).join(","),je:t.map(t=>t.text).join(","),selected:t.map(t=>t.selected+"").join(",")}}$e(){const t=this.Ie(),i=JSON.stringify(t)!==JSON.stringify(this.Le);return i&&(this.Le=t),i}Fe(){this.$e()&&this.Lt(this.ae)}connect(){this.Ee.observe(this.ae,{childList:!0,subtree:!1,attributes:!0,attributeFilter:["selected","value","disabled"]})}Lt(t){}disconnect(){this.He&&clearTimeout(this.He),this.He=null,this.Ee.disconnect()}}class M{constructor(t){this.He=null,this.Ve=t,this.Ee=new MutationObserver(t=>{let i=!1;for(const s of t)if("attributes"===s.type&&s.attributeName?.startsWith("data-")){i=!0;break}i&&(this.He&&clearTimeout(this.He),this.He=setTimeout(()=>{this.Lt({...this.Ve.dataset})},50))}),t.addEventListener("dataset:changed",()=>{this.Lt({...this.Ve.dataset})})}connect(){this.Ee.observe(this.Ve,{attributes:!0,attributeOldValue:!0})}Lt(t){}disconnect(){this.He&&clearTimeout(this.He),this.He=null,this.Ee.disconnect()}}class A{constructor(t=[]){this.items=[],this.ke=e.O(12),this.Vs=!1,this.items=t,this.Re()}Re(){}_e(t,i,s){const e=i;t.At?e?.update?.():e?.Us?.()}pi(t,i){e.tt.on(`${t}ing_${this.ke}`,i,{et:1})}ui(t,i){e.tt.on(`${t}_${this.ke}`,i)}Ns(t,...i){e.tt.run(`${t}_${this.ke}`,...i)}_s(t,...i){e.tt.run(`${t}ing_${this.ke}`,...i)}De(t,i){return null}Ne(){return this.items.length}Be(t){this._s("items",t),this.items=t,this.Ns("items",t)}Fs(t){this.Be(t)}Gs(t){for(let i=0;i<this.Ne();i++){const s=this.items[i];let e=s.view;s.At||(e=this.De(t,s),s.view=e),this._e(s,e,i),s.At=!0}}$s(t){}}class T{constructor(t){this.parent=null,this.view=null,this.parent=t}Us(){}update(){}qi(){if(!this.view?.view)throw Error("View is not mounted. Did you forget to set this.view?");return this.view.view}}class C extends T{constructor(){super(...arguments),this.view=null}Us(){const t=e.O(7);this.view=e.F({ze:{tag:{node:"div",classList:["selective-ui-group"],role:"group",S:`seui-${t}-header`,id:`seui-${t}-group`},$:{Ue:{tag:{node:"div",classList:["selective-ui-group-header"],role:"presentation",id:`seui-${t}-header`}},Ge:{tag:{node:"div",classList:["selective-ui-group-items"],role:"group"}}}}}),this.parent.appendChild(this.view.view)}update(){this.Zi()}Zi(t=null){this.view&&null!==t&&(this.view.tags.Ue.textContent=t)}We(){if(!this.view)throw Error("GroupView is not rendered.");return this.view.tags.Ge}ns(){if(!this.view)return;const t=Array.from(this.view.tags.Ge.children).filter(t=>!t.classList.contains("hide"));this.view.view.classList.toggle("hide",!(t.length>0))}ts(t){this.view&&(this.view.view.classList.toggle("collapsed",t),this.view.tags.Ue.setAttribute("aria-expanded",t?"false":"true"))}}class S extends T{constructor(t){super(t),this.view=null,this.qe=null,this.Je=null,this.Ke=!1,this.Qe()}Qe(){const t=this;this.qe={isMultiple:!1,hasImage:!1,imagePosition:"right",imageWidth:"60px",imageHeight:"60px",imageBorderRadius:"4px",labelValign:"center",labelHalign:"left"},this.Je=new Proxy(this.qe,{set(i,s,e){if("string"!=typeof s)return!0;const h=s,n=i[h];return n!==e&&(i[h]=e,t.Ke&&t.Ye(h,e,n)),!0}})}get isMultiple(){return this.qe.isMultiple}set isMultiple(t){this.Je.isMultiple=!!t}get hasImage(){return this.qe.hasImage}set hasImage(t){this.Je.hasImage=!!t}get Xe(){return this.Je}set Xe(t){if(!t||!this.Je||!this.qe)return;const i={};void 0!==t.imageWidth&&t.imageWidth!==this.qe.imageWidth&&(i.imageWidth=t.imageWidth),void 0!==t.imageHeight&&t.imageHeight!==this.qe.imageHeight&&(i.imageHeight=t.imageHeight),void 0!==t.imageBorderRadius&&t.imageBorderRadius!==this.qe.imageBorderRadius&&(i.imageBorderRadius=t.imageBorderRadius),void 0!==t.imagePosition&&t.imagePosition!==this.qe.imagePosition&&(i.imagePosition=t.imagePosition),void 0!==t.labelValign&&t.labelValign!==this.qe.labelValign&&(i.labelValign=t.labelValign),void 0!==t.labelHalign&&t.labelHalign!==this.qe.labelHalign&&(i.labelHalign=t.labelHalign),Object.keys(i).length>0&&Object.assign(this.Je,i)}Us(){const t=["selective-ui-option-view"],i=e.O(7),s="option_"+i;this.qe.isMultiple&&t.push("multiple"),this.qe.hasImage&&(t.push("has-image"),t.push("image-"+this.qe.imagePosition));const h={fs:{tag:{node:"input",type:this.qe.isMultiple?"checkbox":"radio",classList:"allow-choice",id:s}},...this.qe.hasImage&&{xs:{tag:{node:"img",classList:"option-image",style:{width:this.qe.imageWidth,height:this.qe.imageHeight,borderRadius:this.qe.imageBorderRadius}}}},Ze:{tag:{node:"label",htmlFor:s,classList:["align-vertical-"+this.qe.labelValign,"align-horizontal-"+this.qe.labelHalign]},$:{vs:{tag:{node:"div"}}}}};this.view=e.F({th:{tag:{node:"div",id:`seui-${i}-option`,classList:t,role:"option",ariaSelected:"false",tabIndex:"-1"},$:h}}),this.parent.appendChild(this.view.view),this.Ke=!0}Ye(t,i,s){const e=this.view;if(!e||!e.view)return;const h=e.view,n=e.tags?.fs,o=e.tags?.Ze;switch(t){case"isMultiple":{const t=!!i;h.classList.toggle("multiple",t),n&&n.type!==(t?"checkbox":"radio")&&(n.type=t?"checkbox":"radio");break}case"hasImage":{const t=!!i;if(h.classList.toggle("has-image",t),t)h.classList.add("image-"+this.qe.imagePosition),this.ih();else{h.className=h.className.replace(/image-(top|right|bottom|left)/g,"").trim();const t=e.tags?.xs;t&&(t.remove(),e.tags.xs=null)}break}case"imagePosition":this.qe.hasImage&&(h.className=h.className.replace(/image-(top|right|bottom|left)/g,"").trim(),h.classList.add("image-"+i));break;case"imageWidth":case"imageHeight":case"imageBorderRadius":{const s=e.tags?.xs;if(s){const e="imageWidth"===t?"width":"imageHeight"===t?"height":"borderRadius",h=i+"";s.style[e]!==h&&(s.style[e]=h)}break}case"labelValign":case"labelHalign":if(o){const t=`align-vertical-${this.qe.labelValign} align-horizontal-${this.qe.labelHalign}`;o.className!==t&&(o.className=t)}}}ih(){const t=this.view;if(!t||!t.view)return;const i=t.tags?.xs;if(i)return;const s=t.view,e=t.tags?.Ze,h=document.createElement("img");h.className="option-image",h.style.width=this.qe.imageWidth,h.style.height=this.qe.imageHeight,h.style.borderRadius=this.qe.imageBorderRadius,e&&e.parentElement?s.insertBefore(h,e):s.appendChild(h),t.tags.xs=h}}class H extends A{constructor(t=[]){super(t),this.isMultiple=!1,this.sh=[],this.eh=-1,this.hh=null,this.groups=[],this.nh=[],this.oh()}oh(){this.nh=[],this.groups=[],this.items.forEach(t=>{t instanceof m?(this.groups.push(t),this.nh.push(...t.items)):t instanceof b&&this.nh.push(t)})}De(t,i){return i instanceof m?new C(t):new S(t)}_e(t,i,s){t.position=s,t instanceof m?this.rh(t,i,s):t instanceof b&&this.ah(t,i,s),t.At=!0}rh(t,i,s){super._e(t,i,s),t.view=i;const e=i.view.tags.Ue;e.textContent=t.label,t.At||(e.style.cursor="pointer",e.addEventListener("click",()=>{t.es()}),t.ss((t,i,s)=>{i.items.forEach(t=>{const i=t.view?.qi?.();i&&(i.style.display=s?"none":"")}),this.uh(i,s)}));const h=i.We();t.items.forEach((t,i)=>{let s=t.view;t.At&&s||(s=new S(h)),this.ah(t,s,i),t.At=!0}),i.ts(t.collapsed),i.ns()}ah(t,i,s){if(i.isMultiple=this.isMultiple,i.hasImage=t.hasImage,i.Xe={imageWidth:t.options.imageWidth,imageHeight:t.options.imageHeight,imageBorderRadius:t.options.imageBorderRadius,imagePosition:t.options.imagePosition,labelValign:t.options.labelValign,labelHalign:t.options.labelHalign},t.At||super._e(t,i,s),t.view=i,t.hasImage){const s=i.view.tags.xs;s&&(s.src!==t.ps&&(s.src=t.ps),s.alt!==t.text&&(s.alt=t.text))}i.view.tags.vs.innerHTML=t.text,t.At||(i.view.tags.th.addEventListener("click",i=>{i.stopPropagation(),i.preventDefault(),this.Vs||(this.isMultiple?(this._s("select"),setTimeout(()=>{t.selected=!t.selected},5)):!0!==t.selected&&(this._s("select"),setTimeout(()=>{this.hh&&(this.hh.selected=!1),t.selected=!0},5)))}),i.view.tags.th.title=t.textContent,i.view.tags.th.addEventListener("mouseenter",()=>{this.Vs||this.dh(this.nh.indexOf(t),!1)}),t.ws(()=>{this.Ns("selected")}),t.ys((i,s,e)=>{e&&(this.hh=t),this.Ns("selected_internal")}),t.ci((t,i)=>{i.group?.ns(),this.ph()})),t.selected&&(this.hh=t,t.gs=!0)}Be(t){this._s("items",t),this.items=t,this.oh(),this.Ns("items",t)}Fs(t){this.Be(t)}$s(t){this.items=t,this.oh()}gh(){return this.nh.filter(t=>t.selected)}fh(){return this.nh.find(t=>t.selected)}ii(t){this.isMultiple&&this.nh.forEach(i=>{i.selected=t})}ci(t){this.sh.push(t)}ph(){const t=this.nh.filter(t=>t.visible).length,i=this.nh.length;this.sh.forEach(s=>{s({mh:t,bh:i,ni:t>0,isEmpty:0===i})})}oi(){const t=this.nh.filter(t=>t.visible).length,i=this.nh.length;return{mh:t,bh:i,ni:t>0,isEmpty:0===i}}wh(){this.dh(0)}navigate(t,i=!0){const s=this.nh.filter(t=>t.visible);if(0===s.length)return;let e=s.findIndex(t=>t===this.nh[this.eh]);-1===e&&(e=-1);let h=e+t;h>=s.length&&(h=0),h<0&&(h=s.length-1);const n=this.nh.indexOf(s[h]);this.dh(n,i)}yh(){if(this.eh>-1&&this.nh[this.eh]){const t=this.nh[this.eh];if(t.visible){const i=t.view?.qi?.();i&&i.click()}}}dh(t,i=!0){let s=0;if("number"==typeof t)s=t;else if(t instanceof b){const i=this.nh.indexOf(t);s=i>-1?i:0}else s=0;this.eh>-1&&this.nh[this.eh]&&(this.nh[this.eh].bs=!1);for(let t=s;t<this.nh.length;t++){const s=this.nh[t];if(s?.visible){if(s.bs=!0,this.eh=t,i){const i=s.view?.qi?.();i?i.scrollIntoView({block:"center",behavior:"smooth"}):this.Rt?.xh?.(t,{scrollIntoView:!0})}return void this.Oh(t,s.view?.qi?.()?.id)}}}Oh(t,i){}uh(t,i){}}class L{constructor(t=0){this.Mh=[],this.n=0,this.reset(t)}reset(t){this.n=t,this.Mh=Array(t+1).fill(0)}add(t,i){for(let s=t;s<=this.n;s+=s&-s)this.Mh[s]+=i}Ah(t){let i=0;for(let s=t;s>0;s-=s&-s)i+=this.Mh[s];return i}Th(t,i){return i<t?0:this.Ah(i)-this.Ah(t-1)}Ch(t){this.reset(t.length),t.forEach((t,i)=>this.add(i+1,t))}Sh(t){let i=0,s=1;for(;s<<1<=this.n;)s<<=1;let e=0;for(let h=s;0!==h;h>>=1){const s=i+h;s<=this.n&&e+this.Mh[s]<=t&&(i=s,e+=this.Mh[s])}return i}}class P extends y{constructor(t=null){super(t),this.Hh={Xt:void 0,zt:36,Ut:8,Gt:!0,Lh:!0},this.Ph=[],this.Ih=new L(0),this.Eh=new Map,this.Fh=!1,this.start=0,this.end=-1,this.jh=null,this.$h=null,this.Vh=!1,this.kh=!1,this.Rh=0,this._h=!1,this.Dh=!1,this.Nh=0,this.Bh=0,this.zh=0,this.Uh=0}configure(t){this.Hh={...this.Hh,...t}}js(t){if(this.ti&&this.dispose(),super.js(t),t.Rt=this,!this.Bs)return;this.Bs.replaceChildren();const i=e.j({Gh:{tag:{node:"div",classList:"selective-ui-virtual-pad-top"}},Wh:{tag:{node:"div",classList:"selective-ui-virtual-items"}},qh:{tag:{node:"div",classList:"selective-ui-virtual-pad-bottom"}}},this.Bs);if(this.Gh=i.Gh,this.Wh=i.Wh,this.qh=i.qh,this.Xt=this.Hh.Xt??this.Bs.closest(".selective-ui-popup")??this.Bs.parentElement,!this.Xt)throw Error("VirtualRecyclerView: scrollEl not found");this.Jh=this.Kh.bind(this),this.Xt.addEventListener("scroll",this.Jh,{passive:!0}),this.refresh(!1),this.Qh(),t?.ci?.(()=>this.Yh())}suspend(){this._h=!0,this.Xh(),this.Xt&&this.Jh&&this.Xt.removeEventListener("scroll",this.Jh),this.Zh&&(this.Zh.disconnect(),this.Dh=!0)}resume(){this._h=!1,this.Xt&&this.Jh&&this.Xt.addEventListener("scroll",this.Jh,{passive:!0}),this.Dh&&(this.Qh(),this.Dh=!1),this.tn()}refresh(t){if(!this.ti||!this.Bs)return;t||this.Yh();const i=this.ti.Ne();this.Rh=i,0!==i?(this.Ph.length=i,this.Fh||(this.sn(),this.Fh=!0),this.en(i),this.tn()):this.hn()}xh(t,i){this.nn(t,t),i?.scrollIntoView&&this.rn(t)}rn(t){if((this.ti?.Ne?.()??0)<=0)return;const i=this.ln(t),s=this.an()+i,e=Math.max(0,this.Xt.scrollHeight-this.Xt.clientHeight);this.Xt.scrollTop=Math.min(Math.max(0,s),e)}dispose(){this.Xh(),this.Xt&&this.Jh&&this.Xt.removeEventListener("scroll",this.Jh),this.Zh?.disconnect(),this.Eh.forEach(t=>t.remove()),this.Eh.clear()}Yh(){if(!this.ti)return;const t=this.ti.Ne();t<=0||(this.suspend(),this.hn(),this.cn(),this.un(t),this.en(t),this.start=0,this.end=-1,this.resume())}Xh(){null!=this.jh&&(cancelAnimationFrame(this.jh),this.jh=null),null!=this.$h&&(cancelAnimationFrame(this.$h),this.$h=null)}hn(){this.Eh.forEach(t=>t.remove()),this.Eh.clear(),this.Ph=[],this.Ih.reset(0),this.Gh.style.height="0px",this.qh.style.height="0px",this.Fh=!1,this.zh=0,this.Uh=0}sn(){this.dn(0);const t=this.Eh.get(0);if(!t)return;const i=this.pn(t);if(isNaN(i)||(this.Hh.zt=i),!this.Hh.Gt){t.remove(),this.Eh.delete(0);const i=this.ti.items[0];i&&(i.At=!1,i.view=null)}}gn(t){const i=this.ti?.items?.[t];return i?.visible??!0}fn(t,i){for(let s=Math.max(0,t);s<i;s++)if(this.gn(s))return s;return-1}un(t){this.zh=0,this.Uh=0;for(let i=0;i<t;i++){if(!this.gn(i))continue;const t=this.Ph[i];null!=t&&(this.zh+=t,this.Uh++)}}an(){const t=this.Bs.getBoundingClientRect(),i=this.Xt.getBoundingClientRect();return t.top-i.top+this.Xt.scrollTop}mn(){const t=performance.now();if(t-this.Nh<16)return this.Bh;const i=this.Xt.querySelector(".selective-ui-option-handle:not(.hide)");return this.Bh=i?.offsetHeight??0,this.Nh=t,this.Bh}tn(){null!=this.jh||this._h||(this.jh=requestAnimationFrame(()=>{this.jh=null,this.bn()}))}pn(t){const i=t.getBoundingClientRect(),s=getComputedStyle(t);return Math.max(1,i.height+(parseFloat(s.marginTop)||0)+(parseFloat(s.marginBottom)||0))}wn(){return this.Hh.Lh&&this.Uh>0?Math.max(1,this.zh/this.Uh):this.Hh.zt}en(t){const i=this.wn(),s=Array.from({length:t},(t,s)=>this.gn(s)?this.Ph[s]??i:0);this.Ih.Ch(s)}yn(t,i){if(!this.gn(t))return!1;const s=this.wn(),e=this.Ph[t]??s;if(Math.abs(i-e)<=P.vn)return!1;const h=this.Ph[t];return null==h?(this.zh+=i,this.Uh++):this.zh+=i-h,this.Ph[t]=i,this.Ih.add(t+1,i-e),!0}xn(t,i){const s=this.Ih.Sh(Math.max(0,t)),e=Math.min(i-1,s),h=this.fn(e,i);return-1===h?Math.max(0,e):h}On(t,i){i.setAttribute(P.Mn,t+"");const s=this.Eh.get(t-1);if(s?.parentElement===this.Wh)return void s.after(i);const e=this.Eh.get(t+1);if(e?.parentElement===this.Wh)return void this.Wh.insertBefore(i,e);const h=Array.from(this.Wh.children);for(const s of h){const e=s.getAttribute(P.Mn);if(e&&+e>t)return void this.Wh.insertBefore(i,s)}this.Wh.appendChild(i)}An(t,i){if(i.parentElement!==this.Wh)return void this.On(t,i);i.setAttribute(P.Mn,t+"");const s=i.previousElementSibling,e=i.nextElementSibling;(s&&+s.getAttribute(P.Mn)>t||e&&+e.getAttribute(P.Mn)<t)&&(i.remove(),this.On(t,i))}Qh(){this.Zh||(this.Zh=new ResizeObserver(()=>{this.kh||this._h||!this.ti||null!=this.$h||(this.$h=requestAnimationFrame(()=>{this.$h=null,this.Tn()}))}),this.Zh.observe(this.Wh))}Tn(){if(!this.ti)return;const t=this.ti.Ne();if(t<=0)return;let i=!1;for(let t=this.start;t<=this.end;t++){if(!this.gn(t))continue;const s=this.ti.items[t],e=s?.view?.qi?.();if(!e)continue;const h=this.pn(e);this.yn(t,h)&&(i=!0)}i&&(this.Hh.Lh&&this.en(t),this.tn())}Kh(){this.tn()}bn(){if(!this.Vh&&!this._h){this.Vh=!0;try{if(!this.ti)return;const t=this.ti.Ne();if(t<=0)return;this.Rh!==t&&(this.Rh=t,this.Ph.length=t,this.en(t));const i=this.an(),s=Math.max(0,this.Xt.scrollTop-i),e=this.mn(),h=Math.max(0,this.Xt.clientHeight-e),n=this.xn(s,t),o=i+this.ln(n)-this.Xt.scrollTop,r=this.xn(s,t);if(-1===r)return void this.hn();const l=this.wn(),a=this.Hh.Ut*l;let c=this.fn(Math.min(t-1,this.Ih.Sh(Math.max(0,s-a))),t)??r,u=Math.min(t-1,this.Ih.Sh(s+h+a));if(c===this.start&&u===this.end)return;this.start=c,this.end=u,this.kh=!0;try{this.nn(this.start,this.end),this.Cn(this.start,this.end),this.Hh.Gt&&this.Tn();const i=this.ln(this.start),s=this.Sn(this.start,this.end),e=this.Hn(t),h=Math.max(0,e-i-s);this.Gh.style.height=i+"px",this.qh.style.height=h+"px"}finally{this.kh=!1}const d=this.ln(n),p=this.an()+d-o,g=Math.max(0,this.Xt.scrollHeight-this.Xt.clientHeight),f=Math.min(Math.max(0,p),g);Math.abs(this.Xt.scrollTop-f)>.5&&(this.Xt.scrollTop=f)}finally{this.Vh=!1}}}nn(t,i){for(let s=t;s<=i;s++)this.dn(s)}dn(t){if(!this.gn(t)){const i=this.Eh.get(t);return i?.parentElement===this.Wh&&i.remove(),void this.Eh.delete(t)}const i=this.ti.items[t],s=this.Eh.get(t);if(s)return void(i?.view?(this.An(t,s),this.ti._e(i,i.view,t)):(s.remove(),this.Eh.delete(t)));if(i.At)i.view&&this.ti._e(i,i.view,t);else{const s=this.ti.De(this.Wh,i);i.view=s,this.ti._e(i,s,t),i.At=!0}const e=i.view?.qi?.();e&&(this.An(t,e),this.Eh.set(t,e))}Cn(t,i){this.Eh.forEach((s,e)=>{(e<t||e>i)&&(s.parentElement===this.Wh&&s.remove(),this.Eh.delete(e))})}cn(){this.Eh.forEach((t,i)=>{this.gn(i)||(t.parentElement===this.Wh&&t.remove(),this.Eh.delete(i))})}ln(t){return this.Ih.Ah(t)}Sn(t,i){return this.Ih.Th(t+1,i+1)}Hn(t){return this.Ih.Ah(t)}}P.vn=.5,P.Mn="data-vindex";class I{constructor(t=null,i=null){this.container={},this.oldValue=null,this.node=null,this.options=null,this.Ln=null,this.isOpen=!1,this.Pn=!1,this.In=!1,this.ge=null,t&&this.init(t,i)}get isDisabled(){return!!this.options?.disabled}set isDisabled(t){this.options&&this.node&&(this.options.disabled=t,this.node.classList.toggle("disabled",t),this.node.setAttribute("aria-disabled",t+""),this.container.tags?.Mi?.setAttribute("aria-disabled",t+""))}get En(){return!!this.options?.readonly}set En(t){this.options&&this.node&&(this.options.readonly=t,this.node.classList.toggle("readonly",t))}get isVisible(){return!!this.options?.visible}set isVisible(t){this.options&&this.node&&(this.options.visible=t,this.node.classList.toggle("invisible",!t))}init(i,s){const h=e.D(i).options,l=new o(h),a=new r,c=new p(h),effector=t(),u=new w(h),g=new v(h),f=new x(i,u,this),m=new O(i),b=new M(i);this.ge=s,this.options=h,l.node&&(l.node.id=(h.Fn??"")+"");const A=e.j({jn:{tag:{node:"div",classList:"selective-ui-MAIN"},$:{Mi:{tag:{node:"div",classList:"selective-ui-view",tabIndex:0,onkeydown:t=>{"Enter"!==t.key&&" "!==t.key&&"ArrowDown"!==t.key||(t.preventDefault(),this.$n()?.open())}},$:{Vn:{tag:l.node},kn:{tag:a.node},Ri:{tag:c.node}}}}}},null);this.container=A,this.node=A.view,i.parentNode?.insertBefore(this.node,i),this.node.insertBefore(i,A.tags.Mi),g.Qs(A.tags.Mi),g.Xs(u),A.tags.Mi.addEventListener("mousedown",t=>{t.stopPropagation(),t.preventDefault()}),n.ct(i,A.tags.Mi),i.classList.add("init"),u.Cs(H),u.Hs(h.virtualScroll?P:y),u.Es(e.Y(i)),u.onUpdated=()=>{A.Rn?.ri?.()},this.Ln=u,A._n=f,A.placeholder=l,A.Dn=a,A.Nn=c,A.effector=effector,A.targetElement=i,A.Bn=g,A.zn=m,A.Un=b,A.Rn=new d(i,h,u),A.Rn.fi(effector),A.Rn.Ai(f,h),A.Rn.gi("selected",()=>{this.$n()?.change(null,!0)}),A.Rn.gi("selected_internal",()=>{this.$n()?.change(null,!1)}),A.Rn.di("select",()=>{this.oldValue=this.$n()?.value??""}),this.$n()?.change(null,!1),m.connect(),m.Lt=t=>{u.update(e.Y(t)),this.$n()?.refreshMask()},b.connect(),b.Lt=t=>{e.R(t.disabled)!==this.isDisabled&&(this.isDisabled=e.R(t.disabled)),e.R(t.readonly)!==this.En&&(this.En=e.R(t.readonly)),e.R(t.visible)!==this.isVisible&&(this.isVisible=e.R(t.visible??"1"))},i.addEventListener("options:changed",()=>{u.update(e.Y(i)),this.$n()?.refreshMask(),A.Rn?.ri?.()}),h.ajax&&f.ye(h.ajax);const T=A.Rn.It,C=(t,i)=>{i||""!==t?(""!==t&&(this.In=!0),f.search(t).then(t=>{A.Rn?.ri?.(),t?.Ae&&setTimeout(()=>{A.Rn?.ri?.(),T.wh()},h.animationtime?h.animationtime+10:0)}).catch(t=>{console.error("Search error:",t)})):f.clear()};let S=null;c.ji=(t,i)=>{f.Me(t)&&(f.ce()?(S&&clearTimeout(S),A.Rn?.ei?.(),S=setTimeout(()=>{C(t,i)},h.delaysearchtime??0)):C(t,i))},f.setPopup(A.Rn),c.$i=t=>{T.navigate(t)},c.Vi=()=>{T.yh()},c.ki=()=>{this.$n()?.close(),A.tags.Mi.focus()},T.Oh=(t,i)=>{i&&c.Di(i)},T.uh=()=>{A.Rn?.ri?.()},this.isDisabled=e.R(h.disabled),this.En=e.R(h.readonly)}Gn(){const t=this.container??{},{zn:i,Un:s}=t;i?.disconnect&&i.disconnect(),s?.disconnect&&s.disconnect()}$n(){const t=this.container,i=this,s=()=>this.ge.find(t.targetElement),n=e.D(t.targetElement);if(!n)return null;const o=n.options,r={get targetElement(){return t.targetElement},get placeholder(){return t.placeholder.get()},set placeholder(i){t.placeholder?.set(i),t.Nn?._i(i)},get oldValue(){return i.oldValue},set value(t){this.setValue(null,t,!0)},get value(){const t=this.valueArray,i=t.length;return i>1?t:0===i?"":t[0]},get valueArray(){const t=[];return i.Wn().forEach(i=>{i.selected&&t.push(i.value)}),t},get valueString(){return this.valueArray.join(o.customDelimiter)},get valueOptions(){const t=[];return i.Wn(!0).forEach(i=>{t.push(i)}),t},get mask(){const t=[];return i.Wn(!0).forEach(i=>{t.push(i.text)}),t},get valueText(){const t=[];i.Wn(!0).forEach(i=>{t.push(i.text)});const s=t.length;return s>1?t:0===s?"":t[0]},get isOpen(){return i.isOpen},getParent:()=>t.view.parentElement,valueDataset(t,s=null,e=!1){var h=[];if(i.Wn(!0).forEach(t=>{h.push(s?t.dataset[s]:t.dataset)}),!e){if(0==h.length)return"";if(1==h.length)return h[0]}return h},selectAll(t,e=!0){if(!(o.multiple&&o.maxSelected>0&&i.Wn().length>o.maxSelected)&&!this.disabled&&!this.readonly&&o.multiple){if(e){if(h.ot([s()],...o.on.beforeChange).isCancel)return;i.oldValue=this.value}i.Wn().forEach(t=>{t.gs=!0}),this.change(!1,e)}},deSelectAll(t,e=!0){if(!this.disabled&&!this.readonly&&o.multiple){if(e){if(h.ot([s()],...o.on.beforeChange).isCancel)return;i.oldValue=this.value}i.Wn().forEach(t=>{t.gs=!1}),this.change(!1,e)}},setValue(e=null,n,r=!0,l=!1){if(Array.isArray(n)||(n=[n]),0===(n=n.filter(t=>""!==t&&null!=t)).length)return i.Wn().forEach(t=>t.gs=!1),void this.change(!1,r);if(o.multiple&&o.maxSelected>0&&n.length>o.maxSelected)console.warn(`Cannot select more than ${o.maxSelected} items`);else if(l||!this.disabled&&!this.readonly){if(t._n?.ce?.()){const{we:s}=t._n.me(n);if(s.length>0)return void(async()=>{o.loadingfield&&t.Rn?.ei?.();try{t._n.ve();const e=await t._n.ue(s);e.Li&&e.items.length>0?(e.items.forEach(t=>{s.includes(t.value)&&(t.selected=!0)}),t._n.Ce?.(e.items,!0,!0),setTimeout(()=>{i.Wn().forEach(t=>{t.gs=n.some(i=>i==t.value)}),this.change(!1,!1)},100)):s.length>0&&console.warn(`Could not load ${s.length} values:`,s)}catch(t){console.error("Error loading missing values:",t)}finally{o.loadingfield&&t.Rn?.li?.()}})()}if(r){if(h.ot([s()],...o.on.beforeChange).isCancel)return;i.oldValue=this.value}i.Wn().forEach(t=>{t.gs=n.some(i=>i==t.value)}),!o.multiple&&n.length>0&&(t.targetElement.value=n[0]),this.change(!1,r)}},open(){if(i.isOpen)return;const e=i.ge?.find?.();if(e&&!e.isEmpty&&e.close().isCancel)return;if(this.disabled)return;if(h.ot([s()],...o.on.beforeShow).isCancel)return;i.isOpen=!0,t.Dn.gt(!0);const n=t.Rn.It,r=n.fh();r?n.dh(r,!1):n.wh(),i.Pn&&!i.In||!o?.ajax?t.Rn.open(null,!0):(t._n.ve(),t.Rn.ei(),i.Pn=!0,i.In=!1,setTimeout(()=>{t.Rn&&t._n&&t._n.search("").then(()=>t.Rn?.ri?.()).catch(t=>console.error("Initial ajax load error:",t))},o.animationtime),t.Rn.open(null,!1)),t.Nn.show();const l=t.tags.Mi;l.setAttribute("aria-expanded","true"),l.setAttribute("aria-controls",o.Kt),l.setAttribute("aria-haspopup","listbox"),l.setAttribute("aria-labelledby",o.Fn),o.multiple&&l.setAttribute("aria-multiselectable","true"),h.ot([s()],...o.on.show)},close(){i.isOpen&&(h.ot([s()],...o.on.beforeClose).isCancel||(i.isOpen=!1,t.Dn.gt(!1),t.Rn.close(()=>{t.Nn.clear(!1)}),t.Nn.hide(),t.tags.Mi.setAttribute("aria-expanded","false"),h.ot([s()],...o.on.close)))},toggle(){i.isOpen?this.close():this.open()},change(e=null,n=!0){if(n){if(o.multiple&&o.maxSelected>0&&this.valueArray.length>o.maxSelected&&this.setValue(null,this.oldValue,!1,!0),this.disabled||this.readonly)return void this.setValue(null,this.oldValue,!1,!0);if(h.ot([s(),this.value],...o.on.beforeChange).isCancel)return void this.setValue(null,this.oldValue,!1)}this.refreshMask(),t.Bn.Zs(this.valueOptions),n&&(t.targetElement&&h.rt(t.targetElement,"change"),h.ot([s(),this.value],...o.on.change),i.options?.autoclose&&this.close())},refreshMask(){let s=o.placeholder;!o.multiple&&i.Wn().length>0&&(s=this.mask[0]),s??(s=o.placeholder),t.placeholder.set(s,!1),t.Nn._i(s)},on(t,i,s){o.on[i]||(o.on[i]=[]),o.on[i].push(s)},ajax(i,s){t._n.ye(s)},loadAjax:()=>new Promise((e,h)=>{t.Rn.ei(),t._n.ve(),i.Pn=!0,i.In=!1,t.Rn&&t._n?t._n.search("").then(()=>{t.Rn?.ri?.(),e(s())}).catch(t=>{console.error("Initial ajax load error:",t),h(t)}):e(s())})};return this.qn(r,"disabled","isDisabled"),this.qn(r,"readonly","isReadOnly"),this.qn(r,"visible","isVisible"),r}qn(t,i,s){const e=this;Object.defineProperty(t,i,{get:()=>e[s],set(t){e[s]=!!t,e.container?.targetElement?.dataset&&(e.container.targetElement.dataset[i]=!!t+"")},enumerable:!0,configurable:!0})}Wn(t=null){if(!this.Ln)return[];const{ks:i}=this.Ln.Zt(),s=[];for(const t of i)t instanceof b?s.push(t):t instanceof m&&Array.isArray(t.items)&&t.items.length&&s.push(...t.items);return"boolean"==typeof t?s.filter(i=>i.selected===t):s}Pi(){this.container.Rn.Pi()}}class E{constructor(){this.Jn=!1,this.Ee=null,this.Kn=[]}Qn(t){this.Kn.push(t)}Yn(){this.Kn=[]}start(t){if(this.Jn)return;this.Jn=!0;const i=t.toUpperCase(),s=t.toLowerCase();this.Ee=new MutationObserver(t=>{for(const e of t)e.addedNodes.forEach(t=>{if(1!==t.nodeType)return;const e=t;e.tagName===i&&this.Xn(e),e.querySelectorAll(s).forEach(t=>this.Xn(t))})}),this.Ee.observe(document.body,{childList:!0,subtree:!0})}stop(){this.Jn&&(this.Jn=!1,this.Ee?.disconnect(),this.Ee=null)}Xn(t){this.Kn.forEach(i=>i(t))}}const F=new class{constructor(){this.Zn=new Map}bind(t,i){const s=e.k(e.W(),i);s.on=s.on??{},s.on.load=s.on.load??[],this.Zn.set(t,s);const n=e.O();e.tt.on(n,()=>{h.ot([this.find(t)],...s.on.load),e.tt.clear(n),s.on.load=[]}),e.M(t).forEach(t=>{(async()=>{"SELECT"===t.tagName&&(e.B(t),this.io(t,s)&&e.tt.run(n))})()}),e.t().includes(t)||e.t().push(t)}find(t="*"){const i={isEmpty:!0};if("*"===t&&""===(t=e.t().join(", ")))return i;const s=e.M(t);if(0===s.length)return i;const h=e.D(s[0]);if(!h||!h.action)return i;const n={};for(const t in h.action)n[t]=this.so(t,h.action);const o={isEmpty:!1};for(const t in n){const i=n[t];switch(i.type){case"get-set":this.eo(o,i.name,s);break;case"func":this.ho(o,i.name,s)}}return o}i(){this.no=new E,this.no.Qn(t=>{this.Zn.forEach((i,s)=>{try{t.matches(s)&&this.io(t,i)}catch(t){console.warn("Invalid selector: "+s,t)}})}),this.no.start("select")}destroy(t=null){null===t?this.oo():"string"==typeof t?this.ro(t):t instanceof HTMLSelectElement&&this.lo(t)}oo(){e.t().forEach(t=>this.ro(t)),this.Zn.clear(),e.t().length=0,this.no?.stop()}ro(t){e.M(t).forEach(t=>{"SELECT"===t.tagName&&this.lo(t)}),this.Zn.delete(t);const i=e.t(),s=i.indexOf(t);s>-1&&i.splice(s,1)}lo(t){const i=e.D(t);if(!i)return;const s=i.container?.Rn;s?.Pi(),e.G(t,i);const h=!!this.no;h&&this.no?.stop();try{i.self?.Gn?.()}catch(t){}const n=i.container?.element??t.parentElement;t.style.display="",t.style.visibility="",t.disabled=!1,delete t.dataset.ao,n&&n.parentNode?n.parentNode.replaceChild(t,n):document.body.appendChild(t),e._(t),h&&this.Zn.size>0&&this.no?.start("select")}rebind(t,i){this.ro(t),this.bind(t,i)}io(t,i){if(e.D(t)||e.U(t))return!1;const s=e.O(8),h=e.V(t,i);h.co=s,h.Kt=`seui-${s}-optionlist`,h.Fn=`seui-${s}-placeholder`;const n={options:h};e.N(t,n);const o=new I(t,this);return n.container=o.container,n.action=o.$n(),n.self=o,o.container.view.addEventListener("mouseup",()=>{n.action?.toggle?.()}),!0}so(t,i){const s=Object.getOwnPropertyDescriptor(i,t);let e="variable";return s?.get||s?.set&&"function"!=typeof i[t]?e="get-set":"function"==typeof i[t]&&(e="func"),{type:e,name:t}}eo(t,i,s){Object.defineProperty(t,i,{get(){const t=e.D(s[0]);return t.action?.[i]},set(t){s.forEach(s=>{const h=e.D(s);h?.action&&(h.action[i]=t)})},enumerable:!0,configurable:!0})}ho(t,i,s){t[i]=(...n)=>{let o=null;for(let t=0;t<s.length;t++){const r=e.D(s[t]);if(!r?.action)continue;const l=h.nt();if(o??(o=r.action[i](l.ht,...n)),!l.token.isContinue)break}return o??t}}},version="1.2.0",j="SelectiveUI";let $=!1;"undefined"!=typeof document&&("loading"===document.readyState?document.addEventListener("DOMContentLoaded",i):i());export{bind,destroy,effector,find,j as name,rebind,version};
Binary file
@@ -1 +1 @@
1
- :root{--seui-transparent-color:#0000;--seui-view-text-color:#121212;--seui-view-ro-text-color:#a3a3a3;--seui-view-text-style:Arial,Helvetica,sans-serif;--seui-view-text-size:13px;--seui-view-mobile-text-size:16px;--seui-view-background-color:#fff;--seui-view-ro-background-color:#00000029;--seui-view-optgroup-background-color:#a3c6e9;--seui-view-border-color:#a3a3a3;--seui-view-ro-border-color:#bdbdbd;--seui-view-border-size:1px;--seui-view-border-style:solid;--seui-view-border-radius:5px;--seui-directive-color:#000;--seui-directive-ro-color:#a3a3a3;--seui-option-crtl-text-color:#307ecc;--seui-option-crtl-text-color-hover:red;--seui-option-crtl-background-color:#f3f3f3;--seui-option-crtl-border-color:#ccc;--seui-option-crtl-text-size:13px;--seui-option-padding:5px;--seui-option-border-radius:5px;--seui-accessory-max-width:100%;--seui-accessory-max-height:50px;--seui-accessory-padding:2px 0;--seui-accessory-item-border-color:#a3a3a3;--seui-accessory-item-border-style:solid;--seui-accessory-item-border-width:1px;--seui-accessory-item-border-radius:3px;--seui-accessory-item-background:#f7f7f9;--seui-accessory-item-font-size:11px;--seui-accessory-item-padding:2px;--seui-accessory-item-gap:3px;--seui-accessory-item-button-color:#757575;--seui-accessory-item-button-width:16px;--seui-accessory-item-button-height:16px;--seui-accessory-item-button-border-color:#a3a3a3;--seui-accessory-item-button-border-style:solid;--seui-accessory-item-button-border-width:1px;--seui-accessory-item-button-border-radius:2px;--seui-accessory-item-content-color:#307ecc;--seui-accessory-item-content-font-size:11px;--seui-accessory-item-content-padding:0 4px 0 2px;--seui-popup-background-color:#fbfbfb;--seui-popup-border-color:#a3a3a3;--seui-popup-border-style:solid;--seui-popup-border-width:1px;--seui-popup-border-radius:6px;--seui-chkbox-background-color:#fff;--seui-chkbox-border-color:#8f9194;--seui-chkbox-hover-background-color:#dbdbdb;--seui-chkbox-hover-border-color:#b7b7b7;--seui-chkbox-checked-background-color:#9dcff8;--seui-chkbox-checked-border-color:#9dcff8;--seui-chkbox-checked-hover-background-color:#9dcff8;--seui-chkbox-checked-hover-border-color:#007eff;--seui-chkbox-checked-color:#0075ff;--seui-empty-state-color:#999;--seui-empty-state-background:#f9f9f9;--seui-empty-state-padding:10px 5px}.selective-ui-MAIN{display:inline-block;max-width:min-content}.selective-ui-MAIN,.selective-ui-MAIN *{box-sizing:border-box;line-height:normal;margin:0;padding:0;touch-action:manipulation}.selective-ui-MAIN>select.init{display:none}.selective-ui-MAIN>.selective-ui-view{align-items:center;background-color:var(--seui-view-background-color);border:var(--seui-view-border-style) var(--seui-view-border-size) var(--seui-view-border-color);border-radius:var(--seui-view-border-radius);display:flex;flex-direction:row;height:100%;position:relative;width:100%}.selective-ui-MAIN.invisible{display:none}.selective-ui-MAIN.disabled{--seui-view-background-color:var(--seui-view-ro-background-color);--seui-view-border-color:var(--seui-view-ro-border-color);--seui-view-text-color:var(--seui-view-ro-text-color);--seui-directive-color:var(--seui-directive-ro-color)}.selective-ui-MAIN .hide{display:none}@supports (-webkit-touch-callout:none){:root{--seui-view-text-size:var(--seui-view-mobile-text-size)}}.selective-ui-placeholder{align-items:center;color:var(--seui-view-text-color);display:flex;font-family:var(--seui-view-text-style);font-size:var(--seui-view-text-size)!important;height:calc(100% - 10px);margin-left:10px;max-width:calc(100% - 30px);overflow:hidden;pointer-events:none;text-overflow:ellipsis;white-space:nowrap}.selective-ui-directive{border-left:4px solid #0000;border-right:4px solid #0000;border-top:4px solid var(--seui-directive-color);content:" ";display:inline-block;height:0;pointer-events:none;position:absolute;right:10px;top:50%;transform:translateY(-50%) rotate(0deg);transition:all .2s linear;vertical-align:middle;width:0;z-index:1}.selective-ui-directive.drop-down{transform:translateY(-50%) rotate(180deg)}.selective-ui-empty-state{align-items:center;background-color:var(--seui-empty-state-background,#0000);border-radius:var(--seui-option-border-radius);bottom:0;color:var(--seui-empty-state-color,#999);display:flex;font-family:var(--seui-view-text-style);font-size:var(--seui-view-text-size);justify-content:center;min-height:60px;padding:var(--seui-empty-state-padding,20px);position:sticky;text-align:center}.selective-ui-empty-state.small{justify-content:flex-start;min-height:30px;text-align:left}.selective-ui-empty-state.hide{display:none}.selective-ui-loading-state{align-items:center;background-color:var(--seui-empty-state-background,#0000);border-radius:var(--seui-option-border-radius);bottom:0;color:var(--seui-empty-state-color,#999);display:flex;font-family:var(--seui-view-text-style);font-size:var(--seui-view-text-size);justify-content:center;min-height:60px;padding:var(--seui-empty-state-padding,20px);position:sticky;text-align:center}.selective-ui-loading-state.small{justify-content:flex-start;min-height:30px;text-align:left}.selective-ui-loading-state.hide{display:none}.selective-ui-group{display:flex;flex-direction:column;gap:2px}.selective-ui-group.hide{display:none}.selective-ui-group-header{align-items:center;background-color:var(--seui-view-optgroup-background-color);border-radius:var(--seui-option-border-radius);color:var(--seui-view-text-color);cursor:pointer;display:flex;font-family:var(--seui-view-text-style);font-size:var(--seui-view-text-size);font-weight:600;gap:8px;padding:8px 12px;-webkit-user-select:none;user-select:none;z-index:1}.selective-ui-group-header:before{border-bottom:5px solid #0000;border-left:7px solid;border-top:5px solid #0000;content:"";display:inline-block;height:0;transform:rotate(90deg);transition:transform .2s ease;width:0}.selective-ui-group.collapsed .selective-ui-group-header:before{transform:rotate(0deg)}.selective-ui-group-items{display:flex;flex-direction:column;gap:2px;padding-left:16px}.selective-ui-group.collapsed .selective-ui-group-items{display:none}.selective-ui-group-items .selective-ui-option-view{border-left:2px solid #e0e0e0;margin-left:4px;padding-left:12px}.selective-ui-popup,.selective-ui-popup *{box-sizing:border-box;line-height:normal}.selective-ui-popup{background-color:var(--seui-popup-background-color);border-color:var(--seui-popup-border-color);border-radius:var(--seui-popup-border-radius);border-style:var(--seui-popup-border-style);border-width:var(--seui-popup-border-width);display:none;flex-direction:column;gap:2px;height:0;overflow:none;padding:2px;position:fixed;z-index:9999}.selective-ui-options-container{-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:2px;touch-action:pan-y;width:100%}.selective-ui-options-container.hide{display:none}.selective-ui-searchbox{align-items:center;background-color:var(--seui-view-background-color);border-radius:5px;display:flex;flex-direction:row;height:100%;position:absolute;width:calc(100% - 30px);z-index:2}.selective-ui-searchbox-input{background:var(--seui-transparent-color);border:0;color:var(--seui-view-text-color);font-family:var(--seui-view-text-style);font-size:var(--seui-view-text-size)!important;height:calc(100% - 10px);margin-left:10px;outline:none!important;overflow:hidden;padding:0!important;text-indent:0;text-overflow:ellipsis;white-space:nowrap;width:100%}.selective-ui-option-handle{align-items:center;background-color:var(--seui-option-crtl-background-color);border:1px solid var(--seui-option-crtl-border-color);border-radius:var(--seui-option-border-radius);display:flex;flex-direction:row;font-family:var(--seui-view-text-style);font-size:var(--seui-option-crtl-text-size);justify-content:space-between;padding:var(--seui-option-padding);position:sticky;top:0;width:unset;z-index:2}.selective-ui-option-handle.hide{display:none}.selective-ui-option-handle-item{color:var(--seui-option-crtl-text-color);cursor:pointer;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.selective-ui-option-handle-item:hover{color:var(--seui-option-crtl-text-color-hover)}.selective-ui-option-view{align-items:center!important;background-color:var(--seui-transparent-color);border:1px solid var(--seui-transparent-color);border-radius:4px;display:flex;flex-direction:row;gap:7px;line-height:normal;padding:5px;position:relative;transition:all .18s;width:auto}.selective-ui-option-view.checked{background-color:var(--seui-chkbox-checked-background-color);border-color:var(--seui-chkbox-checked-border-color)}.selective-ui-option-view>input{display:none}.selective-ui-option-view>label{align-items:center;color:var(--seui-view-text-color);display:flex;font-family:var(--seui-view-text-style);font-size:var(--seui-view-text-size);gap:7px;height:100%;width:100%}.selective-ui-option-view.multiple>label:before{background:var(--seui-chkbox-background-color);border:1px solid var(--seui-chkbox-border-color);border-radius:.2em;content:"";display:block;height:17px;min-height:17px;min-width:17px;transition:all .2s,background .2s ease-in-out;width:17px}.selective-ui-option-view.multiple.checked>label:before{background:var(--seui-chkbox-checked-color) url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOC4xNjggMTIuMzhhMSAxIDAgMCAxLTEuNDE1IDBMMi43NDUgOC4zNjZhMSAxIDAgMCAxIDAtMS40MTNsLjQyLS40MmExIDEgMCAwIDEgMS40MTUgMEw2Ljc1MyA4LjcxYTEgMSAwIDAgMCAxLjQxNSAwbDQuMDgyLTQuMDlhMSAxIDAgMCAxIDEuNDE1IDBsLjQyLjQyYTEgMSAwIDAgMSAwIDEuNDEzeiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) 50% 40% no-repeat;border:1px solid var(--seui-chkbox-checked-color);color:var(--seui-view-background-color)}.selective-ui-option-view>label>div{display:flex;height:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.selective-ui-option-view>label.align-horizontal-left>div{justify-content:flex-start}.selective-ui-option-view>label.align-horizontal-center>div{justify-content:center}.selective-ui-option-view>label.align-horizontal-right>div{justify-content:flex-end}.selective-ui-option-view>label.align-vertical-left>div{align-items:flex-start}.selective-ui-option-view>label.align-vertical-center>div{align-items:center}.selective-ui-option-view>label.align-vertical-right>div{align-items:flex-end}.selective-ui-option-view.hide{display:none}.selective-ui-option-view.highlight{background-color:var(--seui-chkbox-hover-background-color);border-color:var(--seui-chkbox-hover-border-color)}.selective-ui-option-view.highlight.checked{background-color:var(--seui-chkbox-checked-hover-background-color);border-color:var(--seui-chkbox-checked-hover-border-color)}.selective-ui-option-view.has-image{gap:10px}.selective-ui-option-view.has-image.image-top{align-items:center;flex-direction:column;text-align:center}.selective-ui-option-view.has-image.image-right{flex-direction:row-reverse}.selective-ui-option-view.has-image.image-bottom{flex-direction:column-reverse}.selective-ui-option-view .option-image{flex-shrink:0;object-fit:cover}.selective-ui-option-view.multiple.has-image>label:before{display:none;order:-1}.selective-ui-accessorybox{display:flex;flex-direction:row;flex-wrap:wrap;gap:2px;max-height:var(--seui-accessory-max-height);max-width:var(--seui-accessory-max-width);overflow-y:scroll;padding:var(--seui-accessory-padding)}.accessory-item{align-items:center;background:var(--seui-accessory-item-background);border-color:var(--seui-accessory-item-border-color);border-radius:var(--seui-accessory-item-border-radius);border-style:var(--seui-accessory-item-border-style);border-width:var(--seui-accessory-item-border-width);display:flex;font-size:var(--seui-accessory-item-font-size);gap:var(--seui-accessory-item-gap);overflow:hidden;padding:var(--seui-accessory-item-padding)}.accessory-item>.accessory-item-button{border-color:var(--seui-accessory-item-button-border-color);border-radius:var(--seui-accessory-item-button-border-radius);border-style:var(--seui-accessory-item-button-border-style);border-width:var(--seui-accessory-item-button-border-width);color:var(--seui-accessory-item-button-color);cursor:pointer;font-weight:700;height:var(--seui-accessory-item-button-height);min-height:var(--seui-accessory-item-button-height);min-width:var(--seui-accessory-item-button-width);position:relative;width:var(--seui-accessory-item-button-width)}.accessory-item>.accessory-item-button:after{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cg fill='%234c4c4c' transform='rotate(45 8 8)'%3E%3Crect width='7.762' height='1.411' x='4.119' y='7.294' rx='1'/%3E%3Crect width='11' height='2' x='.206' y='4.706' rx='1' transform='rotate(90 4.026 8) scale(.70565)'/%3E%3C/g%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;content:"";display:block;height:100%;position:absolute;width:100%}.accessory-item>.accessory-item-content{color:var(--seui-accessory-item-content-color);font-size:var(--seui-accessory-item-content-font-size);overflow:hidden;padding:var(--seui-accessory-item-content-padding);text-overflow:ellipsis;white-space:nowrap}
1
+ :root{--seui-transparent-color:#0000;--seui-view-text-color:#121212;--seui-view-ro-text-color:#a3a3a3;--seui-view-text-style:Arial,Helvetica,sans-serif;--seui-view-text-size:13px;--seui-view-mobile-text-size:16px;--seui-view-background-color:#fff;--seui-view-ro-background-color:#00000029;--seui-view-optgroup-background-color:#a3c6e9;--seui-view-border-color:#a3a3a3;--seui-view-ro-border-color:#bdbdbd;--seui-view-border-size:1px;--seui-view-border-style:solid;--seui-view-border-radius:5px;--seui-directive-color:#000;--seui-directive-ro-color:#a3a3a3;--seui-option-crtl-text-color:#307ecc;--seui-option-crtl-text-color-hover:red;--seui-option-crtl-background-color:#f3f3f3;--seui-option-crtl-border-color:#ccc;--seui-option-crtl-text-size:13px;--seui-option-padding:5px;--seui-option-border-radius:5px;--seui-accessory-max-width:100%;--seui-accessory-max-height:50px;--seui-accessory-padding:2px 0;--seui-accessory-item-border-color:#a3a3a3;--seui-accessory-item-border-style:solid;--seui-accessory-item-border-width:1px;--seui-accessory-item-border-radius:3px;--seui-accessory-item-background:#f7f7f9;--seui-accessory-item-font-size:11px;--seui-accessory-item-padding:2px;--seui-accessory-item-gap:3px;--seui-accessory-item-button-color:#757575;--seui-accessory-item-button-width:16px;--seui-accessory-item-button-height:16px;--seui-accessory-item-button-border-color:#a3a3a3;--seui-accessory-item-button-border-style:solid;--seui-accessory-item-button-border-width:1px;--seui-accessory-item-button-border-radius:2px;--seui-accessory-item-content-color:#307ecc;--seui-accessory-item-content-font-size:11px;--seui-accessory-item-content-padding:0 4px 0 2px;--seui-popup-background-color:#fbfbfb;--seui-popup-border-color:#a3a3a3;--seui-popup-border-style:solid;--seui-popup-border-width:1px;--seui-popup-border-radius:6px;--seui-chkbox-background-color:#fff;--seui-chkbox-border-color:#8f9194;--seui-chkbox-hover-background-color:#dbdbdb;--seui-chkbox-hover-border-color:#b7b7b7;--seui-chkbox-checked-background-color:#9dcff8;--seui-chkbox-checked-border-color:#9dcff8;--seui-chkbox-checked-hover-background-color:#9dcff8;--seui-chkbox-checked-hover-border-color:#007eff;--seui-chkbox-checked-color:#0075ff;--seui-empty-state-color:#999;--seui-empty-state-background:#f9f9f9;--seui-empty-state-padding:10px 5px}.selective-ui-MAIN{display:inline-block;max-width:min-content}.selective-ui-MAIN,.selective-ui-MAIN *{box-sizing:border-box;line-height:normal;margin:0;padding:0;touch-action:manipulation}.selective-ui-MAIN>select.init{display:none}.selective-ui-MAIN>.selective-ui-view{align-items:center;background-color:var(--seui-view-background-color);border:var(--seui-view-border-style) var(--seui-view-border-size) var(--seui-view-border-color);border-radius:var(--seui-view-border-radius);display:flex;flex-direction:row;height:100%;position:relative;width:100%}.selective-ui-MAIN.invisible{display:none}.selective-ui-MAIN.disabled{--seui-view-background-color:var(--seui-view-ro-background-color);--seui-view-border-color:var(--seui-view-ro-border-color);--seui-view-text-color:var(--seui-view-ro-text-color);--seui-directive-color:var(--seui-directive-ro-color)}.selective-ui-MAIN .hide{display:none}@supports (-webkit-touch-callout:none){:root{--seui-view-text-size:var(--seui-view-mobile-text-size)}}.selective-ui-placeholder{align-items:center;color:var(--seui-view-text-color);display:flex;font-family:var(--seui-view-text-style);font-size:var(--seui-view-text-size)!important;height:calc(100% - 10px);margin-left:10px;max-width:calc(100% - 30px);overflow:hidden;pointer-events:none;text-overflow:ellipsis;white-space:nowrap}.selective-ui-directive{border-left:4px solid #0000;border-right:4px solid #0000;border-top:4px solid var(--seui-directive-color);content:" ";display:inline-block;height:0;pointer-events:none;position:absolute;right:10px;top:50%;transform:translateY(-50%) rotate(0deg);transition:all .2s linear;vertical-align:middle;width:0;z-index:1}.selective-ui-directive.drop-down{transform:translateY(-50%) rotate(180deg)}.selective-ui-empty-state{align-items:center;background-color:var(--seui-empty-state-background,#0000);border-radius:var(--seui-option-border-radius);bottom:0;color:var(--seui-empty-state-color,#999);display:flex;font-family:var(--seui-view-text-style);font-size:var(--seui-view-text-size);justify-content:center;min-height:60px;padding:var(--seui-empty-state-padding,20px);position:sticky;text-align:center}.selective-ui-empty-state.small{justify-content:flex-start;min-height:30px;text-align:left}.selective-ui-empty-state.hide{display:none}.selective-ui-loading-state{align-items:center;background-color:var(--seui-empty-state-background,#0000);border-radius:var(--seui-option-border-radius);bottom:0;color:var(--seui-empty-state-color,#999);display:flex;font-family:var(--seui-view-text-style);font-size:var(--seui-view-text-size);justify-content:center;min-height:60px;padding:var(--seui-empty-state-padding,20px);position:sticky;text-align:center}.selective-ui-loading-state.small{justify-content:flex-start;min-height:30px;text-align:left}.selective-ui-loading-state.hide{display:none}.selective-ui-group{display:flex;flex-direction:column;gap:2px}.selective-ui-group.hide{display:none}.selective-ui-group-header{align-items:center;background-color:var(--seui-view-optgroup-background-color);border-radius:var(--seui-option-border-radius);color:var(--seui-view-text-color);cursor:pointer;display:flex;font-family:var(--seui-view-text-style);font-size:var(--seui-view-text-size);font-weight:600;gap:8px;padding:8px 12px;-webkit-user-select:none;user-select:none;z-index:1}.selective-ui-group-header:before{border-bottom:5px solid #0000;border-left:7px solid;border-top:5px solid #0000;content:"";display:inline-block;height:0;transform:rotate(90deg);transition:transform .2s ease;width:0}.selective-ui-group.collapsed .selective-ui-group-header:before{transform:rotate(0deg)}.selective-ui-group-items{display:flex;flex-direction:column;gap:2px;padding-left:16px}.selective-ui-group.collapsed .selective-ui-group-items{display:none}.selective-ui-group-items .selective-ui-option-view{border-left:2px solid #e0e0e0;margin-left:4px;padding-left:12px}.selective-ui-popup,.selective-ui-popup *{box-sizing:border-box;line-height:normal}.selective-ui-popup{background-color:var(--seui-popup-background-color);border-color:var(--seui-popup-border-color);border-radius:var(--seui-popup-border-radius);border-style:var(--seui-popup-border-style);border-width:var(--seui-popup-border-width);display:none;flex-direction:column;gap:2px;height:0;overflow:none;padding:2px;position:fixed;z-index:9999}.selective-ui-options-container{-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;touch-action:pan-y;width:100%}.selective-ui-options-container.hide{display:none}.selective-ui-options-container .selective-ui-virtual-items{display:flex;flex-direction:column;gap:2px;width:100%}.selective-ui-searchbox{align-items:center;background-color:var(--seui-view-background-color);border-radius:5px;display:flex;flex-direction:row;height:100%;position:absolute;width:calc(100% - 30px);z-index:2}.selective-ui-searchbox-input{background:var(--seui-transparent-color);border:0;color:var(--seui-view-text-color);font-family:var(--seui-view-text-style);font-size:var(--seui-view-text-size)!important;height:calc(100% - 10px);margin-left:10px;outline:none!important;overflow:hidden;padding:0!important;text-indent:0;text-overflow:ellipsis;white-space:nowrap;width:100%}.selective-ui-option-handle{align-items:center;background-color:var(--seui-option-crtl-background-color);border:1px solid var(--seui-option-crtl-border-color);border-radius:var(--seui-option-border-radius);display:flex;flex-direction:row;font-family:var(--seui-view-text-style);font-size:var(--seui-option-crtl-text-size);justify-content:space-between;padding:var(--seui-option-padding);position:sticky;top:0;width:unset;z-index:2}.selective-ui-option-handle.hide{display:none}.selective-ui-option-handle-item{color:var(--seui-option-crtl-text-color);cursor:pointer;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.selective-ui-option-handle-item:hover{color:var(--seui-option-crtl-text-color-hover)}.selective-ui-option-view{align-items:center!important;background-color:var(--seui-transparent-color);border:1px solid var(--seui-transparent-color);border-radius:4px;display:flex;flex-direction:row;gap:7px;line-height:normal;padding:5px;position:relative;transition:all .18s;width:auto}.selective-ui-option-view.checked{background-color:var(--seui-chkbox-checked-background-color);border-color:var(--seui-chkbox-checked-border-color)}.selective-ui-option-view>input{display:none}.selective-ui-option-view>label{align-items:center;color:var(--seui-view-text-color);display:flex;font-family:var(--seui-view-text-style);font-size:var(--seui-view-text-size);gap:7px;height:100%;width:100%}.selective-ui-option-view.multiple>label:before{background:var(--seui-chkbox-background-color);border:1px solid var(--seui-chkbox-border-color);border-radius:.2em;content:"";display:block;height:17px;min-height:17px;min-width:17px;transition:all .2s,background .2s ease-in-out;width:17px}.selective-ui-option-view.multiple.checked>label:before{background:var(--seui-chkbox-checked-color) url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOC4xNjggMTIuMzhhMSAxIDAgMCAxLTEuNDE1IDBMMi43NDUgOC4zNjZhMSAxIDAgMCAxIDAtMS40MTNsLjQyLS40MmExIDEgMCAwIDEgMS40MTUgMEw2Ljc1MyA4LjcxYTEgMSAwIDAgMCAxLjQxNSAwbDQuMDgyLTQuMDlhMSAxIDAgMCAxIDEuNDE1IDBsLjQyLjQyYTEgMSAwIDAgMSAwIDEuNDEzeiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) 50% 40% no-repeat;border:1px solid var(--seui-chkbox-checked-color);color:var(--seui-view-background-color)}.selective-ui-option-view>label>div{display:flex;height:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.selective-ui-option-view>label.align-horizontal-left>div{justify-content:flex-start}.selective-ui-option-view>label.align-horizontal-center>div{justify-content:center}.selective-ui-option-view>label.align-horizontal-right>div{justify-content:flex-end}.selective-ui-option-view>label.align-vertical-left>div{align-items:flex-start}.selective-ui-option-view>label.align-vertical-center>div{align-items:center}.selective-ui-option-view>label.align-vertical-right>div{align-items:flex-end}.selective-ui-option-view.hide{display:none}.selective-ui-option-view.highlight{background-color:var(--seui-chkbox-hover-background-color);border-color:var(--seui-chkbox-hover-border-color)}.selective-ui-option-view.highlight.checked{background-color:var(--seui-chkbox-checked-hover-background-color);border-color:var(--seui-chkbox-checked-hover-border-color)}.selective-ui-option-view.has-image{gap:10px}.selective-ui-option-view.has-image.image-top{align-items:center;flex-direction:column;text-align:center}.selective-ui-option-view.has-image.image-right{flex-direction:row-reverse}.selective-ui-option-view.has-image.image-bottom{flex-direction:column-reverse}.selective-ui-option-view .option-image{flex-shrink:0;object-fit:cover}.selective-ui-option-view.multiple.has-image>label:before{display:none;order:-1}.selective-ui-accessorybox{display:flex;flex-direction:row;flex-wrap:wrap;gap:2px;max-height:var(--seui-accessory-max-height);max-width:var(--seui-accessory-max-width);overflow-y:scroll;padding:var(--seui-accessory-padding)}.accessory-item{align-items:center;background:var(--seui-accessory-item-background);border-color:var(--seui-accessory-item-border-color);border-radius:var(--seui-accessory-item-border-radius);border-style:var(--seui-accessory-item-border-style);border-width:var(--seui-accessory-item-border-width);display:flex;font-size:var(--seui-accessory-item-font-size);gap:var(--seui-accessory-item-gap);overflow:hidden;padding:var(--seui-accessory-item-padding)}.accessory-item>.accessory-item-button{border-color:var(--seui-accessory-item-button-border-color);border-radius:var(--seui-accessory-item-button-border-radius);border-style:var(--seui-accessory-item-button-border-style);border-width:var(--seui-accessory-item-button-border-width);color:var(--seui-accessory-item-button-color);cursor:pointer;font-weight:700;height:var(--seui-accessory-item-button-height);min-height:var(--seui-accessory-item-button-height);min-width:var(--seui-accessory-item-button-width);position:relative;width:var(--seui-accessory-item-button-width)}.accessory-item>.accessory-item-button:after{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cg fill='%234c4c4c' transform='rotate(45 8 8)'%3E%3Crect width='7.762' height='1.411' x='4.119' y='7.294' rx='1'/%3E%3Crect width='11' height='2' x='.206' y='4.706' rx='1' transform='rotate(90 4.026 8) scale(.70565)'/%3E%3C/g%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;content:"";display:block;height:100%;position:absolute;width:100%}.accessory-item>.accessory-item-content{color:var(--seui-accessory-item-content-color);font-size:var(--seui-accessory-item-content-font-size);overflow:hidden;padding:var(--seui-accessory-item-content-padding);text-overflow:ellipsis;white-space:nowrap}
Binary file