compelem 0.6.6-b1 → 0.6.7-b1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CompElem.d.ts CHANGED
@@ -27,6 +27,7 @@ export declare class CompElem extends CompElem_base implements IComponent {
27
27
  static defaults(options: DefaultProps): void;
28
28
  __events: Record<string, Array<Node | ((e: Event) => void)>[]>;
29
29
  get [Symbol.toStringTag](): string;
30
+ get cid(): number;
30
31
  get reactiveData(): Record<string, any>;
31
32
  get attrs(): Record<string, string>;
32
33
  get props(): Record<string, any>;
@@ -36,6 +37,7 @@ export declare class CompElem extends CompElem_base implements IComponent {
36
37
  get wrapperComponent(): CompElem | null;
37
38
  get slotHooks(): Record<string, (...args: any[]) => Template>;
38
39
  get css(): CSSStyleSheet[];
40
+ get globalStyleSheet(): CSSStyleSheet;
39
41
  get isMounted(): boolean;
40
42
  get slots(): Record<string, Array<Node>>;
41
43
  /**
@@ -115,7 +117,7 @@ export declare class CompElem extends CompElem_base implements IComponent {
115
117
  * 下一帧执行
116
118
  * @param cbk
117
119
  */
118
- nextTick(cbk: () => void): void;
120
+ nextTick(cbk: () => void, key?: string): void;
119
121
  /**
120
122
  * 强制更新一次视图
121
123
  */
package/IComponent.d.ts CHANGED
@@ -5,6 +5,7 @@ import { Template } from "./render/Template";
5
5
  * @author holyhigh2
6
6
  */
7
7
  export interface IComponent {
8
+ get cid(): number;
8
9
  get attrs(): Record<string, string>;
9
10
  get props(): Record<string, any>;
10
11
  get renderRoot(): HTMLElement;
@@ -14,6 +15,7 @@ export interface IComponent {
14
15
  get slots(): Record<string, Array<Node>>;
15
16
  get slotHooks(): Record<string, (...args: any[]) => Template>;
16
17
  get css(): CSSStyleSheet[];
18
+ get globalStyleSheet(): CSSStyleSheet;
17
19
  get isMounted(): boolean;
18
20
  get styles(): Array<() => string>;
19
21
  propsReady(props: Record<string, any>): void;
package/README.md CHANGED
@@ -316,13 +316,13 @@ CompElem 组件既可以在 CompElem 环境内调用,也可以直接在原生
316
316
  ```
317
317
 
318
318
  #### 插入节点(动态)
319
-
320
- 动态内容插入仅可在 CompElem 组件中编码,可以通过组件注入参数动态生成插槽内容
319
+ 1. 通过`slot`指令
320
+ 仅可在 CompElem 组件中编码,可使用所有CompElem指令并可通过`args`接收插槽参数
321
321
 
322
322
  ```ts
323
323
  //仅可用于CompElem组件中
324
324
  return html` <l-tooltip>
325
- //动态内容通过slot指令定义 ${slot(
325
+ ${slot(
326
326
  (args: Record<string, any>) => html`
327
327
  <div>我是动态内容-${args.data.id}</div>
328
328
  `,
@@ -330,20 +330,29 @@ return html` <l-tooltip>
330
330
  )}
331
331
  </l-tooltip>`;
332
332
  ```
333
+ 2. 通过元素注入
334
+ 可在非CompElem环境中使用,比如将组件嵌入到React/Vue环境中使用
335
+ ```html
336
+ <!-- 在 .vue 中 -->
337
+ ...
338
+ <l-column>
339
+ <!-- CompElem 会赋值组件的data属性为 data -->
340
+ <VueComp slot="cell" data-slot-data/>
341
+ </l-column>
342
+ ...
343
+ <!-- 对于驼峰变量可通过短横线分隔,下例会向组件注入 dataList 变量 -->
344
+ ...
345
+ <!-- CompElem 会赋值组件的dataList属性为 data -->
346
+ <VueComp slot="cell" data-slot-data-list="data"/>
347
+ ...
348
+ ```
333
349
 
334
- 在`slot`标签上注入参数
350
+ 动态插槽的参数可在组件内的 `slot` 标签上通过 *视图模板-参数表达式* `.xx` 注入参数
335
351
 
336
352
  ```html
337
353
  <slot .data="${this.row}"></slot>
338
354
  ```
339
355
 
340
- **_注意_**,动态插槽必须关闭自动插槽,否则无效
341
-
342
- ```ts
343
- static get autoSlot() {
344
- return false;
345
- }
346
- ```
347
356
 
348
357
  ## 指令 Directive
349
358
 
package/compelem.umd.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * compelem v0.6.6-b1.1753346007
2
+ * compelem v0.6.7-b1.1754064921
3
3
  * A modern, reactive, fast, lightweight and flexible lib for building web components
4
4
  * @holyhigh2
5
5
  * https://github.com/holyhigh2/compelem
6
6
  */
7
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("myfx")):"function"==typeof define&&define.amd?define(["exports","myfx"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).compelem={},e.myfx)}(this,(function(e,t){"use strict";const s=new WeakMap,r=/\s+\.?key\s*=/;var n,i,o,a;function l(e){console.error("[CompElem]",e)}function c(e,t){console.error(`[CompElem <${e}>]`,t)}function d(e){return t.toPath(e).join("-")}function p(e){return Object.getPrototypeOf(e)}function h(e){let s=e;return t.isString(e)&&/(?:^true$)|(?:^false$)/.test(s)?s="true"===s:(t.isUndefined(s)||t.isBlank(s))&&(s=!0),s}!function(e){e[e.CSS=1]="CSS",e[e.COMPUTED=2]="COMPUTED"}(n||(n={})),function(e){e.PROPS="__deco_props",e.STATES="__deco_states",e.COMPUTED="__deco_computed",e.WATCH="__deco_watch",e.EVENTS="__deco_events"}(i||(i={})),function(e){e.Prod="prod",e.Dev="dev"}(o||(o={})),e.DecoratorType=void 0,(a=e.DecoratorType||(e.DecoratorType={})).CLASS="class",a.FIELD="field",a.METHOD="method";class u{static get priority(){return 0}}const f="getKey",g="__decorators",m=new WeakMap;class E{args;metadata;decoratorClass;instanceMap;key;priority=0;constructor(e,s,r){this.args=e,this.metadata=s,this.decoratorClass=r,this.priority=t.get(r,"priority",0),this.instanceMap=new WeakMap}create(s){let r,n=new this.decoratorClass(...this.args),i=n.targets,o=this.metadata[2];t.isObject(o)&&t.isDefined(t.get(o,"configurable"))?r=e.DecoratorType.METHOD:t.isUndefined(this.metadata[2])&&(r=e.DecoratorType.FIELD),!t.isEmpty(i)&&r&&i.includes(r)?(n.created(s,...this.metadata),this.instanceMap.set(s,n)):l(`Decorator '${this.decoratorClass.name}' is out of targets, expect '${i.join(",")}' bug got '${r}'`)}beforeMount(e,t){this.instanceMap.get(e).beforeMount(e,t,...this.metadata)}mounted(e,t){this.instanceMap.get(e).mounted(e,t,...this.metadata)}updated(e,t){this.instanceMap.get(e).updated(e,t)}}const y=new WeakMap;function b(e){let s=(...s)=>(...r)=>{let n=r[0].constructor,i=n[g];if(!t.has(n,g)){let e=Object.getPrototypeOf(n);i=e?t.concat(e[g]??[]):[],Reflect.defineProperty(n,g,{configurable:!1,enumerable:!1,value:i})}let o,a={},l=e[f];if(l){let t=y.get(e);if(t||(t=new WeakMap,y.set(e,t)),a=t.get(n),a||(a={},t.set(n,a)),o=l(...s),a[o])return a[o]}let c=new E(s,r,e);return a[o]=c,i?.push(c),c};return m.set(s,!0),s}const v=new WeakMap;function T(e,s,r,n){let o;if(t.isLowerCaseChar(s[0])||l(`Prop '${s}' must be in CamelCase`),!t.has(e.constructor,i.PROPS)){const s={};let r=e.constructor;for(;(r=p(r))!==V;)t.merge(s,r[i.PROPS]?t.cloneDeep(r[i.PROPS]):{});Reflect.defineProperty(e.constructor,i.PROPS,{configurable:!1,enumerable:!1,value:s}),o=new Set,t.each(s,((e,s)=>{if(e.attribute){let e=t.kebabCase(s);o?.add(e)}})),v.set(e.constructor,o)}if(n&&(n.get&&(r.getter=n.get),n.set&&(r.setter=n.set)),r.attribute){o||(o=v.get(e.constructor));let r=t.kebabCase(s);o?.add(r)}t.has(e.constructor,"observedAttributes")||(e.constructor.observedAttributes=[]),e.constructor.observedAttributes=t.toArray(o),r.shallow=r.shallow||!1,e.constructor[i.PROPS][s]=r}const _=new Set;function C(e){return v.get(e)??_}const S={collectWatch(e,t,s){let r=D.get(e);r||(r={},D.set(e,r));let n=r[s];n||(n=r[s]=[]),n.push(t)},startCollect(e,t){this.__collectType=t,this.__collecting=e},setUpdater(e){this.__updater=e},endCollect(){this.__collecting=null},__directiveQ:[],setDirectiveQ(e){let s=t.last(this.__directiveQ);const r=e?e.join(","):"",n=s?s.join(","):"";s&&r===n||(s&&s.length<e.length&&t.startsWith(r,n)?this.__directiveQ[this.__directiveQ.length-1]=e:this.__directiveQ.push(e))},popDirectiveQ(){let e=t.concat(this.__directiveQ);return this.__directiveQ=[],e},startRender(e){this.__renderCollecting=!0,this.__renderContext=e},endRender(e){this.__renderCollection.forEach((t=>{e._regDeps(t,this.__renderContext)})),this.__renderCollection.clear(),this.__renderCollecting=!1,this.__renderContext=null},collect(e){this.__renderCollection.add(e)},clear(){this.__directiveQ=[]},__updater:null,__collecting:null,__collectType:-1,__renderCollection:new Set,__renderContext:null,__renderCollecting:!1,__skipCheck:!1},P=new WeakMap,N=new WeakMap,w=new WeakMap,A=new WeakMap,D=new WeakMap,x=new WeakSet;function k(e,r){if(!t.isObject(e))return e;const o=x.has(e)?e:new Proxy(e,{get(e,s,r){if(!s)return;const i=Reflect.get(e,s,r);if("string"!=typeof s&&"number"!=typeof s)return i;let o=s in e;if((S.__renderCollecting||S.__collecting)&&(o&&e.hasOwnProperty(s)||!o)){let e=N.get(r)??[],i=t.concat(e,[s]),o=i.join("-");if(S.__renderCollecting)S.collect(d(i)),S.setDirectiveQ(i);else if(S.__collecting){let e;switch(S.__collectType){case n.COMPUTED:e=w.get(S.__collecting),e||(e={},w.set(S.__collecting,e));break;case n.CSS:e=A.get(S.__collecting),e||(e={},A.set(S.__collecting,e))}let t=e[o];t||(t=e[o]=[]),t.push(S.__updater)}}return i},set(e,r,n,o){if(!r)return!1;let a=e[r];if(!t.isObject(a)&&a===n)return!0;if(Number.isNaN(n)&&Number.isNaN(a))return!0;let l=N.get(o)??[],c=t.concat(l,[r]),d=P.get(o).from,p=t.get(d.constructor,i.PROPS),h=t.get(d.constructor,i.STATES),u=t.get(p,[c[0],"hasChanged"])||t.get(h,[c[0],"hasChanged"]);if(u){if(!u.call(d,n,a))return!0}else if(a===n&&!s.has(a))return!0;p&&p[r]&&e.__isData&&p[r].sync&&d.emit("update:"+r,{value:n});let f=P.get(o)?.contextSet,g=n;!t.isObject(n)||t.isFunction(n)||n instanceof Node||Object.isFrozen(n)||f.forEach((e=>{let s=P.get(o)?.pathMap,n=s?.get(e);n&&(c=t.concat(n,[r]),N.set(g,c),g=k(g,e),x.add(g),N.set(g,c))}));let m=Reflect.set(e,r,g),E=P.get(o).pathMap;return f.forEach((e=>{let s=E.get(e);if(!s)return;e===d&&l.length>1&&s.length>1&&l[0]===s[0]&&(s=l),c=t.concat(s,"length"==r&&t.isArray(o)?[]:[r]);let n=w.get(e),i=A.get(e),p=D.get(e);if(n||i||p){let e=c.length;for(;e;){let s=c.slice(0,e).join("-");if(p){const r=p[s];e===c.length?r?.forEach((e=>{let t=e();t.ov=a,O.pushWatch(t)})):r?.forEach((e=>{let s=e();t.get(s,"deep")&&(s.ov=a,O.pushWatch(s))}))}if(n){let e=n[s];if(!t.isEmpty(e))for(let t=0;t<e.length;t++){const s=e[t];O.pushComputed(s)}}if(i){let e=i[s];if(!t.isEmpty(e))for(let t=0;t<e.length;t++){const s=e[t];O.pushCss(s)}}e--}}let h=e._notify(a,c);O.pushNext(h)})),m}});x.has(o)||x.add(o);let a=N.get(e)??[];if(Object.isExtensible(e)&&!P.get(o)){let e=new Set;e.add(r);let t=new WeakMap;t.set(r,a),P.set(o,{from:r,contextSet:e,pathMap:t})}else{P.get(o).contextSet.add(r);let e=P.get(o).pathMap,s=e.get(r),n=t.concat(a);if(s&&s.join("")!==n.join("")){let e=t.get(r,t.initial(s));t.isArray(e)||function(...e){console.warn("[CompElem]",...e)}(`The object is referenced by more than one @state '${n.join(".")},${s.join(".")}'`),s=n}else e.set(r,n)}let l=t.get(r.constructor,i.PROPS),c=t.get(r.constructor,i.STATES);for(let s in e){const n=e[s];let i=t.get(l,[s,"shallow"])||t.get(c,[s,"shallow"]);!t.isObject(n)||x.has(n)||t.isFunction(n)||n instanceof Node||Object.isFrozen(n)||i||(N.set(n,t.concat(a,[s])),e[s]=k(n,r),x.add(e[s]),N.set(e[s],t.concat(a,[s])))}return o}class O{static watchSet=new Set;static computedSet=new Set;static cssSet=new Set;static nextSet=new Set;static nextPending=!1;static next;static flush(){O.nextPending=!1;let e=Array.from(O.watchSet);O.watchSet.clear();let s=Array.from(O.computedSet);O.computedSet.clear();let r=Array.from(O.cssSet);O.cssSet.clear();let n=Array.from(O.nextSet);O.nextSet.clear(),e.forEach((e=>e(t.get(e,"ov")))),s.forEach((e=>e())),r.forEach((e=>e())),n.forEach((e=>e()))}static pushWatch(e){O.watchSet.add(e)}static pushComputed(e){O.computedSet.add(e)}static pushCss(e){O.cssSet.add(e)}static pushNext(e){O.nextSet.add(e),O.nextPending||(O.nextPending=!0,O.next())}}function M(e){return class extends e{__updatePoints;renderComponent;buildView(e){let t=this instanceof V?this:this.renderComponent,[s,r]=Ne(t,e),n=[],i=Re(n,s,r,t,this);return this.__updatePoints=n,i}updateView(e){if(t.isBlank(t.join(e.strings)))return;if(!this.__updatePoints)return;let{vars:s}=e,r=this instanceof V?this:this.renderComponent;for(let e=0;e<this.__updatePoints.length;e++){const n=this.__updatePoints[e];let i=n.varIndex;if(i<0)continue;let o=n.value,a=s,l=n.node,c=t.split(i,"-");for(let s=0;s<c.length;s++){const r=c[s];a=t.get(a,r),a&&a.vars&&e<c.length-1&&(a=a.vars)}if(!t.isObject(o)&&o===a)continue;let d=l;if(n.isDirective){if(!o.di)continue;a.di=o.di,a.di.renderParams=a.varChain,a.di._renderArgs=a.args,a.point=o.point,a.varPath=o.varPath,o.update(o.point,a.args,o.args)}else if(n.isToggleProp){if(!!a===o)continue;d.toggleAttribute(n.attrName,!!a),t.set(d,n.attrName,!!a)}else if(n.isProp){if(!t.isObject(a)&&a===o)continue;l instanceof V?l._updateProps({[n.attrName]:a}):l instanceof HTMLSlotElement&&r._updateSlot(l.getAttribute("name")||"default",n.attrName,a)}else if(n.attrName&&!n.isEvent){if(!t.isEqual(o,a))switch(n.attrName){case"value":if(l instanceof HTMLInputElement){l.value=a;break}default:l.setAttribute(n.attrName,t.replace(n.attrTmpl,Me,a+""))}}else if(n.isTmpl&&a&&o)o.tmpl&&(a.strings.join()!==o.tmpl.strings.join()||a.vars.some((e=>t.isObject(e)&&!t.isPlainObject(e)))||o.tmpl.vars.some((e=>t.isObject(e)&&!t.isPlainObject(e)))||!t.isEqual(a.vars,o.tmpl.vars))&&n.value.updateView(a),o.tmpl=a,a=o;else if(n.isText){let e=n.textNode.nextSibling;e&&e===n.node.previousSibling?e.textContent=a:(Le.remove(n.textNode,n.node),Le.insertBefore(n.node,[a]))}n.value=a}}}}(()=>{const e=Promise.resolve(),t=O.flush;O.next=()=>{e.then(t)}})();class R extends(M(Object)){tmpl;constructor(e){super(),this._renderVars=t.get(e,"_renderVars"),this.tmpl=e}}const L={boolean:Boolean,string:String,number:Number,object:Object,array:Array,function:Function,undefined:Object},U=new WeakMap;let j=[];class V extends(M(HTMLElement)){static __l_globalRule=document.createElement("style");static defaults(e){j=t.flatMap(e.css,(e=>{if(t.isString(e)){let t=new CSSStyleSheet;return t.replaceSync(e),t}return e instanceof CSSStyleSheet?e:[]})),e.global,t.each(e,((e,s)=>{t.test(s[0],/[A-Z]/)}))}#e={};#t={"#slots":{}};#s={};#r={};#n;#i={};__events={};get[Symbol.toStringTag](){return this.constructor.name}get reactiveData(){return this.#s}get attrs(){return this.#o}get props(){return this.#a}get renderRoot(){return this.#l}get renderRoots(){return this.#c}get parentComponent(){return this.#d}get wrapperComponent(){return this.#p}get slotHooks(){return this.#h}get css(){return U.get(this.constructor)}get isMounted(){return this.#u}get slots(){return this.#t["#slots"]}#o;#a;#l;#c;#d;#p;#f={};#h={};#g={};#u=!1;static get styles(){return[]}static get globalStyles(){return[]}get styles(){return[]}#m=!1;#E=!1;constructor(...e){super(),1===t.size(e)&&(this.#a={},t.assign(this.#a,t.first(e)));let s=this.render.bind(this);this.render=function(){let e;return S.startRender(this),e=s(),S.endRender(this),e};let r=t.get(this.constructor,"globalStyles"),n=t.get(this.constructor,"_global_style_attached");if(!t.isEmpty(r)&&"1"!==n){let e="";r.forEach((s=>{t.isString(s)&&(e+=s+"\n")})),V.__l_globalRule.textContent+=e,t.set(this.constructor,"_global_style_attached","1")}let i=U.get(this.constructor),o=i??[];i||(t.each(t.get(this.constructor,"styles"),(e=>{if(t.isString(e)){let t=new CSSStyleSheet;t.replaceSync(e),o.push(t)}else o.push(e)})),U.set(this.constructor,o)),this.#n=this.attachShadow({mode:"open"}),this.#n.adoptedStyleSheets=[...j,...o],this._slotsPropMap={default:[]};let a=t.get(this.constructor,g);a&&a.sort(((e,t)=>t.priority-e.priority)).forEach((e=>e.create(this))),this.#y=this.#b.bind(this)}#y;connectedCallback(){let e=t.closest(this.parentNode,(e=>e instanceof V||e.host instanceof V),"parentNode");this.#d=e?e instanceof V?e:e.host:null,this.__init()}disconnectedCallback(){}__init(){if(this.#m)return;if(this.#E)return;this.#E=!0,this.#v();const e=this.#T();this.propsReady(e);for(const t in e){const s=e[t];this.#t[t]=s}this.#_(),t.each(this.#t,((e,t)=>{let s=Reflect.getOwnPropertyDescriptor(this.#t,t);Reflect.defineProperty(this,t,{get(){let e=Reflect.get(this.#s,t);return s?.get?s?.get():e},set(e){s?.set?s?.set(e):Reflect.set(this.#s,t,e)}})})),Reflect.defineProperty(this.#t,"__isData",{enumerable:!1,value:!0}),this.#s=k(this.#t,this);let s=t.get(this.constructor,i.COMPUTED);t.each(s,((e,t)=>{S.startCollect(this,n.COMPUTED),S.setUpdater((()=>{this.#s[t]=e.call(this)})),this.#t[t]=e.call(this),S.endCollect(),Reflect.defineProperty(this,t,{get(){return Reflect.get(this.#s,t)},set(e){c(this.tagName,"Cannot set a computed property '"+t+"'")}})}));let r=t.get(this.constructor,i.WATCH);t.each(r,((e,s)=>{e.forEach((e=>{let{source:r,options:n,handler:i}=e,o=i.bind(this);t.get(n,"once",!1)&&(o=t.once(o));const a=function(e){let s=t.get(this,r.replaceAll("-","."));o(s,e,r)}.bind(this);let l=t.get(n,"deep",!1);if(a.deep=l,S.collectWatch(this,(()=>a),s),!t.get(n,"immediate",!1))return;let c=t.get(this,r.replaceAll("-","."));o(c,c,r)}))}));let o=this.render(),a=this.buildView(o);if(a){let e=t.toArray(a);e.forEach((e=>{this.#n.appendChild(e)})),this.#c=t.filter(e,(e=>e.nodeType===Node.ELEMENT_NODE)),this.#l=this.#c[0]}t.each(this.#h,((e,t)=>{this.#C(t)}));const l=this;let d=t.get(this.constructor,g);d&&d.sort(((e,t)=>t.priority-e.priority)).forEach((e=>{e.beforeMount(this,((e,t)=>(l.#s[e]=t,l.#s[e])))})),this.beforeMount();let p=t.get(this.constructor,i.EVENTS);p&&p.forEach((async e=>{let s=e.name,r=t.assign({target:document,once:!1,passive:!1,capture:!1},e.options),n=t.bind(e.fn,this),i=r.target;t.isFunction(i)&&(i=await i.call(this,this)),i?i.addEventListener(s,n,r):c(this.tagName,"The target of @event('"+s+"',...) is invalid")})),S.startCollect(this,n.CSS);let h=[];this.styles.forEach((e=>{if(!t.isFunction(e))return;let s=new CSSStyleSheet;h.push(s),S.setUpdater((()=>{let t=e()??"";s.replaceSync(t)}));let r=e();t.isBlank(r)||s.replaceSync(r)})),S.endCollect(),h.length>0&&(this.#n.adoptedStyleSheets=[...this.#n.adoptedStyleSheets,...h]),setTimeout((()=>{this.#u=!0,this.mounted(),d&&d.forEach((e=>{e.mounted(this,((e,t)=>(l.#s[e]=t,l.#s[e])))}))}),0),this.#m=!0}propsReady(e){}render(){throw Error(`[CompElem <${this.tagName}>] Missing render()`)}beforeMount(){}mounted(){}#S(e,s){this.#v();let r=t.get(this.#e[s],"props");r&&t.each(this.slots,((e,s)=>{e.filter((e=>e.nodeType===Node.ELEMENT_NODE)).forEach((e=>{e instanceof V?e._updateProps(r):t.each(r,((s,r)=>{if(e instanceof HTMLSlotElement){let n=t.get(e,"__l_comp");if(n){let t=e.name||"default",i=n.#e[t];i||(i=n.#e[t]={props:{}}),i.props||(i.props={}),i.props[r]=s,n.#S(e,t)}}else e.setAttribute(r,s)}))}))})),this.slotChange(e,s)}slotChange(e,t){}attributeChangedCallback(e,t,s){this.#P(e,t,s)}shouldUpdate(e){return!0}updated(e){}#N={};_notify(e,r){let n=[];for(let i=0;i<r.length;i++){const o=r[i];n.push(o);let a=t.get(this,n),l=d(n);this.#r[l]={value:a,chain:"slots"===l?["slots"]:n,oldValue:e,end:n.length===r.length},t.isObject(a)&&"#"!=l[0]&&s.set(a,l)}return this.#y}#b(){if(t.size(this.#r)<1)return;const e=this.#r;this.#r={};let r=t.get(this.constructor,g);if(r&&r.sort(((e,t)=>t.priority-e.priority)).forEach((t=>{t.updated(this,e)})),!this.shouldUpdate(e))return;let n=new Set;t.each(e,(({value:e,chain:t,oldValue:s},r)=>{this.#i[r]&&this.#i[r].forEach((e=>{n.add(e)}))})),n.forEach((e=>{if(e===this)this.updateView(this.render());else{let t=e.render(...e._renderArgs?e._renderArgs:[]);t&&e.updateView(t)}})),this.#w.forEach((e=>{this.#C(e)})),this.updated(e),t.each(e,(({value:e,chain:r,oldValue:n},i)=>{t.isObject(e)&&s.has(e)&&s.delete(e)}))}#T(){let e=t.get(this.constructor,i.PROPS),s=this.attributes,r=this.tagName,n=this.#a,o={};t.each(s,(({name:s,value:r})=>{if(s[0]===ye||s[0]===be||s[0]===ve||s===Ce||"slot"===s)return;let n=t.camelCase(s);e&&!e[n]&&(o[s]=r)})),this.#o=this.#o?t.assign(this.#o,o):o;let a={};if(!e)return Object.seal(a);let l=Object.keys(e),d=l.length;for(let i=0;i<d;i++){const o=l[i];let d,u=e[o],f=t.has(n,o),g=t.get(this,o);if(!("_defaultValue"in u)&&(u._defaultValue=g,!u.type)){t.isUndefined(g)&&c(r,"Prop '"+o+"' has neither propType nor defaultValue be used for type inference");let e=typeof g;t.isArray(g)&&(e="array");let s=L[e];u.type=s}if(f)d=t.isNil(n[o])?g:n[o];else{d=g;let e=s.getNamedItem(t.kebabCase(o))||s.getNamedItem(be+t.kebabCase(o));e&&(f=!0,d=e.value)}if(u.required&&!f){c(r,"Prop '"+o+"' is required");break}d=this.#A(e,o,d);let m=t.get(e,[o,"getter"]);m&&(m=t.bind(m,this));let E=t.get(e,[o,"setter"]);if(E&&(E=t.bind(E,this)),(m||E)&&Reflect.defineProperty(this.#t,o,{set:E||function(e){},get:m}),u.attribute&&t.isDefined(d)&&!t.isObject(d)){let e=t.kebabCase(o),s=t.trim(d);(p=u.type)===Boolean||t.some(p,(e=>e===Boolean))?(s=h(d),t.isBoolean(s)?this.toggleAttribute(e,s):this.setAttribute(e,s)):this.setAttribute(e,s)}this.#t[o]=d,a[o]=d}var p;return Object.seal(a)}#D(e,s){let r=e;try{for(let n=0;n<s.length;n++){const i=s[n];r=i===Boolean?h(e):i===Number?Number(e):i===String?String(e):i===Object||i===Array?t.parseJSON(e):i===Date?new Date(e):new i(e)}}catch(t){c(this.tagName,"Convert attribute error with "+e)}return r}#A(e,s,r){let n=e[s];if(!n)return r;let i=n.isValid,o=n.type,a=t.isArray(o)?o:[o],l=n.converter,d=r;if(!t.some(a,(e=>e===String))&&t.isString(d)&&!t.isNull(d))try{d=l?l(d):this.#D(d,a)}catch(e){c(this.tagName,`Convert attribute '${s}' error with `+d)}for(let e=0;e<a.length;e++){"Boolean"===a[e].name&&(d=h(d))}let p=typeof d,u=!t.isDefined(d);for(let e=0;e<a.length;e++){const s=a[e];if(t.test(p,s.name,"i")||d instanceof s||Object.prototype.toString.call(d)===Object.prototype.toString.call(s.prototype)){u=!0;break}}return u||c(this.tagName,`Invalid prop '${s}'. expected '${a.map((e=>e.name||e))}' but got '${p}'`),i&&(i.call(this,d,this.#t)||c(this.tagName,`Invalid prop '${s}'. IsValid() check failed`)),d}#_(){let e=t.get(this.constructor,i.STATES);t.each(e,((s,r)=>{let n=e[r],i=t.get(this,r);if(n){let e=n.prop;i=e?t.cloneDeep(this.#t[e]):t.get(this,r)}this.#t[r]=i}))}#x=t.debounce(this.propsReady,100);_setParentProps(e,s){if(this.#m){let r=t.get(this.constructor,i.PROPS);t.each(e,((e,s)=>{let n=t.camelCase(s),i=r[n];if(!i)return;let o=this.#t[n];e=this.#A(r,n,e),i.hasChanged&&!i.hasChanged.call(this,e,o)||(this.#t[n]=e,this._notify(o,[n]))})),t.assign(this.#a,e),t.assign(this.#o,s),this.#x(this.#a)}}_updateProps(e){let s=t.get(this.constructor,i.PROPS);t.each(e,((e,r)=>{let n=t.camelCase(r);s[n]&&(e=this.#A(s,n,e),S.__skipCheck=!0,t.set(this,n,e),S.__skipCheck=!1)})),t.assign(this.#a,e),this.#x(this.#a)}_initProps(e,s){this.#a=t.merge(this.#a||{},e),this.#o=t.merge({},s)}_bindSlot(e,s,r){if(this.#f[s]||(this.#f[s]=e,Reflect.defineProperty(e,"__l_comp",{value:this})),e.addEventListener("slotchange",(t=>{this.#m&&this.#S(e,"default"===s?"":s)})),!t.isEmpty(r)){let e=this.#e[s];e||(e=this.#e[s]={}),e.props=r}}_bindSlotHook(e,t){this.#h[e]=t}#w=new Set;_updateSlot(e,t,s){let r=this.#f[e],n=this.#h[e];if(!n&&!r)return;let i=this.#e[e];if(t&&(i.props||(i.props={}),i.props[t]=s),n)this.#w.add(e);else{let e=r.assignedElements({flatten:!0});for(let r=0;r<e.length;r++){e[r].setAttribute(t,s+"")}}}#v(){const e=t.flatMap(this.childNodes,(e=>e.nodeType===Node.COMMENT_NODE?[]:e instanceof HTMLSlotElement?e.assignedNodes({flatten:!0}):e));let s=t.groupBy(e,(e=>e.nodeType===Node.TEXT_NODE?"default":e instanceof Element?e.getAttribute("slot")||"default":void 0));if(t.isEmpty(s))return void(t.isEmpty(this.#t["#slots"])||(this.#m?this.#s["#slots"]={}:this.#t["#slots"]={}));t.each(s,((e,s)=>{if(s){for(;e.length>0;){let s=e[0];if(!(s.nodeType===Node.TEXT_NODE&&t.isBlank(s.textContent)||s instanceof HTMLSlotElement&&t.isEmpty(s.assignedNodes({flatten:!0}))))break;e.shift()}for(;e.length>0;){let s=t.last(e);if(!(s.nodeType===Node.TEXT_NODE&&t.isBlank(s.textContent)||s instanceof HTMLSlotElement&&t.isEmpty(s.assignedNodes({flatten:!0}))))break;e.pop()}}}));let r={};t.each(s,((e,s)=>{t.isEmpty(e)||(r[s]=e)})),this.#m?this.#s["#slots"]=r:this.#t["#slots"]=r}#C(e){let s=this.#h[e];if(!s)return;let r=this.#e[e];if(!this.#t["#slots"][e])return;this.renderAsync(s,t.get(r,"props"));const n=this._asyncDirectives.get(s);let i=n?.buildView(s(t.get(r,"props"))),o=t.reject(t.toArray(i),(e=>e.nodeType===Node.COMMENT_NODE));if(o){let s=this.#g[e];if(!t.isEmpty(s))for(let e=0;e<s.length;e++){const t=s[e];t.parentNode?.removeChild(t)}this.#g[e]=o,this.append(...o),this.#w.clear()}}_asyncDirectives=new WeakMap;renderAsync(e,...t){}#P(e,s,r){if(!this.isMounted)return;if(C(this.constructor).has(e)){let s=t.camelCase(e);if(t.isNull(r)){r=t.get(this.constructor,i.PROPS)[s]._defaultValue}this._updateProps({[s]:r})}}_regDeps(e,t){let s=this.#i[e];s||(s=this.#i[e]=new Set),s.add(t);let r=e.split("-");if(r.pop(),r.length<1)return;let n=r.join("-");s=this.#i[n],s||(s=this.#i[n]=new Set),s.add(t)}_regWrapper(e){this.#p=e}emit(e,s={},r){r&&r.event&&(s.event=r.event),s.target=this,this.dispatchEvent(new CustomEvent(e,{bubbles:t.get(r,"bubbles",!1),composed:t.get(r,"composed",!1),cancelable:!0,detail:s}))}on(e,t){this.#N[e]||(this.#N[e]=[]);let s=t.bind(this);this.#N[e].push(s),this.addEventListener(e,s)}nextTick(e){O.pushNext(e)}forceUpdate(){t.each(this.#s,((e,t)=>{this.#r[t]={value:void 0,chain:void 0}})),this.#b()}}var H,I,W;document.head.appendChild(V.__l_globalRule),e.DirectiveUpdateTag=void 0,(H=e.DirectiveUpdateTag||(e.DirectiveUpdateTag={})).NONE="NONE",H.REMOVE="REMOVE",H.REPLACE="REPLACE",H.UPDATE="UPDATE",H.APPEND="APPEND";class ${key;varIndex;value;isText=!1;isTmpl=!1;isDirective=!1;node;textNode;isComponent=!1;attrName;attrTmpl;isProp=!1;isToggleProp=!1;isEvent;constructor(e,t,s,r){this.varIndex=e,this.node=t,s&&(this.attrName=s),r&&(this.attrTmpl=r)}}e.EnterPointType=void 0,(I=e.EnterPointType||(e.EnterPointType={})).ATTR="attr",I.PROP="prop",I.TEXT="text",I.CLASS="class",I.STYLE="style",I.SLOT="slot",I.TAG="tag";class B{startNode;endNode;type;attrName;varIndex;expressionChain;nodes;constructor(e,t,s){this.startNode=e,this.attrName=t,this.type=s}setVarIndex(e){this.varIndex=e}getNodes(){let e=this.startNode.nextSibling;if(!this.endNode)return[e];let t=[];for(;e&&e!==this.endNode;)t.push(e),e=e?.nextSibling;return t}}!function(e){e.AFTER_BEGIN="afterbegin"}(W||(W={}));class F{diClass;args;di;varPath;point;slotComponent;varChain;constructor(e,...t){this.diClass=e,this.args=t,this.varChain=S.popDirectiveQ(),this.di=new this.diClass,this.di.renderParams=this.varChain}checkScope(e){let s=t.get(this.diClass,"scopes");t.isEmpty(s)||t.test(s.join(","),e)||l(`Directive '${this.diClass.name}' is out of scopes, expect '${s.join(",")}' bug got '${e}'`)}render(e){let t=this.di;return t.renderComponent||(t.renderComponent=e),this.di=t,t._renderArgs=this.args,this.di.render(...this.args)}update(s,r,n){let i=this.di.update(s,r,n);if(i===e.DirectiveUpdateTag.NONE)return;let o=s.getNodes();if(i===e.DirectiveUpdateTag.REMOVE)for(let e=0;e<o.length;e++){const t=o[e];t.parentNode?.removeChild(t)}else if(i===e.DirectiveUpdateTag.REPLACE){let e=[];for(let e=0;e<o.length;e++){const t=o[e];t.parentNode?.removeChild(t)}let n=this.di.render(...r),i=this.di.buildView(n);e=t.toArray(i);let a=document.createDocumentFragment();a.append(...e),s.endNode.parentNode.insertBefore(a,s.endNode)}else if(i===e.DirectiveUpdateTag.UPDATE){let e,n={},i=[],a=[],c=this.di.render(...r);if(c||(c=new Ve([],[])),t.isEmpty(o)){let e=this.di.buildView(c);return void s.startNode.after(...e)}let d={};c instanceof Ve&&c.vars.forEach((e=>{if(e instanceof Ve){const t=e.getKey();d[t]=e,n[t]=!0,a.push(t)}})),o=t.filter(t.compact(o),(e=>e.nodeType===Node.ELEMENT_NODE)),e=t.filter(t.compact(t.toArray(e)),(e=>e.nodeType===Node.ELEMENT_NODE));let p={},h="",u={};for(let e=0;e<o.length;e++){let t=o[e],s=t.getAttribute("key");if(s){if(p[s]){h=s;break}p[s]=t,i.push(s),u[s]=!0}}if(h)return void l(`${t.camelCase(this.diClass.name)} - duplicate key '${h}'`);let f=n;const g=s.startNode.parentNode;let m=[],E=[];if(t.each(u,((e,s)=>{f[s]||(E.push(s),delete u[s],t.remove(i,(e=>e===s)))})),!t.isEmpty(a)){let e=-1,r=[],n=[],o=0,l=0;for(;l<a.length;l++){const c=a[l];let d=i.findIndex((e=>e===c));if(d<0){let e=a[l-1],t=e?p[e]||e:s.startNode;m.push({prevNode:t,newkey:c}),o++}else if(d>-1&&d!==l-o){if(e<0||1===Math.abs(e-d)){let e=t.last(r);r.push({nodeId:c,targetId:0===l?W.AFTER_BEGIN:e?e.nodeId:a[l-1]})}else n.push({moveGroup:r,moveIndex:l+r.length}),r=[],r.push({nodeId:c,targetId:a[l-1]});e=d}}if(r.length>0&&n.push({moveGroup:r,moveIndex:l+r.length}),n.length>0){let e=n.sort(((e,t)=>e.moveGroup.length-t.moveGroup.length));if(e.length<2){let{moveGroup:r}=e[0];if(r.length>1){let e=t.last(r).targetId;r[r.length-2].nodeId===e&&(r=t.initial(r))}r.forEach((({targetId:e,nodeId:t})=>{let r,n=p[t];e===W.AFTER_BEGIN?(r=s.startNode,r.after(n)):(r=p[e],r.after(n))}))}else{let r=t.last(e).moveIndex;1===Math.abs(e[e.length-2].moveIndex-r)&&(e=t.initial(e)),e.forEach((({moveGroup:e})=>{e.forEach((({targetId:e,nodeId:t})=>{let r,n=p[t];e===W.AFTER_BEGIN?(r=s.startNode,r.after(n)):(r=p[e],r.after(n))}))}))}}}m.length>0&&this.#k(m,d,a),m.forEach((e=>{let t=e.newkey,r=this.newNodeMap[t],n=e.prevNode;n===s.endNode?n.before(r):n===s.startNode?n.after(r):"string"==typeof n?this.newNodeMap[n].after(r):n.after(r)})),E.forEach((e=>{let t=p[e];t&&t.parentNode&&g.removeChild(t)})),this.di.__updatePoints.forEach((e=>{e.key||(e.key=e.value.tmpl.getKey());const t=a.findIndex((t=>t==e.key));e.varIndex=t})),this.di.updateView(c)}}getDirective(){return this.di}newNodeMap={};#k(e,t,s){const r=[],n=[];e.forEach((e=>{let s=e.newkey;r.push(""),n.push(t[s])})),r.push("");let i=new Ve(r,n),o=this.di.__updatePoints,a=this.di.buildView(i),l=new Map;this.di.__updatePoints.forEach(((e,t)=>{const s=e.value.tmpl.getKey();e.key=s,l.set(s,!0)})),o.forEach(((e,t)=>{const s=e.key??e.value.tmpl.getKey();l.get(s)||this.di.__updatePoints.push(e)})),a.forEach((e=>{e instanceof HTMLElement&&(this.newNodeMap[e.getAttribute("key")]=e)}))}}function z(e){return(...s)=>{let r=null;return s.forEach(((e,n)=>{if(t.isFunction(e)){let t=e;s[n]=function(...e){let s=r.di;S.startRender(s);let n=t.call(s.renderComponent,...e);return S.endRender(s.renderComponent),n}}})),r=new F(e,...s),r}}const G=["resize","outside","mutate"],K=new WeakMap,Q=[],q=[],X=[],Y=new ResizeObserver((e=>{for(const t of e){const e=Array.isArray(t.contentBoxSize)?t.contentBoxSize[0]:t.contentBoxSize,s=Array.isArray(t.borderBoxSize)?t.borderBoxSize[0]:t.borderBoxSize;let r=K.get(t.target);if(r){r(new CustomEvent("resize",{bubbles:!1,cancelable:!1,detail:{borderBox:{w:s.inlineSize,h:s.blockSize},contentBox:{w:e.inlineSize,h:e.blockSize}}}),t.target)}}}));var J;!function(e){e.Child="child",e.Tree="tree",e.Attr="attr",e.Char="char"}(J||(J={}));const Z=new WeakMap,ee=new MutationObserver((e=>{for(let t=0;t<e.length;t++){const s=e[t];let r=Z.get(s.target);if(!r)return;let n={target:s.target},i=null;switch(s.type){case"subtree":n.type=J.Tree,i=r[J.Tree];break;case"childList":n.type=J.Child,n.addedNodes=s.addedNodes,n.removedNodes=s.removedNodes,i=r[J.Child];break;case"attributes":n.type=J.Attr,n.attributeName=s.attributeName,n.oldValue=s.oldValue,i=r[J.Attr];break;case"characterData":n.type=J.Char,n.oldValue=s.oldValue,i=r[J.Char]}if(i){i(new CustomEvent("mutate",{bubbles:!1,cancelable:!1,detail:n}))}}}));function te(e,s,r,n){if("resize"===e)!function(e,t){K.has(e)||(K.set(e,t),Y.observe(e))}(s,r);else if("outside"===e)switch(n[0]){case"mousedown":!function(e,t){Q.push([e,t])}(s,r);break;case"dblclick":!function(e,t){X.push([e,t])}(s,r);break;default:!function(e,t){q.push([e,t])}(s,r)}else"mutate"===e&&function(e,s,r){let n=t.includes(r,"child"),i=t.includes(r,"attr"),o=t.includes(r,"char"),a=t.includes(r,"tree"),l=Z.get(e);l||(l={},Z.set(e,l),n&&(l[J.Child]=s),i&&(l[J.Attr]=s),o&&(l[J.Char]=s),a&&(l[J.Tree]=s),ee.observe(e,{childList:n,attributes:i,characterData:o,subtree:a}))}(s,r,n)}document.addEventListener("mousedown",(e=>{let s=t.get(e.composedPath(),0,e.target);Q.forEach((([r,n])=>{if(!r.contains(s)&&!r.contains(t.closest(s,(e=>e instanceof ShadowRoot),"parentNode")?.host)){n(new CustomEvent("outside",{bubbles:!1,cancelable:!1,detail:{currentTarget:r,event:e}}),r)}}))}),!1),document.addEventListener("click",(e=>{let s=t.get(e.composedPath(),0,e.target);q.forEach((([r,n])=>{if(!r.contains(s)&&!r.contains(t.closest(s,(e=>e instanceof ShadowRoot),"parentNode")?.host)){n(new CustomEvent("outside",{bubbles:!1,cancelable:!1,detail:{currentTarget:r,event:e}}),r)}}))}),!1),document.addEventListener("dblclick",(e=>{let s=t.get(e.composedPath(),0,e.target);X.forEach((([r,n])=>{if(!r.contains(s)&&!r.contains(t.closest(s,(e=>e instanceof ShadowRoot),"parentNode")?.host)){n(new CustomEvent("outside",{bubbles:!1,cancelable:!1,detail:{currentTarget:r,event:e}}),r)}}))}),!1);const se=/,|^(debounce:.+)|(debounce$)/,re=/,|^(throttle:.+)|(throttle$)/,ne="self",ie="stop",oe="prevent",ae="once",le="left",ce="right",de="middle",pe="ctrl",he="alt",ue="shift",fe="meta",ge={esc:"escape"},me=":";function Ee(e,s,r,n){let i,o=e.split("."),a=o.shift(),l=o.includes(ae),c=s;if(i=t.find(o,(e=>se.test(e)))){let e=i.split(me);c=t.debounce(c,parseInt(e[1])||100)}if(i=t.find(o,(e=>re.test(e)))){let e=i.split(me);c=t.throttle(c,parseInt(e[1])||100)}if(l&&(c=t.once(c)),function(e){return G.includes(e)}(a))return te(a,r,c,o),c;let d=e=>{if(o.includes(oe)&&e.preventDefault(),o.includes(ie)&&e.stopPropagation(),!o.includes(ne)||e.target===e.currentTarget){if(e instanceof MouseEvent){if(o.includes(le)&&0!=e.button)return;if(o.includes(ce)&&2!=e.button)return;if(o.includes(de)&&1!=e.button)return}else if(e instanceof KeyboardEvent){if(t.remove(o,(e=>e==pe))[0]&&!e.ctrlKey)return;if(t.remove(o,(e=>e==he))[0]&&!e.altKey)return;if(t.remove(o,(e=>e==ue))[0]&&!e.shiftKey)return;if(t.remove(o,(e=>e==fe))[0]&&!e.metaKey)return;if(!t.map(o,(e=>ge[e]||e)).includes(e.key.toLowerCase()))return}c(e)}};r.addEventListener(a,d);let p=n.__events[a];return p||(p=n.__events[a]=[]),p.push([r,d]),d}const ye="@",be=".",ve="?",Te="*",_e=":",Ce="ref",Se=/<\s*[a-z0-9-]+([^>]*<\!--c_ui-pl_df-->)*[^>]*?(?<!-)>/gims,Pe="slot-props";function Ne(e,s){let r="",n=t.concat(s.vars),i=s.strings.length-1,o=s.vars.length-1;for(let n=0;n<=i;n++){const i=s.strings[n];let a=t.get(s.vars,n,"");if(a&&a.di){let t=a.render(e);if(t instanceof Ve){let[s,r]=Ne(e,t);Reflect.defineProperty(a,"_renderVars",{value:r}),a=we+s+Ae}else a=t??ke}else if(a instanceof Ve){let[t,s]=Ne(e,a);Reflect.defineProperty(a,"_renderVars",{value:s}),a=De+t+xe}else a=n>o?"":ke;r+=i+a}let a=0;return r=r.replace(Se,((e,s)=>t.replaceAll(e,ke,(()=>ke.replace("--\x3e","")+a++)))),r=r.replace(je,"$1><").trim(),[r,n]}const we="\x3c!--c_ui-pl_di-start--\x3e",Ae="\x3c!--c_ui-pl_di-end--\x3e",De="\x3c!--c_ui-pl_tmpl-start--\x3e",xe="\x3c!--c_ui-pl_tmpl-end--\x3e",ke="\x3c!--c_ui-pl_df--\x3e",Oe="\x3c!--c_ui-pl_df",Me=/<!--c_ui-pl_df\d*(-->)?/;function Re(s,r,n,i,o){const a=document.createElement("div");a.innerHTML=r;const l=document.createNodeIterator(a,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT);let d,p,h=0,u=null,f=[],g=[],m=[],E=[s],y=[],b=[];for(;d=l.nextNode();)if(d instanceof HTMLElement||d instanceof SVGElement){d instanceof V?u=d:u?.contains(d)||(u=null);let r={},o=t.toArray(d.attributes);for(let a=0;a<o.length;a++){const l=o[a];let{name:p,value:f}=l;if(p===Pe){let e=d.getAttribute("name")||"default";if(u){let t=u._slotsPropMap[e];t||(t=u._slotsPropMap[e]=[]),t.push(d)}}if(t.startsWith(p,Oe)){let t=n[h];if(t instanceof F){t.checkScope(e.EnterPointType.TAG);let r=new B(d,p.substring(1),e.EnterPointType.TAG);t.point=r,t.di.slotComponent=u,t.di.renderComponent=i;let n=new $(h,d);n.isDirective=!0,n.value=t,n.isComponent=!!u,s.push(n),h++,t.di.created(r,...t.args)}d.removeAttribute(p)}else if(p[0]!==ye)if(p!==Ce)if(p[0]!==be||Me.test(f)){if(Me.test(f)){let o=n[h],a=new $(h,d,p.replace(/\.|\?|@/,""),f);if(a.isComponent=!!u,p[0]===be||p[0]===ve||p[0]===Te){if(o instanceof F){o.checkScope(e.EnterPointType.PROP);let t=new B(d,p.substring(1),e.EnterPointType.PROP);o.point=t,o.slotComponent=u,a.value=o,a.isDirective=!0,o&&o.di.created(o.point,...o.args)}else if(p[0]===ve)a.isToggleProp=!0,a.value=!!o,a.value&&d.setAttribute(p.substring(1),"");else if(p[0]===Te){a.value=o;let e=p.substring(1);const[s,r]=e.split(_e);let n=s;switch(r){case"camel":n=t.camelCase(n);break;case"kebab":n=t.kebabCase(n);break;case"snake":n=t.snakeCase(n)}a.attrName=n,d.setAttribute(n,o)}else if(d instanceof V||"SLOT"===d.tagName){let e=t.camelCase(p.substring(1));e in d||"SLOT"===d.tagName||c(d.tagName,`Prop '${p}' is not defined in ${d.tagName}`),a.value=o,a.isProp=!0,r[e]=o}else c(d.tagName,`Prop '${p}' can only be set on a CompElem or a slot`);d.removeAttribute(p),o=""}else{let s;if(a.value=o,o instanceof F){let t=e.EnterPointType.ATTR;"class"===p?t=e.EnterPointType.CLASS:"style"===p&&(t=e.EnterPointType.STYLE),o.checkScope(t),a.isDirective=!0;let r=new B(d,p,t);o.point=r,o.di.slotComponent=u,o.di.renderComponent=i,s=o,o=""}f=t.replace(f,Me,o),l.value=f,s&&s.di.created(s.point,...s.args)}s.push(a),h++}}else c(d.tagName,`Prop '${p}' must be an interpolation`);else{if(Me.test(f)){let e=n[h];if(!t.has(e,"current")){c(d.tagName,"Ref must be a RefObject");continue}h++,e.current=d}d.removeAttribute(p)}else{let e=e=>{};if(Me.test(f)){let r=n[h];if(!t.isFunction(r)){c(d.tagName,`Event '${p}' must be a function`);continue}e=r.bind(i);let o=new $(h,d,p.replace(/\.|\?|@/,""),f);o.isComponent=!!u,o.isEvent=!0,s.push(o),h++}Ee(p.substring(1),e,d,i),d.removeAttribute(p)}}d instanceof V?(d._initProps(r),d._regWrapper(i)):d instanceof HTMLSlotElement&&i._bindSlot(d,d.name||"default",r)}else{let r=d,a=`\x3c!--${r.nodeValue}--\x3e`;if(a===we){p&&f.push(p),p=r;let t=n[h],o=new $(h,d);o.isComponent=!!u,o.isDirective=!0,o.value=t;let a=u?e.EnterPointType.SLOT:e.EnterPointType.TEXT,l=new B(p,"",a);t.point=l,t.di.slotComponent=u,t.di.renderComponent=i,g.push(t),s.push(o),m.push(o),s=[],E.push(s),h++,b.push(h),y.push(n),n=t._renderVars,h=0;continue}if(a===Ae){m.pop().textNode=r;let e=g.pop();e.point.endNode=r,e.di.created(e.point,...e.args),p=f.pop(),e.di.__updatePoints=s,E.pop(),s=t.last(E),n=y.pop(),h=b.pop()}else{if(a===De){p&&f.push(p),p=r;let a=n[h],l=new $(h,d);l.isComponent=!!u,l.isTmpl=!0;let c=t.last(g);(c&&"ForEach"===t.get(c,"diClass.name")||"ForEach"==o.constructor.name)&&(l.key=a.getKey()),a=l.value=new R(a);let v=u?e.EnterPointType.SLOT:e.EnterPointType.TEXT,T=new B(p,"",v);a.point=T,a.slotComponent=u,a.renderComponent=i,g.push(a),s.push(l),m.push(l),s=[],E.push(s),h++,b.push(h),y.push(n),n=a._renderVars,h=0;continue}if(a===xe){m.pop().textNode=r;let e=g.pop();e.point.endNode=r,p=f.pop(),e.__updatePoints=s,E.pop(),s=t.last(E),n=y.pop(),h=b.pop()}}if(a!==ke)continue;let l=new $(h,d);s.push(l),l.isComponent=!!u,l.isText=!0;let c,v=n[h];if(c=document.createComment(`compelem-ui-${h}-child-start`),r.parentNode.insertBefore(c,r),r.nodeValue=`compelem-ui-${h}-child-end`,l.textNode=c,v instanceof F){l.isDirective=!0,l.value=v;let t=u?e.EnterPointType.SLOT:e.EnterPointType.TEXT,s=new B(c,"",t);s.endNode=r,v.point=s,v.di.slotComponent=u,v.di.renderComponent=i,v.di.created(s,...v.args),v=""}else if(v instanceof Ve){l.isTmpl=!0,l.value=v;let[e,t]=Ne(i,v);v=Re(s,e,t,i,o)}else l.value=v;if(h++,t.isUndefined(v))continue;if(v instanceof NodeList){let e=document.createDocumentFragment();e.append(...v),r.parentNode.insertBefore(e,r)}else if(v instanceof Element)r.parentNode.insertBefore(v,r);else if(t.trim(v)){let e=document.createTextNode(v);r.parentNode.insertBefore(e,r)}}return a.childNodes}const Le={insertBefore:function(e,t){if(!e.parentNode)return;let s=document.createDocumentFragment();s.append(...t),e.parentNode.insertBefore(s,e)},remove:function(e,t){if(e===t)return void e?.parentNode?.removeChild(e);let s=e.nextSibling;for(;s&&s!==t;)s?.parentNode?.removeChild(s),s=e.nextSibling}};function Ue(e,...s){return new Ve(t.isString(e)?[e]:e,s)}const je=/([a-z0-9"'])\s*>\s*</gim;class Ve{strings;vars;constructor(e,s){this.strings=t.concat(e),this.vars=s}getKey(){let e=this.vars,s="";return t.each(this.strings,((n,i)=>{if(r.test(n))return s=t.toString(e[i]),!1})),s}getKeys(){let e=this.vars,s=[];for(let n=0;n<this.strings.length;n++){const i=this.strings[n];if(r.test(i)){let r=t.toString(e[n]);s.push(r)}}return t.isEmpty(s)&&e.forEach((e=>{if(e instanceof Ve){let t=e.getKey();s.push(t)}})),s}append(e){let s=t.last(this.strings);return e.strings.forEach(((e,t)=>{0!=t?this.strings.push(e):this.strings[this.strings.length-1]=s+e})),this.vars=t.concat(this.vars,e.vars),this}insert(e,t){let s=t.strings.shift();return this.strings[e]+=s,this.strings.splice(e+1,0,...t.strings),this.vars.splice(e,0,...t.vars),this}getHTML(e){let[s,r]=Ne(e,this),n=Re([],s,r,e,e);return t.reduce(n,((e,t)=>e+t.outerHTML),"")}}const He=b(class extends u{static get priority(){return Number.MAX_VALUE}created(e,s,r,...n){let i=e[r];e[r]=t.debounce(i,this.wait,this.immediate);let o=Reflect.getPrototypeOf(e);o&&!t.get(o,r+"_$__")&&t.set(o,r+"_$__",i)}beforeMount(e,t,...s){}mounted(e,t,...s){}updated(e,t){}get targets(){return[e.DecoratorType.METHOD]}wait;immediate;result;constructor(e,t=!1){super(),this.wait=e,this.immediate=t}});var Ie;e.QueryCache=void 0,(Ie=e.QueryCache||(e.QueryCache={})).ONCE="once",Ie.UPDATABLE="updatable";class We extends u{static get priority(){return Number.MAX_VALUE}created(e,t,s,...r){}mounted(e,t,...s){}get targets(){return[e.DecoratorType.FIELD]}selector;cache;result;constructor(e,t){super(),this.selector=e,this.cache=t}static getKey(e){return e}getter(e){this.result=e.shadowRoot?.querySelector(this.selector)}beforeMount(e,t,s,r,...n){const i=this;Reflect.defineProperty(e,r,{get:()=>(i.result&&i.cache||i.getter(e),i.result)})}updated(t,s){this.cache===e.QueryCache.UPDATABLE&&this.getter(t)}}const $e=b(We),Be=b(class extends We{getter(e){this.result=e.shadowRoot?.querySelectorAll(this.selector)}});function Fe(e,s,r){if(!t.has(e.constructor,i.STATES)){const s={};let r=e.constructor;for(;(r=p(r))!==V;)t.merge(s,r[i.STATES]?t.cloneDeep(r[i.STATES]):{});Reflect.defineProperty(e.constructor,i.STATES,{configurable:!1,enumerable:!1,value:s})}r.shallow=r.shallow||!1,e.constructor[i.STATES][s]=r}class ze extends(M(Object)){_renderArgs;static get scopes(){return[]}renderParams}const Ge=["key"];const Ke=z(class extends ze{created(e,s){let r=e.startNode;if(r instanceof V){let e={},n={};t.each(s,((t,s)=>{Ge.includes(s)||(s in r?e[s]=t:n[s]=t+"")})),r._initProps(e,n)}else t.each(s,((e,t)=>{r.setAttribute(t,e)}))}update(t,s,r){return e.DirectiveUpdateTag.NONE}static get scopes(){return[e.EnterPointType.TAG]}render(e){}});const Qe=z(class extends ze{created(e,s){let r=[];t.isArray(s)?r=t.compact(s):t.isObject(s)?r=t.flatMap(s,((e,t)=>e?t:[])):t.isString(s)&&(r=s.split(" "));let n=e.startNode;t.each(this.lastCls,(e=>{n.classList.remove(e)})),t.each(r,(e=>{n.classList.add(e)})),this.lastCls=t.concat(r)}update(t,s,r){return this.created(t,s[0]),e.DirectiveUpdateTag.NONE}static get scopes(){return[e.EnterPointType.CLASS]}lastCls;render(e){}});const qe=z(class extends ze{created(e,...t){}update(s,r,n){if(t.isEmpty(s.getNodes())&&(!r||t.isEmpty(r[0])))return e.DirectiveUpdateTag.NONE;if(t.isMatch(this.lastAry,r[0])&&this.lastAry.length===r[0].length)return e.DirectiveUpdateTag.NONE;if(!t.isEmpty(this.renderParams)){let e=t.last(this.renderParams);t.isArray(e)||(e=[e]),this.renderParams=e}return this.lastAry=t.clone(r[0]),e.DirectiveUpdateTag.UPDATE}constructor(e){super(),t.isEmpty(this.renderParams)||(this.renderParams=t.toArray(t.last(this.renderParams)))}static get scopes(){return[e.EnterPointType.TEXT,e.EnterPointType.SLOT]}lastAry;lastRenderTmpl;render(e,s){let n=t.map(e,((e,t)=>s(e,t)));if(n.length<1)return this.lastRenderTmpl=new Ve([],[]),this.lastRenderTmpl;let i=[],o=[];const a=[],c=[];for(let e=0;e<n.length;e++){const s=n[e];let d=t.last(o),p=s.vars,h=!0,u=s.strings;for(let e=0;e<u.length;e++){const t=u[e];if(r.test(t)){let t=p[e]+"";if(i.includes(t))return void l(`forEach - duplicate key '${t}'`);i.push(t),h=!1}0==e&&d?o[o.length-1]=d+t:o.push(t)}if(h)return void l("forEach - missing 'key' prop");let f=t.last(a);f&&u.length>0&&(a[a.length-1]=t.trim(f)+u.shift()),a.push(""),c.push(s)}return this.lastAry=t.clone(e),a.push(""),this.lastRenderTmpl=new Ve(a,c),this.lastRenderTmpl}});const Xe=z(class extends ze{created(e,...t){}ifNodes;elseNodes;static get scopes(){return[e.EnterPointType.TEXT,e.EnterPointType.SLOT]}update(t,s,r){return!!s[0]==!!r[0]?e.DirectiveUpdateTag.NONE:(s[0],e.DirectiveUpdateTag.REPLACE)}render(e,t,s){return e?t(e):s(e)}});const Ye=z(class extends ze{created(e,...t){}static get scopes(){return[e.EnterPointType.TEXT,e.EnterPointType.SLOT]}update(t,s,r){return s[0]===r[0]?e.DirectiveUpdateTag.NONE:s[0]?e.DirectiveUpdateTag.REPLACE:e.DirectiveUpdateTag.REMOVE}render(e,t){return e?t():Ue``}});var Je;e.ModelTriggerType=void 0,(Je=e.ModelTriggerType||(e.ModelTriggerType={})).CHANGE="change",Je.INPUT="input";const Ze=z(class extends ze{created(e,s,r="value"){const n=e.startNode;if("binded"===t.get(n,"_model"))return;let i=t.last(this.renderParams);if(this.updateProp=r,this.modelPath=i,t.isObject(s)||t.trim(s)||(s=""),n instanceof V)n._initProps({[this.updateProp]:s}),n.addEventListener("update:"+r,(e=>{t.set(this.renderComponent,this.modelPath,e.detail.value)})),t.set(n,"_model","binded");else if(n instanceof HTMLTextAreaElement)n.setAttribute(this.updateProp,s+""),n.addEventListener("input",(e=>{let s=e.target;t.set(this.renderComponent,this.modelPath,s.value)})),t.set(n,"_model","binded");else if(n instanceof HTMLInputElement){let e="",i="";switch(n.type){case"checkbox":case"radio":e="checked",i="change";break;default:e="value",i="input"}n.setAttribute(r??e,s+""),n.addEventListener(i,(e=>{let s=e.target;t.set(this.renderComponent,this.modelPath,s.value)})),t.set(n,"_model","binded")}else n instanceof HTMLSelectElement&&(n.setAttribute(this.updateProp,s+""),n.addEventListener("change",(e=>{let s=e.target;t.set(this.renderComponent,this.modelPath,s.value)})),t.set(n,"_model","binded"))}update(s,r,n){if(this.modelPath||(this.modelPath=t.last(this.renderParams)),!t.isEqual(r,n)){const e=s.startNode;if(e instanceof V)e._updateProps({[this.updateProp]:r[0]});else if(e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement)e.setAttribute(this.updateProp,r[0]+"");else if(e instanceof HTMLInputElement)switch(e.type){case"checkbox":case"radio":r[0]?e.setAttribute("checked",""):e.removeAttribute("checked");break;default:e.setAttribute(this.updateProp,r[0]+"")}}return e.DirectiveUpdateTag.NONE}static get scopes(){return[e.EnterPointType.TAG]}modelPath;render(e,t="value"){}});const et=z(class extends ze{created(e,s,r){let n=e.startNode;t.isUndefined(this.display)&&(this.display=n.style.display);let i=r;this.renderComponent.nextTick((()=>{n.style.display=s?this.display:"none",i&&i(n,s)}))}update(t,s,r){return this.created(t,s[0],s[1]),e.DirectiveUpdateTag.NONE}display=void 0;static get scopes(){return[e.EnterPointType.TAG]}constructor(e){super(),this.point=e}render(e,t){}});const tt=z(class extends ze{created(e,t,s){t=t.bind(this.renderComponent),this.slotComponent._bindSlotHook(s||"default",t)}update(t,s,r){return e.DirectiveUpdateTag.NONE}static get scopes(){return[e.EnterPointType.SLOT]}render(e,t){}});class st{static getCssText(e,s=!1){return t.isString(e)?e:t.join(t.map(e,((e,r)=>r.startsWith("--")?r+":"+e+(s?" !important":""):t.kebabCase(r)+":"+e+(s?" !important":""))),";")}static setStyle(e,s){if(t.isString(e)&&!t.trim(e))return{};let r=st.getCssText(e),n={};return t.each(r.split(";"),(e=>{let r=e.split(":"),i=t.trim(r[0]),o=t.trim(r[1]);n[i]=s.style.getPropertyValue(i),s.style.setProperty(i,o)})),n}}const rt=z(class extends ze{created(e,t){st.setStyle(t,e.startNode)}update(t,s,r){return this.created(t,s[0]),e.DirectiveUpdateTag.NONE}constructor(e){super(),this.point=e}static get scopes(){return[e.EnterPointType.STYLE]}render(e){}});const nt=z(class extends ze{created(e,s){this.modelPath||(this.modelPath=t.last(this.renderParams));const r=e.startNode;let n=e.attrName;r._initProps({[n]:s}),r.addEventListener("update:"+n,(e=>{t.set(this.renderComponent,this.modelPath,e.detail.value)}))}update(s,r,n){if(!t.isEqual(r,n)){const e=s.startNode;let t=s.attrName;e._updateProps({[t]:r[0]})}return e.DirectiveUpdateTag.NONE}static get scopes(){return[e.EnterPointType.PROP]}modelPath;constructor(e){super()}render(e){}});const it=z(class extends ze{created(e,...t){}static get scopes(){return[e.EnterPointType.TEXT,e.EnterPointType.SLOT]}update(s,r,n){return t.isEqual(r,n)?e.DirectiveUpdateTag.NONE:e.DirectiveUpdateTag.REPLACE}render(e,s){let r=()=>Ue``,n=[],i=[];t.each(s,((e,s)=>{if(t.isFunction(e))n.push(s),i.push(e);else{let t=e[0],s=e[1];n.push(t),i.push(s)}"default"===s&&(r=e)}));let o=t.findIndex(n,(s=>t.isFunction(s)?s(e):s==e));return t.call(i[o]??r)}});e.CompElem=V,e.CssHelper=st,e.Decorator=u,e.DecoratorWrapper=E,e.Directive=ze,e.DirectiveWrapper=F,e.EnterPoint=B,e.GetKeyFnName=f,e.Template=Ve,e.UpdatePoint=$,e._DecoratorMap=m,e._DecoratorsKey=g,e._getObservedAttrs=C,e.bind=Ke,e.buildHTML=Ne,e.classes=Qe,e.computed=function(e,s,r){r.get||l(`Computed '${s}' must be a getter`),t.has(e.constructor,i.COMPUTED)||(e.constructor[i.COMPUTED]=t.isEmpty(e.constructor[i.COMPUTED])?{}:t.cloneDeep(e.constructor[i.COMPUTED])),e.constructor[i.COMPUTED][s]=r.get},e.createRef=function(e){return{current:e}},e.debounced=He,e.decorator=b,e.directive=z,e.event=function(e,s){return(r,n,o)=>{t.has(r.constructor,i.EVENTS)||(r.constructor[i.EVENTS]=t.isEmpty(r.constructor[i.EVENTS])?[]:t.cloneDeep(r.constructor[i.EVENTS])),r.constructor[i.EVENTS].push({name:e,options:s,fn:r[n]})}},e.forEach=qe,e.html=Ue,e.ifElse=Xe,e.ifTrue=Ye,e.makeState=function(e,t,s){Fe(e.prototype,t,s||{prop:""})},e.model=Ze,e.prop=function(e){if(1===arguments.length)return(t,s,r)=>{e.required=e.required||!1,e.attribute=!1!==e.attribute,T(t,s,e,r)};let s=arguments[0],r=arguments[1],n=arguments[2];e={type:void 0,required:!1,attribute:!0},n&&"function"==typeof n.type&&(e=t.defaults(n,e),n=void 0),T(s,r,e,n)},e.query=$e,e.queryAll=Be,e.show=et,e.slot=tt,e.state=function(e){if(1===arguments.length)return(t,s)=>{Fe(t,s,e)};Fe(arguments[0],arguments[1],{prop:""})},e.styles=rt,e.sync=nt,e.tag=function(e){return t=>{if(t){if(t.prototype.hasOwnProperty("attributeChangedCallback")){let e=t.prototype.attributeChangedCallback;t.prototype.attributeChangedCallback=function(t,s,r){V.prototype.attributeChangedCallback.call(this,t,s,r),e.call(this,t,s,r)}}if(t.prototype.hasOwnProperty("connectedCallback")){let e=t.prototype.connectedCallback;t.prototype.connectedCallback=function(){V.prototype.connectedCallback.call(this),e.call(this)}}if(t.prototype.hasOwnProperty("disconnectedCallback")){let e=t.prototype.disconnectedCallback;t.prototype.disconnectedCallback=function(){V.prototype.disconnectedCallback.call(this),e.call(this)}}customElements.define(e,t)}}},e.watch=function(e,s){return(r,n)=>{t.has(r.constructor,i.WATCH)||(r.constructor[i.WATCH]=t.isEmpty(r.constructor[i.WATCH])?{}:t.cloneDeep(r.constructor[i.WATCH]));(t.isArray(e)?e:[e]).forEach((e=>{let o=e.replaceAll(".","-"),a=r.constructor[i.WATCH][o];t.isArray(a)||(a=r.constructor[i.WATCH][o]=[]),a.push({source:e,options:s,handler:r[n]})}))}},e.when=it,Object.defineProperty(e,"__esModule",{value:!0})}));
7
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("myfx")):"function"==typeof define&&define.amd?define(["exports","myfx"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).compelem={},e.myfx)}(this,(function(e,t){"use strict";const s=new WeakMap,r=/\s+\.?key\s*=/;var i,n,o,a;function l(e){console.error("[CompElem]",e)}function c(e,t){console.error(`[CompElem <${e}>]`,t)}function d(e){return t.toPath(e).join("-")}function p(e){return Object.getPrototypeOf(e)}function h(e){let s=e;return t.isString(e)&&/(?:^true$)|(?:^false$)/.test(s)?s="true"===s:(t.isUndefined(s)||t.isBlank(s))&&(s=!0),s}!function(e){e[e.CSS=1]="CSS",e[e.COMPUTED=2]="COMPUTED"}(i||(i={})),function(e){e.PROPS="__deco_props",e.STATES="__deco_states",e.COMPUTED="__deco_computed",e.WATCH="__deco_watch",e.EVENTS="__deco_events"}(n||(n={})),function(e){e.Prod="prod",e.Dev="dev"}(o||(o={})),e.DecoratorType=void 0,(a=e.DecoratorType||(e.DecoratorType={})).CLASS="class",a.FIELD="field",a.METHOD="method";class u{static get priority(){return 0}}const f="getKey",g="__decorators",m=new WeakMap;class E{args;metadata;decoratorClass;instanceMap;key;priority=0;constructor(e,s,r){this.args=e,this.metadata=s,this.decoratorClass=r,this.priority=t.get(r,"priority",0),this.instanceMap=new WeakMap}create(s){let r,i=new this.decoratorClass(...this.args),n=i.targets,o=this.metadata[2];t.isObject(o)&&t.isDefined(t.get(o,"configurable"))?r=e.DecoratorType.METHOD:t.isUndefined(this.metadata[2])&&(r=e.DecoratorType.FIELD),!t.isEmpty(n)&&r&&n.includes(r)?(i.created(s,...this.metadata),this.instanceMap.set(s,i)):l(`Decorator '${this.decoratorClass.name}' is out of targets, expect '${n.join(",")}' bug got '${r}'`)}beforeMount(e,t){this.instanceMap.get(e).beforeMount(e,t,...this.metadata)}mounted(e,t){this.instanceMap.get(e).mounted(e,t,...this.metadata)}updated(e,t){this.instanceMap.get(e).updated(e,t)}}const y=new WeakMap;function b(e){let s=(...s)=>(...r)=>{let i=r[0].constructor,n=i[g];if(!t.has(i,g)){let e=Object.getPrototypeOf(i);n=e?t.concat(e[g]??[]):[],Reflect.defineProperty(i,g,{configurable:!1,enumerable:!1,value:n})}let o,a={},l=e[f];if(l){let t=y.get(e);if(t||(t=new WeakMap,y.set(e,t)),a=t.get(i),a||(a={},t.set(i,a)),o=l(...s),a[o])return a[o]}let c=new E(s,r,e);return a[o]=c,n?.push(c),c};return m.set(s,!0),s}const v=new WeakMap;function T(e,s,r,i){let o;if(t.isLowerCaseChar(s[0])||l(`Prop '${s}' must be in CamelCase`),!t.has(e.constructor,n.PROPS)){const s={};let r=e.constructor;for(;(r=p(r))!==W;)t.merge(s,r[n.PROPS]?t.cloneDeep(r[n.PROPS]):{});Reflect.defineProperty(e.constructor,n.PROPS,{configurable:!1,enumerable:!1,value:s}),o=new Set,t.each(s,((e,s)=>{if(e.attribute){let e=t.kebabCase(s);o?.add(e)}})),v.set(e.constructor,o)}if(i&&(i.get&&(r.getter=i.get),i.set&&(r.setter=i.set)),r.attribute){o||(o=v.get(e.constructor));let r=t.kebabCase(s);o?.add(r)}t.has(e.constructor,"observedAttributes")||(e.constructor.observedAttributes=[]),e.constructor.observedAttributes=t.toArray(o),r.shallow=r.shallow||!1,e.constructor[n.PROPS][s]=r}const C=new Set;function _(e){return v.get(e)??C}const S={collectWatch(e,t,s){let r=D.get(e);r||(r={},D.set(e,r));let i=r[s];i||(i=r[s]=[]),i.push(t)},startCollect(e,t){this.__collectType=t,this.__collecting=e},setUpdater(e){this.__updater=e},endCollect(){this.__collecting=null},__directiveQ:[],setDirectiveQ(e){let s=t.last(this.__directiveQ);const r=e?e.join(","):"",i=s?s.join(","):"";s&&r===i||(s&&s.length<e.length&&t.startsWith(r,i)?this.__directiveQ[this.__directiveQ.length-1]=e:this.__directiveQ.push(e))},popDirectiveQ(){let e=t.concat(this.__directiveQ);return this.__directiveQ=[],e},startRender(e){this.__renderCollecting=!0,this.__renderContext=e},endRender(e){this.__renderCollection.forEach((t=>{e._regDeps(t,this.__renderContext)})),this.__renderCollection.clear(),this.__renderCollecting=!1,this.__renderContext=null},collect(e){this.__renderCollection.add(e)},clear(){this.__directiveQ=[]},__updater:null,__collecting:null,__collectType:-1,__renderCollection:new Set,__renderContext:null,__renderCollecting:!1,__skipCheck:!1},P=new WeakMap,N=new WeakMap,w=new WeakMap,A=new WeakMap,D=new WeakMap,k=new WeakSet;function x(e,r){if(!t.isObject(e))return e;const o=k.has(e)?e:new Proxy(e,{get(e,s,r){if(!s)return;const n=Reflect.get(e,s,r);if("string"!=typeof s&&"number"!=typeof s)return n;let o=s in e;if((S.__renderCollecting||S.__collecting)&&(o&&e.hasOwnProperty(s)||!o)){let e=N.get(r)??[],n=t.concat(e,[s]),o=n.join("-");if(S.__renderCollecting)S.collect(d(n)),S.setDirectiveQ(n);else if(S.__collecting){let e;switch(S.__collectType){case i.COMPUTED:e=w.get(S.__collecting),e||(e={},w.set(S.__collecting,e));break;case i.CSS:e=A.get(S.__collecting),e||(e={},A.set(S.__collecting,e))}let t=e[o];t||(t=e[o]=[]),t.push(S.__updater)}}return n},set(e,r,i,o){if(!r)return!1;let a=e[r];if(!t.isObject(a)&&a===i)return!0;if(Number.isNaN(i)&&Number.isNaN(a))return!0;let l=N.get(o)??[],c=t.concat(l,[r]),d=P.get(o).from,p=t.get(d.constructor,n.PROPS),h=t.get(d.constructor,n.STATES),u=t.get(p,[c[0],"hasChanged"])||t.get(h,[c[0],"hasChanged"]);if(u){if(!u.call(d,i,a))return!0}else if(a===i&&!s.has(a))return!0;p&&p[r]&&e.__isData&&p[r].sync&&d.emit("update:"+r,{value:i});let f=P.get(o)?.contextSet,g=i;!t.isObject(i)||t.isFunction(i)||i instanceof Node||Object.isFrozen(i)||f.forEach((e=>{let s=P.get(o)?.pathMap,i=s?.get(e);i&&(c=t.concat(i,[r]),N.set(g,c),g=x(g,e),k.add(g),N.set(g,c))}));let m=Reflect.set(e,r,g),E=P.get(o).pathMap;return f.forEach((e=>{let s=E.get(e);if(!s)return;e===d&&l.length>1&&s.length>1&&l[0]===s[0]&&(s=l),c=t.concat(s,"length"==r&&t.isArray(o)?[]:[r]);let i=w.get(e),n=A.get(e),p=D.get(e);if(i||n||p){let e=c.length;for(;e;){let s=c.slice(0,e).join("-");if(p){const r=p[s];e===c.length?r?.forEach((e=>{let t=e();t.ov=a,M.pushWatch(t)})):r?.forEach((e=>{let s=e();t.get(s,"deep")&&(s.ov=a,M.pushWatch(s))}))}if(i){let e=i[s];if(!t.isEmpty(e))for(let t=0;t<e.length;t++){const s=e[t];M.pushComputed(s)}}if(n){let e=n[s];if(!t.isEmpty(e))for(let t=0;t<e.length;t++){const s=e[t];M.pushCss(s)}}e--}}let h=e._notify(a,c);M.pushNext(h,e.cid)})),m}});k.has(o)||k.add(o);let a=N.get(e)??[];if(Object.isExtensible(e)&&!P.get(o)){let e=new Set;e.add(r);let t=new WeakMap;t.set(r,a),P.set(o,{from:r,contextSet:e,pathMap:t})}else{P.get(o).contextSet.add(r);let e=P.get(o).pathMap,s=e.get(r),i=t.concat(a);if(s&&s.join("")!==i.join("")){let e=t.get(r,t.initial(s));t.isArray(e)||function(...e){console.warn("[CompElem]",...e)}(`The object is referenced by more than one @state '${i.join(".")},${s.join(".")}'`),s=i}else e.set(r,i)}let l=t.get(r.constructor,n.PROPS),c=t.get(r.constructor,n.STATES);for(let s in e){const i=e[s];let n=t.get(l,[s,"shallow"])||t.get(c,[s,"shallow"]);!t.isObject(i)||k.has(i)||t.isFunction(i)||i instanceof Node||Object.isFrozen(i)||n||(N.set(i,t.concat(a,[s])),e[s]=x(i,r),k.add(e[s]),N.set(e[s],t.concat(a,[s])))}return o}const O=new Map;class M{static watchSet=new Set;static computedSet=new Set;static cssSet=new Set;static nextSet=new Set;static nextPending=!1;static next;static flush(){M.nextPending=!1;let e=Array.from(M.watchSet);M.watchSet.clear();let s=Array.from(M.computedSet);M.computedSet.clear();let r=Array.from(M.cssSet);M.cssSet.clear();let i=Array.from(M.nextSet);M.nextSet.clear(),e.forEach((e=>e(t.get(e,"ov")))),s.forEach((e=>e())),r.forEach((e=>e())),i.forEach((e=>e())),O.clear()}static pushWatch(e){M.watchSet.add(e)}static pushComputed(e){M.computedSet.add(e)}static pushCss(e){M.cssSet.add(e)}static pushNext(e,t){if(t){if(O.has(t))return;O.set(t,e)}M.nextSet.add(e),M.nextPending||(M.nextPending=!0,M.next())}}function R(e){return class extends e{__updatePoints;renderComponent;buildView(e){let t=this instanceof W?this:this.renderComponent,[s,r]=ke(t,e),i=[],n=je(i,s,r,t,this);return this.__updatePoints=i,n}updateView(e){if(t.isBlank(t.join(e.strings)))return;if(!this.__updatePoints)return;let{vars:s}=e,r=this instanceof W?this:this.renderComponent;for(let e=0;e<this.__updatePoints.length;e++){const i=this.__updatePoints[e];let n=i.varIndex;if(n<0)continue;let o=i.value,a=s,l=i.node,c=t.split(n,"-");for(let s=0;s<c.length;s++){const r=c[s];a=t.get(a,r),a&&a.vars&&e<c.length-1&&(a=a.vars)}if(!t.isObject(o)&&o===a)continue;let d=l;if(i.isDirective){if(!o.di)continue;a.di=o.di,a.di.renderParams=a.varChain,a.di._renderArgs=a.args,a.point=o.point,a.varPath=o.varPath,o.update(o.point,a.args,o.args)}else if(i.isToggleProp){if(!!a===o)continue;d.toggleAttribute(i.attrName,!!a),t.set(d,i.attrName,!!a)}else if(i.isProp){if(!t.isObject(a)&&a===o)continue;l instanceof W?l._updateProps({[i.attrName]:a}):l instanceof HTMLSlotElement&&r._updateSlot(l.getAttribute("name")||"default",i.attrName,a)}else if(i.attrName&&!i.isEvent){if(!t.isEqual(o,a))switch(i.attrName){case"value":if(l instanceof HTMLInputElement){l.value=a;break}default:l.setAttribute(i.attrName,t.replace(i.attrTmpl,Ve,a+""))}}else if(i.isTmpl&&a&&o)o.tmpl&&(a.strings.join()!==o.tmpl.strings.join()||a.vars.some((e=>t.isObject(e)&&!t.isPlainObject(e)))||o.tmpl.vars.some((e=>t.isObject(e)&&!t.isPlainObject(e)))||!t.isEqual(a.vars,o.tmpl.vars))&&i.value.updateView(a),o.tmpl=a,a=o;else if(i.isText){let e=i.textNode.nextSibling;e&&e===i.node.previousSibling?e.textContent=a:(Ie.remove(i.textNode,i.node),Ie.insertBefore(i.node,[a]))}i.value=a}}}}(()=>{const e=Promise.resolve(),t=M.flush;M.next=()=>{e.then(t)}})();class L extends(R(Object)){tmpl;constructor(e){super(),this._renderVars=t.get(e,"_renderVars"),this.tmpl=e}}const U={boolean:Boolean,string:String,number:Number,object:Object,array:Array,function:Function,undefined:Object},V=new WeakMap;let j=[],I=0;const H=new Map;class W extends(R(HTMLElement)){static __l_globalRule=document.createElement("style");static defaults(e){j=t.flatMap(e.css,(e=>{if(t.isString(e)){let t=new CSSStyleSheet;return t.replaceSync(e),t}return e instanceof CSSStyleSheet?e:[]})),e.global,t.each(e,((e,s)=>{t.test(s[0],/[A-Z]/)}))}#e;#t={};#s={"#slots":{}};#r={};#i={};#n;#o={};__events={};get[Symbol.toStringTag](){return this.constructor.name}get cid(){return this.#e}get reactiveData(){return this.#r}get attrs(){return this.#a}get props(){return this.#l}get renderRoot(){return this.#c}get renderRoots(){return this.#d}get parentComponent(){return this.#p}get wrapperComponent(){return this.#h}get slotHooks(){return this.#u}get css(){return V.get(this.constructor)}get globalStyleSheet(){return H.get(this.constructor)?.sheet}get isMounted(){return this.#f}get slots(){return this.#s["#slots"]}#a;#l;#c;#d;#p;#h;#g={};#u={};#m={};#f=!1;static get styles(){return[]}static get globalStyles(){return[]}get styles(){return[]}#E=!1;#y=!1;constructor(...e){super(),this.#e=I++,1===t.size(e)&&(this.#l={},t.assign(this.#l,t.first(e)));let s=this.render.bind(this);this.render=function(){let e;return S.startRender(this),e=s(),S.endRender(this),e};let r=t.get(this.constructor,"globalStyles"),i=H.has(this.constructor);if(!t.isEmpty(r)&&!i){let e="";r.forEach((s=>{t.isString(s)&&(e+=s+"\n")}));let s=document.createElement("style");s.textContent+=e,H.set(this.constructor,s),document.head.appendChild(s)}let n=V.get(this.constructor),o=n??[];n||(t.each(t.get(this.constructor,"styles"),(e=>{if(t.isString(e)){let t=new CSSStyleSheet;t.replaceSync(e),o.push(t)}else o.push(e)})),V.set(this.constructor,o)),this.#n=this.attachShadow({mode:"open"}),this.#n.adoptedStyleSheets=[...j,...o],this._slotsPropMap={default:[]};let a=t.get(this.constructor,g);a&&a.sort(((e,t)=>t.priority-e.priority)).forEach((e=>e.create(this))),this.#b=this.#v.bind(this)}#b;connectedCallback(){let e=t.closest(this.parentNode,(e=>e instanceof W||e.host instanceof W),"parentNode");this.#p=e?e instanceof W?e:e.host:null,this.__init()}disconnectedCallback(){}__init(){if(this.#E)return;if(this.#y)return;this.#y=!0,this.#T();const e=this.#C();this.propsReady(e);for(const t in e){const s=e[t];this.#s[t]=s}this.#_(),t.each(this.#s,((e,t)=>{let s=Reflect.getOwnPropertyDescriptor(this.#s,t);Reflect.defineProperty(this,t,{get(){let e=Reflect.get(this.#r,t);return s?.get?s?.get():e},set(e){s?.set?s?.set(e):Reflect.set(this.#r,t,e)}})})),Reflect.defineProperty(this.#s,"__isData",{enumerable:!1,value:!0}),this.#r=x(this.#s,this);let s=t.get(this.constructor,n.COMPUTED);t.each(s,((e,t)=>{S.startCollect(this,i.COMPUTED),S.setUpdater((()=>{this.#r[t]=e.call(this)})),this.#s[t]=e.call(this),S.endCollect(),Reflect.defineProperty(this,t,{get(){return Reflect.get(this.#r,t)},set(e){c(this.tagName,"Cannot set a computed property '"+t+"'")}})}));let r=t.get(this.constructor,n.WATCH);t.each(r,((e,s)=>{e.forEach((e=>{let{source:r,options:i,handler:n}=e,o=n.bind(this);t.get(i,"once",!1)&&(o=t.once(o));const a=function(e){let s=t.get(this,r.replaceAll("-","."));o(s,e,r)}.bind(this);let l=t.get(i,"deep",!1);if(a.deep=l,S.collectWatch(this,(()=>a),s),!t.get(i,"immediate",!1))return;let c=t.get(this,r.replaceAll("-","."));o(c,c,r)}))}));let o=this.render(),a=this.buildView(o);if(a){let e=t.toArray(a);e.forEach((e=>{this.#n.appendChild(e)})),this.#d=t.filter(e,(e=>e.nodeType===Node.ELEMENT_NODE)),this.#c=this.#d[0]}t.each(this.#u,((e,t)=>{this.#S(t)}));const l=this;let d=t.get(this.constructor,g);d&&d.sort(((e,t)=>t.priority-e.priority)).forEach((e=>{e.beforeMount(this,((e,t)=>(l.#r[e]=t,l.#r[e])))})),this.beforeMount();let p=t.get(this.constructor,n.EVENTS);p&&p.forEach((async e=>{let s=e.name,r=t.assign({target:document,once:!1,passive:!1,capture:!1},e.options),i=t.bind(e.fn,this),n=r.target;t.isFunction(n)&&(n=await n.call(this,this)),n?n.addEventListener(s,i,r):c(this.tagName,"The target of @event('"+s+"',...) is invalid")})),S.startCollect(this,i.CSS);let h=[];this.styles.forEach((e=>{if(!t.isFunction(e))return;let s=new CSSStyleSheet;h.push(s),S.setUpdater((()=>{let t=e()??"";s.replaceSync(t)}));let r=e();t.isBlank(r)||s.replaceSync(r)})),S.endCollect(),h.length>0&&(this.#n.adoptedStyleSheets=[...this.#n.adoptedStyleSheets,...h]),setTimeout((()=>{this.#f=!0,this.mounted(),d&&d.forEach((e=>{e.mounted(this,((e,t)=>(l.#r[e]=t,l.#r[e])))}))}),0),this.#E=!0}propsReady(e){}render(){throw Error(`[CompElem <${this.tagName}>] Missing render()`)}beforeMount(){}mounted(){}#P(e,s){this.#T();let r=t.get(this.#t[s],"props");r&&t.each(this.slots,((e,s)=>{e.filter((e=>e.nodeType===Node.ELEMENT_NODE)).forEach((e=>{e instanceof W?e._updateProps(r):t.each(r,((s,r)=>{if(e instanceof HTMLSlotElement){let i=t.get(e,"__l_comp");if(i){let t=e.name||"default",n=i.#t[t];n||(n=i.#t[t]={props:{}}),n.props||(n.props={}),n.props[r]=s,i.#P(e,t)}}else e.setAttribute(r,s)}))}))})),this.slotChange(e,s)}slotChange(e,t){}attributeChangedCallback(e,t,s){this.#N(e,t,s)}shouldUpdate(e){return!0}updated(e){}#w={};_notify(e,r){let i=[];for(let n=0;n<r.length;n++){const o=r[n];i.push(o);let a=t.get(this,i),l=d(i);this.#i[l]={value:a,chain:"slots"===l?["slots"]:i,oldValue:e,end:i.length===r.length},t.isObject(a)&&"#"!=l[0]&&s.set(a,l)}return this.#b}#v(){if(t.size(this.#i)<1)return;const e=this.#i;this.#i={};let r=t.get(this.constructor,g);if(r&&r.sort(((e,t)=>t.priority-e.priority)).forEach((t=>{t.updated(this,e)})),!this.shouldUpdate(e))return;let i=new Set;t.each(e,(({value:e,chain:t,oldValue:s},r)=>{this.#o[r]&&this.#o[r].forEach((e=>{i.add(e)}))})),i.forEach((e=>{if(e===this)this.updateView(this.render());else{let t=e.render(...e._renderArgs?e._renderArgs:[]);t&&e.updateView(t)}})),this.#A.forEach((e=>{this.#S(e)})),this.updated(e),t.each(e,(({value:e,chain:r,oldValue:i},n)=>{t.isObject(e)&&s.has(e)&&s.delete(e)}))}#C(){let e=t.get(this.constructor,n.PROPS),s=this.attributes,r=this.tagName,i=this.#l,o={};t.each(s,(({name:s,value:r})=>{if(s[0]===Te||s[0]===Ce||s[0]===_e||s===Ne||"slot"===s)return;let i=t.camelCase(s);e&&!e[i]&&(o[s]=r)})),this.#a=this.#a?t.assign(this.#a,o):o;let a={};if(!e)return Object.seal(a);let l=Object.keys(e),d=l.length;for(let n=0;n<d;n++){const o=l[n];let d,u=e[o],f=t.has(i,o),g=t.get(this,o);if(!("_defaultValue"in u)&&(u._defaultValue=g,!u.type)){t.isUndefined(g)&&c(r,"Prop '"+o+"' has neither propType nor defaultValue be used for type inference");let e=typeof g;t.isArray(g)&&(e="array");let s=U[e];u.type=s}if(f)d=t.isNil(i[o])?g:i[o];else{d=g;let e=s.getNamedItem(t.kebabCase(o))||s.getNamedItem(Ce+t.kebabCase(o));e&&(f=!0,d=e.value)}if(u.required&&!f){c(r,"Prop '"+o+"' is required");break}d=this.#D(e,o,d);let m=t.get(e,[o,"getter"]);m&&(m=t.bind(m,this));let E=t.get(e,[o,"setter"]);if(E&&(E=t.bind(E,this)),(m||E)&&Reflect.defineProperty(this.#s,o,{set:E||function(e){},get:m}),u.attribute&&t.isDefined(d)&&!t.isObject(d)){let e=t.kebabCase(o),s=t.trim(d);(p=u.type)===Boolean||t.some(p,(e=>e===Boolean))?(s=h(d),t.isBoolean(s)?this.toggleAttribute(e,s):this.setAttribute(e,s)):this.setAttribute(e,s)}this.#s[o]=d,a[o]=d}var p;return Object.seal(a)}#k(e,s){let r=e;try{for(let i=0;i<s.length;i++){const n=s[i];r=n===Boolean?h(e):n===Number?Number(e):n===String?String(e):n===Object||n===Array?t.parseJSON(e):n===Date?new Date(e):new n(e)}}catch(t){c(this.tagName,"Convert attribute error with "+e)}return r}#D(e,s,r){let i=e[s];if(!i)return r;let n=i.isValid,o=i.type,a=t.isArray(o)?o:[o],l=i.converter,d=r;if(!t.some(a,(e=>e===String))&&t.isString(d)&&!t.isNull(d))try{d=l?l(d):this.#k(d,a)}catch(e){c(this.tagName,`Convert attribute '${s}' error with `+d)}for(let e=0;e<a.length;e++){"Boolean"===a[e].name&&(d=h(d))}let p=typeof d,u=!t.isDefined(d);for(let e=0;e<a.length;e++){const s=a[e];if(t.test(p,s.name,"i")||d instanceof s||Object.prototype.toString.call(d)===Object.prototype.toString.call(s.prototype)){u=!0;break}}return u||c(this.tagName,`Invalid prop '${s}'. expected '${a.map((e=>e.name||e))}' but got '${p}'`),n&&(n.call(this,d,this.#s)||c(this.tagName,`Invalid prop '${s}'. IsValid() check failed`)),d}#_(){let e=t.get(this.constructor,n.STATES);t.each(e,((s,r)=>{let i=e[r],n=t.get(this,r);if(i){let e=i.prop;n=e?t.cloneDeep(this.#s[e]):t.get(this,r)}this.#s[r]=n}))}#x=t.debounce(this.propsReady,100);_setParentProps(e,s){if(this.#E){let r=t.get(this.constructor,n.PROPS);t.each(e,((e,s)=>{let i=t.camelCase(s),n=r[i];if(!n)return;let o=this.#s[i];e=this.#D(r,i,e),n.hasChanged&&!n.hasChanged.call(this,e,o)||(this.#s[i]=e,this._notify(o,[i]))})),t.assign(this.#l,e),t.assign(this.#a,s),this.#x(this.#l)}}_updateProps(e){let s=t.get(this.constructor,n.PROPS);t.each(e,((e,r)=>{let i=t.camelCase(r);s[i]&&(e=this.#D(s,i,e),S.__skipCheck=!0,t.set(this,i,e),S.__skipCheck=!1)})),t.assign(this.#l,e),this.#x(this.#l)}_initProps(e,s){this.#l=t.merge(this.#l||{},e),this.#a=t.merge({},s)}_bindSlot(e,s,r){if(this.#g[s]||(this.#g[s]=e,Reflect.defineProperty(e,"__l_comp",{value:this})),e.addEventListener("slotchange",(t=>{this.#E&&this.#P(e,"default"===s?"":s)})),!t.isEmpty(r)){let e=this.#t[s];e||(e=this.#t[s]={}),e.props=r}}_bindSlotHook(e,t){this.#u[e]=t}#A=new Set;_updateSlot(e,t,s){let r=this.#g[e],i=this.#u[e];if(!i&&!r)return;let n=this.#t[e];if(t&&(n.props||(n.props={}),n.props[t]=s),i)this.#A.add(e);else{let e=r.assignedElements({flatten:!0});for(let r=0;r<e.length;r++){e[r].setAttribute(t,s+"")}}}#T(){const e=t.flatMap(this.childNodes,(e=>e.nodeType===Node.COMMENT_NODE?[]:e instanceof HTMLSlotElement?e.assignedNodes({flatten:!0}):e));let s=t.groupBy(e,(e=>e.nodeType===Node.TEXT_NODE?"default":e instanceof Element?e.getAttribute("slot")||"default":void 0));if(t.isEmpty(s))return void(t.isEmpty(this.#s["#slots"])||(this.#E?this.#r["#slots"]={}:this.#s["#slots"]={}));t.each(s,((e,s)=>{if(s){for(;e.length>0;){let s=e[0];if(!(s.nodeType===Node.TEXT_NODE&&t.isBlank(s.textContent)||s instanceof HTMLSlotElement&&t.isEmpty(s.assignedNodes({flatten:!0}))))break;e.shift()}for(;e.length>0;){let s=t.last(e);if(!(s.nodeType===Node.TEXT_NODE&&t.isBlank(s.textContent)||s instanceof HTMLSlotElement&&t.isEmpty(s.assignedNodes({flatten:!0}))))break;e.pop()}}}));let r={};t.each(s,((e,s)=>{t.isEmpty(e)||(r[s]=e)})),this.#E?this.#r["#slots"]=r:this.#s["#slots"]=r}#S(e){let s=this.#u[e];if(!s)return;let r=this.#t[e];if(!this.#s["#slots"][e])return;this.renderAsync(s,t.get(r,"props"));const i=this._asyncDirectives.get(s);let n=i?.buildView(s(t.get(r,"props"))),o=t.reject(t.toArray(n),(e=>e.nodeType===Node.COMMENT_NODE));if(o){let s=this.#m[e];if(!t.isEmpty(s))for(let e=0;e<s.length;e++){const t=s[e];t.parentNode?.removeChild(t)}this.#m[e]=o,this.append(...o),this.#A.clear()}}_asyncDirectives=new WeakMap;renderAsync(e,...t){}#N(e,s,r){if(!this.isMounted)return;if(_(this.constructor).has(e)){let s=t.camelCase(e);if(t.isNull(r)){r=t.get(this.constructor,n.PROPS)[s]._defaultValue}this._updateProps({[s]:r})}}_regDeps(e,t){let s=this.#o[e];s||(s=this.#o[e]=new Set),s.add(t);let r=e.split("-");if(r.pop(),r.length<1)return;let i=r.join("-");s=this.#o[i],s||(s=this.#o[i]=new Set),s.add(t)}_regWrapper(e){this.#h=e}emit(e,s={},r){r&&r.event&&(s.event=r.event),s.target=this,this.dispatchEvent(new CustomEvent(e,{bubbles:t.get(r,"bubbles",!1),composed:t.get(r,"composed",!1),cancelable:!0,detail:s}))}on(e,t){this.#w[e]||(this.#w[e]=[]);let s=t.bind(this);this.#w[e].push(s),this.addEventListener(e,s)}nextTick(e,t){M.pushNext(e,t)}forceUpdate(){t.each(this.#r,((e,t)=>{this.#i[t]={value:void 0,chain:void 0}})),this.#v()}}var $,B,F;e.DirectiveUpdateTag=void 0,($=e.DirectiveUpdateTag||(e.DirectiveUpdateTag={})).NONE="NONE",$.REMOVE="REMOVE",$.REPLACE="REPLACE",$.UPDATE="UPDATE",$.APPEND="APPEND";class z{key;varIndex;value;isText=!1;isTmpl=!1;isDirective=!1;node;textNode;isComponent=!1;attrName;attrTmpl;isProp=!1;isToggleProp=!1;isEvent;constructor(e,t,s,r){this.varIndex=e,this.node=t,s&&(this.attrName=s),r&&(this.attrTmpl=r)}}e.EnterPointType=void 0,(B=e.EnterPointType||(e.EnterPointType={})).ATTR="attr",B.PROP="prop",B.TEXT="text",B.CLASS="class",B.STYLE="style",B.SLOT="slot",B.TAG="tag";class G{startNode;endNode;type;attrName;varIndex;expressionChain;nodes;constructor(e,t,s){this.startNode=e,this.attrName=t,this.type=s}setVarIndex(e){this.varIndex=e}getNodes(){let e=this.startNode.nextSibling;if(!this.endNode)return[e];let t=[];for(;e&&e!==this.endNode;)t.push(e),e=e?.nextSibling;return t}}!function(e){e.AFTER_BEGIN="afterbegin"}(F||(F={}));class K{diClass;args;di;varPath;point;slotComponent;varChain;constructor(e,...t){this.diClass=e,this.args=t,this.varChain=S.popDirectiveQ(),this.di=new this.diClass,this.di.renderParams=this.varChain}checkScope(e){let s=t.get(this.diClass,"scopes");t.isEmpty(s)||t.test(s.join(","),e)||l(`Directive '${this.diClass.name}' is out of scopes, expect '${s.join(",")}' bug got '${e}'`)}render(e){let t=this.di;return t.renderComponent||(t.renderComponent=e),this.di=t,t._renderArgs=this.args,this.di.render(...this.args)}update(s,r,i){let n=this.di.update(s,r,i);if(n===e.DirectiveUpdateTag.NONE)return;let o=s.getNodes();if(n===e.DirectiveUpdateTag.REMOVE)for(let e=0;e<o.length;e++){const t=o[e];t.parentNode?.removeChild(t)}else if(n===e.DirectiveUpdateTag.REPLACE){let e=[];for(let e=0;e<o.length;e++){const t=o[e];t.parentNode?.removeChild(t)}let i=this.di.render(...r),n=this.di.buildView(i);e=t.toArray(n);let a=document.createDocumentFragment();a.append(...e),s.endNode.parentNode.insertBefore(a,s.endNode)}else if(n===e.DirectiveUpdateTag.UPDATE){let e,i={},n=[],a=[],c=this.di.render(...r);if(c||(c=new $e([],[])),t.isEmpty(o)){let e=this.di.buildView(c);return void s.startNode.after(...e)}let d={};c instanceof $e&&c.vars.forEach((e=>{if(e instanceof $e){const t=e.getKey();d[t]=e,i[t]=!0,a.push(t)}})),o=t.filter(t.compact(o),(e=>e.nodeType===Node.ELEMENT_NODE)),e=t.filter(t.compact(t.toArray(e)),(e=>e.nodeType===Node.ELEMENT_NODE));let p={},h="",u={};for(let e=0;e<o.length;e++){let t=o[e],s=t.getAttribute("key");if(s){if(p[s]){h=s;break}p[s]=t,n.push(s),u[s]=!0}}if(h)return void l(`${t.camelCase(this.diClass.name)} - duplicate key '${h}'`);let f=i;const g=s.startNode.parentNode;let m=[],E=[];if(t.each(u,((e,s)=>{f[s]||(E.push(s),delete u[s],t.remove(n,(e=>e===s)))})),!t.isEmpty(a)){let e=-1,r=[],i=[],o=0,l=0;for(;l<a.length;l++){const c=a[l];let d=n.findIndex((e=>e===c));if(d<0){let e=a[l-1],t=e?p[e]||e:s.startNode;m.push({prevNode:t,newkey:c}),o++}else if(d>-1&&d!==l-o){if(e<0||1===Math.abs(e-d)){let e=t.last(r);r.push({nodeId:c,targetId:0===l?F.AFTER_BEGIN:e?e.nodeId:a[l-1]})}else i.push({moveGroup:r,moveIndex:l+r.length}),r=[],r.push({nodeId:c,targetId:a[l-1]});e=d}}if(r.length>0&&i.push({moveGroup:r,moveIndex:l+r.length}),i.length>0){let e=i.sort(((e,t)=>e.moveGroup.length-t.moveGroup.length));if(e.length<2){let{moveGroup:r}=e[0];if(r.length>1){let e=t.last(r).targetId;r[r.length-2].nodeId===e&&(r=t.initial(r))}r.forEach((({targetId:e,nodeId:t})=>{let r,i=p[t];e===F.AFTER_BEGIN?(r=s.startNode,r.after(i)):(r=p[e],r.after(i))}))}else{let r=t.last(e).moveIndex;1===Math.abs(e[e.length-2].moveIndex-r)&&(e=t.initial(e)),e.forEach((({moveGroup:e})=>{e.forEach((({targetId:e,nodeId:t})=>{let r,i=p[t];e===F.AFTER_BEGIN?(r=s.startNode,r.after(i)):(r=p[e],r.after(i))}))}))}}}m.length>0&&this.#O(m,d,a),m.forEach((e=>{let t=e.newkey,r=this.newNodeMap[t],i=e.prevNode;i===s.endNode?i.before(r):i===s.startNode?i.after(r):"string"==typeof i?this.newNodeMap[i].after(r):i.after(r)})),E.forEach((e=>{let t=p[e];t&&t.parentNode&&g.removeChild(t)})),this.di.__updatePoints.forEach((e=>{e.key||(e.key=e.value.tmpl.getKey());const t=a.findIndex((t=>t==e.key));e.varIndex=t})),this.di.updateView(c)}}getDirective(){return this.di}newNodeMap={};#O(e,t,s){const r=[],i=[];e.forEach((e=>{let s=e.newkey;r.push(""),i.push(t[s])})),r.push("");let n=new $e(r,i),o=this.di.__updatePoints,a=this.di.buildView(n),l=new Map;this.di.__updatePoints.forEach(((e,t)=>{const s=e.value.tmpl.getKey();e.key=s,l.set(s,!0)})),o.forEach(((e,t)=>{const s=e.key??e.value.tmpl.getKey();l.get(s)||this.di.__updatePoints.push(e)})),a.forEach((e=>{e instanceof HTMLElement&&(this.newNodeMap[e.getAttribute("key")]=e)}))}}function Q(e){return(...s)=>{let r=null;return s.forEach(((e,i)=>{if(t.isFunction(e)){let t=e;s[i]=function(...e){let s=r.di;S.startRender(s);let i=t.call(s.renderComponent,...e);return S.endRender(s.renderComponent),i}}})),r=new K(e,...s),r}}const q=["resize","outside","mutate"],X=new WeakMap,Y=[],J=[],Z=[],ee=new ResizeObserver((e=>{for(const t of e){const e=Array.isArray(t.contentBoxSize)?t.contentBoxSize[0]:t.contentBoxSize,s=Array.isArray(t.borderBoxSize)?t.borderBoxSize[0]:t.borderBoxSize;let r=X.get(t.target);if(r){r(new CustomEvent("resize",{bubbles:!1,cancelable:!1,detail:{borderBox:{w:s.inlineSize,h:s.blockSize},contentBox:{w:e.inlineSize,h:e.blockSize}}}),t.target)}}}));var te;!function(e){e.Child="child",e.Tree="tree",e.Attr="attr",e.Char="char"}(te||(te={}));const se=new WeakMap,re=new MutationObserver((e=>{for(let t=0;t<e.length;t++){const s=e[t];let r=se.get(s.target);if(!r)return;let i={target:s.target},n=null;switch(s.type){case"subtree":i.type=te.Tree,n=r[te.Tree];break;case"childList":i.type=te.Child,i.addedNodes=s.addedNodes,i.removedNodes=s.removedNodes,n=r[te.Child];break;case"attributes":i.type=te.Attr,i.attributeName=s.attributeName,i.oldValue=s.oldValue,n=r[te.Attr];break;case"characterData":i.type=te.Char,i.oldValue=s.oldValue,n=r[te.Char]}if(n){n(new CustomEvent("mutate",{bubbles:!1,cancelable:!1,detail:i}))}}}));function ie(e,s,r,i){if("resize"===e)!function(e,t){X.has(e)||(X.set(e,t),ee.observe(e))}(s,r);else if("outside"===e)switch(i[0]){case"mousedown":!function(e,t){Y.push([e,t])}(s,r);break;case"dblclick":!function(e,t){Z.push([e,t])}(s,r);break;default:!function(e,t){J.push([e,t])}(s,r)}else"mutate"===e&&function(e,s,r){let i=t.includes(r,"child"),n=t.includes(r,"attr"),o=t.includes(r,"char"),a=t.includes(r,"tree"),l=se.get(e);l||(l={},se.set(e,l),i&&(l[te.Child]=s),n&&(l[te.Attr]=s),o&&(l[te.Char]=s),a&&(l[te.Tree]=s),re.observe(e,{childList:i,attributes:n,characterData:o,subtree:a}))}(s,r,i)}document.addEventListener("mousedown",(e=>{let s=t.get(e.composedPath(),0,e.target);Y.forEach((([r,i])=>{if(!r.contains(s)&&!r.contains(t.closest(s,(e=>e instanceof ShadowRoot),"parentNode")?.host)){i(new CustomEvent("outside",{bubbles:!1,cancelable:!1,detail:{currentTarget:r,event:e}}),r)}}))}),!1),document.addEventListener("click",(e=>{let s=t.get(e.composedPath(),0,e.target);J.forEach((([r,i])=>{if(!r.contains(s)&&!r.contains(t.closest(s,(e=>e instanceof ShadowRoot),"parentNode")?.host)){i(new CustomEvent("outside",{bubbles:!1,cancelable:!1,detail:{currentTarget:r,event:e}}),r)}}))}),!1),document.addEventListener("dblclick",(e=>{let s=t.get(e.composedPath(),0,e.target);Z.forEach((([r,i])=>{if(!r.contains(s)&&!r.contains(t.closest(s,(e=>e instanceof ShadowRoot),"parentNode")?.host)){i(new CustomEvent("outside",{bubbles:!1,cancelable:!1,detail:{currentTarget:r,event:e}}),r)}}))}),!1);const ne=/,|^(debounce:.+)|(debounce$)/,oe=/,|^(throttle:.+)|(throttle$)/,ae="self",le="stop",ce="prevent",de="once",pe="left",he="right",ue="middle",fe="ctrl",ge="alt",me="shift",Ee="meta",ye={esc:"escape"},be=":";function ve(e,s,r,i){let n,o=e.split("."),a=o.shift(),l=o.includes(de),c=s;if(n=t.find(o,(e=>ne.test(e)))){let e=n.split(be);c=t.debounce(c,parseInt(e[1])||100)}if(n=t.find(o,(e=>oe.test(e)))){let e=n.split(be);c=t.throttle(c,parseInt(e[1])||100)}if(l&&(c=t.once(c)),function(e){return q.includes(e)}(a))return ie(a,r,c,o),c;let d=e=>{if(o.includes(ce)&&e.preventDefault(),o.includes(le)&&e.stopPropagation(),!o.includes(ae)||e.target===e.currentTarget){if(e instanceof MouseEvent){if(o.includes(pe)&&0!=e.button)return;if(o.includes(he)&&2!=e.button)return;if(o.includes(ue)&&1!=e.button)return}else if(e instanceof KeyboardEvent){if(t.remove(o,(e=>e==fe))[0]&&!e.ctrlKey)return;if(t.remove(o,(e=>e==ge))[0]&&!e.altKey)return;if(t.remove(o,(e=>e==me))[0]&&!e.shiftKey)return;if(t.remove(o,(e=>e==Ee))[0]&&!e.metaKey)return;if(!t.map(o,(e=>ye[e]||e)).includes(e.key.toLowerCase()))return}c(e)}};r.addEventListener(a,d);let p=i.__events[a];return p||(p=i.__events[a]=[]),p.push([r,d]),d}const Te="@",Ce=".",_e="?",Se="*",Pe=":",Ne="ref",we=/[.?-a-z]+\s*=\s*(['"])\s*([^='"]*<\!--c_ui-pl_df-->){2,}.*?\1/ims,Ae=/<\s*[a-z0-9-]+([^>]*<\!--c_ui-pl_df-->)*[^>]*?(?<!-)>/gims,De="slot-props";function ke(e,s){let r="",i=t.concat(s.vars),n=s.strings.length-1,o=s.vars.length-1;for(let i=0;i<=n;i++){const n=s.strings[i];let a=t.get(s.vars,i,"");if(a&&a.di){let t=a.render(e);if(t instanceof $e){let[s,r]=ke(e,t);Reflect.defineProperty(a,"_renderVars",{value:r}),a=xe+s+Oe}else a=t??Le}else if(a instanceof $e){let[t,s]=ke(e,a);Reflect.defineProperty(a,"_renderVars",{value:s}),a=Me+t+Re}else a=i>o?"":Le;r+=n+a}if(process.env.DEV){let e=r.match(we);if(e){return l(`Parse error: attribute value can be set only one interpolation —— \n ${t.replaceAll(e[0],Le,"${...}")}`),["",i]}}let a=0;return r=r.replace(Ae,((e,s)=>t.replaceAll(e,Le,(()=>Le.replace("--\x3e","")+a++)))),r=r.replace(We,"$1><").trim(),[r,i]}const xe="\x3c!--c_ui-pl_di-start--\x3e",Oe="\x3c!--c_ui-pl_di-end--\x3e",Me="\x3c!--c_ui-pl_tmpl-start--\x3e",Re="\x3c!--c_ui-pl_tmpl-end--\x3e",Le="\x3c!--c_ui-pl_df--\x3e",Ue="\x3c!--c_ui-pl_df",Ve=/<!--c_ui-pl_df\d*(-->)?/;function je(s,r,i,n,o){const a=document.createElement("div");a.innerHTML=r;const l=document.createNodeIterator(a,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT);let d,p,h=0,u=null,f=[],g=[],m=[],E=[s],y=[],b=[];for(;d=l.nextNode();)if(d instanceof HTMLElement||d instanceof SVGElement){d instanceof W?u=d:u?.contains(d)||(u=null);let r={},o=t.toArray(d.attributes);for(let a=0;a<o.length;a++){const l=o[a];let{name:p,value:f}=l;if(p===De){let e=d.getAttribute("name")||"default";if(u){let t=u._slotsPropMap[e];t||(t=u._slotsPropMap[e]=[]),t.push(d)}}if(t.startsWith(p,Ue)){let t=i[h];if(t instanceof K){t.checkScope(e.EnterPointType.TAG);let r=new G(d,p.substring(1),e.EnterPointType.TAG);t.point=r,t.di.slotComponent=u,t.di.renderComponent=n;let i=new z(h,d);i.isDirective=!0,i.value=t,i.isComponent=!!u,s.push(i),h++,t.di.created(r,...t.args)}d.removeAttribute(p)}else if(p[0]!==Te)if(p!==Ne)if(!process.env.DEV||p[0]!==Ce||Ve.test(f)){if(Ve.test(f)){let o=i[h],a=new z(h,d,p.replace(/\.|\?|@/,""),f);if(a.isComponent=!!u,p[0]===Ce||p[0]===_e||p[0]===Se){if(o instanceof K){o.checkScope(e.EnterPointType.PROP);let t=new G(d,p.substring(1),e.EnterPointType.PROP);o.point=t,o.slotComponent=u,a.value=o,a.isDirective=!0,o&&o.di.created(o.point,...o.args)}else if(p[0]===_e)a.isToggleProp=!0,a.value=!!o,a.value&&d.setAttribute(p.substring(1),"");else if(p[0]===Se){a.value=o;let e=p.substring(1);const[s,r]=e.split(Pe);let i=s;switch(r){case"camel":i=t.camelCase(i);break;case"kebab":i=t.kebabCase(i);break;case"snake":i=t.snakeCase(i)}a.attrName=i,d.setAttribute(i,o)}else if(!process.env.DEV||d instanceof W||"SLOT"===d.tagName){let e=t.camelCase(p.substring(1));process.env.DEV&&!(e in d)&&"SLOT"!==d.tagName&&c(d.tagName,`Prop '${p}' is not defined in ${d.tagName}`),a.value=o,a.isProp=!0,r[e]=o}else c(d.tagName,`Prop '${p}' can only be set on a CompElem or a slot`);d.removeAttribute(p),o=""}else{let s;if(a.value=o,o instanceof K){let t=e.EnterPointType.ATTR;"class"===p?t=e.EnterPointType.CLASS:"style"===p&&(t=e.EnterPointType.STYLE),o.checkScope(t),a.isDirective=!0;let r=new G(d,p,t);o.point=r,o.di.slotComponent=u,o.di.renderComponent=n,s=o,o=""}f=t.replace(f,Ve,o),l.value=f,s&&s.di.created(s.point,...s.args)}s.push(a),h++}}else c(d.tagName,`Prop '${p}' must be an interpolation`);else{if(Ve.test(f)){let e=i[h];if(process.env.DEV&&!t.has(e,"current")){c(d.tagName,"Ref must be a RefObject");continue}h++,e.current=d}d.removeAttribute(p)}else{let e=e=>{};if(Ve.test(f)){let s=i[h];if(process.env.DEV&&!t.isFunction(s)){c(d.tagName,`Event '${p}' must be a function`);continue}e=s.bind(n),h++}ve(p.substring(1),e,d,n),d.removeAttribute(p)}}d instanceof W?(d._initProps(r),d._regWrapper(n)):d instanceof HTMLSlotElement&&n._bindSlot(d,d.name||"default",r)}else{let r=d,a=`\x3c!--${r.nodeValue}--\x3e`;if(a===xe){p&&f.push(p),p=r;let t=i[h],o=new z(h,d);o.isComponent=!!u,o.isDirective=!0,o.value=t;let a=u?e.EnterPointType.SLOT:e.EnterPointType.TEXT,l=new G(p,"",a);t.point=l,t.di.slotComponent=u,t.di.renderComponent=n,g.push(t),s.push(o),m.push(o),s=[],E.push(s),h++,b.push(h),y.push(i),i=t._renderVars,h=0;continue}if(a===Oe){m.pop().textNode=r;let e=g.pop();e.point.endNode=r,e.di.created(e.point,...e.args),p=f.pop(),e.di.__updatePoints=s,E.pop(),s=t.last(E),i=y.pop(),h=b.pop()}else{if(a===Me){p&&f.push(p),p=r;let a=i[h],l=new z(h,d);l.isComponent=!!u,l.isTmpl=!0;let c=t.last(g);(c&&"ForEach"===t.get(c,"diClass.name")||"ForEach"==o.constructor.name)&&(l.key=a.getKey()),a=l.value=new L(a);let v=u?e.EnterPointType.SLOT:e.EnterPointType.TEXT,T=new G(p,"",v);a.point=T,a.slotComponent=u,a.renderComponent=n,g.push(a),s.push(l),m.push(l),s=[],E.push(s),h++,b.push(h),y.push(i),i=a._renderVars,h=0;continue}if(a===Re){m.pop().textNode=r;let e=g.pop();e.point.endNode=r,p=f.pop(),e.__updatePoints=s,E.pop(),s=t.last(E),i=y.pop(),h=b.pop()}}if(a!==Le)continue;let l=new z(h,d);s.push(l),l.isComponent=!!u,l.isText=!0;let c,v=i[h];if(c=document.createComment(`compelem-ui-${h}-child-start`),r.parentNode.insertBefore(c,r),r.nodeValue=`compelem-ui-${h}-child-end`,l.textNode=c,v instanceof K){l.isDirective=!0,l.value=v;let t=u?e.EnterPointType.SLOT:e.EnterPointType.TEXT,s=new G(c,"",t);s.endNode=r,v.point=s,v.di.slotComponent=u,v.di.renderComponent=n,v.di.created(s,...v.args),v=""}else if(v instanceof $e){l.isTmpl=!0,l.value=v;let[e,t]=ke(n,v);v=je(s,e,t,n,o)}else l.value=v;if(h++,t.isUndefined(v))continue;if(v instanceof NodeList){let e=document.createDocumentFragment();e.append(...v),r.parentNode.insertBefore(e,r)}else if(v instanceof Element)r.parentNode.insertBefore(v,r);else if(t.trim(v)){let e=document.createTextNode(v);r.parentNode.insertBefore(e,r)}}return a.childNodes}const Ie={insertBefore:function(e,t){if(!e.parentNode)return;let s=document.createDocumentFragment();s.append(...t),e.parentNode.insertBefore(s,e)},remove:function(e,t){if(e===t)return void e?.parentNode?.removeChild(e);let s=e.nextSibling;for(;s&&s!==t;)s?.parentNode?.removeChild(s),s=e.nextSibling}};function He(e,...s){return new $e(t.isString(e)?[e]:e,s)}const We=/([a-z0-9"'])\s*>\s*</gim;class $e{strings;vars;constructor(e,s){this.strings=t.concat(e),this.vars=s}getKey(){let e=this.vars,s="";return t.each(this.strings,((i,n)=>{if(r.test(i))return s=t.toString(e[n]),!1})),s}getKeys(){let e=this.vars,s=[];for(let i=0;i<this.strings.length;i++){const n=this.strings[i];if(r.test(n)){let r=t.toString(e[i]);s.push(r)}}return t.isEmpty(s)&&e.forEach((e=>{if(e instanceof $e){let t=e.getKey();s.push(t)}})),s}append(e){let s=t.last(this.strings);return e.strings.forEach(((e,t)=>{0!=t?this.strings.push(e):this.strings[this.strings.length-1]=s+e})),this.vars=t.concat(this.vars,e.vars),this}insert(e,t){let s=t.strings.shift();return this.strings[e]+=s,this.strings.splice(e+1,0,...t.strings),this.vars.splice(e,0,...t.vars),this}getHTML(e){let[s,r]=ke(e,this),i=je([],s,r,e,e);return t.reduce(i,((e,t)=>e+t.outerHTML),"")}}const Be=b(class extends u{static get priority(){return Number.MAX_VALUE}created(e,s,r,...i){let n=e[r];e[r]=t.debounce(n,this.wait,this.immediate);let o=Reflect.getPrototypeOf(e);o&&!t.get(o,r+"_$__")&&t.set(o,r+"_$__",n)}beforeMount(e,t,...s){}mounted(e,t,...s){}updated(e,t){}get targets(){return[e.DecoratorType.METHOD]}wait;immediate;result;constructor(e,t=!1){super(),this.wait=e,this.immediate=t}});var Fe;e.QueryCache=void 0,(Fe=e.QueryCache||(e.QueryCache={})).ONCE="once",Fe.UPDATABLE="updatable";class ze extends u{static get priority(){return Number.MAX_VALUE}created(e,t,s,...r){}mounted(e,t,...s){}get targets(){return[e.DecoratorType.FIELD]}selector;cache;result;constructor(e,t){super(),this.selector=e,this.cache=t}static getKey(e){return e}getter(e){this.result=e.shadowRoot?.querySelector(this.selector)}beforeMount(e,t,s,r,...i){const n=this;Reflect.defineProperty(e,r,{get:()=>(n.result&&n.cache||n.getter(e),n.result)})}updated(t,s){this.cache===e.QueryCache.UPDATABLE&&this.getter(t)}}const Ge=b(ze),Ke=b(class extends ze{getter(e){this.result=e.shadowRoot?.querySelectorAll(this.selector)}});function Qe(e,s,r){if(!t.has(e.constructor,n.STATES)){const s={};let r=e.constructor;for(;(r=p(r))!==W;)t.merge(s,r[n.STATES]?t.cloneDeep(r[n.STATES]):{});Reflect.defineProperty(e.constructor,n.STATES,{configurable:!1,enumerable:!1,value:s})}r.shallow=r.shallow||!1,e.constructor[n.STATES][s]=r}class qe extends(R(Object)){_renderArgs;static get scopes(){return[]}renderParams}const Xe=["key"];const Ye=Q(class extends qe{created(e,s){let r=e.startNode;if(r instanceof W){let e={},i={};t.each(s,((t,s)=>{Xe.includes(s)||(s in r?e[s]=t:i[s]=t+"")})),r._initProps(e,i)}else t.each(s,((e,t)=>{r.setAttribute(t,e)}))}update(t,s,r){return e.DirectiveUpdateTag.NONE}static get scopes(){return[e.EnterPointType.TAG]}render(e){}});let Je=0;const Ze=Q(class extends qe{created(e,s){let r=[];t.isArray(s)?r=t.compact(s):t.isObject(s)?r=t.flatMap(s,((e,t)=>e?t:[])):t.isString(s)&&(r=s.split(" "));let i=e.startNode;this.renderComponent.nextTick((()=>{t.each(this.lastCls,(e=>{i.classList.remove(e)})),t.each(r,(e=>{i.classList.add(e)})),this.lastCls=t.concat(r)}),this.classId)}update(t,s,r){return this.created(t,s[0]),e.DirectiveUpdateTag.NONE}constructor(e){super(),this.classId="class_d"+Je++}static get scopes(){return[e.EnterPointType.CLASS]}lastCls;render(e){}});const et=Q(class extends qe{created(e,...t){}update(s,r,i){if(t.isEmpty(s.getNodes())&&(!r||t.isEmpty(r[0])))return e.DirectiveUpdateTag.NONE;if(t.isMatch(this.lastAry,r[0])&&this.lastAry.length===r[0].length)return e.DirectiveUpdateTag.NONE;if(!t.isEmpty(this.renderParams)){let e=t.last(this.renderParams);t.isArray(e)||(e=[e]),this.renderParams=e}return this.lastAry=t.clone(r[0]),e.DirectiveUpdateTag.UPDATE}constructor(e){super(),t.isEmpty(this.renderParams)||(this.renderParams=t.toArray(t.last(this.renderParams)))}static get scopes(){return[e.EnterPointType.TEXT,e.EnterPointType.SLOT]}lastAry;lastRenderTmpl;render(e,s){let i=t.map(e,((e,t)=>s(e,t)));if(i.length<1)return this.lastRenderTmpl=new $e([],[]),this.lastRenderTmpl;let n=[],o=[];const a=[],c=[];for(let e=0;e<i.length;e++){const s=i[e];let d=t.last(o),p=s.vars,h=!0,u=s.strings;for(let e=0;e<u.length;e++){const t=u[e];if(r.test(t)){let t=p[e]+"";if(n.includes(t))return void l(`forEach - duplicate key '${t}'`);n.push(t),h=!1}0==e&&d?o[o.length-1]=d+t:o.push(t)}if(h)return void l("forEach - missing 'key' prop");let f=t.last(a);f&&u.length>0&&(a[a.length-1]=t.trim(f)+u.shift()),a.push(""),c.push(s)}return this.lastAry=t.clone(e),a.push(""),this.lastRenderTmpl=new $e(a,c),this.lastRenderTmpl}});const tt=Q(class extends qe{created(e,...t){}ifNodes;elseNodes;static get scopes(){return[e.EnterPointType.TEXT,e.EnterPointType.SLOT]}update(t,s,r){return!!s[0]==!!r[0]?e.DirectiveUpdateTag.NONE:(s[0],e.DirectiveUpdateTag.REPLACE)}render(e,t,s){return e?t(e):s(e)}});const st=Q(class extends qe{created(e,...t){}static get scopes(){return[e.EnterPointType.TEXT,e.EnterPointType.SLOT]}update(t,s,r){return s[0]===r[0]?e.DirectiveUpdateTag.NONE:s[0]?e.DirectiveUpdateTag.REPLACE:e.DirectiveUpdateTag.REMOVE}render(e,t){return e?t():He``}});var rt;e.ModelTriggerType=void 0,(rt=e.ModelTriggerType||(e.ModelTriggerType={})).CHANGE="change",rt.INPUT="input";const it=Q(class extends qe{created(e,s,r="value"){const i=e.startNode;if("binded"===t.get(i,"_model"))return;let n=t.last(this.renderParams);if(this.updateProp=r,this.modelPath=n,t.isObject(s)||t.trim(s)||(s=""),i instanceof W)i._initProps({[this.updateProp]:s}),i.addEventListener("update:"+r,(e=>{t.set(this.renderComponent,this.modelPath,e.detail.value)})),t.set(i,"_model","binded");else if(i instanceof HTMLTextAreaElement)i.setAttribute(this.updateProp,s+""),i.addEventListener("input",(e=>{let s=e.target;t.set(this.renderComponent,this.modelPath,s.value)})),t.set(i,"_model","binded");else if(i instanceof HTMLInputElement){let e="",n="";switch(i.type){case"checkbox":case"radio":e="checked",n="change";break;default:e="value",n="input"}i.setAttribute(r??e,s+""),i.addEventListener(n,(e=>{let s=e.target;t.set(this.renderComponent,this.modelPath,s.value)})),t.set(i,"_model","binded")}else i instanceof HTMLSelectElement&&(i.setAttribute(this.updateProp,s+""),i.addEventListener("change",(e=>{let s=e.target;t.set(this.renderComponent,this.modelPath,s.value)})),t.set(i,"_model","binded"))}update(s,r,i){if(this.modelPath||(this.modelPath=t.last(this.renderParams)),!t.isEqual(r,i)){const e=s.startNode;if(e instanceof W)e._updateProps({[this.updateProp]:r[0]});else if(e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement)e.setAttribute(this.updateProp,r[0]+"");else if(e instanceof HTMLInputElement)switch(e.type){case"checkbox":case"radio":r[0]?e.setAttribute("checked",""):e.removeAttribute("checked");break;default:e.setAttribute(this.updateProp,r[0]+"")}}return e.DirectiveUpdateTag.NONE}static get scopes(){return[e.EnterPointType.TAG]}modelPath;render(e,t="value"){}});let nt=0;const ot=Q(class extends qe{created(e,s,r){let i=e.startNode;t.isUndefined(this.display)&&(this.display=i.style.display),this.point=e,this.cbk=r,this.visible=s,this.renderComponent.nextTick(this.doChange,this.showId)}visible;cbk;doChange(){let e=this.point.startNode;e.style.display=this.visible?this.display:"none",this.cbk&&this.cbk(e,this.visible)}update(t,s,r){return this.created(t,s[0],s[1]),e.DirectiveUpdateTag.NONE}display=void 0;static get scopes(){return[e.EnterPointType.TAG]}constructor(e){super(),this.point=e,this.doChange=this.doChange.bind(this),this.showId="show_d"+nt++}render(e,t){}});const at=Q(class extends qe{created(e,t,s){t=t.bind(this.renderComponent),this.slotComponent._bindSlotHook(s||"default",t)}update(t,s,r){return e.DirectiveUpdateTag.NONE}static get scopes(){return[e.EnterPointType.SLOT]}render(e,t){}});class lt{static getCssText(e,s=!1){return t.isString(e)?e:t.join(t.map(e,((e,r)=>r.startsWith("--")?r+":"+e+(s?" !important":""):t.kebabCase(r)+":"+e+(s?" !important":""))),";")}static setStyle(e,s){if(t.isString(e)&&!t.trim(e))return{};let r=lt.getCssText(e),i={};return t.each(r.split(";"),(e=>{let r=e.split(":"),n=t.trim(r[0]),o=t.trim(r[1]);i[n]=s.style.getPropertyValue(n),s.style.setProperty(n,o)})),i}}let ct=0;const dt=Q(class extends qe{created(e,t){let s=e.startNode;this.renderComponent.nextTick((()=>{lt.setStyle(t,s)}),this.styleId)}update(t,s,r){return this.created(t,s[0]),e.DirectiveUpdateTag.NONE}constructor(e){super(),this.point=e,this.styleId="style_d"+ct++}static get scopes(){return[e.EnterPointType.STYLE]}render(e){}});const pt=Q(class extends qe{created(e,s){this.modelPath||(this.modelPath=t.last(this.renderParams));const r=e.startNode;let i=e.attrName;r._initProps({[i]:s}),r.addEventListener("update:"+i,(e=>{t.set(this.renderComponent,this.modelPath,e.detail.value)}))}update(s,r,i){if(!t.isEqual(r,i)){const e=s.startNode;let t=s.attrName;e._updateProps({[t]:r[0]})}return e.DirectiveUpdateTag.NONE}static get scopes(){return[e.EnterPointType.PROP]}modelPath;constructor(e){super()}render(e){}});const ht=Q(class extends qe{created(e,...t){}static get scopes(){return[e.EnterPointType.TEXT,e.EnterPointType.SLOT]}update(s,r,i){return t.isEqual(r,i)?e.DirectiveUpdateTag.NONE:e.DirectiveUpdateTag.REPLACE}render(e,s){let r=()=>He``,i=[],n=[];t.each(s,((e,s)=>{if(t.isFunction(e))i.push(s),n.push(e);else{let t=e[0],s=e[1];i.push(t),n.push(s)}"default"===s&&(r=e)}));let o=t.findIndex(i,(s=>t.isFunction(s)?s(e):s==e));return t.call(n[o]??r)}});e.CompElem=W,e.CssHelper=lt,e.Decorator=u,e.DecoratorWrapper=E,e.Directive=qe,e.DirectiveWrapper=K,e.EnterPoint=G,e.GetKeyFnName=f,e.Template=$e,e.UpdatePoint=z,e._DecoratorMap=m,e._DecoratorsKey=g,e._getObservedAttrs=_,e.bind=Ye,e.buildHTML=ke,e.classes=Ze,e.computed=function(e,s,r){r.get||l(`Computed '${s}' must be a getter`),t.has(e.constructor,n.COMPUTED)||(e.constructor[n.COMPUTED]=t.isEmpty(e.constructor[n.COMPUTED])?{}:t.cloneDeep(e.constructor[n.COMPUTED])),e.constructor[n.COMPUTED][s]=r.get},e.createRef=function(e){return{current:e}},e.debounced=Be,e.decorator=b,e.directive=Q,e.event=function(e,s){return(r,i,o)=>{t.has(r.constructor,n.EVENTS)||(r.constructor[n.EVENTS]=t.isEmpty(r.constructor[n.EVENTS])?[]:t.cloneDeep(r.constructor[n.EVENTS])),r.constructor[n.EVENTS].push({name:e,options:s,fn:r[i]})}},e.forEach=et,e.html=He,e.ifElse=tt,e.ifTrue=st,e.makeState=function(e,t,s){Qe(e.prototype,t,s||{prop:""})},e.model=it,e.prop=function(e){if(1===arguments.length)return(t,s,r)=>{e.required=e.required||!1,e.attribute=!1!==e.attribute,T(t,s,e,r)};let s=arguments[0],r=arguments[1],i=arguments[2];e={type:void 0,required:!1,attribute:!0},i&&"function"==typeof i.type&&(e=t.defaults(i,e),i=void 0),T(s,r,e,i)},e.query=Ge,e.queryAll=Ke,e.show=ot,e.slot=at,e.state=function(e){if(1===arguments.length)return(t,s)=>{Qe(t,s,e)};Qe(arguments[0],arguments[1],{prop:""})},e.styles=dt,e.sync=pt,e.tag=function(e){return t=>{if(t){if(t.prototype.hasOwnProperty("attributeChangedCallback")){let e=t.prototype.attributeChangedCallback;t.prototype.attributeChangedCallback=function(t,s,r){W.prototype.attributeChangedCallback.call(this,t,s,r),e.call(this,t,s,r)}}if(t.prototype.hasOwnProperty("connectedCallback")){let e=t.prototype.connectedCallback;t.prototype.connectedCallback=function(){W.prototype.connectedCallback.call(this),e.call(this)}}if(t.prototype.hasOwnProperty("disconnectedCallback")){let e=t.prototype.disconnectedCallback;t.prototype.disconnectedCallback=function(){W.prototype.disconnectedCallback.call(this),e.call(this)}}customElements.define(e,t)}}},e.watch=function(e,s){return(r,i)=>{t.has(r.constructor,n.WATCH)||(r.constructor[n.WATCH]=t.isEmpty(r.constructor[n.WATCH])?{}:t.cloneDeep(r.constructor[n.WATCH]));(t.isArray(e)?e:[e]).forEach((e=>{let o=e.replaceAll(".","-"),a=r.constructor[n.WATCH][o];t.isArray(a)||(a=r.constructor[n.WATCH][o]=[]),a.push({source:e,options:s,handler:r[i]})}))}},e.when=ht,Object.defineProperty(e,"__esModule",{value:!0})}));
package/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * compelem v0.6.6-b1.1753346007
2
+ * compelem v0.6.7-b1.1754064921
3
3
  * A modern, reactive, fast, lightweight and flexible lib for building web components
4
4
  * @holyhigh2
5
5
  * https://github.com/holyhigh2/compelem
6
6
  */
7
- import{toPath as t,some as e,isString as s,isUndefined as r,isBlank as n,get as i,isObject as o,isDefined as a,isEmpty as l,has as c,concat as d,defaults as u,isLowerCaseChar as h,merge as p,cloneDeep as f,each as g,kebabCase as m,toArray as E,last as _,startsWith as b,isFunction as v,isArray as C,initial as N,join as y,split as S,set as T,isEqual as P,replace as w,isPlainObject as A,flatMap as x,test as k,size as M,assign as O,first as R,closest as D,once as L,filter as V,bind as I,camelCase as H,isNil as W,trim as $,isBoolean as j,parseJSON as B,isNull as U,debounce as z,groupBy as G,reject as F,compact as K,remove as X,includes as Q,find as q,throttle as Y,map as Z,replaceAll as J,snakeCase as tt,toString as et,reduce as st,isMatch as rt,clone as nt,findIndex as it,call as ot}from"myfx";const at=new WeakMap,lt=/\s+\.?key\s*=/;var ct,dt,ut,ht;function pt(t){console.error("[CompElem]",t)}function ft(t,e){console.error(`[CompElem <${t}>]`,e)}function gt(e){return t(e).join("-")}function mt(t){return Object.getPrototypeOf(t)}function Et(t){let e=t;return s(t)&&/(?:^true$)|(?:^false$)/.test(e)?e="true"===e:(r(e)||n(e))&&(e=!0),e}!function(t){t[t.CSS=1]="CSS",t[t.COMPUTED=2]="COMPUTED"}(ct||(ct={})),function(t){t.PROPS="__deco_props",t.STATES="__deco_states",t.COMPUTED="__deco_computed",t.WATCH="__deco_watch",t.EVENTS="__deco_events"}(dt||(dt={})),function(t){t.Prod="prod",t.Dev="dev"}(ut||(ut={})),function(t){t.CLASS="class",t.FIELD="field",t.METHOD="method"}(ht||(ht={}));class _t{static get priority(){return 0}}const bt="getKey",vt="__decorators",Ct=new WeakMap;class Nt{args;metadata;decoratorClass;instanceMap;key;priority=0;constructor(t,e,s){this.args=t,this.metadata=e,this.decoratorClass=s,this.priority=i(s,"priority",0),this.instanceMap=new WeakMap}create(t){let e,s=new this.decoratorClass(...this.args),n=s.targets,c=this.metadata[2];o(c)&&a(i(c,"configurable"))?e=ht.METHOD:r(this.metadata[2])&&(e=ht.FIELD),!l(n)&&e&&n.includes(e)?(s.created(t,...this.metadata),this.instanceMap.set(t,s)):pt(`Decorator '${this.decoratorClass.name}' is out of targets, expect '${n.join(",")}' bug got '${e}'`)}beforeMount(t,e){this.instanceMap.get(t).beforeMount(t,e,...this.metadata)}mounted(t,e){this.instanceMap.get(t).mounted(t,e,...this.metadata)}updated(t,e){this.instanceMap.get(t).updated(t,e)}}const yt=new WeakMap;function St(t){let e=(...e)=>(...s)=>{let r=s[0].constructor,n=r[vt];if(!c(r,vt)){let t=Object.getPrototypeOf(r);n=t?d(t[vt]??[]):[],Reflect.defineProperty(r,vt,{configurable:!1,enumerable:!1,value:n})}let i,o={},a=t[bt];if(a){let s=yt.get(t);if(s||(s=new WeakMap,yt.set(t,s)),o=s.get(r),o||(o={},s.set(r,o)),i=a(...e),o[i])return o[i]}let l=new Nt(e,s,t);return o[i]=l,n?.push(l),l};return Ct.set(e,!0),e}const Tt=new WeakMap;function Pt(t){if(1===arguments.length)return(e,s,r)=>{t.required=t.required||!1,t.attribute=!1!==t.attribute,wt(e,s,t,r)};let e=arguments[0],s=arguments[1],r=arguments[2];t={type:void 0,required:!1,attribute:!0},r&&"function"==typeof r.type&&(t=u(r,t),r=void 0),wt(e,s,t,r)}function wt(t,e,s,r){let n;if(h(e[0])||pt(`Prop '${e}' must be in CamelCase`),!c(t.constructor,dt.PROPS)){const e={};let s=t.constructor;for(;(s=mt(s))!==zt;)p(e,s[dt.PROPS]?f(s[dt.PROPS]):{});Reflect.defineProperty(t.constructor,dt.PROPS,{configurable:!1,enumerable:!1,value:e}),n=new Set,g(e,((t,e)=>{if(t.attribute){let t=m(e);n?.add(t)}})),Tt.set(t.constructor,n)}if(r&&(r.get&&(s.getter=r.get),r.set&&(s.setter=r.set)),s.attribute){n||(n=Tt.get(t.constructor));let s=m(e);n?.add(s)}c(t.constructor,"observedAttributes")||(t.constructor.observedAttributes=[]),t.constructor.observedAttributes=E(n),s.shallow=s.shallow||!1,t.constructor[dt.PROPS][e]=s}const At=new Set;function xt(t){return Tt.get(t)??At}const kt={collectWatch(t,e,s){let r=Lt.get(t);r||(r={},Lt.set(t,r));let n=r[s];n||(n=r[s]=[]),n.push(e)},startCollect(t,e){this.__collectType=e,this.__collecting=t},setUpdater(t){this.__updater=t},endCollect(){this.__collecting=null},__directiveQ:[],setDirectiveQ(t){let e=_(this.__directiveQ);const s=t?t.join(","):"",r=e?e.join(","):"";e&&s===r||(e&&e.length<t.length&&b(s,r)?this.__directiveQ[this.__directiveQ.length-1]=t:this.__directiveQ.push(t))},popDirectiveQ(){let t=d(this.__directiveQ);return this.__directiveQ=[],t},startRender(t){this.__renderCollecting=!0,this.__renderContext=t},endRender(t){this.__renderCollection.forEach((e=>{t._regDeps(e,this.__renderContext)})),this.__renderCollection.clear(),this.__renderCollecting=!1,this.__renderContext=null},collect(t){this.__renderCollection.add(t)},clear(){this.__directiveQ=[]},__updater:null,__collecting:null,__collectType:-1,__renderCollection:new Set,__renderContext:null,__renderCollecting:!1,__skipCheck:!1},Mt=new WeakMap,Ot=new WeakMap,Rt=new WeakMap,Dt=new WeakMap,Lt=new WeakMap,Vt=new WeakSet;function It(t,e){if(!o(t))return t;const s=Vt.has(t)?t:new Proxy(t,{get(t,e,s){if(!e)return;const r=Reflect.get(t,e,s);if("string"!=typeof e&&"number"!=typeof e)return r;let n=e in t;if((kt.__renderCollecting||kt.__collecting)&&(n&&t.hasOwnProperty(e)||!n)){let t=Ot.get(s)??[],r=d(t,[e]),n=r.join("-");if(kt.__renderCollecting)kt.collect(gt(r)),kt.setDirectiveQ(r);else if(kt.__collecting){let t;switch(kt.__collectType){case ct.COMPUTED:t=Rt.get(kt.__collecting),t||(t={},Rt.set(kt.__collecting,t));break;case ct.CSS:t=Dt.get(kt.__collecting),t||(t={},Dt.set(kt.__collecting,t))}let e=t[n];e||(e=t[n]=[]),e.push(kt.__updater)}}return r},set(t,e,s,r){if(!e)return!1;let n=t[e];if(!o(n)&&n===s)return!0;if(Number.isNaN(s)&&Number.isNaN(n))return!0;let a=Ot.get(r)??[],c=d(a,[e]),u=Mt.get(r).from,h=i(u.constructor,dt.PROPS),p=i(u.constructor,dt.STATES),f=i(h,[c[0],"hasChanged"])||i(p,[c[0],"hasChanged"]);if(f){if(!f.call(u,s,n))return!0}else if(n===s&&!at.has(n))return!0;h&&h[e]&&t.__isData&&h[e].sync&&u.emit("update:"+e,{value:s});let g=Mt.get(r)?.contextSet,m=s;!o(s)||v(s)||s instanceof Node||Object.isFrozen(s)||g.forEach((t=>{let s=Mt.get(r)?.pathMap,n=s?.get(t);n&&(c=d(n,[e]),Ot.set(m,c),m=It(m,t),Vt.add(m),Ot.set(m,c))}));let E=Reflect.set(t,e,m),_=Mt.get(r).pathMap;return g.forEach((t=>{let s=_.get(t);if(!s)return;t===u&&a.length>1&&s.length>1&&a[0]===s[0]&&(s=a),c=d(s,"length"==e&&C(r)?[]:[e]);let o=Rt.get(t),h=Dt.get(t),p=Lt.get(t);if(o||h||p){let t=c.length;for(;t;){let e=c.slice(0,t).join("-");if(p){const s=p[e];t===c.length?s?.forEach((t=>{let e=t();e.ov=n,Ht.pushWatch(e)})):s?.forEach((t=>{let e=t();i(e,"deep")&&(e.ov=n,Ht.pushWatch(e))}))}if(o){let t=o[e];if(!l(t))for(let e=0;e<t.length;e++){const s=t[e];Ht.pushComputed(s)}}if(h){let t=h[e];if(!l(t))for(let e=0;e<t.length;e++){const s=t[e];Ht.pushCss(s)}}t--}}let f=t._notify(n,c);Ht.pushNext(f)})),E}});Vt.has(s)||Vt.add(s);let r=Ot.get(t)??[];if(Object.isExtensible(t)&&!Mt.get(s)){let t=new Set;t.add(e);let n=new WeakMap;n.set(e,r),Mt.set(s,{from:e,contextSet:t,pathMap:n})}else{Mt.get(s).contextSet.add(e);let t=Mt.get(s).pathMap,n=t.get(e),o=d(r);if(n&&n.join("")!==o.join("")){let t=i(e,N(n));C(t)||function(...t){console.warn("[CompElem]",...t)}(`The object is referenced by more than one @state '${o.join(".")},${n.join(".")}'`),n=o}else t.set(e,o)}let n=i(e.constructor,dt.PROPS),a=i(e.constructor,dt.STATES);for(let s in t){const l=t[s];let c=i(n,[s,"shallow"])||i(a,[s,"shallow"]);!o(l)||Vt.has(l)||v(l)||l instanceof Node||Object.isFrozen(l)||c||(Ot.set(l,d(r,[s])),t[s]=It(l,e),Vt.add(t[s]),Ot.set(t[s],d(r,[s])))}return s}class Ht{static watchSet=new Set;static computedSet=new Set;static cssSet=new Set;static nextSet=new Set;static nextPending=!1;static next;static flush(){Ht.nextPending=!1;let t=Array.from(Ht.watchSet);Ht.watchSet.clear();let e=Array.from(Ht.computedSet);Ht.computedSet.clear();let s=Array.from(Ht.cssSet);Ht.cssSet.clear();let r=Array.from(Ht.nextSet);Ht.nextSet.clear(),t.forEach((t=>t(i(t,"ov")))),e.forEach((t=>t())),s.forEach((t=>t())),r.forEach((t=>t()))}static pushWatch(t){Ht.watchSet.add(t)}static pushComputed(t){Ht.computedSet.add(t)}static pushCss(t){Ht.cssSet.add(t)}static pushNext(t){Ht.nextSet.add(t),Ht.nextPending||(Ht.nextPending=!0,Ht.next())}}function Wt(t){return class extends t{__updatePoints;renderComponent;buildView(t){let e=this instanceof zt?this:this.renderComponent,[s,r]=Oe(e,t),n=[],i=$e(n,s,r,e,this);return this.__updatePoints=n,i}updateView(t){if(n(y(t.strings)))return;if(!this.__updatePoints)return;let{vars:e}=t,s=this instanceof zt?this:this.renderComponent;for(let t=0;t<this.__updatePoints.length;t++){const r=this.__updatePoints[t];let n=r.varIndex;if(n<0)continue;let a=r.value,l=e,c=r.node,d=S(n,"-");for(let e=0;e<d.length;e++){const s=d[e];l=i(l,s),l&&l.vars&&t<d.length-1&&(l=l.vars)}if(!o(a)&&a===l)continue;let u=c;if(r.isDirective){if(!a.di)continue;l.di=a.di,l.di.renderParams=l.varChain,l.di._renderArgs=l.args,l.point=a.point,l.varPath=a.varPath,a.update(a.point,l.args,a.args)}else if(r.isToggleProp){if(!!l===a)continue;u.toggleAttribute(r.attrName,!!l),T(u,r.attrName,!!l)}else if(r.isProp){if(!o(l)&&l===a)continue;c instanceof zt?c._updateProps({[r.attrName]:l}):c instanceof HTMLSlotElement&&s._updateSlot(c.getAttribute("name")||"default",r.attrName,l)}else if(r.attrName&&!r.isEvent){if(!P(a,l))switch(r.attrName){case"value":if(c instanceof HTMLInputElement){c.value=l;break}default:c.setAttribute(r.attrName,w(r.attrTmpl,We,l+""))}}else if(r.isTmpl&&l&&a)a.tmpl&&(l.strings.join()!==a.tmpl.strings.join()||l.vars.some((t=>o(t)&&!A(t)))||a.tmpl.vars.some((t=>o(t)&&!A(t)))||!P(l.vars,a.tmpl.vars))&&r.value.updateView(l),a.tmpl=l,l=a;else if(r.isText){let t=r.textNode.nextSibling;t&&t===r.node.previousSibling?t.textContent=l:(je.remove(r.textNode,r.node),je.insertBefore(r.node,[l]))}r.value=l}}}}(()=>{const t=Promise.resolve(),e=Ht.flush;Ht.next=()=>{t.then(e)}})();class $t extends(Wt(Object)){tmpl;constructor(t){super(),this._renderVars=i(t,"_renderVars"),this.tmpl=t}}const jt={boolean:Boolean,string:String,number:Number,object:Object,array:Array,function:Function,undefined:Object},Bt=new WeakMap;let Ut=[];class zt extends(Wt(HTMLElement)){static __l_globalRule=document.createElement("style");static defaults(t){Ut=x(t.css,(t=>{if(s(t)){let e=new CSSStyleSheet;return e.replaceSync(t),e}return t instanceof CSSStyleSheet?t:[]})),t.global,g(t,((t,e)=>{k(e[0],/[A-Z]/)}))}#t={};#e={"#slots":{}};#s={};#r={};#n;#i={};__events={};get[Symbol.toStringTag](){return this.constructor.name}get reactiveData(){return this.#s}get attrs(){return this.#o}get props(){return this.#a}get renderRoot(){return this.#l}get renderRoots(){return this.#c}get parentComponent(){return this.#d}get wrapperComponent(){return this.#u}get slotHooks(){return this.#h}get css(){return Bt.get(this.constructor)}get isMounted(){return this.#p}get slots(){return this.#e["#slots"]}#o;#a;#l;#c;#d;#u;#f={};#h={};#g={};#p=!1;static get styles(){return[]}static get globalStyles(){return[]}get styles(){return[]}#m=!1;#E=!1;constructor(...t){super(),1===M(t)&&(this.#a={},O(this.#a,R(t)));let e=this.render.bind(this);this.render=function(){let t;return kt.startRender(this),t=e(),kt.endRender(this),t};let r=i(this.constructor,"globalStyles"),n=i(this.constructor,"_global_style_attached");if(!l(r)&&"1"!==n){let t="";r.forEach((e=>{s(e)&&(t+=e+"\n")})),zt.__l_globalRule.textContent+=t,T(this.constructor,"_global_style_attached","1")}let o=Bt.get(this.constructor),a=o??[];o||(g(i(this.constructor,"styles"),(t=>{if(s(t)){let e=new CSSStyleSheet;e.replaceSync(t),a.push(e)}else a.push(t)})),Bt.set(this.constructor,a)),this.#n=this.attachShadow({mode:"open"}),this.#n.adoptedStyleSheets=[...Ut,...a],this._slotsPropMap={default:[]};let c=i(this.constructor,vt);c&&c.sort(((t,e)=>e.priority-t.priority)).forEach((t=>t.create(this))),this.#_=this.#b.bind(this)}#_;connectedCallback(){let t=D(this.parentNode,(t=>t instanceof zt||t.host instanceof zt),"parentNode");this.#d=t?t instanceof zt?t:t.host:null,this.__init()}disconnectedCallback(){}__init(){if(this.#m)return;if(this.#E)return;this.#E=!0,this.#v();const t=this.#C();this.propsReady(t);for(const e in t){const s=t[e];this.#e[e]=s}this.#N(),g(this.#e,((t,e)=>{let s=Reflect.getOwnPropertyDescriptor(this.#e,e);Reflect.defineProperty(this,e,{get(){let t=Reflect.get(this.#s,e);return s?.get?s?.get():t},set(t){s?.set?s?.set(t):Reflect.set(this.#s,e,t)}})})),Reflect.defineProperty(this.#e,"__isData",{enumerable:!1,value:!0}),this.#s=It(this.#e,this);let e=i(this.constructor,dt.COMPUTED);g(e,((t,e)=>{kt.startCollect(this,ct.COMPUTED),kt.setUpdater((()=>{this.#s[e]=t.call(this)})),this.#e[e]=t.call(this),kt.endCollect(),Reflect.defineProperty(this,e,{get(){return Reflect.get(this.#s,e)},set(t){ft(this.tagName,"Cannot set a computed property '"+e+"'")}})}));let s=i(this.constructor,dt.WATCH);g(s,((t,e)=>{t.forEach((t=>{let{source:s,options:r,handler:n}=t,o=n.bind(this);i(r,"once",!1)&&(o=L(o));const a=function(t){let e=i(this,s.replaceAll("-","."));o(e,t,s)}.bind(this);let l=i(r,"deep",!1);if(a.deep=l,kt.collectWatch(this,(()=>a),e),!i(r,"immediate",!1))return;let c=i(this,s.replaceAll("-","."));o(c,c,s)}))}));let r=this.render(),o=this.buildView(r);if(o){let t=E(o);t.forEach((t=>{this.#n.appendChild(t)})),this.#c=V(t,(t=>t.nodeType===Node.ELEMENT_NODE)),this.#l=this.#c[0]}g(this.#h,((t,e)=>{this.#y(e)}));const a=this;let l=i(this.constructor,vt);l&&l.sort(((t,e)=>e.priority-t.priority)).forEach((t=>{t.beforeMount(this,((t,e)=>(a.#s[t]=e,a.#s[t])))})),this.beforeMount();let c=i(this.constructor,dt.EVENTS);c&&c.forEach((async t=>{let e=t.name,s=O({target:document,once:!1,passive:!1,capture:!1},t.options),r=I(t.fn,this),n=s.target;v(n)&&(n=await n.call(this,this)),n?n.addEventListener(e,r,s):ft(this.tagName,"The target of @event('"+e+"',...) is invalid")})),kt.startCollect(this,ct.CSS);let d=[];this.styles.forEach((t=>{if(!v(t))return;let e=new CSSStyleSheet;d.push(e),kt.setUpdater((()=>{let s=t()??"";e.replaceSync(s)}));let s=t();n(s)||e.replaceSync(s)})),kt.endCollect(),d.length>0&&(this.#n.adoptedStyleSheets=[...this.#n.adoptedStyleSheets,...d]),setTimeout((()=>{this.#p=!0,this.mounted(),l&&l.forEach((t=>{t.mounted(this,((t,e)=>(a.#s[t]=e,a.#s[t])))}))}),0),this.#m=!0}propsReady(t){}render(){throw Error(`[CompElem <${this.tagName}>] Missing render()`)}beforeMount(){}mounted(){}#S(t,e){this.#v();let s=i(this.#t[e],"props");s&&g(this.slots,((t,e)=>{t.filter((t=>t.nodeType===Node.ELEMENT_NODE)).forEach((t=>{t instanceof zt?t._updateProps(s):g(s,((e,s)=>{if(t instanceof HTMLSlotElement){let r=i(t,"__l_comp");if(r){let n=t.name||"default",i=r.#t[n];i||(i=r.#t[n]={props:{}}),i.props||(i.props={}),i.props[s]=e,r.#S(t,n)}}else t.setAttribute(s,e)}))}))})),this.slotChange(t,e)}slotChange(t,e){}attributeChangedCallback(t,e,s){this.#T(t,e,s)}shouldUpdate(t){return!0}updated(t){}#P={};_notify(t,e){let s=[];for(let r=0;r<e.length;r++){const n=e[r];s.push(n);let a=i(this,s),l=gt(s);this.#r[l]={value:a,chain:"slots"===l?["slots"]:s,oldValue:t,end:s.length===e.length},o(a)&&"#"!=l[0]&&at.set(a,l)}return this.#_}#b(){if(M(this.#r)<1)return;const t=this.#r;this.#r={};let e=i(this.constructor,vt);if(e&&e.sort(((t,e)=>e.priority-t.priority)).forEach((e=>{e.updated(this,t)})),!this.shouldUpdate(t))return;let s=new Set;g(t,(({value:t,chain:e,oldValue:r},n)=>{this.#i[n]&&this.#i[n].forEach((t=>{s.add(t)}))})),s.forEach((t=>{if(t===this)this.updateView(this.render());else{let e=t.render(...t._renderArgs?t._renderArgs:[]);e&&t.updateView(e)}})),this.#w.forEach((t=>{this.#y(t)})),this.updated(t),g(t,(({value:t,chain:e,oldValue:s},r)=>{o(t)&&at.has(t)&&at.delete(t)}))}#C(){let t=i(this.constructor,dt.PROPS),s=this.attributes,n=this.tagName,l=this.#a,d={};g(s,(({name:e,value:s})=>{if(e[0]===Se||e[0]===Te||e[0]===Pe||e===xe||"slot"===e)return;let r=H(e);t&&!t[r]&&(d[e]=s)})),this.#o=this.#o?O(this.#o,d):d;let u={};if(!t)return Object.seal(u);let h=Object.keys(t),p=h.length;for(let d=0;d<p;d++){const p=h[d];let g,E=t[p],_=c(l,p),b=i(this,p);if(!("_defaultValue"in E)&&(E._defaultValue=b,!E.type)){r(b)&&ft(n,"Prop '"+p+"' has neither propType nor defaultValue be used for type inference");let t=typeof b;C(b)&&(t="array");let e=jt[t];E.type=e}if(_)g=W(l[p])?b:l[p];else{g=b;let t=s.getNamedItem(m(p))||s.getNamedItem(Te+m(p));t&&(_=!0,g=t.value)}if(E.required&&!_){ft(n,"Prop '"+p+"' is required");break}g=this.#A(t,p,g);let v=i(t,[p,"getter"]);v&&(v=I(v,this));let N=i(t,[p,"setter"]);if(N&&(N=I(N,this)),(v||N)&&Reflect.defineProperty(this.#e,p,{set:N||function(t){},get:v}),E.attribute&&a(g)&&!o(g)){let t=m(p),s=$(g);(f=E.type)===Boolean||e(f,(t=>t===Boolean))?(s=Et(g),j(s)?this.toggleAttribute(t,s):this.setAttribute(t,s)):this.setAttribute(t,s)}this.#e[p]=g,u[p]=g}var f;return Object.seal(u)}#x(t,e){let s=t;try{for(let r=0;r<e.length;r++){const n=e[r];s=n===Boolean?Et(t):n===Number?Number(t):n===String?String(t):n===Object||n===Array?B(t):n===Date?new Date(t):new n(t)}}catch(e){ft(this.tagName,"Convert attribute error with "+t)}return s}#A(t,r,n){let i=t[r];if(!i)return n;let o=i.isValid,l=i.type,c=C(l)?l:[l],d=i.converter,u=n;if(!e(c,(t=>t===String))&&s(u)&&!U(u))try{u=d?d(u):this.#x(u,c)}catch(t){ft(this.tagName,`Convert attribute '${r}' error with `+u)}for(let t=0;t<c.length;t++){"Boolean"===c[t].name&&(u=Et(u))}let h=typeof u,p=!a(u);for(let t=0;t<c.length;t++){const e=c[t];if(k(h,e.name,"i")||u instanceof e||Object.prototype.toString.call(u)===Object.prototype.toString.call(e.prototype)){p=!0;break}}return p||ft(this.tagName,`Invalid prop '${r}'. expected '${c.map((t=>t.name||t))}' but got '${h}'`),o&&(o.call(this,u,this.#e)||ft(this.tagName,`Invalid prop '${r}'. IsValid() check failed`)),u}#N(){let t=i(this.constructor,dt.STATES);g(t,((e,s)=>{let r=t[s],n=i(this,s);if(r){let t=r.prop;n=t?f(this.#e[t]):i(this,s)}this.#e[s]=n}))}#k=z(this.propsReady,100);_setParentProps(t,e){if(this.#m){let s=i(this.constructor,dt.PROPS);g(t,((t,e)=>{let r=H(e),n=s[r];if(!n)return;let i=this.#e[r];t=this.#A(s,r,t),n.hasChanged&&!n.hasChanged.call(this,t,i)||(this.#e[r]=t,this._notify(i,[r]))})),O(this.#a,t),O(this.#o,e),this.#k(this.#a)}}_updateProps(t){let e=i(this.constructor,dt.PROPS);g(t,((t,s)=>{let r=H(s);e[r]&&(t=this.#A(e,r,t),kt.__skipCheck=!0,T(this,r,t),kt.__skipCheck=!1)})),O(this.#a,t),this.#k(this.#a)}_initProps(t,e){this.#a=p(this.#a||{},t),this.#o=p({},e)}_bindSlot(t,e,s){if(this.#f[e]||(this.#f[e]=t,Reflect.defineProperty(t,"__l_comp",{value:this})),t.addEventListener("slotchange",(s=>{this.#m&&this.#S(t,"default"===e?"":e)})),!l(s)){let t=this.#t[e];t||(t=this.#t[e]={}),t.props=s}}_bindSlotHook(t,e){this.#h[t]=e}#w=new Set;_updateSlot(t,e,s){let r=this.#f[t],n=this.#h[t];if(!n&&!r)return;let i=this.#t[t];if(e&&(i.props||(i.props={}),i.props[e]=s),n)this.#w.add(t);else{let t=r.assignedElements({flatten:!0});for(let r=0;r<t.length;r++){t[r].setAttribute(e,s+"")}}}#v(){const t=x(this.childNodes,(t=>t.nodeType===Node.COMMENT_NODE?[]:t instanceof HTMLSlotElement?t.assignedNodes({flatten:!0}):t));let e=G(t,(t=>t.nodeType===Node.TEXT_NODE?"default":t instanceof Element?t.getAttribute("slot")||"default":void 0));if(l(e))return void(l(this.#e["#slots"])||(this.#m?this.#s["#slots"]={}:this.#e["#slots"]={}));g(e,((t,e)=>{if(e){for(;t.length>0;){let e=t[0];if(!(e.nodeType===Node.TEXT_NODE&&n(e.textContent)||e instanceof HTMLSlotElement&&l(e.assignedNodes({flatten:!0}))))break;t.shift()}for(;t.length>0;){let e=_(t);if(!(e.nodeType===Node.TEXT_NODE&&n(e.textContent)||e instanceof HTMLSlotElement&&l(e.assignedNodes({flatten:!0}))))break;t.pop()}}}));let s={};g(e,((t,e)=>{l(t)||(s[e]=t)})),this.#m?this.#s["#slots"]=s:this.#e["#slots"]=s}#y(t){let e=this.#h[t];if(!e)return;let s=this.#t[t];if(!this.#e["#slots"][t])return;this.renderAsync(e,i(s,"props"));const r=this._asyncDirectives.get(e);let n=r?.buildView(e(i(s,"props"))),o=F(E(n),(t=>t.nodeType===Node.COMMENT_NODE));if(o){let e=this.#g[t];if(!l(e))for(let t=0;t<e.length;t++){const s=e[t];s.parentNode?.removeChild(s)}this.#g[t]=o,this.append(...o),this.#w.clear()}}_asyncDirectives=new WeakMap;renderAsync(t,...e){}#T(t,e,s){if(!this.isMounted)return;if(xt(this.constructor).has(t)){let e=H(t);if(U(s)){s=i(this.constructor,dt.PROPS)[e]._defaultValue}this._updateProps({[e]:s})}}_regDeps(t,e){let s=this.#i[t];s||(s=this.#i[t]=new Set),s.add(e);let r=t.split("-");if(r.pop(),r.length<1)return;let n=r.join("-");s=this.#i[n],s||(s=this.#i[n]=new Set),s.add(e)}_regWrapper(t){this.#u=t}emit(t,e={},s){s&&s.event&&(e.event=s.event),e.target=this,this.dispatchEvent(new CustomEvent(t,{bubbles:i(s,"bubbles",!1),composed:i(s,"composed",!1),cancelable:!0,detail:e}))}on(t,e){this.#P[t]||(this.#P[t]=[]);let s=e.bind(this);this.#P[t].push(s),this.addEventListener(t,s)}nextTick(t){Ht.pushNext(t)}forceUpdate(){g(this.#s,((t,e)=>{this.#r[e]={value:void 0,chain:void 0}})),this.#b()}}var Gt,Ft,Kt;document.head.appendChild(zt.__l_globalRule),function(t){t.NONE="NONE",t.REMOVE="REMOVE",t.REPLACE="REPLACE",t.UPDATE="UPDATE",t.APPEND="APPEND"}(Gt||(Gt={}));class Xt{key;varIndex;value;isText=!1;isTmpl=!1;isDirective=!1;node;textNode;isComponent=!1;attrName;attrTmpl;isProp=!1;isToggleProp=!1;isEvent;constructor(t,e,s,r){this.varIndex=t,this.node=e,s&&(this.attrName=s),r&&(this.attrTmpl=r)}}!function(t){t.ATTR="attr",t.PROP="prop",t.TEXT="text",t.CLASS="class",t.STYLE="style",t.SLOT="slot",t.TAG="tag"}(Ft||(Ft={}));class Qt{startNode;endNode;type;attrName;varIndex;expressionChain;nodes;constructor(t,e,s){this.startNode=t,this.attrName=e,this.type=s}setVarIndex(t){this.varIndex=t}getNodes(){let t=this.startNode.nextSibling;if(!this.endNode)return[t];let e=[];for(;t&&t!==this.endNode;)e.push(t),t=t?.nextSibling;return e}}!function(t){t.AFTER_BEGIN="afterbegin"}(Kt||(Kt={}));class qt{diClass;args;di;varPath;point;slotComponent;varChain;constructor(t,...e){this.diClass=t,this.args=e,this.varChain=kt.popDirectiveQ(),this.di=new this.diClass,this.di.renderParams=this.varChain}checkScope(t){let e=i(this.diClass,"scopes");l(e)||k(e.join(","),t)||pt(`Directive '${this.diClass.name}' is out of scopes, expect '${e.join(",")}' bug got '${t}'`)}render(t){let e=this.di;return e.renderComponent||(e.renderComponent=t),this.di=e,e._renderArgs=this.args,this.di.render(...this.args)}update(t,e,s){let r=this.di.update(t,e,s);if(r===Gt.NONE)return;let n=t.getNodes();if(r===Gt.REMOVE)for(let t=0;t<n.length;t++){const e=n[t];e.parentNode?.removeChild(e)}else if(r===Gt.REPLACE){let s=[];for(let t=0;t<n.length;t++){const e=n[t];e.parentNode?.removeChild(e)}let r=this.di.render(...e),i=this.di.buildView(r);s=E(i);let o=document.createDocumentFragment();o.append(...s),t.endNode.parentNode.insertBefore(o,t.endNode)}else if(r===Gt.UPDATE){let s,r={},i=[],o=[],a=this.di.render(...e);if(a||(a=new Ge([],[])),l(n)){let e=this.di.buildView(a);return void t.startNode.after(...e)}let c={};a instanceof Ge&&a.vars.forEach((t=>{if(t instanceof Ge){const e=t.getKey();c[e]=t,r[e]=!0,o.push(e)}})),n=V(K(n),(t=>t.nodeType===Node.ELEMENT_NODE)),s=V(K(E(s)),(t=>t.nodeType===Node.ELEMENT_NODE));let d={},u="",h={};for(let t=0;t<n.length;t++){let e=n[t],s=e.getAttribute("key");if(s){if(d[s]){u=s;break}d[s]=e,i.push(s),h[s]=!0}}if(u)return void pt(`${H(this.diClass.name)} - duplicate key '${u}'`);let p=r;const f=t.startNode.parentNode;let m=[],b=[];if(g(h,((t,e)=>{p[e]||(b.push(e),delete h[e],X(i,(t=>t===e)))})),!l(o)){let e=-1,s=[],r=[],n=0,a=0;for(;a<o.length;a++){const l=o[a];let c=i.findIndex((t=>t===l));if(c<0){let e=o[a-1],s=e?d[e]||e:t.startNode;m.push({prevNode:s,newkey:l}),n++}else if(c>-1&&c!==a-n){if(e<0||1===Math.abs(e-c)){let t=_(s);s.push({nodeId:l,targetId:0===a?Kt.AFTER_BEGIN:t?t.nodeId:o[a-1]})}else r.push({moveGroup:s,moveIndex:a+s.length}),s=[],s.push({nodeId:l,targetId:o[a-1]});e=c}}if(s.length>0&&r.push({moveGroup:s,moveIndex:a+s.length}),r.length>0){let e=r.sort(((t,e)=>t.moveGroup.length-e.moveGroup.length));if(e.length<2){let{moveGroup:s}=e[0];if(s.length>1){let t=_(s).targetId;s[s.length-2].nodeId===t&&(s=N(s))}s.forEach((({targetId:e,nodeId:s})=>{let r,n=d[s];e===Kt.AFTER_BEGIN?(r=t.startNode,r.after(n)):(r=d[e],r.after(n))}))}else{let s=_(e).moveIndex;1===Math.abs(e[e.length-2].moveIndex-s)&&(e=N(e)),e.forEach((({moveGroup:e})=>{e.forEach((({targetId:e,nodeId:s})=>{let r,n=d[s];e===Kt.AFTER_BEGIN?(r=t.startNode,r.after(n)):(r=d[e],r.after(n))}))}))}}}m.length>0&&this.#M(m,c,o),m.forEach((e=>{let s=e.newkey,r=this.newNodeMap[s],n=e.prevNode;n===t.endNode?n.before(r):n===t.startNode?n.after(r):"string"==typeof n?this.newNodeMap[n].after(r):n.after(r)})),b.forEach((t=>{let e=d[t];e&&e.parentNode&&f.removeChild(e)})),this.di.__updatePoints.forEach((t=>{t.key||(t.key=t.value.tmpl.getKey());const e=o.findIndex((e=>e==t.key));t.varIndex=e})),this.di.updateView(a)}}getDirective(){return this.di}newNodeMap={};#M(t,e,s){const r=[],n=[];t.forEach((t=>{let s=t.newkey;r.push(""),n.push(e[s])})),r.push("");let i=new Ge(r,n),o=this.di.__updatePoints,a=this.di.buildView(i),l=new Map;this.di.__updatePoints.forEach(((t,e)=>{const s=t.value.tmpl.getKey();t.key=s,l.set(s,!0)})),o.forEach(((t,e)=>{const s=t.key??t.value.tmpl.getKey();l.get(s)||this.di.__updatePoints.push(t)})),a.forEach((t=>{t instanceof HTMLElement&&(this.newNodeMap[t.getAttribute("key")]=t)}))}}function Yt(t){return(...e)=>{let s=null;return e.forEach(((t,r)=>{if(v(t)){let n=t;e[r]=function(...t){let e=s.di;kt.startRender(e);let r=n.call(e.renderComponent,...t);return kt.endRender(e.renderComponent),r}}})),s=new qt(t,...e),s}}const Zt=["resize","outside","mutate"],Jt=new WeakMap,te=[],ee=[],se=[],re=new ResizeObserver((t=>{for(const e of t){const t=Array.isArray(e.contentBoxSize)?e.contentBoxSize[0]:e.contentBoxSize,s=Array.isArray(e.borderBoxSize)?e.borderBoxSize[0]:e.borderBoxSize;let r=Jt.get(e.target);if(r){r(new CustomEvent("resize",{bubbles:!1,cancelable:!1,detail:{borderBox:{w:s.inlineSize,h:s.blockSize},contentBox:{w:t.inlineSize,h:t.blockSize}}}),e.target)}}}));var ne;!function(t){t.Child="child",t.Tree="tree",t.Attr="attr",t.Char="char"}(ne||(ne={}));const ie=new WeakMap,oe=new MutationObserver((t=>{for(let e=0;e<t.length;e++){const s=t[e];let r=ie.get(s.target);if(!r)return;let n={target:s.target},i=null;switch(s.type){case"subtree":n.type=ne.Tree,i=r[ne.Tree];break;case"childList":n.type=ne.Child,n.addedNodes=s.addedNodes,n.removedNodes=s.removedNodes,i=r[ne.Child];break;case"attributes":n.type=ne.Attr,n.attributeName=s.attributeName,n.oldValue=s.oldValue,i=r[ne.Attr];break;case"characterData":n.type=ne.Char,n.oldValue=s.oldValue,i=r[ne.Char]}if(i){i(new CustomEvent("mutate",{bubbles:!1,cancelable:!1,detail:n}))}}}));function ae(t,e,s,r){if("resize"===t)!function(t,e){Jt.has(t)||(Jt.set(t,e),re.observe(t))}(e,s);else if("outside"===t)switch(r[0]){case"mousedown":!function(t,e){te.push([t,e])}(e,s);break;case"dblclick":!function(t,e){se.push([t,e])}(e,s);break;default:!function(t,e){ee.push([t,e])}(e,s)}else"mutate"===t&&function(t,e,s){let r=Q(s,"child"),n=Q(s,"attr"),i=Q(s,"char"),o=Q(s,"tree"),a=ie.get(t);a||(a={},ie.set(t,a),r&&(a[ne.Child]=e),n&&(a[ne.Attr]=e),i&&(a[ne.Char]=e),o&&(a[ne.Tree]=e),oe.observe(t,{childList:r,attributes:n,characterData:i,subtree:o}))}(e,s,r)}document.addEventListener("mousedown",(t=>{let e=i(t.composedPath(),0,t.target);te.forEach((([s,r])=>{if(!s.contains(e)&&!s.contains(D(e,(t=>t instanceof ShadowRoot),"parentNode")?.host)){r(new CustomEvent("outside",{bubbles:!1,cancelable:!1,detail:{currentTarget:s,event:t}}),s)}}))}),!1),document.addEventListener("click",(t=>{let e=i(t.composedPath(),0,t.target);ee.forEach((([s,r])=>{if(!s.contains(e)&&!s.contains(D(e,(t=>t instanceof ShadowRoot),"parentNode")?.host)){r(new CustomEvent("outside",{bubbles:!1,cancelable:!1,detail:{currentTarget:s,event:t}}),s)}}))}),!1),document.addEventListener("dblclick",(t=>{let e=i(t.composedPath(),0,t.target);se.forEach((([s,r])=>{if(!s.contains(e)&&!s.contains(D(e,(t=>t instanceof ShadowRoot),"parentNode")?.host)){r(new CustomEvent("outside",{bubbles:!1,cancelable:!1,detail:{currentTarget:s,event:t}}),s)}}))}),!1);const le=/,|^(debounce:.+)|(debounce$)/,ce=/,|^(throttle:.+)|(throttle$)/,de="self",ue="stop",he="prevent",pe="once",fe="left",ge="right",me="middle",Ee="ctrl",_e="alt",be="shift",ve="meta",Ce={esc:"escape"},Ne=":";function ye(t,e,s,r){let n,i=t.split("."),o=i.shift(),a=i.includes(pe),l=e;if(n=q(i,(t=>le.test(t)))){let t=n.split(Ne);l=z(l,parseInt(t[1])||100)}if(n=q(i,(t=>ce.test(t)))){let t=n.split(Ne);l=Y(l,parseInt(t[1])||100)}if(a&&(l=L(l)),function(t){return Zt.includes(t)}(o))return ae(o,s,l,i),l;let c=t=>{if(i.includes(he)&&t.preventDefault(),i.includes(ue)&&t.stopPropagation(),!i.includes(de)||t.target===t.currentTarget){if(t instanceof MouseEvent){if(i.includes(fe)&&0!=t.button)return;if(i.includes(ge)&&2!=t.button)return;if(i.includes(me)&&1!=t.button)return}else if(t instanceof KeyboardEvent){if(X(i,(t=>t==Ee))[0]&&!t.ctrlKey)return;if(X(i,(t=>t==_e))[0]&&!t.altKey)return;if(X(i,(t=>t==be))[0]&&!t.shiftKey)return;if(X(i,(t=>t==ve))[0]&&!t.metaKey)return;if(!Z(i,(t=>Ce[t]||t)).includes(t.key.toLowerCase()))return}l(t)}};s.addEventListener(o,c);let d=r.__events[o];return d||(d=r.__events[o]=[]),d.push([s,c]),c}const Se="@",Te=".",Pe="?",we="*",Ae=":",xe="ref",ke=/<\s*[a-z0-9-]+([^>]*<\!--c_ui-pl_df-->)*[^>]*?(?<!-)>/gims,Me="slot-props";function Oe(t,e){let s="",r=d(e.vars),n=e.strings.length-1,o=e.vars.length-1;for(let r=0;r<=n;r++){const n=e.strings[r];let a=i(e.vars,r,"");if(a&&a.di){let e=a.render(t);if(e instanceof Ge){let[s,r]=Oe(t,e);Reflect.defineProperty(a,"_renderVars",{value:r}),a=Re+s+De}else a=e??Ie}else if(a instanceof Ge){let[e,s]=Oe(t,a);Reflect.defineProperty(a,"_renderVars",{value:s}),a=Le+e+Ve}else a=r>o?"":Ie;s+=n+a}let a=0;return s=s.replace(ke,((t,e)=>J(t,Ie,(()=>Ie.replace("--\x3e","")+a++)))),s=s.replace(Ue,"$1><").trim(),[s,r]}const Re="\x3c!--c_ui-pl_di-start--\x3e",De="\x3c!--c_ui-pl_di-end--\x3e",Le="\x3c!--c_ui-pl_tmpl-start--\x3e",Ve="\x3c!--c_ui-pl_tmpl-end--\x3e",Ie="\x3c!--c_ui-pl_df--\x3e",He="\x3c!--c_ui-pl_df",We=/<!--c_ui-pl_df\d*(-->)?/;function $e(t,e,s,n,o){const a=document.createElement("div");a.innerHTML=e;const l=document.createNodeIterator(a,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT);let d,u,h=0,p=null,f=[],g=[],C=[],N=[t],y=[],S=[];for(;d=l.nextNode();)if(d instanceof HTMLElement||d instanceof SVGElement){d instanceof zt?p=d:p?.contains(d)||(p=null);let e={},r=E(d.attributes);for(let i=0;i<r.length;i++){const o=r[i];let{name:a,value:l}=o;if(a===Me){let t=d.getAttribute("name")||"default";if(p){let e=p._slotsPropMap[t];e||(e=p._slotsPropMap[t]=[]),e.push(d)}}if(b(a,He)){let e=s[h];if(e instanceof qt){e.checkScope(Ft.TAG);let s=new Qt(d,a.substring(1),Ft.TAG);e.point=s,e.di.slotComponent=p,e.di.renderComponent=n;let r=new Xt(h,d);r.isDirective=!0,r.value=e,r.isComponent=!!p,t.push(r),h++,e.di.created(s,...e.args)}d.removeAttribute(a)}else if(a[0]!==Se)if(a!==xe)if(a[0]!==Te||We.test(l)){if(We.test(l)){let r=s[h],i=new Xt(h,d,a.replace(/\.|\?|@/,""),l);if(i.isComponent=!!p,a[0]===Te||a[0]===Pe||a[0]===we){if(r instanceof qt){r.checkScope(Ft.PROP);let t=new Qt(d,a.substring(1),Ft.PROP);r.point=t,r.slotComponent=p,i.value=r,i.isDirective=!0,r&&r.di.created(r.point,...r.args)}else if(a[0]===Pe)i.isToggleProp=!0,i.value=!!r,i.value&&d.setAttribute(a.substring(1),"");else if(a[0]===we){i.value=r;let t=a.substring(1);const[e,s]=t.split(Ae);let n=e;switch(s){case"camel":n=H(n);break;case"kebab":n=m(n);break;case"snake":n=tt(n)}i.attrName=n,d.setAttribute(n,r)}else if(d instanceof zt||"SLOT"===d.tagName){let t=H(a.substring(1));t in d||"SLOT"===d.tagName||ft(d.tagName,`Prop '${a}' is not defined in ${d.tagName}`),i.value=r,i.isProp=!0,e[t]=r}else ft(d.tagName,`Prop '${a}' can only be set on a CompElem or a slot`);d.removeAttribute(a),r=""}else{let t;if(i.value=r,r instanceof qt){let e=Ft.ATTR;"class"===a?e=Ft.CLASS:"style"===a&&(e=Ft.STYLE),r.checkScope(e),i.isDirective=!0;let s=new Qt(d,a,e);r.point=s,r.di.slotComponent=p,r.di.renderComponent=n,t=r,r=""}l=w(l,We,r),o.value=l,t&&t.di.created(t.point,...t.args)}t.push(i),h++}}else ft(d.tagName,`Prop '${a}' must be an interpolation`);else{if(We.test(l)){let t=s[h];if(!c(t,"current")){ft(d.tagName,"Ref must be a RefObject");continue}h++,t.current=d}d.removeAttribute(a)}else{let e=t=>{};if(We.test(l)){let r=s[h];if(!v(r)){ft(d.tagName,`Event '${a}' must be a function`);continue}e=r.bind(n);let i=new Xt(h,d,a.replace(/\.|\?|@/,""),l);i.isComponent=!!p,i.isEvent=!0,t.push(i),h++}ye(a.substring(1),e,d,n),d.removeAttribute(a)}}d instanceof zt?(d._initProps(e),d._regWrapper(n)):d instanceof HTMLSlotElement&&n._bindSlot(d,d.name||"default",e)}else{let e=d,a=`\x3c!--${e.nodeValue}--\x3e`;if(a===Re){u&&f.push(u),u=e;let r=s[h],i=new Xt(h,d);i.isComponent=!!p,i.isDirective=!0,i.value=r;let o=p?Ft.SLOT:Ft.TEXT,a=new Qt(u,"",o);r.point=a,r.di.slotComponent=p,r.di.renderComponent=n,g.push(r),t.push(i),C.push(i),t=[],N.push(t),h++,S.push(h),y.push(s),s=r._renderVars,h=0;continue}if(a===De){C.pop().textNode=e;let r=g.pop();r.point.endNode=e,r.di.created(r.point,...r.args),u=f.pop(),r.di.__updatePoints=t,N.pop(),t=_(N),s=y.pop(),h=S.pop()}else{if(a===Le){u&&f.push(u),u=e;let r=s[h],a=new Xt(h,d);a.isComponent=!!p,a.isTmpl=!0;let l=_(g);(l&&"ForEach"===i(l,"diClass.name")||"ForEach"==o.constructor.name)&&(a.key=r.getKey()),r=a.value=new $t(r);let c=p?Ft.SLOT:Ft.TEXT,m=new Qt(u,"",c);r.point=m,r.slotComponent=p,r.renderComponent=n,g.push(r),t.push(a),C.push(a),t=[],N.push(t),h++,S.push(h),y.push(s),s=r._renderVars,h=0;continue}if(a===Ve){C.pop().textNode=e;let r=g.pop();r.point.endNode=e,u=f.pop(),r.__updatePoints=t,N.pop(),t=_(N),s=y.pop(),h=S.pop()}}if(a!==Ie)continue;let l=new Xt(h,d);t.push(l),l.isComponent=!!p,l.isText=!0;let c,m=s[h];if(c=document.createComment(`compelem-ui-${h}-child-start`),e.parentNode.insertBefore(c,e),e.nodeValue=`compelem-ui-${h}-child-end`,l.textNode=c,m instanceof qt){l.isDirective=!0,l.value=m;let t=p?Ft.SLOT:Ft.TEXT,s=new Qt(c,"",t);s.endNode=e,m.point=s,m.di.slotComponent=p,m.di.renderComponent=n,m.di.created(s,...m.args),m=""}else if(m instanceof Ge){l.isTmpl=!0,l.value=m;let[e,s]=Oe(n,m);m=$e(t,e,s,n,o)}else l.value=m;if(h++,r(m))continue;if(m instanceof NodeList){let t=document.createDocumentFragment();t.append(...m),e.parentNode.insertBefore(t,e)}else if(m instanceof Element)e.parentNode.insertBefore(m,e);else if($(m)){let t=document.createTextNode(m);e.parentNode.insertBefore(t,e)}}return a.childNodes}const je={insertBefore:function(t,e){if(!t.parentNode)return;let s=document.createDocumentFragment();s.append(...e),t.parentNode.insertBefore(s,t)},remove:function(t,e){if(t===e)return void t?.parentNode?.removeChild(t);let s=t.nextSibling;for(;s&&s!==e;)s?.parentNode?.removeChild(s),s=t.nextSibling}};function Be(t,...e){return new Ge(s(t)?[t]:t,e)}const Ue=/([a-z0-9"'])\s*>\s*</gim;function ze(t){return{current:t}}class Ge{strings;vars;constructor(t,e){this.strings=d(t),this.vars=e}getKey(){let t=this.vars,e="";return g(this.strings,((s,r)=>{if(lt.test(s))return e=et(t[r]),!1})),e}getKeys(){let t=this.vars,e=[];for(let s=0;s<this.strings.length;s++){const r=this.strings[s];if(lt.test(r)){let r=et(t[s]);e.push(r)}}return l(e)&&t.forEach((t=>{if(t instanceof Ge){let s=t.getKey();e.push(s)}})),e}append(t){let e=_(this.strings);return t.strings.forEach(((t,s)=>{0!=s?this.strings.push(t):this.strings[this.strings.length-1]=e+t})),this.vars=d(this.vars,t.vars),this}insert(t,e){let s=e.strings.shift();return this.strings[t]+=s,this.strings.splice(t+1,0,...e.strings),this.vars.splice(t,0,...e.vars),this}getHTML(t){let[e,s]=Oe(t,this),r=$e([],e,s,t,t);return st(r,((t,e)=>t+e.outerHTML),"")}}function Fe(t,e,s){s.get||pt(`Computed '${e}' must be a getter`),c(t.constructor,dt.COMPUTED)||(t.constructor[dt.COMPUTED]=l(t.constructor[dt.COMPUTED])?{}:f(t.constructor[dt.COMPUTED])),t.constructor[dt.COMPUTED][e]=s.get}const Ke=St(class extends _t{static get priority(){return Number.MAX_VALUE}created(t,e,s,...r){let n=t[s];t[s]=z(n,this.wait,this.immediate);let o=Reflect.getPrototypeOf(t);o&&!i(o,s+"_$__")&&T(o,s+"_$__",n)}beforeMount(t,e,...s){}mounted(t,e,...s){}updated(t,e){}get targets(){return[ht.METHOD]}wait;immediate;result;constructor(t,e=!1){super(),this.wait=t,this.immediate=e}});function Xe(t,e){return(s,r,n)=>{c(s.constructor,dt.EVENTS)||(s.constructor[dt.EVENTS]=l(s.constructor[dt.EVENTS])?[]:f(s.constructor[dt.EVENTS])),s.constructor[dt.EVENTS].push({name:t,options:e,fn:s[r]})}}var Qe;!function(t){t.ONCE="once",t.UPDATABLE="updatable"}(Qe||(Qe={}));class qe extends _t{static get priority(){return Number.MAX_VALUE}created(t,e,s,...r){}mounted(t,e,...s){}get targets(){return[ht.FIELD]}selector;cache;result;constructor(t,e){super(),this.selector=t,this.cache=e}static getKey(t){return t}getter(t){this.result=t.shadowRoot?.querySelector(this.selector)}beforeMount(t,e,s,r,...n){const i=this;Reflect.defineProperty(t,r,{get:()=>(i.result&&i.cache||i.getter(t),i.result)})}updated(t,e){this.cache===Qe.UPDATABLE&&this.getter(t)}}const Ye=St(qe),Ze=St(class extends qe{getter(t){this.result=t.shadowRoot?.querySelectorAll(this.selector)}});function Je(t){if(1===arguments.length)return(e,s)=>{ts(e,s,t)};ts(arguments[0],arguments[1],{prop:""})}function ts(t,e,s){if(!c(t.constructor,dt.STATES)){const e={};let s=t.constructor;for(;(s=mt(s))!==zt;)p(e,s[dt.STATES]?f(s[dt.STATES]):{});Reflect.defineProperty(t.constructor,dt.STATES,{configurable:!1,enumerable:!1,value:e})}s.shallow=s.shallow||!1,t.constructor[dt.STATES][e]=s}function es(t,e,s){ts(t.prototype,e,s||{prop:""})}function ss(t){return e=>{if(e){if(e.prototype.hasOwnProperty("attributeChangedCallback")){let t=e.prototype.attributeChangedCallback;e.prototype.attributeChangedCallback=function(e,s,r){zt.prototype.attributeChangedCallback.call(this,e,s,r),t.call(this,e,s,r)}}if(e.prototype.hasOwnProperty("connectedCallback")){let t=e.prototype.connectedCallback;e.prototype.connectedCallback=function(){zt.prototype.connectedCallback.call(this),t.call(this)}}if(e.prototype.hasOwnProperty("disconnectedCallback")){let t=e.prototype.disconnectedCallback;e.prototype.disconnectedCallback=function(){zt.prototype.disconnectedCallback.call(this),t.call(this)}}customElements.define(t,e)}}}function rs(t,e){return(s,r)=>{c(s.constructor,dt.WATCH)||(s.constructor[dt.WATCH]=l(s.constructor[dt.WATCH])?{}:f(s.constructor[dt.WATCH]));(C(t)?t:[t]).forEach((t=>{let n=t.replaceAll(".","-"),i=s.constructor[dt.WATCH][n];C(i)||(i=s.constructor[dt.WATCH][n]=[]),i.push({source:t,options:e,handler:s[r]})}))}}class ns extends(Wt(Object)){_renderArgs;static get scopes(){return[]}renderParams}const is=["key"];const os=Yt(class extends ns{created(t,e){let s=t.startNode;if(s instanceof zt){let t={},r={};g(e,((e,n)=>{is.includes(n)||(n in s?t[n]=e:r[n]=e+"")})),s._initProps(t,r)}else g(e,((t,e)=>{s.setAttribute(e,t)}))}update(t,e,s){return Gt.NONE}static get scopes(){return[Ft.TAG]}render(t){}});const as=Yt(class extends ns{created(t,e){let r=[];C(e)?r=K(e):o(e)?r=x(e,((t,e)=>t?e:[])):s(e)&&(r=e.split(" "));let n=t.startNode;g(this.lastCls,(t=>{n.classList.remove(t)})),g(r,(t=>{n.classList.add(t)})),this.lastCls=d(r)}update(t,e,s){return this.created(t,e[0]),Gt.NONE}static get scopes(){return[Ft.CLASS]}lastCls;render(t){}});const ls=Yt(class extends ns{created(t,...e){}update(t,e,s){if(l(t.getNodes())&&(!e||l(e[0])))return Gt.NONE;if(rt(this.lastAry,e[0])&&this.lastAry.length===e[0].length)return Gt.NONE;if(!l(this.renderParams)){let t=_(this.renderParams);C(t)||(t=[t]),this.renderParams=t}return this.lastAry=nt(e[0]),Gt.UPDATE}constructor(t){super(),l(this.renderParams)||(this.renderParams=E(_(this.renderParams)))}static get scopes(){return[Ft.TEXT,Ft.SLOT]}lastAry;lastRenderTmpl;render(t,e){let s=Z(t,((t,s)=>e(t,s)));if(s.length<1)return this.lastRenderTmpl=new Ge([],[]),this.lastRenderTmpl;let r=[],n=[];const i=[],o=[];for(let t=0;t<s.length;t++){const e=s[t];let a=_(n),l=e.vars,c=!0,d=e.strings;for(let t=0;t<d.length;t++){const e=d[t];if(lt.test(e)){let e=l[t]+"";if(r.includes(e))return void pt(`forEach - duplicate key '${e}'`);r.push(e),c=!1}0==t&&a?n[n.length-1]=a+e:n.push(e)}if(c)return void pt("forEach - missing 'key' prop");let u=_(i);u&&d.length>0&&(i[i.length-1]=$(u)+d.shift()),i.push(""),o.push(e)}return this.lastAry=nt(t),i.push(""),this.lastRenderTmpl=new Ge(i,o),this.lastRenderTmpl}});const cs=Yt(class extends ns{created(t,...e){}ifNodes;elseNodes;static get scopes(){return[Ft.TEXT,Ft.SLOT]}update(t,e,s){return!!e[0]==!!s[0]?Gt.NONE:(e[0],Gt.REPLACE)}render(t,e,s){return t?e(t):s(t)}});const ds=Yt(class extends ns{created(t,...e){}static get scopes(){return[Ft.TEXT,Ft.SLOT]}update(t,e,s){return e[0]===s[0]?Gt.NONE:e[0]?Gt.REPLACE:Gt.REMOVE}render(t,e){return t?e():Be``}});var us;!function(t){t.CHANGE="change",t.INPUT="input"}(us||(us={}));const hs=Yt(class extends ns{created(t,e,s="value"){const r=t.startNode;if("binded"===i(r,"_model"))return;let n=_(this.renderParams);if(this.updateProp=s,this.modelPath=n,o(e)||$(e)||(e=""),r instanceof zt)r._initProps({[this.updateProp]:e}),r.addEventListener("update:"+s,(t=>{T(this.renderComponent,this.modelPath,t.detail.value)})),T(r,"_model","binded");else if(r instanceof HTMLTextAreaElement)r.setAttribute(this.updateProp,e+""),r.addEventListener("input",(t=>{let e=t.target;T(this.renderComponent,this.modelPath,e.value)})),T(r,"_model","binded");else if(r instanceof HTMLInputElement){let t="",n="";switch(r.type){case"checkbox":case"radio":t="checked",n="change";break;default:t="value",n="input"}r.setAttribute(s??t,e+""),r.addEventListener(n,(t=>{let e=t.target;T(this.renderComponent,this.modelPath,e.value)})),T(r,"_model","binded")}else r instanceof HTMLSelectElement&&(r.setAttribute(this.updateProp,e+""),r.addEventListener("change",(t=>{let e=t.target;T(this.renderComponent,this.modelPath,e.value)})),T(r,"_model","binded"))}update(t,e,s){if(this.modelPath||(this.modelPath=_(this.renderParams)),!P(e,s)){const s=t.startNode;if(s instanceof zt)s._updateProps({[this.updateProp]:e[0]});else if(s instanceof HTMLTextAreaElement||s instanceof HTMLSelectElement)s.setAttribute(this.updateProp,e[0]+"");else if(s instanceof HTMLInputElement)switch(s.type){case"checkbox":case"radio":e[0]?s.setAttribute("checked",""):s.removeAttribute("checked");break;default:s.setAttribute(this.updateProp,e[0]+"")}}return Gt.NONE}static get scopes(){return[Ft.TAG]}modelPath;render(t,e="value"){}});const ps=Yt(class extends ns{created(t,e,s){let n=t.startNode;r(this.display)&&(this.display=n.style.display);let i=s;this.renderComponent.nextTick((()=>{n.style.display=e?this.display:"none",i&&i(n,e)}))}update(t,e,s){return this.created(t,e[0],e[1]),Gt.NONE}display=void 0;static get scopes(){return[Ft.TAG]}constructor(t){super(),this.point=t}render(t,e){}});const fs=Yt(class extends ns{created(t,e,s){e=e.bind(this.renderComponent),this.slotComponent._bindSlotHook(s||"default",e)}update(t,e,s){return Gt.NONE}static get scopes(){return[Ft.SLOT]}render(t,e){}});class gs{static getCssText(t,e=!1){return s(t)?t:y(Z(t,((t,s)=>s.startsWith("--")?s+":"+t+(e?" !important":""):m(s)+":"+t+(e?" !important":""))),";")}static setStyle(t,e){if(s(t)&&!$(t))return{};let r=gs.getCssText(t),n={};return g(r.split(";"),(t=>{let s=t.split(":"),r=$(s[0]),i=$(s[1]);n[r]=e.style.getPropertyValue(r),e.style.setProperty(r,i)})),n}}const ms=Yt(class extends ns{created(t,e){gs.setStyle(e,t.startNode)}update(t,e,s){return this.created(t,e[0]),Gt.NONE}constructor(t){super(),this.point=t}static get scopes(){return[Ft.STYLE]}render(t){}});const Es=Yt(class extends ns{created(t,e){this.modelPath||(this.modelPath=_(this.renderParams));const s=t.startNode;let r=t.attrName;s._initProps({[r]:e}),s.addEventListener("update:"+r,(t=>{T(this.renderComponent,this.modelPath,t.detail.value)}))}update(t,e,s){if(!P(e,s)){const s=t.startNode;let r=t.attrName;s._updateProps({[r]:e[0]})}return Gt.NONE}static get scopes(){return[Ft.PROP]}modelPath;constructor(t){super()}render(t){}});const _s=Yt(class extends ns{created(t,...e){}static get scopes(){return[Ft.TEXT,Ft.SLOT]}update(t,e,s){return P(e,s)?Gt.NONE:Gt.REPLACE}render(t,e){let s=()=>Be``,r=[],n=[];g(e,((t,e)=>{if(v(t))r.push(e),n.push(t);else{let e=t[0],s=t[1];r.push(e),n.push(s)}"default"===e&&(s=t)}));let i=it(r,(e=>v(e)?e(t):e==t));return ot(n[i]??s)}});export{zt as CompElem,gs as CssHelper,_t as Decorator,ht as DecoratorType,Nt as DecoratorWrapper,ns as Directive,Gt as DirectiveUpdateTag,qt as DirectiveWrapper,Qt as EnterPoint,Ft as EnterPointType,bt as GetKeyFnName,us as ModelTriggerType,Qe as QueryCache,Ge as Template,Xt as UpdatePoint,Ct as _DecoratorMap,vt as _DecoratorsKey,xt as _getObservedAttrs,os as bind,Oe as buildHTML,as as classes,Fe as computed,ze as createRef,Ke as debounced,St as decorator,Yt as directive,Xe as event,ls as forEach,Be as html,cs as ifElse,ds as ifTrue,es as makeState,hs as model,Pt as prop,Ye as query,Ze as queryAll,ps as show,fs as slot,Je as state,ms as styles,Es as sync,ss as tag,rs as watch,_s as when};
7
+ import{toPath as t,some as e,isString as s,isUndefined as r,isBlank as n,get as i,isObject as o,isDefined as a,isEmpty as l,has as c,concat as d,defaults as h,isLowerCaseChar as u,merge as p,cloneDeep as f,each as g,kebabCase as m,toArray as E,last as b,startsWith as v,isFunction as _,isArray as C,initial as y,join as N,split as S,set as T,isEqual as P,replace as w,isPlainObject as x,flatMap as A,test as k,size as M,assign as O,first as D,closest as R,once as L,filter as V,bind as I,camelCase as H,isNil as $,trim as W,isBoolean as j,parseJSON as B,isNull as U,debounce as z,groupBy as G,reject as F,compact as K,remove as X,includes as Q,find as q,throttle as Y,map as Z,replaceAll as J,snakeCase as tt,toString as et,reduce as st,isMatch as rt,clone as nt,findIndex as it,call as ot}from"myfx";const at=new WeakMap,lt=/\s+\.?key\s*=/;var ct,dt,ht,ut;function pt(t){console.error("[CompElem]",t)}function ft(t,e){console.error(`[CompElem <${t}>]`,e)}function gt(e){return t(e).join("-")}function mt(t){return Object.getPrototypeOf(t)}function Et(t){let e=t;return s(t)&&/(?:^true$)|(?:^false$)/.test(e)?e="true"===e:(r(e)||n(e))&&(e=!0),e}!function(t){t[t.CSS=1]="CSS",t[t.COMPUTED=2]="COMPUTED"}(ct||(ct={})),function(t){t.PROPS="__deco_props",t.STATES="__deco_states",t.COMPUTED="__deco_computed",t.WATCH="__deco_watch",t.EVENTS="__deco_events"}(dt||(dt={})),function(t){t.Prod="prod",t.Dev="dev"}(ht||(ht={})),function(t){t.CLASS="class",t.FIELD="field",t.METHOD="method"}(ut||(ut={}));class bt{static get priority(){return 0}}const vt="getKey",_t="__decorators",Ct=new WeakMap;class yt{args;metadata;decoratorClass;instanceMap;key;priority=0;constructor(t,e,s){this.args=t,this.metadata=e,this.decoratorClass=s,this.priority=i(s,"priority",0),this.instanceMap=new WeakMap}create(t){let e,s=new this.decoratorClass(...this.args),n=s.targets,c=this.metadata[2];o(c)&&a(i(c,"configurable"))?e=ut.METHOD:r(this.metadata[2])&&(e=ut.FIELD),!l(n)&&e&&n.includes(e)?(s.created(t,...this.metadata),this.instanceMap.set(t,s)):pt(`Decorator '${this.decoratorClass.name}' is out of targets, expect '${n.join(",")}' bug got '${e}'`)}beforeMount(t,e){this.instanceMap.get(t).beforeMount(t,e,...this.metadata)}mounted(t,e){this.instanceMap.get(t).mounted(t,e,...this.metadata)}updated(t,e){this.instanceMap.get(t).updated(t,e)}}const Nt=new WeakMap;function St(t){let e=(...e)=>(...s)=>{let r=s[0].constructor,n=r[_t];if(!c(r,_t)){let t=Object.getPrototypeOf(r);n=t?d(t[_t]??[]):[],Reflect.defineProperty(r,_t,{configurable:!1,enumerable:!1,value:n})}let i,o={},a=t[vt];if(a){let s=Nt.get(t);if(s||(s=new WeakMap,Nt.set(t,s)),o=s.get(r),o||(o={},s.set(r,o)),i=a(...e),o[i])return o[i]}let l=new yt(e,s,t);return o[i]=l,n?.push(l),l};return Ct.set(e,!0),e}const Tt=new WeakMap;function Pt(t){if(1===arguments.length)return(e,s,r)=>{t.required=t.required||!1,t.attribute=!1!==t.attribute,wt(e,s,t,r)};let e=arguments[0],s=arguments[1],r=arguments[2];t={type:void 0,required:!1,attribute:!0},r&&"function"==typeof r.type&&(t=h(r,t),r=void 0),wt(e,s,t,r)}function wt(t,e,s,r){let n;if(u(e[0])||pt(`Prop '${e}' must be in CamelCase`),!c(t.constructor,dt.PROPS)){const e={};let s=t.constructor;for(;(s=mt(s))!==Kt;)p(e,s[dt.PROPS]?f(s[dt.PROPS]):{});Reflect.defineProperty(t.constructor,dt.PROPS,{configurable:!1,enumerable:!1,value:e}),n=new Set,g(e,((t,e)=>{if(t.attribute){let t=m(e);n?.add(t)}})),Tt.set(t.constructor,n)}if(r&&(r.get&&(s.getter=r.get),r.set&&(s.setter=r.set)),s.attribute){n||(n=Tt.get(t.constructor));let s=m(e);n?.add(s)}c(t.constructor,"observedAttributes")||(t.constructor.observedAttributes=[]),t.constructor.observedAttributes=E(n),s.shallow=s.shallow||!1,t.constructor[dt.PROPS][e]=s}const xt=new Set;function At(t){return Tt.get(t)??xt}const kt={collectWatch(t,e,s){let r=Lt.get(t);r||(r={},Lt.set(t,r));let n=r[s];n||(n=r[s]=[]),n.push(e)},startCollect(t,e){this.__collectType=e,this.__collecting=t},setUpdater(t){this.__updater=t},endCollect(){this.__collecting=null},__directiveQ:[],setDirectiveQ(t){let e=b(this.__directiveQ);const s=t?t.join(","):"",r=e?e.join(","):"";e&&s===r||(e&&e.length<t.length&&v(s,r)?this.__directiveQ[this.__directiveQ.length-1]=t:this.__directiveQ.push(t))},popDirectiveQ(){let t=d(this.__directiveQ);return this.__directiveQ=[],t},startRender(t){this.__renderCollecting=!0,this.__renderContext=t},endRender(t){this.__renderCollection.forEach((e=>{t._regDeps(e,this.__renderContext)})),this.__renderCollection.clear(),this.__renderCollecting=!1,this.__renderContext=null},collect(t){this.__renderCollection.add(t)},clear(){this.__directiveQ=[]},__updater:null,__collecting:null,__collectType:-1,__renderCollection:new Set,__renderContext:null,__renderCollecting:!1,__skipCheck:!1},Mt=new WeakMap,Ot=new WeakMap,Dt=new WeakMap,Rt=new WeakMap,Lt=new WeakMap,Vt=new WeakSet;function It(t,e){if(!o(t))return t;const s=Vt.has(t)?t:new Proxy(t,{get(t,e,s){if(!e)return;const r=Reflect.get(t,e,s);if("string"!=typeof e&&"number"!=typeof e)return r;let n=e in t;if((kt.__renderCollecting||kt.__collecting)&&(n&&t.hasOwnProperty(e)||!n)){let t=Ot.get(s)??[],r=d(t,[e]),n=r.join("-");if(kt.__renderCollecting)kt.collect(gt(r)),kt.setDirectiveQ(r);else if(kt.__collecting){let t;switch(kt.__collectType){case ct.COMPUTED:t=Dt.get(kt.__collecting),t||(t={},Dt.set(kt.__collecting,t));break;case ct.CSS:t=Rt.get(kt.__collecting),t||(t={},Rt.set(kt.__collecting,t))}let e=t[n];e||(e=t[n]=[]),e.push(kt.__updater)}}return r},set(t,e,s,r){if(!e)return!1;let n=t[e];if(!o(n)&&n===s)return!0;if(Number.isNaN(s)&&Number.isNaN(n))return!0;let a=Ot.get(r)??[],c=d(a,[e]),h=Mt.get(r).from,u=i(h.constructor,dt.PROPS),p=i(h.constructor,dt.STATES),f=i(u,[c[0],"hasChanged"])||i(p,[c[0],"hasChanged"]);if(f){if(!f.call(h,s,n))return!0}else if(n===s&&!at.has(n))return!0;u&&u[e]&&t.__isData&&u[e].sync&&h.emit("update:"+e,{value:s});let g=Mt.get(r)?.contextSet,m=s;!o(s)||_(s)||s instanceof Node||Object.isFrozen(s)||g.forEach((t=>{let s=Mt.get(r)?.pathMap,n=s?.get(t);n&&(c=d(n,[e]),Ot.set(m,c),m=It(m,t),Vt.add(m),Ot.set(m,c))}));let E=Reflect.set(t,e,m),b=Mt.get(r).pathMap;return g.forEach((t=>{let s=b.get(t);if(!s)return;t===h&&a.length>1&&s.length>1&&a[0]===s[0]&&(s=a),c=d(s,"length"==e&&C(r)?[]:[e]);let o=Dt.get(t),u=Rt.get(t),p=Lt.get(t);if(o||u||p){let t=c.length;for(;t;){let e=c.slice(0,t).join("-");if(p){const s=p[e];t===c.length?s?.forEach((t=>{let e=t();e.ov=n,$t.pushWatch(e)})):s?.forEach((t=>{let e=t();i(e,"deep")&&(e.ov=n,$t.pushWatch(e))}))}if(o){let t=o[e];if(!l(t))for(let e=0;e<t.length;e++){const s=t[e];$t.pushComputed(s)}}if(u){let t=u[e];if(!l(t))for(let e=0;e<t.length;e++){const s=t[e];$t.pushCss(s)}}t--}}let f=t._notify(n,c);$t.pushNext(f,t.cid)})),E}});Vt.has(s)||Vt.add(s);let r=Ot.get(t)??[];if(Object.isExtensible(t)&&!Mt.get(s)){let t=new Set;t.add(e);let n=new WeakMap;n.set(e,r),Mt.set(s,{from:e,contextSet:t,pathMap:n})}else{Mt.get(s).contextSet.add(e);let t=Mt.get(s).pathMap,n=t.get(e),o=d(r);if(n&&n.join("")!==o.join("")){let t=i(e,y(n));C(t)||function(...t){console.warn("[CompElem]",...t)}(`The object is referenced by more than one @state '${o.join(".")},${n.join(".")}'`),n=o}else t.set(e,o)}let n=i(e.constructor,dt.PROPS),a=i(e.constructor,dt.STATES);for(let s in t){const l=t[s];let c=i(n,[s,"shallow"])||i(a,[s,"shallow"]);!o(l)||Vt.has(l)||_(l)||l instanceof Node||Object.isFrozen(l)||c||(Ot.set(l,d(r,[s])),t[s]=It(l,e),Vt.add(t[s]),Ot.set(t[s],d(r,[s])))}return s}const Ht=new Map;class $t{static watchSet=new Set;static computedSet=new Set;static cssSet=new Set;static nextSet=new Set;static nextPending=!1;static next;static flush(){$t.nextPending=!1;let t=Array.from($t.watchSet);$t.watchSet.clear();let e=Array.from($t.computedSet);$t.computedSet.clear();let s=Array.from($t.cssSet);$t.cssSet.clear();let r=Array.from($t.nextSet);$t.nextSet.clear(),t.forEach((t=>t(i(t,"ov")))),e.forEach((t=>t())),s.forEach((t=>t())),r.forEach((t=>t())),Ht.clear()}static pushWatch(t){$t.watchSet.add(t)}static pushComputed(t){$t.computedSet.add(t)}static pushCss(t){$t.cssSet.add(t)}static pushNext(t,e){if(e){if(Ht.has(e))return;Ht.set(e,t)}$t.nextSet.add(t),$t.nextPending||($t.nextPending=!0,$t.next())}}function Wt(t){return class extends t{__updatePoints;renderComponent;buildView(t){let e=this instanceof Kt?this:this.renderComponent,[s,r]=Ve(e,t),n=[],i=ze(n,s,r,e,this);return this.__updatePoints=n,i}updateView(t){if(n(N(t.strings)))return;if(!this.__updatePoints)return;let{vars:e}=t,s=this instanceof Kt?this:this.renderComponent;for(let t=0;t<this.__updatePoints.length;t++){const r=this.__updatePoints[t];let n=r.varIndex;if(n<0)continue;let a=r.value,l=e,c=r.node,d=S(n,"-");for(let e=0;e<d.length;e++){const s=d[e];l=i(l,s),l&&l.vars&&t<d.length-1&&(l=l.vars)}if(!o(a)&&a===l)continue;let h=c;if(r.isDirective){if(!a.di)continue;l.di=a.di,l.di.renderParams=l.varChain,l.di._renderArgs=l.args,l.point=a.point,l.varPath=a.varPath,a.update(a.point,l.args,a.args)}else if(r.isToggleProp){if(!!l===a)continue;h.toggleAttribute(r.attrName,!!l),T(h,r.attrName,!!l)}else if(r.isProp){if(!o(l)&&l===a)continue;c instanceof Kt?c._updateProps({[r.attrName]:l}):c instanceof HTMLSlotElement&&s._updateSlot(c.getAttribute("name")||"default",r.attrName,l)}else if(r.attrName&&!r.isEvent){if(!P(a,l))switch(r.attrName){case"value":if(c instanceof HTMLInputElement){c.value=l;break}default:c.setAttribute(r.attrName,w(r.attrTmpl,Ue,l+""))}}else if(r.isTmpl&&l&&a)a.tmpl&&(l.strings.join()!==a.tmpl.strings.join()||l.vars.some((t=>o(t)&&!x(t)))||a.tmpl.vars.some((t=>o(t)&&!x(t)))||!P(l.vars,a.tmpl.vars))&&r.value.updateView(l),a.tmpl=l,l=a;else if(r.isText){let t=r.textNode.nextSibling;t&&t===r.node.previousSibling?t.textContent=l:(Ge.remove(r.textNode,r.node),Ge.insertBefore(r.node,[l]))}r.value=l}}}}(()=>{const t=Promise.resolve(),e=$t.flush;$t.next=()=>{t.then(e)}})();class jt extends(Wt(Object)){tmpl;constructor(t){super(),this._renderVars=i(t,"_renderVars"),this.tmpl=t}}const Bt={boolean:Boolean,string:String,number:Number,object:Object,array:Array,function:Function,undefined:Object},Ut=new WeakMap;let zt=[],Gt=0;const Ft=new Map;class Kt extends(Wt(HTMLElement)){static __l_globalRule=document.createElement("style");static defaults(t){zt=A(t.css,(t=>{if(s(t)){let e=new CSSStyleSheet;return e.replaceSync(t),e}return t instanceof CSSStyleSheet?t:[]})),t.global,g(t,((t,e)=>{k(e[0],/[A-Z]/)}))}#t;#e={};#s={"#slots":{}};#r={};#n={};#i;#o={};__events={};get[Symbol.toStringTag](){return this.constructor.name}get cid(){return this.#t}get reactiveData(){return this.#r}get attrs(){return this.#a}get props(){return this.#l}get renderRoot(){return this.#c}get renderRoots(){return this.#d}get parentComponent(){return this.#h}get wrapperComponent(){return this.#u}get slotHooks(){return this.#p}get css(){return Ut.get(this.constructor)}get globalStyleSheet(){return Ft.get(this.constructor)?.sheet}get isMounted(){return this.#f}get slots(){return this.#s["#slots"]}#a;#l;#c;#d;#h;#u;#g={};#p={};#m={};#f=!1;static get styles(){return[]}static get globalStyles(){return[]}get styles(){return[]}#E=!1;#b=!1;constructor(...t){super(),this.#t=Gt++,1===M(t)&&(this.#l={},O(this.#l,D(t)));let e=this.render.bind(this);this.render=function(){let t;return kt.startRender(this),t=e(),kt.endRender(this),t};let r=i(this.constructor,"globalStyles"),n=Ft.has(this.constructor);if(!l(r)&&!n){let t="";r.forEach((e=>{s(e)&&(t+=e+"\n")}));let e=document.createElement("style");e.textContent+=t,Ft.set(this.constructor,e),document.head.appendChild(e)}let o=Ut.get(this.constructor),a=o??[];o||(g(i(this.constructor,"styles"),(t=>{if(s(t)){let e=new CSSStyleSheet;e.replaceSync(t),a.push(e)}else a.push(t)})),Ut.set(this.constructor,a)),this.#i=this.attachShadow({mode:"open"}),this.#i.adoptedStyleSheets=[...zt,...a],this._slotsPropMap={default:[]};let c=i(this.constructor,_t);c&&c.sort(((t,e)=>e.priority-t.priority)).forEach((t=>t.create(this))),this.#v=this.#_.bind(this)}#v;connectedCallback(){let t=R(this.parentNode,(t=>t instanceof Kt||t.host instanceof Kt),"parentNode");this.#h=t?t instanceof Kt?t:t.host:null,this.__init()}disconnectedCallback(){}__init(){if(this.#E)return;if(this.#b)return;this.#b=!0,this.#C();const t=this.#y();this.propsReady(t);for(const e in t){const s=t[e];this.#s[e]=s}this.#N(),g(this.#s,((t,e)=>{let s=Reflect.getOwnPropertyDescriptor(this.#s,e);Reflect.defineProperty(this,e,{get(){let t=Reflect.get(this.#r,e);return s?.get?s?.get():t},set(t){s?.set?s?.set(t):Reflect.set(this.#r,e,t)}})})),Reflect.defineProperty(this.#s,"__isData",{enumerable:!1,value:!0}),this.#r=It(this.#s,this);let e=i(this.constructor,dt.COMPUTED);g(e,((t,e)=>{kt.startCollect(this,ct.COMPUTED),kt.setUpdater((()=>{this.#r[e]=t.call(this)})),this.#s[e]=t.call(this),kt.endCollect(),Reflect.defineProperty(this,e,{get(){return Reflect.get(this.#r,e)},set(t){ft(this.tagName,"Cannot set a computed property '"+e+"'")}})}));let s=i(this.constructor,dt.WATCH);g(s,((t,e)=>{t.forEach((t=>{let{source:s,options:r,handler:n}=t,o=n.bind(this);i(r,"once",!1)&&(o=L(o));const a=function(t){let e=i(this,s.replaceAll("-","."));o(e,t,s)}.bind(this);let l=i(r,"deep",!1);if(a.deep=l,kt.collectWatch(this,(()=>a),e),!i(r,"immediate",!1))return;let c=i(this,s.replaceAll("-","."));o(c,c,s)}))}));let r=this.render(),o=this.buildView(r);if(o){let t=E(o);t.forEach((t=>{this.#i.appendChild(t)})),this.#d=V(t,(t=>t.nodeType===Node.ELEMENT_NODE)),this.#c=this.#d[0]}g(this.#p,((t,e)=>{this.#S(e)}));const a=this;let l=i(this.constructor,_t);l&&l.sort(((t,e)=>e.priority-t.priority)).forEach((t=>{t.beforeMount(this,((t,e)=>(a.#r[t]=e,a.#r[t])))})),this.beforeMount();let c=i(this.constructor,dt.EVENTS);c&&c.forEach((async t=>{let e=t.name,s=O({target:document,once:!1,passive:!1,capture:!1},t.options),r=I(t.fn,this),n=s.target;_(n)&&(n=await n.call(this,this)),n?n.addEventListener(e,r,s):ft(this.tagName,"The target of @event('"+e+"',...) is invalid")})),kt.startCollect(this,ct.CSS);let d=[];this.styles.forEach((t=>{if(!_(t))return;let e=new CSSStyleSheet;d.push(e),kt.setUpdater((()=>{let s=t()??"";e.replaceSync(s)}));let s=t();n(s)||e.replaceSync(s)})),kt.endCollect(),d.length>0&&(this.#i.adoptedStyleSheets=[...this.#i.adoptedStyleSheets,...d]),setTimeout((()=>{this.#f=!0,this.mounted(),l&&l.forEach((t=>{t.mounted(this,((t,e)=>(a.#r[t]=e,a.#r[t])))}))}),0),this.#E=!0}propsReady(t){}render(){throw Error(`[CompElem <${this.tagName}>] Missing render()`)}beforeMount(){}mounted(){}#T(t,e){this.#C();let s=i(this.#e[e],"props");s&&g(this.slots,((t,e)=>{t.filter((t=>t.nodeType===Node.ELEMENT_NODE)).forEach((t=>{t instanceof Kt?t._updateProps(s):g(s,((e,s)=>{if(t instanceof HTMLSlotElement){let r=i(t,"__l_comp");if(r){let n=t.name||"default",i=r.#e[n];i||(i=r.#e[n]={props:{}}),i.props||(i.props={}),i.props[s]=e,r.#T(t,n)}}else t.setAttribute(s,e)}))}))})),this.slotChange(t,e)}slotChange(t,e){}attributeChangedCallback(t,e,s){this.#P(t,e,s)}shouldUpdate(t){return!0}updated(t){}#w={};_notify(t,e){let s=[];for(let r=0;r<e.length;r++){const n=e[r];s.push(n);let a=i(this,s),l=gt(s);this.#n[l]={value:a,chain:"slots"===l?["slots"]:s,oldValue:t,end:s.length===e.length},o(a)&&"#"!=l[0]&&at.set(a,l)}return this.#v}#_(){if(M(this.#n)<1)return;const t=this.#n;this.#n={};let e=i(this.constructor,_t);if(e&&e.sort(((t,e)=>e.priority-t.priority)).forEach((e=>{e.updated(this,t)})),!this.shouldUpdate(t))return;let s=new Set;g(t,(({value:t,chain:e,oldValue:r},n)=>{this.#o[n]&&this.#o[n].forEach((t=>{s.add(t)}))})),s.forEach((t=>{if(t===this)this.updateView(this.render());else{let e=t.render(...t._renderArgs?t._renderArgs:[]);e&&t.updateView(e)}})),this.#x.forEach((t=>{this.#S(t)})),this.updated(t),g(t,(({value:t,chain:e,oldValue:s},r)=>{o(t)&&at.has(t)&&at.delete(t)}))}#y(){let t=i(this.constructor,dt.PROPS),s=this.attributes,n=this.tagName,l=this.#l,d={};g(s,(({name:e,value:s})=>{if(e[0]===we||e[0]===xe||e[0]===Ae||e===Oe||"slot"===e)return;let r=H(e);t&&!t[r]&&(d[e]=s)})),this.#a=this.#a?O(this.#a,d):d;let h={};if(!t)return Object.seal(h);let u=Object.keys(t),p=u.length;for(let d=0;d<p;d++){const p=u[d];let g,E=t[p],b=c(l,p),v=i(this,p);if(!("_defaultValue"in E)&&(E._defaultValue=v,!E.type)){r(v)&&ft(n,"Prop '"+p+"' has neither propType nor defaultValue be used for type inference");let t=typeof v;C(v)&&(t="array");let e=Bt[t];E.type=e}if(b)g=$(l[p])?v:l[p];else{g=v;let t=s.getNamedItem(m(p))||s.getNamedItem(xe+m(p));t&&(b=!0,g=t.value)}if(E.required&&!b){ft(n,"Prop '"+p+"' is required");break}g=this.#A(t,p,g);let _=i(t,[p,"getter"]);_&&(_=I(_,this));let y=i(t,[p,"setter"]);if(y&&(y=I(y,this)),(_||y)&&Reflect.defineProperty(this.#s,p,{set:y||function(t){},get:_}),E.attribute&&a(g)&&!o(g)){let t=m(p),s=W(g);(f=E.type)===Boolean||e(f,(t=>t===Boolean))?(s=Et(g),j(s)?this.toggleAttribute(t,s):this.setAttribute(t,s)):this.setAttribute(t,s)}this.#s[p]=g,h[p]=g}var f;return Object.seal(h)}#k(t,e){let s=t;try{for(let r=0;r<e.length;r++){const n=e[r];s=n===Boolean?Et(t):n===Number?Number(t):n===String?String(t):n===Object||n===Array?B(t):n===Date?new Date(t):new n(t)}}catch(e){ft(this.tagName,"Convert attribute error with "+t)}return s}#A(t,r,n){let i=t[r];if(!i)return n;let o=i.isValid,l=i.type,c=C(l)?l:[l],d=i.converter,h=n;if(!e(c,(t=>t===String))&&s(h)&&!U(h))try{h=d?d(h):this.#k(h,c)}catch(t){ft(this.tagName,`Convert attribute '${r}' error with `+h)}for(let t=0;t<c.length;t++){"Boolean"===c[t].name&&(h=Et(h))}let u=typeof h,p=!a(h);for(let t=0;t<c.length;t++){const e=c[t];if(k(u,e.name,"i")||h instanceof e||Object.prototype.toString.call(h)===Object.prototype.toString.call(e.prototype)){p=!0;break}}return p||ft(this.tagName,`Invalid prop '${r}'. expected '${c.map((t=>t.name||t))}' but got '${u}'`),o&&(o.call(this,h,this.#s)||ft(this.tagName,`Invalid prop '${r}'. IsValid() check failed`)),h}#N(){let t=i(this.constructor,dt.STATES);g(t,((e,s)=>{let r=t[s],n=i(this,s);if(r){let t=r.prop;n=t?f(this.#s[t]):i(this,s)}this.#s[s]=n}))}#M=z(this.propsReady,100);_setParentProps(t,e){if(this.#E){let s=i(this.constructor,dt.PROPS);g(t,((t,e)=>{let r=H(e),n=s[r];if(!n)return;let i=this.#s[r];t=this.#A(s,r,t),n.hasChanged&&!n.hasChanged.call(this,t,i)||(this.#s[r]=t,this._notify(i,[r]))})),O(this.#l,t),O(this.#a,e),this.#M(this.#l)}}_updateProps(t){let e=i(this.constructor,dt.PROPS);g(t,((t,s)=>{let r=H(s);e[r]&&(t=this.#A(e,r,t),kt.__skipCheck=!0,T(this,r,t),kt.__skipCheck=!1)})),O(this.#l,t),this.#M(this.#l)}_initProps(t,e){this.#l=p(this.#l||{},t),this.#a=p({},e)}_bindSlot(t,e,s){if(this.#g[e]||(this.#g[e]=t,Reflect.defineProperty(t,"__l_comp",{value:this})),t.addEventListener("slotchange",(s=>{this.#E&&this.#T(t,"default"===e?"":e)})),!l(s)){let t=this.#e[e];t||(t=this.#e[e]={}),t.props=s}}_bindSlotHook(t,e){this.#p[t]=e}#x=new Set;_updateSlot(t,e,s){let r=this.#g[t],n=this.#p[t];if(!n&&!r)return;let i=this.#e[t];if(e&&(i.props||(i.props={}),i.props[e]=s),n)this.#x.add(t);else{let t=r.assignedElements({flatten:!0});for(let r=0;r<t.length;r++){t[r].setAttribute(e,s+"")}}}#C(){const t=A(this.childNodes,(t=>t.nodeType===Node.COMMENT_NODE?[]:t instanceof HTMLSlotElement?t.assignedNodes({flatten:!0}):t));let e=G(t,(t=>t.nodeType===Node.TEXT_NODE?"default":t instanceof Element?t.getAttribute("slot")||"default":void 0));if(l(e))return void(l(this.#s["#slots"])||(this.#E?this.#r["#slots"]={}:this.#s["#slots"]={}));g(e,((t,e)=>{if(e){for(;t.length>0;){let e=t[0];if(!(e.nodeType===Node.TEXT_NODE&&n(e.textContent)||e instanceof HTMLSlotElement&&l(e.assignedNodes({flatten:!0}))))break;t.shift()}for(;t.length>0;){let e=b(t);if(!(e.nodeType===Node.TEXT_NODE&&n(e.textContent)||e instanceof HTMLSlotElement&&l(e.assignedNodes({flatten:!0}))))break;t.pop()}}}));let s={};g(e,((t,e)=>{l(t)||(s[e]=t)})),this.#E?this.#r["#slots"]=s:this.#s["#slots"]=s}#S(t){let e=this.#p[t];if(!e)return;let s=this.#e[t];if(!this.#s["#slots"][t])return;this.renderAsync(e,i(s,"props"));const r=this._asyncDirectives.get(e);let n=r?.buildView(e(i(s,"props"))),o=F(E(n),(t=>t.nodeType===Node.COMMENT_NODE));if(o){let e=this.#m[t];if(!l(e))for(let t=0;t<e.length;t++){const s=e[t];s.parentNode?.removeChild(s)}this.#m[t]=o,this.append(...o),this.#x.clear()}}_asyncDirectives=new WeakMap;renderAsync(t,...e){}#P(t,e,s){if(!this.isMounted)return;if(At(this.constructor).has(t)){let e=H(t);if(U(s)){s=i(this.constructor,dt.PROPS)[e]._defaultValue}this._updateProps({[e]:s})}}_regDeps(t,e){let s=this.#o[t];s||(s=this.#o[t]=new Set),s.add(e);let r=t.split("-");if(r.pop(),r.length<1)return;let n=r.join("-");s=this.#o[n],s||(s=this.#o[n]=new Set),s.add(e)}_regWrapper(t){this.#u=t}emit(t,e={},s){s&&s.event&&(e.event=s.event),e.target=this,this.dispatchEvent(new CustomEvent(t,{bubbles:i(s,"bubbles",!1),composed:i(s,"composed",!1),cancelable:!0,detail:e}))}on(t,e){this.#w[t]||(this.#w[t]=[]);let s=e.bind(this);this.#w[t].push(s),this.addEventListener(t,s)}nextTick(t,e){$t.pushNext(t,e)}forceUpdate(){g(this.#r,((t,e)=>{this.#n[e]={value:void 0,chain:void 0}})),this.#_()}}var Xt,Qt,qt;!function(t){t.NONE="NONE",t.REMOVE="REMOVE",t.REPLACE="REPLACE",t.UPDATE="UPDATE",t.APPEND="APPEND"}(Xt||(Xt={}));class Yt{key;varIndex;value;isText=!1;isTmpl=!1;isDirective=!1;node;textNode;isComponent=!1;attrName;attrTmpl;isProp=!1;isToggleProp=!1;isEvent;constructor(t,e,s,r){this.varIndex=t,this.node=e,s&&(this.attrName=s),r&&(this.attrTmpl=r)}}!function(t){t.ATTR="attr",t.PROP="prop",t.TEXT="text",t.CLASS="class",t.STYLE="style",t.SLOT="slot",t.TAG="tag"}(Qt||(Qt={}));class Zt{startNode;endNode;type;attrName;varIndex;expressionChain;nodes;constructor(t,e,s){this.startNode=t,this.attrName=e,this.type=s}setVarIndex(t){this.varIndex=t}getNodes(){let t=this.startNode.nextSibling;if(!this.endNode)return[t];let e=[];for(;t&&t!==this.endNode;)e.push(t),t=t?.nextSibling;return e}}!function(t){t.AFTER_BEGIN="afterbegin"}(qt||(qt={}));class Jt{diClass;args;di;varPath;point;slotComponent;varChain;constructor(t,...e){this.diClass=t,this.args=e,this.varChain=kt.popDirectiveQ(),this.di=new this.diClass,this.di.renderParams=this.varChain}checkScope(t){let e=i(this.diClass,"scopes");l(e)||k(e.join(","),t)||pt(`Directive '${this.diClass.name}' is out of scopes, expect '${e.join(",")}' bug got '${t}'`)}render(t){let e=this.di;return e.renderComponent||(e.renderComponent=t),this.di=e,e._renderArgs=this.args,this.di.render(...this.args)}update(t,e,s){let r=this.di.update(t,e,s);if(r===Xt.NONE)return;let n=t.getNodes();if(r===Xt.REMOVE)for(let t=0;t<n.length;t++){const e=n[t];e.parentNode?.removeChild(e)}else if(r===Xt.REPLACE){let s=[];for(let t=0;t<n.length;t++){const e=n[t];e.parentNode?.removeChild(e)}let r=this.di.render(...e),i=this.di.buildView(r);s=E(i);let o=document.createDocumentFragment();o.append(...s),t.endNode.parentNode.insertBefore(o,t.endNode)}else if(r===Xt.UPDATE){let s,r={},i=[],o=[],a=this.di.render(...e);if(a||(a=new Qe([],[])),l(n)){let e=this.di.buildView(a);return void t.startNode.after(...e)}let c={};a instanceof Qe&&a.vars.forEach((t=>{if(t instanceof Qe){const e=t.getKey();c[e]=t,r[e]=!0,o.push(e)}})),n=V(K(n),(t=>t.nodeType===Node.ELEMENT_NODE)),s=V(K(E(s)),(t=>t.nodeType===Node.ELEMENT_NODE));let d={},h="",u={};for(let t=0;t<n.length;t++){let e=n[t],s=e.getAttribute("key");if(s){if(d[s]){h=s;break}d[s]=e,i.push(s),u[s]=!0}}if(h)return void pt(`${H(this.diClass.name)} - duplicate key '${h}'`);let p=r;const f=t.startNode.parentNode;let m=[],v=[];if(g(u,((t,e)=>{p[e]||(v.push(e),delete u[e],X(i,(t=>t===e)))})),!l(o)){let e=-1,s=[],r=[],n=0,a=0;for(;a<o.length;a++){const l=o[a];let c=i.findIndex((t=>t===l));if(c<0){let e=o[a-1],s=e?d[e]||e:t.startNode;m.push({prevNode:s,newkey:l}),n++}else if(c>-1&&c!==a-n){if(e<0||1===Math.abs(e-c)){let t=b(s);s.push({nodeId:l,targetId:0===a?qt.AFTER_BEGIN:t?t.nodeId:o[a-1]})}else r.push({moveGroup:s,moveIndex:a+s.length}),s=[],s.push({nodeId:l,targetId:o[a-1]});e=c}}if(s.length>0&&r.push({moveGroup:s,moveIndex:a+s.length}),r.length>0){let e=r.sort(((t,e)=>t.moveGroup.length-e.moveGroup.length));if(e.length<2){let{moveGroup:s}=e[0];if(s.length>1){let t=b(s).targetId;s[s.length-2].nodeId===t&&(s=y(s))}s.forEach((({targetId:e,nodeId:s})=>{let r,n=d[s];e===qt.AFTER_BEGIN?(r=t.startNode,r.after(n)):(r=d[e],r.after(n))}))}else{let s=b(e).moveIndex;1===Math.abs(e[e.length-2].moveIndex-s)&&(e=y(e)),e.forEach((({moveGroup:e})=>{e.forEach((({targetId:e,nodeId:s})=>{let r,n=d[s];e===qt.AFTER_BEGIN?(r=t.startNode,r.after(n)):(r=d[e],r.after(n))}))}))}}}m.length>0&&this.#O(m,c,o),m.forEach((e=>{let s=e.newkey,r=this.newNodeMap[s],n=e.prevNode;n===t.endNode?n.before(r):n===t.startNode?n.after(r):"string"==typeof n?this.newNodeMap[n].after(r):n.after(r)})),v.forEach((t=>{let e=d[t];e&&e.parentNode&&f.removeChild(e)})),this.di.__updatePoints.forEach((t=>{t.key||(t.key=t.value.tmpl.getKey());const e=o.findIndex((e=>e==t.key));t.varIndex=e})),this.di.updateView(a)}}getDirective(){return this.di}newNodeMap={};#O(t,e,s){const r=[],n=[];t.forEach((t=>{let s=t.newkey;r.push(""),n.push(e[s])})),r.push("");let i=new Qe(r,n),o=this.di.__updatePoints,a=this.di.buildView(i),l=new Map;this.di.__updatePoints.forEach(((t,e)=>{const s=t.value.tmpl.getKey();t.key=s,l.set(s,!0)})),o.forEach(((t,e)=>{const s=t.key??t.value.tmpl.getKey();l.get(s)||this.di.__updatePoints.push(t)})),a.forEach((t=>{t instanceof HTMLElement&&(this.newNodeMap[t.getAttribute("key")]=t)}))}}function te(t){return(...e)=>{let s=null;return e.forEach(((t,r)=>{if(_(t)){let n=t;e[r]=function(...t){let e=s.di;kt.startRender(e);let r=n.call(e.renderComponent,...t);return kt.endRender(e.renderComponent),r}}})),s=new Jt(t,...e),s}}const ee=["resize","outside","mutate"],se=new WeakMap,re=[],ne=[],ie=[],oe=new ResizeObserver((t=>{for(const e of t){const t=Array.isArray(e.contentBoxSize)?e.contentBoxSize[0]:e.contentBoxSize,s=Array.isArray(e.borderBoxSize)?e.borderBoxSize[0]:e.borderBoxSize;let r=se.get(e.target);if(r){r(new CustomEvent("resize",{bubbles:!1,cancelable:!1,detail:{borderBox:{w:s.inlineSize,h:s.blockSize},contentBox:{w:t.inlineSize,h:t.blockSize}}}),e.target)}}}));var ae;!function(t){t.Child="child",t.Tree="tree",t.Attr="attr",t.Char="char"}(ae||(ae={}));const le=new WeakMap,ce=new MutationObserver((t=>{for(let e=0;e<t.length;e++){const s=t[e];let r=le.get(s.target);if(!r)return;let n={target:s.target},i=null;switch(s.type){case"subtree":n.type=ae.Tree,i=r[ae.Tree];break;case"childList":n.type=ae.Child,n.addedNodes=s.addedNodes,n.removedNodes=s.removedNodes,i=r[ae.Child];break;case"attributes":n.type=ae.Attr,n.attributeName=s.attributeName,n.oldValue=s.oldValue,i=r[ae.Attr];break;case"characterData":n.type=ae.Char,n.oldValue=s.oldValue,i=r[ae.Char]}if(i){i(new CustomEvent("mutate",{bubbles:!1,cancelable:!1,detail:n}))}}}));function de(t,e,s,r){if("resize"===t)!function(t,e){se.has(t)||(se.set(t,e),oe.observe(t))}(e,s);else if("outside"===t)switch(r[0]){case"mousedown":!function(t,e){re.push([t,e])}(e,s);break;case"dblclick":!function(t,e){ie.push([t,e])}(e,s);break;default:!function(t,e){ne.push([t,e])}(e,s)}else"mutate"===t&&function(t,e,s){let r=Q(s,"child"),n=Q(s,"attr"),i=Q(s,"char"),o=Q(s,"tree"),a=le.get(t);a||(a={},le.set(t,a),r&&(a[ae.Child]=e),n&&(a[ae.Attr]=e),i&&(a[ae.Char]=e),o&&(a[ae.Tree]=e),ce.observe(t,{childList:r,attributes:n,characterData:i,subtree:o}))}(e,s,r)}document.addEventListener("mousedown",(t=>{let e=i(t.composedPath(),0,t.target);re.forEach((([s,r])=>{if(!s.contains(e)&&!s.contains(R(e,(t=>t instanceof ShadowRoot),"parentNode")?.host)){r(new CustomEvent("outside",{bubbles:!1,cancelable:!1,detail:{currentTarget:s,event:t}}),s)}}))}),!1),document.addEventListener("click",(t=>{let e=i(t.composedPath(),0,t.target);ne.forEach((([s,r])=>{if(!s.contains(e)&&!s.contains(R(e,(t=>t instanceof ShadowRoot),"parentNode")?.host)){r(new CustomEvent("outside",{bubbles:!1,cancelable:!1,detail:{currentTarget:s,event:t}}),s)}}))}),!1),document.addEventListener("dblclick",(t=>{let e=i(t.composedPath(),0,t.target);ie.forEach((([s,r])=>{if(!s.contains(e)&&!s.contains(R(e,(t=>t instanceof ShadowRoot),"parentNode")?.host)){r(new CustomEvent("outside",{bubbles:!1,cancelable:!1,detail:{currentTarget:s,event:t}}),s)}}))}),!1);const he=/,|^(debounce:.+)|(debounce$)/,ue=/,|^(throttle:.+)|(throttle$)/,pe="self",fe="stop",ge="prevent",me="once",Ee="left",be="right",ve="middle",_e="ctrl",Ce="alt",ye="shift",Ne="meta",Se={esc:"escape"},Te=":";function Pe(t,e,s,r){let n,i=t.split("."),o=i.shift(),a=i.includes(me),l=e;if(n=q(i,(t=>he.test(t)))){let t=n.split(Te);l=z(l,parseInt(t[1])||100)}if(n=q(i,(t=>ue.test(t)))){let t=n.split(Te);l=Y(l,parseInt(t[1])||100)}if(a&&(l=L(l)),function(t){return ee.includes(t)}(o))return de(o,s,l,i),l;let c=t=>{if(i.includes(ge)&&t.preventDefault(),i.includes(fe)&&t.stopPropagation(),!i.includes(pe)||t.target===t.currentTarget){if(t instanceof MouseEvent){if(i.includes(Ee)&&0!=t.button)return;if(i.includes(be)&&2!=t.button)return;if(i.includes(ve)&&1!=t.button)return}else if(t instanceof KeyboardEvent){if(X(i,(t=>t==_e))[0]&&!t.ctrlKey)return;if(X(i,(t=>t==Ce))[0]&&!t.altKey)return;if(X(i,(t=>t==ye))[0]&&!t.shiftKey)return;if(X(i,(t=>t==Ne))[0]&&!t.metaKey)return;if(!Z(i,(t=>Se[t]||t)).includes(t.key.toLowerCase()))return}l(t)}};s.addEventListener(o,c);let d=r.__events[o];return d||(d=r.__events[o]=[]),d.push([s,c]),c}const we="@",xe=".",Ae="?",ke="*",Me=":",Oe="ref",De=/[.?-a-z]+\s*=\s*(['"])\s*([^='"]*<\!--c_ui-pl_df-->){2,}.*?\1/ims,Re=/<\s*[a-z0-9-]+([^>]*<\!--c_ui-pl_df-->)*[^>]*?(?<!-)>/gims,Le="slot-props";function Ve(t,e){let s="",r=d(e.vars),n=e.strings.length-1,o=e.vars.length-1;for(let r=0;r<=n;r++){const n=e.strings[r];let a=i(e.vars,r,"");if(a&&a.di){let e=a.render(t);if(e instanceof Qe){let[s,r]=Ve(t,e);Reflect.defineProperty(a,"_renderVars",{value:r}),a=Ie+s+He}else a=e??je}else if(a instanceof Qe){let[e,s]=Ve(t,a);Reflect.defineProperty(a,"_renderVars",{value:s}),a=$e+e+We}else a=r>o?"":je;s+=n+a}if(process.env.DEV){let t=s.match(De);if(t){return pt(`Parse error: attribute value can be set only one interpolation —— \n ${J(t[0],je,"${...}")}`),["",r]}}let a=0;return s=s.replace(Re,((t,e)=>J(t,je,(()=>je.replace("--\x3e","")+a++)))),s=s.replace(Ke,"$1><").trim(),[s,r]}const Ie="\x3c!--c_ui-pl_di-start--\x3e",He="\x3c!--c_ui-pl_di-end--\x3e",$e="\x3c!--c_ui-pl_tmpl-start--\x3e",We="\x3c!--c_ui-pl_tmpl-end--\x3e",je="\x3c!--c_ui-pl_df--\x3e",Be="\x3c!--c_ui-pl_df",Ue=/<!--c_ui-pl_df\d*(-->)?/;function ze(t,e,s,n,o){const a=document.createElement("div");a.innerHTML=e;const l=document.createNodeIterator(a,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT);let d,h,u=0,p=null,f=[],g=[],C=[],y=[t],N=[],S=[];for(;d=l.nextNode();)if(d instanceof HTMLElement||d instanceof SVGElement){d instanceof Kt?p=d:p?.contains(d)||(p=null);let e={},r=E(d.attributes);for(let i=0;i<r.length;i++){const o=r[i];let{name:a,value:l}=o;if(a===Le){let t=d.getAttribute("name")||"default";if(p){let e=p._slotsPropMap[t];e||(e=p._slotsPropMap[t]=[]),e.push(d)}}if(v(a,Be)){let e=s[u];if(e instanceof Jt){e.checkScope(Qt.TAG);let s=new Zt(d,a.substring(1),Qt.TAG);e.point=s,e.di.slotComponent=p,e.di.renderComponent=n;let r=new Yt(u,d);r.isDirective=!0,r.value=e,r.isComponent=!!p,t.push(r),u++,e.di.created(s,...e.args)}d.removeAttribute(a)}else if(a[0]!==we)if(a!==Oe)if(!process.env.DEV||a[0]!==xe||Ue.test(l)){if(Ue.test(l)){let r=s[u],i=new Yt(u,d,a.replace(/\.|\?|@/,""),l);if(i.isComponent=!!p,a[0]===xe||a[0]===Ae||a[0]===ke){if(r instanceof Jt){r.checkScope(Qt.PROP);let t=new Zt(d,a.substring(1),Qt.PROP);r.point=t,r.slotComponent=p,i.value=r,i.isDirective=!0,r&&r.di.created(r.point,...r.args)}else if(a[0]===Ae)i.isToggleProp=!0,i.value=!!r,i.value&&d.setAttribute(a.substring(1),"");else if(a[0]===ke){i.value=r;let t=a.substring(1);const[e,s]=t.split(Me);let n=e;switch(s){case"camel":n=H(n);break;case"kebab":n=m(n);break;case"snake":n=tt(n)}i.attrName=n,d.setAttribute(n,r)}else if(!process.env.DEV||d instanceof Kt||"SLOT"===d.tagName){let t=H(a.substring(1));process.env.DEV&&!(t in d)&&"SLOT"!==d.tagName&&ft(d.tagName,`Prop '${a}' is not defined in ${d.tagName}`),i.value=r,i.isProp=!0,e[t]=r}else ft(d.tagName,`Prop '${a}' can only be set on a CompElem or a slot`);d.removeAttribute(a),r=""}else{let t;if(i.value=r,r instanceof Jt){let e=Qt.ATTR;"class"===a?e=Qt.CLASS:"style"===a&&(e=Qt.STYLE),r.checkScope(e),i.isDirective=!0;let s=new Zt(d,a,e);r.point=s,r.di.slotComponent=p,r.di.renderComponent=n,t=r,r=""}l=w(l,Ue,r),o.value=l,t&&t.di.created(t.point,...t.args)}t.push(i),u++}}else ft(d.tagName,`Prop '${a}' must be an interpolation`);else{if(Ue.test(l)){let t=s[u];if(process.env.DEV&&!c(t,"current")){ft(d.tagName,"Ref must be a RefObject");continue}u++,t.current=d}d.removeAttribute(a)}else{let t=t=>{};if(Ue.test(l)){let e=s[u];if(process.env.DEV&&!_(e)){ft(d.tagName,`Event '${a}' must be a function`);continue}t=e.bind(n),u++}Pe(a.substring(1),t,d,n),d.removeAttribute(a)}}d instanceof Kt?(d._initProps(e),d._regWrapper(n)):d instanceof HTMLSlotElement&&n._bindSlot(d,d.name||"default",e)}else{let e=d,a=`\x3c!--${e.nodeValue}--\x3e`;if(a===Ie){h&&f.push(h),h=e;let r=s[u],i=new Yt(u,d);i.isComponent=!!p,i.isDirective=!0,i.value=r;let o=p?Qt.SLOT:Qt.TEXT,a=new Zt(h,"",o);r.point=a,r.di.slotComponent=p,r.di.renderComponent=n,g.push(r),t.push(i),C.push(i),t=[],y.push(t),u++,S.push(u),N.push(s),s=r._renderVars,u=0;continue}if(a===He){C.pop().textNode=e;let r=g.pop();r.point.endNode=e,r.di.created(r.point,...r.args),h=f.pop(),r.di.__updatePoints=t,y.pop(),t=b(y),s=N.pop(),u=S.pop()}else{if(a===$e){h&&f.push(h),h=e;let r=s[u],a=new Yt(u,d);a.isComponent=!!p,a.isTmpl=!0;let l=b(g);(l&&"ForEach"===i(l,"diClass.name")||"ForEach"==o.constructor.name)&&(a.key=r.getKey()),r=a.value=new jt(r);let c=p?Qt.SLOT:Qt.TEXT,m=new Zt(h,"",c);r.point=m,r.slotComponent=p,r.renderComponent=n,g.push(r),t.push(a),C.push(a),t=[],y.push(t),u++,S.push(u),N.push(s),s=r._renderVars,u=0;continue}if(a===We){C.pop().textNode=e;let r=g.pop();r.point.endNode=e,h=f.pop(),r.__updatePoints=t,y.pop(),t=b(y),s=N.pop(),u=S.pop()}}if(a!==je)continue;let l=new Yt(u,d);t.push(l),l.isComponent=!!p,l.isText=!0;let c,m=s[u];if(c=document.createComment(`compelem-ui-${u}-child-start`),e.parentNode.insertBefore(c,e),e.nodeValue=`compelem-ui-${u}-child-end`,l.textNode=c,m instanceof Jt){l.isDirective=!0,l.value=m;let t=p?Qt.SLOT:Qt.TEXT,s=new Zt(c,"",t);s.endNode=e,m.point=s,m.di.slotComponent=p,m.di.renderComponent=n,m.di.created(s,...m.args),m=""}else if(m instanceof Qe){l.isTmpl=!0,l.value=m;let[e,s]=Ve(n,m);m=ze(t,e,s,n,o)}else l.value=m;if(u++,r(m))continue;if(m instanceof NodeList){let t=document.createDocumentFragment();t.append(...m),e.parentNode.insertBefore(t,e)}else if(m instanceof Element)e.parentNode.insertBefore(m,e);else if(W(m)){let t=document.createTextNode(m);e.parentNode.insertBefore(t,e)}}return a.childNodes}const Ge={insertBefore:function(t,e){if(!t.parentNode)return;let s=document.createDocumentFragment();s.append(...e),t.parentNode.insertBefore(s,t)},remove:function(t,e){if(t===e)return void t?.parentNode?.removeChild(t);let s=t.nextSibling;for(;s&&s!==e;)s?.parentNode?.removeChild(s),s=t.nextSibling}};function Fe(t,...e){return new Qe(s(t)?[t]:t,e)}const Ke=/([a-z0-9"'])\s*>\s*</gim;function Xe(t){return{current:t}}class Qe{strings;vars;constructor(t,e){this.strings=d(t),this.vars=e}getKey(){let t=this.vars,e="";return g(this.strings,((s,r)=>{if(lt.test(s))return e=et(t[r]),!1})),e}getKeys(){let t=this.vars,e=[];for(let s=0;s<this.strings.length;s++){const r=this.strings[s];if(lt.test(r)){let r=et(t[s]);e.push(r)}}return l(e)&&t.forEach((t=>{if(t instanceof Qe){let s=t.getKey();e.push(s)}})),e}append(t){let e=b(this.strings);return t.strings.forEach(((t,s)=>{0!=s?this.strings.push(t):this.strings[this.strings.length-1]=e+t})),this.vars=d(this.vars,t.vars),this}insert(t,e){let s=e.strings.shift();return this.strings[t]+=s,this.strings.splice(t+1,0,...e.strings),this.vars.splice(t,0,...e.vars),this}getHTML(t){let[e,s]=Ve(t,this),r=ze([],e,s,t,t);return st(r,((t,e)=>t+e.outerHTML),"")}}function qe(t,e,s){s.get||pt(`Computed '${e}' must be a getter`),c(t.constructor,dt.COMPUTED)||(t.constructor[dt.COMPUTED]=l(t.constructor[dt.COMPUTED])?{}:f(t.constructor[dt.COMPUTED])),t.constructor[dt.COMPUTED][e]=s.get}const Ye=St(class extends bt{static get priority(){return Number.MAX_VALUE}created(t,e,s,...r){let n=t[s];t[s]=z(n,this.wait,this.immediate);let o=Reflect.getPrototypeOf(t);o&&!i(o,s+"_$__")&&T(o,s+"_$__",n)}beforeMount(t,e,...s){}mounted(t,e,...s){}updated(t,e){}get targets(){return[ut.METHOD]}wait;immediate;result;constructor(t,e=!1){super(),this.wait=t,this.immediate=e}});function Ze(t,e){return(s,r,n)=>{c(s.constructor,dt.EVENTS)||(s.constructor[dt.EVENTS]=l(s.constructor[dt.EVENTS])?[]:f(s.constructor[dt.EVENTS])),s.constructor[dt.EVENTS].push({name:t,options:e,fn:s[r]})}}var Je;!function(t){t.ONCE="once",t.UPDATABLE="updatable"}(Je||(Je={}));class ts extends bt{static get priority(){return Number.MAX_VALUE}created(t,e,s,...r){}mounted(t,e,...s){}get targets(){return[ut.FIELD]}selector;cache;result;constructor(t,e){super(),this.selector=t,this.cache=e}static getKey(t){return t}getter(t){this.result=t.shadowRoot?.querySelector(this.selector)}beforeMount(t,e,s,r,...n){const i=this;Reflect.defineProperty(t,r,{get:()=>(i.result&&i.cache||i.getter(t),i.result)})}updated(t,e){this.cache===Je.UPDATABLE&&this.getter(t)}}const es=St(ts),ss=St(class extends ts{getter(t){this.result=t.shadowRoot?.querySelectorAll(this.selector)}});function rs(t){if(1===arguments.length)return(e,s)=>{ns(e,s,t)};ns(arguments[0],arguments[1],{prop:""})}function ns(t,e,s){if(!c(t.constructor,dt.STATES)){const e={};let s=t.constructor;for(;(s=mt(s))!==Kt;)p(e,s[dt.STATES]?f(s[dt.STATES]):{});Reflect.defineProperty(t.constructor,dt.STATES,{configurable:!1,enumerable:!1,value:e})}s.shallow=s.shallow||!1,t.constructor[dt.STATES][e]=s}function is(t,e,s){ns(t.prototype,e,s||{prop:""})}function os(t){return e=>{if(e){if(e.prototype.hasOwnProperty("attributeChangedCallback")){let t=e.prototype.attributeChangedCallback;e.prototype.attributeChangedCallback=function(e,s,r){Kt.prototype.attributeChangedCallback.call(this,e,s,r),t.call(this,e,s,r)}}if(e.prototype.hasOwnProperty("connectedCallback")){let t=e.prototype.connectedCallback;e.prototype.connectedCallback=function(){Kt.prototype.connectedCallback.call(this),t.call(this)}}if(e.prototype.hasOwnProperty("disconnectedCallback")){let t=e.prototype.disconnectedCallback;e.prototype.disconnectedCallback=function(){Kt.prototype.disconnectedCallback.call(this),t.call(this)}}customElements.define(t,e)}}}function as(t,e){return(s,r)=>{c(s.constructor,dt.WATCH)||(s.constructor[dt.WATCH]=l(s.constructor[dt.WATCH])?{}:f(s.constructor[dt.WATCH]));(C(t)?t:[t]).forEach((t=>{let n=t.replaceAll(".","-"),i=s.constructor[dt.WATCH][n];C(i)||(i=s.constructor[dt.WATCH][n]=[]),i.push({source:t,options:e,handler:s[r]})}))}}class ls extends(Wt(Object)){_renderArgs;static get scopes(){return[]}renderParams}const cs=["key"];const ds=te(class extends ls{created(t,e){let s=t.startNode;if(s instanceof Kt){let t={},r={};g(e,((e,n)=>{cs.includes(n)||(n in s?t[n]=e:r[n]=e+"")})),s._initProps(t,r)}else g(e,((t,e)=>{s.setAttribute(e,t)}))}update(t,e,s){return Xt.NONE}static get scopes(){return[Qt.TAG]}render(t){}});let hs=0;const us=te(class extends ls{created(t,e){let r=[];C(e)?r=K(e):o(e)?r=A(e,((t,e)=>t?e:[])):s(e)&&(r=e.split(" "));let n=t.startNode;this.renderComponent.nextTick((()=>{g(this.lastCls,(t=>{n.classList.remove(t)})),g(r,(t=>{n.classList.add(t)})),this.lastCls=d(r)}),this.classId)}update(t,e,s){return this.created(t,e[0]),Xt.NONE}constructor(t){super(),this.classId="class_d"+hs++}static get scopes(){return[Qt.CLASS]}lastCls;render(t){}});const ps=te(class extends ls{created(t,...e){}update(t,e,s){if(l(t.getNodes())&&(!e||l(e[0])))return Xt.NONE;if(rt(this.lastAry,e[0])&&this.lastAry.length===e[0].length)return Xt.NONE;if(!l(this.renderParams)){let t=b(this.renderParams);C(t)||(t=[t]),this.renderParams=t}return this.lastAry=nt(e[0]),Xt.UPDATE}constructor(t){super(),l(this.renderParams)||(this.renderParams=E(b(this.renderParams)))}static get scopes(){return[Qt.TEXT,Qt.SLOT]}lastAry;lastRenderTmpl;render(t,e){let s=Z(t,((t,s)=>e(t,s)));if(s.length<1)return this.lastRenderTmpl=new Qe([],[]),this.lastRenderTmpl;let r=[],n=[];const i=[],o=[];for(let t=0;t<s.length;t++){const e=s[t];let a=b(n),l=e.vars,c=!0,d=e.strings;for(let t=0;t<d.length;t++){const e=d[t];if(lt.test(e)){let e=l[t]+"";if(r.includes(e))return void pt(`forEach - duplicate key '${e}'`);r.push(e),c=!1}0==t&&a?n[n.length-1]=a+e:n.push(e)}if(c)return void pt("forEach - missing 'key' prop");let h=b(i);h&&d.length>0&&(i[i.length-1]=W(h)+d.shift()),i.push(""),o.push(e)}return this.lastAry=nt(t),i.push(""),this.lastRenderTmpl=new Qe(i,o),this.lastRenderTmpl}});const fs=te(class extends ls{created(t,...e){}ifNodes;elseNodes;static get scopes(){return[Qt.TEXT,Qt.SLOT]}update(t,e,s){return!!e[0]==!!s[0]?Xt.NONE:(e[0],Xt.REPLACE)}render(t,e,s){return t?e(t):s(t)}});const gs=te(class extends ls{created(t,...e){}static get scopes(){return[Qt.TEXT,Qt.SLOT]}update(t,e,s){return e[0]===s[0]?Xt.NONE:e[0]?Xt.REPLACE:Xt.REMOVE}render(t,e){return t?e():Fe``}});var ms;!function(t){t.CHANGE="change",t.INPUT="input"}(ms||(ms={}));const Es=te(class extends ls{created(t,e,s="value"){const r=t.startNode;if("binded"===i(r,"_model"))return;let n=b(this.renderParams);if(this.updateProp=s,this.modelPath=n,o(e)||W(e)||(e=""),r instanceof Kt)r._initProps({[this.updateProp]:e}),r.addEventListener("update:"+s,(t=>{T(this.renderComponent,this.modelPath,t.detail.value)})),T(r,"_model","binded");else if(r instanceof HTMLTextAreaElement)r.setAttribute(this.updateProp,e+""),r.addEventListener("input",(t=>{let e=t.target;T(this.renderComponent,this.modelPath,e.value)})),T(r,"_model","binded");else if(r instanceof HTMLInputElement){let t="",n="";switch(r.type){case"checkbox":case"radio":t="checked",n="change";break;default:t="value",n="input"}r.setAttribute(s??t,e+""),r.addEventListener(n,(t=>{let e=t.target;T(this.renderComponent,this.modelPath,e.value)})),T(r,"_model","binded")}else r instanceof HTMLSelectElement&&(r.setAttribute(this.updateProp,e+""),r.addEventListener("change",(t=>{let e=t.target;T(this.renderComponent,this.modelPath,e.value)})),T(r,"_model","binded"))}update(t,e,s){if(this.modelPath||(this.modelPath=b(this.renderParams)),!P(e,s)){const s=t.startNode;if(s instanceof Kt)s._updateProps({[this.updateProp]:e[0]});else if(s instanceof HTMLTextAreaElement||s instanceof HTMLSelectElement)s.setAttribute(this.updateProp,e[0]+"");else if(s instanceof HTMLInputElement)switch(s.type){case"checkbox":case"radio":e[0]?s.setAttribute("checked",""):s.removeAttribute("checked");break;default:s.setAttribute(this.updateProp,e[0]+"")}}return Xt.NONE}static get scopes(){return[Qt.TAG]}modelPath;render(t,e="value"){}});let bs=0;const vs=te(class extends ls{created(t,e,s){let n=t.startNode;r(this.display)&&(this.display=n.style.display),this.point=t,this.cbk=s,this.visible=e,this.renderComponent.nextTick(this.doChange,this.showId)}visible;cbk;doChange(){let t=this.point.startNode;t.style.display=this.visible?this.display:"none",this.cbk&&this.cbk(t,this.visible)}update(t,e,s){return this.created(t,e[0],e[1]),Xt.NONE}display=void 0;static get scopes(){return[Qt.TAG]}constructor(t){super(),this.point=t,this.doChange=this.doChange.bind(this),this.showId="show_d"+bs++}render(t,e){}});const _s=te(class extends ls{created(t,e,s){e=e.bind(this.renderComponent),this.slotComponent._bindSlotHook(s||"default",e)}update(t,e,s){return Xt.NONE}static get scopes(){return[Qt.SLOT]}render(t,e){}});class Cs{static getCssText(t,e=!1){return s(t)?t:N(Z(t,((t,s)=>s.startsWith("--")?s+":"+t+(e?" !important":""):m(s)+":"+t+(e?" !important":""))),";")}static setStyle(t,e){if(s(t)&&!W(t))return{};let r=Cs.getCssText(t),n={};return g(r.split(";"),(t=>{let s=t.split(":"),r=W(s[0]),i=W(s[1]);n[r]=e.style.getPropertyValue(r),e.style.setProperty(r,i)})),n}}let ys=0;const Ns=te(class extends ls{created(t,e){let s=t.startNode;this.renderComponent.nextTick((()=>{Cs.setStyle(e,s)}),this.styleId)}update(t,e,s){return this.created(t,e[0]),Xt.NONE}constructor(t){super(),this.point=t,this.styleId="style_d"+ys++}static get scopes(){return[Qt.STYLE]}render(t){}});const Ss=te(class extends ls{created(t,e){this.modelPath||(this.modelPath=b(this.renderParams));const s=t.startNode;let r=t.attrName;s._initProps({[r]:e}),s.addEventListener("update:"+r,(t=>{T(this.renderComponent,this.modelPath,t.detail.value)}))}update(t,e,s){if(!P(e,s)){const s=t.startNode;let r=t.attrName;s._updateProps({[r]:e[0]})}return Xt.NONE}static get scopes(){return[Qt.PROP]}modelPath;constructor(t){super()}render(t){}});const Ts=te(class extends ls{created(t,...e){}static get scopes(){return[Qt.TEXT,Qt.SLOT]}update(t,e,s){return P(e,s)?Xt.NONE:Xt.REPLACE}render(t,e){let s=()=>Fe``,r=[],n=[];g(e,((t,e)=>{if(_(t))r.push(e),n.push(t);else{let e=t[0],s=t[1];r.push(e),n.push(s)}"default"===e&&(s=t)}));let i=it(r,(e=>_(e)?e(t):e==t));return ot(n[i]??s)}});export{Kt as CompElem,Cs as CssHelper,bt as Decorator,ut as DecoratorType,yt as DecoratorWrapper,ls as Directive,Xt as DirectiveUpdateTag,Jt as DirectiveWrapper,Zt as EnterPoint,Qt as EnterPointType,vt as GetKeyFnName,ms as ModelTriggerType,Je as QueryCache,Qe as Template,Yt as UpdatePoint,Ct as _DecoratorMap,_t as _DecoratorsKey,At as _getObservedAttrs,ds as bind,Ve as buildHTML,us as classes,qe as computed,Xe as createRef,Ye as debounced,St as decorator,te as directive,Ze as event,ps as forEach,Fe as html,fs as ifElse,gs as ifTrue,is as makeState,Es as model,Pt as prop,es as query,ss as queryAll,vs as show,_s as slot,rs as state,Ns as styles,Ss as sync,os as tag,as as watch,Ts as when};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "compelem",
3
- "version": "0.6.6-b1",
3
+ "version": "0.6.7-b1",
4
4
  "description": "A modern, reactive, fast, lightweight and flexible lib for building web components",
5
5
  "main": "index.js",
6
6
  "module": "index.js",
package/reactive.d.ts CHANGED
@@ -46,5 +46,5 @@ export declare class Queue {
46
46
  static pushWatch(updater: Getter): void;
47
47
  static pushComputed(updater: Getter): void;
48
48
  static pushCss(updater: Getter): void;
49
- static pushNext(updater: () => void): void;
49
+ static pushNext(updater: () => void, key?: string | number): void;
50
50
  }