xote 4.16.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/xote.cjs +9 -9
- package/dist/xote.mjs +1066 -1012
- package/dist/xote.umd.js +9 -9
- package/package.json +2 -2
- package/src/Xote.res.mjs +4 -1
- package/src/Xote__Component.res +60 -6
- package/src/Xote__Component.res.mjs +66 -7
- package/src/Xote__Hydration.res +9 -9
- package/src/Xote__Hydration.res.mjs +10 -10
- package/src/Xote__JSX.res.mjs +1 -1
- package/src/Xote__Router.res.mjs +1 -1
package/dist/xote.umd.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
(function(
|
|
2
|
-
`),
|
|
1
|
+
(function(D,te){typeof exports=="object"&&typeof module<"u"?te(exports):typeof define=="function"&&define.amd?define(["exports"],te):(D=typeof globalThis<"u"?globalThis:D||self,te(D.xote={}))})(this,(function(D){"use strict";let te={contents:0};function Ee(){return te.contents=te.contents+1|0,te.contents}function Ze(){return{first:void 0,last:void 0,version:0,compute:void 0,firstDep:void 0,lastDep:void 0,flags:0,level:0}}function ln(e){return{first:void 0,last:void 0,version:0,compute:e,firstDep:void 0,lastDep:void 0,flags:1,level:0}}function un(e,t,n,r,i){return{id:e,kind:t,run:n,firstDep:void 0,lastDep:void 0,flags:1,level:0,name:r,backingSubs:i}}function et(e){e.flags=e.flags&-2}function on(e){return(e.flags&2)!==0}function dn(e){e.flags=e.flags|2}function an(e){e.flags=e.flags&-3}function tt(e){return(e.flags&1)!==0}function cn(e){e.flags=e.flags|1}function je(e){e.flags=e.flags&-2}function sn(e){e.flags=e.flags&-3}function we(e){return e.compute!==void 0}function nt(e,t){return{subs:e,observer:t,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0}}function ke(e,t){t.prevSub=e.last,t.nextSub=void 0;let n=e.last;n!==void 0?n.nextSub=t:e.first=t,e.last=t}function rt(e,t){t.prevDep=e.lastDep,t.nextDep=void 0;let n=e.lastDep;n!==void 0?n.nextDep=t:e.firstDep=t,e.lastDep=t}function lt(e){let t=e.subs,n=e.prevSub;n!==void 0?n.nextSub=e.nextSub:t.first=e.nextSub;let r=e.nextSub;r!==void 0?r.prevSub=e.prevSub:t.last=e.prevSub,e.prevSub=void 0,e.nextSub=void 0}function it(e){let t=e.firstDep;for(;t!==void 0;){let n=t;if(n!==void 0){let r=n.nextDep;lt(n),t=r}}e.firstDep=void 0,e.lastDep=void 0}function Fe(e){let t=e.firstDep;for(;t!==void 0;){let n=t;if(n!==void 0){let r=n.nextDep;lt(n),t=r}}e.firstDep=void 0,e.lastDep=void 0}function ut(e,t){t.prevDep=e.lastDep,t.nextDep=void 0;let n=e.lastDep;n!==void 0?n.nextDep=t:e.firstDep=t,e.lastDep=t}function ne(e){return e===void 0?{BS_PRIVATE_NESTED_SOME_NONE:0}:e!==null&&e.BS_PRIVATE_NESTED_SOME_NONE!==void 0?{BS_PRIVATE_NESTED_SOME_NONE:e.BS_PRIVATE_NESTED_SOME_NONE+1|0}:e}function Ie(e){if(e!=null)return ne(e)}function g(e){if(e===null||e.BS_PRIVATE_NESTED_SOME_NONE===void 0)return e;let t=e.BS_PRIVATE_NESTED_SOME_NONE;if(t!==0)return{BS_PRIVATE_NESTED_SOME_NONE:t-1|0}}function fn(e,t){if(e!==void 0)return ne(t(g(e)))}function V(e,t){return e!==void 0?g(e):t}function Ne(e){return e!==void 0}let A={contents:void 0},F={contents:void 0},Y=[],re=[],q={contents:!1},Te=[],ot=(function(e){e.length=0});function pn(e){if(!on(e)){dn(e),Y.push(e);return}}function hn(e,t){if(e.firstDep===void 0){let l={subs:t,observer:e,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0};return ut(e,l),ke(t,l)}let n=!1,r=e.firstDep;for(;r!==void 0&&!n;){let l=r;l!==void 0&&(l.subs===t?n=!0:r=l.nextDep)}if(n)return;let i={subs:t,observer:e,nextDep:void 0,prevDep:void 0,nextSub:void 0,prevSub:void 0};ut(e,i),ke(t,i)}function mn(e,t){if(e.firstDep===void 0){let l=nt(t,e);return rt(e,l),ke(t,l)}let n=!1,r=e.firstDep;for(;r!==void 0&&!n;){let l=r;l!==void 0&&(l.subs===t?n=!0:r=l.nextDep)}if(n)return;let i=nt(t,e);rt(e,i),ke(t,i)}function gn(e){let t=A.contents;if(t!==void 0)return hn(t,e);let n=F.contents;if(n!==void 0)return mn(n,e)}function Sn(e,t){return e.level-t.level|0}function _n(e,t){return e.level-t.level|0}function dt(e){let t=0,n=e.firstDep;for(;n!==void 0;){let r=n;r!==void 0&&(we(r.subs)&&r.subs.level>t&&(t=r.subs.level),n=r.nextDep)}return t+1|0}function at(e){let t=0,n=e.firstDep;for(;n!==void 0;){let r=n;r!==void 0&&(we(r.subs)&&r.subs.level>t&&(t=r.subs.level),n=r.nextDep)}return t+1|0}function yn(e){let t=e.level;Fe(e),sn(e);let n=A.contents;A.contents=e;try{let r=e.compute;r!==void 0&&r(),je(e),A.contents=n}catch(r){throw A.contents=n,r}if(t===0){e.level=dt(e);return}}function bn(e){let t=e.level;it(e),an(e);let n=F.contents;F.contents=e;try{e.run(),et(e),F.contents=n}catch(r){throw F.contents=n,r}if(t===0){e.level=at(e);return}}function ct(){q.contents=!0;try{for(;Y.length!==0||re.length!==0;){if(re.length!==0){re.sort(_n);let e=re.slice();ot(re),e.forEach(yn)}if(Y.length!==0){Y.sort(Sn);let e=Y.slice();ot(Y),e.forEach(bn)}}q.contents=!1;return}catch(e){throw q.contents=!1,e}}function En(e){for(Te.push(e);Te.length!==0;){let t=Te.pop();if(t!==void 0){let n=t.first;for(;n!==void 0;){let r=n;if(r!==void 0){let i=r.observer;we(i)?tt(i)||(cn(i),Te.push(i)):pn(r.observer),n=r.nextSub}}}}if((Y.length!==0||re.length!==0)&&!q.contents)return ct()}function st(e){if(!(we(e)&&tt(e)))return;let t=e.level;Fe(e);let n=A.contents;A.contents=e;try{let r=e.compute;r!==void 0&&r(),je(e),A.contents=n}catch(r){throw A.contents=n,r}if(t===0){e.level=dt(e);return}}function wn(e){let t=q.contents;q.contents=!0;try{let n=e();return t||(q.contents=!1,(Y.length!==0||re.length!==0)&&ct()),n}catch(n){throw t||(q.contents=!1),n}}function kn(e){let t=A.contents,n=F.contents;A.contents=void 0,F.contents=void 0;try{let r=e();return A.contents=t,F.contents=n,r}catch(r){throw A.contents=t,F.contents=n,r}}function Tn(e,t,n){return{id:Ee(),value:e,equals:V(n,(i,l)=>i===l),name:t,subs:Ze()}}function vn(e,t){return{id:Ee(),value:e,equals:(r,i)=>!1,name:t,subs:Ze()}}function $n(e){return st(e.subs),gn(e.subs),e.value}function Cn(e){return st(e.subs),e.value}function ft(e,t){let n;try{n=!e.equals(e.value,t)}catch{n=!0}if(n)return e.value=t,e.subs.version=e.subs.version+1|0,En(e.subs)}function Dn(e,t){ft(e,t(e.value))}const An=Object.freeze(Object.defineProperty({__proto__:null,Core:void 0,Id:void 0,Scheduler:void 0,batch:wn,get:$n,make:Tn,makeForComputed:vn,peek:Cn,set:ft,untrack:kn,update:Dn},Symbol.toStringTag,{value:"Module"}));function pt(e,t){let n=Ee(),r={contents:void 0},l=un(n,"Effect",()=>{let S=r.contents;S!==void 0&&S(),r.contents=e()},t,void 0),u=F.contents;F.contents=l;try{l.run(),et(l),F.contents=u}catch(S){throw F.contents=u,S}l.level=at(l);let d={contents:!1};return{dispose:()=>{if(d.contents)return;d.contents=!0;let S=r.contents;S!==void 0&&S(),it(l)}}}function xn(e,t){pt(e,t)}const On=Object.freeze(Object.defineProperty({__proto__:null,Core:void 0,Id:void 0,Scheduler:void 0,run:xn,runWithDisposer:pt},Symbol.toStringTag,{value:"Module"}));function Pn(e,t){let n=Ee(),r={contents:void 0},l=ln(()=>{r.contents.value=e()}),u=A.contents;A.contents=l;let d=e();A.contents=u;let s={id:n,value:d,equals:(S,x)=>!1,name:t,subs:l};return r.contents=s,je(l),s}function Rn(e){Fe(e.subs)}const Mn=Object.freeze(Object.defineProperty({__proto__:null,Core:void 0,Id:void 0,Scheduler:void 0,Signal:void 0,dispose:Rn,make:Pn},Symbol.toStringTag,{value:"Module"}));let o=An,j=Mn,T=On;function U(e){return e.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}let Le=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"];function jn(e){return Le.includes(e)}let ht={escape:U,voidElements:Le,isVoidElement:jn},mt="<!--$-->",gt="<!--/$-->",St="<!--#-->",_t="<!--/#-->",yt="<!--kl-->",bt="<!--/kl-->";function Et(e){return"<!--k:"+e+"-->"}let wt="<!--/k-->",kt="<!--lc-->",Tt="<!--/lc-->",Fn={signalTextStart:mt,signalTextEnd:gt,signalFragmentStart:St,signalFragmentEnd:_t,keyedListStart:yt,keyedListEnd:bt,keyedItemStart:Et,keyedItemEnd:wt,lazyComponentStart:kt,lazyComponentEnd:Tt};function vt(e){let t=e[1],n=e[0],r;switch(t.TAG){case"Static":r=t._0;break;case"SignalValue":r=o.peek(t._0);break;case"Compute":r=t._0();break}switch(n){case"aria-expanded":case"aria-hidden":case"aria-selected":case"checked":case"disabled":case"multiple":case"readonly":case"required":break;default:return n+'="'+U(r)+'"'}return r==="true"?n:""}function $t(e){let t=e.map(vt).filter(n=>n!=="");return t.length!==0?" "+t.join(" "):""}let In={renderAttr:vt,renderAttrs:$t};function J(e){switch(e.TAG){case"Element":let t=e.tag,n=$t(e.attrs);if(Le.includes(t))return"<"+t+n+" />";let r=e.children.map(J).join("");return"<"+t+n+">"+r+"</"+t+">";case"Text":return U(e._0);case"SignalText":let i=o.peek(e._0);return mt+U(i)+gt;case"Fragment":return e._0.map(J).join("");case"SignalFragment":let u=o.peek(e._0).map(J).join("");return St+u+_t;case"LazyComponent":let d=e._0();return kt+J(d)+Tt;case"KeyedList":let s=e.renderItem,S=e.keyFn,L=o.peek(e.signal).map(W=>{let O=S(W),$=J(s(W));return Et(O)+$+wt}).join("");return yt+L+bt}}function Ct(e,t){return J(e())}function Nn(e,t,n){let r=t!==void 0?t:"root",i=e(),l=J(i);return"<!--xote-root:"+r+"-->"+l+"<!--/xote-root-->"}function Dt(e){return"<script"+(e!==void 0?' nonce="'+U(e)+'"':"")+">window.__XOTE_HYDRATED__=false;<\/script>"}function Ln(e,t,n,r,i,l,u){let d=e!==void 0?e:"",s=t!==void 0?t:"",S=n!==void 0?n:[],x=r!==void 0?r:[],L=i!==void 0?i:"",W=Ct(u),O=Dt(l),$=x.map(z=>'<link rel="stylesheet" href="'+U(z)+'" />').join(`
|
|
2
|
+
`),H=S.map(z=>{let B=l!==void 0?' nonce="'+U(l)+'"':"";return'<script type="module" src="'+U(z)+'"'+B+"><\/script>"}).join(`
|
|
3
3
|
`);return`<!DOCTYPE html>
|
|
4
4
|
<html>
|
|
5
5
|
<head>
|
|
6
6
|
<meta charset="UTF-8" />
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
-
|
|
8
|
+
`+$+`
|
|
9
9
|
`+d+`
|
|
10
10
|
</head>
|
|
11
|
-
<body`+(
|
|
12
|
-
<div id="root">`+
|
|
13
|
-
`+
|
|
14
|
-
`+
|
|
15
|
-
`+
|
|
11
|
+
<body`+(s!==""?" "+s:"")+`>
|
|
12
|
+
<div id="root">`+W+`</div>
|
|
13
|
+
`+L+`
|
|
14
|
+
`+O+`
|
|
15
|
+
`+H+`
|
|
16
16
|
</body>
|
|
17
|
-
</html>`}const Fn=Object.freeze(Object.defineProperty({__proto__:null,Attributes:Rn,Component:void 0,Html:st,Markers:Pn,generateHydrationScript:vt,renderDocument:jn,renderNodeToString:U,renderToString:Tt,renderToStringWithRoot:Mn},Symbol.toStringTag,{value:"Module"}));function $t(e,t){let n=e.length,r=new Array(n),l=0;for(let i=0;i<n;++i){let u=e[i],d=t(u);d!==void 0&&(r[l]=g(d),l=l+1|0)}return r.length=l,r}function In(e,t){let n=0;for(;;){let r=n;if(r===e.length)return;let l=t(e[r]);if(l!==void 0)return l;n=r+1|0}}function Ct(e){return $t(e.split("/"),t=>{if(t!=="")return t.startsWith(":")?{TAG:"Param",_0:t.slice(1)}:{TAG:"Static",_0:t}})}function At(e,t){let n=t.split("/").filter(i=>i!=="");if(e.length!==n.length)return"NoMatch";let r={};return e.every((i,u)=>{let d=n[u];return i.TAG==="Static"?d===i._0:(r[i._0]=d,!0)})?{TAG:"Match",_0:r}:"NoMatch"}function Ie(e,t){return At(Ct(e),t)}const Ln=Object.freeze(Object.defineProperty({__proto__:null,match:Ie,matchPath:At,parsePattern:Ct},Symbol.toStringTag,{value:"Module"}));function Le(e,t){delete e[t]}function fe(e,t,n){switch(t){case"checked":e.checked=n==="true";return;case"disabled":e.disabled=n==="true";return;case"aria-expanded":case"aria-hidden":case"aria-selected":case"multiple":case"readonly":case"required":break;case"value":e.value=n;return;default:e.setAttribute(t,n);return}n==="true"?e.setAttribute(t,""):e.removeAttribute(t)}let pe={setAttrOrProp:fe},Te={contents:void 0};function Nn(){return{disposers:[],computeds:[]}}function ie(e,t){let n=Te.contents;Te.contents=e;let r=t();return Te.contents=n,r}function ue(e,t){e.disposers.push(t)}function xt(e){e.disposers.forEach(t=>t.dispose()),e.computeds.forEach(t=>R.dispose(t))}function oe(e,t){e.__xote_owner__=t}function Dt(e){return je(e.__xote_owner__)}let s={currentOwner:Te,createOwner:Nn,runWithOwner:ie,addDisposer:ue,disposeOwner:xt,setOwner:oe,getOwner:Dt};function Ot(e,t){return[e,{TAG:"Static",_0:t}]}function Pt(e,t){return[e,{TAG:"SignalValue",_0:t}]}function Rt(e,t){return[e,{TAG:"Compute",_0:t}]}let Gn={$$static:Ot,signal:Pt,computed:Rt};function me(e){let t=Dt(e);t!==void 0&&xt(t),Array.from(e.childNodes||[]).forEach(me)}function X(e){switch(e.TAG){case"Element":let t=e.children,n=e.events,r=e.attrs,l=document.createElement(e.tag),i={disposers:[],computeds:[]};return oe(l,i),ie(i,()=>{r.forEach(c=>{let m=c[1],E=c[0];switch(m.TAG){case"Static":return fe(l,E,m._0);case"SignalValue":let k=m._0;fe(l,E,o.peek(k));let C=T.run(()=>{fe(l,E,o.get(k))},void 0);return ue(i,C);case"Compute":let V=m._0,p=T.run(()=>{fe(l,E,V())},void 0);return ue(i,p)}}),n.forEach(c=>{l.addEventListener(c[0],c[1])}),t.forEach(c=>{let m=X(c);l.appendChild(m)})}),l;case"Text":return document.createTextNode(e._0);case"SignalText":let u=e._0,d=document.createTextNode(o.peek(u)),f={disposers:[],computeds:[]};return oe(d,f),ie(f,()=>{let c=T.run(()=>{d.textContent=o.get(u)},void 0);ue(f,c)}),d;case"Fragment":let _=document.createDocumentFragment();return e._0.forEach(c=>{let m=X(c);_.appendChild(m)}),_;case"SignalFragment":let O=e._0,P={disposers:[],computeds:[]},D=document.createElement("div");return D.setAttribute("style","display: contents"),oe(D,P),ie(P,()=>{let c=T.run(()=>{let m=o.get(O);Array.from(D.childNodes||[]).forEach(me),D.innerHTML="",m.forEach(k=>{let C=X(k);D.appendChild(C)})},void 0);ue(P,c)}),D;case"LazyComponent":let z={disposers:[],computeds:[]},v=ie(z,e._0),B=X(v);return oe(B,z),B;case"KeyedList":let L=e.renderItem,G=e.keyFn,M=e.signal,W={disposers:[],computeds:[]},ce=document.createComment(" keyed-list-start "),w=document.createComment(" keyed-list-end ");oe(ce,W);let y={},h=()=>{let c=w.parentNode;if(c==null)return;let m=o.get(M),E={};m.forEach(a=>{E[G(a)]=a});let k=[];Object.keys(y).forEach(a=>{if(E[a]===void 0){k.push(a);return}}),k.forEach(a=>{let b=y[a];if(b!==void 0){me(b.element),b.element.remove(),Le(y,a);return}});let C=[],V={};m.forEach(a=>{let b=G(a),se=y[b];if(se!==void 0){if(se.item!==a){V[b]=!0;let Ue=L(a),Pe=X(Ue),Qt={key:b,item:a,element:Pe};C.push(Qt),y[b]=Qt;return}C.push(se);return}let qe=L(a),De=X(qe),Oe={key:b,item:a,element:De};C.push(Oe),y[b]=Oe});let p={contents:ce.nextSibling};C.forEach(a=>{let b=p.contents;if(b==null){c.insertBefore(a.element,w);return}if(b===w){c.insertBefore(a.element,w);return}if(b===a.element){p.contents=b.nextSibling;return}H(V[a.key],!1)?(me(b),c.replaceChild(a.element,b),p.contents=a.element.nextSibling):(c.insertBefore(a.element,b),p.contents=a.element.nextSibling)})},S=document.createDocumentFragment();return S.appendChild(ce),o.peek(M).forEach(c=>{let m=G(c),E=L(c),k=X(E),C={key:m,item:c,element:k};y[m]=C,S.appendChild(k)}),S.appendChild(w),ie(W,()=>{let c=T.run(()=>{h()},void 0);ue(W,c)}),S}}let J={disposeElement:me,render:X};function zn(e){return{TAG:"Text",_0:e}}function Bn(e){return{TAG:"SignalText",_0:R.make(e,void 0)}}function Wn(e){return{TAG:"SignalText",_0:R.make(e,void 0)}}function Hn(e){return{TAG:"SignalText",_0:R.make(()=>e().toString(),void 0)}}function Xn(e){return{TAG:"SignalText",_0:R.make(()=>e().toString(),void 0)}}function Vn(e){return{TAG:"Text",_0:e.toString()}}function Kn(e){return{TAG:"Text",_0:e.toString()}}function Yn(e){return{TAG:"Fragment",_0:e}}function Ne(e){return{TAG:"SignalFragment",_0:e}}function qn(e,t){return{TAG:"SignalFragment",_0:R.make(()=>o.get(e).map(t),void 0)}}function Un(e,t,n){return{TAG:"KeyedList",signal:e,keyFn:t,renderItem:n}}function N(e,t,n,r,l){let i=t!==void 0?t:[].map(f=>f),u=n!==void 0?n:[].map(f=>f),d=r!==void 0?r:[].map(f=>f);return{TAG:"Element",tag:e,attrs:i,events:u,children:d}}function Jn(e,t,n,r){return N("div",e,t,n)}function Qn(e,t,n,r){return N("span",e,t,n)}function Zn(e,t,n,r){return N("button",e,t,n)}function er(e,t,n){return N("input",e,t,void 0)}function tr(e,t,n,r){return N("h1",e,t,n)}function nr(e,t,n,r){return N("h2",e,t,n)}function rr(e,t,n,r){return N("h3",e,t,n)}function lr(e,t,n,r){return N("p",e,t,n)}function ir(e,t,n,r){return N("ul",e,t,n)}function ur(e,t,n,r){return N("li",e,t,n)}function Ge(e,t,n,r){return N("a",e,t,n)}function or(){return{TAG:"Text",_0:""}}function Mt(e,t){let n=X(e);t.appendChild(n)}function dr(e,t){let n=document.getElementById(t);if(n==null){console.error("Container element not found: "+t);return}else return Mt(e,n)}let he=Ot,ze=Pt,jt=Rt;const ar=Object.freeze(Object.defineProperty({__proto__:null,$$null:or,Attributes:Gn,DOM:pe,Reactivity:s,Render:J,a:Ge,attr:he,button:Zn,computedAttr:jt,div:Jn,element:N,float:Kn,fragment:Yn,h1:tr,h2:nr,h3:rr,input:er,int:Vn,keyedList:Un,li:ur,list:qn,mount:Mt,mountById:dr,p:lr,reactiveFloat:Xn,reactiveInt:Hn,reactiveString:Wn,signalAttr:ze,signalFragment:Ne,span:Qn,text:zn,textSignal:Bn,ul:ir},Symbol.toStringTag,{value:"Module"}));function cr(){return Symbol.for("xote.router.state")}function F(){let e=globalThis[Symbol.for("xote.router.state")];if(e!==void 0)return e;let t={location:o.make({pathname:"/",search:"",hash:""},void 0,void 0),basePath:{contents:"/"},initialized:!1,popStateHandler:void 0};return globalThis[Symbol.for("xote.router.state")]=t,t}function sr(){return F().location}function fr(){return F().basePath}function re(e){if(!F().initialized)return console.warn("[Xote Router] "+e+" called before Router.init(). Make sure to call Router.init() at your app entry point. This may cause incorrect routing behavior.")}function Be(e){if(e===""||e==="/")return"/";let t=e.startsWith("/")?e:"/"+e;return t.endsWith("/")?t.slice(0,t.length-1|0):t}function Ft(e){let t=F().basePath.contents;return t==="/"?e:e===t?"/":e.startsWith(t+"/")?e.slice(t.length):e}function ge(e){let t=F().basePath.contents;return t==="/"?e:e==="/"?t:t+e}function It(){let e=window.scrollX||window.pageXOffset||0,t=window.scrollY||window.pageYOffset||0;return[e,t]}function ve(e,t){window.scrollTo(e,t)}function Lt(e,t){return{scrollX:e,scrollY:t}}function We(){return{}}function Nt(e){let t=e&&e.scrollX,n=e&&e.scrollY;if(t!=null&&n!=null)return[t,n]}function Gt(){let e=It(),t=Lt(e[0],e[1]),n=window.location.href;window.history.replaceState(t,"",n)}function He(){let e=window.location.pathname;return{pathname:Ft(e),search:window.location.search,hash:window.location.hash}}function pr(e,t){let n=e!==void 0?e:"/",r=F(),l=Be(n);if(r.basePath.contents=l,o.set(r.location,He()),r.initialized)return;let i=u=>{o.set(F().location,He());let d=window["history.state"];if(d==null)return;let f=Nt(d);if(f!==void 0)return ve(f[0],f[1])};r.popStateHandler=i,window.addEventListener("popstate",i),r.initialized=!0}function mr(e,t,n,r,l){let i=e!==void 0?e:"/",u=t!==void 0?t:"/",d=n!==void 0?n:"",f=r!==void 0?r:"",_=F(),O=Be(i);_.basePath.contents=O,o.set(_.location,{pathname:u,search:d,hash:f}),_.initialized=!0}function Xe(e,t,n,r){let l=t!==void 0?t:"",i=n!==void 0?n:"";re("Router.push()"),Gt();let u={pathname:e,search:l,hash:i},f=ge(e)+l+i;window.history.pushState(We(),"",f),o.set(F().location,u),ve(0,0)}function hr(e,t,n,r){let l=t!==void 0?t:"",i=n!==void 0?n:"";re("Router.replace()");let u={pathname:e,search:l,hash:i},f=ge(e)+l+i;window.history.replaceState(We(),"",f),o.set(F().location,u),ve(0,0)}function gr(e,t){return re("Router.route()"),Ne(R.make(()=>{let n=o.get(F().location),r=Ie(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]},void 0))}function Sr(e){return re("Router.routes()"),Ne(R.make(()=>{let t=o.get(F().location),n=In(e,r=>{let l=Ie(r.pattern,t.pathname);if(typeof l=="object")return r.render(l._0)});return n!==void 0?[n]:[]},void 0))}function _r(e,t,n,r){let l=t!==void 0?t:[],i=n!==void 0?n:[];re("Router.link()");let u=d=>{d.preventDefault(),Xe(e,void 0,void 0)};return Ge(l.concat([he("href",ge(e))]),[["click",u]],i)}function zt(e){return e&&typeof e=="object"&&"TAG"in e&&(e.TAG==="Static"||e.TAG==="Reactive")}function de(e,t){return zt(t)?t.TAG==="Reactive"?ze(e,t._0):he(e,t._0):typeof t=="function"?jt(e,t):typeof t=="object"?ze(e,t):he(e,t)}function Bt(e){let t=[],n=e.class;n!==void 0&&t.push(de("class",g(n)));let r=e.id;r!==void 0&&t.push(de("id",g(r)));let l=e.style;l!==void 0&&t.push(de("style",g(l)));let i=e.target;i!==void 0&&t.push(de("target",g(i)));let u=e["aria-label"];return u!==void 0&&t.push(de("aria-label",g(u))),t}function Wt(e){let t=e.children;return t!==void 0?t.TAG==="Fragment"?t._0:[t]:[]}function $e(e){re("Router.Link");let t=n=>{n.preventDefault(),Xe(e.to,void 0,void 0);let r=e.onClick;if(r!==void 0)return r(n)};return Ge(Bt(e).concat([he("href",ge(e.to))]),[["click",t]],Wt(e))}function Ht(e,t,n){return $e(e)}const yr=Object.freeze(Object.defineProperty({__proto__:null,Component:void 0,Link:{ReactiveProp:void 0,isReactiveProp:zt,convertAttrValue:de,propsToAttrs:Bt,getChildren:Wt,make:$e,jsx:$e,jsxs:$e,jsxKeyed:Ht,jsxsKeyed:Ht},Route:void 0,addBasePath:ge,basePath:fr,emptyHistoryState:We,getCurrentLocation:He,getGlobalState:F,getScrollFromState:Nt,getScrollPosition:It,getSymbolKey:cr,init:pr,initSSR:mr,link:_r,location:sr,makeHistoryState:Lt,normalizeBasePath:Be,push:Xe,replace:hr,route:gr,routes:Sr,saveScrollPosition:Gt,scrollTo:ve,stripBasePath:Ft,warnIfNotInitialized:re},Symbol.toStringTag,{value:"Module"}));function br(e){if(typeof e=="boolean")return e}function Er(e){if(e===null)return null}function wr(e){if(typeof e=="string")return e}function kr(e){if(typeof e=="number")return e}function Tr(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e}function vr(e){if(Array.isArray(e))return e}let le={bool:br,$$null:Er,string:wr,float:kr,object:Tr,array:vr},Se=typeof document>"u",Ce=!Se;function $r(e){if(Se)return te(e())}function Cr(e){if(Ce)return te(e())}function Xt(e,t){return Se?e():t()}const Ar=Object.freeze(Object.defineProperty({__proto__:null,isClient:Ce,isServer:Se,match:Xt,onClient:Cr,onServer:$r},Symbol.toStringTag,{value:"Module"}));function xr(e){return e}function Dr(e){let t=le.float(e);if(t!==void 0)return t|0}let Or={encode:xr,decode:Dr};function Pr(e){return e}function Rr(e){return le.float(e)}let Mr={encode:Pr,decode:Rr};function jr(e){return e}function Fr(e){return le.string(e)}let Ir={encode:jr,decode:Fr};function Lr(e){return e}function Nr(e){return le.bool(e)}let Gr={encode:Lr,decode:Nr};function zr(e){return{encode:t=>t.map(e.encode),decode:t=>{let n=le.array(t);if(n===void 0)return;let r=$t(n,e.decode);if(r.length===n.length)return r}}}function Br(e){return{encode:t=>t!==void 0?e.encode(g(t)):null,decode:t=>dn(le.$$null(t))?te(void 0):on(e.decode(t),n=>te(n))}}function Wr(e,t){return{encode:n=>[e.encode(n[0]),t.encode(n[1])],decode:n=>{let r=Array.isArray(n)?n:void 0;if(r===void 0||r.length!==2)return;let l=r[0],i=r[1],u=e.decode(l),d=t.decode(i);if(u!==void 0&&d!==void 0)return[g(u),g(d)]}}}function Hr(e,t,n){return{encode:r=>[e.encode(r[0]),t.encode(r[1]),n.encode(r[2])],decode:r=>{let l=Array.isArray(r)?r:void 0;if(l===void 0||l.length!==3)return;let i=l[0],u=l[1],d=l[2],f=e.decode(i),_=t.decode(u),O=n.decode(d);if(f!==void 0&&_!==void 0&&O!==void 0)return[g(f),g(_),g(O)]}}}function Xr(e){return{encode:t=>{let n={};return Object.entries(t).forEach(r=>{n[r[0]]=e.encode(r[1])}),n},decode:t=>{let n=le.object(t);if(n===void 0)return;let r={},l={contents:!0};if(Object.entries(n).forEach(i=>{let u=e.decode(i[1]);u!==void 0?r[i[0]]=g(u):l.contents=!1}),l.contents)return r}}}function Vr(e,t){return{encode:e,decode:t}}let Kr={int:Or,float:Mr,string:Ir,bool:Gr,array:zr,option:Br,tuple2:Wr,tuple3:Hr,dict:Xr,make:Vr},_e={};function Vt(e,t,n){if(Se){_e[e]=n.encode(o.peek(t));return}}function Yr(){Object.keys(_e).forEach(e=>{Le(_e,e)})}function Kt(e){return e.replaceAll("<\/script>","<\\/script>").replaceAll("<!--","<\\!--")}function qr(e){let t=H(JSON.stringify(_e),"{}"),n=Kt(t);return"<script"+(e!==void 0?' nonce="'+st.escape(e)+'"':"")+">window.__XOTE_STATE__="+n+";<\/script>"}function Yt(){return Ce?window.__XOTE_STATE__||{}:{}}function qt(e,t,n){if(!Ce)return;let l=Yt()[e];if(l===void 0)return;let i=n.decode(l);if(i!==void 0)return o.set(t,g(i))}function Ut(e,t,n){Xt(()=>Vt(e,t,n),()=>qt(e,t,n))}function Ur(e,t,n){let r=o.make(t,void 0,void 0);return Ut(e,r,n),r}const Jr=Object.freeze(Object.defineProperty({__proto__:null,Codec:Kr,clear:Yr,escapeForScript:Kt,generateScript:qr,getClientState:Yt,make:Ur,register:Vt,registry:_e,restore:qt,sync:Ut},Symbol.toStringTag,{value:"Module"}));let Ve={};function Qr(e){let t=Ve[e];if(t!==void 0){let n=t+1|0;return Ve[e]=n,e+("/"+n)}return Ve[e]=1,e}function Zr(e){return Array.from(e.childNodes||[])}function ye(e,t){if(e.nodeType!==8)return!1;let n=e.nodeValue;return n==null?!1:n===t}function Ae(e,t){if(e.nodeType!==8)return!1;let n=e.nodeValue;return n==null?!1:n.startsWith(t)}function Ke(e){if(e.nodeType!==8)return;let t=e.nodeValue;if(t!=null&&t.startsWith("k:"))return t.slice(2)}function ae(e){return{current:je(e.firstChild),parent:e}}function el(e){return e.current}function I(e){let t=e.current;return t!==void 0&&(e.current=je(g(t).nextSibling)),t}function Q(e,t){return(()=>{for(;;){let r=e.current;if(r===void 0)return;let l=g(r);if(ye(l,t))return I(e),te(l);I(e)}})()}function xe(e,t){let n=[];return(()=>{for(;;){let l=e.current;if(l===void 0)return;let i=g(l);if(ye(i,t)){I(e);return}n.push(i),I(e)}})(),n}let tl={elementNode:1,textNode:3,commentNode:8,getChildNodes:Zr,isMarker:ye,isMarkerPrefix:Ae,extractKey:Ke,make:ae,peek:el,next:I,skipUntilMarker:Q,collectUntilMarker:xe},nl=Qr("Xote__Hydration.HydrationMismatch");function Ye(e){console.warn("[Xote Hydration] "+e)}function rl(e,t){for(;;){let n=e;switch(n.TAG){case"Element":let r=n.children,l=n.events,i=n.attrs,u=s.createOwner();return s.setOwner(t,u),s.runWithOwner(u,()=>{i.forEach(y=>{let h=y[1],S=y[0];switch(h.TAG){case"Static":return;case"SignalValue":let $=h._0,c=T.run(()=>{pe.setAttrOrProp(t,S,o.get($))},void 0);return s.addDisposer(u,c);case"Compute":let m=h._0,E=T.run(()=>{pe.setAttrOrProp(t,S,m())},void 0);return s.addDisposer(u,E)}}),l.forEach(y=>{t.addEventListener(y[0],y[1])});let w=ae(t);r.forEach(y=>Z(y,w))});case"Text":return;case"SignalText":let d=n._0,f=s.createOwner();return s.setOwner(t,f),s.runWithOwner(f,()=>{let w=T.run(()=>{t.textContent=o.get(d)},void 0);s.addDisposer(f,w)});case"Fragment":let _=ae(t);n._0.forEach(w=>Z(w,_));return;case"SignalFragment":let O=n._0,P=s.createOwner();return s.setOwner(t,P),s.runWithOwner(P,()=>{let w=T.run(()=>{let y=o.get(O);Array.from(t.childNodes||[]).forEach(S=>s.disposeOwner(H(s.getOwner(S),s.createOwner()))),t.innerHTML="",y.forEach(S=>{let $=J.render(S);t.appendChild($)})},void 0);s.addDisposer(P,w)});case"LazyComponent":let D=s.createOwner(),z=s.runWithOwner(D,n._0);s.setOwner(t,D),e=z;continue;case"KeyedList":let v=n.renderItem,B=n.keyFn,L=n.signal,G=s.createOwner();s.setOwner(t,G);let M={},W=ae(t);return Q(W,"kl"),(()=>{for(;;){let w=W.current;if(w===void 0)return;let y=g(w);if(!Ae(y,"k:"))if(ye(y,"/kl")){I(W);return}else return;let h=H(Ke(y),"");I(W);let $=xe(W,"/k").find(c=>c.nodeType===1);if($!==void 0){let c=o.peek(L),m=H(c.find(E=>B(E)===h),{});M[h]={key:h,item:m,element:g($)}}}})(),s.runWithOwner(G,()=>{let w=document.createComment(" keyed-list-start "),y=document.createComment(" keyed-list-end "),h=t.firstChild;h==null?t.appendChild(w):t.insertBefore(w,h),t.appendChild(y);let S=()=>{let c=o.get(L),m={};c.forEach(p=>{m[B(p)]=p});let E=[];Object.keys(M).forEach(p=>{if(m[p]===void 0){E.push(p);return}}),E.forEach(p=>{let a=M[p];if(a!==void 0){J.disposeElement(a.element),a.element.remove(),Le(M,p);return}});let k=[],C={};c.forEach(p=>{let a=B(p),b=M[a];if(b!==void 0){if(b.item!==p){C[a]=!0;let Oe=v(p),Ue=J.render(Oe),Pe={key:a,item:p,element:Ue};k.push(Pe),M[a]=Pe;return}k.push(b);return}let se=v(p),qe=J.render(se),De={key:a,item:p,element:qe};k.push(De),M[a]=De});let V={contents:w.nextSibling};k.forEach(p=>{let a=V.contents;if(a==null){t.insertBefore(p.element,y);return}if(a===y){t.insertBefore(p.element,y);return}if(a===p.element){V.contents=a.nextSibling;return}H(C[p.key],!1)?(J.disposeElement(a),t.replaceChild(p.element,a),V.contents=p.element.nextSibling):(t.insertBefore(p.element,a),V.contents=p.element.nextSibling)})},$=T.run(()=>{S()},void 0);s.addDisposer(G,$)})}}}function Z(e,t){switch(e.TAG){case"Element":let n=e.children,r=e.events,l=e.attrs,i=I(t);if(i===void 0)return Ye("Missing DOM element for Element node");let u=g(i),d=s.createOwner();return s.setOwner(u,d),s.runWithOwner(d,()=>{l.forEach(S=>{let $=S[1],c=S[0];switch($.TAG){case"Static":return;case"SignalValue":let m=$._0,E=T.run(()=>{pe.setAttrOrProp(u,c,o.get(m))},void 0);return s.addDisposer(d,E);case"Compute":let k=$._0,C=T.run(()=>{pe.setAttrOrProp(u,c,k())},void 0);return s.addDisposer(d,C)}}),r.forEach(S=>{u.addEventListener(S[0],S[1])});let h=ae(u);n.forEach(S=>Z(S,h))});case"Text":I(t);return;case"SignalText":let f=e._0;Q(t,"$");let _=I(t);if(_===void 0)return Ye("Missing text node for SignalText");let O=g(_),P=s.createOwner();s.setOwner(O,P),s.runWithOwner(P,()=>{let h=T.run(()=>{O.textContent=o.get(f)},void 0);s.addDisposer(P,h)}),Q(t,"/$");return;case"Fragment":e._0.forEach(h=>Z(h,t));return;case"SignalFragment":let D=e._0;Q(t,"#");let z=xe(t,"/#"),v=document.createElement("div");v.setAttribute("style","display: contents");let B=z[0],L=B!==void 0?B.parentNode:void 0;z.forEach(h=>{v.appendChild(h)});let G=t.current;if(L!==void 0){let h=g(L);G!==void 0?h.insertBefore(v,g(G)):h.appendChild(v)}let M=s.createOwner();return s.setOwner(v,M),s.runWithOwner(M,()=>{let h=T.run(()=>{let S=o.get(D);Array.from(v.childNodes||[]).forEach(J.disposeElement),v.innerHTML="",S.forEach(c=>{let m=J.render(c);v.appendChild(m)})},void 0);s.addDisposer(M,h)});case"LazyComponent":Q(t,"lc");let W=e._0();Z(W,t),Q(t,"/lc");return;case"KeyedList":let ce=e.keyFn,w=e.signal;return Q(t,"kl"),(()=>{for(;;){let h=t.current;if(h===void 0)return;let S=g(h);if(!Ae(S,"k:"))if(ye(S,"/kl")){I(t);return}else return;let $=H(Ke(S),"");I(t);let m=xe(t,"/k").find(E=>E.nodeType===1);if(m!==void 0){let E=o.peek(w),k=H(E.find(C=>ce(C)===$),{});g(m)}}})()}}function Jt(e,t,n){let r=n!==void 0?n:{},l=e(),i=ae(t),u=i.current;u!==void 0&&Ae(g(u),"xote-root:")&&I(i),Z(l,i),window.__XOTE_HYDRATED__=!0;let d=r.onHydrated;if(d!==void 0)return d()}function ll(e,t,n){let r=n!==void 0?n:{},l=document.getElementById(t);if(l==null){console.error("[Xote Hydration] Container element not found: "+t);return}else return Jt(e,l,r)}const il=Object.freeze(Object.defineProperty({__proto__:null,Component:void 0,DOM:void 0,DOMWalker:tl,HydrationMismatch:nl,Reactivity:void 0,hydrate:Jt,hydrateById:ll,hydrateNode:rl,hydrateNodeWithWalker:Z,logHydrationWarning:Ye},Symbol.toStringTag,{value:"Module"}));function ul(e){return e.TAG==="Reactive"?o.get(e._0):e._0}function ol(e){return{TAG:"Static",_0:e}}function dl(e){return{TAG:"Reactive",_0:e}}const al=Object.freeze(Object.defineProperty({__proto__:null,$$static:ol,get:ul,reactive:dl},Symbol.toStringTag,{value:"Module"}));let cl=o.Id,sl=o.Scheduler,fl=o.Core,pl=o.make,ml=o.makeForComputed,hl=o.get,gl=o.peek,Sl=o.set,_l=o.update,yl=o.batch,bl=o.untrack,El={Id:cl,Scheduler:sl,Core:fl,make:pl,makeForComputed:ml,get:hl,peek:gl,set:Sl,update:_l,batch:yl,untrack:bl},wl=R.Id,kl=R.Signal,Tl=R.Core,vl=R.Scheduler,$l=R.make,Cl=R.dispose,Al={Id:wl,Signal:kl,Core:Tl,Scheduler:vl,make:$l,dispose:Cl},xl=T.Id,Dl=T.Core,Ol=T.Scheduler,Pl=T.run,Rl={Id:xl,Core:Dl,Scheduler:Ol,run:Pl},Ml=ar,jl=Ln,Fl=yr,Il=al,Ll=Fn,Nl=Ar,Gl=Jr,zl=il;A.Component=Ml,A.Computed=Al,A.Effect=Rl,A.Hydration=zl,A.ReactiveProp=Il,A.Route=jl,A.Router=Fl,A.SSR=Ll,A.SSRContext=Nl,A.SSRState=Gl,A.Signal=El,Object.defineProperty(A,Symbol.toStringTag,{value:"Module"})}));
|
|
17
|
+
</html>`}const Wn=Object.freeze(Object.defineProperty({__proto__:null,Attributes:In,Component:void 0,Html:ht,Markers:Fn,generateHydrationScript:Dt,renderDocument:Ln,renderNodeToString:J,renderToString:Ct,renderToStringWithRoot:Nn},Symbol.toStringTag,{value:"Module"}));function At(e,t){let n=e.length,r=new Array(n),i=0;for(let l=0;l<n;++l){let u=e[l],d=t(u);d!==void 0&&(r[i]=g(d),i=i+1|0)}return r.length=i,r}function Gn(e,t){let n=0;for(;;){let r=n;if(r===e.length)return;let i=t(e[r]);if(i!==void 0)return i;n=r+1|0}}function xt(e){return At(e.split("/"),t=>{if(t!=="")return t.startsWith(":")?{TAG:"Param",_0:t.slice(1)}:{TAG:"Static",_0:t}})}function Ot(e,t){let n=t.split("/").filter(l=>l!=="");if(e.length!==n.length)return"NoMatch";let r={};return e.every((l,u)=>{let d=n[u];return l.TAG==="Static"?d===l._0:(r[l._0]=d,!0)})?{TAG:"Match",_0:r}:"NoMatch"}function We(e,t){return Ot(xt(e),t)}const zn=Object.freeze(Object.defineProperty({__proto__:null,match:We,matchPath:Ot,parsePattern:xt},Symbol.toStringTag,{value:"Module"}));function Ge(e,t){delete e[t]}let Pt="http://www.w3.org/2000/svg",Rt=["svg","path","circle","ellipse","line","polygon","polyline","rect","g","defs","clipPath","mask","pattern","marker","symbol","use","text","tspan","image","foreignObject","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComposite","feFlood","feGaussianBlur","feMerge","feMergeNode","feOffset","animate","animateTransform","desc","title","metadata"],ve={};Rt.forEach(e=>{ve[e]=!0});function Bn(e){return Ne(ve[e])}function pe(e,t,n){switch(t){case"checked":e.checked=n==="true";return;case"disabled":e.disabled=n==="true";return;case"aria-expanded":case"aria-hidden":case"aria-selected":case"multiple":case"readonly":case"required":break;case"value":e.value=n;return;default:e.setAttribute(t,n);return}n==="true"?e.setAttribute(t,""):e.removeAttribute(t)}let he={setAttrOrProp:pe},$e={contents:void 0};function Hn(){return{disposers:[],computeds:[]}}function ue(e,t){let n=$e.contents;$e.contents=e;let r=t();return $e.contents=n,r}function oe(e,t){e.disposers.push(t)}function Mt(e){e.disposers.forEach(t=>t.dispose()),e.computeds.forEach(t=>j.dispose(t))}function de(e,t){e.__xote_owner__=t}function jt(e){return Ie(e.__xote_owner__)}let c={currentOwner:$e,createOwner:Hn,runWithOwner:ue,addDisposer:oe,disposeOwner:Mt,setOwner:de,getOwner:jt};function Ft(e,t){return[e,{TAG:"Static",_0:t}]}function It(e,t){return[e,{TAG:"SignalValue",_0:t}]}function Nt(e,t){return[e,{TAG:"Compute",_0:t}]}let Xn={$$static:Ft,signal:It,computed:Nt};function me(e){let t=jt(e);t!==void 0&&Mt(t),Array.from(e.childNodes||[]).forEach(me)}function K(e){switch(e.TAG){case"Element":let t=e.children,n=e.events,r=e.attrs,i=e.tag,l=Ne(ve[i])?document.createElementNS(Pt,i):document.createElement(i),u={disposers:[],computeds:[]};return de(l,u),ue(u,()=>{r.forEach(a=>{let p=a[1],v=a[0];switch(p.TAG){case"Static":return pe(l,v,p._0);case"SignalValue":let C=p._0;pe(l,v,o.peek(C));let M=T.runWithDisposer(()=>{pe(l,v,o.get(C))},void 0);return oe(u,M);case"Compute":let h=p._0,_=T.runWithDisposer(()=>{pe(l,v,h())},void 0);return oe(u,_)}}),n.forEach(a=>{l.addEventListener(a[0],a[1])}),t.forEach(a=>{let p=K(a);l.appendChild(p)})}),l;case"Text":return document.createTextNode(e._0);case"SignalText":let d=e._0,s=document.createTextNode(o.peek(d)),S={disposers:[],computeds:[]};return de(s,S),ue(S,()=>{let a=T.runWithDisposer(()=>{s.textContent=o.get(d)},void 0);oe(S,a)}),s;case"Fragment":let x=document.createDocumentFragment();return e._0.forEach(a=>{let p=K(a);x.appendChild(p)}),x;case"SignalFragment":let L=e._0,W={disposers:[],computeds:[]},O=document.createElement("div");return O.setAttribute("style","display: contents"),de(O,W),ue(W,()=>{let a=T.runWithDisposer(()=>{let p=o.get(L);Array.from(O.childNodes||[]).forEach(me),O.innerHTML="",p.forEach(C=>{let M=K(C);O.appendChild(M)})},void 0);oe(W,a)}),O;case"LazyComponent":let $={disposers:[],computeds:[]},H=ue($,e._0),z=K(H);return de(z,$),z;case"KeyedList":let B=e.renderItem,P=e.keyFn,X=e.signal,se={disposers:[],computeds:[]},k=document.createComment(" keyed-list-start "),y=document.createComment(" keyed-list-end ");de(k,se);let f={},b=()=>{let a=y.parentNode;if(a==null)return;let p=o.get(X),v={};p.forEach(m=>{v[P(m)]=m});let C=[];Object.keys(f).forEach(m=>{if(v[m]===void 0){C.push(m);return}}),C.forEach(m=>{let w=f[m];if(w!==void 0){me(w.element),w.element.remove(),Ge(f,m);return}});let M=[],h={};p.forEach(m=>{let w=P(m),fe=f[w];if(fe!==void 0){if(fe.item!==m){h[w]=!0;let Me=B(m),ql=K(Me),rn={key:w,item:m,element:ql};M.push(rn),f[w]=rn;return}M.push(fe);return}let Pe=B(m),Qe=K(Pe),Re={key:w,item:m,element:Qe};M.push(Re),f[w]=Re});let _={contents:k.nextSibling};M.forEach(m=>{let w=_.contents;if(w==null){a.insertBefore(m.element,y);return}if(w===y){a.insertBefore(m.element,y);return}if(w===m.element){_.contents=w.nextSibling;return}V(h[m.key],!1)?(me(w),a.replaceChild(m.element,w),_.contents=m.element.nextSibling):(a.insertBefore(m.element,w),_.contents=m.element.nextSibling)})},E=document.createDocumentFragment();return E.appendChild(k),o.peek(X).forEach(a=>{let p=P(a),v=B(a),C=K(v),M={key:p,item:a,element:C};f[p]=M,E.appendChild(C)}),E.appendChild(y),ue(se,()=>{let a=T.runWithDisposer(()=>{b()},void 0);oe(se,a)}),E}}let Q={disposeElement:me,render:K};function Vn(e){return{TAG:"Text",_0:e}}function Kn(e){return{TAG:"SignalText",_0:j.make(e,void 0)}}function Yn(e){return{TAG:"SignalText",_0:j.make(e,void 0)}}function qn(e){return{TAG:"SignalText",_0:j.make(()=>e().toString(),void 0)}}function Un(e){return{TAG:"SignalText",_0:j.make(()=>e().toString(),void 0)}}function Jn(e){return{TAG:"Text",_0:e.toString()}}function Qn(e){return{TAG:"Text",_0:e.toString()}}function Zn(e){return{TAG:"Fragment",_0:e}}function ze(e){return{TAG:"SignalFragment",_0:e}}function er(e,t){return{TAG:"SignalFragment",_0:j.make(()=>o.get(e).map(t),void 0)}}function tr(e,t,n){return{TAG:"KeyedList",signal:e,keyFn:t,renderItem:n}}function G(e,t,n,r,i){let l=t!==void 0?t:[].map(s=>s),u=n!==void 0?n:[].map(s=>s),d=r!==void 0?r:[].map(s=>s);return{TAG:"Element",tag:e,attrs:l,events:u,children:d}}function nr(e,t,n,r){return G("div",e,t,n)}function rr(e,t,n,r){return G("span",e,t,n)}function lr(e,t,n,r){return G("button",e,t,n)}function ir(e,t,n){return G("input",e,t,void 0)}function ur(e,t,n,r){return G("h1",e,t,n)}function or(e,t,n,r){return G("h2",e,t,n)}function dr(e,t,n,r){return G("h3",e,t,n)}function ar(e,t,n,r){return G("p",e,t,n)}function cr(e,t,n,r){return G("ul",e,t,n)}function sr(e,t,n,r){return G("li",e,t,n)}function Be(e,t,n,r){return G("a",e,t,n)}function fr(){return{TAG:"Text",_0:""}}function Lt(e,t){let n=K(e);t.appendChild(n)}function pr(e,t){let n=document.getElementById(t);if(n==null){console.error("Container element not found: "+t);return}else return Lt(e,n)}let hr=ve,ge=Ft,He=It,Wt=Nt;const mr=Object.freeze(Object.defineProperty({__proto__:null,$$null:fr,Attributes:Xn,DOM:he,Reactivity:c,Render:Q,a:Be,attr:ge,button:lr,computedAttr:Wt,div:nr,element:G,float:Qn,fragment:Zn,h1:ur,h2:or,h3:dr,input:ir,int:Jn,isSvgTag:Bn,keyedList:tr,li:sr,list:er,mount:Lt,mountById:pr,p:ar,reactiveFloat:Un,reactiveInt:qn,reactiveString:Yn,signalAttr:He,signalFragment:ze,span:rr,svgNamespace:Pt,svgTagSet:hr,svgTags:Rt,text:Vn,textSignal:Kn,ul:cr},Symbol.toStringTag,{value:"Module"}));function gr(){return Symbol.for("xote.router.state")}function I(){let e=globalThis[Symbol.for("xote.router.state")];if(e!==void 0)return e;let t={location:o.make({pathname:"/",search:"",hash:""},void 0,void 0),basePath:{contents:"/"},initialized:!1,popStateHandler:void 0};return globalThis[Symbol.for("xote.router.state")]=t,t}function Sr(){return I().location}function _r(){return I().basePath}function le(e){if(!I().initialized)return console.warn("[Xote Router] "+e+" called before Router.init(). Make sure to call Router.init() at your app entry point. This may cause incorrect routing behavior.")}function Xe(e){if(e===""||e==="/")return"/";let t=e.startsWith("/")?e:"/"+e;return t.endsWith("/")?t.slice(0,t.length-1|0):t}function Gt(e){let t=I().basePath.contents;return t==="/"?e:e===t?"/":e.startsWith(t+"/")?e.slice(t.length):e}function Se(e){let t=I().basePath.contents;return t==="/"?e:e==="/"?t:t+e}function zt(){let e=window.scrollX||window.pageXOffset||0,t=window.scrollY||window.pageYOffset||0;return[e,t]}function Ce(e,t){window.scrollTo(e,t)}function Bt(e,t){return{scrollX:e,scrollY:t}}function Ve(){return{}}function Ht(e){let t=e&&e.scrollX,n=e&&e.scrollY;if(t!=null&&n!=null)return[t,n]}function Xt(){let e=zt(),t=Bt(e[0],e[1]),n=window.location.href;window.history.replaceState(t,"",n)}function Ke(){let e=window.location.pathname;return{pathname:Gt(e),search:window.location.search,hash:window.location.hash}}function yr(e,t){let n=e!==void 0?e:"/",r=I(),i=Xe(n);if(r.basePath.contents=i,o.set(r.location,Ke()),r.initialized)return;let l=u=>{o.set(I().location,Ke());let d=window["history.state"];if(d==null)return;let s=Ht(d);if(s!==void 0)return Ce(s[0],s[1])};r.popStateHandler=l,window.addEventListener("popstate",l),r.initialized=!0}function br(e,t,n,r,i){let l=e!==void 0?e:"/",u=t!==void 0?t:"/",d=n!==void 0?n:"",s=r!==void 0?r:"",S=I(),x=Xe(l);S.basePath.contents=x,o.set(S.location,{pathname:u,search:d,hash:s}),S.initialized=!0}function Ye(e,t,n,r){let i=t!==void 0?t:"",l=n!==void 0?n:"";le("Router.push()"),Xt();let u={pathname:e,search:i,hash:l},s=Se(e)+i+l;window.history.pushState(Ve(),"",s),o.set(I().location,u),Ce(0,0)}function Er(e,t,n,r){let i=t!==void 0?t:"",l=n!==void 0?n:"";le("Router.replace()");let u={pathname:e,search:i,hash:l},s=Se(e)+i+l;window.history.replaceState(Ve(),"",s),o.set(I().location,u),Ce(0,0)}function wr(e,t){return le("Router.route()"),ze(j.make(()=>{let n=o.get(I().location),r=We(e,n.pathname);return typeof r!="object"?[]:[t(r._0)]},void 0))}function kr(e){return le("Router.routes()"),ze(j.make(()=>{let t=o.get(I().location),n=Gn(e,r=>{let i=We(r.pattern,t.pathname);if(typeof i=="object")return r.render(i._0)});return n!==void 0?[n]:[]},void 0))}function Tr(e,t,n,r){let i=t!==void 0?t:[],l=n!==void 0?n:[];le("Router.link()");let u=d=>{d.preventDefault(),Ye(e,void 0,void 0)};return Be(i.concat([ge("href",Se(e))]),[["click",u]],l)}function Vt(e){return e&&typeof e=="object"&&"TAG"in e&&(e.TAG==="Static"||e.TAG==="Reactive")}function ae(e,t){return Vt(t)?t.TAG==="Reactive"?He(e,t._0):ge(e,t._0):typeof t=="function"?Wt(e,t):typeof t=="object"?He(e,t):ge(e,t)}function Kt(e){let t=[],n=e.class;n!==void 0&&t.push(ae("class",g(n)));let r=e.id;r!==void 0&&t.push(ae("id",g(r)));let i=e.style;i!==void 0&&t.push(ae("style",g(i)));let l=e.target;l!==void 0&&t.push(ae("target",g(l)));let u=e["aria-label"];return u!==void 0&&t.push(ae("aria-label",g(u))),t}function Yt(e){let t=e.children;return t!==void 0?t.TAG==="Fragment"?t._0:[t]:[]}function De(e){le("Router.Link");let t=n=>{n.preventDefault(),Ye(e.to,void 0,void 0);let r=e.onClick;if(r!==void 0)return r(n)};return Be(Kt(e).concat([ge("href",Se(e.to))]),[["click",t]],Yt(e))}function qt(e,t,n){return De(e)}const vr=Object.freeze(Object.defineProperty({__proto__:null,Component:void 0,Link:{ReactiveProp:void 0,isReactiveProp:Vt,convertAttrValue:ae,propsToAttrs:Kt,getChildren:Yt,make:De,jsx:De,jsxs:De,jsxKeyed:qt,jsxsKeyed:qt},Route:void 0,addBasePath:Se,basePath:_r,emptyHistoryState:Ve,getCurrentLocation:Ke,getGlobalState:I,getScrollFromState:Ht,getScrollPosition:zt,getSymbolKey:gr,init:yr,initSSR:br,link:Tr,location:Sr,makeHistoryState:Bt,normalizeBasePath:Xe,push:Ye,replace:Er,route:wr,routes:kr,saveScrollPosition:Xt,scrollTo:Ce,stripBasePath:Gt,warnIfNotInitialized:le},Symbol.toStringTag,{value:"Module"}));function $r(e){if(typeof e=="boolean")return e}function Cr(e){if(e===null)return null}function Dr(e){if(typeof e=="string")return e}function Ar(e){if(typeof e=="number")return e}function xr(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e}function Or(e){if(Array.isArray(e))return e}let ie={bool:$r,$$null:Cr,string:Dr,float:Ar,object:xr,array:Or},_e=typeof document>"u",Ae=!_e;function Pr(e){if(_e)return ne(e())}function Rr(e){if(Ae)return ne(e())}function Ut(e,t){return _e?e():t()}const Mr=Object.freeze(Object.defineProperty({__proto__:null,isClient:Ae,isServer:_e,match:Ut,onClient:Rr,onServer:Pr},Symbol.toStringTag,{value:"Module"}));function jr(e){return e}function Fr(e){let t=ie.float(e);if(t!==void 0)return t|0}let Ir={encode:jr,decode:Fr};function Nr(e){return e}function Lr(e){return ie.float(e)}let Wr={encode:Nr,decode:Lr};function Gr(e){return e}function zr(e){return ie.string(e)}let Br={encode:Gr,decode:zr};function Hr(e){return e}function Xr(e){return ie.bool(e)}let Vr={encode:Hr,decode:Xr};function Kr(e){return{encode:t=>t.map(e.encode),decode:t=>{let n=ie.array(t);if(n===void 0)return;let r=At(n,e.decode);if(r.length===n.length)return r}}}function Yr(e){return{encode:t=>t!==void 0?e.encode(g(t)):null,decode:t=>Ne(ie.$$null(t))?ne(void 0):fn(e.decode(t),n=>ne(n))}}function qr(e,t){return{encode:n=>[e.encode(n[0]),t.encode(n[1])],decode:n=>{let r=Array.isArray(n)?n:void 0;if(r===void 0||r.length!==2)return;let i=r[0],l=r[1],u=e.decode(i),d=t.decode(l);if(u!==void 0&&d!==void 0)return[g(u),g(d)]}}}function Ur(e,t,n){return{encode:r=>[e.encode(r[0]),t.encode(r[1]),n.encode(r[2])],decode:r=>{let i=Array.isArray(r)?r:void 0;if(i===void 0||i.length!==3)return;let l=i[0],u=i[1],d=i[2],s=e.decode(l),S=t.decode(u),x=n.decode(d);if(s!==void 0&&S!==void 0&&x!==void 0)return[g(s),g(S),g(x)]}}}function Jr(e){return{encode:t=>{let n={};return Object.entries(t).forEach(r=>{n[r[0]]=e.encode(r[1])}),n},decode:t=>{let n=ie.object(t);if(n===void 0)return;let r={},i={contents:!0};if(Object.entries(n).forEach(l=>{let u=e.decode(l[1]);u!==void 0?r[l[0]]=g(u):i.contents=!1}),i.contents)return r}}}function Qr(e,t){return{encode:e,decode:t}}let Zr={int:Ir,float:Wr,string:Br,bool:Vr,array:Kr,option:Yr,tuple2:qr,tuple3:Ur,dict:Jr,make:Qr},ye={};function Jt(e,t,n){if(_e){ye[e]=n.encode(o.peek(t));return}}function el(){Object.keys(ye).forEach(e=>{Ge(ye,e)})}function Qt(e){return e.replaceAll("<\/script>","<\\/script>").replaceAll("<!--","<\\!--")}function tl(e){let t=V(JSON.stringify(ye),"{}"),n=Qt(t);return"<script"+(e!==void 0?' nonce="'+ht.escape(e)+'"':"")+">window.__XOTE_STATE__="+n+";<\/script>"}function Zt(){return Ae?window.__XOTE_STATE__||{}:{}}function en(e,t,n){if(!Ae)return;let i=Zt()[e];if(i===void 0)return;let l=n.decode(i);if(l!==void 0)return o.set(t,g(l))}function tn(e,t,n){Ut(()=>Jt(e,t,n),()=>en(e,t,n))}function nl(e,t,n){let r=o.make(t,void 0,void 0);return tn(e,r,n),r}const rl=Object.freeze(Object.defineProperty({__proto__:null,Codec:Zr,clear:el,escapeForScript:Qt,generateScript:tl,getClientState:Zt,make:nl,register:Jt,registry:ye,restore:en,sync:tn},Symbol.toStringTag,{value:"Module"}));let qe={};function ll(e){let t=qe[e];if(t!==void 0){let n=t+1|0;return qe[e]=n,e+("/"+n)}return qe[e]=1,e}function il(e){return Array.from(e.childNodes||[])}function be(e,t){if(e.nodeType!==8)return!1;let n=e.nodeValue;return n==null?!1:n===t}function xe(e,t){if(e.nodeType!==8)return!1;let n=e.nodeValue;return n==null?!1:n.startsWith(t)}function Ue(e){if(e.nodeType!==8)return;let t=e.nodeValue;if(t!=null&&t.startsWith("k:"))return t.slice(2)}function ce(e){return{current:Ie(e.firstChild),parent:e}}function ul(e){return e.current}function N(e){let t=e.current;return t!==void 0&&(e.current=Ie(g(t).nextSibling)),t}function Z(e,t){return(()=>{for(;;){let r=e.current;if(r===void 0)return;let i=g(r);if(be(i,t))return N(e),ne(i);N(e)}})()}function Oe(e,t){let n=[];return(()=>{for(;;){let i=e.current;if(i===void 0)return;let l=g(i);if(be(l,t)){N(e);return}n.push(l),N(e)}})(),n}let ol={elementNode:1,textNode:3,commentNode:8,getChildNodes:il,isMarker:be,isMarkerPrefix:xe,extractKey:Ue,make:ce,peek:ul,next:N,skipUntilMarker:Z,collectUntilMarker:Oe},dl=ll("Xote__Hydration.HydrationMismatch");function Je(e){console.warn("[Xote Hydration] "+e)}function al(e,t){for(;;){let n=e;switch(n.TAG){case"Element":let r=n.children,i=n.events,l=n.attrs,u=c.createOwner();return c.setOwner(t,u),c.runWithOwner(u,()=>{l.forEach(y=>{let f=y[1],b=y[0];switch(f.TAG){case"Static":return;case"SignalValue":let E=f._0,R=T.runWithDisposer(()=>{he.setAttrOrProp(t,b,o.get(E))},void 0);return c.addDisposer(u,R);case"Compute":let a=f._0,p=T.runWithDisposer(()=>{he.setAttrOrProp(t,b,a())},void 0);return c.addDisposer(u,p)}}),i.forEach(y=>{t.addEventListener(y[0],y[1])});let k=ce(t);r.forEach(y=>ee(y,k))});case"Text":return;case"SignalText":let d=n._0,s=c.createOwner();return c.setOwner(t,s),c.runWithOwner(s,()=>{let k=T.runWithDisposer(()=>{t.textContent=o.get(d)},void 0);c.addDisposer(s,k)});case"Fragment":let S=ce(t);n._0.forEach(k=>ee(k,S));return;case"SignalFragment":let x=n._0,L=c.createOwner();return c.setOwner(t,L),c.runWithOwner(L,()=>{let k=T.runWithDisposer(()=>{let y=o.get(x);Array.from(t.childNodes||[]).forEach(b=>c.disposeOwner(V(c.getOwner(b),c.createOwner()))),t.innerHTML="",y.forEach(b=>{let E=Q.render(b);t.appendChild(E)})},void 0);c.addDisposer(L,k)});case"LazyComponent":let W=c.createOwner(),O=c.runWithOwner(W,n._0);c.setOwner(t,W),e=O;continue;case"KeyedList":let $=n.renderItem,H=n.keyFn,z=n.signal,B=c.createOwner();c.setOwner(t,B);let P={},X=ce(t);return Z(X,"kl"),(()=>{for(;;){let k=X.current;if(k===void 0)return;let y=g(k);if(!xe(y,"k:"))if(be(y,"/kl")){N(X);return}else return;let f=V(Ue(y),"");N(X);let E=Oe(X,"/k").find(R=>R.nodeType===1);if(E!==void 0){let R=o.peek(z),a=V(R.find(p=>H(p)===f),{});P[f]={key:f,item:a,element:g(E)}}}})(),c.runWithOwner(B,()=>{let k=document.createComment(" keyed-list-start "),y=document.createComment(" keyed-list-end "),f=t.firstChild;f==null?t.appendChild(k):t.insertBefore(k,f),t.appendChild(y);let b=()=>{let R=o.get(z),a={};R.forEach(h=>{a[H(h)]=h});let p=[];Object.keys(P).forEach(h=>{if(a[h]===void 0){p.push(h);return}}),p.forEach(h=>{let _=P[h];if(_!==void 0){Q.disposeElement(_.element),_.element.remove(),Ge(P,h);return}});let v=[],C={};R.forEach(h=>{let _=H(h),m=P[_];if(m!==void 0){if(m.item!==h){C[_]=!0;let Qe=$(h),Re=Q.render(Qe),Me={key:_,item:h,element:Re};v.push(Me),P[_]=Me;return}v.push(m);return}let w=$(h),fe=Q.render(w),Pe={key:_,item:h,element:fe};v.push(Pe),P[_]=Pe});let M={contents:k.nextSibling};v.forEach(h=>{let _=M.contents;if(_==null){t.insertBefore(h.element,y);return}if(_===y){t.insertBefore(h.element,y);return}if(_===h.element){M.contents=_.nextSibling;return}V(C[h.key],!1)?(Q.disposeElement(_),t.replaceChild(h.element,_),M.contents=h.element.nextSibling):(t.insertBefore(h.element,_),M.contents=h.element.nextSibling)})},E=T.runWithDisposer(()=>{b()},void 0);c.addDisposer(B,E)})}}}function ee(e,t){switch(e.TAG){case"Element":let n=e.children,r=e.events,i=e.attrs,l=N(t);if(l===void 0)return Je("Missing DOM element for Element node");let u=g(l),d=c.createOwner();return c.setOwner(u,d),c.runWithOwner(d,()=>{i.forEach(b=>{let E=b[1],R=b[0];switch(E.TAG){case"Static":return;case"SignalValue":let a=E._0,p=T.runWithDisposer(()=>{he.setAttrOrProp(u,R,o.get(a))},void 0);return c.addDisposer(d,p);case"Compute":let v=E._0,C=T.runWithDisposer(()=>{he.setAttrOrProp(u,R,v())},void 0);return c.addDisposer(d,C)}}),r.forEach(b=>{u.addEventListener(b[0],b[1])});let f=ce(u);n.forEach(b=>ee(b,f))});case"Text":N(t);return;case"SignalText":let s=e._0;Z(t,"$");let S=N(t);if(S===void 0)return Je("Missing text node for SignalText");let x=g(S),L=c.createOwner();c.setOwner(x,L),c.runWithOwner(L,()=>{let f=T.runWithDisposer(()=>{x.textContent=o.get(s)},void 0);c.addDisposer(L,f)}),Z(t,"/$");return;case"Fragment":e._0.forEach(f=>ee(f,t));return;case"SignalFragment":let W=e._0;Z(t,"#");let O=Oe(t,"/#"),$=document.createElement("div");$.setAttribute("style","display: contents");let H=O[0],z=H!==void 0?H.parentNode:void 0;O.forEach(f=>{$.appendChild(f)});let B=t.current;if(z!==void 0){let f=g(z);B!==void 0?f.insertBefore($,g(B)):f.appendChild($)}let P=c.createOwner();return c.setOwner($,P),c.runWithOwner(P,()=>{let f=T.runWithDisposer(()=>{let b=o.get(W);Array.from($.childNodes||[]).forEach(Q.disposeElement),$.innerHTML="",b.forEach(R=>{let a=Q.render(R);$.appendChild(a)})},void 0);c.addDisposer(P,f)});case"LazyComponent":Z(t,"lc");let X=e._0();ee(X,t),Z(t,"/lc");return;case"KeyedList":let se=e.keyFn,k=e.signal;return Z(t,"kl"),(()=>{for(;;){let f=t.current;if(f===void 0)return;let b=g(f);if(!xe(b,"k:"))if(be(b,"/kl")){N(t);return}else return;let E=V(Ue(b),"");N(t);let a=Oe(t,"/k").find(p=>p.nodeType===1);if(a!==void 0){let p=o.peek(k),v=V(p.find(C=>se(C)===E),{});g(a)}}})()}}function nn(e,t,n){let r=n!==void 0?n:{},i=e(),l=ce(t),u=l.current;u!==void 0&&xe(g(u),"xote-root:")&&N(l),ee(i,l),window.__XOTE_HYDRATED__=!0;let d=r.onHydrated;if(d!==void 0)return d()}function cl(e,t,n){let r=n!==void 0?n:{},i=document.getElementById(t);if(i==null){console.error("[Xote Hydration] Container element not found: "+t);return}else return nn(e,i,r)}const sl=Object.freeze(Object.defineProperty({__proto__:null,Component:void 0,DOM:void 0,DOMWalker:ol,HydrationMismatch:dl,Reactivity:void 0,hydrate:nn,hydrateById:cl,hydrateNode:al,hydrateNodeWithWalker:ee,logHydrationWarning:Je},Symbol.toStringTag,{value:"Module"}));function fl(e){return e.TAG==="Reactive"?o.get(e._0):e._0}function pl(e){return{TAG:"Static",_0:e}}function hl(e){return{TAG:"Reactive",_0:e}}const ml=Object.freeze(Object.defineProperty({__proto__:null,$$static:pl,get:fl,reactive:hl},Symbol.toStringTag,{value:"Module"}));let gl=o.Id,Sl=o.Scheduler,_l=o.Core,yl=o.make,bl=o.makeForComputed,El=o.get,wl=o.peek,kl=o.set,Tl=o.update,vl=o.batch,$l=o.untrack,Cl={Id:gl,Scheduler:Sl,Core:_l,make:yl,makeForComputed:bl,get:El,peek:wl,set:kl,update:Tl,batch:vl,untrack:$l},Dl=j.Id,Al=j.Signal,xl=j.Core,Ol=j.Scheduler,Pl=j.make,Rl=j.dispose,Ml={Id:Dl,Signal:Al,Core:xl,Scheduler:Ol,make:Pl,dispose:Rl},jl=T.Id,Fl=T.Core,Il=T.Scheduler,Nl=T.runWithDisposer,Ll=T.run,Wl={Id:jl,Core:Fl,Scheduler:Il,runWithDisposer:Nl,run:Ll},Gl=mr,zl=zn,Bl=vr,Hl=ml,Xl=Wn,Vl=Mr,Kl=rl,Yl=sl;D.Component=Gl,D.Computed=Ml,D.Effect=Wl,D.Hydration=Yl,D.ReactiveProp=Hl,D.Route=zl,D.Router=Bl,D.SSR=Xl,D.SSRContext=Vl,D.SSRState=Kl,D.Signal=Cl,Object.defineProperty(D,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xote",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"url": "https://github.com/brnrdog/xote"
|
|
6
6
|
},
|
|
@@ -73,6 +73,6 @@
|
|
|
73
73
|
"zekr": "^1.7.0"
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
|
-
"rescript-signals": "^
|
|
76
|
+
"rescript-signals": "^2.0.0"
|
|
77
77
|
}
|
|
78
78
|
}
|
package/src/Xote.res.mjs
CHANGED
|
@@ -73,12 +73,15 @@ let Effect_Core = Signals.Effect.Core;
|
|
|
73
73
|
|
|
74
74
|
let Effect_Scheduler = Signals.Effect.Scheduler;
|
|
75
75
|
|
|
76
|
+
let Effect_runWithDisposer = Signals.Effect.runWithDisposer;
|
|
77
|
+
|
|
76
78
|
let Effect_run = Signals.Effect.run;
|
|
77
79
|
|
|
78
80
|
let Effect = {
|
|
79
81
|
Id: Effect_Id,
|
|
80
82
|
Core: Effect_Core,
|
|
81
83
|
Scheduler: Effect_Scheduler,
|
|
84
|
+
runWithDisposer: Effect_runWithDisposer,
|
|
82
85
|
run: Effect_run
|
|
83
86
|
};
|
|
84
87
|
|
|
@@ -111,4 +114,4 @@ export {
|
|
|
111
114
|
SSRState,
|
|
112
115
|
Hydration,
|
|
113
116
|
}
|
|
114
|
-
/*
|
|
117
|
+
/* Xote__Router Not a pure module */
|
package/src/Xote__Component.res
CHANGED
|
@@ -4,6 +4,56 @@ open Signals
|
|
|
4
4
|
* DOM Bindings
|
|
5
5
|
* ============================================================================ */
|
|
6
6
|
|
|
7
|
+
let svgNamespace = "http://www.w3.org/2000/svg"
|
|
8
|
+
|
|
9
|
+
let svgTags = [
|
|
10
|
+
"svg",
|
|
11
|
+
"path",
|
|
12
|
+
"circle",
|
|
13
|
+
"ellipse",
|
|
14
|
+
"line",
|
|
15
|
+
"polygon",
|
|
16
|
+
"polyline",
|
|
17
|
+
"rect",
|
|
18
|
+
"g",
|
|
19
|
+
"defs",
|
|
20
|
+
"clipPath",
|
|
21
|
+
"mask",
|
|
22
|
+
"pattern",
|
|
23
|
+
"marker",
|
|
24
|
+
"symbol",
|
|
25
|
+
"use",
|
|
26
|
+
"text",
|
|
27
|
+
"tspan",
|
|
28
|
+
"image",
|
|
29
|
+
"foreignObject",
|
|
30
|
+
"linearGradient",
|
|
31
|
+
"radialGradient",
|
|
32
|
+
"stop",
|
|
33
|
+
"filter",
|
|
34
|
+
"feBlend",
|
|
35
|
+
"feColorMatrix",
|
|
36
|
+
"feComposite",
|
|
37
|
+
"feFlood",
|
|
38
|
+
"feGaussianBlur",
|
|
39
|
+
"feMerge",
|
|
40
|
+
"feMergeNode",
|
|
41
|
+
"feOffset",
|
|
42
|
+
"animate",
|
|
43
|
+
"animateTransform",
|
|
44
|
+
"desc",
|
|
45
|
+
"title",
|
|
46
|
+
"metadata",
|
|
47
|
+
]
|
|
48
|
+
|
|
49
|
+
let svgTagSet: Dict.t<bool> = {
|
|
50
|
+
let d = Dict.make()
|
|
51
|
+
svgTags->Array.forEach(tag => d->Dict.set(tag, true))
|
|
52
|
+
d
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
let isSvgTag = (tag: string): bool => svgTagSet->Dict.get(tag)->Option.isSome
|
|
56
|
+
|
|
7
57
|
module DOM = {
|
|
8
58
|
/* Creation */
|
|
9
59
|
@val @scope("document") external createElement: string => Dom.element = "createElement"
|
|
@@ -196,7 +246,7 @@ module Render = {
|
|
|
196
246
|
setOwner(textNode, owner)
|
|
197
247
|
|
|
198
248
|
runWithOwner(owner, () => {
|
|
199
|
-
let disposer = Effect.
|
|
249
|
+
let disposer = Effect.runWithDisposer(() => {
|
|
200
250
|
DOM.setTextContent(textNode, Signal.get(signal))
|
|
201
251
|
None
|
|
202
252
|
})
|
|
@@ -222,7 +272,7 @@ module Render = {
|
|
|
222
272
|
setOwner(container, owner)
|
|
223
273
|
|
|
224
274
|
runWithOwner(owner, () => {
|
|
225
|
-
let disposer = Effect.
|
|
275
|
+
let disposer = Effect.runWithDisposer(() => {
|
|
226
276
|
let children = Signal.get(signal)
|
|
227
277
|
|
|
228
278
|
/* Dispose existing children */
|
|
@@ -250,7 +300,11 @@ module Render = {
|
|
|
250
300
|
}
|
|
251
301
|
|
|
252
302
|
| Element({tag, attrs, events, children}) => {
|
|
253
|
-
let el =
|
|
303
|
+
let el = if isSvgTag(tag) {
|
|
304
|
+
DOM.createElementNS(svgNamespace, tag)
|
|
305
|
+
} else {
|
|
306
|
+
DOM.createElement(tag)
|
|
307
|
+
}
|
|
254
308
|
let owner = createOwner()
|
|
255
309
|
setOwner(el, owner)
|
|
256
310
|
|
|
@@ -261,7 +315,7 @@ module Render = {
|
|
|
261
315
|
| Static(v) => DOM.setAttrOrProp(el, key, v)
|
|
262
316
|
| SignalValue(signal) => {
|
|
263
317
|
DOM.setAttrOrProp(el, key, Signal.peek(signal))
|
|
264
|
-
let disposer = Effect.
|
|
318
|
+
let disposer = Effect.runWithDisposer(
|
|
265
319
|
() => {
|
|
266
320
|
DOM.setAttrOrProp(el, key, Signal.get(signal))
|
|
267
321
|
None
|
|
@@ -270,7 +324,7 @@ module Render = {
|
|
|
270
324
|
addDisposer(owner, disposer)
|
|
271
325
|
}
|
|
272
326
|
| Compute(compute) => {
|
|
273
|
-
let disposer = Effect.
|
|
327
|
+
let disposer = Effect.runWithDisposer(
|
|
274
328
|
() => {
|
|
275
329
|
DOM.setAttrOrProp(el, key, compute())
|
|
276
330
|
None
|
|
@@ -425,7 +479,7 @@ module Render = {
|
|
|
425
479
|
fragment->DOM.appendChild(endAnchor)
|
|
426
480
|
|
|
427
481
|
runWithOwner(owner, () => {
|
|
428
|
-
let disposer = Effect.
|
|
482
|
+
let disposer = Effect.runWithDisposer(() => {
|
|
429
483
|
reconcile()
|
|
430
484
|
None
|
|
431
485
|
})
|
|
@@ -5,6 +5,58 @@ import * as Stdlib_Dict from "@rescript/runtime/lib/es6/Stdlib_Dict.js";
|
|
|
5
5
|
import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
|
|
6
6
|
import * as Primitive_option from "@rescript/runtime/lib/es6/Primitive_option.js";
|
|
7
7
|
|
|
8
|
+
let svgNamespace = "http://www.w3.org/2000/svg";
|
|
9
|
+
|
|
10
|
+
let svgTags = [
|
|
11
|
+
"svg",
|
|
12
|
+
"path",
|
|
13
|
+
"circle",
|
|
14
|
+
"ellipse",
|
|
15
|
+
"line",
|
|
16
|
+
"polygon",
|
|
17
|
+
"polyline",
|
|
18
|
+
"rect",
|
|
19
|
+
"g",
|
|
20
|
+
"defs",
|
|
21
|
+
"clipPath",
|
|
22
|
+
"mask",
|
|
23
|
+
"pattern",
|
|
24
|
+
"marker",
|
|
25
|
+
"symbol",
|
|
26
|
+
"use",
|
|
27
|
+
"text",
|
|
28
|
+
"tspan",
|
|
29
|
+
"image",
|
|
30
|
+
"foreignObject",
|
|
31
|
+
"linearGradient",
|
|
32
|
+
"radialGradient",
|
|
33
|
+
"stop",
|
|
34
|
+
"filter",
|
|
35
|
+
"feBlend",
|
|
36
|
+
"feColorMatrix",
|
|
37
|
+
"feComposite",
|
|
38
|
+
"feFlood",
|
|
39
|
+
"feGaussianBlur",
|
|
40
|
+
"feMerge",
|
|
41
|
+
"feMergeNode",
|
|
42
|
+
"feOffset",
|
|
43
|
+
"animate",
|
|
44
|
+
"animateTransform",
|
|
45
|
+
"desc",
|
|
46
|
+
"title",
|
|
47
|
+
"metadata"
|
|
48
|
+
];
|
|
49
|
+
|
|
50
|
+
let d = {};
|
|
51
|
+
|
|
52
|
+
svgTags.forEach(tag => {
|
|
53
|
+
d[tag] = true;
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
function isSvgTag(tag) {
|
|
57
|
+
return Stdlib_Option.isSome(d[tag]);
|
|
58
|
+
}
|
|
59
|
+
|
|
8
60
|
function setAttrOrProp(el, key, value) {
|
|
9
61
|
switch (key) {
|
|
10
62
|
case "checked" :
|
|
@@ -135,7 +187,8 @@ function render(node) {
|
|
|
135
187
|
let children = node.children;
|
|
136
188
|
let events = node.events;
|
|
137
189
|
let attrs = node.attrs;
|
|
138
|
-
let
|
|
190
|
+
let tag = node.tag;
|
|
191
|
+
let el = Stdlib_Option.isSome(d[tag]) ? document.createElementNS(svgNamespace, tag) : document.createElement(tag);
|
|
139
192
|
let owner = {
|
|
140
193
|
disposers: [],
|
|
141
194
|
computeds: []
|
|
@@ -151,13 +204,13 @@ function render(node) {
|
|
|
151
204
|
case "SignalValue" :
|
|
152
205
|
let signal = value._0;
|
|
153
206
|
setAttrOrProp(el, key, Signals.Signal.peek(signal));
|
|
154
|
-
let disposer = Signals.Effect.
|
|
207
|
+
let disposer = Signals.Effect.runWithDisposer(() => {
|
|
155
208
|
setAttrOrProp(el, key, Signals.Signal.get(signal));
|
|
156
209
|
}, undefined);
|
|
157
210
|
return addDisposer(owner, disposer);
|
|
158
211
|
case "Compute" :
|
|
159
212
|
let compute = value._0;
|
|
160
|
-
let disposer$1 = Signals.Effect.
|
|
213
|
+
let disposer$1 = Signals.Effect.runWithDisposer(() => {
|
|
161
214
|
setAttrOrProp(el, key, compute());
|
|
162
215
|
}, undefined);
|
|
163
216
|
return addDisposer(owner, disposer$1);
|
|
@@ -183,7 +236,7 @@ function render(node) {
|
|
|
183
236
|
};
|
|
184
237
|
setOwner(textNode, owner$1);
|
|
185
238
|
runWithOwner(owner$1, () => {
|
|
186
|
-
let disposer = Signals.Effect.
|
|
239
|
+
let disposer = Signals.Effect.runWithDisposer(() => {
|
|
187
240
|
textNode.textContent = Signals.Signal.get(signal);
|
|
188
241
|
}, undefined);
|
|
189
242
|
addDisposer(owner$1, disposer);
|
|
@@ -206,7 +259,7 @@ function render(node) {
|
|
|
206
259
|
container.setAttribute("style", "display: contents");
|
|
207
260
|
setOwner(container, owner$2);
|
|
208
261
|
runWithOwner(owner$2, () => {
|
|
209
|
-
let disposer = Signals.Effect.
|
|
262
|
+
let disposer = Signals.Effect.runWithDisposer(() => {
|
|
210
263
|
let children = Signals.Signal.get(signal$1);
|
|
211
264
|
let childNodes = (Array.from(container.childNodes || []));
|
|
212
265
|
childNodes.forEach(disposeElement);
|
|
@@ -346,7 +399,7 @@ function render(node) {
|
|
|
346
399
|
});
|
|
347
400
|
fragment$1.appendChild(endAnchor);
|
|
348
401
|
runWithOwner(owner$4, () => {
|
|
349
|
-
let disposer = Signals.Effect.
|
|
402
|
+
let disposer = Signals.Effect.runWithDisposer(() => {
|
|
350
403
|
reconcile();
|
|
351
404
|
}, undefined);
|
|
352
405
|
addDisposer(owner$4, disposer);
|
|
@@ -523,6 +576,8 @@ function mountById(node, containerId) {
|
|
|
523
576
|
}
|
|
524
577
|
}
|
|
525
578
|
|
|
579
|
+
let svgTagSet = d;
|
|
580
|
+
|
|
526
581
|
let attr = $$static;
|
|
527
582
|
|
|
528
583
|
let signalAttr = signal;
|
|
@@ -530,6 +585,10 @@ let signalAttr = signal;
|
|
|
530
585
|
let computedAttr = computed;
|
|
531
586
|
|
|
532
587
|
export {
|
|
588
|
+
svgNamespace,
|
|
589
|
+
svgTags,
|
|
590
|
+
svgTagSet,
|
|
591
|
+
isSvgTag,
|
|
533
592
|
DOM,
|
|
534
593
|
Reactivity,
|
|
535
594
|
Attributes,
|
|
@@ -564,4 +623,4 @@ export {
|
|
|
564
623
|
mount,
|
|
565
624
|
mountById,
|
|
566
625
|
}
|
|
567
|
-
/*
|
|
626
|
+
/* Not a pure module */
|
package/src/Xote__Hydration.res
CHANGED
|
@@ -171,7 +171,7 @@ let rec hydrateNode = (node: Component.node, domNode: Dom.element): unit => {
|
|
|
171
171
|
Reactivity.setOwner(domNode, owner)
|
|
172
172
|
|
|
173
173
|
Reactivity.runWithOwner(owner, () => {
|
|
174
|
-
let disposer = Effect.
|
|
174
|
+
let disposer = Effect.runWithDisposer(() => {
|
|
175
175
|
DOM.setTextContent(domNode, Signal.get(signal))
|
|
176
176
|
None
|
|
177
177
|
})
|
|
@@ -196,7 +196,7 @@ let rec hydrateNode = (node: Component.node, domNode: Dom.element): unit => {
|
|
|
196
196
|
Reactivity.setOwner(domNode, owner)
|
|
197
197
|
|
|
198
198
|
Reactivity.runWithOwner(owner, () => {
|
|
199
|
-
let disposer = Effect.
|
|
199
|
+
let disposer = Effect.runWithDisposer(() => {
|
|
200
200
|
let children = Signal.get(signal)
|
|
201
201
|
|
|
202
202
|
/* Clear existing children */
|
|
@@ -234,7 +234,7 @@ let rec hydrateNode = (node: Component.node, domNode: Dom.element): unit => {
|
|
|
234
234
|
switch value {
|
|
235
235
|
| Component.Static(_) => () /* Already rendered, nothing to do */
|
|
236
236
|
| Component.SignalValue(signal) => {
|
|
237
|
-
let disposer = Effect.
|
|
237
|
+
let disposer = Effect.runWithDisposer(
|
|
238
238
|
() => {
|
|
239
239
|
DOM.setAttrOrProp(domNode, key, Signal.get(signal))
|
|
240
240
|
None
|
|
@@ -243,7 +243,7 @@ let rec hydrateNode = (node: Component.node, domNode: Dom.element): unit => {
|
|
|
243
243
|
Reactivity.addDisposer(owner, disposer)
|
|
244
244
|
}
|
|
245
245
|
| Component.Compute(compute) => {
|
|
246
|
-
let disposer = Effect.
|
|
246
|
+
let disposer = Effect.runWithDisposer(
|
|
247
247
|
() => {
|
|
248
248
|
DOM.setAttrOrProp(domNode, key, compute())
|
|
249
249
|
None
|
|
@@ -420,7 +420,7 @@ let rec hydrateNode = (node: Component.node, domNode: Dom.element): unit => {
|
|
|
420
420
|
})
|
|
421
421
|
}
|
|
422
422
|
|
|
423
|
-
let disposer = Effect.
|
|
423
|
+
let disposer = Effect.runWithDisposer(() => {
|
|
424
424
|
reconcile()
|
|
425
425
|
None
|
|
426
426
|
})
|
|
@@ -449,7 +449,7 @@ and hydrateNodeWithWalker = (node: Component.node, walker: DOMWalker.t): unit =>
|
|
|
449
449
|
Reactivity.setOwner(textNode, owner)
|
|
450
450
|
|
|
451
451
|
Reactivity.runWithOwner(owner, () => {
|
|
452
|
-
let disposer = Effect.
|
|
452
|
+
let disposer = Effect.runWithDisposer(() => {
|
|
453
453
|
DOM.setTextContent(textNode, Signal.get(signal))
|
|
454
454
|
None
|
|
455
455
|
})
|
|
@@ -503,7 +503,7 @@ and hydrateNodeWithWalker = (node: Component.node, walker: DOMWalker.t): unit =>
|
|
|
503
503
|
Reactivity.setOwner(container, owner)
|
|
504
504
|
|
|
505
505
|
Reactivity.runWithOwner(owner, () => {
|
|
506
|
-
let disposer = Effect.
|
|
506
|
+
let disposer = Effect.runWithDisposer(() => {
|
|
507
507
|
let children = Signal.get(signal)
|
|
508
508
|
|
|
509
509
|
/* Clear and re-render */
|
|
@@ -536,7 +536,7 @@ and hydrateNodeWithWalker = (node: Component.node, walker: DOMWalker.t): unit =>
|
|
|
536
536
|
switch value {
|
|
537
537
|
| Component.Static(_) => ()
|
|
538
538
|
| Component.SignalValue(signal) => {
|
|
539
|
-
let disposer = Effect.
|
|
539
|
+
let disposer = Effect.runWithDisposer(
|
|
540
540
|
() => {
|
|
541
541
|
DOM.setAttrOrProp(domNode, key, Signal.get(signal))
|
|
542
542
|
None
|
|
@@ -545,7 +545,7 @@ and hydrateNodeWithWalker = (node: Component.node, walker: DOMWalker.t): unit =>
|
|
|
545
545
|
Reactivity.addDisposer(owner, disposer)
|
|
546
546
|
}
|
|
547
547
|
| Component.Compute(compute) => {
|
|
548
|
-
let disposer = Effect.
|
|
548
|
+
let disposer = Effect.runWithDisposer(
|
|
549
549
|
() => {
|
|
550
550
|
DOM.setAttrOrProp(domNode, key, compute())
|
|
551
551
|
None
|
|
@@ -145,13 +145,13 @@ function hydrateNode(_node, domNode) {
|
|
|
145
145
|
return;
|
|
146
146
|
case "SignalValue" :
|
|
147
147
|
let signal = value._0;
|
|
148
|
-
let disposer = Signals.Effect.
|
|
148
|
+
let disposer = Signals.Effect.runWithDisposer(() => {
|
|
149
149
|
Xote__Component.DOM.setAttrOrProp(domNode, key, Signals.Signal.get(signal));
|
|
150
150
|
}, undefined);
|
|
151
151
|
return Xote__Component.Reactivity.addDisposer(owner, disposer);
|
|
152
152
|
case "Compute" :
|
|
153
153
|
let compute = value._0;
|
|
154
|
-
let disposer$1 = Signals.Effect.
|
|
154
|
+
let disposer$1 = Signals.Effect.runWithDisposer(() => {
|
|
155
155
|
Xote__Component.DOM.setAttrOrProp(domNode, key, compute());
|
|
156
156
|
}, undefined);
|
|
157
157
|
return Xote__Component.Reactivity.addDisposer(owner, disposer$1);
|
|
@@ -170,7 +170,7 @@ function hydrateNode(_node, domNode) {
|
|
|
170
170
|
let owner$1 = Xote__Component.Reactivity.createOwner();
|
|
171
171
|
Xote__Component.Reactivity.setOwner(domNode, owner$1);
|
|
172
172
|
return Xote__Component.Reactivity.runWithOwner(owner$1, () => {
|
|
173
|
-
let disposer = Signals.Effect.
|
|
173
|
+
let disposer = Signals.Effect.runWithDisposer(() => {
|
|
174
174
|
domNode.textContent = Signals.Signal.get(signal);
|
|
175
175
|
}, undefined);
|
|
176
176
|
Xote__Component.Reactivity.addDisposer(owner$1, disposer);
|
|
@@ -184,7 +184,7 @@ function hydrateNode(_node, domNode) {
|
|
|
184
184
|
let owner$2 = Xote__Component.Reactivity.createOwner();
|
|
185
185
|
Xote__Component.Reactivity.setOwner(domNode, owner$2);
|
|
186
186
|
return Xote__Component.Reactivity.runWithOwner(owner$2, () => {
|
|
187
|
-
let disposer = Signals.Effect.
|
|
187
|
+
let disposer = Signals.Effect.runWithDisposer(() => {
|
|
188
188
|
let children = Signals.Signal.get(signal$1);
|
|
189
189
|
let childNodes = (Array.from(domNode.childNodes || []));
|
|
190
190
|
childNodes.forEach(child => Xote__Component.Reactivity.disposeOwner(Stdlib_Option.getOr(Xote__Component.Reactivity.getOwner(child), Xote__Component.Reactivity.createOwner())));
|
|
@@ -338,7 +338,7 @@ function hydrateNode(_node, domNode) {
|
|
|
338
338
|
}
|
|
339
339
|
});
|
|
340
340
|
};
|
|
341
|
-
let disposer = Signals.Effect.
|
|
341
|
+
let disposer = Signals.Effect.runWithDisposer(() => {
|
|
342
342
|
reconcile();
|
|
343
343
|
}, undefined);
|
|
344
344
|
Xote__Component.Reactivity.addDisposer(owner$4, disposer);
|
|
@@ -369,13 +369,13 @@ function hydrateNodeWithWalker(node, walker) {
|
|
|
369
369
|
return;
|
|
370
370
|
case "SignalValue" :
|
|
371
371
|
let signal = value._0;
|
|
372
|
-
let disposer = Signals.Effect.
|
|
372
|
+
let disposer = Signals.Effect.runWithDisposer(() => {
|
|
373
373
|
Xote__Component.DOM.setAttrOrProp(domNode$1, key, Signals.Signal.get(signal));
|
|
374
374
|
}, undefined);
|
|
375
375
|
return Xote__Component.Reactivity.addDisposer(owner, disposer);
|
|
376
376
|
case "Compute" :
|
|
377
377
|
let compute = value._0;
|
|
378
|
-
let disposer$1 = Signals.Effect.
|
|
378
|
+
let disposer$1 = Signals.Effect.runWithDisposer(() => {
|
|
379
379
|
Xote__Component.DOM.setAttrOrProp(domNode$1, key, compute());
|
|
380
380
|
}, undefined);
|
|
381
381
|
return Xote__Component.Reactivity.addDisposer(owner, disposer$1);
|
|
@@ -401,7 +401,7 @@ function hydrateNodeWithWalker(node, walker) {
|
|
|
401
401
|
let owner$1 = Xote__Component.Reactivity.createOwner();
|
|
402
402
|
Xote__Component.Reactivity.setOwner(textNode$1, owner$1);
|
|
403
403
|
Xote__Component.Reactivity.runWithOwner(owner$1, () => {
|
|
404
|
-
let disposer = Signals.Effect.
|
|
404
|
+
let disposer = Signals.Effect.runWithDisposer(() => {
|
|
405
405
|
textNode$1.textContent = Signals.Signal.get(signal);
|
|
406
406
|
}, undefined);
|
|
407
407
|
Xote__Component.Reactivity.addDisposer(owner$1, disposer);
|
|
@@ -434,7 +434,7 @@ function hydrateNodeWithWalker(node, walker) {
|
|
|
434
434
|
let owner$2 = Xote__Component.Reactivity.createOwner();
|
|
435
435
|
Xote__Component.Reactivity.setOwner(container, owner$2);
|
|
436
436
|
return Xote__Component.Reactivity.runWithOwner(owner$2, () => {
|
|
437
|
-
let disposer = Signals.Effect.
|
|
437
|
+
let disposer = Signals.Effect.runWithDisposer(() => {
|
|
438
438
|
let children = Signals.Signal.get(signal$1);
|
|
439
439
|
let childNodes = (Array.from(container.childNodes || []));
|
|
440
440
|
childNodes.forEach(Xote__Component.Render.disposeElement);
|
|
@@ -539,4 +539,4 @@ export {
|
|
|
539
539
|
hydrate,
|
|
540
540
|
hydrateById,
|
|
541
541
|
}
|
|
542
|
-
/*
|
|
542
|
+
/* Xote__Component Not a pure module */
|